@12-apps/ui 6.91.0 → 6.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/components-catalog.md +2 -2
  2. package/dist/_internal/components/data-display/Alert/Alert.js +2 -2
  3. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
  4. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  5. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -3
  6. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +4 -4
  7. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  8. package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -5
  9. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  10. package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
  11. package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
  12. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  13. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +16 -16
  14. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +22 -22
  15. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
  16. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +3 -3
  17. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +4 -4
  18. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +13 -13
  19. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +3 -3
  20. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +2 -2
  21. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +2 -2
  22. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  23. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
  24. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +1 -1
  25. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +4 -4
  26. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +1 -1
  27. package/dist/_internal/components/data-display/DayRuler/DayRuler.en-US.js +1 -1
  28. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +5 -5
  29. package/dist/_internal/components/data-display/DayRuler/DayRuler.labels.js +3 -3
  30. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +9 -4
  31. package/dist/_internal/components/data-display/DayRuler/DayRuler.pt-BR.js +1 -1
  32. package/dist/_internal/components/data-display/DayRuler/DayRuler.styles.js +9 -1
  33. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  34. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +5 -5
  35. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +4 -4
  36. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +9 -9
  37. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  38. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +2 -2
  39. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  40. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +3 -3
  41. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +2 -2
  42. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +4 -3
  43. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.parts.js +3 -2
  44. package/dist/_internal/components/data-display/ScheduleGrid/schedule-header-host.styles.js +12 -0
  45. package/dist/_internal/components/data-display/ScheduleGrid/schedule-header-host.styles.js.map +1 -0
  46. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  47. package/dist/_internal/components/data-display/index.js +42 -41
  48. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  49. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +5 -5
  50. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +4 -4
  51. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +3 -3
  52. package/dist/_internal/components/feedback/index.js +6 -6
  53. package/dist/_internal/components/index.js +60 -59
  54. package/dist/_internal/components/layout/SettingCard/SettingCard.js +8 -8
  55. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +4 -4
  56. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +7 -7
  57. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +5 -5
  58. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +9 -9
  59. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +8 -8
  60. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +9 -9
  61. package/dist/_internal/components/layout/index.js +12 -12
  62. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +6 -6
  63. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +9 -9
  64. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +3 -3
  65. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +4 -4
  66. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +5 -5
  67. package/dist/_internal/components/navigation/SectionNav/SectionNav.railCreate.js +4 -4
  68. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +4 -4
  69. package/dist/_internal/components/navigation/index.js +9 -9
  70. package/dist/charts.js +6 -6
  71. package/dist/{chunk-HC6OZ7QK.js → chunk-3EIRRLCQ.js} +2 -2
  72. package/dist/{chunk-7NP2JHGM.js → chunk-3OHZAZEE.js} +4 -4
  73. package/dist/{chunk-U2AEM3K4.js → chunk-3PQL2EN5.js} +2 -2
  74. package/dist/{chunk-M3XJVD5G.js → chunk-5357QUVE.js} +2 -2
  75. package/dist/{chunk-Z7T4EFEC.js → chunk-5I75WRXT.js} +4 -4
  76. package/dist/chunk-5MXVKZKZ.js +30 -0
  77. package/dist/chunk-5MXVKZKZ.js.map +1 -0
  78. package/dist/{chunk-5E2CRRD4.js → chunk-66VKX6JE.js} +5 -5
  79. package/dist/{chunk-N5PVD4J5.js → chunk-6DO672AG.js} +7 -7
  80. package/dist/{chunk-76DX2IMH.js → chunk-7F6D73NL.js} +2 -2
  81. package/dist/{chunk-XILMDEGZ.js → chunk-AI7XWBNG.js} +2 -2
  82. package/dist/{chunk-SNWCT6JN.js → chunk-AMIUZRDQ.js} +3 -3
  83. package/dist/{chunk-A3DDEKLV.js → chunk-BOADHYTA.js} +2 -2
  84. package/dist/{chunk-L3PDY7CJ.js → chunk-CKQOYPH3.js} +2 -2
  85. package/dist/{chunk-JH2XLVWM.js → chunk-CW5Z67NA.js} +2 -2
  86. package/dist/{chunk-3JZ3KEQQ.js → chunk-CZVAVX5L.js} +4 -4
  87. package/dist/{chunk-O3OU3ED7.js → chunk-D7R6SRJB.js} +3 -3
  88. package/dist/{chunk-O3OU3ED7.js.map → chunk-D7R6SRJB.js.map} +1 -1
  89. package/dist/{chunk-DVX4HDNP.js → chunk-DBPFKGXX.js} +2 -2
  90. package/dist/{chunk-QN7FVZQD.js → chunk-DHAXUVMR.js} +4 -4
  91. package/dist/{chunk-XCUHGPPZ.js → chunk-DTZOP4ZR.js} +2 -2
  92. package/dist/{chunk-BLZDSCIZ.js → chunk-DYHOBKPU.js} +6 -6
  93. package/dist/{chunk-MX2RF34M.js → chunk-E73C73UD.js} +15 -7
  94. package/dist/chunk-E73C73UD.js.map +1 -0
  95. package/dist/{chunk-42D7KBDH.js → chunk-EOIRU62W.js} +2 -2
  96. package/dist/{chunk-HNW7IZPV.js → chunk-EZBBLLEU.js} +5 -5
  97. package/dist/{chunk-HNW7IZPV.js.map → chunk-EZBBLLEU.js.map} +1 -1
  98. package/dist/{chunk-K3IB7S7Q.js → chunk-F2ZUUEXC.js} +3 -2
  99. package/dist/{chunk-K3IB7S7Q.js.map → chunk-F2ZUUEXC.js.map} +1 -1
  100. package/dist/{chunk-2M3W6ACW.js → chunk-FAUNQ3FS.js} +3 -3
  101. package/dist/{chunk-PJNIJIE6.js → chunk-FQNDJITD.js} +2 -2
  102. package/dist/{chunk-ZIHSCBMN.js → chunk-FWTVIRZZ.js} +4 -4
  103. package/dist/{chunk-KJKD6Y6V.js → chunk-GBB23QLL.js} +3 -3
  104. package/dist/{chunk-3IDL7NK7.js → chunk-K2VDRODL.js} +2 -2
  105. package/dist/{chunk-K3PMMW23.js → chunk-K6VEN5VN.js} +4 -4
  106. package/dist/{chunk-UKUGSU3Y.js → chunk-L4V7FZJI.js} +2 -2
  107. package/dist/{chunk-24HHUCWB.js → chunk-LDCZPZPD.js} +2 -2
  108. package/dist/{chunk-42TOCPXB.js → chunk-LXIPBHNJ.js} +5 -5
  109. package/dist/{chunk-ILJ3FXIC.js → chunk-MM3QESLI.js} +2 -2
  110. package/dist/{chunk-PGANINQD.js → chunk-NI67M453.js} +5 -5
  111. package/dist/{chunk-RDCIST7P.js → chunk-OCT5VCLP.js} +2 -2
  112. package/dist/{chunk-G2PVUPE7.js → chunk-OJZLFFG4.js} +41 -3
  113. package/dist/chunk-OJZLFFG4.js.map +1 -0
  114. package/dist/{chunk-F7LBTMCA.js → chunk-P53ANKZV.js} +4 -4
  115. package/dist/{chunk-HMEGQKNQ.js → chunk-PCQ5JWLF.js} +15 -7
  116. package/dist/chunk-PCQ5JWLF.js.map +1 -0
  117. package/dist/{chunk-QVDEGBME.js → chunk-PEAUGQKU.js} +4 -4
  118. package/dist/{chunk-JN2IANXD.js → chunk-R4LCPPKA.js} +2 -2
  119. package/dist/{chunk-U2QXQ7D4.js → chunk-S2VZUBM7.js} +4 -4
  120. package/dist/{chunk-HOPRZEBM.js → chunk-SKIAWOUC.js} +3 -3
  121. package/dist/{chunk-WCF56ZCD.js → chunk-TMINUTQQ.js} +2 -2
  122. package/dist/{chunk-ACM3HHZY.js → chunk-UDBOGSFO.js} +68 -2
  123. package/dist/chunk-UDBOGSFO.js.map +1 -0
  124. package/dist/{chunk-YGQM6GFQ.js → chunk-VHE7UEG5.js} +2 -2
  125. package/dist/{chunk-QHIWV55K.js → chunk-VWRXSBT2.js} +2 -2
  126. package/dist/{chunk-4KWDNGMA.js → chunk-W2KOP27S.js} +3 -3
  127. package/dist/{chunk-TSEBMVYY.js → chunk-X2GWR75Q.js} +3 -3
  128. package/dist/{chunk-JKZPGCN7.js → chunk-X3GD3TFI.js} +12 -12
  129. package/dist/{chunk-NKEFH3RS.js → chunk-XNAI7QGU.js} +2 -2
  130. package/dist/{chunk-L6JAALMX.js → chunk-XRV4QFEQ.js} +3 -3
  131. package/dist/{chunk-WH3LUOCQ.js → chunk-YE7M7URT.js} +2 -2
  132. package/dist/{chunk-DA3D5X5Z.js → chunk-YVDNCV2D.js} +6 -6
  133. package/dist/{chunk-G3JFESKD.js → chunk-Z5WUSI47.js} +6 -6
  134. package/dist/{chunk-5HADIIWN.js → chunk-ZDAAHCIS.js} +3 -3
  135. package/dist/{chunk-D3OXTS7Y.js → chunk-ZHCZOPKE.js} +3 -2
  136. package/dist/{chunk-D3OXTS7Y.js.map → chunk-ZHCZOPKE.js.map} +1 -1
  137. package/dist/data-display/Alert.js +2 -2
  138. package/dist/data-display/AsyncStateContainer.js +3 -3
  139. package/dist/data-display/Badge.js +2 -2
  140. package/dist/data-display/CardKit.js +7 -7
  141. package/dist/data-display/Chart.js +6 -6
  142. package/dist/data-display/Chip.js +3 -3
  143. package/dist/data-display/DataGrid.js +2 -2
  144. package/dist/data-display/DataViews.js +31 -31
  145. package/dist/data-display/DayRuler.js +7 -7
  146. package/dist/data-display/EmptyState.js +2 -2
  147. package/dist/data-display/FleetMap.js +9 -9
  148. package/dist/data-display/InteractiveTooltip.js +2 -2
  149. package/dist/data-display/Lightbox.js +2 -2
  150. package/dist/data-display/MapPreview.js +3 -3
  151. package/dist/data-display/RegionMap.js +2 -2
  152. package/dist/data-display/ScheduleGrid.js +4 -3
  153. package/dist/data-display/SectionOnboarding.js +3 -3
  154. package/dist/feedback/NotificationStatusNotice.js +3 -3
  155. package/dist/feedback/SequenceResolver.js +5 -5
  156. package/dist/layout/SettingCard.js +12 -12
  157. package/dist/navigation/SectionNav.js +9 -9
  158. package/dist/types/components/data-display/DayRuler/DayRuler.d.ts.map +1 -1
  159. package/dist/types/components/data-display/DayRuler/DayRuler.en-US.d.ts.map +1 -1
  160. package/dist/types/components/data-display/DayRuler/DayRuler.labels.d.ts +2 -0
  161. package/dist/types/components/data-display/DayRuler/DayRuler.labels.d.ts.map +1 -1
  162. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts +13 -1
  163. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts.map +1 -1
  164. package/dist/types/components/data-display/DayRuler/DayRuler.pt-BR.d.ts.map +1 -1
  165. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts +16 -0
  166. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts.map +1 -1
  167. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts +44 -1
  168. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts.map +1 -1
  169. package/dist/types/components/data-display/DayRuler/index.d.ts +1 -1
  170. package/dist/types/components/data-display/DayRuler/index.d.ts.map +1 -1
  171. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.parts.d.ts +3 -1
  172. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.parts.d.ts.map +1 -1
  173. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.types.d.ts +12 -0
  174. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.types.d.ts.map +1 -1
  175. package/dist/types/components/data-display/ScheduleGrid/schedule-header-host.styles.d.ts +16 -0
  176. package/dist/types/components/data-display/ScheduleGrid/schedule-header-host.styles.d.ts.map +1 -0
  177. package/package.json +1 -1
  178. package/src/components/data-display/DayRuler/DayRuler.en-US.ts +1 -0
  179. package/src/components/data-display/DayRuler/DayRuler.labels.ts +2 -0
  180. package/src/components/data-display/DayRuler/DayRuler.md +3 -2
  181. package/src/components/data-display/DayRuler/DayRuler.parts.tsx +120 -1
  182. package/src/components/data-display/DayRuler/DayRuler.pt-BR.ts +1 -0
  183. package/src/components/data-display/DayRuler/DayRuler.styles.ts +50 -1
  184. package/src/components/data-display/DayRuler/DayRuler.tsx +10 -1
  185. package/src/components/data-display/DayRuler/DayRuler.types.ts +30 -1
  186. package/src/components/data-display/DayRuler/index.ts +2 -0
  187. package/src/components/data-display/ScheduleGrid/ScheduleGrid.md +3 -2
  188. package/src/components/data-display/ScheduleGrid/ScheduleGrid.parts.tsx +18 -3
  189. package/src/components/data-display/ScheduleGrid/ScheduleGrid.tsx +1 -1
  190. package/src/components/data-display/ScheduleGrid/ScheduleGrid.types.ts +12 -0
  191. package/src/components/data-display/ScheduleGrid/schedule-header-host.styles.ts +35 -0
  192. package/dist/chunk-ACM3HHZY.js.map +0 -1
  193. package/dist/chunk-G2PVUPE7.js.map +0 -1
  194. package/dist/chunk-HMEGQKNQ.js.map +0 -1
  195. package/dist/chunk-MX2RF34M.js.map +0 -1
  196. /package/dist/{chunk-HC6OZ7QK.js.map → chunk-3EIRRLCQ.js.map} +0 -0
  197. /package/dist/{chunk-7NP2JHGM.js.map → chunk-3OHZAZEE.js.map} +0 -0
  198. /package/dist/{chunk-U2AEM3K4.js.map → chunk-3PQL2EN5.js.map} +0 -0
  199. /package/dist/{chunk-M3XJVD5G.js.map → chunk-5357QUVE.js.map} +0 -0
  200. /package/dist/{chunk-Z7T4EFEC.js.map → chunk-5I75WRXT.js.map} +0 -0
  201. /package/dist/{chunk-5E2CRRD4.js.map → chunk-66VKX6JE.js.map} +0 -0
  202. /package/dist/{chunk-N5PVD4J5.js.map → chunk-6DO672AG.js.map} +0 -0
  203. /package/dist/{chunk-76DX2IMH.js.map → chunk-7F6D73NL.js.map} +0 -0
  204. /package/dist/{chunk-XILMDEGZ.js.map → chunk-AI7XWBNG.js.map} +0 -0
  205. /package/dist/{chunk-SNWCT6JN.js.map → chunk-AMIUZRDQ.js.map} +0 -0
  206. /package/dist/{chunk-A3DDEKLV.js.map → chunk-BOADHYTA.js.map} +0 -0
  207. /package/dist/{chunk-L3PDY7CJ.js.map → chunk-CKQOYPH3.js.map} +0 -0
  208. /package/dist/{chunk-JH2XLVWM.js.map → chunk-CW5Z67NA.js.map} +0 -0
  209. /package/dist/{chunk-3JZ3KEQQ.js.map → chunk-CZVAVX5L.js.map} +0 -0
  210. /package/dist/{chunk-DVX4HDNP.js.map → chunk-DBPFKGXX.js.map} +0 -0
  211. /package/dist/{chunk-QN7FVZQD.js.map → chunk-DHAXUVMR.js.map} +0 -0
  212. /package/dist/{chunk-XCUHGPPZ.js.map → chunk-DTZOP4ZR.js.map} +0 -0
  213. /package/dist/{chunk-BLZDSCIZ.js.map → chunk-DYHOBKPU.js.map} +0 -0
  214. /package/dist/{chunk-42D7KBDH.js.map → chunk-EOIRU62W.js.map} +0 -0
  215. /package/dist/{chunk-2M3W6ACW.js.map → chunk-FAUNQ3FS.js.map} +0 -0
  216. /package/dist/{chunk-PJNIJIE6.js.map → chunk-FQNDJITD.js.map} +0 -0
  217. /package/dist/{chunk-ZIHSCBMN.js.map → chunk-FWTVIRZZ.js.map} +0 -0
  218. /package/dist/{chunk-KJKD6Y6V.js.map → chunk-GBB23QLL.js.map} +0 -0
  219. /package/dist/{chunk-3IDL7NK7.js.map → chunk-K2VDRODL.js.map} +0 -0
  220. /package/dist/{chunk-K3PMMW23.js.map → chunk-K6VEN5VN.js.map} +0 -0
  221. /package/dist/{chunk-UKUGSU3Y.js.map → chunk-L4V7FZJI.js.map} +0 -0
  222. /package/dist/{chunk-24HHUCWB.js.map → chunk-LDCZPZPD.js.map} +0 -0
  223. /package/dist/{chunk-42TOCPXB.js.map → chunk-LXIPBHNJ.js.map} +0 -0
  224. /package/dist/{chunk-ILJ3FXIC.js.map → chunk-MM3QESLI.js.map} +0 -0
  225. /package/dist/{chunk-PGANINQD.js.map → chunk-NI67M453.js.map} +0 -0
  226. /package/dist/{chunk-RDCIST7P.js.map → chunk-OCT5VCLP.js.map} +0 -0
  227. /package/dist/{chunk-F7LBTMCA.js.map → chunk-P53ANKZV.js.map} +0 -0
  228. /package/dist/{chunk-QVDEGBME.js.map → chunk-PEAUGQKU.js.map} +0 -0
  229. /package/dist/{chunk-JN2IANXD.js.map → chunk-R4LCPPKA.js.map} +0 -0
  230. /package/dist/{chunk-U2QXQ7D4.js.map → chunk-S2VZUBM7.js.map} +0 -0
  231. /package/dist/{chunk-HOPRZEBM.js.map → chunk-SKIAWOUC.js.map} +0 -0
  232. /package/dist/{chunk-WCF56ZCD.js.map → chunk-TMINUTQQ.js.map} +0 -0
  233. /package/dist/{chunk-YGQM6GFQ.js.map → chunk-VHE7UEG5.js.map} +0 -0
  234. /package/dist/{chunk-QHIWV55K.js.map → chunk-VWRXSBT2.js.map} +0 -0
  235. /package/dist/{chunk-4KWDNGMA.js.map → chunk-W2KOP27S.js.map} +0 -0
  236. /package/dist/{chunk-TSEBMVYY.js.map → chunk-X2GWR75Q.js.map} +0 -0
  237. /package/dist/{chunk-JKZPGCN7.js.map → chunk-X3GD3TFI.js.map} +0 -0
  238. /package/dist/{chunk-NKEFH3RS.js.map → chunk-XNAI7QGU.js.map} +0 -0
  239. /package/dist/{chunk-L6JAALMX.js.map → chunk-XRV4QFEQ.js.map} +0 -0
  240. /package/dist/{chunk-WH3LUOCQ.js.map → chunk-YE7M7URT.js.map} +0 -0
  241. /package/dist/{chunk-DA3D5X5Z.js.map → chunk-YVDNCV2D.js.map} +0 -0
  242. /package/dist/{chunk-G3JFESKD.js.map → chunk-Z5WUSI47.js.map} +0 -0
  243. /package/dist/{chunk-5HADIIWN.js.map → chunk-ZDAAHCIS.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DayRuler/DayRuler.tsx"],"sourcesContent":["'use client';\n\nimport Box from '@mui/material/Box/index.js';\nimport type React from 'react';\n\nimport { resolveLabels } from '../../../utils/resolve-labels';\nimport { SR_ONLY_SX } from '../ScheduleGrid/ScheduleGrid.styles';\nimport { useAnnouncer } from '../ScheduleGrid/useAnnouncer';\nimport { handleBlockKey, keyCreateSpan, type RulerAbilities, type RulerScale } from './DayRuler.keyboard';\nimport { EN_US_DAY_RULER_LABELS } from './DayRuler.en-US';\nimport { DAY_RULER_METRICS as M } from './DayRuler.metrics';\nimport { Axis, Coverage, GroupFooter, RulerRow, type RowContext } from './DayRuler.parts';\nimport { groupTitleSx, rootSx, rowSx, skeletonNameSx, skeletonTrackSx } from './DayRuler.styles';\nimport type { DayRulerProps, DayRulerRow } from './DayRuler.types';\nimport { useRulerDrag } from './useRulerDrag';\n\n/** The rows, grouped under a heading each time `row.group` changes. */\nfunction grouped(rows: readonly DayRulerRow[]): { title?: string; rows: DayRulerRow[] }[] {\n const out: { title?: string; rows: DayRulerRow[] }[] = [];\n for (const row of rows) {\n const last = out[out.length - 1];\n if (last && last.title === row.group) last.rows.push(row);\n else out.push({ title: row.group, rows: [row] });\n }\n return out;\n}\n\nfunction scaleOf(props: DayRulerProps): RulerScale {\n return {\n from: props.from ?? 6,\n to: props.to ?? 26,\n snap: (props.snapMinutes ?? 15) / 60,\n createHours: props.createHours ?? 4,\n tickHours: props.tickHours ?? 4,\n };\n}\n\nfunction abilitiesOf(props: DayRulerProps): RulerAbilities {\n const open = !props.readOnly && !props.loading;\n return { create: open && Boolean(props.onCreate), move: open && Boolean(props.onMove), resize: open && Boolean(props.onResize) };\n}\n\n/** A group's lines under its rows, when the host gives any (`groupFooter`). */\nfunction FooterOf({ props, group, ctx }: { props: DayRulerProps; group: string | undefined; ctx: RowContext }): React.JSX.Element | null {\n const rows = props.groupFooter?.(group);\n if (!rows || rows.length === 0) return null;\n const marked = props.labels?.footerMarked ?? EN_US_DAY_RULER_LABELS.footerMarked;\n return <GroupFooter rows={rows} scale={ctx.scale} testId={ctx.testId} marked={marked} />;\n}\n\n/** The groups and their rows — or the skeleton, the host's error, or the host's empty state. */\nfunction RulerBody({ props, ctx }: { props: DayRulerProps; ctx: RowContext }): React.JSX.Element {\n if (props.error) return <>{props.error}</>;\n if (props.loading) {\n return (\n <>\n {Array.from({ length: M.skeletonRows }, (_, index) => (\n <Box key={index} sx={rowSx} aria-hidden data-testid={`${ctx.testId}-loading`}>\n <Box sx={skeletonNameSx} />\n <Box sx={skeletonTrackSx} />\n </Box>\n ))}\n </>\n );\n }\n if (props.rows.length === 0) return <>{props.empty ?? null}</>;\n return (\n <>\n {grouped(props.rows).map((group, index) => (\n <Box key={`${index}-${group.title ?? ''}`} role=\"list\" aria-label={group.title}>\n {group.title ? (\n <Box component=\"p\" sx={groupTitleSx} aria-hidden>\n {group.title}\n </Box>\n ) : null}\n {group.rows.map((row) => (\n <RulerRow key={row.id} row={row} ctx={ctx} />\n ))}\n <FooterOf props={props} group={group.title} ctx={ctx} />\n </Box>\n ))}\n </>\n );\n}\n\n/**\n * One day as an hour ruler per row — who is on the escala when, and who is\n * really on shift (FUT-3825). Drag on an empty stretch to create (a click\n * alone is `createHours`), drag a block to move it, drag its ends to change\n * them; every hour snaps to `snapMinutes`. On a narrow ruler (a phone) each row\n * stacks and the blocks are tap-only: touch scrolls and never drags.\n *\n * The ruler reports gestures; hours, limits and refusals are the host's.\n */\nexport function DayRuler(props: DayRulerProps): React.JSX.Element {\n const { now, onCreate, onMove, onResize } = props;\n const testId = props.dataTestId ?? 'day-ruler';\n const labels = resolveLabels(EN_US_DAY_RULER_LABELS, props.labels);\n const scale = scaleOf(props);\n const can = abilitiesOf(props);\n const dragApi = useRulerDrag(scale, { onCreate, onMove, onResize });\n const { text: announcement, say } = useAnnouncer();\n\n const ctx: RowContext = {\n scale,\n now,\n can,\n drag: dragApi.drag,\n dragApi,\n onBlockClick: props.onBlockClick,\n onKeyCreate: (row) => {\n const [start, end] = keyCreateSpan(scale, now, props.createStart?.(row.id));\n onCreate?.(row.id, start, end);\n },\n onBlockKey: (event, block) => handleBlockKey(event, block, { scale, can, onMove, onResize, labels, say }),\n createLabel: labels.createTrack,\n testId,\n };\n\n return (\n <Box\n sx={rootSx(props.rows.some((row) => row.actions !== undefined && row.actions !== null))}\n data-testid={testId}\n role=\"region\"\n aria-label={props['aria-label']}\n aria-busy={props.loading || undefined}\n aria-description={props.loading ? labels.loading : undefined}\n >\n {props.coverage && props.coverage.length > 0 ? (\n <Coverage coverage={props.coverage} label={props.coverageLabel} scale={scale} testId={testId} />\n ) : null}\n <Axis scale={scale} testId={testId} />\n <RulerBody props={props} ctx={ctx} />\n <Box sx={SR_ONLY_SX} aria-live=\"polite\" role=\"status\" data-testid={`${testId}-live`}>\n {announcement}\n </Box>\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,3 +1,6 @@
1
+ import {
2
+ resolveIconPlacement
3
+ } from "./chunk-QXUXO22M.js";
1
4
  import {
2
5
  AlertContent
3
6
  } from "./chunk-7HZ36QDH.js";
@@ -14,9 +17,6 @@ import {
14
17
  resolveAnnouncement,
15
18
  testIdFor
16
19
  } from "./chunk-L7VH6IMR.js";
17
- import {
18
- resolveIconPlacement
19
- } from "./chunk-QXUXO22M.js";
20
20
  import {
21
21
  ACTIVE,
22
22
  ALERT_EASING,
@@ -277,4 +277,4 @@ export {
277
277
  Alert,
278
278
  ALERT_ONLY_PROPS
279
279
  };
280
- //# sourceMappingURL=chunk-QVDEGBME.js.map
280
+ //# sourceMappingURL=chunk-PEAUGQKU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GridShell
3
- } from "./chunk-JKZPGCN7.js";
3
+ } from "./chunk-X3GD3TFI.js";
4
4
  import {
5
5
  useDataViewsState
6
6
  } from "./chunk-ZCNR4DN5.js";
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
27
27
  export {
28
28
  DataViewsGrid
29
29
  };
30
- //# sourceMappingURL=chunk-JN2IANXD.js.map
30
+ //# sourceMappingURL=chunk-R4LCPPKA.js.map
@@ -1,10 +1,10 @@
1
+ import {
2
+ MapControlBar
3
+ } from "./chunk-6PU5P7QT.js";
1
4
  import {
2
5
  HeatmapOverlay,
3
6
  RouteOverlay
4
7
  } from "./chunk-ZZ4MMUBY.js";
5
- import {
6
- MapControlBar
7
- } from "./chunk-6PU5P7QT.js";
8
8
  import {
9
9
  resolveMapCopy
10
10
  } from "./chunk-M5Y42AZ4.js";
@@ -59,4 +59,4 @@ var MapLayers = ({ settings, zoom, mapType, search, controls }) => {
59
59
  export {
60
60
  MapLayers
61
61
  };
62
- //# sourceMappingURL=chunk-U2QXQ7D4.js.map
62
+ //# sourceMappingURL=chunk-S2VZUBM7.js.map
@@ -3,14 +3,14 @@ import {
3
3
  } from "./chunk-SALQ65SM.js";
4
4
  import {
5
5
  useSummaryInfo
6
- } from "./chunk-TSEBMVYY.js";
6
+ } from "./chunk-X2GWR75Q.js";
7
7
  import {
8
8
  LearnMore,
9
9
  PendingSpinner,
10
10
  SaveError,
11
11
  SettingHeader,
12
12
  partTestId
13
- } from "./chunk-HC6OZ7QK.js";
13
+ } from "./chunk-3EIRRLCQ.js";
14
14
  import {
15
15
  SETTING_CARD_OPEN_ATTR,
16
16
  actionsStyles,
@@ -170,4 +170,4 @@ SettingCard.displayName = "SettingCard";
170
170
  export {
171
171
  SettingCard
172
172
  };
173
- //# sourceMappingURL=chunk-HOPRZEBM.js.map
173
+ //# sourceMappingURL=chunk-SKIAWOUC.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FleetCanvas
3
- } from "./chunk-YGQM6GFQ.js";
3
+ } from "./chunk-VHE7UEG5.js";
4
4
  import {
5
5
  FleetRoster
6
6
  } from "./chunk-A4B27HYU.js";
@@ -79,4 +79,4 @@ function FleetBody({
79
79
  export {
80
80
  FleetBody
81
81
  };
82
- //# sourceMappingURL=chunk-WCF56ZCD.js.map
82
+ //# sourceMappingURL=chunk-TMINUTQQ.js.map
@@ -8,13 +8,16 @@ import {
8
8
  coverageCellSx,
9
9
  coverageLabelSx,
10
10
  coverageSx,
11
+ footerCellSx,
12
+ footerNoteSx,
11
13
  handleSx,
12
14
  lineSx,
13
15
  nowSx,
14
16
  rowSx,
15
17
  trackSx,
18
+ trendSx,
16
19
  whoSx
17
- } from "./chunk-G2PVUPE7.js";
20
+ } from "./chunk-OJZLFFG4.js";
18
21
  import {
19
22
  useTextFits
20
23
  } from "./chunk-YMYJO2CZ.js";
@@ -27,6 +30,9 @@ import {
27
30
  percentOf,
28
31
  ticksOf
29
32
  } from "./chunk-LE5JYNR7.js";
33
+ import {
34
+ SR_ONLY_SX
35
+ } from "./chunk-RYJ6XGFA.js";
30
36
  import {
31
37
  ScheduleNameCell
32
38
  } from "./chunk-TZ44F6W7.js";
@@ -191,6 +197,64 @@ function Coverage(props) {
191
197
  /* @__PURE__ */ jsx("span", {})
192
198
  ] });
193
199
  }
200
+ function trendPoints(values, hours) {
201
+ const present = values.slice(0, hours).filter((value) => value !== null);
202
+ const max = Math.max(0, ...present);
203
+ return values.slice(0, hours).flatMap((value, index) => {
204
+ if (value === null) return [];
205
+ const x = (index + 0.5) * 100 / hours;
206
+ const y = max > 0 ? 38 - value / max * 34 : 38;
207
+ return [`${x.toFixed(2)},${y.toFixed(2)}`];
208
+ }).join(" ");
209
+ }
210
+ var hourWords = (hour, text) => text ? `${formatHour(hour)} \xB7 ${text}` : formatHour(hour);
211
+ function markedWords(cell, hour, marked) {
212
+ return cell.title ?? `${hourWords(hour, cell.text)} \xB7 ${marked}`;
213
+ }
214
+ function FooterCells({ cells, ctx }) {
215
+ return /* @__PURE__ */ jsx(Box, { sx: coverageSx(ctx.hours), children: Array.from({ length: ctx.hours }, (_, index) => {
216
+ const cell = cells[index] ?? { text: "" };
217
+ const hour = ctx.from + index;
218
+ return /* @__PURE__ */ jsx(
219
+ Box,
220
+ {
221
+ component: "span",
222
+ sx: footerCellSx(Boolean(cell.marked)),
223
+ title: cell.marked ? markedWords(cell, hour, ctx.marked) : cell.title ?? hourWords(hour, cell.text),
224
+ "data-marked": cell.marked ? "" : void 0,
225
+ children: cell.marked ? /* @__PURE__ */ jsxs(Fragment, { children: [
226
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, children: cell.text }),
227
+ /* @__PURE__ */ jsx(Box, { component: "span", sx: SR_ONLY_SX, children: markedWords(cell, hour, ctx.marked) })
228
+ ] }) : cell.text
229
+ },
230
+ index
231
+ );
232
+ }) });
233
+ }
234
+ function trendWords(values, ctx) {
235
+ return values.slice(0, ctx.hours).flatMap((value, index) => value === null ? [] : [`${formatHour(ctx.from + index)} ${Math.round(value * 10) / 10}`]).join(" \xB7 ");
236
+ }
237
+ function FooterFigures({ row, ctx }) {
238
+ if (row.trend) {
239
+ return /* @__PURE__ */ jsxs(Box, { component: "span", sx: { display: "block", minWidth: 0 }, children: [
240
+ /* @__PURE__ */ jsx(Box, { component: "svg", viewBox: "0 0 100 40", preserveAspectRatio: "none", sx: trendSx, "aria-hidden": true, children: /* @__PURE__ */ jsx("polyline", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, vectorEffect: "non-scaling-stroke", points: trendPoints(row.trend, ctx.hours) }) }),
241
+ /* @__PURE__ */ jsx(Box, { component: "span", sx: SR_ONLY_SX, children: trendWords(row.trend, ctx) })
242
+ ] });
243
+ }
244
+ if (row.note !== void 0) {
245
+ return /* @__PURE__ */ jsx(Box, { component: "span", sx: footerNoteSx(Boolean(row.marked)), "data-marked": row.marked ? "" : void 0, children: row.note });
246
+ }
247
+ return /* @__PURE__ */ jsx(FooterCells, { cells: row.cells ?? [], ctx });
248
+ }
249
+ function GroupFooter(props) {
250
+ const { rows, scale, testId } = props;
251
+ const ctx = { hours: scale.to - scale.from, from: scale.from, marked: props.marked };
252
+ return /* @__PURE__ */ jsx(Fragment, { children: rows.map((row) => /* @__PURE__ */ jsxs(Box, { sx: lineSx, "data-testid": `${testId}-footer-${row.id}`, children: [
253
+ /* @__PURE__ */ jsx(Box, { component: "span", sx: coverageLabelSx, children: row.label }),
254
+ /* @__PURE__ */ jsx(FooterFigures, { row, ctx }),
255
+ /* @__PURE__ */ jsx("span", {})
256
+ ] }, row.id)) });
257
+ }
194
258
  function Axis({ scale, testId }) {
195
259
  return /* @__PURE__ */ jsxs(Box, { sx: lineSx, "data-testid": `${testId}-axis`, "aria-hidden": true, children: [
196
260
  /* @__PURE__ */ jsx("span", {}),
@@ -203,6 +267,8 @@ export {
203
267
  spanOf,
204
268
  RulerRow,
205
269
  Coverage,
270
+ trendPoints,
271
+ GroupFooter,
206
272
  Axis
207
273
  };
208
- //# sourceMappingURL=chunk-ACM3HHZY.js.map
274
+ //# sourceMappingURL=chunk-UDBOGSFO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DayRuler/DayRuler.parts.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport type * as React from 'react';\nimport { useRef } from 'react';\n\nimport { ScheduleNameCell } from '../ScheduleGrid/ScheduleNameCell';\nimport type { RulerAbilities, RulerScale } from './DayRuler.keyboard';\nimport { DAY_RULER_METRICS as M } from './DayRuler.metrics';\nimport { useTextFits } from './useTextFits';\nimport { formatHour, formatRange, percentOf, ticksOf } from './day-ruler-model';\nimport { SR_ONLY_SX } from '../ScheduleGrid/ScheduleGrid.styles';\nimport {\n actionsSx,\n actualLabelSx,\n actualSx,\n axisSx,\n blockSx,\n breakSx,\n coverageCellSx,\n coverageLabelSx,\n coverageSx,\n footerCellSx,\n footerNoteSx,\n handleSx,\n lineSx,\n nowSx,\n rowSx,\n trackSx,\n trendSx,\n whoSx,\n type Span,\n} from './DayRuler.styles';\nimport type { DayRulerBlock, DayRulerFooterCell, DayRulerFooterRow, DayRulerRow, RulerHour } from './DayRuler.types';\nimport type { RulerDrag, RulerDragApi } from './useRulerDrag';\n\nexport const spanOf = (start: RulerHour, end: RulerHour, scale: RulerScale): Span => {\n const at = percentOf(start, scale.from, scale.to);\n return { at, share: Math.max(0, percentOf(end, scale.from, scale.to) - at) };\n};\n\n/** What every row of one ruler shares. */\nexport interface RowContext {\n scale: RulerScale;\n now?: RulerHour;\n can: RulerAbilities;\n drag: RulerDrag | null;\n dragApi: RulerDragApi;\n onBlockClick?: (blockId: string) => void;\n onKeyCreate: (row: DayRulerRow) => void;\n onBlockKey: (event: React.KeyboardEvent, block: DayRulerBlock) => void;\n createLabel: (row: string) => string;\n testId: string;\n}\n\n/** The keys a block answers to, for `aria-keyshortcuts`. */\nfunction shortcutsOf(movable: boolean, resizable: boolean): string | undefined {\n const keys = [\n movable ? 'Alt+ArrowLeft Alt+ArrowRight' : '',\n resizable ? 'Shift+ArrowLeft Shift+ArrowRight Shift+Alt+ArrowLeft Shift+Alt+ArrowRight' : '',\n ];\n return keys.filter(Boolean).join(' ') || undefined;\n}\n\nfunction Handle({ side, onPointerDown, testId }: { side: 'l' | 'r'; onPointerDown: (event: React.PointerEvent<HTMLElement>) => void; testId: string }) {\n return <Box component=\"span\" aria-hidden sx={handleSx(side)} data-testid={testId} onPointerDown={onPointerDown} />;\n}\n\ninterface BlockProps {\n row: DayRulerRow;\n block: DayRulerBlock;\n /** Where it is drawn: its own hours, or where a drag has it now. */\n span: Span;\n /** The hours it is drawn at (its own, or a drag's). */\n at: { start: RulerHour; end: RulerHour };\n text: string;\n ctx: RowContext;\n testId: string;\n}\n\n/**\n * The block's break, where it falls inside the block as drawn: it moves with a\n * dragged block (same offset from its start) and is cut to the block's ends.\n */\nfunction breakShare(block: DayRulerBlock, start: RulerHour, end: RulerHour): Span | null {\n const span = block.breakSpan;\n const length = end - start;\n if (!span || !(length > 0)) return null;\n const shift = Math.abs(length - (block.end - block.start)) < 1e-6 ? start - block.start : 0;\n const a = Math.max(start, span.start + shift);\n const b = Math.min(end, span.end + shift);\n if (!(b > a)) return null;\n return { at: ((a - start) / length) * 100, share: ((b - a) / length) * 100 };\n}\n\n/** The block's break as a hatched band, when it falls inside the block as drawn. */\nfunction BreakBand({ block, at, testId }: { block: DayRulerBlock; at: BlockProps['at']; testId: string }): React.JSX.Element | null {\n const gap = breakShare(block, at.start, at.end);\n if (!gap) return null;\n return <Box component=\"span\" aria-hidden sx={breakSx(gap)} data-dr-break=\"\" data-testid={testId} />;\n}\n\nfunction RulerBlock({ row, block, span, at, text, ctx, testId }: BlockProps): React.JSX.Element {\n const { can, dragApi, scale } = ctx;\n const movable = can.move && Boolean(block.movable);\n const resizable = can.resize && Boolean(block.resizable);\n const ref = useRef<HTMLButtonElement | null>(null);\n // Short by pixels; where nothing can be measured, by the prototype's 30% rule.\n const fits = useTextFits(ref, text, (block.end - block.start) / (scale.to - scale.from) >= M.narrowShare);\n const press = (mode: 'move' | 'start' | 'end') => (event: React.PointerEvent<HTMLElement>) =>\n dragApi.startBlock(event, row.id, block, mode);\n return (\n <Box\n component=\"button\"\n type=\"button\"\n sx={blockSx(block.tone, span, { selected: Boolean(block.selected), movable })}\n title={block.title ?? block.label}\n aria-keyshortcuts={shortcutsOf(movable, resizable)}\n aria-current={block.selected ? 'true' : undefined}\n ref={ref}\n data-narrow={fits ? undefined : ''}\n data-tone={block.tone}\n data-testid={testId}\n onPointerDown={movable ? press('move') : undefined}\n onClick={() => {\n if (!dragApi.takeClick()) ctx.onBlockClick?.(block.id);\n }}\n onKeyDown={(event: React.KeyboardEvent) => ctx.onBlockKey(event, block)}\n >\n <BreakBand block={block} at={at} testId={`${ctx.testId}-break-${block.id}`} />\n {resizable ? <Handle side=\"l\" onPointerDown={press('start')} testId={`${ctx.testId}-handle-l-${block.id}`} /> : null}\n <span data-dr-text=\"full\" title={text}>\n {text}\n </span>\n <span data-dr-text=\"short\" title={text}>\n {block.shortLabel ?? text}\n </span>\n {resizable ? <Handle side=\"r\" onPointerDown={press('end')} testId={`${ctx.testId}-handle-r-${block.id}`} /> : null}\n </Box>\n );\n}\n\n/** A row's blocks, each where a drag has it now (with its live hours) or where it is. */\nfunction Blocks({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element {\n const mine = ctx.drag && ctx.drag.rowId === row.id ? ctx.drag : null;\n return (\n <>\n {row.blocks.map((block) => {\n const live = mine?.blockId === block.id ? mine : null;\n const start = live ? live.start : block.start;\n const end = live ? live.end : block.end;\n return (\n <RulerBlock\n key={block.id}\n row={row}\n block={block}\n span={spanOf(start, end, ctx.scale)}\n at={{ start, end }}\n text={live?.moved ? formatRange(start, end) : block.label}\n ctx={ctx}\n testId={`${ctx.testId}-block-${block.id}`}\n />\n );\n })}\n {mine && mine.mode === 'create' ? <CreatePreview row={row} drag={mine} ctx={ctx} /> : null}\n </>\n );\n}\n\n/** The block a create drag is drawing, with its live hours. */\nfunction CreatePreview({ row, drag, ctx }: { row: DayRulerRow; drag: RulerDrag; ctx: RowContext }): React.JSX.Element {\n const range = formatRange(drag.start, drag.end);\n return (\n <RulerBlock\n row={row}\n block={{ id: '\\u0000new', start: drag.start, end: drag.end, label: range, tone: 'plan' }}\n span={spanOf(drag.start, Math.max(drag.end, drag.start + ctx.scale.snap), ctx.scale)}\n at={{ start: drag.start, end: drag.end }}\n text={range}\n ctx={ctx}\n testId={`${ctx.testId}-preview`}\n />\n );\n}\n\n/** The real shift under the blocks, and its label at its start. */\nfunction Actual({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element | null {\n const { actual } = row;\n if (!actual) return null;\n return (\n <>\n <Box sx={actualSx(spanOf(actual.start, actual.end, ctx.scale))} data-testid={`${ctx.testId}-actual-${row.id}`} />\n {row.actualLabel ? (\n <Box component=\"span\" sx={actualLabelSx(percentOf(actual.start, ctx.scale.from, ctx.scale.to))}>\n {row.actualLabel}\n </Box>\n ) : null}\n </>\n );\n}\n\n/** A row's track: the actual bar, its blocks (or the one being dragged, live) and the now line. */\nfunction Track({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element {\n const { scale, now, can, dragApi } = ctx;\n const showNow = now !== undefined && now >= scale.from && now <= scale.to;\n return (\n <Box\n sx={trackSx({ hours: scale.to - scale.from, tickHours: scale.tickHours, interactive: can.create })}\n data-dr-track=\"\"\n data-testid={`${ctx.testId}-track-${row.id}`}\n role={can.create ? 'group' : undefined}\n tabIndex={can.create ? 0 : undefined}\n aria-label={can.create ? ctx.createLabel(row.label) : undefined}\n onPointerDown={can.create ? (event: React.PointerEvent<HTMLElement>) => dragApi.startCreate(event, row.id) : undefined}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (!can.create || event.target !== event.currentTarget || (event.key !== 'Enter' && event.key !== ' ')) return;\n event.preventDefault();\n ctx.onKeyCreate(row);\n }}\n >\n <Actual row={row} ctx={ctx} />\n <Blocks row={row} ctx={ctx} />\n {showNow ? <Box sx={nowSx(percentOf(now, scale.from, scale.to))} data-testid={`${ctx.testId}-now`} /> : null}\n </Box>\n );\n}\n\n/** One person: name, meta and chips · the track · the row's actions. */\nexport function RulerRow({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element {\n return (\n <Box sx={rowSx} data-testid={`${ctx.testId}-row-${row.id}`} role=\"listitem\">\n <ScheduleNameCell row={row} sx={whoSx} sizes={{ name: M.name, meta: M.meta, chipsTop: 0.75 }} />\n <Track row={row} ctx={ctx} />\n <Box sx={actionsSx}>{row.actions}</Box>\n </Box>\n );\n}\n\n/** \"Na escala, por hora\": a count per hour above the axis. */\nexport function Coverage(props: { coverage: readonly number[]; label?: string; scale: RulerScale; testId: string }): React.JSX.Element {\n const { coverage, label, scale, testId } = props;\n const hours = scale.to - scale.from;\n return (\n <Box sx={lineSx} data-testid={`${testId}-coverage`}>\n <Box component=\"span\" sx={coverageLabelSx}>\n {label}\n </Box>\n <Box sx={coverageSx(hours)}>\n {Array.from({ length: hours }, (_, index) => {\n const count = coverage[index] ?? 0;\n return (\n <Box key={index} component=\"span\" sx={coverageCellSx(count)} title={`${formatHour(scale.from + index)} · ${count}`}>\n {count > 0 ? count : ''}\n </Box>\n );\n })}\n </Box>\n <span />\n </Box>\n );\n}\n\n/** The points of a trend over the hours' centres, in a 100 × 40 box: the highest value near the top, `null` breaks nothing (it is skipped). */\nexport function trendPoints(values: readonly (number | null)[], hours: number): string {\n const present = values.slice(0, hours).filter((value): value is number => value !== null);\n const max = Math.max(0, ...present);\n return values\n .slice(0, hours)\n .flatMap((value, index) => {\n if (value === null) return [];\n const x = ((index + 0.5) * 100) / hours;\n const y = max > 0 ? 38 - (value / max) * 34 : 38;\n return [`${x.toFixed(2)},${y.toFixed(2)}`];\n })\n .join(' ');\n}\n\n/** One hour's default words: \"20:00 · 4\"; just the hour when it says nothing. */\nconst hourWords = (hour: RulerHour, text: string): string => (text ? `${formatHour(hour)} · ${text}` : formatHour(hour));\n\n/** What a reader hears for a marked hour: the host's `title`, else the hour, its count and that it is short. */\nfunction markedWords(cell: DayRulerFooterCell, hour: RulerHour, marked: string): string {\n return cell.title ?? `${hourWords(hour, cell.text)} · ${marked}`;\n}\n\ninterface FooterContext {\n hours: number;\n from: RulerHour;\n /** `labels.footerMarked`. */\n marked: string;\n}\n\nfunction FooterCells({ cells, ctx }: { cells: readonly DayRulerFooterCell[]; ctx: FooterContext }): React.JSX.Element {\n return (\n <Box sx={coverageSx(ctx.hours)}>\n {Array.from({ length: ctx.hours }, (_, index) => {\n const cell = cells[index] ?? { text: '' };\n const hour = ctx.from + index;\n return (\n <Box\n key={index}\n component=\"span\"\n sx={footerCellSx(Boolean(cell.marked))}\n title={cell.marked ? markedWords(cell, hour, ctx.marked) : (cell.title ?? hourWords(hour, cell.text))}\n data-marked={cell.marked ? '' : undefined}\n >\n {/* A marked hour is said in words too, not only by its outline and a tooltip touch never shows. */}\n {cell.marked ? (\n <>\n <span aria-hidden>{cell.text}</span>\n <Box component=\"span\" sx={SR_ONLY_SX}>\n {markedWords(cell, hour, ctx.marked)}\n </Box>\n </>\n ) : (\n cell.text\n )}\n </Box>\n );\n })}\n </Box>\n );\n}\n\n/** A trend's figures in words, for the reader the drawn line does not reach: \"11:00 4 · 12:00 6\". */\nfunction trendWords(values: readonly (number | null)[], ctx: FooterContext): string {\n return values\n .slice(0, ctx.hours)\n .flatMap((value, index) => (value === null ? [] : [`${formatHour(ctx.from + index)} ${Math.round(value * 10) / 10}`]))\n .join(' · ');\n}\n\nfunction FooterFigures({ row, ctx }: { row: DayRulerFooterRow; ctx: FooterContext }): React.JSX.Element {\n if (row.trend) {\n return (\n <Box component=\"span\" sx={{ display: 'block', minWidth: 0 }}>\n <Box component=\"svg\" viewBox=\"0 0 100 40\" preserveAspectRatio=\"none\" sx={trendSx} aria-hidden>\n <polyline fill=\"none\" stroke=\"currentColor\" strokeWidth={1.5} vectorEffect=\"non-scaling-stroke\" points={trendPoints(row.trend, ctx.hours)} />\n </Box>\n <Box component=\"span\" sx={SR_ONLY_SX}>\n {trendWords(row.trend, ctx)}\n </Box>\n </Box>\n );\n }\n if (row.note !== undefined) {\n return (\n <Box component=\"span\" sx={footerNoteSx(Boolean(row.marked))} data-marked={row.marked ? '' : undefined}>\n {row.note}\n </Box>\n );\n }\n return <FooterCells cells={row.cells ?? []} ctx={ctx} />;\n}\n\n/**\n * A group's lines under its rows (FUT-3882): counts per hour, a trend, or a\n * sentence, on the tracks' columns. `marked` is `labels.footerMarked`.\n */\nexport function GroupFooter(props: { rows: readonly DayRulerFooterRow[]; scale: RulerScale; testId: string; marked: string }): React.JSX.Element {\n const { rows, scale, testId } = props;\n const ctx: FooterContext = { hours: scale.to - scale.from, from: scale.from, marked: props.marked };\n return (\n <>\n {rows.map((row) => (\n <Box key={row.id} sx={lineSx} data-testid={`${testId}-footer-${row.id}`}>\n <Box component=\"span\" sx={coverageLabelSx}>\n {row.label}\n </Box>\n <FooterFigures row={row} ctx={ctx} />\n <span />\n </Box>\n ))}\n </>\n );\n}\n\n/** The hour labels under the coverage row. */\nexport function Axis({ scale, testId }: { scale: RulerScale; testId: string }): React.JSX.Element {\n return (\n <Box sx={lineSx} data-testid={`${testId}-axis`} aria-hidden>\n <span />\n <Box sx={axisSx}>\n {ticksOf(scale.from, scale.to, scale.tickHours).map((h) => (\n <span key={h} style={{ left: `${percentOf(h, scale.from, scale.to)}%` }}>\n {formatHour(h)}\n </span>\n ))}\n </Box>\n <span />\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MapPreview
3
- } from "./chunk-U2AEM3K4.js";
3
+ } from "./chunk-3PQL2EN5.js";
4
4
 
5
5
  // src/components/data-display/FleetMap/FleetCanvas.tsx
6
6
  import Box from "@mui/material/Box/index.js";
@@ -38,4 +38,4 @@ function FleetCanvas({
38
38
  export {
39
39
  FleetCanvas
40
40
  };
41
- //# sourceMappingURL=chunk-YGQM6GFQ.js.map
41
+ //# sourceMappingURL=chunk-VHE7UEG5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Chart
3
- } from "./chunk-M3XJVD5G.js";
3
+ } from "./chunk-5357QUVE.js";
4
4
  import {
5
5
  CHART_SEMANTIC_COLORS,
6
6
  specToChartProps
@@ -46,4 +46,4 @@ var SpecChart = ({
46
46
  export {
47
47
  SpecChart
48
48
  };
49
- //# sourceMappingURL=chunk-QHIWV55K.js.map
49
+ //# sourceMappingURL=chunk-VWRXSBT2.js.map
@@ -3,14 +3,14 @@ import {
3
3
  } from "./chunk-YNVTUQ5B.js";
4
4
  import {
5
5
  DataViewsGrid
6
- } from "./chunk-JN2IANXD.js";
6
+ } from "./chunk-R4LCPPKA.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
10
10
  import {
11
11
  ViewDialogs,
12
12
  ViewMutationErrorAlert
13
- } from "./chunk-5E2CRRD4.js";
13
+ } from "./chunk-66VKX6JE.js";
14
14
  import {
15
15
  useUrlEchoGuard,
16
16
  useUrlSyncState
@@ -166,4 +166,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
166
166
  export {
167
167
  DataViewsTableBase
168
168
  };
169
- //# sourceMappingURL=chunk-4KWDNGMA.js.map
169
+ //# sourceMappingURL=chunk-W2KOP27S.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  partTestId
3
- } from "./chunk-HC6OZ7QK.js";
3
+ } from "./chunk-3EIRRLCQ.js";
4
4
  import {
5
5
  SETTING_CARD
6
6
  } from "./chunk-BFRVMCQM.js";
7
7
  import {
8
8
  InteractiveTooltip
9
- } from "./chunk-G3JFESKD.js";
9
+ } from "./chunk-Z5WUSI47.js";
10
10
  import {
11
11
  Icon
12
12
  } from "./chunk-YEKPQAOW.js";
@@ -92,4 +92,4 @@ export {
92
92
  SummaryInfo,
93
93
  useSummaryInfo
94
94
  };
95
- //# sourceMappingURL=chunk-TSEBMVYY.js.map
95
+ //# sourceMappingURL=chunk-X2GWR75Q.js.map
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  FilterDialog,
3
3
  GridFilterPanel
4
- } from "./chunk-L3PDY7CJ.js";
4
+ } from "./chunk-CKQOYPH3.js";
5
5
  import {
6
6
  ShellEmpty
7
7
  } from "./chunk-MKVDHR3B.js";
8
8
  import {
9
9
  InlineFilterControls
10
- } from "./chunk-XILMDEGZ.js";
10
+ } from "./chunk-AI7XWBNG.js";
11
11
  import {
12
12
  GridHeaderRow
13
13
  } from "./chunk-X3AFXHY5.js";
14
14
  import {
15
15
  GridMain
16
- } from "./chunk-NKEFH3RS.js";
16
+ } from "./chunk-XNAI7QGU.js";
17
17
  import {
18
18
  DataViewsPagination
19
19
  } from "./chunk-XZFTRGRW.js";
@@ -24,9 +24,13 @@ import {
24
24
  toOverflowFields,
25
25
  toggleQuick
26
26
  } from "./chunk-KYUEO2IO.js";
27
+ import {
28
+ allOnPageSelected,
29
+ resolveSelectionExtra
30
+ } from "./chunk-5YDS6HO3.js";
27
31
  import {
28
32
  ScopeTabsSlot
29
- } from "./chunk-K3PMMW23.js";
33
+ } from "./chunk-K6VEN5VN.js";
30
34
  import {
31
35
  ShellToolbar
32
36
  } from "./chunk-Z2WZDVGG.js";
@@ -34,17 +38,13 @@ import {
34
38
  SHELL_PROPS,
35
39
  useStickyBarTop
36
40
  } from "./chunk-4IE66GY2.js";
37
- import {
38
- allOnPageSelected,
39
- resolveSelectionExtra
40
- } from "./chunk-5YDS6HO3.js";
41
- import {
42
- togglePillValues
43
- } from "./chunk-UKNMPGEM.js";
44
41
  import {
45
42
  DataViewsLayoutProvider,
46
43
  useDataViewsLayout
47
44
  } from "./chunk-5CAWRMDX.js";
45
+ import {
46
+ togglePillValues
47
+ } from "./chunk-UKNMPGEM.js";
48
48
  import {
49
49
  useDataViewsCopy
50
50
  } from "./chunk-KHG57NAE.js";
@@ -252,4 +252,4 @@ function GridShell(props) {
252
252
  export {
253
253
  GridShell
254
254
  };
255
- //# sourceMappingURL=chunk-JKZPGCN7.js.map
255
+ //# sourceMappingURL=chunk-X3GD3TFI.js.map
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-KHG57NAE.js";
29
29
  import {
30
30
  DataGrid
31
- } from "./chunk-BLZDSCIZ.js";
31
+ } from "./chunk-DYHOBKPU.js";
32
32
  import {
33
33
  default as default2
34
34
  } from "./chunk-6DPAWXZ3.js";
@@ -250,4 +250,4 @@ function GridMain(props) {
250
250
  export {
251
251
  GridMain
252
252
  };
253
- //# sourceMappingURL=chunk-NKEFH3RS.js.map
253
+ //# sourceMappingURL=chunk-XNAI7QGU.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  SequenceOverviewBody
3
- } from "./chunk-WH3LUOCQ.js";
3
+ } from "./chunk-YE7M7URT.js";
4
4
  import {
5
5
  SequenceDoneBody,
6
6
  SequenceIntroBody,
7
7
  SequenceStepBody
8
- } from "./chunk-RDCIST7P.js";
8
+ } from "./chunk-OCT5VCLP.js";
9
9
  import {
10
10
  SequenceHeader
11
11
  } from "./chunk-JO6D7YGN.js";
@@ -225,4 +225,4 @@ function SequenceResolver(props) {
225
225
  export {
226
226
  SequenceResolver
227
227
  };
228
- //# sourceMappingURL=chunk-L6JAALMX.js.map
228
+ //# sourceMappingURL=chunk-XRV4QFEQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useFocusOnScreen
3
- } from "./chunk-RDCIST7P.js";
3
+ } from "./chunk-OCT5VCLP.js";
4
4
  import {
5
5
  actionSx,
6
6
  categoryDescriptionSx,
@@ -47,4 +47,4 @@ function SequenceOverviewBody(props) {
47
47
  export {
48
48
  SequenceOverviewBody
49
49
  };
50
- //# sourceMappingURL=chunk-WH3LUOCQ.js.map
50
+ //# sourceMappingURL=chunk-YE7M7URT.js.map
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  FleetBody
3
- } from "./chunk-WCF56ZCD.js";
4
- import {
5
- useFleetMap
6
- } from "./chunk-ZCPSND5Y.js";
3
+ } from "./chunk-TMINUTQQ.js";
7
4
  import {
8
5
  FLEET_DEFAULT_LAGGING_AFTER_SECONDS,
9
6
  FLEET_DEFAULT_STALE_AFTER_SECONDS,
10
7
  FLEET_PANEL
11
8
  } from "./chunk-BTQZ3EX3.js";
9
+ import {
10
+ useFleetMap
11
+ } from "./chunk-ZCPSND5Y.js";
12
12
  import {
13
13
  SR_ONLY_SX
14
14
  } from "./chunk-PUFA7FQ7.js";
15
15
  import {
16
16
  EmptyState
17
- } from "./chunk-42TOCPXB.js";
17
+ } from "./chunk-LXIPBHNJ.js";
18
18
  import {
19
19
  rem
20
20
  } from "./chunk-YKCAJ2TN.js";
@@ -117,4 +117,4 @@ export {
117
117
  FleetMap,
118
118
  FleetMap_default
119
119
  };
120
- //# sourceMappingURL=chunk-DA3D5X5Z.js.map
120
+ //# sourceMappingURL=chunk-YVDNCV2D.js.map
@@ -1,8 +1,3 @@
1
- import {
2
- resolveTooltipProps,
3
- useHoverOpen,
4
- usePinnedTooltip
5
- } from "./chunk-QYJ25FWM.js";
6
1
  import {
7
2
  arrowColor,
8
3
  emphasisStyles,
@@ -10,6 +5,11 @@ import {
10
5
  tooltipCap,
11
6
  variantStyles
12
7
  } from "./chunk-BCWL7HUO.js";
8
+ import {
9
+ resolveTooltipProps,
10
+ useHoverOpen,
11
+ usePinnedTooltip
12
+ } from "./chunk-QYJ25FWM.js";
13
13
 
14
14
  // src/components/data-display/InteractiveTooltip/InteractiveTooltip.tsx
15
15
  import MuiTooltip from "@mui/material/Tooltip/index.js";
@@ -96,4 +96,4 @@ InteractiveTooltip.displayName = "InteractiveTooltip";
96
96
  export {
97
97
  InteractiveTooltip
98
98
  };
99
- //# sourceMappingURL=chunk-G3JFESKD.js.map
99
+ //# sourceMappingURL=chunk-Z5WUSI47.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  useSummaryInfo
3
- } from "./chunk-TSEBMVYY.js";
3
+ } from "./chunk-X2GWR75Q.js";
4
4
  import {
5
5
  PendingSpinner,
6
6
  SaveError,
7
7
  SettingHeader,
8
8
  partTestId
9
- } from "./chunk-HC6OZ7QK.js";
9
+ } from "./chunk-3EIRRLCQ.js";
10
10
  import {
11
11
  clampStyles,
12
12
  descriptionStyles
@@ -87,4 +87,4 @@ export {
87
87
  useSettingSwitchIds,
88
88
  SettingSwitchBlock
89
89
  };
90
- //# sourceMappingURL=chunk-5HADIIWN.js.map
90
+ //# sourceMappingURL=chunk-ZDAAHCIS.js.map
@@ -5,10 +5,11 @@ var PT_BR_DAY_RULER_LABELS = {
5
5
  resized: (block, range) => `${block} agora ${range}`,
6
6
  refused: "N\xE3o d\xE1 para ir al\xE9m",
7
7
  notMovable: "Este turno n\xE3o muda por aqui",
8
- loading: "Carregando o dia"
8
+ loading: "Carregando o dia",
9
+ footerMarked: "falta gente"
9
10
  };
10
11
 
11
12
  export {
12
13
  PT_BR_DAY_RULER_LABELS
13
14
  };
14
- //# sourceMappingURL=chunk-D3OXTS7Y.js.map
15
+ //# sourceMappingURL=chunk-ZHCZOPKE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/data-display/DayRuler/DayRuler.pt-BR.ts"],"sourcesContent":["/** `DayRuler`'s pt-BR words. A pt-BR host passes `DAY_RULER_LABELS['pt-BR']` (or this) to `labels`. */\nimport type { DayRulerLabels } from './DayRuler.labels';\n\nexport const PT_BR_DAY_RULER_LABELS: DayRulerLabels = {\n createTrack: (row) => `Agendar ${row}`,\n moved: (block, range) => `${block} agora ${range}`,\n resized: (block, range) => `${block} agora ${range}`,\n refused: \"Não dá para ir além\",\n notMovable: \"Este turno não muda por aqui\",\n loading: \"Carregando o dia\",\n};\n"],"mappings":";AAGO,IAAM,yBAAyC;AAAA,EACpD,aAAa,CAAC,QAAQ,WAAW,GAAG;AAAA,EACpC,OAAO,CAAC,OAAO,UAAU,GAAG,KAAK,UAAU,KAAK;AAAA,EAChD,SAAS,CAAC,OAAO,UAAU,GAAG,KAAK,UAAU,KAAK;AAAA,EAClD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AACX;","names":[]}
1
+ {"version":3,"sources":["../src/components/data-display/DayRuler/DayRuler.pt-BR.ts"],"sourcesContent":["/** `DayRuler`'s pt-BR words. A pt-BR host passes `DAY_RULER_LABELS['pt-BR']` (or this) to `labels`. */\nimport type { DayRulerLabels } from './DayRuler.labels';\n\nexport const PT_BR_DAY_RULER_LABELS: DayRulerLabels = {\n createTrack: (row) => `Agendar ${row}`,\n moved: (block, range) => `${block} agora ${range}`,\n resized: (block, range) => `${block} agora ${range}`,\n refused: \"Não dá para ir além\",\n notMovable: \"Este turno não muda por aqui\",\n loading: \"Carregando o dia\",\n footerMarked: \"falta gente\",\n};\n"],"mappings":";AAGO,IAAM,yBAAyC;AAAA,EACpD,aAAa,CAAC,QAAQ,WAAW,GAAG;AAAA,EACpC,OAAO,CAAC,OAAO,UAAU,GAAG,KAAK,UAAU,KAAK;AAAA,EAChD,SAAS,CAAC,OAAO,UAAU,GAAG,KAAK,UAAU,KAAK;AAAA,EAClD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,cAAc;AAChB;","names":[]}
@@ -1,11 +1,11 @@
1
1
  import "../chunk-NUGT7LMR.js";
2
2
  import {
3
3
  Alert
4
- } from "../chunk-QVDEGBME.js";
4
+ } from "../chunk-PEAUGQKU.js";
5
+ import "../chunk-QXUXO22M.js";
5
6
  import "../chunk-7HZ36QDH.js";
6
7
  import "../chunk-L5RS6QAT.js";
7
8
  import "../chunk-L7VH6IMR.js";
8
- import "../chunk-QXUXO22M.js";
9
9
  import "../chunk-5ZY3IIIG.js";
10
10
  import "../chunk-TYJR4GOF.js";
11
11
  import "../chunk-2FBGDSGC.js";
@@ -1,7 +1,7 @@
1
1
  import "../chunk-SX3E6UC2.js";
2
2
  import {
3
3
  AsyncStateContainer
4
- } from "../chunk-76DX2IMH.js";
4
+ } from "../chunk-7F6D73NL.js";
5
5
  import "../chunk-HBH7V3IP.js";
6
6
  import "../chunk-TLGGVE56.js";
7
7
  import "../chunk-3Z6JX7UN.js";
@@ -12,9 +12,9 @@ import "../chunk-QD4TM6UK.js";
12
12
  import "../chunk-EMPVMZAB.js";
13
13
  import "../chunk-7WDPC46N.js";
14
14
  import "../chunk-LL2BWQPM.js";
15
- import "../chunk-42TOCPXB.js";
16
- import "../chunk-MWFSIB6K.js";
15
+ import "../chunk-LXIPBHNJ.js";
17
16
  import "../chunk-KLPTOVIX.js";
17
+ import "../chunk-MWFSIB6K.js";
18
18
  import "../chunk-XOXXG7Q5.js";
19
19
  import "../chunk-TYJR4GOF.js";
20
20
  import "../chunk-7ZPUN7TV.js";
@@ -1,11 +1,11 @@
1
1
  import "../chunk-5AK2EZG5.js";
2
2
  import {
3
3
  Badge
4
- } from "../chunk-N5PVD4J5.js";
5
- import "../chunk-6C5D6O3D.js";
4
+ } from "../chunk-6DO672AG.js";
6
5
  import "../chunk-ZNCYCE7L.js";
7
6
  import "../chunk-2L3VRVRE.js";
8
7
  import "../chunk-BJE3XHD4.js";
8
+ import "../chunk-6C5D6O3D.js";
9
9
  import "../chunk-3UIDKLML.js";
10
10
  import "../chunk-PYC4CWCQ.js";
11
11
  import "../chunk-TYJR4GOF.js";