@12-apps/ui 6.86.2 → 6.87.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 (844) hide show
  1. package/NATIVE.md +1 -1
  2. package/components-catalog.md +16 -2
  3. package/dist/_internal/components/data-display/Alert/Alert.js +3 -3
  4. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +3 -3
  5. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +2 -2
  6. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +9 -9
  7. package/dist/_internal/components/data-display/Avatar/Avatar.js +4 -4
  8. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  9. package/dist/_internal/components/data-display/Badge/Badge.js +1 -1
  10. package/dist/_internal/components/data-display/Badge/Badge.styles.js +1 -1
  11. package/dist/_internal/components/data-display/Badge/BadgeContent.js +1 -1
  12. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +4 -4
  13. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +12 -12
  14. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -8
  15. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +1 -1
  16. package/dist/_internal/components/data-display/Carousel/Carousel.js +4 -4
  17. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +1 -1
  18. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +1 -1
  19. package/dist/_internal/components/data-display/Chart/Chart.js +6 -6
  20. package/dist/_internal/components/data-display/Chart/SpecChart.js +9 -9
  21. package/dist/_internal/components/data-display/Chart/chart-context.js +3 -3
  22. package/dist/_internal/components/data-display/Chart/chart-internals.js +1 -1
  23. package/dist/_internal/components/data-display/Chart/chart-renderers.js +5 -5
  24. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  25. package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
  26. package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
  27. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  28. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +58 -58
  29. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +78 -78
  30. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  31. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +9 -9
  32. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +7 -7
  33. package/dist/_internal/components/data-display/DataViews/base-card.js +3 -3
  34. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +3 -3
  35. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +3 -3
  36. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
  37. package/dist/_internal/components/data-display/DataViews/base-list-card.js +8 -8
  38. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +16 -16
  39. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
  40. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +24 -24
  41. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +6 -6
  42. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +53 -53
  43. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +26 -26
  44. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +23 -23
  45. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +24 -24
  46. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
  47. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +4 -4
  48. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +12 -12
  49. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +23 -23
  50. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +11 -11
  51. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  52. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +4 -4
  53. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +33 -0
  54. package/dist/_internal/components/data-display/DayRuler/DayRuler.keyboard.js +12 -0
  55. package/dist/_internal/components/data-display/DayRuler/DayRuler.keyboard.js.map +1 -0
  56. package/dist/_internal/components/data-display/DayRuler/DayRuler.metrics.js +8 -0
  57. package/dist/_internal/components/data-display/DayRuler/DayRuler.metrics.js.map +1 -0
  58. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +30 -0
  59. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js.map +1 -0
  60. package/dist/_internal/components/data-display/DayRuler/DayRuler.styles.js +54 -0
  61. package/dist/_internal/components/data-display/DayRuler/DayRuler.styles.js.map +1 -0
  62. package/dist/_internal/components/data-display/DayRuler/DayRuler.types.js +1 -0
  63. package/dist/_internal/components/data-display/DayRuler/DayRuler.types.js.map +1 -0
  64. package/dist/_internal/components/data-display/DayRuler/day-ruler-model.js +26 -0
  65. package/dist/_internal/components/data-display/DayRuler/day-ruler-model.js.map +1 -0
  66. package/dist/_internal/components/data-display/DayRuler/useRulerDrag.js +11 -0
  67. package/dist/_internal/components/data-display/DayRuler/useRulerDrag.js.map +1 -0
  68. package/dist/_internal/components/data-display/DayRuler/useTextFits.js +8 -0
  69. package/dist/_internal/components/data-display/DayRuler/useTextFits.js.map +1 -0
  70. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +3 -3
  71. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
  72. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +12 -12
  73. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +6 -6
  74. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +19 -19
  75. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
  76. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
  77. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  78. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +4 -4
  79. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +4 -4
  80. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +5 -5
  81. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +3 -3
  82. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +5 -5
  83. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +6 -6
  84. package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +2 -2
  85. package/dist/_internal/components/data-display/RegionMap/RegionMapList.js +1 -1
  86. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +30 -0
  87. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js.map +1 -0
  88. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.keyboard.js +11 -0
  89. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.keyboard.js.map +1 -0
  90. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.metrics.js +10 -0
  91. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.metrics.js.map +1 -0
  92. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.parts.js +25 -0
  93. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.parts.js.map +1 -0
  94. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.styles.js +59 -0
  95. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.styles.js.map +1 -0
  96. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.types.js +1 -0
  97. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.types.js.map +1 -0
  98. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleNameCell.js +18 -0
  99. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleNameCell.js.map +1 -0
  100. package/dist/_internal/components/data-display/ScheduleGrid/drag-session.js +10 -0
  101. package/dist/_internal/components/data-display/ScheduleGrid/drag-session.js.map +1 -0
  102. package/dist/_internal/components/data-display/ScheduleGrid/schedule-grid-model.js +18 -0
  103. package/dist/_internal/components/data-display/ScheduleGrid/schedule-grid-model.js.map +1 -0
  104. package/dist/_internal/components/data-display/ScheduleGrid/schedule-name.styles.js +25 -0
  105. package/dist/_internal/components/data-display/ScheduleGrid/schedule-name.styles.js.map +1 -0
  106. package/dist/_internal/components/data-display/ScheduleGrid/schedule-tones.js +26 -0
  107. package/dist/_internal/components/data-display/ScheduleGrid/schedule-tones.js.map +1 -0
  108. package/dist/_internal/components/data-display/ScheduleGrid/useAnnouncer.js +8 -0
  109. package/dist/_internal/components/data-display/ScheduleGrid/useAnnouncer.js.map +1 -0
  110. package/dist/_internal/components/data-display/ScheduleGrid/useGridDrag.js +10 -0
  111. package/dist/_internal/components/data-display/ScheduleGrid/useGridDrag.js.map +1 -0
  112. package/dist/_internal/components/data-display/ScheduleGrid/useSidewaysScroll.js +9 -0
  113. package/dist/_internal/components/data-display/ScheduleGrid/useSidewaysScroll.js.map +1 -0
  114. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +5 -5
  115. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +4 -4
  116. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  117. package/dist/_internal/components/data-display/Sheet/Sheet.js +8 -8
  118. package/dist/_internal/components/data-display/Sheet/Sheet.parts.js +2 -2
  119. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +1 -1
  120. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  121. package/dist/_internal/components/data-display/Stepper/Stepper.js +2 -2
  122. package/dist/_internal/components/data-display/Table/Table.js +5 -5
  123. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
  124. package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
  125. package/dist/_internal/components/data-display/Timeline/Timeline.js +2 -2
  126. package/dist/_internal/components/data-display/index.js +159 -130
  127. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -5
  128. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -4
  129. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -6
  130. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -5
  131. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  132. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +4 -4
  133. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.header.js +38 -0
  134. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.header.js.map +1 -0
  135. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.header.styles.js +14 -0
  136. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.header.styles.js.map +1 -0
  137. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +14 -11
  138. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.metrics.js +1 -1
  139. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +40 -0
  140. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js.map +1 -0
  141. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +6 -13
  142. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.styles.js +10 -2
  143. package/dist/_internal/components/feedback/SequenceResolver/sequence-model.js +7 -1
  144. package/dist/_internal/components/feedback/SequenceResolver/useSequenceRun.js +2 -2
  145. package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
  146. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +4 -4
  147. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -2
  148. package/dist/_internal/components/feedback/Toast/Toast.js +2 -2
  149. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  150. package/dist/_internal/components/feedback/index.js +45 -42
  151. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +1 -1
  152. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +1 -1
  153. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  154. package/dist/_internal/components/form/Calendar/Calendar.js +7 -7
  155. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  156. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  157. package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +5 -5
  158. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
  159. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  160. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  161. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +9 -9
  162. package/dist/_internal/components/form/Command/Command.hooks.js +2 -2
  163. package/dist/_internal/components/form/Command/Command.js +6 -6
  164. package/dist/_internal/components/form/Command/Command.parts.js +2 -2
  165. package/dist/_internal/components/form/Command/Command.styles.js +1 -1
  166. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +3 -3
  167. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +13 -13
  168. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +2 -2
  169. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +3 -3
  170. package/dist/_internal/components/form/Label/Label.js +1 -1
  171. package/dist/_internal/components/form/Label/Label.styles.js +1 -1
  172. package/dist/_internal/components/form/Menubar/Menubar.item.js +1 -1
  173. package/dist/_internal/components/form/Menubar/Menubar.js +5 -5
  174. package/dist/_internal/components/form/Menubar/Menubar.styles.js +1 -1
  175. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +3 -3
  176. package/dist/_internal/components/form/PickerSheet/PickerSheet.js +4 -4
  177. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.dom.js +2 -2
  178. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.format.js +3 -3
  179. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.hooks.js +4 -4
  180. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +5 -5
  181. package/dist/_internal/components/form/Switch/Switch.js +4 -4
  182. package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
  183. package/dist/_internal/components/form/Switch/Switch.styles.js +2 -2
  184. package/dist/_internal/components/form/index.js +83 -83
  185. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +10 -10
  186. package/dist/_internal/components/form/total-form/Fields/index.js +17 -17
  187. package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -3
  188. package/dist/_internal/components/index.js +366 -334
  189. package/dist/_internal/components/layout/Box/Box.js +1 -1
  190. package/dist/_internal/components/layout/Card/Card.js +2 -2
  191. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -2
  192. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -3
  193. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +2 -2
  194. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -2
  195. package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
  196. package/dist/_internal/components/layout/Drawer/Drawer.js +2 -2
  197. package/dist/_internal/components/layout/Screen/Screen.js +1 -1
  198. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
  199. package/dist/_internal/components/layout/SettingCard/SettingCard.js +9 -9
  200. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +5 -5
  201. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +8 -8
  202. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +6 -6
  203. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +15 -15
  204. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +14 -14
  205. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +15 -15
  206. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +7 -7
  207. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +4 -4
  208. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +2 -2
  209. package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
  210. package/dist/_internal/components/layout/Stack/Stack.js +1 -1
  211. package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -2
  212. package/dist/_internal/components/layout/index.js +68 -68
  213. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +9 -9
  214. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +3 -3
  215. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +2 -2
  216. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
  217. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +6 -6
  218. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  219. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +4 -4
  220. package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
  221. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +5 -5
  222. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +6 -6
  223. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +1 -1
  224. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +1 -1
  225. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +1 -1
  226. package/dist/_internal/components/navigation/SectionNav/SectionNav.railCreate.js +1 -1
  227. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +4 -4
  228. package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js +1 -1
  229. package/dist/_internal/components/navigation/index.js +36 -36
  230. package/dist/_internal/components/typography/Code/Code.js +2 -2
  231. package/dist/_internal/components/typography/index.js +6 -6
  232. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +2 -2
  233. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +3 -3
  234. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -2
  235. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  236. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +3 -3
  237. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +6 -6
  238. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +4 -4
  239. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +5 -5
  240. package/dist/_internal/components/utility/index.js +23 -23
  241. package/dist/_internal/en-US.labels.js +1 -1
  242. package/dist/_internal/icons/Icon.js +1 -1
  243. package/dist/_internal/provider/UiProvider.js +1 -1
  244. package/dist/_internal/provider/mui-bridge.js +1 -1
  245. package/dist/_internal/provider/use-ui-theme.js +1 -1
  246. package/dist/_internal/pt-BR.labels.js +1 -1
  247. package/dist/_internal/social-login-button/social-login-button.js +4 -4
  248. package/dist/_internal/user-avatar/user-avatar.js +7 -7
  249. package/dist/charts.js +18 -18
  250. package/dist/{chunk-X4N6Q37Q.js → chunk-2CRNOJGL.js} +9 -9
  251. package/dist/{chunk-L5KPBMMF.js → chunk-2ENMRK3U.js} +2 -2
  252. package/dist/{chunk-K7IDOTSU.js → chunk-2KBATUOZ.js} +3 -3
  253. package/dist/{chunk-VKTF3GAP.js → chunk-2MYSXWZQ.js} +9 -9
  254. package/dist/{chunk-CHP3QIS3.js → chunk-2ORD2FMN.js} +37 -3
  255. package/dist/{chunk-CHP3QIS3.js.map → chunk-2ORD2FMN.js.map} +1 -1
  256. package/dist/{chunk-7QKFMMWK.js → chunk-2Q2DUGH7.js} +2 -2
  257. package/dist/chunk-2SRWPNQ7.js +60 -0
  258. package/dist/chunk-2SRWPNQ7.js.map +1 -0
  259. package/dist/{chunk-VQ6V5TO7.js → chunk-2UNZG4JK.js} +3 -3
  260. package/dist/chunk-35HMJQLO.js +26 -0
  261. package/dist/chunk-35HMJQLO.js.map +1 -0
  262. package/dist/{chunk-5VKHJ7PI.js → chunk-3B4NXP4N.js} +3 -3
  263. package/dist/{chunk-HC6OZ7QK.js → chunk-3EIRRLCQ.js} +2 -2
  264. package/dist/{chunk-MSJP2AEN.js → chunk-3EKY63LD.js} +2 -2
  265. package/dist/{chunk-LH43GKP2.js → chunk-3KMP2F4R.js} +13 -13
  266. package/dist/chunk-3R6BR22L.js +72 -0
  267. package/dist/chunk-3R6BR22L.js.map +1 -0
  268. package/dist/{chunk-D3W5A4N6.js → chunk-3STNOYYO.js} +3 -3
  269. package/dist/{chunk-TVDHA7BT.js → chunk-3Y6NO5XL.js} +8 -8
  270. package/dist/{chunk-ABQZFK7M.js → chunk-44PBCQ7E.js} +6 -6
  271. package/dist/chunk-4HK4FVMV.js +106 -0
  272. package/dist/chunk-4HK4FVMV.js.map +1 -0
  273. package/dist/{chunk-PGHSNG33.js → chunk-4PZZJ2AE.js} +5 -5
  274. package/dist/{chunk-TRAMTVIO.js → chunk-4QTPERAY.js} +2 -2
  275. package/dist/{chunk-W2RXXF7K.js → chunk-4XBAEKQQ.js} +4 -4
  276. package/dist/{chunk-XCUHGPPZ.js → chunk-55PFFAAY.js} +2 -2
  277. package/dist/{chunk-LYVTJLCF.js → chunk-56JF5PZK.js} +4 -4
  278. package/dist/{native/chunks/chunk-QHW7JEPZ.js → chunk-57FIUJJJ.js} +18 -1
  279. package/dist/chunk-57FIUJJJ.js.map +1 -0
  280. package/dist/{chunk-5C3JSXBK.js → chunk-5BVAUUWL.js} +5 -5
  281. package/dist/{chunk-6OISIUZM.js → chunk-5F7HYYGM.js} +2 -2
  282. package/dist/{chunk-JHW35C6W.js → chunk-5QUH53HV.js} +6 -6
  283. package/dist/{chunk-DAFFZED3.js → chunk-5YVMFK7Y.js} +2 -2
  284. package/dist/{chunk-TI4FGQYV.js → chunk-62PTREG5.js} +2 -2
  285. package/dist/{chunk-3DPPDGOF.js → chunk-62SXUU5U.js} +5 -5
  286. package/dist/{chunk-3JZ3KEQQ.js → chunk-6ATXOJVQ.js} +4 -4
  287. package/dist/{chunk-7W5X3KQ2.js → chunk-6BQ3YKLD.js} +2 -2
  288. package/dist/chunk-6D5AMANO.js +50 -0
  289. package/dist/chunk-6D5AMANO.js.map +1 -0
  290. package/dist/{chunk-VPH3TENY.js → chunk-6DGNMASB.js} +2 -2
  291. package/dist/chunk-6HZYRKOB.js +94 -0
  292. package/dist/chunk-6HZYRKOB.js.map +1 -0
  293. package/dist/{chunk-NOF2FF4K.js → chunk-7CPLKAL6.js} +4 -4
  294. package/dist/{chunk-DVX4HDNP.js → chunk-7IBFGOLF.js} +3 -3
  295. package/dist/chunk-7RXL4ONS.js +1 -0
  296. package/dist/chunk-7RXL4ONS.js.map +1 -0
  297. package/dist/{chunk-EOQ6EKTS.js → chunk-7XSCEHGA.js} +7 -7
  298. package/dist/{chunk-QCYQL3ST.js → chunk-7XUQJJPK.js} +2 -2
  299. package/dist/chunk-7ZQ3KQ7J.js +49 -0
  300. package/dist/chunk-7ZQ3KQ7J.js.map +1 -0
  301. package/dist/{chunk-7VUXSNVZ.js → chunk-A4B27HYU.js} +2 -2
  302. package/dist/chunk-AC7K7IJE.js +28 -0
  303. package/dist/chunk-AC7K7IJE.js.map +1 -0
  304. package/dist/{chunk-42D7KBDH.js → chunk-AD6GRJFV.js} +3 -3
  305. package/dist/{chunk-CAOL4AIB.js → chunk-AEAVVKGY.js} +2 -2
  306. package/dist/{chunk-HHPFWEJY.js → chunk-ALDS5ISD.js} +14 -2
  307. package/dist/chunk-ALDS5ISD.js.map +1 -0
  308. package/dist/{chunk-M3XJVD5G.js → chunk-AMLHEKSV.js} +5 -5
  309. package/dist/{chunk-E5QOT7KK.js → chunk-AN37BIIO.js} +9 -9
  310. package/dist/{chunk-ABVIMFSD.js → chunk-AWUB3T7C.js} +2 -2
  311. package/dist/{chunk-ALOEOGQV.js → chunk-AXGQB24R.js} +2 -2
  312. package/dist/chunk-B3SL5FP2.js +94 -0
  313. package/dist/chunk-B3SL5FP2.js.map +1 -0
  314. package/dist/{chunk-Q4QFYGPH.js → chunk-B5SBDLRS.js} +3 -3
  315. package/dist/{chunk-G4W6HR6Q.js → chunk-B7GGLFJB.js} +5 -5
  316. package/dist/{chunk-C347NNZJ.js → chunk-B7ZAEZJW.js} +2 -2
  317. package/dist/chunk-BK3YLYL6.js +62 -0
  318. package/dist/chunk-BK3YLYL6.js.map +1 -0
  319. package/dist/{chunk-OFESNJKE.js → chunk-BQBEN44R.js} +18 -64
  320. package/dist/chunk-BQBEN44R.js.map +1 -0
  321. package/dist/{chunk-GANJRIT3.js → chunk-C3MXURP3.js} +2 -2
  322. package/dist/{chunk-4QR7LM5F.js → chunk-CTN4BRAH.js} +8 -8
  323. package/dist/{chunk-ZANWHTXH.js → chunk-CVB26LLB.js} +2 -2
  324. package/dist/{chunk-JH2XLVWM.js → chunk-CW5Z67NA.js} +2 -2
  325. package/dist/{chunk-CY4XIZNW.js → chunk-D3B4V44W.js} +2 -2
  326. package/dist/{chunk-BAC2PBOS.js → chunk-D3SIZ2CX.js} +7 -7
  327. package/dist/chunk-D6JKCCRQ.js +120 -0
  328. package/dist/chunk-D6JKCCRQ.js.map +1 -0
  329. package/dist/{chunk-QN7FVZQD.js → chunk-DHAXUVMR.js} +4 -4
  330. package/dist/chunk-DJNKSDQH.js +1 -0
  331. package/dist/chunk-DJNKSDQH.js.map +1 -0
  332. package/dist/{chunk-YGLAGY74.js → chunk-DM57YWZH.js} +2 -2
  333. package/dist/{chunk-NASLJO2R.js → chunk-DRJGHTQU.js} +2 -2
  334. package/dist/{chunk-BLZDSCIZ.js → chunk-DYHOBKPU.js} +6 -6
  335. package/dist/{chunk-6HXNFNOB.js → chunk-EE6DJPB7.js} +4 -4
  336. package/dist/chunk-EEK2NK4W.js +281 -0
  337. package/dist/chunk-EEK2NK4W.js.map +1 -0
  338. package/dist/{chunk-ANUO67JQ.js → chunk-EIMFA7KP.js} +2 -2
  339. package/dist/{chunk-AKE6KVQG.js → chunk-EVIQUBC6.js} +4 -4
  340. package/dist/{chunk-6X7PE5DH.js → chunk-EXKEPOL7.js} +7 -7
  341. package/dist/{chunk-LIN4A2BW.js → chunk-FKS2PNJF.js} +9 -9
  342. package/dist/{chunk-ZYZPSBNQ.js → chunk-G3G5W4OF.js} +3 -3
  343. package/dist/{chunk-J2KVF5GO.js → chunk-GBB23QLL.js} +3 -3
  344. package/dist/{chunk-KTXJQ4YJ.js → chunk-GBVNY2LG.js} +6 -6
  345. package/dist/{chunk-CJLZHW2Z.js → chunk-GCR6VE5S.js} +2 -2
  346. package/dist/chunk-GONPUJIE.js +92 -0
  347. package/dist/chunk-GONPUJIE.js.map +1 -0
  348. package/dist/{chunk-APSEM5AA.js → chunk-GS3QDXDP.js} +4 -4
  349. package/dist/{chunk-6IRZZYHF.js → chunk-H5R2EZYI.js} +7 -7
  350. package/dist/{chunk-WLSFBXGS.js → chunk-HED2CZDZ.js} +3 -3
  351. package/dist/{chunk-JVOEVTCZ.js → chunk-HQCZT6TO.js} +5 -5
  352. package/dist/{chunk-NKEFH3RS.js → chunk-HWJ3FLZY.js} +5 -5
  353. package/dist/{chunk-42TOCPXB.js → chunk-I5SIHPOG.js} +6 -6
  354. package/dist/{chunk-K6FCSB6T.js → chunk-I62SKY4E.js} +4 -4
  355. package/dist/{chunk-GOQOVKUZ.js → chunk-I6CP3ZTP.js} +3 -3
  356. package/dist/chunk-I7CVC2DW.js +229 -0
  357. package/dist/chunk-I7CVC2DW.js.map +1 -0
  358. package/dist/{chunk-UFGT2SFD.js → chunk-ICHM2LQA.js} +4 -4
  359. package/dist/{chunk-5IMI2XNU.js → chunk-IMMPY4Q7.js} +6 -6
  360. package/dist/chunk-IP424VZD.js +208 -0
  361. package/dist/chunk-IP424VZD.js.map +1 -0
  362. package/dist/{chunk-437HQPUN.js → chunk-IQ5MBELJ.js} +7 -7
  363. package/dist/{chunk-FRUDRDJX.js → chunk-IZ7JTG3Z.js} +4 -4
  364. package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
  365. package/dist/{chunk-KF3Q3C3P.js → chunk-JJFLCEJJ.js} +2 -2
  366. package/dist/chunk-JO6D7YGN.js +111 -0
  367. package/dist/chunk-JO6D7YGN.js.map +1 -0
  368. package/dist/{chunk-IWMAFTXP.js → chunk-K2VDRODL.js} +2 -2
  369. package/dist/{chunk-CFDWKQZT.js → chunk-KILA7LCC.js} +4 -4
  370. package/dist/{chunk-IMYKJTVX.js → chunk-KLLHCPA2.js} +2 -2
  371. package/dist/{chunk-5UBP2DJ4.js → chunk-KZ5F52D6.js} +39 -5
  372. package/dist/chunk-KZ5F52D6.js.map +1 -0
  373. package/dist/{chunk-FORQEHRQ.js → chunk-L5GZZUTY.js} +2 -2
  374. package/dist/{chunk-N557OEZR.js → chunk-L62HC3UB.js} +2 -2
  375. package/dist/chunk-LE5JYNR7.js +58 -0
  376. package/dist/chunk-LE5JYNR7.js.map +1 -0
  377. package/dist/{chunk-2IHUFUTO.js → chunk-LR56OANO.js} +6 -6
  378. package/dist/{chunk-EAFZ3RDY.js → chunk-LSGZLFKX.js} +8 -8
  379. package/dist/{chunk-W5WYTVLS.js → chunk-LY5I3ZSV.js} +4 -4
  380. package/dist/{chunk-T77OVQEO.js → chunk-LZKS3NER.js} +2 -2
  381. package/dist/{chunk-ZAPP32GD.js → chunk-M7HYNXCU.js} +2 -2
  382. package/dist/chunk-MAYAJXO6.js +104 -0
  383. package/dist/chunk-MAYAJXO6.js.map +1 -0
  384. package/dist/{chunk-D34PZJH3.js → chunk-MBMZNSBP.js} +2 -2
  385. package/dist/{chunk-HUXAIQC5.js → chunk-MJDSXQV7.js} +2 -2
  386. package/dist/{chunk-PEVBSNCD.js → chunk-MLAIXRVL.js} +2 -2
  387. package/dist/chunk-MQVYJVKV.js +32 -0
  388. package/dist/chunk-MQVYJVKV.js.map +1 -0
  389. package/dist/{chunk-5U7LBO2V.js → chunk-MUHRPJQT.js} +4 -4
  390. package/dist/{chunk-COK65GX2.js → chunk-N2KHISGH.js} +2 -2
  391. package/dist/{chunk-UQ5GJPVZ.js → chunk-N3C4J6Z2.js} +3 -3
  392. package/dist/{chunk-PGANINQD.js → chunk-NI67M453.js} +5 -5
  393. package/dist/{chunk-P4Q7JK4L.js → chunk-NQ6P7O7C.js} +2 -2
  394. package/dist/{chunk-QVDEGBME.js → chunk-NQCTANF3.js} +7 -7
  395. package/dist/{chunk-AQPPSR4P.js → chunk-NQUYBJKJ.js} +2 -2
  396. package/dist/{chunk-LOHQLARB.js → chunk-NTCWIMIU.js} +4 -4
  397. package/dist/{chunk-Q4GAPZDA.js → chunk-O2MR6U7Q.js} +5 -5
  398. package/dist/{chunk-2FQF4CNE.js → chunk-OPP6USJC.js} +2 -2
  399. package/dist/{chunk-HNEZWVDR.js → chunk-P5C4DTO4.js} +3 -3
  400. package/dist/{chunk-6EZQLNPK.js → chunk-PGJIWCQR.js} +4 -4
  401. package/dist/{chunk-TJUWSQYQ.js → chunk-PSIUFPXA.js} +18 -1
  402. package/dist/{chunk-TJUWSQYQ.js.map → chunk-PSIUFPXA.js.map} +1 -1
  403. package/dist/{chunk-3LUT2C5M.js → chunk-QMRR35W2.js} +19 -11
  404. package/dist/chunk-QMRR35W2.js.map +1 -0
  405. package/dist/chunk-QQFFE3CQ.js +90 -0
  406. package/dist/chunk-QQFFE3CQ.js.map +1 -0
  407. package/dist/{chunk-PJNIJIE6.js → chunk-RCTHCXS6.js} +2 -2
  408. package/dist/{chunk-YBAK2WN5.js → chunk-RFMQBIE6.js} +4 -4
  409. package/dist/{chunk-EYFDIUVR.js → chunk-RZTUMBRD.js} +2 -2
  410. package/dist/{chunk-SGFRSRAL.js → chunk-S5VIN3EB.js} +4 -4
  411. package/dist/{chunk-QHIWV55K.js → chunk-SB2SEGR6.js} +3 -3
  412. package/dist/{chunk-5CP6VW5H.js → chunk-SFNVAM7I.js} +6 -6
  413. package/dist/{chunk-HOPRZEBM.js → chunk-SKIAWOUC.js} +3 -3
  414. package/dist/{chunk-KES3HNSU.js → chunk-T7NEXLW6.js} +2 -2
  415. package/dist/{chunk-EWFBDAB7.js → chunk-TOLCZ4XT.js} +2 -2
  416. package/dist/{chunk-HBH7V3IP.js → chunk-TOOEEQ46.js} +2 -2
  417. package/dist/{chunk-L7HNQRFS.js → chunk-TSID4257.js} +8 -8
  418. package/dist/chunk-TTRWOI6Z.js +1 -0
  419. package/dist/chunk-TTRWOI6Z.js.map +1 -0
  420. package/dist/{chunk-5CP5Z3YU.js → chunk-TYGVNTUP.js} +2 -2
  421. package/dist/{chunk-JG733RMP.js → chunk-TZC6KIK2.js} +5 -5
  422. package/dist/{chunk-XS6QHZMD.js → chunk-UBMH5MED.js} +9 -9
  423. package/dist/chunk-UIHPFELH.js +228 -0
  424. package/dist/chunk-UIHPFELH.js.map +1 -0
  425. package/dist/{chunk-UXOFA3ZP.js → chunk-UNCDOLF5.js} +7 -7
  426. package/dist/{chunk-UYKIUUWP.js → chunk-V2QTL6VI.js} +2 -2
  427. package/dist/{chunk-6GICMRDX.js → chunk-VMTOLAZ5.js} +5 -5
  428. package/dist/{chunk-4QGMUHAU.js → chunk-VQ7YNAK2.js} +2 -2
  429. package/dist/chunk-WCETCAZO.js +140 -0
  430. package/dist/chunk-WCETCAZO.js.map +1 -0
  431. package/dist/{chunk-B32XH7NK.js → chunk-WHOD6LVN.js} +3 -3
  432. package/dist/{chunk-X3EEV3OI.js → chunk-WLC56R2I.js} +7 -7
  433. package/dist/{chunk-X4J576GR.js → chunk-WTACWJSF.js} +2 -2
  434. package/dist/{chunk-5S5K73I6.js → chunk-WUBMJSBR.js} +2 -2
  435. package/dist/{chunk-TSEBMVYY.js → chunk-X2GWR75Q.js} +3 -3
  436. package/dist/{chunk-2VRJ577J.js → chunk-X3EB67O2.js} +4 -4
  437. package/dist/{chunk-PQGHYFUA.js → chunk-XALFZ25A.js} +4 -4
  438. package/dist/{chunk-BNBWUXT3.js → chunk-XEKJ7L7I.js} +2 -2
  439. package/dist/{chunk-YPW4HZ3Z.js → chunk-XHIBFBNP.js} +4 -4
  440. package/dist/{chunk-QAH3XILB.js → chunk-XNIHDUOP.js} +3 -3
  441. package/dist/{chunk-DILDC77M.js → chunk-XRVXQJNB.js} +3 -3
  442. package/dist/{chunk-K6WY2CHG.js → chunk-XZFTRGRW.js} +2 -2
  443. package/dist/{chunk-LLPPIO3K.js → chunk-Y4ZWPOUV.js} +2 -2
  444. package/dist/{chunk-C4NSEUT5.js → chunk-Y6IIWGZB.js} +2 -2
  445. package/dist/{chunk-TLJVUWJ5.js → chunk-YAQE7QVC.js} +3 -3
  446. package/dist/{chunk-4OUJ4ZMK.js → chunk-YDIC6LSP.js} +2 -2
  447. package/dist/chunk-YE44HUFF.js +72 -0
  448. package/dist/chunk-YE44HUFF.js.map +1 -0
  449. package/dist/{chunk-PVIQDBUN.js → chunk-YFG6XXBB.js} +2 -2
  450. package/dist/{chunk-UBVKMM3V.js → chunk-YGQ2DLIM.js} +2 -2
  451. package/dist/{chunk-T5RFH2T5.js → chunk-YKONJEI4.js} +2 -2
  452. package/dist/{chunk-ZIHSCBMN.js → chunk-YLZXIR6B.js} +7 -7
  453. package/dist/chunk-YMYJO2CZ.js +32 -0
  454. package/dist/chunk-YMYJO2CZ.js.map +1 -0
  455. package/dist/{chunk-A3DDEKLV.js → chunk-YNZUYZ2O.js} +2 -2
  456. package/dist/chunk-YSUJCKEE.js +341 -0
  457. package/dist/chunk-YSUJCKEE.js.map +1 -0
  458. package/dist/{chunk-YNVTUQ5B.js → chunk-YWBPASB2.js} +2 -2
  459. package/dist/{chunk-G3JFESKD.js → chunk-Z5WUSI47.js} +6 -6
  460. package/dist/{chunk-IX5ADKII.js → chunk-Z7CBLQQR.js} +3 -3
  461. package/dist/{chunk-7WE432RQ.js → chunk-ZCNR4DN5.js} +12 -12
  462. package/dist/{chunk-JRBSTOMA.js → chunk-ZDAAHCIS.js} +6 -6
  463. package/dist/{chunk-2SBQ47RI.js → chunk-ZF2LZVDO.js} +7 -7
  464. package/dist/{chunk-4IG73U2X.js → chunk-ZIA774ZW.js} +2 -2
  465. package/dist/{chunk-E5OBAS3U.js → chunk-ZLIES3XR.js} +2 -2
  466. package/dist/data-display/Alert.js +3 -3
  467. package/dist/data-display/AlertDialog.js +3 -3
  468. package/dist/data-display/AsyncStateContainer.js +9 -9
  469. package/dist/data-display/Avatar.js +4 -4
  470. package/dist/data-display/Badge.js +1 -1
  471. package/dist/data-display/CardKit.js +22 -22
  472. package/dist/data-display/Carousel.js +4 -4
  473. package/dist/data-display/Chart.js +18 -18
  474. package/dist/data-display/Chip.js +3 -3
  475. package/dist/data-display/DataGrid.js +2 -2
  476. package/dist/data-display/DataViews.js +92 -92
  477. package/dist/data-display/DayRuler.js +33 -0
  478. package/dist/data-display/DayRuler.js.map +1 -0
  479. package/dist/data-display/EmptyState.js +3 -3
  480. package/dist/data-display/ErrorState.js +2 -2
  481. package/dist/data-display/FleetMap.js +19 -19
  482. package/dist/data-display/HoverCard.js +3 -3
  483. package/dist/data-display/InteractiveTooltip.js +2 -2
  484. package/dist/data-display/LazyImage.js +4 -4
  485. package/dist/data-display/Lightbox.js +4 -4
  486. package/dist/data-display/LoadingState.js +5 -5
  487. package/dist/data-display/MapPreview.js +5 -5
  488. package/dist/data-display/RegionMap.js +6 -6
  489. package/dist/data-display/ScheduleGrid.js +30 -0
  490. package/dist/data-display/ScheduleGrid.js.map +1 -0
  491. package/dist/data-display/SectionOnboarding.js +5 -5
  492. package/dist/data-display/Sheet.js +8 -8
  493. package/dist/data-display/StatCard.js +3 -3
  494. package/dist/data-display/Stepper.js +2 -2
  495. package/dist/data-display/Table.js +5 -5
  496. package/dist/data-display/Timeline.js +2 -2
  497. package/dist/en-US.js +1 -1
  498. package/dist/feedback/ConfirmAction.js +9 -9
  499. package/dist/feedback/Dialog.js +2 -2
  500. package/dist/feedback/NotificationStatusNotice.js +4 -4
  501. package/dist/feedback/SequenceResolver.js +14 -11
  502. package/dist/feedback/Sonner.js +2 -2
  503. package/dist/feedback/StackedModal.js +4 -4
  504. package/dist/feedback/Toast.js +2 -2
  505. package/dist/feedback/TutorialOverlay.js +2 -2
  506. package/dist/form/AddressAutocomplete.js +1 -1
  507. package/dist/form/Autocomplete.js +2 -2
  508. package/dist/form/Calendar.js +7 -7
  509. package/dist/form/CategorySelect.js +9 -9
  510. package/dist/form/Command.js +6 -6
  511. package/dist/form/DateRangePicker.js +13 -13
  512. package/dist/form/Label.js +1 -1
  513. package/dist/form/Menubar.js +5 -5
  514. package/dist/form/PickerSheet.js +4 -4
  515. package/dist/form/RichTextEditor.js +5 -5
  516. package/dist/form/Switch.js +4 -4
  517. package/dist/form/total-form.js +18 -18
  518. package/dist/icons.js +1 -1
  519. package/dist/layout/Box.js +1 -1
  520. package/dist/layout/Card.js +2 -2
  521. package/dist/layout/ContentToolbar.js +8 -8
  522. package/dist/layout/Dashboard.js +2 -2
  523. package/dist/layout/Drawer.js +2 -2
  524. package/dist/layout/Screen.js +1 -1
  525. package/dist/layout/ScrollArea.js +3 -3
  526. package/dist/layout/SettingCard.js +21 -21
  527. package/dist/layout/SettingsLayout.js +8 -8
  528. package/dist/layout/Skeleton.js +2 -2
  529. package/dist/layout/Stack.js +1 -1
  530. package/dist/layout/TableFilter.js +2 -2
  531. package/dist/locales.js +27 -27
  532. package/dist/native/chunks/{chunk-FXA5DLKR.js → chunk-4G634E3Q.js} +3 -3
  533. package/dist/{chunk-XOXXG7Q5.js → native/chunks/chunk-E5UA5XVN.js} +18 -1
  534. package/dist/native/chunks/chunk-E5UA5XVN.js.map +1 -0
  535. package/dist/native/chunks/{chunk-IN3XZ7EK.js → chunk-WLG3KT2V.js} +2 -2
  536. package/dist/native/data-display/Avatar.js +1 -1
  537. package/dist/native/data-display/Badge.js +1 -1
  538. package/dist/native/data-display/Chip.js +1 -1
  539. package/dist/native/data-display/EmptyState.js +3 -3
  540. package/dist/native/data-display/ErrorState.js +2 -2
  541. package/dist/native/data-display/FleetMap.js +3 -3
  542. package/dist/native/data-display/LoadingState.js +1 -1
  543. package/dist/native/feedback/Dialog.js +1 -1
  544. package/dist/native/form/Button.js +2 -2
  545. package/dist/native/form/Checkbox.js +1 -1
  546. package/dist/native/form/Input.js +1 -1
  547. package/dist/native/form/Switch.js +1 -1
  548. package/dist/navigation/AppHeader.js +13 -13
  549. package/dist/navigation/Breadcrumbs.js +2 -2
  550. package/dist/navigation/NavigationMenu.js +6 -6
  551. package/dist/navigation/Pagination.js +2 -2
  552. package/dist/navigation/SectionNav.js +6 -6
  553. package/dist/provider.js +1 -1
  554. package/dist/pt-BR.js +24 -24
  555. package/dist/social-login-button.js +4 -4
  556. package/dist/tokens.js +6 -6
  557. package/dist/types/components/data-display/DayRuler/DayRuler.d.ts +13 -0
  558. package/dist/types/components/data-display/DayRuler/DayRuler.d.ts.map +1 -0
  559. package/dist/types/components/data-display/DayRuler/DayRuler.keyboard.d.ts +31 -0
  560. package/dist/types/components/data-display/DayRuler/DayRuler.keyboard.d.ts.map +1 -0
  561. package/dist/types/components/data-display/DayRuler/DayRuler.metrics.d.ts +86 -0
  562. package/dist/types/components/data-display/DayRuler/DayRuler.metrics.d.ts.map +1 -0
  563. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts +37 -0
  564. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts.map +1 -0
  565. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts +45 -0
  566. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts.map +1 -0
  567. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts +105 -0
  568. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts.map +1 -0
  569. package/dist/types/components/data-display/DayRuler/day-ruler-model.d.ts +26 -0
  570. package/dist/types/components/data-display/DayRuler/day-ruler-model.d.ts.map +1 -0
  571. package/dist/types/components/data-display/DayRuler/index.d.ts +4 -0
  572. package/dist/types/components/data-display/DayRuler/index.d.ts.map +1 -0
  573. package/dist/types/components/data-display/DayRuler/useRulerDrag.d.ts +45 -0
  574. package/dist/types/components/data-display/DayRuler/useRulerDrag.d.ts.map +1 -0
  575. package/dist/types/components/data-display/DayRuler/useTextFits.d.ts +14 -0
  576. package/dist/types/components/data-display/DayRuler/useTextFits.d.ts.map +1 -0
  577. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.d.ts +15 -0
  578. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.d.ts.map +1 -0
  579. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.keyboard.d.ts +32 -0
  580. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.keyboard.d.ts.map +1 -0
  581. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.metrics.d.ts +105 -0
  582. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.metrics.d.ts.map +1 -0
  583. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.parts.d.ts +51 -0
  584. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.parts.d.ts.map +1 -0
  585. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.styles.d.ts +75 -0
  586. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.styles.d.ts.map +1 -0
  587. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.types.d.ts +136 -0
  588. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.types.d.ts.map +1 -0
  589. package/dist/types/components/data-display/ScheduleGrid/ScheduleNameCell.d.ts +33 -0
  590. package/dist/types/components/data-display/ScheduleGrid/ScheduleNameCell.d.ts.map +1 -0
  591. package/dist/types/components/data-display/ScheduleGrid/drag-session.d.ts +47 -0
  592. package/dist/types/components/data-display/ScheduleGrid/drag-session.d.ts.map +1 -0
  593. package/dist/types/components/data-display/ScheduleGrid/index.d.ts +4 -0
  594. package/dist/types/components/data-display/ScheduleGrid/index.d.ts.map +1 -0
  595. package/dist/types/components/data-display/ScheduleGrid/schedule-grid-model.d.ts +18 -0
  596. package/dist/types/components/data-display/ScheduleGrid/schedule-grid-model.d.ts.map +1 -0
  597. package/dist/types/components/data-display/ScheduleGrid/schedule-name.styles.d.ts +16 -0
  598. package/dist/types/components/data-display/ScheduleGrid/schedule-name.styles.d.ts.map +1 -0
  599. package/dist/types/components/data-display/ScheduleGrid/schedule-tones.d.ts +32 -0
  600. package/dist/types/components/data-display/ScheduleGrid/schedule-tones.d.ts.map +1 -0
  601. package/dist/types/components/data-display/ScheduleGrid/useAnnouncer.d.ts +13 -0
  602. package/dist/types/components/data-display/ScheduleGrid/useAnnouncer.d.ts.map +1 -0
  603. package/dist/types/components/data-display/ScheduleGrid/useGridDrag.d.ts +56 -0
  604. package/dist/types/components/data-display/ScheduleGrid/useGridDrag.d.ts.map +1 -0
  605. package/dist/types/components/data-display/ScheduleGrid/useSidewaysScroll.d.ts +26 -0
  606. package/dist/types/components/data-display/ScheduleGrid/useSidewaysScroll.d.ts.map +1 -0
  607. package/dist/types/components/data-display/index.d.ts +2 -0
  608. package/dist/types/components/data-display/index.d.ts.map +1 -1
  609. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.d.ts.map +1 -1
  610. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.header.d.ts +33 -0
  611. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.header.d.ts.map +1 -0
  612. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.header.styles.d.ts +17 -0
  613. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.header.styles.d.ts.map +1 -0
  614. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.metrics.d.ts +12 -0
  615. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.metrics.d.ts.map +1 -1
  616. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.overview.d.ts +22 -0
  617. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.overview.d.ts.map +1 -0
  618. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.parts.d.ts +6 -18
  619. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.parts.d.ts.map +1 -1
  620. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.styles.d.ts +17 -0
  621. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.styles.d.ts.map +1 -1
  622. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.types.d.ts +56 -1
  623. package/dist/types/components/feedback/SequenceResolver/SequenceResolver.types.d.ts.map +1 -1
  624. package/dist/types/components/feedback/SequenceResolver/index.d.ts +1 -1
  625. package/dist/types/components/feedback/SequenceResolver/index.d.ts.map +1 -1
  626. package/dist/types/components/feedback/SequenceResolver/sequence-model.d.ts +27 -3
  627. package/dist/types/components/feedback/SequenceResolver/sequence-model.d.ts.map +1 -1
  628. package/dist/types/components/feedback/SequenceResolver/useSequenceRun.d.ts +9 -0
  629. package/dist/types/components/feedback/SequenceResolver/useSequenceRun.d.ts.map +1 -1
  630. package/dist/types/copy/labels.d.ts +34 -0
  631. package/dist/types/copy/labels.d.ts.map +1 -1
  632. package/dist/types/en-US.labels.d.ts.map +1 -1
  633. package/dist/types/pt-BR.labels.d.ts.map +1 -1
  634. package/dist/types-native/copy/labels.d.ts +34 -0
  635. package/dist/types-native/copy/labels.d.ts.map +1 -1
  636. package/dist/types-native/en-US.labels.d.ts.map +1 -1
  637. package/dist/typography/Code.js +2 -2
  638. package/dist/user-avatar.js +7 -7
  639. package/dist/utility/AnimatedIcon.js +2 -2
  640. package/dist/utility/InfiniteScroll.js +3 -3
  641. package/dist/utility/InstallPrompt.js +2 -2
  642. package/dist/utility/WorkflowStep.js +6 -6
  643. package/package.json +9 -1
  644. package/src/components/data-display/DayRuler/DayRuler.keyboard.ts +94 -0
  645. package/src/components/data-display/DayRuler/DayRuler.md +84 -0
  646. package/src/components/data-display/DayRuler/DayRuler.metrics.ts +47 -0
  647. package/src/components/data-display/DayRuler/DayRuler.parts.tsx +272 -0
  648. package/src/components/data-display/DayRuler/DayRuler.styles.ts +288 -0
  649. package/src/components/data-display/DayRuler/DayRuler.tsx +130 -0
  650. package/src/components/data-display/DayRuler/DayRuler.types.ts +107 -0
  651. package/src/components/data-display/DayRuler/day-ruler-model.ts +83 -0
  652. package/src/components/data-display/DayRuler/index.ts +9 -0
  653. package/src/components/data-display/DayRuler/useRulerDrag.ts +167 -0
  654. package/src/components/data-display/DayRuler/useTextFits.ts +41 -0
  655. package/src/components/data-display/ScheduleGrid/ScheduleGrid.keyboard.ts +138 -0
  656. package/src/components/data-display/ScheduleGrid/ScheduleGrid.md +140 -0
  657. package/src/components/data-display/ScheduleGrid/ScheduleGrid.metrics.ts +75 -0
  658. package/src/components/data-display/ScheduleGrid/ScheduleGrid.parts.tsx +357 -0
  659. package/src/components/data-display/ScheduleGrid/ScheduleGrid.styles.ts +386 -0
  660. package/src/components/data-display/ScheduleGrid/ScheduleGrid.tsx +142 -0
  661. package/src/components/data-display/ScheduleGrid/ScheduleGrid.types.ts +144 -0
  662. package/src/components/data-display/ScheduleGrid/ScheduleNameCell.tsx +66 -0
  663. package/src/components/data-display/ScheduleGrid/drag-session.ts +120 -0
  664. package/src/components/data-display/ScheduleGrid/index.ts +12 -0
  665. package/src/components/data-display/ScheduleGrid/schedule-grid-model.ts +39 -0
  666. package/src/components/data-display/ScheduleGrid/schedule-name.styles.ts +96 -0
  667. package/src/components/data-display/ScheduleGrid/schedule-tones.ts +126 -0
  668. package/src/components/data-display/ScheduleGrid/useAnnouncer.ts +32 -0
  669. package/src/components/data-display/ScheduleGrid/useGridDrag.ts +137 -0
  670. package/src/components/data-display/ScheduleGrid/useSidewaysScroll.ts +126 -0
  671. package/src/components/data-display/index.ts +2 -0
  672. package/src/components/feedback/SequenceResolver/SequenceResolver.header.styles.ts +65 -0
  673. package/src/components/feedback/SequenceResolver/SequenceResolver.header.tsx +153 -0
  674. package/src/components/feedback/SequenceResolver/SequenceResolver.md +43 -2
  675. package/src/components/feedback/SequenceResolver/SequenceResolver.metrics.ts +12 -0
  676. package/src/components/feedback/SequenceResolver/SequenceResolver.overview.tsx +74 -0
  677. package/src/components/feedback/SequenceResolver/SequenceResolver.parts.tsx +37 -83
  678. package/src/components/feedback/SequenceResolver/SequenceResolver.styles.ts +47 -0
  679. package/src/components/feedback/SequenceResolver/SequenceResolver.tsx +152 -35
  680. package/src/components/feedback/SequenceResolver/SequenceResolver.types.ts +58 -1
  681. package/src/components/feedback/SequenceResolver/index.ts +2 -0
  682. package/src/components/feedback/SequenceResolver/sequence-model.ts +66 -5
  683. package/src/components/feedback/SequenceResolver/useSequenceRun.ts +28 -10
  684. package/src/copy/labels.ts +36 -0
  685. package/src/en-US.labels.ts +17 -0
  686. package/src/pt-BR.labels.ts +17 -0
  687. package/dist/chunk-3LUT2C5M.js.map +0 -1
  688. package/dist/chunk-5UBP2DJ4.js.map +0 -1
  689. package/dist/chunk-ABRUOINB.js +0 -1
  690. package/dist/chunk-HHPFWEJY.js.map +0 -1
  691. package/dist/chunk-OFESNJKE.js.map +0 -1
  692. package/dist/chunk-PXEIN3J4.js +0 -162
  693. package/dist/chunk-PXEIN3J4.js.map +0 -1
  694. package/dist/chunk-XOXXG7Q5.js.map +0 -1
  695. package/dist/native/chunks/chunk-QHW7JEPZ.js.map +0 -1
  696. /package/dist/{chunk-ABRUOINB.js.map → _internal/components/data-display/DayRuler/DayRuler.js.map} +0 -0
  697. /package/dist/{chunk-X4N6Q37Q.js.map → chunk-2CRNOJGL.js.map} +0 -0
  698. /package/dist/{chunk-L5KPBMMF.js.map → chunk-2ENMRK3U.js.map} +0 -0
  699. /package/dist/{chunk-K7IDOTSU.js.map → chunk-2KBATUOZ.js.map} +0 -0
  700. /package/dist/{chunk-VKTF3GAP.js.map → chunk-2MYSXWZQ.js.map} +0 -0
  701. /package/dist/{chunk-7QKFMMWK.js.map → chunk-2Q2DUGH7.js.map} +0 -0
  702. /package/dist/{chunk-VQ6V5TO7.js.map → chunk-2UNZG4JK.js.map} +0 -0
  703. /package/dist/{chunk-5VKHJ7PI.js.map → chunk-3B4NXP4N.js.map} +0 -0
  704. /package/dist/{chunk-HC6OZ7QK.js.map → chunk-3EIRRLCQ.js.map} +0 -0
  705. /package/dist/{chunk-MSJP2AEN.js.map → chunk-3EKY63LD.js.map} +0 -0
  706. /package/dist/{chunk-LH43GKP2.js.map → chunk-3KMP2F4R.js.map} +0 -0
  707. /package/dist/{chunk-D3W5A4N6.js.map → chunk-3STNOYYO.js.map} +0 -0
  708. /package/dist/{chunk-TVDHA7BT.js.map → chunk-3Y6NO5XL.js.map} +0 -0
  709. /package/dist/{chunk-ABQZFK7M.js.map → chunk-44PBCQ7E.js.map} +0 -0
  710. /package/dist/{chunk-PGHSNG33.js.map → chunk-4PZZJ2AE.js.map} +0 -0
  711. /package/dist/{chunk-TRAMTVIO.js.map → chunk-4QTPERAY.js.map} +0 -0
  712. /package/dist/{chunk-W2RXXF7K.js.map → chunk-4XBAEKQQ.js.map} +0 -0
  713. /package/dist/{chunk-XCUHGPPZ.js.map → chunk-55PFFAAY.js.map} +0 -0
  714. /package/dist/{chunk-LYVTJLCF.js.map → chunk-56JF5PZK.js.map} +0 -0
  715. /package/dist/{chunk-5C3JSXBK.js.map → chunk-5BVAUUWL.js.map} +0 -0
  716. /package/dist/{chunk-6OISIUZM.js.map → chunk-5F7HYYGM.js.map} +0 -0
  717. /package/dist/{chunk-JHW35C6W.js.map → chunk-5QUH53HV.js.map} +0 -0
  718. /package/dist/{chunk-DAFFZED3.js.map → chunk-5YVMFK7Y.js.map} +0 -0
  719. /package/dist/{chunk-TI4FGQYV.js.map → chunk-62PTREG5.js.map} +0 -0
  720. /package/dist/{chunk-3DPPDGOF.js.map → chunk-62SXUU5U.js.map} +0 -0
  721. /package/dist/{chunk-3JZ3KEQQ.js.map → chunk-6ATXOJVQ.js.map} +0 -0
  722. /package/dist/{chunk-7W5X3KQ2.js.map → chunk-6BQ3YKLD.js.map} +0 -0
  723. /package/dist/{chunk-VPH3TENY.js.map → chunk-6DGNMASB.js.map} +0 -0
  724. /package/dist/{chunk-NOF2FF4K.js.map → chunk-7CPLKAL6.js.map} +0 -0
  725. /package/dist/{chunk-DVX4HDNP.js.map → chunk-7IBFGOLF.js.map} +0 -0
  726. /package/dist/{chunk-EOQ6EKTS.js.map → chunk-7XSCEHGA.js.map} +0 -0
  727. /package/dist/{chunk-QCYQL3ST.js.map → chunk-7XUQJJPK.js.map} +0 -0
  728. /package/dist/{chunk-7VUXSNVZ.js.map → chunk-A4B27HYU.js.map} +0 -0
  729. /package/dist/{chunk-42D7KBDH.js.map → chunk-AD6GRJFV.js.map} +0 -0
  730. /package/dist/{chunk-CAOL4AIB.js.map → chunk-AEAVVKGY.js.map} +0 -0
  731. /package/dist/{chunk-M3XJVD5G.js.map → chunk-AMLHEKSV.js.map} +0 -0
  732. /package/dist/{chunk-E5QOT7KK.js.map → chunk-AN37BIIO.js.map} +0 -0
  733. /package/dist/{chunk-ABVIMFSD.js.map → chunk-AWUB3T7C.js.map} +0 -0
  734. /package/dist/{chunk-ALOEOGQV.js.map → chunk-AXGQB24R.js.map} +0 -0
  735. /package/dist/{chunk-Q4QFYGPH.js.map → chunk-B5SBDLRS.js.map} +0 -0
  736. /package/dist/{chunk-G4W6HR6Q.js.map → chunk-B7GGLFJB.js.map} +0 -0
  737. /package/dist/{chunk-C347NNZJ.js.map → chunk-B7ZAEZJW.js.map} +0 -0
  738. /package/dist/{chunk-GANJRIT3.js.map → chunk-C3MXURP3.js.map} +0 -0
  739. /package/dist/{chunk-4QR7LM5F.js.map → chunk-CTN4BRAH.js.map} +0 -0
  740. /package/dist/{chunk-ZANWHTXH.js.map → chunk-CVB26LLB.js.map} +0 -0
  741. /package/dist/{chunk-JH2XLVWM.js.map → chunk-CW5Z67NA.js.map} +0 -0
  742. /package/dist/{chunk-CY4XIZNW.js.map → chunk-D3B4V44W.js.map} +0 -0
  743. /package/dist/{chunk-BAC2PBOS.js.map → chunk-D3SIZ2CX.js.map} +0 -0
  744. /package/dist/{chunk-QN7FVZQD.js.map → chunk-DHAXUVMR.js.map} +0 -0
  745. /package/dist/{chunk-YGLAGY74.js.map → chunk-DM57YWZH.js.map} +0 -0
  746. /package/dist/{chunk-NASLJO2R.js.map → chunk-DRJGHTQU.js.map} +0 -0
  747. /package/dist/{chunk-BLZDSCIZ.js.map → chunk-DYHOBKPU.js.map} +0 -0
  748. /package/dist/{chunk-6HXNFNOB.js.map → chunk-EE6DJPB7.js.map} +0 -0
  749. /package/dist/{chunk-ANUO67JQ.js.map → chunk-EIMFA7KP.js.map} +0 -0
  750. /package/dist/{chunk-AKE6KVQG.js.map → chunk-EVIQUBC6.js.map} +0 -0
  751. /package/dist/{chunk-6X7PE5DH.js.map → chunk-EXKEPOL7.js.map} +0 -0
  752. /package/dist/{chunk-LIN4A2BW.js.map → chunk-FKS2PNJF.js.map} +0 -0
  753. /package/dist/{chunk-ZYZPSBNQ.js.map → chunk-G3G5W4OF.js.map} +0 -0
  754. /package/dist/{chunk-J2KVF5GO.js.map → chunk-GBB23QLL.js.map} +0 -0
  755. /package/dist/{chunk-KTXJQ4YJ.js.map → chunk-GBVNY2LG.js.map} +0 -0
  756. /package/dist/{chunk-CJLZHW2Z.js.map → chunk-GCR6VE5S.js.map} +0 -0
  757. /package/dist/{chunk-APSEM5AA.js.map → chunk-GS3QDXDP.js.map} +0 -0
  758. /package/dist/{chunk-6IRZZYHF.js.map → chunk-H5R2EZYI.js.map} +0 -0
  759. /package/dist/{chunk-WLSFBXGS.js.map → chunk-HED2CZDZ.js.map} +0 -0
  760. /package/dist/{chunk-JVOEVTCZ.js.map → chunk-HQCZT6TO.js.map} +0 -0
  761. /package/dist/{chunk-NKEFH3RS.js.map → chunk-HWJ3FLZY.js.map} +0 -0
  762. /package/dist/{chunk-42TOCPXB.js.map → chunk-I5SIHPOG.js.map} +0 -0
  763. /package/dist/{chunk-K6FCSB6T.js.map → chunk-I62SKY4E.js.map} +0 -0
  764. /package/dist/{chunk-GOQOVKUZ.js.map → chunk-I6CP3ZTP.js.map} +0 -0
  765. /package/dist/{chunk-UFGT2SFD.js.map → chunk-ICHM2LQA.js.map} +0 -0
  766. /package/dist/{chunk-5IMI2XNU.js.map → chunk-IMMPY4Q7.js.map} +0 -0
  767. /package/dist/{chunk-437HQPUN.js.map → chunk-IQ5MBELJ.js.map} +0 -0
  768. /package/dist/{chunk-FRUDRDJX.js.map → chunk-IZ7JTG3Z.js.map} +0 -0
  769. /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
  770. /package/dist/{chunk-KF3Q3C3P.js.map → chunk-JJFLCEJJ.js.map} +0 -0
  771. /package/dist/{chunk-IWMAFTXP.js.map → chunk-K2VDRODL.js.map} +0 -0
  772. /package/dist/{chunk-CFDWKQZT.js.map → chunk-KILA7LCC.js.map} +0 -0
  773. /package/dist/{chunk-IMYKJTVX.js.map → chunk-KLLHCPA2.js.map} +0 -0
  774. /package/dist/{chunk-FORQEHRQ.js.map → chunk-L5GZZUTY.js.map} +0 -0
  775. /package/dist/{chunk-N557OEZR.js.map → chunk-L62HC3UB.js.map} +0 -0
  776. /package/dist/{chunk-2IHUFUTO.js.map → chunk-LR56OANO.js.map} +0 -0
  777. /package/dist/{chunk-EAFZ3RDY.js.map → chunk-LSGZLFKX.js.map} +0 -0
  778. /package/dist/{chunk-W5WYTVLS.js.map → chunk-LY5I3ZSV.js.map} +0 -0
  779. /package/dist/{chunk-T77OVQEO.js.map → chunk-LZKS3NER.js.map} +0 -0
  780. /package/dist/{chunk-ZAPP32GD.js.map → chunk-M7HYNXCU.js.map} +0 -0
  781. /package/dist/{chunk-D34PZJH3.js.map → chunk-MBMZNSBP.js.map} +0 -0
  782. /package/dist/{chunk-HUXAIQC5.js.map → chunk-MJDSXQV7.js.map} +0 -0
  783. /package/dist/{chunk-PEVBSNCD.js.map → chunk-MLAIXRVL.js.map} +0 -0
  784. /package/dist/{chunk-5U7LBO2V.js.map → chunk-MUHRPJQT.js.map} +0 -0
  785. /package/dist/{chunk-COK65GX2.js.map → chunk-N2KHISGH.js.map} +0 -0
  786. /package/dist/{chunk-UQ5GJPVZ.js.map → chunk-N3C4J6Z2.js.map} +0 -0
  787. /package/dist/{chunk-PGANINQD.js.map → chunk-NI67M453.js.map} +0 -0
  788. /package/dist/{chunk-P4Q7JK4L.js.map → chunk-NQ6P7O7C.js.map} +0 -0
  789. /package/dist/{chunk-QVDEGBME.js.map → chunk-NQCTANF3.js.map} +0 -0
  790. /package/dist/{chunk-AQPPSR4P.js.map → chunk-NQUYBJKJ.js.map} +0 -0
  791. /package/dist/{chunk-LOHQLARB.js.map → chunk-NTCWIMIU.js.map} +0 -0
  792. /package/dist/{chunk-Q4GAPZDA.js.map → chunk-O2MR6U7Q.js.map} +0 -0
  793. /package/dist/{chunk-2FQF4CNE.js.map → chunk-OPP6USJC.js.map} +0 -0
  794. /package/dist/{chunk-HNEZWVDR.js.map → chunk-P5C4DTO4.js.map} +0 -0
  795. /package/dist/{chunk-6EZQLNPK.js.map → chunk-PGJIWCQR.js.map} +0 -0
  796. /package/dist/{chunk-PJNIJIE6.js.map → chunk-RCTHCXS6.js.map} +0 -0
  797. /package/dist/{chunk-YBAK2WN5.js.map → chunk-RFMQBIE6.js.map} +0 -0
  798. /package/dist/{chunk-EYFDIUVR.js.map → chunk-RZTUMBRD.js.map} +0 -0
  799. /package/dist/{chunk-SGFRSRAL.js.map → chunk-S5VIN3EB.js.map} +0 -0
  800. /package/dist/{chunk-QHIWV55K.js.map → chunk-SB2SEGR6.js.map} +0 -0
  801. /package/dist/{chunk-5CP6VW5H.js.map → chunk-SFNVAM7I.js.map} +0 -0
  802. /package/dist/{chunk-HOPRZEBM.js.map → chunk-SKIAWOUC.js.map} +0 -0
  803. /package/dist/{chunk-KES3HNSU.js.map → chunk-T7NEXLW6.js.map} +0 -0
  804. /package/dist/{chunk-EWFBDAB7.js.map → chunk-TOLCZ4XT.js.map} +0 -0
  805. /package/dist/{chunk-HBH7V3IP.js.map → chunk-TOOEEQ46.js.map} +0 -0
  806. /package/dist/{chunk-L7HNQRFS.js.map → chunk-TSID4257.js.map} +0 -0
  807. /package/dist/{chunk-5CP5Z3YU.js.map → chunk-TYGVNTUP.js.map} +0 -0
  808. /package/dist/{chunk-JG733RMP.js.map → chunk-TZC6KIK2.js.map} +0 -0
  809. /package/dist/{chunk-XS6QHZMD.js.map → chunk-UBMH5MED.js.map} +0 -0
  810. /package/dist/{chunk-UXOFA3ZP.js.map → chunk-UNCDOLF5.js.map} +0 -0
  811. /package/dist/{chunk-UYKIUUWP.js.map → chunk-V2QTL6VI.js.map} +0 -0
  812. /package/dist/{chunk-6GICMRDX.js.map → chunk-VMTOLAZ5.js.map} +0 -0
  813. /package/dist/{chunk-4QGMUHAU.js.map → chunk-VQ7YNAK2.js.map} +0 -0
  814. /package/dist/{chunk-B32XH7NK.js.map → chunk-WHOD6LVN.js.map} +0 -0
  815. /package/dist/{chunk-X3EEV3OI.js.map → chunk-WLC56R2I.js.map} +0 -0
  816. /package/dist/{chunk-X4J576GR.js.map → chunk-WTACWJSF.js.map} +0 -0
  817. /package/dist/{chunk-5S5K73I6.js.map → chunk-WUBMJSBR.js.map} +0 -0
  818. /package/dist/{chunk-TSEBMVYY.js.map → chunk-X2GWR75Q.js.map} +0 -0
  819. /package/dist/{chunk-2VRJ577J.js.map → chunk-X3EB67O2.js.map} +0 -0
  820. /package/dist/{chunk-PQGHYFUA.js.map → chunk-XALFZ25A.js.map} +0 -0
  821. /package/dist/{chunk-BNBWUXT3.js.map → chunk-XEKJ7L7I.js.map} +0 -0
  822. /package/dist/{chunk-YPW4HZ3Z.js.map → chunk-XHIBFBNP.js.map} +0 -0
  823. /package/dist/{chunk-QAH3XILB.js.map → chunk-XNIHDUOP.js.map} +0 -0
  824. /package/dist/{chunk-DILDC77M.js.map → chunk-XRVXQJNB.js.map} +0 -0
  825. /package/dist/{chunk-K6WY2CHG.js.map → chunk-XZFTRGRW.js.map} +0 -0
  826. /package/dist/{chunk-LLPPIO3K.js.map → chunk-Y4ZWPOUV.js.map} +0 -0
  827. /package/dist/{chunk-C4NSEUT5.js.map → chunk-Y6IIWGZB.js.map} +0 -0
  828. /package/dist/{chunk-TLJVUWJ5.js.map → chunk-YAQE7QVC.js.map} +0 -0
  829. /package/dist/{chunk-4OUJ4ZMK.js.map → chunk-YDIC6LSP.js.map} +0 -0
  830. /package/dist/{chunk-PVIQDBUN.js.map → chunk-YFG6XXBB.js.map} +0 -0
  831. /package/dist/{chunk-UBVKMM3V.js.map → chunk-YGQ2DLIM.js.map} +0 -0
  832. /package/dist/{chunk-T5RFH2T5.js.map → chunk-YKONJEI4.js.map} +0 -0
  833. /package/dist/{chunk-ZIHSCBMN.js.map → chunk-YLZXIR6B.js.map} +0 -0
  834. /package/dist/{chunk-A3DDEKLV.js.map → chunk-YNZUYZ2O.js.map} +0 -0
  835. /package/dist/{chunk-YNVTUQ5B.js.map → chunk-YWBPASB2.js.map} +0 -0
  836. /package/dist/{chunk-G3JFESKD.js.map → chunk-Z5WUSI47.js.map} +0 -0
  837. /package/dist/{chunk-IX5ADKII.js.map → chunk-Z7CBLQQR.js.map} +0 -0
  838. /package/dist/{chunk-7WE432RQ.js.map → chunk-ZCNR4DN5.js.map} +0 -0
  839. /package/dist/{chunk-JRBSTOMA.js.map → chunk-ZDAAHCIS.js.map} +0 -0
  840. /package/dist/{chunk-2SBQ47RI.js.map → chunk-ZF2LZVDO.js.map} +0 -0
  841. /package/dist/{chunk-4IG73U2X.js.map → chunk-ZIA774ZW.js.map} +0 -0
  842. /package/dist/{chunk-E5OBAS3U.js.map → chunk-ZLIES3XR.js.map} +0 -0
  843. /package/dist/native/chunks/{chunk-FXA5DLKR.js.map → chunk-4G634E3Q.js.map} +0 -0
  844. /package/dist/native/chunks/{chunk-IN3XZ7EK.js.map → chunk-WLG3KT2V.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  import "../chunk-3QQVEYOR.js";
2
2
  import {
3
3
  InstallPrompt
4
- } from "../chunk-5ZOJLYD2.js";
5
- import "../chunk-GY62N32G.js";
4
+ } from "../chunk-JE6RZ5L6.js";
6
5
  import {
7
6
  usePwaInstall
8
7
  } from "../chunk-5GMHJ7Y5.js";
8
+ import "../chunk-GY62N32G.js";
9
9
  import "../chunk-WXYLH3QZ.js";
10
10
  import {
11
11
  PWA_INSTALL_AVAILABLE_EVENT,
@@ -1,19 +1,19 @@
1
1
  import "../chunk-IO36MEBD.js";
2
2
  import {
3
3
  WorkflowStep
4
- } from "../chunk-UQ5GJPVZ.js";
5
- import "../chunk-CAOL4AIB.js";
6
- import "../chunk-IMYKJTVX.js";
7
- import "../chunk-UBVKMM3V.js";
4
+ } from "../chunk-N3C4J6Z2.js";
5
+ import "../chunk-AEAVVKGY.js";
6
+ import "../chunk-KLLHCPA2.js";
7
+ import "../chunk-YGQ2DLIM.js";
8
8
  import "../chunk-LL2BWQPM.js";
9
- import "../chunk-XOXXG7Q5.js";
9
+ import "../chunk-57FIUJJJ.js";
10
10
  import "../chunk-B7ZHEOQQ.js";
11
11
  import "../chunk-BRHRK7BK.js";
12
12
  import "../chunk-25MSGLNU.js";
13
13
  import "../chunk-GAXHYRX6.js";
14
14
  import "../chunk-NP6SHLQ3.js";
15
- import "../chunk-TZ23DNKY.js";
16
15
  import "../chunk-7ZPUN7TV.js";
16
+ import "../chunk-TZ23DNKY.js";
17
17
  import "../chunk-PT6TCWIW.js";
18
18
  import "../chunk-RGVNXES5.js";
19
19
  import "../chunk-GDN2LUTZ.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.86.2",
3
+ "version": "6.87.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -192,6 +192,10 @@
192
192
  "types": "./dist/types/components/data-display/DataViews/index.d.ts",
193
193
  "default": "./dist/data-display/DataViews.js"
194
194
  },
195
+ "./data-display/DayRuler": {
196
+ "types": "./dist/types/components/data-display/DayRuler/index.d.ts",
197
+ "default": "./dist/data-display/DayRuler.js"
198
+ },
195
199
  "./data-display/DescriptionItem": {
196
200
  "types": "./dist/types/components/data-display/DescriptionItem/index.d.ts",
197
201
  "default": "./dist/data-display/DescriptionItem.js"
@@ -216,6 +220,10 @@
216
220
  "types": "./dist/types/components/data-display/RegionMap/index.d.ts",
217
221
  "default": "./dist/data-display/RegionMap.js"
218
222
  },
223
+ "./data-display/ScheduleGrid": {
224
+ "types": "./dist/types/components/data-display/ScheduleGrid/index.d.ts",
225
+ "default": "./dist/data-display/ScheduleGrid.js"
226
+ },
219
227
  "./data-display/SectionOnboarding": {
220
228
  "types": "./dist/types/components/data-display/SectionOnboarding/index.d.ts",
221
229
  "default": "./dist/data-display/SectionOnboarding.js"
@@ -0,0 +1,94 @@
1
+ import type * as React from 'react';
2
+
3
+ import type { DayRulerLabels } from '../../../copy/labels';
4
+ import { DAY_RULER_METRICS as M } from './DayRuler.metrics';
5
+ import { clamp, formatRange, moved, resized, snapTo } from './day-ruler-model';
6
+ import type { DayRulerBlock, RulerHour } from './DayRuler.types';
7
+
8
+ /** The ruler's span and step, resolved once per render. */
9
+ export interface RulerScale {
10
+ from: RulerHour;
11
+ to: RulerHour;
12
+ /** The snap, in hours (0.25 for 15 minutes). */
13
+ snap: number;
14
+ createHours: number;
15
+ tickHours: number;
16
+ }
17
+
18
+ /** What the ruler lets a row do, resolved once per render. */
19
+ export interface RulerAbilities {
20
+ create: boolean;
21
+ move: boolean;
22
+ resize: boolean;
23
+ }
24
+
25
+ /** Which gesture a modified arrow asks of a block, if the ruler allows it. */
26
+ type Gesture = 'move' | 'start' | 'end';
27
+
28
+ function gestureOf(event: React.KeyboardEvent, block: DayRulerBlock, can: RulerAbilities): Gesture | null {
29
+ if (event.altKey && !event.shiftKey) return can.move && block.movable ? 'move' : null;
30
+ if (!event.shiftKey) return null;
31
+ if (!can.resize || !block.resizable) return null;
32
+ return event.altKey ? 'start' : 'end';
33
+ }
34
+
35
+ /** The block's hours after one snap of `gesture` in `direction`. */
36
+ function stepped(block: DayRulerBlock, gesture: Gesture, direction: -1 | 1, scale: RulerScale): [RulerHour, RulerHour] {
37
+ const step = direction * scale.snap;
38
+ if (gesture === 'move') return moved(block.start, block.end, step, scale.from, scale.to);
39
+ const edge = (gesture === 'start' ? block.start : block.end) + step;
40
+ return resized(block.start, block.end, gesture, edge, M.minHours, scale.from, scale.to);
41
+ }
42
+
43
+ interface BlockKeyContext {
44
+ scale: RulerScale;
45
+ can: RulerAbilities;
46
+ onMove?: (blockId: string, start: RulerHour, end: RulerHour) => void;
47
+ onResize?: (blockId: string, start: RulerHour, end: RulerHour) => void;
48
+ labels: DayRulerLabels;
49
+ say: (text: string) => void;
50
+ }
51
+
52
+ /**
53
+ * A focused block's keys (FUT-3825): Alt+←/→ moves it one snap, Shift+←/→
54
+ * moves its end, Shift+Alt+←/→ its start. Each is read by the live region; one
55
+ * that cannot go further, or that the block does not allow, is refused aloud
56
+ * and changes nothing.
57
+ */
58
+ /** Shift and/or Alt with ← or →, and no Ctrl or Meta: a key the ruler answers for a block. */
59
+ function isBlockKey(event: React.KeyboardEvent): boolean {
60
+ const arrow = event.key === 'ArrowLeft' || event.key === 'ArrowRight';
61
+ return arrow && (event.altKey || event.shiftKey) && !event.ctrlKey && !event.metaKey;
62
+ }
63
+
64
+ export function handleBlockKey(event: React.KeyboardEvent, block: DayRulerBlock, ctx: BlockKeyContext): void {
65
+ if (!isBlockKey(event)) return;
66
+ // The key is the ruler's either way: Alt+← would otherwise be the browser's Back.
67
+ event.preventDefault();
68
+ const gesture = gestureOf(event, block, ctx.can);
69
+ if (!gesture) {
70
+ ctx.say(ctx.labels.notMovable);
71
+ return;
72
+ }
73
+ const [start, end] = stepped(block, gesture, event.key === 'ArrowLeft' ? -1 : 1, ctx.scale);
74
+ if (start === block.start && end === block.end) {
75
+ ctx.say(ctx.labels.refused);
76
+ return;
77
+ }
78
+ const range = formatRange(start, end);
79
+ if (gesture === 'move') {
80
+ ctx.onMove?.(block.id, start, end);
81
+ ctx.say(ctx.labels.moved(block.label, range));
82
+ return;
83
+ }
84
+ ctx.onResize?.(block.id, start, end);
85
+ ctx.say(ctx.labels.resized(block.label, range));
86
+ }
87
+
88
+ /** Where Enter on a track creates: the host's `createStart`, else `now` snapped up, else `from` — kept on the ruler. */
89
+ export function keyCreateSpan(scale: RulerScale, now: RulerHour | undefined, hostStart: RulerHour | undefined): [RulerHour, RulerHour] {
90
+ const onRuler = now !== undefined && now >= scale.from && now < scale.to;
91
+ const fallback = onRuler ? Math.ceil(now / scale.snap) * scale.snap : scale.from;
92
+ const start = clamp(snapTo(hostStart ?? fallback, scale.snap), scale.from, scale.to - M.minHours);
93
+ return [start, Math.min(scale.to, start + scale.createHours)];
94
+ }
@@ -0,0 +1,84 @@
1
+ # DayRuler
2
+
3
+ One day as an **hour ruler per row** — who is on the escala when (blocks), who is really on
4
+ shift (a thin bar under them), "agora" (a line across every track) and how many people are on
5
+ each hour (a row of counts above the axis) (FUT-3825, Turnos prototype D). The ruler reports
6
+ gestures; hours, limits and refusals are the host's.
7
+
8
+ ```
9
+ Na escala, por hora [ ][ ][5][5][5] … [1][1][1][ ][ ]
10
+ 06:00 10:00 … 22:00 02:00
11
+ ENTREGAS
12
+ Luiz entrega |··········[↻ 20:39–00:00]···| [Iniciar agora]
13
+ atrasado · era 20:39 ┃ agora
14
+ Anderson Paiva | sem escala · desde 08:26 | [Encerrar turno]
15
+ | ━━━━━━━━━━━━━━━━━━━━━━━━━┃|
16
+ ```
17
+
18
+ Times are **hours from the day's midnight**, fractions included: `20.75` is 20:45 and a value past
19
+ 24 is the next morning (`26` is 02:00).
20
+
21
+ ## Gestures
22
+
23
+ | gesture | pointer (mouse, pen) | keyboard | reports |
24
+ |---|---|---|---|
25
+ | create | drag on an empty stretch of a row's track; **a click alone is `createHours`** (4h) | Enter on the focused track: `createHours` from `createStart(rowId)` (default: `now` snapped up, else `from`) | `onCreate(rowId, start, end)` |
26
+ | move | drag a block's middle — its length is kept, it stays on the ruler | Alt+← / Alt+→ | `onMove(blockId, start, end)` |
27
+ | change the end / start | drag the block's right / left handle — never shorter than 30 min | Shift+← / Shift+→ (end), Shift+Alt+← / Shift+Alt+→ (start) | `onResize(blockId, start, end)` |
28
+ | open | click or tap a block | Enter | `onBlockClick(blockId)` |
29
+
30
+ - Every hour snaps to `snapMinutes` (15) and is kept within `from…to`.
31
+ - While a drag runs the block is redrawn live with its hours.
32
+ - **Touch never drags and a tap on the track creates nothing** (the phone schedules with the host's
33
+ "+ Agendar ⟨dia⟩"); a tap on a block opens it.
34
+ - A release anywhere commits the drag. **Escape**, the window losing focus, or a move with no
35
+ button down abandons it: nothing is reported, the block goes back to its hours (a create's
36
+ preview goes), and only the click that release leaves behind is ignored.
37
+ - Keyboard moves, resizes and refusals (past the ruler; `labels.notMovable` on a block that is
38
+ not `movable` / `resizable`) are read by a polite live region that stays mounted; the same sentence twice is
39
+ read twice.
40
+
41
+ ## Props
42
+
43
+ | Prop | Type | Description |
44
+ |---|---|---|
45
+ | `rows` | `DayRulerRow[]` | `id`, `label`, `meta?`, `metaTone?`, `nameAdornment?` (node beside the name — a "Freela" tag; it moves under the name when there is no room for both), `chips?` (node — one line, a chip that does not fit shrinks and cuts its label), `actions?` (node — "Encerrar turno", "Iniciar agora"), `blocks` (`id`, `start`, `end`, `label`, `shortLabel?`, `tone`, `movable?`, `resizable?`, `selected?`, `title?`, `breakSpan?` — `{ start, end }` in ruler hours, a meal break drawn as a hatched gap inside the block: it travels with a moved block and is cut to its ends while one is dragged; a span that falls outside the block, is empty or is reversed (`end <= start`) draws nothing; its words are the host's, in `label` / `title`), `actual?` (`start`, `end`), `actualLabel?`, `group?` (a new value starts a new heading), `onLabelClick?`, `labelAccessible?`. |
46
+ | `from` / `to` | `number` (default 6 / 26) | The ruler's span. |
47
+ | `now` | `number?` | The "agora" line, when on the ruler. |
48
+ | `coverage` | `number[]?` | People per hour, index 0 = `from…from+1`. |
49
+ | `coverageLabel` | `string?` | Beside the counts ("Na escala, por hora"). |
50
+ | `tickHours` | `number` (default 4) | An axis label every this many hours (HH:MM). |
51
+ | `snapMinutes` | `number` (default 15) | |
52
+ | `createHours` | `number` (default 4) | What a click alone creates. |
53
+ | `createStart` | `(rowId) => number` | Where Enter creates. |
54
+ | `readOnly` | `boolean?` | Nothing creates, moves or resizes; blocks still open. |
55
+ | `onCreate` / `onMove` / `onResize` / `onBlockClick` | see Gestures | Each is offered only when its handler is given. |
56
+ | `loading` / `error` / `empty` | `boolean` / node / node | Skeleton rows with `aria-busy`; the host's error; the host's empty sentence. |
57
+ | `aria-label` | `string?` | The region's name. |
58
+ | `labels` | `Partial<DayRulerLabels>` | `createTrack(row)`, `moved(block, range)`, `resized(block, range)`, `refused`, `loading`. Default: the English pack; pt-BR: `UI_LABELS['pt-BR'].dayRuler`. |
59
+ | `dataTestId` | `string?` (default `day-ruler`) | Parts: `-coverage`, `-axis`, `-row-${rowId}`, `-track-${rowId}`, `-block-${blockId}`, `-handle-l/-r-${blockId}`, `-break-${blockId}`, `-actual-${rowId}`, `-now`, `-preview`, `-live`, `-loading`. |
60
+
61
+ Tones are `ScheduleGrid`'s; on the ruler a `plan` block is a dashed outline over a faint ground.
62
+
63
+ ## Layout
64
+
65
+ - **Computer:** name 220px · track (`minmax(0, 1fr)`) · actions 220px (none when no row has
66
+ `actions`), 16px gap; a hairline between rows. Track 40px tall with a line every hour; blocks 24px at +4px; the actual bar 6px
67
+ at +31px; the now line the track's full height.
68
+ - **Stacked (a container under 800px: a phone, a tablet in portrait)** — a container query, not a
69
+ media query: name, meta, chips and the actions on top, the track under them at full width, 30px
70
+ tall with a line every `tickHours`; the coverage row (its label above the counts) and the hour
71
+ axis span the same full width. **Under 600px** (a phone-sized pane) there is no coverage row and
72
+ no axis. Every bound is "from that width up". A block whose range does not fit it, by pixels,
73
+ says only its `shortLabel` (its start), never a cut "20:39–00:". The 20px blocks and the 24px name buttons
74
+ answer a 40px finger (an invisible hit area), the look unchanged.
75
+
76
+ ## Accessibility
77
+
78
+ Rows are a `list` per group. Blocks are native buttons with `aria-keyshortcuts`; the `selected`
79
+ block is `aria-current="true"`. An interactive
80
+ track is a focusable `group` named `labels.createTrack(row)`; Enter or Space creates.
81
+
82
+ ## Related
83
+
84
+ `ScheduleGrid` (the week), `SequenceResolver` (the problems a late block opens).
@@ -0,0 +1,47 @@
1
+ /**
2
+ * THE DAY RULER'S NUMBERS — the approved prototype's (FUT-3823, frames d02 at
3
+ * 1280 and the phone rows), in px. The web reads them through `rem`/`sxRem`.
4
+ */
5
+ export const DAY_RULER_METRICS = {
6
+ /** The name and the actions columns on a computer. */
7
+ sideColumn: 220,
8
+ gap: 16,
9
+ /**
10
+ * Below this container width a row stacks: name and actions on top, the
11
+ * track under them. Two 220px side columns, their gaps and a track of at
12
+ * least 320px (where the hour labels every 4 hours do not collide): 792,
13
+ * rounded up.
14
+ */
15
+ compactBelow: 800,
16
+ /**
17
+ * Below this container width the pane is phone-sized: no coverage row and
18
+ * no hour axis. Between it and `compactBelow` the rows stack and the two
19
+ * lines are drawn across the full width, like the tracks.
20
+ */
21
+ phoneBelow: 600,
22
+ rowPaddingY: 8,
23
+ track: { height: 40, compactHeight: 30, radius: 8, compactRadius: 6 },
24
+ block: { top: 4, height: 24, compactTop: 3, compactHeight: 20, radius: 6, paddingX: 6, font: 12, hitArea: 40 },
25
+ /** The end handles' hit area. */
26
+ handle: 10,
27
+ actual: { top: 31, height: 6, compactTop: 24, compactHeight: 4, radius: 3 },
28
+ actualLabel: { top: 8, offset: 6, font: 12 },
29
+ now: { width: 2, overhang: 2 },
30
+ coverage: { height: 26, gap: 2, radius: 4, font: 12 },
31
+ axis: { height: 18, font: 12 },
32
+ name: 15,
33
+ meta: 13,
34
+ groupTitle: 12,
35
+ ring: 2,
36
+ /** How far a block's focus ring stands off it. */
37
+ ringOffset: 1,
38
+ /** The loading row's name bar. */
39
+ skeletonNameRadius: 4,
40
+ /** Where a block's text cannot be measured, one shorter than this share of the ruler says only its start on a narrow ruler. */
41
+ narrowShare: 0.3,
42
+ /** The shortest block a resize leaves, in hours. */
43
+ minHours: 0.5,
44
+ skeletonRows: 4,
45
+ /** The hatch of a break inside a block: stripe width. */
46
+ breakStripe: { ink: 2, gap: 3 },
47
+ } as const;
@@ -0,0 +1,272 @@
1
+ import Box from '@mui/material/Box/index.js';
2
+ import type * as React from 'react';
3
+ import { useRef } from 'react';
4
+
5
+ import { ScheduleNameCell } from '../ScheduleGrid/ScheduleNameCell';
6
+ import type { RulerAbilities, RulerScale } from './DayRuler.keyboard';
7
+ import { DAY_RULER_METRICS as M } from './DayRuler.metrics';
8
+ import { useTextFits } from './useTextFits';
9
+ import { formatHour, formatRange, percentOf, ticksOf } from './day-ruler-model';
10
+ import {
11
+ actionsSx,
12
+ actualLabelSx,
13
+ actualSx,
14
+ axisSx,
15
+ blockSx,
16
+ breakSx,
17
+ coverageCellSx,
18
+ coverageLabelSx,
19
+ coverageSx,
20
+ handleSx,
21
+ lineSx,
22
+ nowSx,
23
+ rowSx,
24
+ trackSx,
25
+ whoSx,
26
+ type Span,
27
+ } from './DayRuler.styles';
28
+ import type { DayRulerBlock, DayRulerRow, RulerHour } from './DayRuler.types';
29
+ import type { RulerDrag, RulerDragApi } from './useRulerDrag';
30
+
31
+ export const spanOf = (start: RulerHour, end: RulerHour, scale: RulerScale): Span => {
32
+ const at = percentOf(start, scale.from, scale.to);
33
+ return { at, share: Math.max(0, percentOf(end, scale.from, scale.to) - at) };
34
+ };
35
+
36
+ /** What every row of one ruler shares. */
37
+ export interface RowContext {
38
+ scale: RulerScale;
39
+ now?: RulerHour;
40
+ can: RulerAbilities;
41
+ drag: RulerDrag | null;
42
+ dragApi: RulerDragApi;
43
+ onBlockClick?: (blockId: string) => void;
44
+ onKeyCreate: (row: DayRulerRow) => void;
45
+ onBlockKey: (event: React.KeyboardEvent, block: DayRulerBlock) => void;
46
+ createLabel: (row: string) => string;
47
+ testId: string;
48
+ }
49
+
50
+ /** The keys a block answers to, for `aria-keyshortcuts`. */
51
+ function shortcutsOf(movable: boolean, resizable: boolean): string | undefined {
52
+ const keys = [
53
+ movable ? 'Alt+ArrowLeft Alt+ArrowRight' : '',
54
+ resizable ? 'Shift+ArrowLeft Shift+ArrowRight Shift+Alt+ArrowLeft Shift+Alt+ArrowRight' : '',
55
+ ];
56
+ return keys.filter(Boolean).join(' ') || undefined;
57
+ }
58
+
59
+ function Handle({ side, onPointerDown, testId }: { side: 'l' | 'r'; onPointerDown: (event: React.PointerEvent<HTMLElement>) => void; testId: string }) {
60
+ return <Box component="span" aria-hidden sx={handleSx(side)} data-testid={testId} onPointerDown={onPointerDown} />;
61
+ }
62
+
63
+ interface BlockProps {
64
+ row: DayRulerRow;
65
+ block: DayRulerBlock;
66
+ /** Where it is drawn: its own hours, or where a drag has it now. */
67
+ span: Span;
68
+ /** The hours it is drawn at (its own, or a drag's). */
69
+ at: { start: RulerHour; end: RulerHour };
70
+ text: string;
71
+ ctx: RowContext;
72
+ testId: string;
73
+ }
74
+
75
+ /**
76
+ * The block's break, where it falls inside the block as drawn: it moves with a
77
+ * dragged block (same offset from its start) and is cut to the block's ends.
78
+ */
79
+ function breakShare(block: DayRulerBlock, start: RulerHour, end: RulerHour): Span | null {
80
+ const span = block.breakSpan;
81
+ const length = end - start;
82
+ if (!span || !(length > 0)) return null;
83
+ const shift = Math.abs(length - (block.end - block.start)) < 1e-6 ? start - block.start : 0;
84
+ const a = Math.max(start, span.start + shift);
85
+ const b = Math.min(end, span.end + shift);
86
+ if (!(b > a)) return null;
87
+ return { at: ((a - start) / length) * 100, share: ((b - a) / length) * 100 };
88
+ }
89
+
90
+ /** The block's break as a hatched band, when it falls inside the block as drawn. */
91
+ function BreakBand({ block, at, testId }: { block: DayRulerBlock; at: BlockProps['at']; testId: string }): React.JSX.Element | null {
92
+ const gap = breakShare(block, at.start, at.end);
93
+ if (!gap) return null;
94
+ return <Box component="span" aria-hidden sx={breakSx(gap)} data-dr-break="" data-testid={testId} />;
95
+ }
96
+
97
+ function RulerBlock({ row, block, span, at, text, ctx, testId }: BlockProps): React.JSX.Element {
98
+ const { can, dragApi, scale } = ctx;
99
+ const movable = can.move && Boolean(block.movable);
100
+ const resizable = can.resize && Boolean(block.resizable);
101
+ const ref = useRef<HTMLButtonElement | null>(null);
102
+ // Short by pixels; where nothing can be measured, by the prototype's 30% rule.
103
+ const fits = useTextFits(ref, text, (block.end - block.start) / (scale.to - scale.from) >= M.narrowShare);
104
+ const press = (mode: 'move' | 'start' | 'end') => (event: React.PointerEvent<HTMLElement>) =>
105
+ dragApi.startBlock(event, row.id, block, mode);
106
+ return (
107
+ <Box
108
+ component="button"
109
+ type="button"
110
+ sx={blockSx(block.tone, span, { selected: Boolean(block.selected), movable })}
111
+ title={block.title ?? block.label}
112
+ aria-keyshortcuts={shortcutsOf(movable, resizable)}
113
+ aria-current={block.selected ? 'true' : undefined}
114
+ ref={ref}
115
+ data-narrow={fits ? undefined : ''}
116
+ data-tone={block.tone}
117
+ data-testid={testId}
118
+ onPointerDown={movable ? press('move') : undefined}
119
+ onClick={() => {
120
+ if (!dragApi.takeClick()) ctx.onBlockClick?.(block.id);
121
+ }}
122
+ onKeyDown={(event: React.KeyboardEvent) => ctx.onBlockKey(event, block)}
123
+ >
124
+ <BreakBand block={block} at={at} testId={`${ctx.testId}-break-${block.id}`} />
125
+ {resizable ? <Handle side="l" onPointerDown={press('start')} testId={`${ctx.testId}-handle-l-${block.id}`} /> : null}
126
+ <span data-dr-text="full" title={text}>
127
+ {text}
128
+ </span>
129
+ <span data-dr-text="short" title={text}>
130
+ {block.shortLabel ?? text}
131
+ </span>
132
+ {resizable ? <Handle side="r" onPointerDown={press('end')} testId={`${ctx.testId}-handle-r-${block.id}`} /> : null}
133
+ </Box>
134
+ );
135
+ }
136
+
137
+ /** A row's blocks, each where a drag has it now (with its live hours) or where it is. */
138
+ function Blocks({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element {
139
+ const mine = ctx.drag && ctx.drag.rowId === row.id ? ctx.drag : null;
140
+ return (
141
+ <>
142
+ {row.blocks.map((block) => {
143
+ const live = mine?.blockId === block.id ? mine : null;
144
+ const start = live ? live.start : block.start;
145
+ const end = live ? live.end : block.end;
146
+ return (
147
+ <RulerBlock
148
+ key={block.id}
149
+ row={row}
150
+ block={block}
151
+ span={spanOf(start, end, ctx.scale)}
152
+ at={{ start, end }}
153
+ text={live?.moved ? formatRange(start, end) : block.label}
154
+ ctx={ctx}
155
+ testId={`${ctx.testId}-block-${block.id}`}
156
+ />
157
+ );
158
+ })}
159
+ {mine && mine.mode === 'create' ? <CreatePreview row={row} drag={mine} ctx={ctx} /> : null}
160
+ </>
161
+ );
162
+ }
163
+
164
+ /** The block a create drag is drawing, with its live hours. */
165
+ function CreatePreview({ row, drag, ctx }: { row: DayRulerRow; drag: RulerDrag; ctx: RowContext }): React.JSX.Element {
166
+ const range = formatRange(drag.start, drag.end);
167
+ return (
168
+ <RulerBlock
169
+ row={row}
170
+ block={{ id: '\u0000new', start: drag.start, end: drag.end, label: range, tone: 'plan' }}
171
+ span={spanOf(drag.start, Math.max(drag.end, drag.start + ctx.scale.snap), ctx.scale)}
172
+ at={{ start: drag.start, end: drag.end }}
173
+ text={range}
174
+ ctx={ctx}
175
+ testId={`${ctx.testId}-preview`}
176
+ />
177
+ );
178
+ }
179
+
180
+ /** The real shift under the blocks, and its label at its start. */
181
+ function Actual({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element | null {
182
+ const { actual } = row;
183
+ if (!actual) return null;
184
+ return (
185
+ <>
186
+ <Box sx={actualSx(spanOf(actual.start, actual.end, ctx.scale))} data-testid={`${ctx.testId}-actual-${row.id}`} />
187
+ {row.actualLabel ? (
188
+ <Box component="span" sx={actualLabelSx(percentOf(actual.start, ctx.scale.from, ctx.scale.to))}>
189
+ {row.actualLabel}
190
+ </Box>
191
+ ) : null}
192
+ </>
193
+ );
194
+ }
195
+
196
+ /** A row's track: the actual bar, its blocks (or the one being dragged, live) and the now line. */
197
+ function Track({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element {
198
+ const { scale, now, can, dragApi } = ctx;
199
+ const showNow = now !== undefined && now >= scale.from && now <= scale.to;
200
+ return (
201
+ <Box
202
+ sx={trackSx({ hours: scale.to - scale.from, tickHours: scale.tickHours, interactive: can.create })}
203
+ data-dr-track=""
204
+ data-testid={`${ctx.testId}-track-${row.id}`}
205
+ role={can.create ? 'group' : undefined}
206
+ tabIndex={can.create ? 0 : undefined}
207
+ aria-label={can.create ? ctx.createLabel(row.label) : undefined}
208
+ onPointerDown={can.create ? (event: React.PointerEvent<HTMLElement>) => dragApi.startCreate(event, row.id) : undefined}
209
+ onKeyDown={(event: React.KeyboardEvent) => {
210
+ if (!can.create || event.target !== event.currentTarget || (event.key !== 'Enter' && event.key !== ' ')) return;
211
+ event.preventDefault();
212
+ ctx.onKeyCreate(row);
213
+ }}
214
+ >
215
+ <Actual row={row} ctx={ctx} />
216
+ <Blocks row={row} ctx={ctx} />
217
+ {showNow ? <Box sx={nowSx(percentOf(now, scale.from, scale.to))} data-testid={`${ctx.testId}-now`} /> : null}
218
+ </Box>
219
+ );
220
+ }
221
+
222
+ /** One person: name, meta and chips · the track · the row's actions. */
223
+ export function RulerRow({ row, ctx }: { row: DayRulerRow; ctx: RowContext }): React.JSX.Element {
224
+ return (
225
+ <Box sx={rowSx} data-testid={`${ctx.testId}-row-${row.id}`} role="listitem">
226
+ <ScheduleNameCell row={row} sx={whoSx} sizes={{ name: M.name, meta: M.meta, chipsTop: 0.75 }} />
227
+ <Track row={row} ctx={ctx} />
228
+ <Box sx={actionsSx}>{row.actions}</Box>
229
+ </Box>
230
+ );
231
+ }
232
+
233
+ /** "Na escala, por hora": a count per hour above the axis. */
234
+ export function Coverage(props: { coverage: readonly number[]; label?: string; scale: RulerScale; testId: string }): React.JSX.Element {
235
+ const { coverage, label, scale, testId } = props;
236
+ const hours = scale.to - scale.from;
237
+ return (
238
+ <Box sx={lineSx} data-testid={`${testId}-coverage`}>
239
+ <Box component="span" sx={coverageLabelSx}>
240
+ {label}
241
+ </Box>
242
+ <Box sx={coverageSx(hours)}>
243
+ {Array.from({ length: hours }, (_, index) => {
244
+ const count = coverage[index] ?? 0;
245
+ return (
246
+ <Box key={index} component="span" sx={coverageCellSx(count)} title={`${formatHour(scale.from + index)} · ${count}`}>
247
+ {count > 0 ? count : ''}
248
+ </Box>
249
+ );
250
+ })}
251
+ </Box>
252
+ <span />
253
+ </Box>
254
+ );
255
+ }
256
+
257
+ /** The hour labels under the coverage row. */
258
+ export function Axis({ scale, testId }: { scale: RulerScale; testId: string }): React.JSX.Element {
259
+ return (
260
+ <Box sx={lineSx} data-testid={`${testId}-axis`} aria-hidden>
261
+ <span />
262
+ <Box sx={axisSx}>
263
+ {ticksOf(scale.from, scale.to, scale.tickHours).map((h) => (
264
+ <span key={h} style={{ left: `${percentOf(h, scale.from, scale.to)}%` }}>
265
+ {formatHour(h)}
266
+ </span>
267
+ ))}
268
+ </Box>
269
+ <span />
270
+ </Box>
271
+ );
272
+ }