@12-apps/ui 6.92.2 → 6.93.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/components-catalog.md +10 -3
  2. package/components-guidelines.md +30 -0
  3. package/dist/_internal/components/data-display/Alert/Alert.js +2 -2
  4. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +2 -2
  5. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +9 -3
  6. package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -3
  7. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  8. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  9. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -3
  10. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +10 -10
  11. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +7 -7
  12. package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
  13. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  14. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  15. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  16. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  17. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  18. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +34 -34
  19. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +48 -48
  20. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +7 -7
  21. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +3 -3
  22. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +3 -3
  23. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
  24. package/dist/_internal/components/data-display/DataViews/base-list-card.js +6 -6
  25. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +3 -3
  26. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +6 -6
  27. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +5 -5
  28. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +28 -28
  29. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +10 -10
  30. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +7 -7
  31. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +8 -8
  32. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +3 -3
  33. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +5 -5
  34. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
  35. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +7 -7
  36. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +10 -10
  37. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +6 -6
  38. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  39. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +4 -4
  40. package/dist/_internal/components/data-display/DayRuler/DayRuler.footer.js +25 -0
  41. package/dist/_internal/components/data-display/DayRuler/DayRuler.footer.js.map +1 -0
  42. package/dist/_internal/components/data-display/DayRuler/DayRuler.footer.styles.js +23 -0
  43. package/dist/_internal/components/data-display/DayRuler/DayRuler.footer.styles.js.map +1 -0
  44. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +15 -13
  45. package/dist/_internal/components/data-display/DayRuler/DayRuler.keyboard.js +3 -3
  46. package/dist/_internal/components/data-display/DayRuler/DayRuler.metrics.js +1 -1
  47. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +12 -15
  48. package/dist/_internal/components/data-display/DayRuler/DayRuler.styles.js +3 -11
  49. package/dist/_internal/components/data-display/DayRuler/day-ruler-model.js +5 -1
  50. package/dist/_internal/components/data-display/DayRuler/useRulerDrag.js +3 -3
  51. package/dist/_internal/components/data-display/DayRuler/useTextFits.js +4 -3
  52. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +1 -1
  53. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
  54. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  55. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  56. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
  57. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +2 -2
  58. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +7 -7
  59. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.parts.js +5 -5
  60. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.styles.js +2 -2
  61. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleNameCell.js +3 -3
  62. package/dist/_internal/components/data-display/ScheduleGrid/schedule-name.styles.js +2 -2
  63. package/dist/_internal/components/data-display/ScheduleGrid/schedule-tones.js +3 -1
  64. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  65. package/dist/_internal/components/data-display/Sheet/Sheet.js +3 -3
  66. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  67. package/dist/_internal/components/data-display/index.js +61 -59
  68. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +4 -4
  69. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +3 -3
  70. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +5 -5
  71. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +4 -4
  72. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  73. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js +48 -0
  74. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js.map +1 -0
  75. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +6 -5
  76. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +4 -4
  77. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +3 -3
  78. package/dist/_internal/components/feedback/index.js +15 -14
  79. package/dist/_internal/components/index.js +80 -77
  80. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  81. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +6 -6
  82. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +9 -9
  83. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +3 -3
  84. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +4 -4
  85. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +5 -5
  86. package/dist/_internal/components/navigation/SectionNav/SectionNav.railCreate.js +4 -4
  87. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +4 -4
  88. package/dist/_internal/components/navigation/index.js +13 -13
  89. package/dist/_internal/user-avatar/user-avatar.js +4 -4
  90. package/dist/charts.js +16 -16
  91. package/dist/{chunk-LDCZPZPD.js → chunk-24HHUCWB.js} +2 -2
  92. package/dist/{chunk-7ZQ3KQ7J.js → chunk-273OLFJD.js} +16 -6
  93. package/dist/chunk-273OLFJD.js.map +1 -0
  94. package/dist/{chunk-FAUNQ3FS.js → chunk-2M3W6ACW.js} +3 -3
  95. package/dist/{chunk-ALOEOGQV.js → chunk-3TZUZXY5.js} +2 -2
  96. package/dist/{chunk-4HK4FVMV.js → chunk-3UAHDLKH.js} +7 -1
  97. package/dist/{chunk-4HK4FVMV.js.map → chunk-3UAHDLKH.js.map} +1 -1
  98. package/dist/{chunk-DWH4TQXK.js → chunk-4E2RQOSQ.js} +2 -2
  99. package/dist/{chunk-4QR7LM5F.js → chunk-4J62V5OE.js} +7 -7
  100. package/dist/{chunk-OJZLFFG4.js → chunk-5AZEDQXX.js} +59 -70
  101. package/dist/chunk-5AZEDQXX.js.map +1 -0
  102. package/dist/{chunk-CZVAVX5L.js → chunk-6ATXOJVQ.js} +2 -2
  103. package/dist/{chunk-YE7M7URT.js → chunk-6D5AMANO.js} +2 -2
  104. package/dist/{chunk-Q3SILZTQ.js → chunk-6LGKJVOA.js} +2 -2
  105. package/dist/{chunk-ZCNR4DN5.js → chunk-7WE432RQ.js} +12 -12
  106. package/dist/{chunk-EOQ6EKTS.js → chunk-7XSCEHGA.js} +7 -7
  107. package/dist/{chunk-B5STMM3R.js → chunk-ALMGYCHY.js} +2 -2
  108. package/dist/{chunk-5357QUVE.js → chunk-AMLHEKSV.js} +5 -5
  109. package/dist/{chunk-3I5PHWKQ.js → chunk-ASEHJIIV.js} +6 -6
  110. package/dist/{chunk-64UNVW6D.js → chunk-BP3ZKIPE.js} +4 -4
  111. package/dist/{chunk-OCT5VCLP.js → chunk-BQBEN44R.js} +2 -2
  112. package/dist/{chunk-FYUNROLW.js → chunk-BZYLTGOE.js} +2 -2
  113. package/dist/{chunk-TZ44F6W7.js → chunk-CGS2LQE5.js} +2 -2
  114. package/dist/chunk-CPQJFHNZ.js +63 -0
  115. package/dist/chunk-CPQJFHNZ.js.map +1 -0
  116. package/dist/{chunk-PCQ5JWLF.js → chunk-CWXX5JR3.js} +14 -12
  117. package/dist/chunk-CWXX5JR3.js.map +1 -0
  118. package/dist/{chunk-6HXNFNOB.js → chunk-EE6DJPB7.js} +4 -4
  119. package/dist/{chunk-QE4KYG5I.js → chunk-F2UP5ZF4.js} +6 -6
  120. package/dist/{chunk-P53ANKZV.js → chunk-F7LBTMCA.js} +4 -4
  121. package/dist/{chunk-UDBOGSFO.js → chunk-FGZIEZEP.js} +67 -110
  122. package/dist/chunk-FGZIEZEP.js.map +1 -0
  123. package/dist/{chunk-IWSTMVCA.js → chunk-FKS2PNJF.js} +8 -8
  124. package/dist/{chunk-3WYEENUH.js → chunk-FPNVOB52.js} +7 -7
  125. package/dist/{chunk-E73C73UD.js → chunk-FYSS2PYA.js} +3 -3
  126. package/dist/{chunk-N557OEZR.js → chunk-G6NMSBSQ.js} +2 -2
  127. package/dist/{chunk-A5OERY43.js → chunk-GARM5SX6.js} +2 -2
  128. package/dist/{chunk-66VKX6JE.js → chunk-GXGHEOWC.js} +3 -3
  129. package/dist/{chunk-U2SAW6DH.js → chunk-GY53SDVL.js} +4 -4
  130. package/dist/{chunk-JVOEVTCZ.js → chunk-HQCZT6TO.js} +5 -5
  131. package/dist/{chunk-CNUO2BRV.js → chunk-HWZETMO4.js} +3 -3
  132. package/dist/{chunk-MM3QESLI.js → chunk-ILJ3FXIC.js} +2 -2
  133. package/dist/{chunk-FWTVIRZZ.js → chunk-JVQ56E3U.js} +6 -6
  134. package/dist/{chunk-YOLLISEY.js → chunk-JXK53XJW.js} +9 -9
  135. package/dist/{chunk-K6VEN5VN.js → chunk-K3PMMW23.js} +4 -4
  136. package/dist/{chunk-T5RFH2T5.js → chunk-KOGJBAFI.js} +2 -2
  137. package/dist/{chunk-COK65GX2.js → chunk-KURE5R7Z.js} +12 -2
  138. package/dist/chunk-KURE5R7Z.js.map +1 -0
  139. package/dist/{chunk-EKSJES5E.js → chunk-KXDLLS62.js} +3 -3
  140. package/dist/{chunk-LE5JYNR7.js → chunk-L5CAHQIN.js} +23 -2
  141. package/dist/chunk-L5CAHQIN.js.map +1 -0
  142. package/dist/{chunk-DBI6AMNY.js → chunk-LKWXU6NH.js} +4 -4
  143. package/dist/{chunk-56JF5PZK.js → chunk-LYVTJLCF.js} +4 -4
  144. package/dist/{chunk-NXQ6PXLJ.js → chunk-LZ5PGB7U.js} +2 -2
  145. package/dist/chunk-MPVH2GM5.js +83 -0
  146. package/dist/chunk-MPVH2GM5.js.map +1 -0
  147. package/dist/{chunk-5I75WRXT.js → chunk-N3GLX64O.js} +4 -4
  148. package/dist/{chunk-6DO672AG.js → chunk-N5PVD4J5.js} +7 -7
  149. package/dist/{chunk-PEAUGQKU.js → chunk-NQCTANF3.js} +7 -7
  150. package/dist/{chunk-ZYZPSBNQ.js → chunk-OGSTMHT6.js} +22 -7
  151. package/dist/chunk-OGSTMHT6.js.map +1 -0
  152. package/dist/{chunk-W676GY42.js → chunk-P772HCHI.js} +4 -4
  153. package/dist/{chunk-FQNDJITD.js → chunk-RCTHCXS6.js} +2 -2
  154. package/dist/{chunk-VWRXSBT2.js → chunk-SB2SEGR6.js} +3 -3
  155. package/dist/{chunk-Z2WZDVGG.js → chunk-SI5SKX52.js} +2 -2
  156. package/dist/{chunk-RYJ6XGFA.js → chunk-SJAOQGQI.js} +2 -2
  157. package/dist/{chunk-D7R6SRJB.js → chunk-SKQPUAMK.js} +3 -3
  158. package/dist/{chunk-AMIUZRDQ.js → chunk-SNWCT6JN.js} +3 -3
  159. package/dist/{chunk-7W5X3KQ2.js → chunk-SW7JCF4Z.js} +2 -2
  160. package/dist/{chunk-WLLUARTC.js → chunk-T2G4LDU5.js} +2 -2
  161. package/dist/{chunk-BNBWUXT3.js → chunk-TE6HAWDM.js} +2 -2
  162. package/dist/{chunk-JG733RMP.js → chunk-TZC6KIK2.js} +5 -5
  163. package/dist/{chunk-Y3F2F36I.js → chunk-U4Z6GZDW.js} +3 -3
  164. package/dist/{chunk-KQDBOZQE.js → chunk-UIIHUWOV.js} +13 -13
  165. package/dist/{chunk-L4V7FZJI.js → chunk-UKUGSU3Y.js} +2 -2
  166. package/dist/{chunk-D2JQF2WC.js → chunk-UOKXYV3U.js} +5 -5
  167. package/dist/{chunk-K7IDOTSU.js → chunk-VNMD6BA4.js} +2 -2
  168. package/dist/chunk-WG7CAT5D.js +65 -0
  169. package/dist/chunk-WG7CAT5D.js.map +1 -0
  170. package/dist/chunk-WSSD7H5E.js +52 -0
  171. package/dist/chunk-WSSD7H5E.js.map +1 -0
  172. package/dist/{chunk-DTZOP4ZR.js → chunk-XCUHGPPZ.js} +2 -2
  173. package/dist/{chunk-DBPFKGXX.js → chunk-Y7BOP7VZ.js} +3 -3
  174. package/dist/{chunk-BOADHYTA.js → chunk-YNZUYZ2O.js} +2 -2
  175. package/dist/{chunk-XRV4QFEQ.js → chunk-ZBUMGMWP.js} +83 -65
  176. package/dist/chunk-ZBUMGMWP.js.map +1 -0
  177. package/dist/{chunk-XNAI7QGU.js → chunk-ZM6FJCWS.js} +4 -4
  178. package/dist/{chunk-FC7UCFFA.js → chunk-ZPWPA6FR.js} +8 -8
  179. package/dist/data-display/Alert.js +2 -2
  180. package/dist/data-display/AlertDialog.js +2 -2
  181. package/dist/data-display/Avatar.js +3 -3
  182. package/dist/data-display/Badge.js +2 -2
  183. package/dist/data-display/CardKit.js +18 -18
  184. package/dist/data-display/Carousel.js +3 -3
  185. package/dist/data-display/Chart.js +16 -16
  186. package/dist/data-display/DataViews.js +66 -66
  187. package/dist/data-display/DayRuler.js +15 -13
  188. package/dist/data-display/HoverCard.js +1 -1
  189. package/dist/data-display/Lightbox.js +5 -5
  190. package/dist/data-display/RegionMap.js +2 -2
  191. package/dist/data-display/ScheduleGrid.js +9 -9
  192. package/dist/data-display/Sheet.js +3 -3
  193. package/dist/data-display/Table.js +3 -3
  194. package/dist/feedback/ConfirmAction.js +8 -8
  195. package/dist/feedback/NotificationStatusNotice.js +3 -3
  196. package/dist/feedback/SequenceResolver.js +6 -5
  197. package/dist/navigation/AppHeader.js +4 -4
  198. package/dist/navigation/SectionNav.js +9 -9
  199. package/dist/types/components/data-display/AlertDialog/AlertDialog.d.ts.map +1 -1
  200. package/dist/types/components/data-display/AlertDialog/AlertDialog.parts.d.ts +11 -0
  201. package/dist/types/components/data-display/AlertDialog/AlertDialog.parts.d.ts.map +1 -1
  202. package/dist/types/components/data-display/DayRuler/DayRuler.d.ts.map +1 -1
  203. package/dist/types/components/data-display/DayRuler/DayRuler.footer.d.ts +16 -0
  204. package/dist/types/components/data-display/DayRuler/DayRuler.footer.d.ts.map +1 -0
  205. package/dist/types/components/data-display/DayRuler/DayRuler.footer.styles.d.ts +18 -0
  206. package/dist/types/components/data-display/DayRuler/DayRuler.footer.styles.d.ts.map +1 -0
  207. package/dist/types/components/data-display/DayRuler/DayRuler.metrics.d.ts +15 -5
  208. package/dist/types/components/data-display/DayRuler/DayRuler.metrics.d.ts.map +1 -1
  209. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts +13 -14
  210. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts.map +1 -1
  211. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts +20 -23
  212. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts.map +1 -1
  213. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts +13 -3
  214. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts.map +1 -1
  215. package/dist/types/components/data-display/DayRuler/day-ruler-model.d.ts +27 -0
  216. package/dist/types/components/data-display/DayRuler/day-ruler-model.d.ts.map +1 -1
  217. package/dist/types/components/data-display/DayRuler/useTextFits.d.ts +11 -9
  218. package/dist/types/components/data-display/DayRuler/useTextFits.d.ts.map +1 -1
  219. package/dist/types/components/data-display/ScheduleGrid/schedule-tones.d.ts +8 -0
  220. package/dist/types/components/data-display/ScheduleGrid/schedule-tones.d.ts.map +1 -1
  221. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.d.ts +55 -2
  222. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.d.ts.map +1 -1
  223. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.frame.d.ts +16 -0
  224. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.frame.d.ts.map +1 -0
  225. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.types.d.ts +10 -4
  226. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.types.d.ts.map +1 -1
  227. package/dist/user-avatar.js +4 -4
  228. package/package.json +1 -1
  229. package/src/components/data-display/AlertDialog/AlertDialog.md +25 -1
  230. package/src/components/data-display/AlertDialog/AlertDialog.parts.tsx +28 -0
  231. package/src/components/data-display/AlertDialog/AlertDialog.tsx +34 -5
  232. package/src/components/data-display/DayRuler/DayRuler.footer.styles.ts +54 -0
  233. package/src/components/data-display/DayRuler/DayRuler.footer.tsx +123 -0
  234. package/src/components/data-display/DayRuler/DayRuler.md +37 -13
  235. package/src/components/data-display/DayRuler/DayRuler.metrics.ts +15 -5
  236. package/src/components/data-display/DayRuler/DayRuler.parts.tsx +86 -155
  237. package/src/components/data-display/DayRuler/DayRuler.styles.ts +89 -83
  238. package/src/components/data-display/DayRuler/DayRuler.tsx +3 -2
  239. package/src/components/data-display/DayRuler/DayRuler.types.ts +13 -3
  240. package/src/components/data-display/DayRuler/day-ruler-model.ts +45 -0
  241. package/src/components/data-display/DayRuler/useTextFits.ts +68 -25
  242. package/src/components/data-display/ScheduleGrid/schedule-tones.ts +13 -0
  243. package/src/components/feedback/ConfirmAction/ConfirmAction.md +10 -0
  244. package/src/components/feedback/SequenceResolver/SequenceResolver.frame.tsx +71 -0
  245. package/src/components/feedback/SequenceResolver/SequenceResolver.md +2 -2
  246. package/src/components/feedback/SequenceResolver/SequenceResolver.tsx +122 -61
  247. package/src/components/feedback/SequenceResolver/SequenceResolver.types.ts +10 -4
  248. package/dist/chunk-7ZQ3KQ7J.js.map +0 -1
  249. package/dist/chunk-COK65GX2.js.map +0 -1
  250. package/dist/chunk-LE5JYNR7.js.map +0 -1
  251. package/dist/chunk-OJZLFFG4.js.map +0 -1
  252. package/dist/chunk-PCQ5JWLF.js.map +0 -1
  253. package/dist/chunk-UDBOGSFO.js.map +0 -1
  254. package/dist/chunk-XRV4QFEQ.js.map +0 -1
  255. package/dist/chunk-YMYJO2CZ.js +0 -32
  256. package/dist/chunk-YMYJO2CZ.js.map +0 -1
  257. package/dist/chunk-ZYZPSBNQ.js.map +0 -1
  258. /package/dist/{chunk-LDCZPZPD.js.map → chunk-24HHUCWB.js.map} +0 -0
  259. /package/dist/{chunk-FAUNQ3FS.js.map → chunk-2M3W6ACW.js.map} +0 -0
  260. /package/dist/{chunk-ALOEOGQV.js.map → chunk-3TZUZXY5.js.map} +0 -0
  261. /package/dist/{chunk-DWH4TQXK.js.map → chunk-4E2RQOSQ.js.map} +0 -0
  262. /package/dist/{chunk-4QR7LM5F.js.map → chunk-4J62V5OE.js.map} +0 -0
  263. /package/dist/{chunk-CZVAVX5L.js.map → chunk-6ATXOJVQ.js.map} +0 -0
  264. /package/dist/{chunk-YE7M7URT.js.map → chunk-6D5AMANO.js.map} +0 -0
  265. /package/dist/{chunk-Q3SILZTQ.js.map → chunk-6LGKJVOA.js.map} +0 -0
  266. /package/dist/{chunk-ZCNR4DN5.js.map → chunk-7WE432RQ.js.map} +0 -0
  267. /package/dist/{chunk-EOQ6EKTS.js.map → chunk-7XSCEHGA.js.map} +0 -0
  268. /package/dist/{chunk-B5STMM3R.js.map → chunk-ALMGYCHY.js.map} +0 -0
  269. /package/dist/{chunk-5357QUVE.js.map → chunk-AMLHEKSV.js.map} +0 -0
  270. /package/dist/{chunk-3I5PHWKQ.js.map → chunk-ASEHJIIV.js.map} +0 -0
  271. /package/dist/{chunk-64UNVW6D.js.map → chunk-BP3ZKIPE.js.map} +0 -0
  272. /package/dist/{chunk-OCT5VCLP.js.map → chunk-BQBEN44R.js.map} +0 -0
  273. /package/dist/{chunk-FYUNROLW.js.map → chunk-BZYLTGOE.js.map} +0 -0
  274. /package/dist/{chunk-TZ44F6W7.js.map → chunk-CGS2LQE5.js.map} +0 -0
  275. /package/dist/{chunk-6HXNFNOB.js.map → chunk-EE6DJPB7.js.map} +0 -0
  276. /package/dist/{chunk-QE4KYG5I.js.map → chunk-F2UP5ZF4.js.map} +0 -0
  277. /package/dist/{chunk-P53ANKZV.js.map → chunk-F7LBTMCA.js.map} +0 -0
  278. /package/dist/{chunk-IWSTMVCA.js.map → chunk-FKS2PNJF.js.map} +0 -0
  279. /package/dist/{chunk-3WYEENUH.js.map → chunk-FPNVOB52.js.map} +0 -0
  280. /package/dist/{chunk-E73C73UD.js.map → chunk-FYSS2PYA.js.map} +0 -0
  281. /package/dist/{chunk-N557OEZR.js.map → chunk-G6NMSBSQ.js.map} +0 -0
  282. /package/dist/{chunk-A5OERY43.js.map → chunk-GARM5SX6.js.map} +0 -0
  283. /package/dist/{chunk-66VKX6JE.js.map → chunk-GXGHEOWC.js.map} +0 -0
  284. /package/dist/{chunk-U2SAW6DH.js.map → chunk-GY53SDVL.js.map} +0 -0
  285. /package/dist/{chunk-JVOEVTCZ.js.map → chunk-HQCZT6TO.js.map} +0 -0
  286. /package/dist/{chunk-CNUO2BRV.js.map → chunk-HWZETMO4.js.map} +0 -0
  287. /package/dist/{chunk-MM3QESLI.js.map → chunk-ILJ3FXIC.js.map} +0 -0
  288. /package/dist/{chunk-FWTVIRZZ.js.map → chunk-JVQ56E3U.js.map} +0 -0
  289. /package/dist/{chunk-YOLLISEY.js.map → chunk-JXK53XJW.js.map} +0 -0
  290. /package/dist/{chunk-K6VEN5VN.js.map → chunk-K3PMMW23.js.map} +0 -0
  291. /package/dist/{chunk-T5RFH2T5.js.map → chunk-KOGJBAFI.js.map} +0 -0
  292. /package/dist/{chunk-EKSJES5E.js.map → chunk-KXDLLS62.js.map} +0 -0
  293. /package/dist/{chunk-DBI6AMNY.js.map → chunk-LKWXU6NH.js.map} +0 -0
  294. /package/dist/{chunk-56JF5PZK.js.map → chunk-LYVTJLCF.js.map} +0 -0
  295. /package/dist/{chunk-NXQ6PXLJ.js.map → chunk-LZ5PGB7U.js.map} +0 -0
  296. /package/dist/{chunk-5I75WRXT.js.map → chunk-N3GLX64O.js.map} +0 -0
  297. /package/dist/{chunk-6DO672AG.js.map → chunk-N5PVD4J5.js.map} +0 -0
  298. /package/dist/{chunk-PEAUGQKU.js.map → chunk-NQCTANF3.js.map} +0 -0
  299. /package/dist/{chunk-W676GY42.js.map → chunk-P772HCHI.js.map} +0 -0
  300. /package/dist/{chunk-FQNDJITD.js.map → chunk-RCTHCXS6.js.map} +0 -0
  301. /package/dist/{chunk-VWRXSBT2.js.map → chunk-SB2SEGR6.js.map} +0 -0
  302. /package/dist/{chunk-Z2WZDVGG.js.map → chunk-SI5SKX52.js.map} +0 -0
  303. /package/dist/{chunk-RYJ6XGFA.js.map → chunk-SJAOQGQI.js.map} +0 -0
  304. /package/dist/{chunk-D7R6SRJB.js.map → chunk-SKQPUAMK.js.map} +0 -0
  305. /package/dist/{chunk-AMIUZRDQ.js.map → chunk-SNWCT6JN.js.map} +0 -0
  306. /package/dist/{chunk-7W5X3KQ2.js.map → chunk-SW7JCF4Z.js.map} +0 -0
  307. /package/dist/{chunk-WLLUARTC.js.map → chunk-T2G4LDU5.js.map} +0 -0
  308. /package/dist/{chunk-BNBWUXT3.js.map → chunk-TE6HAWDM.js.map} +0 -0
  309. /package/dist/{chunk-JG733RMP.js.map → chunk-TZC6KIK2.js.map} +0 -0
  310. /package/dist/{chunk-Y3F2F36I.js.map → chunk-U4Z6GZDW.js.map} +0 -0
  311. /package/dist/{chunk-KQDBOZQE.js.map → chunk-UIIHUWOV.js.map} +0 -0
  312. /package/dist/{chunk-L4V7FZJI.js.map → chunk-UKUGSU3Y.js.map} +0 -0
  313. /package/dist/{chunk-D2JQF2WC.js.map → chunk-UOKXYV3U.js.map} +0 -0
  314. /package/dist/{chunk-K7IDOTSU.js.map → chunk-VNMD6BA4.js.map} +0 -0
  315. /package/dist/{chunk-DTZOP4ZR.js.map → chunk-XCUHGPPZ.js.map} +0 -0
  316. /package/dist/{chunk-DBPFKGXX.js.map → chunk-Y7BOP7VZ.js.map} +0 -0
  317. /package/dist/{chunk-BOADHYTA.js.map → chunk-YNZUYZ2O.js.map} +0 -0
  318. /package/dist/{chunk-XNAI7QGU.js.map → chunk-ZM6FJCWS.js.map} +0 -0
  319. /package/dist/{chunk-FC7UCFFA.js.map → chunk-ZPWPA6FR.js.map} +0 -0
@@ -3,18 +3,18 @@ import {
3
3
  } from "./chunk-YNVTUQ5B.js";
4
4
  import {
5
5
  DataViewsGrid
6
- } from "./chunk-CNUO2BRV.js";
6
+ } from "./chunk-HWZETMO4.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
10
- import {
11
- ViewDialogs,
12
- ViewMutationErrorAlert
13
- } from "./chunk-66VKX6JE.js";
14
10
  import {
15
11
  useUrlEchoGuard,
16
12
  useUrlSyncState
17
13
  } from "./chunk-G6EJLEVV.js";
14
+ import {
15
+ ViewDialogs,
16
+ ViewMutationErrorAlert
17
+ } from "./chunk-GXGHEOWC.js";
18
18
  import {
19
19
  useSavedViewsController
20
20
  } from "./chunk-B2JSUFDX.js";
@@ -166,4 +166,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
166
166
  export {
167
167
  DataViewsTableBase
168
168
  };
169
- //# sourceMappingURL=chunk-3I5PHWKQ.js.map
169
+ //# sourceMappingURL=chunk-ASEHJIIV.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- thumbnailStripSx
3
- } from "./chunk-VQU3CBAL.js";
4
1
  import {
5
2
  useLightboxCopy
6
3
  } from "./chunk-TEQYTEM2.js";
4
+ import {
5
+ thumbnailStripSx
6
+ } from "./chunk-VQU3CBAL.js";
7
7
  import {
8
8
  onMedia,
9
9
  sheen
@@ -89,4 +89,4 @@ var LightboxThumbnails = ({
89
89
  export {
90
90
  LightboxThumbnails
91
91
  };
92
- //# sourceMappingURL=chunk-64UNVW6D.js.map
92
+ //# sourceMappingURL=chunk-BP3ZKIPE.js.map
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-2ORD2FMN.js";
18
18
  import {
19
19
  Alert
20
- } from "./chunk-PEAUGQKU.js";
20
+ } from "./chunk-NQCTANF3.js";
21
21
  import {
22
22
  Button
23
23
  } from "./chunk-YOXYSAUI.js";
@@ -160,4 +160,4 @@ export {
160
160
  SequenceStepBody,
161
161
  SequenceDoneBody
162
162
  };
163
- //# sourceMappingURL=chunk-OCT5VCLP.js.map
163
+ //# sourceMappingURL=chunk-BQBEN44R.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-AJ6KFHEE.js";
4
4
  import {
5
5
  PanelRangeField
6
- } from "./chunk-3WYEENUH.js";
6
+ } from "./chunk-FPNVOB52.js";
7
7
  import {
8
8
  useDataViewsCopy
9
9
  } from "./chunk-KHG57NAE.js";
@@ -157,4 +157,4 @@ export {
157
157
  GridFilterPanel,
158
158
  FilterDialog
159
159
  };
160
- //# sourceMappingURL=chunk-FYUNROLW.js.map
160
+ //# sourceMappingURL=chunk-BZYLTGOE.js.map
@@ -4,7 +4,7 @@ import {
4
4
  nameButtonSx,
5
5
  nameLineSx,
6
6
  nameTextSx
7
- } from "./chunk-A5OERY43.js";
7
+ } from "./chunk-GARM5SX6.js";
8
8
 
9
9
  // src/components/data-display/ScheduleGrid/ScheduleNameCell.tsx
10
10
  import Box from "@mui/material/Box/index.js";
@@ -25,4 +25,4 @@ function ScheduleNameCell({ row, sx, role, sizes }) {
25
25
  export {
26
26
  ScheduleNameCell
27
27
  };
28
- //# sourceMappingURL=chunk-TZ44F6W7.js.map
28
+ //# sourceMappingURL=chunk-CGS2LQE5.js.map
@@ -0,0 +1,63 @@
1
+ import {
2
+ SequenceHeader
3
+ } from "./chunk-JO6D7YGN.js";
4
+ import {
5
+ chromeSx,
6
+ columnSx,
7
+ paperSx,
8
+ scrollBodySx
9
+ } from "./chunk-2ORD2FMN.js";
10
+ import {
11
+ Dialog
12
+ } from "./chunk-DAFFZED3.js";
13
+
14
+ // src/components/feedback/SequenceResolver/SequenceResolver.frame.tsx
15
+ import Box from "@mui/material/Box/index.js";
16
+ import { jsx, jsxs } from "react/jsx-runtime";
17
+ function escapeCloses(close) {
18
+ return (event) => {
19
+ if (event.key !== "Escape" || event.defaultPrevented) return;
20
+ event.stopPropagation();
21
+ close();
22
+ };
23
+ }
24
+ function swallowClick(event) {
25
+ event.preventDefault();
26
+ event.stopPropagation();
27
+ }
28
+ function ResolverFrame(props) {
29
+ const { shown, exiting, touch, titleId, testId, labels, screen, close } = props;
30
+ return /* @__PURE__ */ jsx(
31
+ Dialog,
32
+ {
33
+ open: shown,
34
+ onClose: close,
35
+ persistent: true,
36
+ variant: touch ? "bottom-sheet" : "default",
37
+ size: "sm",
38
+ "aria-labelledby": titleId,
39
+ onKeyDown: escapeCloses(close),
40
+ slotProps: { paper: { sx: paperSx(touch) } },
41
+ dataTestId: testId,
42
+ children: /* @__PURE__ */ jsxs(Box, { sx: columnSx, inert: exiting, "aria-hidden": exiting || void 0, onClickCapture: exiting ? swallowClick : void 0, children: [
43
+ /* @__PURE__ */ jsx(Box, { sx: chromeSx, children: /* @__PURE__ */ jsx(
44
+ SequenceHeader,
45
+ {
46
+ touch,
47
+ ...screen.header,
48
+ closeLabel: labels.close,
49
+ onClose: close,
50
+ progressLabel: labels.progress,
51
+ testId
52
+ }
53
+ ) }),
54
+ /* @__PURE__ */ jsx(Box, { sx: scrollBodySx, "data-testid": `${testId}-body`, children: screen.body })
55
+ ] })
56
+ }
57
+ );
58
+ }
59
+
60
+ export {
61
+ ResolverFrame
62
+ };
63
+ //# sourceMappingURL=chunk-CPQJFHNZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/SequenceResolver/SequenceResolver.frame.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport React from 'react';\n\nimport { Dialog } from '../Dialog';\nimport { SequenceHeader } from './SequenceResolver.header';\nimport { chromeSx, columnSx, paperSx, scrollBodySx } from './SequenceResolver.styles';\nimport type { SequenceResolverLabels } from './SequenceResolver.types';\nimport type { Screen } from './SequenceResolver';\n\n/**\n * Esc closes. `persistent` turns MUI's own Esc off together with the veil's\n * click (the prototype's veil does nothing), so Esc is put back here; a popup\n * inside a step that handles its own Esc stops it before it gets here.\n */\nfunction escapeCloses(close: () => void) {\n return (event: React.KeyboardEvent): void => {\n if (event.key !== 'Escape' || event.defaultPrevented) return;\n event.stopPropagation();\n close();\n };\n}\n\nexport interface ResolverFrameProps {\n shown: boolean;\n /** The kept last step is playing its exit: a picture, nothing on it acts. */\n exiting: boolean;\n touch: boolean;\n titleId: string;\n testId: string;\n labels: SequenceResolverLabels;\n screen: Screen;\n close: () => void;\n}\n\nfunction swallowClick(event: React.SyntheticEvent): void {\n event.preventDefault();\n event.stopPropagation();\n}\n\nexport function ResolverFrame(props: ResolverFrameProps): React.JSX.Element {\n const { shown, exiting, touch, titleId, testId, labels, screen, close } = props;\n return (\n <Dialog\n open={shown}\n onClose={close}\n persistent\n variant={touch ? 'bottom-sheet' : 'default'}\n size=\"sm\"\n aria-labelledby={titleId}\n onKeyDown={escapeCloses(close)}\n slotProps={{ paper: { sx: paperSx(touch) } }}\n dataTestId={testId}\n >\n <Box sx={columnSx} inert={exiting} aria-hidden={exiting || undefined} onClickCapture={exiting ? swallowClick : undefined}>\n <Box sx={chromeSx}>\n <SequenceHeader\n touch={touch}\n {...screen.header}\n closeLabel={labels.close}\n onClose={close}\n progressLabel={labels.progress}\n testId={testId}\n />\n </Box>\n <Box sx={scrollBodySx} data-testid={`${testId}-body`}>\n {screen.body}\n </Box>\n </Box>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAqDV,SAEI,KAFJ;AAvCN,SAAS,aAAa,OAAmB;AACvC,SAAO,CAAC,UAAqC;AAC3C,QAAI,MAAM,QAAQ,YAAY,MAAM,iBAAkB;AACtD,UAAM,gBAAgB;AACtB,UAAM;AAAA,EACR;AACF;AAcA,SAAS,aAAa,OAAmC;AACvD,QAAM,eAAe;AACrB,QAAM,gBAAgB;AACxB;AAEO,SAAS,cAAc,OAA8C;AAC1E,QAAM,EAAE,OAAO,SAAS,OAAO,SAAS,QAAQ,QAAQ,QAAQ,MAAM,IAAI;AAC1E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAU;AAAA,MACV,SAAS,QAAQ,iBAAiB;AAAA,MAClC,MAAK;AAAA,MACL,mBAAiB;AAAA,MACjB,WAAW,aAAa,KAAK;AAAA,MAC7B,WAAW,EAAE,OAAO,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE;AAAA,MAC3C,YAAY;AAAA,MAEZ,+BAAC,OAAI,IAAI,UAAU,OAAO,SAAS,eAAa,WAAW,QAAW,gBAAgB,UAAU,eAAe,QAC7G;AAAA,4BAAC,OAAI,IAAI,UACP;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACC,GAAG,OAAO;AAAA,YACX,YAAY,OAAO;AAAA,YACnB,SAAS;AAAA,YACT,eAAe,OAAO;AAAA,YACtB;AAAA;AAAA,QACF,GACF;AAAA,QACA,oBAAC,OAAI,IAAI,cAAc,eAAa,GAAG,MAAM,SAC1C,iBAAO,MACV;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,32 +1,34 @@
1
+ import {
2
+ handleBlockKey,
3
+ keyCreateSpan
4
+ } from "./chunk-U4Z6GZDW.js";
5
+ import {
6
+ GroupFooter
7
+ } from "./chunk-MPVH2GM5.js";
1
8
  import {
2
9
  Axis,
3
10
  Coverage,
4
- GroupFooter,
5
11
  RulerRow
6
- } from "./chunk-UDBOGSFO.js";
12
+ } from "./chunk-FGZIEZEP.js";
7
13
  import {
8
14
  groupTitleSx,
9
15
  rootSx,
10
16
  rowSx,
11
17
  skeletonNameSx,
12
18
  skeletonTrackSx
13
- } from "./chunk-OJZLFFG4.js";
19
+ } from "./chunk-5AZEDQXX.js";
14
20
  import {
15
21
  EN_US_DAY_RULER_LABELS
16
22
  } from "./chunk-F2ZUUEXC.js";
17
- import {
18
- handleBlockKey,
19
- keyCreateSpan
20
- } from "./chunk-Y3F2F36I.js";
21
23
  import {
22
24
  useRulerDrag
23
- } from "./chunk-EKSJES5E.js";
25
+ } from "./chunk-KXDLLS62.js";
24
26
  import {
25
27
  DAY_RULER_METRICS
26
- } from "./chunk-7ZQ3KQ7J.js";
28
+ } from "./chunk-273OLFJD.js";
27
29
  import {
28
30
  SR_ONLY_SX
29
- } from "./chunk-RYJ6XGFA.js";
31
+ } from "./chunk-SJAOQGQI.js";
30
32
  import {
31
33
  useAnnouncer
32
34
  } from "./chunk-35HMJQLO.js";
@@ -106,7 +108,7 @@ function DayRuler(props) {
106
108
  return /* @__PURE__ */ jsxs(
107
109
  Box,
108
110
  {
109
- sx: rootSx(props.rows.some((row) => row.actions !== void 0 && row.actions !== null)),
111
+ sx: rootSx,
110
112
  "data-testid": testId,
111
113
  role: "region",
112
114
  "aria-label": props["aria-label"],
@@ -125,4 +127,4 @@ function DayRuler(props) {
125
127
  export {
126
128
  DayRuler
127
129
  };
128
- //# sourceMappingURL=chunk-PCQ5JWLF.js.map
130
+ //# sourceMappingURL=chunk-CWXX5JR3.js.map
@@ -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 { GroupFooter } from './DayRuler.footer';\nimport { Axis, Coverage, 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}\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,10 +1,10 @@
1
- import {
2
- ColumnsTab
3
- } from "./chunk-WSAUWJFO.js";
4
1
  import {
5
2
  DisplayTab,
6
3
  SortTab
7
4
  } from "./chunk-YEGZIYVM.js";
5
+ import {
6
+ ColumnsTab
7
+ } from "./chunk-WSAUWJFO.js";
8
8
  import {
9
9
  ViewActions,
10
10
  ViewFooter,
@@ -265,4 +265,4 @@ function DataViewsDisplayPanel({
265
265
  export {
266
266
  DataViewsDisplayPanel
267
267
  };
268
- //# sourceMappingURL=chunk-6HXNFNOB.js.map
268
+ //# sourceMappingURL=chunk-EE6DJPB7.js.map
@@ -5,19 +5,19 @@ import {
5
5
  } from "./chunk-T7OIVPCO.js";
6
6
  import {
7
7
  MoreFilters
8
- } from "./chunk-DWH4TQXK.js";
8
+ } from "./chunk-4E2RQOSQ.js";
9
9
  import {
10
10
  PillControl
11
11
  } from "./chunk-AJ6KFHEE.js";
12
+ import {
13
+ QuickChip
14
+ } from "./chunk-AT6UKTH4.js";
12
15
  import {
13
16
  isQuickActive
14
17
  } from "./chunk-KYUEO2IO.js";
15
18
  import {
16
19
  RangePill
17
- } from "./chunk-3WYEENUH.js";
18
- import {
19
- QuickChip
20
- } from "./chunk-AT6UKTH4.js";
20
+ } from "./chunk-FPNVOB52.js";
21
21
  import {
22
22
  CollapsedSearch,
23
23
  InlineKeyword
@@ -251,4 +251,4 @@ function FilterSlots({
251
251
  export {
252
252
  InlineFilterControls
253
253
  };
254
- //# sourceMappingURL=chunk-QE4KYG5I.js.map
254
+ //# sourceMappingURL=chunk-F2UP5ZF4.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  SectionNavSheet
3
- } from "./chunk-DTZOP4ZR.js";
3
+ } from "./chunk-XCUHGPPZ.js";
4
4
  import {
5
5
  RaisedActionButton,
6
6
  raisedLift
7
- } from "./chunk-L4V7FZJI.js";
7
+ } from "./chunk-UKUGSU3Y.js";
8
8
  import {
9
9
  Box,
10
10
  CONTROL_RESET,
@@ -15,7 +15,7 @@ import {
15
15
  destinationControl,
16
16
  focusRing,
17
17
  useMounted
18
- } from "./chunk-LDCZPZPD.js";
18
+ } from "./chunk-24HHUCWB.js";
19
19
  import {
20
20
  barSlots,
21
21
  destinationState,
@@ -327,4 +327,4 @@ export {
327
327
  sectionNavSheetOffset,
328
328
  SectionNavBar
329
329
  };
330
- //# sourceMappingURL=chunk-P53ANKZV.js.map
330
+ //# sourceMappingURL=chunk-F7LBTMCA.js.map
@@ -8,39 +8,34 @@ import {
8
8
  coverageCellSx,
9
9
  coverageLabelSx,
10
10
  coverageSx,
11
- footerCellSx,
12
- footerNoteSx,
13
11
  handleSx,
14
12
  lineSx,
15
13
  nowSx,
16
14
  rowSx,
17
15
  trackSx,
18
- trendSx,
19
16
  whoSx
20
- } from "./chunk-OJZLFFG4.js";
17
+ } from "./chunk-5AZEDQXX.js";
21
18
  import {
22
- useTextFits
23
- } from "./chunk-YMYJO2CZ.js";
19
+ useTextFit
20
+ } from "./chunk-WG7CAT5D.js";
24
21
  import {
25
22
  DAY_RULER_METRICS
26
- } from "./chunk-7ZQ3KQ7J.js";
23
+ } from "./chunk-273OLFJD.js";
27
24
  import {
28
25
  formatHour,
29
26
  formatRange,
27
+ hitBoundsOf,
30
28
  percentOf,
31
29
  ticksOf
32
- } from "./chunk-LE5JYNR7.js";
33
- import {
34
- SR_ONLY_SX
35
- } from "./chunk-RYJ6XGFA.js";
30
+ } from "./chunk-L5CAHQIN.js";
36
31
  import {
37
32
  ScheduleNameCell
38
- } from "./chunk-TZ44F6W7.js";
33
+ } from "./chunk-CGS2LQE5.js";
39
34
 
40
35
  // src/components/data-display/DayRuler/DayRuler.parts.tsx
41
36
  import Box from "@mui/material/Box/index.js";
42
- import { useRef } from "react";
43
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
37
+ import { Fragment, isValidElement, useRef } from "react";
38
+ import { Fragment as Fragment2, jsx, jsxs } from "react/jsx-runtime";
44
39
  var spanOf = (start, end, scale) => {
45
40
  const at = percentOf(start, scale.from, scale.to);
46
41
  return { at, share: Math.max(0, percentOf(end, scale.from, scale.to) - at) };
@@ -70,24 +65,31 @@ function BreakBand({ block, at, testId }) {
70
65
  if (!gap) return null;
71
66
  return /* @__PURE__ */ jsx(Box, { component: "span", "aria-hidden": true, sx: breakSx(gap), "data-dr-break": "", "data-testid": testId });
72
67
  }
73
- function RulerBlock({ row, block, span, at, text, ctx, testId }) {
68
+ function fallbackFit(block, scale) {
69
+ return (block.end - block.start) / (scale.to - scale.from) >= DAY_RULER_METRICS.narrowShare ? "full" : "short";
70
+ }
71
+ function fitProps(fit, text) {
72
+ return fit === "full" ? {} : { "aria-label": text, "data-fit": fit };
73
+ }
74
+ function RulerBlock({ row, block, span, at, hit, text, ctx, testId }) {
74
75
  const { can, dragApi, scale } = ctx;
75
76
  const movable = can.move && Boolean(block.movable);
76
77
  const resizable = can.resize && Boolean(block.resizable);
77
78
  const ref = useRef(null);
78
- const fits = useTextFits(ref, text, (block.end - block.start) / (scale.to - scale.from) >= DAY_RULER_METRICS.narrowShare);
79
+ const short = block.shortLabel ?? text;
80
+ const fit = useTextFit(ref, text, short, fallbackFit(block, scale));
79
81
  const press = (mode) => (event) => dragApi.startBlock(event, row.id, block, mode);
80
82
  return /* @__PURE__ */ jsxs(
81
83
  Box,
82
84
  {
83
85
  component: "button",
84
86
  type: "button",
85
- sx: blockSx(block.tone, span, { selected: Boolean(block.selected), movable }),
87
+ sx: blockSx(block.tone, span, { selected: Boolean(block.selected), movable, hit }),
86
88
  title: block.title ?? block.label,
89
+ ...fitProps(fit, text),
87
90
  "aria-keyshortcuts": shortcutsOf(movable, resizable),
88
91
  "aria-current": block.selected ? "true" : void 0,
89
92
  ref,
90
- "data-narrow": fits ? void 0 : "",
91
93
  "data-tone": block.tone,
92
94
  "data-testid": testId,
93
95
  onPointerDown: movable ? press("move") : void 0,
@@ -99,7 +101,7 @@ function RulerBlock({ row, block, span, at, text, ctx, testId }) {
99
101
  /* @__PURE__ */ jsx(BreakBand, { block, at, testId: `${ctx.testId}-break-${block.id}` }),
100
102
  resizable ? /* @__PURE__ */ jsx(Handle, { side: "l", onPointerDown: press("start"), testId: `${ctx.testId}-handle-l-${block.id}` }) : null,
101
103
  /* @__PURE__ */ jsx("span", { "data-dr-text": "full", title: text, children: text }),
102
- /* @__PURE__ */ jsx("span", { "data-dr-text": "short", title: text, children: block.shortLabel ?? text }),
104
+ /* @__PURE__ */ jsx("span", { "data-dr-text": "short", title: text, children: short }),
103
105
  resizable ? /* @__PURE__ */ jsx(Handle, { side: "r", onPointerDown: press("end"), testId: `${ctx.testId}-handle-r-${block.id}` }) : null
104
106
  ]
105
107
  }
@@ -107,37 +109,46 @@ function RulerBlock({ row, block, span, at, text, ctx, testId }) {
107
109
  }
108
110
  function Blocks({ row, ctx }) {
109
111
  const mine = ctx.drag && ctx.drag.rowId === row.id ? ctx.drag : null;
110
- return /* @__PURE__ */ jsxs(Fragment, { children: [
111
- row.blocks.map((block) => {
112
- const live = mine?.blockId === block.id ? mine : null;
113
- const start = live ? live.start : block.start;
114
- const end = live ? live.end : block.end;
115
- return /* @__PURE__ */ jsx(
116
- RulerBlock,
117
- {
118
- row,
119
- block,
120
- span: spanOf(start, end, ctx.scale),
121
- at: { start, end },
122
- text: live?.moved ? formatRange(start, end) : block.label,
123
- ctx,
124
- testId: `${ctx.testId}-block-${block.id}`
125
- },
126
- block.id
127
- );
128
- }),
129
- mine && mine.mode === "create" ? /* @__PURE__ */ jsx(CreatePreview, { row, drag: mine, ctx }) : null
112
+ const drawn = row.blocks.map((block) => {
113
+ const live = mine?.blockId === block.id ? mine : null;
114
+ const start = live ? live.start : block.start;
115
+ const end = live ? live.end : block.end;
116
+ return { block, live, start, end, span: spanOf(start, end, ctx.scale) };
117
+ });
118
+ const preview = mine && mine.mode === "create" ? previewSpan(mine, ctx.scale) : null;
119
+ const hits = hitBoundsOf([...drawn.map((d) => d.span), ...preview ? [preview] : []]);
120
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
121
+ drawn.map(({ block, live, start, end, span }, index) => /* @__PURE__ */ jsx(
122
+ RulerBlock,
123
+ {
124
+ row,
125
+ block,
126
+ span,
127
+ at: { start, end },
128
+ hit: hits[index],
129
+ text: live?.moved ? formatRange(start, end) : block.label,
130
+ ctx,
131
+ testId: `${ctx.testId}-block-${block.id}`
132
+ },
133
+ block.id
134
+ )),
135
+ mine && preview ? /* @__PURE__ */ jsx(CreatePreview, { row, drag: mine, span: preview, hit: hits[drawn.length], ctx }) : null
130
136
  ] });
131
137
  }
132
- function CreatePreview({ row, drag, ctx }) {
138
+ function previewSpan(drag, scale) {
139
+ return spanOf(drag.start, Math.max(drag.end, drag.start + scale.snap), scale);
140
+ }
141
+ function CreatePreview(props) {
142
+ const { row, drag, span, hit, ctx } = props;
133
143
  const range = formatRange(drag.start, drag.end);
134
144
  return /* @__PURE__ */ jsx(
135
145
  RulerBlock,
136
146
  {
137
147
  row,
138
148
  block: { id: "\0new", start: drag.start, end: drag.end, label: range, tone: "plan" },
139
- span: spanOf(drag.start, Math.max(drag.end, drag.start + ctx.scale.snap), ctx.scale),
149
+ span,
140
150
  at: { start: drag.start, end: drag.end },
151
+ hit,
141
152
  text: range,
142
153
  ctx,
143
154
  testId: `${ctx.testId}-preview`
@@ -147,7 +158,7 @@ function CreatePreview({ row, drag, ctx }) {
147
158
  function Actual({ row, ctx }) {
148
159
  const { actual } = row;
149
160
  if (!actual) return null;
150
- return /* @__PURE__ */ jsxs(Fragment, { children: [
161
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
151
162
  /* @__PURE__ */ jsx(Box, { sx: actualSx(spanOf(actual.start, actual.end, ctx.scale)), "data-testid": `${ctx.testId}-actual-${row.id}` }),
152
163
  row.actualLabel ? /* @__PURE__ */ jsx(Box, { component: "span", sx: actualLabelSx(percentOf(actual.start, ctx.scale.from, ctx.scale.to)), children: row.actualLabel }) : null
153
164
  ] });
@@ -172,17 +183,24 @@ function Track({ row, ctx }) {
172
183
  },
173
184
  children: [
174
185
  /* @__PURE__ */ jsx(Actual, { row, ctx }),
175
- /* @__PURE__ */ jsx(Blocks, { row, ctx }),
176
- showNow ? /* @__PURE__ */ jsx(Box, { sx: nowSx(percentOf(now, scale.from, scale.to)), "data-testid": `${ctx.testId}-now` }) : null
186
+ showNow ? /* @__PURE__ */ jsx(Box, { sx: nowSx(percentOf(now, scale.from, scale.to)), "data-testid": `${ctx.testId}-now` }) : null,
187
+ /* @__PURE__ */ jsx(Blocks, { row, ctx })
177
188
  ]
178
189
  }
179
190
  );
180
191
  }
192
+ function hasContent(node) {
193
+ if (node === null || node === void 0 || typeof node === "boolean" || node === "") return false;
194
+ if (Array.isArray(node)) return node.some((child) => hasContent(child));
195
+ if (isValidElement(node) && node.type === Fragment) return hasContent(node.props.children);
196
+ return true;
197
+ }
181
198
  function RulerRow({ row, ctx }) {
199
+ const hasActions = hasContent(row.actions);
182
200
  return /* @__PURE__ */ jsxs(Box, { sx: rowSx, "data-testid": `${ctx.testId}-row-${row.id}`, role: "listitem", children: [
183
201
  /* @__PURE__ */ jsx(ScheduleNameCell, { row, sx: whoSx, sizes: { name: DAY_RULER_METRICS.name, meta: DAY_RULER_METRICS.meta, chipsTop: 0.75 } }),
184
202
  /* @__PURE__ */ jsx(Track, { row, ctx }),
185
- /* @__PURE__ */ jsx(Box, { sx: actionsSx, children: row.actions })
203
+ hasActions ? /* @__PURE__ */ jsx(Box, { sx: actionsSx, "data-testid": `${ctx.testId}-actions-${row.id}`, children: row.actions }) : null
186
204
  ] });
187
205
  }
188
206
  function Coverage(props) {
@@ -193,82 +211,21 @@ function Coverage(props) {
193
211
  /* @__PURE__ */ jsx(Box, { sx: coverageSx(hours), children: Array.from({ length: hours }, (_, index) => {
194
212
  const count = coverage[index] ?? 0;
195
213
  return /* @__PURE__ */ jsx(Box, { component: "span", sx: coverageCellSx(count), title: `${formatHour(scale.from + index)} \xB7 ${count}`, children: count > 0 ? count : "" }, index);
196
- }) }),
197
- /* @__PURE__ */ jsx("span", {})
214
+ }) })
198
215
  ] });
199
216
  }
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
- }
258
217
  function Axis({ scale, testId }) {
259
218
  return /* @__PURE__ */ jsxs(Box, { sx: lineSx, "data-testid": `${testId}-axis`, "aria-hidden": true, children: [
260
219
  /* @__PURE__ */ jsx("span", {}),
261
- /* @__PURE__ */ jsx(Box, { sx: axisSx, children: ticksOf(scale.from, scale.to, scale.tickHours).map((h) => /* @__PURE__ */ jsx("span", { style: { left: `${percentOf(h, scale.from, scale.to)}%` }, children: formatHour(h) }, h)) }),
262
- /* @__PURE__ */ jsx("span", {})
220
+ /* @__PURE__ */ jsx(Box, { sx: axisSx, children: ticksOf(scale.from, scale.to, scale.tickHours).map((h) => /* @__PURE__ */ jsx("span", { style: { left: `${percentOf(h, scale.from, scale.to)}%` }, children: formatHour(h) }, h)) })
263
221
  ] });
264
222
  }
265
223
 
266
224
  export {
267
225
  spanOf,
226
+ hasContent,
268
227
  RulerRow,
269
228
  Coverage,
270
- trendPoints,
271
- GroupFooter,
272
229
  Axis
273
230
  };
274
- //# sourceMappingURL=chunk-UDBOGSFO.js.map
231
+ //# sourceMappingURL=chunk-FGZIEZEP.js.map