@multiplatform.one/components 7.7.6 → 7.10.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 (885) hide show
  1. package/dist/cjs/Accordion/index.cjs +3 -3
  2. package/dist/cjs/Accordion/index.native.js +4 -4
  3. package/dist/cjs/Accordion/index.native.js.map +1 -1
  4. package/dist/cjs/Button.native.js.map +1 -1
  5. package/dist/cjs/Card.cjs +7 -1
  6. package/dist/cjs/Card.native.js +11 -1
  7. package/dist/cjs/Card.native.js.map +1 -1
  8. package/dist/cjs/CardFooter.cjs +1 -0
  9. package/dist/cjs/CardFooter.native.js +1 -0
  10. package/dist/cjs/CardFooter.native.js.map +1 -1
  11. package/dist/cjs/Chip/index.cjs +1 -1
  12. package/dist/cjs/Chip/index.native.js +1 -1
  13. package/dist/cjs/Chip/index.native.js.map +1 -1
  14. package/dist/cjs/ContextMenu/index.cjs +3 -3
  15. package/dist/cjs/ContextMenu/index.native.js +3 -3
  16. package/dist/cjs/ContextMenu/index.native.js.map +1 -1
  17. package/dist/cjs/CopyField/index.cjs +6 -1
  18. package/dist/cjs/CopyField/index.native.js +6 -1
  19. package/dist/cjs/CopyField/index.native.js.map +1 -1
  20. package/dist/cjs/DropdownMenu/index.cjs +34 -4
  21. package/dist/cjs/DropdownMenu/index.native.js +34 -4
  22. package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
  23. package/dist/cjs/Meter/index.cjs +15 -7
  24. package/dist/cjs/Meter/index.native.js +15 -7
  25. package/dist/cjs/Meter/index.native.js.map +1 -1
  26. package/dist/cjs/Meter/meter.cjs +1 -2
  27. package/dist/cjs/Meter/meter.native.js +1 -2
  28. package/dist/cjs/Meter/meter.native.js.map +1 -1
  29. package/dist/cjs/Pagination.cjs +2 -2
  30. package/dist/cjs/Pagination.native.js +2 -2
  31. package/dist/cjs/Pagination.native.js.map +1 -1
  32. package/dist/cjs/ProgressSteps/index.cjs +3 -3
  33. package/dist/cjs/ProgressSteps/index.native.js +3 -3
  34. package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
  35. package/dist/cjs/Quote/index.cjs +1 -2
  36. package/dist/cjs/Quote/index.native.js +1 -2
  37. package/dist/cjs/Quote/index.native.js.map +1 -1
  38. package/dist/cjs/Tabs/index.cjs +8 -7
  39. package/dist/cjs/Tabs/index.native.js +9 -8
  40. package/dist/cjs/Tabs/index.native.js.map +1 -1
  41. package/dist/cjs/Toast/index.cjs +57 -7
  42. package/dist/cjs/Toast/index.native.js +59 -7
  43. package/dist/cjs/Toast/index.native.js.map +1 -1
  44. package/dist/cjs/TreeSelect/index.cjs +46 -7
  45. package/dist/cjs/TreeSelect/index.native.js +58 -7
  46. package/dist/cjs/TreeSelect/index.native.js.map +1 -1
  47. package/dist/cjs/actions/DestructiveAction.cjs +7 -13
  48. package/dist/cjs/actions/DestructiveAction.native.js +7 -15
  49. package/dist/cjs/actions/DestructiveAction.native.js.map +1 -1
  50. package/dist/cjs/charts/Axis.cjs +5 -0
  51. package/dist/cjs/charts/Axis.native.js +5 -0
  52. package/dist/cjs/charts/Axis.native.js.map +1 -1
  53. package/dist/cjs/charts/BarChart.cjs +71 -57
  54. package/dist/cjs/charts/BarChart.native.js +81 -67
  55. package/dist/cjs/charts/BarChart.native.js.map +1 -1
  56. package/dist/cjs/charts/ChartDataView.cjs +212 -0
  57. package/dist/cjs/charts/ChartDataView.native.js +224 -0
  58. package/dist/cjs/charts/ChartDataView.native.js.map +1 -0
  59. package/dist/cjs/charts/ChartSurface.cjs +5 -1
  60. package/dist/cjs/charts/ChartSurface.native.js +5 -1
  61. package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
  62. package/dist/cjs/charts/LineChart.cjs +81 -67
  63. package/dist/cjs/charts/LineChart.native.js +94 -80
  64. package/dist/cjs/charts/LineChart.native.js.map +1 -1
  65. package/dist/cjs/charts/PieChart.cjs +98 -74
  66. package/dist/cjs/charts/PieChart.native.js +109 -85
  67. package/dist/cjs/charts/PieChart.native.js.map +1 -1
  68. package/dist/cjs/charts/Sparkline.cjs +10 -1
  69. package/dist/cjs/charts/Sparkline.native.js +10 -1
  70. package/dist/cjs/charts/Sparkline.native.js.map +1 -1
  71. package/dist/cjs/charts/accessibility.cjs +4 -0
  72. package/dist/cjs/charts/accessibility.native.js +7 -0
  73. package/dist/cjs/charts/accessibility.native.js.map +1 -1
  74. package/dist/cjs/charts/index.cjs +3 -1
  75. package/dist/cjs/charts/index.native.js +2 -0
  76. package/dist/cjs/charts/index.native.js.map +1 -1
  77. package/dist/cjs/charts/math.cjs +16 -0
  78. package/dist/cjs/charts/math.native.js +18 -0
  79. package/dist/cjs/charts/math.native.js.map +1 -1
  80. package/dist/cjs/charts/series.cjs +49 -7
  81. package/dist/cjs/charts/series.native.js +53 -11
  82. package/dist/cjs/charts/series.native.js.map +1 -1
  83. package/dist/cjs/charts/svg.cjs +46 -3
  84. package/dist/cjs/charts/svg.native.js +46 -3
  85. package/dist/cjs/charts/svg.native.js.map +1 -1
  86. package/dist/cjs/code/CodeBlock/index.cjs +6 -1
  87. package/dist/cjs/code/CodeBlock/index.native.js +6 -1
  88. package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
  89. package/dist/cjs/code/HighlightedCode/index.cjs +1 -1
  90. package/dist/cjs/code/HighlightedCode/index.native.js +1 -1
  91. package/dist/cjs/code/HighlightedCode/index.native.js.map +1 -1
  92. package/dist/cjs/componentColors.cjs +6 -4
  93. package/dist/cjs/componentColors.native.js +6 -4
  94. package/dist/cjs/componentColors.native.js.map +1 -1
  95. package/dist/cjs/feedback/ConfirmDialog.cjs +7 -21
  96. package/dist/cjs/feedback/ConfirmDialog.native.js +7 -22
  97. package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
  98. package/dist/cjs/feedback/NotifyHost.cjs +2 -1
  99. package/dist/cjs/feedback/NotifyHost.native.js +3 -2
  100. package/dist/cjs/feedback/NotifyHost.native.js.map +1 -1
  101. package/dist/cjs/feedback/copy.cjs +36 -4
  102. package/dist/cjs/feedback/copy.native.js +38 -4
  103. package/dist/cjs/feedback/copy.native.js.map +1 -1
  104. package/dist/cjs/feedback/index.cjs +1 -0
  105. package/dist/cjs/feedback/index.native.js +1 -0
  106. package/dist/cjs/feedback/index.native.js.map +1 -1
  107. package/dist/cjs/feedback/notify.cjs +1 -0
  108. package/dist/cjs/feedback/notify.native.js +1 -0
  109. package/dist/cjs/feedback/notify.native.js.map +1 -1
  110. package/dist/cjs/feedback/route.cjs +3 -0
  111. package/dist/cjs/feedback/route.native.js +3 -0
  112. package/dist/cjs/feedback/route.native.js.map +1 -1
  113. package/dist/cjs/feedback/store.cjs +6 -0
  114. package/dist/cjs/feedback/store.native.js +8 -0
  115. package/dist/cjs/feedback/store.native.js.map +1 -1
  116. package/dist/cjs/icons/lucide.cjs +2 -1
  117. package/dist/cjs/icons/lucide.native.js +2 -1
  118. package/dist/cjs/icons/lucide.native.js.map +1 -1
  119. package/dist/cjs/images/Image/ImageFrame.cjs +4 -2
  120. package/dist/cjs/images/Image/ImageFrame.native.js +4 -2
  121. package/dist/cjs/images/Image/ImageFrame.native.js.map +1 -1
  122. package/dist/cjs/layouts/AsyncBoundary.cjs +1 -2
  123. package/dist/cjs/layouts/AsyncBoundary.native.js +1 -2
  124. package/dist/cjs/layouts/AsyncBoundary.native.js.map +1 -1
  125. package/dist/cjs/layouts/EmptyState.cjs +6 -2
  126. package/dist/cjs/layouts/EmptyState.native.js +10 -6
  127. package/dist/cjs/layouts/EmptyState.native.js.map +1 -1
  128. package/dist/cjs/layouts/PaneScaffold.cjs +96 -41
  129. package/dist/cjs/layouts/PaneScaffold.native.js +97 -41
  130. package/dist/cjs/layouts/PaneScaffold.native.js.map +1 -1
  131. package/dist/cjs/layouts/attachments.cjs +4 -4
  132. package/dist/cjs/layouts/attachments.native.js +4 -4
  133. package/dist/cjs/layouts/attachments.native.js.map +1 -1
  134. package/dist/cjs/layouts/breadcrumbs.cjs +1 -2
  135. package/dist/cjs/layouts/breadcrumbs.native.js +1 -2
  136. package/dist/cjs/layouts/breadcrumbs.native.js.map +1 -1
  137. package/dist/cjs/layouts/index.cjs +2 -0
  138. package/dist/cjs/layouts/index.native.js +2 -0
  139. package/dist/cjs/layouts/index.native.js.map +1 -1
  140. package/dist/cjs/layouts/page.cjs +50 -9
  141. package/dist/cjs/layouts/page.native.js +52 -9
  142. package/dist/cjs/layouts/page.native.js.map +1 -1
  143. package/dist/cjs/layouts/sidebar.cjs +2 -2
  144. package/dist/cjs/layouts/sidebar.native.js +2 -2
  145. package/dist/cjs/layouts/sidebar.native.js.map +1 -1
  146. package/dist/cjs/layouts/tags.cjs +6 -7
  147. package/dist/cjs/layouts/tags.native.js +6 -9
  148. package/dist/cjs/layouts/tags.native.js.map +1 -1
  149. package/dist/cjs/layouts/timeline.cjs +5 -5
  150. package/dist/cjs/layouts/timeline.native.js +5 -5
  151. package/dist/cjs/layouts/timeline.native.js.map +1 -1
  152. package/dist/cjs/shared/useKeyboardInset.cjs +1 -19
  153. package/dist/cjs/shared/useKeyboardInset.native.js +3 -3
  154. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  155. package/dist/cjs/surfaces.cjs +1 -0
  156. package/dist/cjs/surfaces.native.js +1 -0
  157. package/dist/cjs/surfaces.native.js.map +1 -1
  158. package/dist/cjs/views/Calendar.cjs +11 -8
  159. package/dist/cjs/views/Calendar.native.js +11 -8
  160. package/dist/cjs/views/Calendar.native.js.map +1 -1
  161. package/dist/cjs/views/Dashboard.cjs +116 -23
  162. package/dist/cjs/views/Dashboard.native.js +158 -52
  163. package/dist/cjs/views/Dashboard.native.js.map +1 -1
  164. package/dist/cjs/views/Gantt.cjs +377 -94
  165. package/dist/cjs/views/Gantt.native.js +446 -97
  166. package/dist/cjs/views/Gantt.native.js.map +1 -1
  167. package/dist/cjs/views/Kanban.cjs +2 -2
  168. package/dist/cjs/views/Kanban.native.js +2 -2
  169. package/dist/cjs/views/Kanban.native.js.map +1 -1
  170. package/dist/cjs/views/ReportBuilder.cjs +4 -4
  171. package/dist/cjs/views/ReportBuilder.native.js +4 -4
  172. package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
  173. package/dist/cjs/views/TreeView.cjs +103 -6
  174. package/dist/cjs/views/TreeView.native.js +115 -6
  175. package/dist/cjs/views/TreeView.native.js.map +1 -1
  176. package/dist/cjs/views/ganttMath.cjs +91 -2
  177. package/dist/cjs/views/ganttMath.native.js +113 -3
  178. package/dist/cjs/views/ganttMath.native.js.map +1 -1
  179. package/dist/cjs/views/index.cjs +20 -1
  180. package/dist/cjs/views/index.native.js +20 -1
  181. package/dist/cjs/views/index.native.js.map +1 -1
  182. package/dist/cjs/views/treeViewReveal.cjs +55 -0
  183. package/dist/cjs/views/treeViewReveal.native.js +80 -0
  184. package/dist/cjs/views/treeViewReveal.native.js.map +1 -0
  185. package/dist/esm/Accordion/index.mjs +3 -3
  186. package/dist/esm/Accordion/index.mjs.map +1 -1
  187. package/dist/esm/Accordion/index.native.js +4 -4
  188. package/dist/esm/Accordion/index.native.js.map +1 -1
  189. package/dist/esm/Button.mjs.map +1 -1
  190. package/dist/esm/Button.native.js.map +1 -1
  191. package/dist/esm/Card.mjs +8 -2
  192. package/dist/esm/Card.mjs.map +1 -1
  193. package/dist/esm/Card.native.js +12 -2
  194. package/dist/esm/Card.native.js.map +1 -1
  195. package/dist/esm/CardFooter.mjs +1 -0
  196. package/dist/esm/CardFooter.mjs.map +1 -1
  197. package/dist/esm/CardFooter.native.js +1 -0
  198. package/dist/esm/CardFooter.native.js.map +1 -1
  199. package/dist/esm/Chip/index.mjs +1 -1
  200. package/dist/esm/Chip/index.mjs.map +1 -1
  201. package/dist/esm/Chip/index.native.js +1 -1
  202. package/dist/esm/Chip/index.native.js.map +1 -1
  203. package/dist/esm/ContextMenu/index.mjs +3 -3
  204. package/dist/esm/ContextMenu/index.mjs.map +1 -1
  205. package/dist/esm/ContextMenu/index.native.js +3 -3
  206. package/dist/esm/ContextMenu/index.native.js.map +1 -1
  207. package/dist/esm/CopyField/index.mjs +7 -2
  208. package/dist/esm/CopyField/index.mjs.map +1 -1
  209. package/dist/esm/CopyField/index.native.js +7 -2
  210. package/dist/esm/CopyField/index.native.js.map +1 -1
  211. package/dist/esm/DropdownMenu/index.mjs +35 -5
  212. package/dist/esm/DropdownMenu/index.mjs.map +1 -1
  213. package/dist/esm/DropdownMenu/index.native.js +35 -5
  214. package/dist/esm/DropdownMenu/index.native.js.map +1 -1
  215. package/dist/esm/Meter/index.mjs +15 -7
  216. package/dist/esm/Meter/index.mjs.map +1 -1
  217. package/dist/esm/Meter/index.native.js +15 -7
  218. package/dist/esm/Meter/index.native.js.map +1 -1
  219. package/dist/esm/Meter/meter.mjs +1 -2
  220. package/dist/esm/Meter/meter.mjs.map +1 -1
  221. package/dist/esm/Meter/meter.native.js +1 -2
  222. package/dist/esm/Meter/meter.native.js.map +1 -1
  223. package/dist/esm/Pagination.mjs +2 -2
  224. package/dist/esm/Pagination.mjs.map +1 -1
  225. package/dist/esm/Pagination.native.js +2 -2
  226. package/dist/esm/Pagination.native.js.map +1 -1
  227. package/dist/esm/ProgressSteps/index.mjs +3 -3
  228. package/dist/esm/ProgressSteps/index.mjs.map +1 -1
  229. package/dist/esm/ProgressSteps/index.native.js +3 -3
  230. package/dist/esm/ProgressSteps/index.native.js.map +1 -1
  231. package/dist/esm/Quote/index.mjs +1 -2
  232. package/dist/esm/Quote/index.mjs.map +1 -1
  233. package/dist/esm/Quote/index.native.js +1 -2
  234. package/dist/esm/Quote/index.native.js.map +1 -1
  235. package/dist/esm/Tabs/index.mjs +8 -7
  236. package/dist/esm/Tabs/index.mjs.map +1 -1
  237. package/dist/esm/Tabs/index.native.js +9 -8
  238. package/dist/esm/Tabs/index.native.js.map +1 -1
  239. package/dist/esm/Toast/index.mjs +56 -8
  240. package/dist/esm/Toast/index.mjs.map +1 -1
  241. package/dist/esm/Toast/index.native.js +58 -8
  242. package/dist/esm/Toast/index.native.js.map +1 -1
  243. package/dist/esm/TreeSelect/index.mjs +46 -7
  244. package/dist/esm/TreeSelect/index.mjs.map +1 -1
  245. package/dist/esm/TreeSelect/index.native.js +58 -7
  246. package/dist/esm/TreeSelect/index.native.js.map +1 -1
  247. package/dist/esm/actions/DestructiveAction.mjs +8 -14
  248. package/dist/esm/actions/DestructiveAction.mjs.map +1 -1
  249. package/dist/esm/actions/DestructiveAction.native.js +8 -16
  250. package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
  251. package/dist/esm/charts/Axis.mjs +6 -1
  252. package/dist/esm/charts/Axis.mjs.map +1 -1
  253. package/dist/esm/charts/Axis.native.js +6 -1
  254. package/dist/esm/charts/Axis.native.js.map +1 -1
  255. package/dist/esm/charts/BarChart.mjs +72 -58
  256. package/dist/esm/charts/BarChart.mjs.map +1 -1
  257. package/dist/esm/charts/BarChart.native.js +82 -68
  258. package/dist/esm/charts/BarChart.native.js.map +1 -1
  259. package/dist/esm/charts/ChartDataView.mjs +185 -0
  260. package/dist/esm/charts/ChartDataView.mjs.map +1 -0
  261. package/dist/esm/charts/ChartDataView.native.js +194 -0
  262. package/dist/esm/charts/ChartDataView.native.js.map +1 -0
  263. package/dist/esm/charts/ChartSurface.mjs +5 -1
  264. package/dist/esm/charts/ChartSurface.mjs.map +1 -1
  265. package/dist/esm/charts/ChartSurface.native.js +5 -1
  266. package/dist/esm/charts/ChartSurface.native.js.map +1 -1
  267. package/dist/esm/charts/LineChart.mjs +82 -68
  268. package/dist/esm/charts/LineChart.mjs.map +1 -1
  269. package/dist/esm/charts/LineChart.native.js +95 -81
  270. package/dist/esm/charts/LineChart.native.js.map +1 -1
  271. package/dist/esm/charts/PieChart.mjs +100 -76
  272. package/dist/esm/charts/PieChart.mjs.map +1 -1
  273. package/dist/esm/charts/PieChart.native.js +111 -87
  274. package/dist/esm/charts/PieChart.native.js.map +1 -1
  275. package/dist/esm/charts/Sparkline.mjs +11 -2
  276. package/dist/esm/charts/Sparkline.mjs.map +1 -1
  277. package/dist/esm/charts/Sparkline.native.js +11 -2
  278. package/dist/esm/charts/Sparkline.native.js.map +1 -1
  279. package/dist/esm/charts/accessibility.mjs +4 -1
  280. package/dist/esm/charts/accessibility.mjs.map +1 -1
  281. package/dist/esm/charts/accessibility.native.js +7 -1
  282. package/dist/esm/charts/accessibility.native.js.map +1 -1
  283. package/dist/esm/charts/index.mjs +2 -1
  284. package/dist/esm/charts/index.mjs.map +1 -1
  285. package/dist/esm/charts/index.native.js +2 -1
  286. package/dist/esm/charts/index.native.js.map +1 -1
  287. package/dist/esm/charts/math.mjs +16 -1
  288. package/dist/esm/charts/math.mjs.map +1 -1
  289. package/dist/esm/charts/math.native.js +18 -1
  290. package/dist/esm/charts/math.native.js.map +1 -1
  291. package/dist/esm/charts/series.mjs +51 -9
  292. package/dist/esm/charts/series.mjs.map +1 -1
  293. package/dist/esm/charts/series.native.js +55 -13
  294. package/dist/esm/charts/series.native.js.map +1 -1
  295. package/dist/esm/charts/svg.mjs +40 -4
  296. package/dist/esm/charts/svg.mjs.map +1 -1
  297. package/dist/esm/charts/svg.native.js +40 -4
  298. package/dist/esm/charts/svg.native.js.map +1 -1
  299. package/dist/esm/code/CodeBlock/index.mjs +7 -2
  300. package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
  301. package/dist/esm/code/CodeBlock/index.native.js +7 -2
  302. package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
  303. package/dist/esm/code/HighlightedCode/index.mjs +1 -1
  304. package/dist/esm/code/HighlightedCode/index.mjs.map +1 -1
  305. package/dist/esm/code/HighlightedCode/index.native.js +1 -1
  306. package/dist/esm/code/HighlightedCode/index.native.js.map +1 -1
  307. package/dist/esm/componentColors.mjs +6 -4
  308. package/dist/esm/componentColors.mjs.map +1 -1
  309. package/dist/esm/componentColors.native.js +6 -4
  310. package/dist/esm/componentColors.native.js.map +1 -1
  311. package/dist/esm/feedback/ConfirmDialog.mjs +8 -22
  312. package/dist/esm/feedback/ConfirmDialog.mjs.map +1 -1
  313. package/dist/esm/feedback/ConfirmDialog.native.js +8 -23
  314. package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
  315. package/dist/esm/feedback/NotifyHost.mjs +2 -1
  316. package/dist/esm/feedback/NotifyHost.mjs.map +1 -1
  317. package/dist/esm/feedback/NotifyHost.native.js +3 -2
  318. package/dist/esm/feedback/NotifyHost.native.js.map +1 -1
  319. package/dist/esm/feedback/copy.mjs +35 -4
  320. package/dist/esm/feedback/copy.mjs.map +1 -1
  321. package/dist/esm/feedback/copy.native.js +37 -4
  322. package/dist/esm/feedback/copy.native.js.map +1 -1
  323. package/dist/esm/feedback/index.mjs +2 -2
  324. package/dist/esm/feedback/index.mjs.map +1 -1
  325. package/dist/esm/feedback/index.native.js +2 -2
  326. package/dist/esm/feedback/index.native.js.map +1 -1
  327. package/dist/esm/feedback/notify.mjs +1 -0
  328. package/dist/esm/feedback/notify.mjs.map +1 -1
  329. package/dist/esm/feedback/notify.native.js +1 -0
  330. package/dist/esm/feedback/notify.native.js.map +1 -1
  331. package/dist/esm/feedback/route.mjs +3 -0
  332. package/dist/esm/feedback/route.mjs.map +1 -1
  333. package/dist/esm/feedback/route.native.js +3 -0
  334. package/dist/esm/feedback/route.native.js.map +1 -1
  335. package/dist/esm/feedback/store.mjs +6 -1
  336. package/dist/esm/feedback/store.mjs.map +1 -1
  337. package/dist/esm/feedback/store.native.js +8 -1
  338. package/dist/esm/feedback/store.native.js.map +1 -1
  339. package/dist/esm/icons/lucide.mjs +2 -2
  340. package/dist/esm/icons/lucide.mjs.map +1 -1
  341. package/dist/esm/icons/lucide.native.js +2 -2
  342. package/dist/esm/icons/lucide.native.js.map +1 -1
  343. package/dist/esm/images/Image/ImageFrame.mjs +4 -2
  344. package/dist/esm/images/Image/ImageFrame.mjs.map +1 -1
  345. package/dist/esm/images/Image/ImageFrame.native.js +4 -2
  346. package/dist/esm/images/Image/ImageFrame.native.js.map +1 -1
  347. package/dist/esm/layouts/AsyncBoundary.mjs +1 -2
  348. package/dist/esm/layouts/AsyncBoundary.mjs.map +1 -1
  349. package/dist/esm/layouts/AsyncBoundary.native.js +1 -2
  350. package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
  351. package/dist/esm/layouts/EmptyState.mjs +7 -3
  352. package/dist/esm/layouts/EmptyState.mjs.map +1 -1
  353. package/dist/esm/layouts/EmptyState.native.js +11 -7
  354. package/dist/esm/layouts/EmptyState.native.js.map +1 -1
  355. package/dist/esm/layouts/PaneScaffold.mjs +97 -42
  356. package/dist/esm/layouts/PaneScaffold.mjs.map +1 -1
  357. package/dist/esm/layouts/PaneScaffold.native.js +98 -42
  358. package/dist/esm/layouts/PaneScaffold.native.js.map +1 -1
  359. package/dist/esm/layouts/attachments.mjs +4 -4
  360. package/dist/esm/layouts/attachments.mjs.map +1 -1
  361. package/dist/esm/layouts/attachments.native.js +4 -4
  362. package/dist/esm/layouts/attachments.native.js.map +1 -1
  363. package/dist/esm/layouts/breadcrumbs.mjs +1 -2
  364. package/dist/esm/layouts/breadcrumbs.mjs.map +1 -1
  365. package/dist/esm/layouts/breadcrumbs.native.js +1 -2
  366. package/dist/esm/layouts/breadcrumbs.native.js.map +1 -1
  367. package/dist/esm/layouts/index.mjs +2 -1
  368. package/dist/esm/layouts/index.mjs.map +1 -1
  369. package/dist/esm/layouts/index.native.js +2 -1
  370. package/dist/esm/layouts/index.native.js.map +1 -1
  371. package/dist/esm/layouts/page.mjs +51 -10
  372. package/dist/esm/layouts/page.mjs.map +1 -1
  373. package/dist/esm/layouts/page.native.js +53 -10
  374. package/dist/esm/layouts/page.native.js.map +1 -1
  375. package/dist/esm/layouts/sidebar.mjs +2 -2
  376. package/dist/esm/layouts/sidebar.mjs.map +1 -1
  377. package/dist/esm/layouts/sidebar.native.js +2 -2
  378. package/dist/esm/layouts/sidebar.native.js.map +1 -1
  379. package/dist/esm/layouts/tags.mjs +6 -7
  380. package/dist/esm/layouts/tags.mjs.map +1 -1
  381. package/dist/esm/layouts/tags.native.js +6 -9
  382. package/dist/esm/layouts/tags.native.js.map +1 -1
  383. package/dist/esm/layouts/timeline.mjs +5 -5
  384. package/dist/esm/layouts/timeline.mjs.map +1 -1
  385. package/dist/esm/layouts/timeline.native.js +5 -5
  386. package/dist/esm/layouts/timeline.native.js.map +1 -1
  387. package/dist/esm/shared/useKeyboardInset.mjs +1 -19
  388. package/dist/esm/shared/useKeyboardInset.mjs.map +1 -1
  389. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  390. package/dist/esm/surfaces.mjs +1 -0
  391. package/dist/esm/surfaces.mjs.map +1 -1
  392. package/dist/esm/surfaces.native.js +1 -0
  393. package/dist/esm/surfaces.native.js.map +1 -1
  394. package/dist/esm/views/Calendar.mjs +11 -8
  395. package/dist/esm/views/Calendar.mjs.map +1 -1
  396. package/dist/esm/views/Calendar.native.js +11 -8
  397. package/dist/esm/views/Calendar.native.js.map +1 -1
  398. package/dist/esm/views/Dashboard.mjs +118 -25
  399. package/dist/esm/views/Dashboard.mjs.map +1 -1
  400. package/dist/esm/views/Dashboard.native.js +160 -54
  401. package/dist/esm/views/Dashboard.native.js.map +1 -1
  402. package/dist/esm/views/Gantt.mjs +379 -96
  403. package/dist/esm/views/Gantt.mjs.map +1 -1
  404. package/dist/esm/views/Gantt.native.js +448 -99
  405. package/dist/esm/views/Gantt.native.js.map +1 -1
  406. package/dist/esm/views/Kanban.mjs +2 -2
  407. package/dist/esm/views/Kanban.mjs.map +1 -1
  408. package/dist/esm/views/Kanban.native.js +2 -2
  409. package/dist/esm/views/Kanban.native.js.map +1 -1
  410. package/dist/esm/views/ReportBuilder.mjs +4 -4
  411. package/dist/esm/views/ReportBuilder.mjs.map +1 -1
  412. package/dist/esm/views/ReportBuilder.native.js +4 -4
  413. package/dist/esm/views/ReportBuilder.native.js.map +1 -1
  414. package/dist/esm/views/TreeView.mjs +104 -7
  415. package/dist/esm/views/TreeView.mjs.map +1 -1
  416. package/dist/esm/views/TreeView.native.js +116 -7
  417. package/dist/esm/views/TreeView.native.js.map +1 -1
  418. package/dist/esm/views/ganttMath.mjs +84 -3
  419. package/dist/esm/views/ganttMath.mjs.map +1 -1
  420. package/dist/esm/views/ganttMath.native.js +106 -4
  421. package/dist/esm/views/ganttMath.native.js.map +1 -1
  422. package/dist/esm/views/index.mjs +2 -2
  423. package/dist/esm/views/index.mjs.map +1 -1
  424. package/dist/esm/views/index.native.js +2 -2
  425. package/dist/esm/views/index.native.js.map +1 -1
  426. package/dist/esm/views/treeViewReveal.mjs +29 -0
  427. package/dist/esm/views/treeViewReveal.mjs.map +1 -0
  428. package/dist/esm/views/treeViewReveal.native.js +51 -0
  429. package/dist/esm/views/treeViewReveal.native.js.map +1 -0
  430. package/dist/jsx/Accordion/index.mjs +3 -3
  431. package/dist/jsx/Accordion/index.mjs.map +1 -1
  432. package/dist/jsx/Accordion/index.native.js +4 -4
  433. package/dist/jsx/Accordion/index.native.js.map +1 -1
  434. package/dist/jsx/Button.mjs.map +1 -1
  435. package/dist/jsx/Button.native.js.map +1 -1
  436. package/dist/jsx/Card.mjs +8 -2
  437. package/dist/jsx/Card.mjs.map +1 -1
  438. package/dist/jsx/Card.native.js +11 -1
  439. package/dist/jsx/Card.native.js.map +1 -1
  440. package/dist/jsx/CardFooter.mjs +1 -0
  441. package/dist/jsx/CardFooter.mjs.map +1 -1
  442. package/dist/jsx/CardFooter.native.js +1 -0
  443. package/dist/jsx/CardFooter.native.js.map +1 -1
  444. package/dist/jsx/Chip/index.mjs +1 -1
  445. package/dist/jsx/Chip/index.mjs.map +1 -1
  446. package/dist/jsx/Chip/index.native.js +1 -1
  447. package/dist/jsx/Chip/index.native.js.map +1 -1
  448. package/dist/jsx/ContextMenu/index.mjs +3 -3
  449. package/dist/jsx/ContextMenu/index.mjs.map +1 -1
  450. package/dist/jsx/ContextMenu/index.native.js +3 -3
  451. package/dist/jsx/ContextMenu/index.native.js.map +1 -1
  452. package/dist/jsx/CopyField/index.mjs +7 -2
  453. package/dist/jsx/CopyField/index.mjs.map +1 -1
  454. package/dist/jsx/CopyField/index.native.js +6 -1
  455. package/dist/jsx/CopyField/index.native.js.map +1 -1
  456. package/dist/jsx/DropdownMenu/index.mjs +35 -5
  457. package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
  458. package/dist/jsx/DropdownMenu/index.native.js +34 -4
  459. package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
  460. package/dist/jsx/Meter/index.mjs +15 -7
  461. package/dist/jsx/Meter/index.mjs.map +1 -1
  462. package/dist/jsx/Meter/index.native.js +15 -7
  463. package/dist/jsx/Meter/index.native.js.map +1 -1
  464. package/dist/jsx/Meter/meter.mjs +1 -2
  465. package/dist/jsx/Meter/meter.mjs.map +1 -1
  466. package/dist/jsx/Meter/meter.native.js +1 -2
  467. package/dist/jsx/Meter/meter.native.js.map +1 -1
  468. package/dist/jsx/Pagination.mjs +2 -2
  469. package/dist/jsx/Pagination.mjs.map +1 -1
  470. package/dist/jsx/Pagination.native.js +2 -2
  471. package/dist/jsx/Pagination.native.js.map +1 -1
  472. package/dist/jsx/ProgressSteps/index.mjs +3 -3
  473. package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
  474. package/dist/jsx/ProgressSteps/index.native.js +3 -3
  475. package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
  476. package/dist/jsx/Quote/index.mjs +1 -2
  477. package/dist/jsx/Quote/index.mjs.map +1 -1
  478. package/dist/jsx/Quote/index.native.js +1 -2
  479. package/dist/jsx/Quote/index.native.js.map +1 -1
  480. package/dist/jsx/Tabs/index.mjs +8 -7
  481. package/dist/jsx/Tabs/index.mjs.map +1 -1
  482. package/dist/jsx/Tabs/index.native.js +9 -8
  483. package/dist/jsx/Tabs/index.native.js.map +1 -1
  484. package/dist/jsx/Toast/index.mjs +56 -8
  485. package/dist/jsx/Toast/index.mjs.map +1 -1
  486. package/dist/jsx/Toast/index.native.js +59 -7
  487. package/dist/jsx/Toast/index.native.js.map +1 -1
  488. package/dist/jsx/TreeSelect/index.mjs +46 -7
  489. package/dist/jsx/TreeSelect/index.mjs.map +1 -1
  490. package/dist/jsx/TreeSelect/index.native.js +58 -7
  491. package/dist/jsx/TreeSelect/index.native.js.map +1 -1
  492. package/dist/jsx/actions/DestructiveAction.mjs +8 -14
  493. package/dist/jsx/actions/DestructiveAction.mjs.map +1 -1
  494. package/dist/jsx/actions/DestructiveAction.native.js +7 -15
  495. package/dist/jsx/actions/DestructiveAction.native.js.map +1 -1
  496. package/dist/jsx/charts/Axis.mjs +6 -1
  497. package/dist/jsx/charts/Axis.mjs.map +1 -1
  498. package/dist/jsx/charts/Axis.native.js +5 -0
  499. package/dist/jsx/charts/Axis.native.js.map +1 -1
  500. package/dist/jsx/charts/BarChart.mjs +72 -58
  501. package/dist/jsx/charts/BarChart.mjs.map +1 -1
  502. package/dist/jsx/charts/BarChart.native.js +81 -67
  503. package/dist/jsx/charts/BarChart.native.js.map +1 -1
  504. package/dist/jsx/charts/ChartDataView.mjs +185 -0
  505. package/dist/jsx/charts/ChartDataView.mjs.map +1 -0
  506. package/dist/jsx/charts/ChartDataView.native.js +224 -0
  507. package/dist/jsx/charts/ChartDataView.native.js.map +1 -0
  508. package/dist/jsx/charts/ChartSurface.mjs +5 -1
  509. package/dist/jsx/charts/ChartSurface.mjs.map +1 -1
  510. package/dist/jsx/charts/ChartSurface.native.js +5 -1
  511. package/dist/jsx/charts/ChartSurface.native.js.map +1 -1
  512. package/dist/jsx/charts/LineChart.mjs +82 -68
  513. package/dist/jsx/charts/LineChart.mjs.map +1 -1
  514. package/dist/jsx/charts/LineChart.native.js +94 -80
  515. package/dist/jsx/charts/LineChart.native.js.map +1 -1
  516. package/dist/jsx/charts/PieChart.mjs +100 -76
  517. package/dist/jsx/charts/PieChart.mjs.map +1 -1
  518. package/dist/jsx/charts/PieChart.native.js +109 -85
  519. package/dist/jsx/charts/PieChart.native.js.map +1 -1
  520. package/dist/jsx/charts/Sparkline.mjs +11 -2
  521. package/dist/jsx/charts/Sparkline.mjs.map +1 -1
  522. package/dist/jsx/charts/Sparkline.native.js +10 -1
  523. package/dist/jsx/charts/Sparkline.native.js.map +1 -1
  524. package/dist/jsx/charts/accessibility.mjs +4 -1
  525. package/dist/jsx/charts/accessibility.mjs.map +1 -1
  526. package/dist/jsx/charts/accessibility.native.js +7 -0
  527. package/dist/jsx/charts/accessibility.native.js.map +1 -1
  528. package/dist/jsx/charts/index.mjs +2 -1
  529. package/dist/jsx/charts/index.mjs.map +1 -1
  530. package/dist/jsx/charts/index.native.js +2 -0
  531. package/dist/jsx/charts/index.native.js.map +1 -1
  532. package/dist/jsx/charts/math.mjs +16 -1
  533. package/dist/jsx/charts/math.mjs.map +1 -1
  534. package/dist/jsx/charts/math.native.js +18 -0
  535. package/dist/jsx/charts/math.native.js.map +1 -1
  536. package/dist/jsx/charts/series.mjs +51 -9
  537. package/dist/jsx/charts/series.mjs.map +1 -1
  538. package/dist/jsx/charts/series.native.js +53 -11
  539. package/dist/jsx/charts/series.native.js.map +1 -1
  540. package/dist/jsx/charts/svg.mjs +40 -4
  541. package/dist/jsx/charts/svg.mjs.map +1 -1
  542. package/dist/jsx/charts/svg.native.js +46 -3
  543. package/dist/jsx/charts/svg.native.js.map +1 -1
  544. package/dist/jsx/code/CodeBlock/index.mjs +7 -2
  545. package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
  546. package/dist/jsx/code/CodeBlock/index.native.js +6 -1
  547. package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
  548. package/dist/jsx/code/HighlightedCode/index.mjs +1 -1
  549. package/dist/jsx/code/HighlightedCode/index.mjs.map +1 -1
  550. package/dist/jsx/code/HighlightedCode/index.native.js +1 -1
  551. package/dist/jsx/code/HighlightedCode/index.native.js.map +1 -1
  552. package/dist/jsx/componentColors.mjs +6 -4
  553. package/dist/jsx/componentColors.mjs.map +1 -1
  554. package/dist/jsx/componentColors.native.js +6 -4
  555. package/dist/jsx/componentColors.native.js.map +1 -1
  556. package/dist/jsx/feedback/ConfirmDialog.mjs +8 -22
  557. package/dist/jsx/feedback/ConfirmDialog.mjs.map +1 -1
  558. package/dist/jsx/feedback/ConfirmDialog.native.js +7 -22
  559. package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
  560. package/dist/jsx/feedback/NotifyHost.mjs +2 -1
  561. package/dist/jsx/feedback/NotifyHost.mjs.map +1 -1
  562. package/dist/jsx/feedback/NotifyHost.native.js +3 -2
  563. package/dist/jsx/feedback/NotifyHost.native.js.map +1 -1
  564. package/dist/jsx/feedback/copy.mjs +35 -4
  565. package/dist/jsx/feedback/copy.mjs.map +1 -1
  566. package/dist/jsx/feedback/copy.native.js +38 -4
  567. package/dist/jsx/feedback/copy.native.js.map +1 -1
  568. package/dist/jsx/feedback/index.mjs +2 -2
  569. package/dist/jsx/feedback/index.mjs.map +1 -1
  570. package/dist/jsx/feedback/index.native.js +1 -0
  571. package/dist/jsx/feedback/index.native.js.map +1 -1
  572. package/dist/jsx/feedback/notify.mjs +1 -0
  573. package/dist/jsx/feedback/notify.mjs.map +1 -1
  574. package/dist/jsx/feedback/notify.native.js +1 -0
  575. package/dist/jsx/feedback/notify.native.js.map +1 -1
  576. package/dist/jsx/feedback/route.mjs +3 -0
  577. package/dist/jsx/feedback/route.mjs.map +1 -1
  578. package/dist/jsx/feedback/route.native.js +3 -0
  579. package/dist/jsx/feedback/route.native.js.map +1 -1
  580. package/dist/jsx/feedback/store.mjs +6 -1
  581. package/dist/jsx/feedback/store.mjs.map +1 -1
  582. package/dist/jsx/feedback/store.native.js +8 -0
  583. package/dist/jsx/feedback/store.native.js.map +1 -1
  584. package/dist/jsx/icons/lucide.mjs +2 -2
  585. package/dist/jsx/icons/lucide.mjs.map +1 -1
  586. package/dist/jsx/icons/lucide.native.js +2 -1
  587. package/dist/jsx/images/Image/ImageFrame.mjs +4 -2
  588. package/dist/jsx/images/Image/ImageFrame.mjs.map +1 -1
  589. package/dist/jsx/images/Image/ImageFrame.native.js +4 -2
  590. package/dist/jsx/images/Image/ImageFrame.native.js.map +1 -1
  591. package/dist/jsx/layouts/AsyncBoundary.mjs +1 -2
  592. package/dist/jsx/layouts/AsyncBoundary.mjs.map +1 -1
  593. package/dist/jsx/layouts/AsyncBoundary.native.js +1 -2
  594. package/dist/jsx/layouts/AsyncBoundary.native.js.map +1 -1
  595. package/dist/jsx/layouts/EmptyState.mjs +7 -3
  596. package/dist/jsx/layouts/EmptyState.mjs.map +1 -1
  597. package/dist/jsx/layouts/EmptyState.native.js +10 -6
  598. package/dist/jsx/layouts/EmptyState.native.js.map +1 -1
  599. package/dist/jsx/layouts/PaneScaffold.mjs +97 -42
  600. package/dist/jsx/layouts/PaneScaffold.mjs.map +1 -1
  601. package/dist/jsx/layouts/PaneScaffold.native.js +97 -41
  602. package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
  603. package/dist/jsx/layouts/attachments.mjs +4 -4
  604. package/dist/jsx/layouts/attachments.mjs.map +1 -1
  605. package/dist/jsx/layouts/attachments.native.js +4 -4
  606. package/dist/jsx/layouts/attachments.native.js.map +1 -1
  607. package/dist/jsx/layouts/breadcrumbs.mjs +1 -2
  608. package/dist/jsx/layouts/breadcrumbs.mjs.map +1 -1
  609. package/dist/jsx/layouts/breadcrumbs.native.js +1 -2
  610. package/dist/jsx/layouts/breadcrumbs.native.js.map +1 -1
  611. package/dist/jsx/layouts/index.mjs +2 -1
  612. package/dist/jsx/layouts/index.mjs.map +1 -1
  613. package/dist/jsx/layouts/index.native.js +2 -0
  614. package/dist/jsx/layouts/index.native.js.map +1 -1
  615. package/dist/jsx/layouts/page.mjs +51 -10
  616. package/dist/jsx/layouts/page.mjs.map +1 -1
  617. package/dist/jsx/layouts/page.native.js +52 -9
  618. package/dist/jsx/layouts/page.native.js.map +1 -1
  619. package/dist/jsx/layouts/sidebar.mjs +2 -2
  620. package/dist/jsx/layouts/sidebar.mjs.map +1 -1
  621. package/dist/jsx/layouts/sidebar.native.js +2 -2
  622. package/dist/jsx/layouts/sidebar.native.js.map +1 -1
  623. package/dist/jsx/layouts/tags.mjs +6 -7
  624. package/dist/jsx/layouts/tags.mjs.map +1 -1
  625. package/dist/jsx/layouts/tags.native.js +6 -9
  626. package/dist/jsx/layouts/tags.native.js.map +1 -1
  627. package/dist/jsx/layouts/timeline.mjs +5 -5
  628. package/dist/jsx/layouts/timeline.mjs.map +1 -1
  629. package/dist/jsx/layouts/timeline.native.js +5 -5
  630. package/dist/jsx/layouts/timeline.native.js.map +1 -1
  631. package/dist/jsx/shared/useKeyboardInset.mjs +1 -19
  632. package/dist/jsx/shared/useKeyboardInset.mjs.map +1 -1
  633. package/dist/jsx/shared/useKeyboardInset.native.js +3 -3
  634. package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -1
  635. package/dist/jsx/surfaces.mjs +1 -0
  636. package/dist/jsx/surfaces.mjs.map +1 -1
  637. package/dist/jsx/surfaces.native.js +1 -0
  638. package/dist/jsx/surfaces.native.js.map +1 -1
  639. package/dist/jsx/views/Calendar.mjs +11 -8
  640. package/dist/jsx/views/Calendar.mjs.map +1 -1
  641. package/dist/jsx/views/Calendar.native.js +11 -8
  642. package/dist/jsx/views/Calendar.native.js.map +1 -1
  643. package/dist/jsx/views/Dashboard.mjs +118 -25
  644. package/dist/jsx/views/Dashboard.mjs.map +1 -1
  645. package/dist/jsx/views/Dashboard.native.js +158 -52
  646. package/dist/jsx/views/Dashboard.native.js.map +1 -1
  647. package/dist/jsx/views/Gantt.mjs +379 -96
  648. package/dist/jsx/views/Gantt.mjs.map +1 -1
  649. package/dist/jsx/views/Gantt.native.js +446 -97
  650. package/dist/jsx/views/Gantt.native.js.map +1 -1
  651. package/dist/jsx/views/Kanban.mjs +2 -2
  652. package/dist/jsx/views/Kanban.mjs.map +1 -1
  653. package/dist/jsx/views/Kanban.native.js +2 -2
  654. package/dist/jsx/views/Kanban.native.js.map +1 -1
  655. package/dist/jsx/views/ReportBuilder.mjs +4 -4
  656. package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
  657. package/dist/jsx/views/ReportBuilder.native.js +4 -4
  658. package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
  659. package/dist/jsx/views/TreeView.mjs +104 -7
  660. package/dist/jsx/views/TreeView.mjs.map +1 -1
  661. package/dist/jsx/views/TreeView.native.js +115 -6
  662. package/dist/jsx/views/TreeView.native.js.map +1 -1
  663. package/dist/jsx/views/ganttMath.mjs +84 -3
  664. package/dist/jsx/views/ganttMath.mjs.map +1 -1
  665. package/dist/jsx/views/ganttMath.native.js +113 -3
  666. package/dist/jsx/views/ganttMath.native.js.map +1 -1
  667. package/dist/jsx/views/index.mjs +2 -2
  668. package/dist/jsx/views/index.mjs.map +1 -1
  669. package/dist/jsx/views/index.native.js +20 -1
  670. package/dist/jsx/views/index.native.js.map +1 -1
  671. package/dist/jsx/views/treeViewReveal.mjs +29 -0
  672. package/dist/jsx/views/treeViewReveal.mjs.map +1 -0
  673. package/dist/jsx/views/treeViewReveal.native.js +80 -0
  674. package/dist/jsx/views/treeViewReveal.native.js.map +1 -0
  675. package/package.json +11 -9
  676. package/src/Accordion/index.tsx +4 -6
  677. package/src/Button.tsx +10 -2
  678. package/src/Card.spec.tsx +76 -3
  679. package/src/Card.stories.tsx +1 -1
  680. package/src/Card.tsx +13 -1
  681. package/src/CardFooter.stories.tsx +3 -7
  682. package/src/CardFooter.tsx +3 -1
  683. package/src/CardHeader.stories.tsx +1 -3
  684. package/src/Chip/index.tsx +1 -1
  685. package/src/Collapsible.stories.tsx +2 -2
  686. package/src/ContextMenu/index.tsx +3 -3
  687. package/src/CopyField/CopyField.spec.tsx +66 -1
  688. package/src/CopyField/index.tsx +4 -3
  689. package/src/DropdownMenu/DropdownMenu.spec.tsx +112 -1
  690. package/src/DropdownMenu/DropdownMenu.stories.tsx +1 -3
  691. package/src/DropdownMenu/index.tsx +70 -9
  692. package/src/LinearGradient.stories.tsx +2 -2
  693. package/src/Meter/Meter.spec.tsx +71 -6
  694. package/src/Meter/Meter.stories.tsx +38 -0
  695. package/src/Meter/index.tsx +12 -6
  696. package/src/Meter/meter.ts +6 -1
  697. package/src/Pagination.tsx +2 -2
  698. package/src/Panel.stories.tsx +1 -1
  699. package/src/ProgressSteps/index.tsx +3 -3
  700. package/src/Quote/index.tsx +1 -3
  701. package/src/SortableList/SortableList.spec.tsx +3 -3
  702. package/src/Tabs/Tabs.spec.tsx +43 -3
  703. package/src/Tabs/Tabs.stories.tsx +10 -1
  704. package/src/Tabs/index.tsx +21 -15
  705. package/src/Toast/Toast.spec.tsx +176 -49
  706. package/src/Toast/index.tsx +73 -6
  707. package/src/TreeSelect/index.tsx +61 -1
  708. package/src/Unspaced.stories.tsx +2 -2
  709. package/src/VisuallyHidden.stories.tsx +2 -2
  710. package/src/actions/DestructiveAction.spec.tsx +19 -3
  711. package/src/actions/DestructiveAction.tsx +9 -14
  712. package/src/charts/Axis.tsx +6 -1
  713. package/src/charts/BarChart.tsx +82 -67
  714. package/src/charts/ChartDataView.spec.tsx +104 -0
  715. package/src/charts/ChartDataView.tsx +158 -0
  716. package/src/charts/ChartSurface.tsx +7 -2
  717. package/src/charts/Charts.stories.tsx +213 -9
  718. package/src/charts/LineChart.tsx +90 -75
  719. package/src/charts/PieChart.knobs.spec.tsx +25 -0
  720. package/src/charts/PieChart.tsx +51 -10
  721. package/src/charts/Sparkline.tsx +25 -3
  722. package/src/charts/accessibility.ts +8 -0
  723. package/src/charts/charts.spec.tsx +77 -3
  724. package/src/charts/index.ts +2 -0
  725. package/src/charts/math.spec.ts +19 -0
  726. package/src/charts/math.ts +36 -0
  727. package/src/charts/series.tsx +101 -21
  728. package/src/charts/svg.spec.ts +28 -0
  729. package/src/charts/svg.ts +56 -2
  730. package/src/code/CodeBlock/CodeBlock.copy.spec.tsx +23 -0
  731. package/src/code/CodeBlock/index.tsx +4 -3
  732. package/src/code/HighlightedCode/index.tsx +1 -1
  733. package/src/componentColors.ts +6 -4
  734. package/src/feedback/ConfirmDialog.nativeFocus.spec.tsx +52 -0
  735. package/src/feedback/ConfirmDialog.spec.tsx +20 -0
  736. package/src/feedback/ConfirmDialog.tsx +9 -15
  737. package/src/feedback/NotifyHost.tsx +11 -2
  738. package/src/feedback/copy.ts +36 -4
  739. package/src/feedback/index.ts +1 -0
  740. package/src/feedback/notify.spec.ts +15 -1
  741. package/src/feedback/notify.ts +1 -0
  742. package/src/feedback/route.ts +4 -0
  743. package/src/feedback/store.ts +7 -0
  744. package/src/icons/lucide.ts +1 -1
  745. package/src/images/Image/ImageFrame.tsx +2 -2
  746. package/src/images/SvgUri/index.native.ts +11 -3
  747. package/src/layouts/AsyncBoundary.tsx +1 -2
  748. package/src/layouts/EmptyState.spec.tsx +58 -1
  749. package/src/layouts/EmptyState.stories.tsx +2 -2
  750. package/src/layouts/EmptyState.tsx +11 -7
  751. package/src/layouts/KeyboardAvoidingWrapper/KeyboardAvoidingWrapper.stories.tsx +3 -3
  752. package/src/layouts/Page.weight.spec.tsx +75 -0
  753. package/src/layouts/PageHeader.stories.tsx +4 -4
  754. package/src/layouts/PageTemplates.stories.tsx +2 -2
  755. package/src/layouts/PaneScaffold.spec.tsx +144 -4
  756. package/src/layouts/PaneScaffold.stories.tsx +61 -10
  757. package/src/layouts/PaneScaffold.tsx +156 -58
  758. package/src/layouts/SafeAreaWrapper/SafeAreaWrapper.stories.tsx +3 -3
  759. package/src/layouts/ScreenToolbar.stories.tsx +6 -23
  760. package/src/layouts/attachments.tsx +4 -4
  761. package/src/layouts/breadcrumbs.tsx +1 -2
  762. package/src/layouts/index.tsx +11 -0
  763. package/src/layouts/layouts.spec.tsx +51 -0
  764. package/src/layouts/page.designLaw.spec.tsx +25 -0
  765. package/src/layouts/page.tsx +48 -11
  766. package/src/layouts/sidebar.tsx +2 -2
  767. package/src/layouts/tags-trigger.spec.tsx +32 -0
  768. package/src/layouts/tags.tsx +6 -9
  769. package/src/layouts/timeline.tsx +5 -5
  770. package/src/shared/useKeyboardInset.native.ts +43 -0
  771. package/src/shared/useKeyboardInset.ts +2 -41
  772. package/src/surfaces.spec.tsx +97 -3
  773. package/src/surfaces.tsx +4 -2
  774. package/src/tamagui.spec.ts +63 -0
  775. package/src/textAccentSecondary.spec.tsx +187 -0
  776. package/src/views/Calendar.tsx +9 -8
  777. package/src/views/Dashboard.stories.tsx +38 -1
  778. package/src/views/Dashboard.tsx +132 -29
  779. package/src/views/Gantt.scroll.spec.tsx +120 -0
  780. package/src/views/Gantt.spec.tsx +376 -0
  781. package/src/views/Gantt.stories.tsx +75 -2
  782. package/src/views/Gantt.tsx +567 -99
  783. package/src/views/Kanban.native.tsx +2 -2
  784. package/src/views/Kanban.spec.tsx +11 -0
  785. package/src/views/Kanban.tsx +2 -2
  786. package/src/views/ReportBuilder.tsx +4 -4
  787. package/src/views/TreeView.reveal.spec.tsx +167 -0
  788. package/src/views/TreeView.reveal.stories.tsx +115 -0
  789. package/src/views/TreeView.scroll.spec.tsx +196 -0
  790. package/src/views/TreeView.spec.tsx +1 -1
  791. package/src/views/TreeView.tsx +159 -16
  792. package/src/views/ganttMath.ts +142 -4
  793. package/src/views/index.ts +44 -1
  794. package/src/views/treeViewReveal.spec.ts +83 -0
  795. package/src/views/treeViewReveal.ts +45 -0
  796. package/src/views/views.spec.tsx +52 -12
  797. package/types/Accordion/index.d.ts.map +1 -1
  798. package/types/Button.d.ts +12 -2
  799. package/types/Button.d.ts.map +1 -1
  800. package/types/Card.d.ts.map +1 -1
  801. package/types/CardFooter.d.ts +2 -1
  802. package/types/CardFooter.d.ts.map +1 -1
  803. package/types/CopyField/index.d.ts.map +1 -1
  804. package/types/DropdownMenu/index.d.ts +22 -0
  805. package/types/DropdownMenu/index.d.ts.map +1 -1
  806. package/types/Meter/index.d.ts.map +1 -1
  807. package/types/Meter/meter.d.ts +5 -1
  808. package/types/Meter/meter.d.ts.map +1 -1
  809. package/types/Quote/index.d.ts.map +1 -1
  810. package/types/Tabs/index.d.ts +1 -1
  811. package/types/Tabs/index.d.ts.map +1 -1
  812. package/types/Toast/index.d.ts +16 -0
  813. package/types/Toast/index.d.ts.map +1 -1
  814. package/types/TreeSelect/index.d.ts +9 -1
  815. package/types/TreeSelect/index.d.ts.map +1 -1
  816. package/types/actions/DestructiveAction.d.ts.map +1 -1
  817. package/types/charts/Axis.d.ts.map +1 -1
  818. package/types/charts/BarChart.d.ts.map +1 -1
  819. package/types/charts/ChartDataView.d.ts +22 -0
  820. package/types/charts/ChartDataView.d.ts.map +1 -0
  821. package/types/charts/ChartSurface.d.ts +4 -1
  822. package/types/charts/ChartSurface.d.ts.map +1 -1
  823. package/types/charts/LineChart.d.ts.map +1 -1
  824. package/types/charts/PieChart.d.ts +1 -1
  825. package/types/charts/PieChart.d.ts.map +1 -1
  826. package/types/charts/Sparkline.d.ts +3 -1
  827. package/types/charts/Sparkline.d.ts.map +1 -1
  828. package/types/charts/accessibility.d.ts +3 -0
  829. package/types/charts/accessibility.d.ts.map +1 -1
  830. package/types/charts/index.d.ts +1 -0
  831. package/types/charts/index.d.ts.map +1 -1
  832. package/types/charts/math.d.ts +12 -0
  833. package/types/charts/math.d.ts.map +1 -1
  834. package/types/charts/series.d.ts +1 -1
  835. package/types/charts/series.d.ts.map +1 -1
  836. package/types/charts/svg.d.ts +18 -2
  837. package/types/charts/svg.d.ts.map +1 -1
  838. package/types/code/CodeBlock/index.d.ts.map +1 -1
  839. package/types/componentColors.d.ts +1 -4
  840. package/types/componentColors.d.ts.map +1 -1
  841. package/types/feedback/ConfirmDialog.d.ts.map +1 -1
  842. package/types/feedback/NotifyHost.d.ts +3 -1
  843. package/types/feedback/NotifyHost.d.ts.map +1 -1
  844. package/types/feedback/copy.d.ts +12 -2
  845. package/types/feedback/copy.d.ts.map +1 -1
  846. package/types/feedback/index.d.ts +1 -1
  847. package/types/feedback/index.d.ts.map +1 -1
  848. package/types/feedback/notify.d.ts.map +1 -1
  849. package/types/feedback/route.d.ts +3 -0
  850. package/types/feedback/route.d.ts.map +1 -1
  851. package/types/feedback/store.d.ts +2 -0
  852. package/types/feedback/store.d.ts.map +1 -1
  853. package/types/icons/lucide.d.ts +1 -1
  854. package/types/icons/lucide.d.ts.map +1 -1
  855. package/types/images/Image/ImageFrame.d.ts.map +1 -1
  856. package/types/images/SvgUri/index.native.d.ts +4 -3
  857. package/types/images/SvgUri/index.native.d.ts.map +1 -1
  858. package/types/layouts/AsyncBoundary.d.ts.map +1 -1
  859. package/types/layouts/EmptyState.d.ts.map +1 -1
  860. package/types/layouts/PaneScaffold.d.ts +27 -5
  861. package/types/layouts/PaneScaffold.d.ts.map +1 -1
  862. package/types/layouts/breadcrumbs.d.ts.map +1 -1
  863. package/types/layouts/index.d.ts +1 -0
  864. package/types/layouts/index.d.ts.map +1 -1
  865. package/types/layouts/page.d.ts +10 -5
  866. package/types/layouts/page.d.ts.map +1 -1
  867. package/types/layouts/tags.d.ts.map +1 -1
  868. package/types/shared/useKeyboardInset.d.ts +1 -14
  869. package/types/shared/useKeyboardInset.d.ts.map +1 -1
  870. package/types/shared/useKeyboardInset.native.d.ts +16 -0
  871. package/types/shared/useKeyboardInset.native.d.ts.map +1 -0
  872. package/types/surfaces.d.ts.map +1 -1
  873. package/types/views/Calendar.d.ts.map +1 -1
  874. package/types/views/Dashboard.d.ts +7 -3
  875. package/types/views/Dashboard.d.ts.map +1 -1
  876. package/types/views/Gantt.d.ts +132 -13
  877. package/types/views/Gantt.d.ts.map +1 -1
  878. package/types/views/TreeView.d.ts +10 -1
  879. package/types/views/TreeView.d.ts.map +1 -1
  880. package/types/views/ganttMath.d.ts +73 -0
  881. package/types/views/ganttMath.d.ts.map +1 -1
  882. package/types/views/index.d.ts +2 -2
  883. package/types/views/index.d.ts.map +1 -1
  884. package/types/views/treeViewReveal.d.ts +11 -0
  885. package/types/views/treeViewReveal.d.ts.map +1 -0
@@ -4,15 +4,35 @@ import { Skeleton } from "../Skeleton/index.mjs";
4
4
  import { ViewSwitcher } from "../layouts/ViewSwitcher.mjs";
5
5
  import { useDirection } from "../hooks/useDirection.mjs";
6
6
  import { withInterp } from "../shared/t.mjs";
7
- import { Intent, MIN_PRESS_TARGET, ensureKeyboardModalityTracking, formatDayOfMonth, formatMonthYear, hairline, hairlineWidth, keyboardFocusRingProps, useReadableTextOn, useResolvedKnobs, wasKeyboardFocus } from "@multiplatform.one/theme";
7
+ import { Intent, MIN_PRESS_TARGET, ensureKeyboardModalityTracking, formatAbsoluteDate, formatDayOfMonth, formatMonthYear, hairline, hairlineWidth, keyboardFocusRingProps, useReadableTextOn, useResolvedKnobs, wasKeyboardFocus } from "@multiplatform.one/theme";
8
8
  import { Button } from "@multiplatform.one/forms";
9
9
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
10
  import { useTranslation } from "../shared/i18n.mjs";
11
11
  import { ScrollView as RNScrollView } from "react-native-web";
12
12
  import { ScrollView, Text, XStack, YStack, isWeb } from "tamagui";
13
- import { addDays, barGeometry, clampResizeDayDelta, computeGanttRange, dateToX, dayDiff, dxToDayDelta, formatRangeLabel, formatSpanLabel, ganttTaskAccessibleLabel, generateTicks, rangeDays, resizeSpanByDays, shiftSpanByDays, spanInclusiveDays, startOfDay, todayLineX } from "./ganttMath.mjs";
13
+ import { addDays, barGeometry, clampResizeDayDelta, computeGanttRange, dateLineX, dateToX, dayDiff, dxToDayDelta, formatRangeLabel, formatSpanLabel, ganttTaskAccessibleLabel, generateTicks, isBoundedSpan, openBarGeometry, openSpanExtents, openSpanLabelParts, rangeDays, resizeSpanByDays, scrollAnchorX, shiftSpanByDays, spanInclusiveDays, startOfDay, todayLineX } from "./ganttMath.mjs";
14
14
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
15
  const CanvasScroller = isWeb ? ScrollView : RNScrollView;
16
+ function boundedSpan(ref) {
17
+ const span = ref.span;
18
+ return isBoundedSpan(span) ? {
19
+ start: span.start,
20
+ end: span.end
21
+ } : null;
22
+ }
23
+ function resolveSpans(task) {
24
+ const list = task.spans;
25
+ if (!list || list.length === 0) return [{
26
+ span: task,
27
+ index: 0,
28
+ key: task.id
29
+ }];
30
+ return list.map((span, index) => ({
31
+ span,
32
+ index,
33
+ key: span.id ?? `${task.id}#${index}`
34
+ }));
35
+ }
16
36
  const DRAG_THRESHOLD_PX = 4;
17
37
  const TOUCH_LONG_PRESS_MS = 300;
18
38
  const TOUCH_SLOP_PX = 8;
@@ -199,6 +219,10 @@ function GanttView({
199
219
  showZoomSwitcher = true,
200
220
  firstDayOfWeek = 0,
201
221
  initialDate,
222
+ markerDate,
223
+ onMarkerDateChange,
224
+ enableMarkerDrag,
225
+ markerLabel,
202
226
  ...stackProps
203
227
  }) {
204
228
  const {
@@ -230,12 +254,18 @@ function GanttView({
230
254
  const space = knobProps.space;
231
255
  const barInset = space === "small" ? 4 : space === "large" ? 9 : 6;
232
256
  const barHeight = Math.max(10, rowHeight - barInset * 2);
257
+ const railHeight = Math.max(4, Math.round(barHeight / 2));
233
258
  const transition = knobProps.transition;
234
259
  const webLayoutTransition = isWeb ? transition : void 0;
235
- const spans = useMemo(() => tasks.map(task => ({
236
- start: task.start,
237
- end: task.end
238
- })), [tasks]);
260
+ const spans = useMemo(() => {
261
+ const flat = [];
262
+ for (const task of tasks) for (const ref of resolveSpans(task)) flat.push(ref.span);
263
+ if (markerDate !== void 0) flat.push({
264
+ start: markerDate,
265
+ end: markerDate
266
+ });
267
+ return openSpanExtents(flat);
268
+ }, [tasks, markerDate]);
239
269
  const range = useMemo(() => computeGanttRange(spans, zoom, /* @__PURE__ */new Date(), firstDayOfWeek), [spans, zoom, firstDayOfWeek]);
240
270
  const chartWidth = rangeDays(range) * pxPerDay;
241
271
  const ticks = useMemo(() => generateTicks(range, zoom, pxPerDay, firstDayOfWeek), [range, zoom, pxPerDay, firstDayOfWeek]);
@@ -251,16 +281,16 @@ function GanttView({
251
281
  const hScrollRef = useRef(null);
252
282
  const axisScrollRef = useRef(null);
253
283
  const canvasViewportRef = useRef(null);
254
- const pendingRtlAnchorRef = useRef(null);
284
+ const pendingAnchorRef = useRef(null);
255
285
  const scrollToDate = useCallback((date, animated) => {
256
- const ltrX = Math.max(0, dateToX(date, range.start, pxPerDay) - labelWidth);
257
- let x = ltrX;
258
- if (rtl) {
259
- const viewport = canvasViewportRef.current;
260
- if (viewport === null) pendingRtlAnchorRef.current = date;
261
- const max = Math.max(0, chartWidth - (viewport ?? 0));
262
- x = Math.min(max, Math.max(0, max - ltrX));
263
- }
286
+ const viewportWidth = canvasViewportRef.current;
287
+ if (viewportWidth === null) pendingAnchorRef.current = date;
288
+ const x = scrollAnchorX(date, range.start, pxPerDay, {
289
+ labelWidth,
290
+ chartWidth,
291
+ viewportWidth,
292
+ rtl
293
+ });
264
294
  hScrollRef.current?.scrollTo?.({
265
295
  x,
266
296
  animated
@@ -284,11 +314,11 @@ function GanttView({
284
314
  }, []);
285
315
  const handleCanvasLayout = useCallback(event => {
286
316
  const width = event?.nativeEvent?.layout?.width;
287
- if (typeof width !== "number") return;
317
+ if (typeof width !== "number" || !Number.isFinite(width) || width <= 0) return;
288
318
  canvasViewportRef.current = width;
289
- const pending = pendingRtlAnchorRef.current;
319
+ const pending = pendingAnchorRef.current;
290
320
  if (pending) {
291
- pendingRtlAnchorRef.current = null;
321
+ pendingAnchorRef.current = null;
292
322
  scrollToDateRef.current(pending, false);
293
323
  }
294
324
  }, []);
@@ -308,16 +338,13 @@ function GanttView({
308
338
  suppressClickRef.current = false;
309
339
  }, 0);
310
340
  }, []);
311
- const commitDrag = useCallback((task, dayDelta) => {
312
- if (dayDelta !== 0) {
313
- onItemMove?.(task, shiftSpanByDays({
314
- start: task.start,
315
- end: task.end
316
- }, dayDelta));
317
- }
341
+ const commitDrag = useCallback((task, ref, span, dayDelta) => {
342
+ if (dayDelta !== 0) onItemMove?.(task, shiftSpanByDays(span, dayDelta), ref);
318
343
  }, [onItemMove]);
319
- const handleBarPointerDown = useCallback((task, e) => {
344
+ const handleBarPointerDown = useCallback((task, ref, e) => {
320
345
  if (!webDragEnabled) return;
346
+ const span = boundedSpan(ref);
347
+ if (!span) return;
321
348
  if (e.button !== void 0 && e.button !== 0) return;
322
349
  e.stopPropagation?.();
323
350
  dragCleanupRef.current?.();
@@ -336,7 +363,7 @@ function GanttView({
336
363
  prevUserSelect = document.body.style.userSelect;
337
364
  document.body.style.userSelect = "none";
338
365
  setDrag({
339
- id: task.id,
366
+ key: ref.key,
340
367
  dx,
341
368
  dayDelta: toDayDelta(dx)
342
369
  });
@@ -365,7 +392,7 @@ function GanttView({
365
392
  return;
366
393
  }
367
394
  setDrag({
368
- id: task.id,
395
+ key: ref.key,
369
396
  dx,
370
397
  dayDelta: toDayDelta(dx)
371
398
  });
@@ -376,7 +403,7 @@ function GanttView({
376
403
  teardown();
377
404
  if (!wasActive) return;
378
405
  suppressNextClick();
379
- commitDrag(task, dayDelta);
406
+ commitDrag(task, ref, span, dayDelta);
380
407
  };
381
408
  const onKey = ke => {
382
409
  if (ke.key !== "Escape" || !active) return;
@@ -400,10 +427,14 @@ function GanttView({
400
427
  window.addEventListener("keydown", onKey, true);
401
428
  dragCleanupRef.current = teardown;
402
429
  }, [webDragEnabled, pxPerDay, commitDrag, suppressNextClick]);
403
- const handleNativeGrant = useCallback((task, e) => {
430
+ const handleNativeGrant = useCallback((task, ref, e) => {
404
431
  if (!nativeDragEnabled) return;
432
+ const span = boundedSpan(ref);
433
+ if (!span) return;
405
434
  const session = {
406
435
  task,
436
+ ref,
437
+ span,
407
438
  startX: e.nativeEvent?.pageX ?? 0,
408
439
  dragging: false,
409
440
  liftTimer: null
@@ -413,7 +444,7 @@ function GanttView({
413
444
  if (nativeSessionRef.current !== session) return;
414
445
  session.dragging = true;
415
446
  setDrag({
416
- id: task.id,
447
+ key: ref.key,
417
448
  dx: 0,
418
449
  dayDelta: 0
419
450
  });
@@ -432,7 +463,7 @@ function GanttView({
432
463
  return;
433
464
  }
434
465
  setDrag({
435
- id: session.task.id,
466
+ key: session.ref.key,
436
467
  dx,
437
468
  dayDelta: dirSignRef.current * dxToDayDelta(dx, pxPerDay)
438
469
  });
@@ -448,7 +479,7 @@ function GanttView({
448
479
  }
449
480
  const dayDelta = dirSignRef.current * dxToDayDelta((e.nativeEvent?.pageX ?? 0) - session.startX, pxPerDay);
450
481
  setDrag(null);
451
- commitDrag(session.task, dayDelta);
482
+ commitDrag(session.task, session.ref, session.span, dayDelta);
452
483
  }, [onItemPress, pxPerDay, commitDrag]);
453
484
  const handleNativeTerminate = useCallback(() => {
454
485
  const session = nativeSessionRef.current;
@@ -456,15 +487,13 @@ function GanttView({
456
487
  nativeSessionRef.current = null;
457
488
  setDrag(null);
458
489
  }, []);
459
- const handleResizePointerDown = useCallback((task, edge, e) => {
490
+ const handleResizePointerDown = useCallback((task, ref, edge, e) => {
460
491
  if (!webDragEnabled) return;
492
+ const span = boundedSpan(ref);
493
+ if (!span) return;
461
494
  if (e.button !== void 0 && e.button !== 0) return;
462
495
  e.stopPropagation?.();
463
496
  dragCleanupRef.current?.();
464
- const span = {
465
- start: task.start,
466
- end: task.end
467
- };
468
497
  const maxShrinkPx = (spanInclusiveDays(span) - 1) * pxPerDay;
469
498
  const startX = e.clientX;
470
499
  const sign = dirSignRef.current;
@@ -495,7 +524,7 @@ function GanttView({
495
524
  document.body.style.userSelect = "none";
496
525
  }
497
526
  setResize({
498
- id: task.id,
527
+ key: ref.key,
499
528
  edge,
500
529
  logicalDx: clampLogicalDx(dx),
501
530
  dayDelta: toDayDelta(dx)
@@ -507,9 +536,7 @@ function GanttView({
507
536
  teardown();
508
537
  if (!wasActive) return;
509
538
  suppressNextClick();
510
- if (dayDelta !== 0) {
511
- onItemMove?.(task, resizeSpanByDays(span, edge, dayDelta));
512
- }
539
+ if (dayDelta !== 0) onItemMove?.(task, resizeSpanByDays(span, edge, dayDelta), ref);
513
540
  };
514
541
  const onKey = ke => {
515
542
  if (ke.key !== "Escape" || !active) return;
@@ -527,10 +554,11 @@ function GanttView({
527
554
  window.addEventListener("keydown", onKey, true);
528
555
  dragCleanupRef.current = teardown;
529
556
  }, [webDragEnabled, pxPerDay, onItemMove, suppressNextClick]);
530
- const getBarDragProps = useCallback(task => {
557
+ const getBarDragProps = useCallback((task, ref) => {
558
+ if (!boundedSpan(ref)) return {};
531
559
  if (webDragEnabled) {
532
560
  return {
533
- onPointerDown: e => handleBarPointerDown(task, e)
561
+ onPointerDown: e => handleBarPointerDown(task, ref, e)
534
562
  };
535
563
  }
536
564
  if (nativeDragEnabled) {
@@ -539,7 +567,7 @@ function GanttView({
539
567
  onStartShouldSetResponder: () => true,
540
568
  onMoveShouldSetResponder: () => true,
541
569
  onResponderTerminationRequest: () => !nativeSessionRef.current?.dragging,
542
- onResponderGrant: e => handleNativeGrant(task, e),
570
+ onResponderGrant: e => handleNativeGrant(task, ref, e),
543
571
  onResponderMove: handleNativeMove,
544
572
  onResponderRelease: handleNativeRelease,
545
573
  onResponderTerminate: handleNativeTerminate
@@ -547,45 +575,205 @@ function GanttView({
547
575
  }
548
576
  return {};
549
577
  }, [webDragEnabled, nativeDragEnabled, handleBarPointerDown, handleNativeGrant, handleNativeMove, handleNativeRelease, handleNativeTerminate]);
550
- const handleBarKeyboardMove = useCallback((task, key, shiftKey) => {
578
+ const handleBarKeyboardMove = useCallback((task, ref, key, shiftKey) => {
579
+ const span = boundedSpan(ref);
580
+ if (!span) return;
551
581
  const physical = key === "ArrowRight" ? 1 : -1;
552
582
  const dayDelta = physical * dirSignRef.current * (shiftKey ? 7 : 1);
553
- const next = shiftSpanByDays({
554
- start: task.start,
555
- end: task.end
556
- }, dayDelta);
557
- onItemMove?.(task, next);
583
+ const next = shiftSpanByDays(span, dayDelta);
584
+ onItemMove?.(task, next, ref);
558
585
  setAnnouncement(withInterp(t("{{title}} moved to {{range}}"), {
559
- title: task.title,
586
+ title: ref.span.title ?? task.title,
560
587
  range: formatSpanLabel(next)
561
588
  }));
562
589
  }, [onItemMove, t]);
563
- const renderBar = task => {
564
- const geom = barGeometry(task, range.start, pxPerDay);
565
- const activeDrag = drag && drag.id === task.id ? drag : null;
590
+ const markerDragEnabled = (enableMarkerDrag ?? onMarkerDateChange !== void 0) && onMarkerDateChange !== void 0;
591
+ const [markerDragging, setMarkerDragging] = useState(false);
592
+ const markerGrantRef = useRef(null);
593
+ const markerEmittedRef = useRef(null);
594
+ const markerSessionRef = useRef(null);
595
+ const emitMarker = useCallback(dayDelta => {
596
+ const base = markerGrantRef.current;
597
+ if (!base) return;
598
+ const next = addDays(base, dayDelta);
599
+ if (markerEmittedRef.current === next.getTime()) return;
600
+ markerEmittedRef.current = next.getTime();
601
+ onMarkerDateChange?.(next);
602
+ }, [onMarkerDateChange]);
603
+ const openMarkerSession = useCallback(() => {
604
+ if (markerDate === void 0) return false;
605
+ const base = startOfDay(markerDate);
606
+ markerGrantRef.current = base;
607
+ markerEmittedRef.current = base.getTime();
608
+ return true;
609
+ }, [markerDate]);
610
+ const handleMarkerPointerDown = useCallback(e => {
611
+ if (!markerDragEnabled || !hasDom) return;
612
+ if (e.button !== void 0 && e.button !== 0) return;
613
+ if (!openMarkerSession()) return;
614
+ e.stopPropagation?.();
615
+ dragCleanupRef.current?.();
616
+ const startX = e.clientX;
617
+ let active = false;
618
+ let ended = false;
619
+ let prevUserSelect = "";
620
+ const toDayDelta = dx => dirSignRef.current * dxToDayDelta(dx, pxPerDay);
621
+ const teardown = () => {
622
+ if (ended) return;
623
+ ended = true;
624
+ window.removeEventListener("pointermove", onMove);
625
+ window.removeEventListener("pointerup", onUp);
626
+ window.removeEventListener("keydown", onKey, true);
627
+ if (active) document.body.style.userSelect = prevUserSelect;
628
+ setMarkerDragging(false);
629
+ markerGrantRef.current = null;
630
+ dragCleanupRef.current = null;
631
+ };
632
+ const onMove = me => {
633
+ const dx = me.clientX - startX;
634
+ if (!active) {
635
+ if (Math.abs(dx) < DRAG_THRESHOLD_PX) return;
636
+ active = true;
637
+ prevUserSelect = document.body.style.userSelect;
638
+ document.body.style.userSelect = "none";
639
+ setMarkerDragging(true);
640
+ }
641
+ emitMarker(toDayDelta(dx));
642
+ };
643
+ const onUp = () => teardown();
644
+ const onKey = ke => {
645
+ if (ke.key !== "Escape" || !active) return;
646
+ ke.stopPropagation();
647
+ emitMarker(0);
648
+ teardown();
649
+ };
650
+ window.addEventListener("pointermove", onMove);
651
+ window.addEventListener("pointerup", onUp);
652
+ window.addEventListener("keydown", onKey, true);
653
+ dragCleanupRef.current = teardown;
654
+ }, [markerDragEnabled, hasDom, openMarkerSession, emitMarker, pxPerDay]);
655
+ const markerNativeProps = useMemo(() => {
656
+ if (!markerDragEnabled || isWeb) return {};
657
+ return {
658
+ onStartShouldSetResponder: () => true,
659
+ onMoveShouldSetResponder: () => true,
660
+ onResponderTerminationRequest: () => false,
661
+ onResponderGrant: e => {
662
+ if (!openMarkerSession()) return;
663
+ markerSessionRef.current = {
664
+ startX: e?.nativeEvent?.pageX ?? 0
665
+ };
666
+ setMarkerDragging(true);
667
+ },
668
+ onResponderMove: e => {
669
+ const session = markerSessionRef.current;
670
+ if (!session) return;
671
+ const dx = (e?.nativeEvent?.pageX ?? 0) - session.startX;
672
+ emitMarker(dirSignRef.current * dxToDayDelta(dx, pxPerDay));
673
+ },
674
+ onResponderRelease: () => {
675
+ markerSessionRef.current = null;
676
+ markerGrantRef.current = null;
677
+ setMarkerDragging(false);
678
+ },
679
+ onResponderTerminate: () => {
680
+ markerSessionRef.current = null;
681
+ markerGrantRef.current = null;
682
+ setMarkerDragging(false);
683
+ }
684
+ };
685
+ }, [markerDragEnabled, openMarkerSession, emitMarker, pxPerDay]);
686
+ const handleMarkerKeyboardMove = useCallback((key, shiftKey) => {
687
+ if (!markerDragEnabled || markerDate === void 0) return;
688
+ const physical = key === "ArrowRight" ? 1 : -1;
689
+ const dayDelta = physical * dirSignRef.current * (shiftKey ? 7 : 1);
690
+ const next = addDays(startOfDay(markerDate), dayDelta);
691
+ markerEmittedRef.current = next.getTime();
692
+ onMarkerDateChange?.(next);
693
+ setAnnouncement(withInterp(t("Marker moved to {{date}}"), {
694
+ date: formatAbsoluteDate(next)
695
+ }));
696
+ }, [markerDragEnabled, markerDate, onMarkerDateChange, t]);
697
+ const markerX = markerDate === void 0 ? null : dateLineX(range, pxPerDay, markerDate);
698
+ const markerName = markerLabel ?? t("Marker");
699
+ const spanAccessibleName = (title, span) => {
700
+ if (isBoundedSpan(span)) {
701
+ return ganttTaskAccessibleLabel({
702
+ title,
703
+ start: span.start,
704
+ end: span.end
705
+ });
706
+ }
707
+ const parts = openSpanLabelParts(span);
708
+ if (parts.start !== void 0) {
709
+ return withInterp(t("{{title}}, from {{start}}, no end"), {
710
+ title,
711
+ start: parts.start
712
+ });
713
+ }
714
+ if (parts.end !== void 0) {
715
+ return withInterp(t("{{title}}, until {{end}}, no start"), {
716
+ title,
717
+ end: parts.end
718
+ });
719
+ }
720
+ return withInterp(t("{{title}}, always, no dates"), {
721
+ title
722
+ });
723
+ };
724
+ const renderBar = (task, ref) => {
725
+ const span = ref.span;
726
+ const barKey = ref.key;
727
+ const bounded = boundedSpan(ref);
728
+ const geom = openBarGeometry(span, range, pxPerDay);
729
+ const activeDrag = drag && drag.key === barKey ? drag : null;
566
730
  const dragging = activeDrag !== null;
567
- const activeResize = resize && resize.id === task.id ? resize : null;
731
+ const activeResize = resize && resize.key === barKey ? resize : null;
568
732
  const resizing = activeResize !== null;
569
733
  const sessionLive = dragging || resizing;
570
734
  const dayDelta = activeDrag?.dayDelta ?? activeResize?.dayDelta ?? 0;
571
- const span = {
572
- start: task.start,
573
- end: task.end
574
- };
575
- const previewSpan = activeDrag ? shiftSpanByDays(span, dayDelta) : activeResize ? resizeSpanByDays(span, activeResize.edge, activeResize.dayDelta) : null;
735
+ const previewSpan = bounded && activeDrag ? shiftSpanByDays(bounded, dayDelta) : bounded && activeResize ? resizeSpanByDays(bounded, activeResize.edge, activeResize.dayDelta) : null;
576
736
  const previewGeom = previewSpan ? barGeometry(previewSpan, range.start, pxPerDay) : null;
577
737
  const liveWidth = activeResize ? Math.max(6, activeResize.edge === "end" ? geom.width + activeResize.logicalDx : geom.width - activeResize.logicalDx) : geom.width;
578
738
  const liveTransformX = activeDrag ? activeDrag.dx : activeResize && activeResize.edge === "start" ? activeResize.logicalDx * dirSign : 0;
579
- const fill = task.color ?? (task.intent && task.intent !== "accent" ? "$color9" : "$accentBackground");
580
- const progress = clampProgress(task.progress);
581
- const showLabel = liveWidth >= 44;
582
- const isBarFocused = focusedBarId === task.id;
739
+ const barColor = span.color ?? task.color;
740
+ const barIntent = span.intent ?? task.intent;
741
+ const barTitle = span.title ?? task.title;
742
+ const fill = barColor ?? (barIntent && barIntent !== "accent" ? "$color9" : "$accentBackground");
743
+ const progress = bounded ? clampProgress(span.progress ?? task.progress) : null;
744
+ const showLabel = !geom.eternal && liveWidth >= 44;
745
+ const isBarFocused = focusedBarId === barKey;
583
746
  const showHandles = hoveredId === task.id || sessionLive;
584
- const handleWidth = geom.width >= 24 ? 8 : geom.width >= 12 ? 4 : 0;
747
+ const handleWidth = bounded ? geom.width >= 24 ? 8 : geom.width >= 12 ? 4 : 0 : 0;
585
748
  const physicalLeftEdge = rtl ? "end" : "start";
586
749
  const physicalRightEdge = rtl ? "start" : "end";
750
+ const openStartSide = rtl ? {
751
+ right: 2
752
+ } : {
753
+ left: 2
754
+ };
755
+ const openEndSide = rtl ? {
756
+ left: 2
757
+ } : {
758
+ right: 2
759
+ };
760
+ const squareStart = rtl ? {
761
+ borderTopRightRadius: 0,
762
+ borderBottomRightRadius: 0
763
+ } : {
764
+ borderTopLeftRadius: 0,
765
+ borderBottomLeftRadius: 0
766
+ };
767
+ const squareEnd = rtl ? {
768
+ borderTopLeftRadius: 0,
769
+ borderBottomLeftRadius: 0
770
+ } : {
771
+ borderTopRightRadius: 0,
772
+ borderBottomRightRadius: 0
773
+ };
774
+ const height2 = geom.eternal ? railHeight : barHeight;
587
775
  return /* @__PURE__ */jsxs(BarIntentWrap, {
588
- intent: task.color ? void 0 : task.intent,
776
+ intent: barColor ? void 0 : barIntent,
589
777
  children: [sessionLive && dayDelta !== 0 && previewGeom && /* @__PURE__ */jsx(YStack, {
590
778
  position: "absolute",
591
779
  ...canvasPos(previewGeom.x),
@@ -599,40 +787,42 @@ function GanttView({
599
787
  opacity: 0.25,
600
788
  pointerEvents: "none",
601
789
  ...{
602
- "data-gantt-drop-preview": task.id
790
+ "data-gantt-drop-preview": barKey
603
791
  }
604
792
  }), /* @__PURE__ */jsxs(YStack, {
605
793
  position: "absolute",
606
794
  ...canvasPos(geom.x),
607
795
  width: liveWidth,
608
- top: barInset,
609
- height: barHeight,
796
+ top: barInset + (barHeight - height2) / 2,
797
+ height: height2,
610
798
  x: liveTransformX,
611
799
  zIndex: sessionLive ? 3 : 1,
612
800
  ...knobProps.borderRadius,
801
+ ...(geom.openStart ? squareStart : null),
802
+ ...(geom.openEnd ? squareEnd : null),
613
803
  backgroundColor: fill,
614
- opacity: sessionLive ? 0.85 : 1,
804
+ opacity: sessionLive ? 0.85 : geom.eternal ? 0.55 : 1,
615
805
  hoverStyle: {
616
- opacity: sessionLive ? 0.85 : 0.9
806
+ opacity: sessionLive ? 0.85 : geom.eternal ? 0.7 : 0.9
617
807
  },
618
808
  pressStyle: {
619
809
  opacity: 0.8
620
810
  },
621
- cursor: webDragEnabled ? "grab" : onItemPress ? "pointer" : void 0,
811
+ cursor: bounded && webDragEnabled ? "grab" : onItemPress ? "pointer" : void 0,
622
812
  justifyContent: "center",
623
813
  transition: sessionLive ? void 0 : webLayoutTransition,
624
814
  role: "button",
625
815
  tabIndex: 0,
626
- "aria-label": ganttTaskAccessibleLabel(task),
816
+ "aria-label": spanAccessibleName(barTitle, span),
627
817
  ...(isBarFocused && barKeyboardRing ? keyboardFocusRingProps : {
628
818
  outlineWidth: 0
629
819
  }),
630
820
  onFocus: () => {
631
- setFocusedBarId(task.id);
821
+ setFocusedBarId(barKey);
632
822
  setBarKeyboardRing(wasKeyboardFocus());
633
823
  },
634
824
  onBlur: () => {
635
- setFocusedBarId(id => id === task.id ? null : id);
825
+ setFocusedBarId(id => id === barKey ? null : id);
636
826
  setBarKeyboardRing(false);
637
827
  },
638
828
  ...{
@@ -646,17 +836,23 @@ function GanttView({
646
836
  onItemPress?.(task);
647
837
  return;
648
838
  }
649
- if ((ke.key === "ArrowLeft" || ke.key === "ArrowRight") && dragEnabled) {
839
+ if ((ke.key === "ArrowLeft" || ke.key === "ArrowRight") && dragEnabled && bounded) {
650
840
  ke.preventDefault?.();
651
841
  ke.stopPropagation?.();
652
- handleBarKeyboardMove(task, ke.key, ke.shiftKey === true);
842
+ handleBarKeyboardMove(task, ref, ke.key, ke.shiftKey === true);
653
843
  }
654
844
  },
655
845
  ...{
656
- "data-gantt-bar": task.id
846
+ "data-gantt-bar": barKey
657
847
  },
658
- ...(nativeDragEnabled ? null : getBarDragProps(task)),
659
- onPress: nativeDragEnabled ? void 0 : e => {
848
+ ...(geom.eternal ? {
849
+ "data-gantt-rail": "true"
850
+ } : null),
851
+ ...(geom.openStart || geom.openEnd ? {
852
+ "data-gantt-span-open": geom.eternal ? "both" : geom.openStart ? "start" : "end"
853
+ } : null),
854
+ ...(nativeDragEnabled ? null : getBarDragProps(task, ref)),
855
+ onPress: nativeDragEnabled && bounded ? void 0 : e => {
660
856
  e?.stopPropagation?.();
661
857
  if (suppressClickRef.current) return;
662
858
  onItemPress?.(task);
@@ -678,8 +874,32 @@ function GanttView({
678
874
  "data-gantt-progress": String(progress)
679
875
  }
680
876
  }), showLabel && /* @__PURE__ */jsx(GanttBarLabel, {
681
- title: task.title,
877
+ title: barTitle,
682
878
  fill
879
+ }), geom.openStart && /* @__PURE__ */jsx(Text, {
880
+ position: "absolute",
881
+ ...openStartSide,
882
+ ...knobProps.label,
883
+ color: "$color12",
884
+ opacity: 0.75,
885
+ pointerEvents: "none",
886
+ "aria-hidden": true,
887
+ ...{
888
+ "data-gantt-open-start": "true"
889
+ },
890
+ children: rtl ? "\xBB" : "\xAB"
891
+ }), geom.openEnd && /* @__PURE__ */jsx(Text, {
892
+ position: "absolute",
893
+ ...openEndSide,
894
+ ...knobProps.label,
895
+ color: "$color12",
896
+ opacity: 0.75,
897
+ pointerEvents: "none",
898
+ "aria-hidden": true,
899
+ ...{
900
+ "data-gantt-open-end": "true"
901
+ },
902
+ children: rtl ? "\xAB" : "\xBB"
683
903
  }), previewSpan && /* @__PURE__ */jsx(XStack, {
684
904
  position: "absolute",
685
905
  top: -(axisHeight - 6),
@@ -714,7 +934,7 @@ function GanttView({
714
934
  cursor: "ew-resize",
715
935
  backgroundColor: showHandles ? "$color12" : "transparent",
716
936
  opacity: showHandles ? 0.28 : 0,
717
- onPointerDown: e => handleResizePointerDown(task, physicalLeftEdge, e),
937
+ onPointerDown: e => handleResizePointerDown(task, ref, physicalLeftEdge, e),
718
938
  ...{
719
939
  "data-gantt-resize-handle": physicalLeftEdge
720
940
  }
@@ -727,24 +947,24 @@ function GanttView({
727
947
  cursor: "ew-resize",
728
948
  backgroundColor: showHandles ? "$color12" : "transparent",
729
949
  opacity: showHandles ? 0.28 : 0,
730
- onPointerDown: e => handleResizePointerDown(task, physicalRightEdge, e),
950
+ onPointerDown: e => handleResizePointerDown(task, ref, physicalRightEdge, e),
731
951
  ...{
732
952
  "data-gantt-resize-handle": physicalRightEdge
733
953
  }
734
954
  })]
735
- }), nativeDragEnabled && /* @__PURE__ */jsx(YStack, {
955
+ }), nativeDragEnabled && bounded && /* @__PURE__ */jsx(YStack, {
736
956
  position: "absolute",
737
957
  top: 0,
738
958
  left: 0,
739
959
  right: 0,
740
960
  bottom: 0,
741
961
  zIndex: 5,
742
- ...getBarDragProps(task)
962
+ ...getBarDragProps(task, ref)
743
963
  })]
744
964
  })]
745
- }, task.id);
965
+ }, barKey);
746
966
  };
747
- const scrollLocked = drag !== null || resize !== null;
967
+ const scrollLocked = drag !== null || resize !== null || markerDragging;
748
968
  const majorGridColor = "$borderColor";
749
969
  const minorGridColor = componentColors.divider;
750
970
  const scrollerDirection = {
@@ -823,7 +1043,7 @@ function GanttView({
823
1043
  },
824
1044
  children: /* @__PURE__ */jsx(Text, {
825
1045
  ...knobProps.label,
826
- color: componentColors.text.muted,
1046
+ color: knobProps.textAccentColor,
827
1047
  numberOfLines: 1,
828
1048
  children: t("Task")
829
1049
  })
@@ -870,7 +1090,7 @@ function GanttView({
870
1090
  top: 2,
871
1091
  width: Math.max(0, band.width - 8),
872
1092
  ...knobProps.label,
873
- color: componentColors.text.secondary,
1093
+ color: knobProps.textAccentColor,
874
1094
  numberOfLines: 1,
875
1095
  children: band.label
876
1096
  }, band.key)), ticks.map(tick => /* @__PURE__ */jsx(Text, {
@@ -882,7 +1102,7 @@ function GanttView({
882
1102
  }),
883
1103
  top: axisHeight / 2,
884
1104
  ...knobProps.label,
885
- color: tick.major ? componentColors.text.secondary : componentColors.text.muted,
1105
+ color: knobProps.textAccentColor,
886
1106
  numberOfLines: 1,
887
1107
  children: formatDayOfMonth(tick.date)
888
1108
  }, tick.date.toISOString())), /* @__PURE__ */jsx(YStack, {
@@ -893,6 +1113,53 @@ function GanttView({
893
1113
  height: hairlineWidth,
894
1114
  backgroundColor: componentColors.divider,
895
1115
  pointerEvents: "none"
1116
+ }), markerX !== null && /* @__PURE__ */jsxs(Fragment, {
1117
+ children: [/* @__PURE__ */jsx(YStack, {
1118
+ position: "absolute",
1119
+ ...canvasPos(markerX - 1),
1120
+ top: 0,
1121
+ bottom: 0,
1122
+ width: 2,
1123
+ backgroundColor: "$color12",
1124
+ opacity: 0.9,
1125
+ pointerEvents: "none"
1126
+ }), /* @__PURE__ */jsx(YStack, {
1127
+ position: "absolute",
1128
+ ...canvasPos(markerX - 12),
1129
+ top: 0,
1130
+ bottom: 0,
1131
+ width: 24,
1132
+ alignItems: "center",
1133
+ justifyContent: "flex-end",
1134
+ zIndex: 4,
1135
+ cursor: markerDragEnabled ? "ew-resize" : void 0,
1136
+ role: "slider",
1137
+ tabIndex: markerDragEnabled ? 0 : -1,
1138
+ "aria-label": markerName,
1139
+ "aria-valuetext": markerDate ? formatAbsoluteDate(markerDate) : void 0,
1140
+ ...(markerDragEnabled && hasDom ? {
1141
+ onPointerDown: e => handleMarkerPointerDown(e)
1142
+ } : null),
1143
+ ...markerNativeProps,
1144
+ onKeyDown: ke => {
1145
+ if (ke.key !== "ArrowLeft" && ke.key !== "ArrowRight") return;
1146
+ ke.preventDefault?.();
1147
+ ke.stopPropagation?.();
1148
+ handleMarkerKeyboardMove(ke.key, ke.shiftKey === true);
1149
+ },
1150
+ ...{
1151
+ "data-gantt-marker-handle": "true"
1152
+ },
1153
+ children: /* @__PURE__ */jsx(YStack, {
1154
+ width: 11,
1155
+ height: 9,
1156
+ marginBottom: 2,
1157
+ borderRadius: 2,
1158
+ backgroundColor: "$color12",
1159
+ opacity: markerDragging ? 1 : 0.9,
1160
+ pointerEvents: "none"
1161
+ })
1162
+ })]
896
1163
  })]
897
1164
  })
898
1165
  })]
@@ -909,9 +1176,11 @@ function GanttView({
909
1176
  ...hairlineEnd,
910
1177
  borderColor: "$borderColor",
911
1178
  children: tasks.map((task, index) => {
912
- const selected = focusedBarId === task.id;
1179
+ const refs = resolveSpans(task);
1180
+ const selected = refs.some(ref => ref.key === focusedBarId);
913
1181
  const hovered = hoveredId === task.id;
914
1182
  const last = index === tasks.length - 1;
1183
+ const firstKey = refs[0]?.key ?? task.id;
915
1184
  return /* @__PURE__ */jsx(XStack, {
916
1185
  height: rowHeight,
917
1186
  alignItems: "center",
@@ -926,11 +1195,11 @@ function GanttView({
926
1195
  },
927
1196
  onPress: onItemPress ? () => {
928
1197
  if (suppressClickRef.current) return;
929
- setFocusedBarId(task.id);
1198
+ setFocusedBarId(firstKey);
930
1199
  setBarKeyboardRing(false);
931
1200
  onItemPress(task);
932
1201
  } : () => {
933
- setFocusedBarId(task.id);
1202
+ setFocusedBarId(firstKey);
934
1203
  setBarKeyboardRing(false);
935
1204
  },
936
1205
  ...{
@@ -1001,7 +1270,8 @@ function GanttView({
1001
1270
  backgroundColor: tick.major ? majorGridColor : minorGridColor,
1002
1271
  pointerEvents: "none"
1003
1272
  }, tick.date.toISOString())), tasks.map((task, index) => {
1004
- const selected = focusedBarId === task.id;
1273
+ const refs = resolveSpans(task);
1274
+ const selected = refs.some(ref => ref.key === focusedBarId);
1005
1275
  const hovered = hoveredId === task.id;
1006
1276
  const last = index === tasks.length - 1;
1007
1277
  return /* @__PURE__ */jsx(XStack, {
@@ -1017,8 +1287,21 @@ function GanttView({
1017
1287
  ...{
1018
1288
  "data-gantt-row": task.id
1019
1289
  },
1020
- children: renderBar(task)
1290
+ children: refs.map(ref => renderBar(task, ref))
1021
1291
  }, task.id);
1292
+ }), markerX !== null && /* @__PURE__ */jsx(YStack, {
1293
+ position: "absolute",
1294
+ ...canvasPos(markerX - 1),
1295
+ top: 0,
1296
+ bottom: 0,
1297
+ width: 2,
1298
+ backgroundColor: "$color12",
1299
+ opacity: markerDragging ? 0.95 : 0.75,
1300
+ pointerEvents: "none",
1301
+ zIndex: 2,
1302
+ ...{
1303
+ "data-gantt-marker": "true"
1304
+ }
1022
1305
  }), todayX !== null && /* @__PURE__ */jsx(YStack, {
1023
1306
  position: "absolute",
1024
1307
  ...canvasPos(todayX - 1),