@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
@@ -5,14 +5,37 @@ import { Skeleton } from "../Skeleton/index.native.js";
5
5
  import { ViewSwitcher } from "../layouts/ViewSwitcher.native.js";
6
6
  import { useDirection } from "../hooks/useDirection.native.js";
7
7
  import { withInterp } from "../shared/t.native.js";
8
- import { Intent, MIN_PRESS_TARGET, ensureKeyboardModalityTracking, formatDayOfMonth, formatMonthYear, hairline, hairlineWidth, keyboardFocusRingProps, useReadableTextOn, useResolvedKnobs, wasKeyboardFocus } from "@multiplatform.one/theme";
8
+ import { Intent, MIN_PRESS_TARGET, ensureKeyboardModalityTracking, formatAbsoluteDate, formatDayOfMonth, formatMonthYear, hairline, hairlineWidth, keyboardFocusRingProps, useReadableTextOn, useResolvedKnobs, wasKeyboardFocus } from "@multiplatform.one/theme";
9
9
  import { Button } from "@multiplatform.one/forms";
10
10
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
11
11
  import { useTranslation } from "../shared/i18n.native.js";
12
12
  import { ScrollView as RNScrollView } from "react-native";
13
13
  import { ScrollView, Text, XStack, YStack, isWeb } from "tamagui";
14
- import { addDays, barGeometry, clampResizeDayDelta, computeGanttRange, dateToX, dayDiff, dxToDayDelta, formatRangeLabel, formatSpanLabel, ganttTaskAccessibleLabel, generateTicks, rangeDays, resizeSpanByDays, shiftSpanByDays, spanInclusiveDays, startOfDay, todayLineX } from "./ganttMath.native.js";
14
+ 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.native.js";
15
15
  var CanvasScroller = isWeb ? ScrollView : RNScrollView;
16
+ function boundedSpan(ref) {
17
+ var span = ref.span;
18
+ return isBoundedSpan(span) ? {
19
+ start: span.start,
20
+ end: span.end
21
+ } : null;
22
+ }
23
+ function resolveSpans(task) {
24
+ var 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(function (span, index) {
31
+ var _span_id;
32
+ return {
33
+ span,
34
+ index,
35
+ key: (_span_id = span.id) !== null && _span_id !== void 0 ? _span_id : `${task.id}#${index}`
36
+ };
37
+ });
38
+ }
16
39
  var DRAG_THRESHOLD_PX = 4;
17
40
  var TOUCH_LONG_PRESS_MS = 300;
18
41
  var TOUCH_SLOP_PX = 8;
@@ -204,6 +227,10 @@ function GanttView(param) {
204
227
  showZoomSwitcher = true,
205
228
  firstDayOfWeek = 0,
206
229
  initialDate,
230
+ markerDate,
231
+ onMarkerDateChange,
232
+ enableMarkerDrag,
233
+ markerLabel,
207
234
  ...stackProps
208
235
  } = param;
209
236
  var {
@@ -237,16 +264,60 @@ function GanttView(param) {
237
264
  var space = knobProps.space;
238
265
  var barInset = space === "small" ? 4 : space === "large" ? 9 : 6;
239
266
  var barHeight = Math.max(10, rowHeight - barInset * 2);
267
+ var railHeight = Math.max(4, Math.round(barHeight / 2));
240
268
  var transition = knobProps.transition;
241
269
  var webLayoutTransition = isWeb ? transition : void 0;
242
270
  var spans = useMemo(function () {
243
- return tasks.map(function (task) {
244
- return {
245
- start: task.start,
246
- end: task.end
247
- };
271
+ var flat = [];
272
+ var _iteratorNormalCompletion = true,
273
+ _didIteratorError = false,
274
+ _iteratorError = void 0,
275
+ _iteratorNormalCompletion1 = true,
276
+ _didIteratorError1 = false,
277
+ _iteratorError1 = void 0;
278
+ try {
279
+ for (var _iterator = tasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion1 = (_step = _iterator.next()).done); _iteratorNormalCompletion1 = true) {
280
+ var task = _step.value;
281
+ try {
282
+ for (var _iterator1 = resolveSpans(task)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion = true) {
283
+ var ref = _step1.value;
284
+ flat.push(ref.span);
285
+ }
286
+ } catch (err) {
287
+ _didIteratorError = true;
288
+ _iteratorError = err;
289
+ } finally {
290
+ try {
291
+ if (!_iteratorNormalCompletion && _iterator1.return != null) {
292
+ _iterator1.return();
293
+ }
294
+ } finally {
295
+ if (_didIteratorError) {
296
+ throw _iteratorError;
297
+ }
298
+ }
299
+ }
300
+ }
301
+ } catch (err) {
302
+ _didIteratorError1 = true;
303
+ _iteratorError1 = err;
304
+ } finally {
305
+ try {
306
+ if (!_iteratorNormalCompletion1 && _iterator.return != null) {
307
+ _iterator.return();
308
+ }
309
+ } finally {
310
+ if (_didIteratorError1) {
311
+ throw _iteratorError1;
312
+ }
313
+ }
314
+ }
315
+ if (markerDate !== void 0) flat.push({
316
+ start: markerDate,
317
+ end: markerDate
248
318
  });
249
- }, [tasks]);
319
+ return openSpanExtents(flat);
320
+ }, [tasks, markerDate]);
250
321
  var range = useMemo(function () {
251
322
  return computeGanttRange(spans, zoom, /* @__PURE__ */new Date(), firstDayOfWeek);
252
323
  }, [spans, zoom, firstDayOfWeek]);
@@ -272,17 +343,17 @@ function GanttView(param) {
272
343
  var hScrollRef = useRef(null);
273
344
  var axisScrollRef = useRef(null);
274
345
  var canvasViewportRef = useRef(null);
275
- var pendingRtlAnchorRef = useRef(null);
346
+ var pendingAnchorRef = useRef(null);
276
347
  var scrollToDate = useCallback(function (date, animated) {
277
348
  var _hScrollRef_current_scrollTo, _hScrollRef_current, _axisScrollRef_current_scrollTo, _axisScrollRef_current;
278
- var ltrX = Math.max(0, dateToX(date, range.start, pxPerDay) - labelWidth);
279
- var x = ltrX;
280
- if (rtl) {
281
- var viewport = canvasViewportRef.current;
282
- if (viewport === null) pendingRtlAnchorRef.current = date;
283
- var max = Math.max(0, chartWidth - (viewport !== null && viewport !== void 0 ? viewport : 0));
284
- x = Math.min(max, Math.max(0, max - ltrX));
285
- }
349
+ var viewportWidth = canvasViewportRef.current;
350
+ if (viewportWidth === null) pendingAnchorRef.current = date;
351
+ var x = scrollAnchorX(date, range.start, pxPerDay, {
352
+ labelWidth,
353
+ chartWidth,
354
+ viewportWidth,
355
+ rtl
356
+ });
286
357
  (_hScrollRef_current = hScrollRef.current) === null || _hScrollRef_current === void 0 ? void 0 : (_hScrollRef_current_scrollTo = _hScrollRef_current.scrollTo) === null || _hScrollRef_current_scrollTo === void 0 ? void 0 : _hScrollRef_current_scrollTo.call(_hScrollRef_current, {
287
358
  x,
288
359
  animated
@@ -312,11 +383,11 @@ function GanttView(param) {
312
383
  var handleCanvasLayout = useCallback(function (event) {
313
384
  var _event_nativeEvent_layout, _event_nativeEvent;
314
385
  var width = event === null || event === void 0 ? void 0 : (_event_nativeEvent = event.nativeEvent) === null || _event_nativeEvent === void 0 ? void 0 : (_event_nativeEvent_layout = _event_nativeEvent.layout) === null || _event_nativeEvent_layout === void 0 ? void 0 : _event_nativeEvent_layout.width;
315
- if (typeof width !== "number") return;
386
+ if (typeof width !== "number" || !Number.isFinite(width) || width <= 0) return;
316
387
  canvasViewportRef.current = width;
317
- var pending = pendingRtlAnchorRef.current;
388
+ var pending = pendingAnchorRef.current;
318
389
  if (pending) {
319
- pendingRtlAnchorRef.current = null;
390
+ pendingAnchorRef.current = null;
320
391
  scrollToDateRef.current(pending, false);
321
392
  }
322
393
  }, []);
@@ -341,17 +412,14 @@ function GanttView(param) {
341
412
  suppressClickRef.current = false;
342
413
  }, 0);
343
414
  }, []);
344
- var commitDrag = useCallback(function (task, dayDelta) {
345
- if (dayDelta !== 0) {
346
- onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, shiftSpanByDays({
347
- start: task.start,
348
- end: task.end
349
- }, dayDelta));
350
- }
415
+ var commitDrag = useCallback(function (task, ref, span, dayDelta) {
416
+ if (dayDelta !== 0) onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, shiftSpanByDays(span, dayDelta), ref);
351
417
  }, [onItemMove]);
352
- var handleBarPointerDown = useCallback(function (task, e) {
418
+ var handleBarPointerDown = useCallback(function (task, ref, e) {
353
419
  var _e_stopPropagation, _dragCleanupRef_current;
354
420
  if (!webDragEnabled) return;
421
+ var span = boundedSpan(ref);
422
+ if (!span) return;
355
423
  if (e.button !== void 0 && e.button !== 0) return;
356
424
  (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
357
425
  (_dragCleanupRef_current = dragCleanupRef.current) === null || _dragCleanupRef_current === void 0 ? void 0 : _dragCleanupRef_current.call(dragCleanupRef);
@@ -372,7 +440,7 @@ function GanttView(param) {
372
440
  prevUserSelect = document.body.style.userSelect;
373
441
  document.body.style.userSelect = "none";
374
442
  setDrag({
375
- id: task.id,
443
+ key: ref.key,
376
444
  dx,
377
445
  dayDelta: toDayDelta(dx)
378
446
  });
@@ -401,7 +469,7 @@ function GanttView(param) {
401
469
  return;
402
470
  }
403
471
  setDrag({
404
- id: task.id,
472
+ key: ref.key,
405
473
  dx,
406
474
  dayDelta: toDayDelta(dx)
407
475
  });
@@ -412,7 +480,7 @@ function GanttView(param) {
412
480
  teardown();
413
481
  if (!wasActive) return;
414
482
  suppressNextClick();
415
- commitDrag(task, dayDelta);
483
+ commitDrag(task, ref, span, dayDelta);
416
484
  };
417
485
  var onKey = function onKey2(ke) {
418
486
  if (ke.key !== "Escape" || !active) return;
@@ -438,12 +506,16 @@ function GanttView(param) {
438
506
  window.addEventListener("keydown", onKey, true);
439
507
  dragCleanupRef.current = teardown;
440
508
  }, [webDragEnabled, pxPerDay, commitDrag, suppressNextClick]);
441
- var handleNativeGrant = useCallback(function (task, e) {
509
+ var handleNativeGrant = useCallback(function (task, ref, e) {
442
510
  var _ref;
443
511
  var _e_nativeEvent;
444
512
  if (!nativeDragEnabled) return;
513
+ var span = boundedSpan(ref);
514
+ if (!span) return;
445
515
  var session = {
446
516
  task,
517
+ ref,
518
+ span,
447
519
  startX: (_ref = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.pageX) !== null && _ref !== void 0 ? _ref : 0,
448
520
  dragging: false,
449
521
  liftTimer: null
@@ -453,7 +525,7 @@ function GanttView(param) {
453
525
  if (nativeSessionRef.current !== session) return;
454
526
  session.dragging = true;
455
527
  setDrag({
456
- id: task.id,
528
+ key: ref.key,
457
529
  dx: 0,
458
530
  dayDelta: 0
459
531
  });
@@ -474,7 +546,7 @@ function GanttView(param) {
474
546
  return;
475
547
  }
476
548
  setDrag({
477
- id: session.task.id,
549
+ key: session.ref.key,
478
550
  dx,
479
551
  dayDelta: dirSignRef.current * dxToDayDelta(dx, pxPerDay)
480
552
  });
@@ -492,7 +564,7 @@ function GanttView(param) {
492
564
  }
493
565
  var dayDelta = dirSignRef.current * dxToDayDelta(((_ref = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.pageX) !== null && _ref !== void 0 ? _ref : 0) - session.startX, pxPerDay);
494
566
  setDrag(null);
495
- commitDrag(session.task, dayDelta);
567
+ commitDrag(session.task, session.ref, session.span, dayDelta);
496
568
  }, [onItemPress, pxPerDay, commitDrag]);
497
569
  var handleNativeTerminate = useCallback(function () {
498
570
  var session = nativeSessionRef.current;
@@ -500,16 +572,14 @@ function GanttView(param) {
500
572
  nativeSessionRef.current = null;
501
573
  setDrag(null);
502
574
  }, []);
503
- var handleResizePointerDown = useCallback(function (task, edge, e) {
575
+ var handleResizePointerDown = useCallback(function (task, ref, edge, e) {
504
576
  var _e_stopPropagation, _dragCleanupRef_current;
505
577
  if (!webDragEnabled) return;
578
+ var span = boundedSpan(ref);
579
+ if (!span) return;
506
580
  if (e.button !== void 0 && e.button !== 0) return;
507
581
  (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
508
582
  (_dragCleanupRef_current = dragCleanupRef.current) === null || _dragCleanupRef_current === void 0 ? void 0 : _dragCleanupRef_current.call(dragCleanupRef);
509
- var span = {
510
- start: task.start,
511
- end: task.end
512
- };
513
583
  var maxShrinkPx = (spanInclusiveDays(span) - 1) * pxPerDay;
514
584
  var startX = e.clientX;
515
585
  var sign = dirSignRef.current;
@@ -542,7 +612,7 @@ function GanttView(param) {
542
612
  document.body.style.userSelect = "none";
543
613
  }
544
614
  setResize({
545
- id: task.id,
615
+ key: ref.key,
546
616
  edge,
547
617
  logicalDx: clampLogicalDx(dx),
548
618
  dayDelta: toDayDelta(dx)
@@ -554,9 +624,7 @@ function GanttView(param) {
554
624
  teardown();
555
625
  if (!wasActive) return;
556
626
  suppressNextClick();
557
- if (dayDelta !== 0) {
558
- onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, resizeSpanByDays(span, edge, dayDelta));
559
- }
627
+ if (dayDelta !== 0) onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, resizeSpanByDays(span, edge, dayDelta), ref);
560
628
  };
561
629
  var onKey = function onKey2(ke) {
562
630
  if (ke.key !== "Escape" || !active) return;
@@ -576,11 +644,12 @@ function GanttView(param) {
576
644
  window.addEventListener("keydown", onKey, true);
577
645
  dragCleanupRef.current = teardown;
578
646
  }, [webDragEnabled, pxPerDay, onItemMove, suppressNextClick]);
579
- var getBarDragProps = useCallback(function (task) {
647
+ var getBarDragProps = useCallback(function (task, ref) {
648
+ if (!boundedSpan(ref)) return {};
580
649
  if (webDragEnabled) {
581
650
  return {
582
651
  onPointerDown: function onPointerDown(e) {
583
- return handleBarPointerDown(task, e);
652
+ return handleBarPointerDown(task, ref, e);
584
653
  }
585
654
  };
586
655
  }
@@ -598,7 +667,7 @@ function GanttView(param) {
598
667
  return !((_nativeSessionRef_current = nativeSessionRef.current) === null || _nativeSessionRef_current === void 0 ? void 0 : _nativeSessionRef_current.dragging);
599
668
  },
600
669
  onResponderGrant: function onResponderGrant(e) {
601
- return handleNativeGrant(task, e);
670
+ return handleNativeGrant(task, ref, e);
602
671
  },
603
672
  onResponderMove: handleNativeMove,
604
673
  onResponderRelease: handleNativeRelease,
@@ -607,46 +676,222 @@ function GanttView(param) {
607
676
  }
608
677
  return {};
609
678
  }, [webDragEnabled, nativeDragEnabled, handleBarPointerDown, handleNativeGrant, handleNativeMove, handleNativeRelease, handleNativeTerminate]);
610
- var handleBarKeyboardMove = useCallback(function (task, key, shiftKey) {
679
+ var handleBarKeyboardMove = useCallback(function (task, ref, key, shiftKey) {
680
+ var _ref_span_title;
681
+ var span = boundedSpan(ref);
682
+ if (!span) return;
611
683
  var physical = key === "ArrowRight" ? 1 : -1;
612
684
  var dayDelta = physical * dirSignRef.current * (shiftKey ? 7 : 1);
613
- var next = shiftSpanByDays({
614
- start: task.start,
615
- end: task.end
616
- }, dayDelta);
617
- onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, next);
685
+ var next = shiftSpanByDays(span, dayDelta);
686
+ onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, next, ref);
618
687
  setAnnouncement(withInterp(t("{{title}} moved to {{range}}"), {
619
- title: task.title,
688
+ title: (_ref_span_title = ref.span.title) !== null && _ref_span_title !== void 0 ? _ref_span_title : task.title,
620
689
  range: formatSpanLabel(next)
621
690
  }));
622
691
  }, [onItemMove, t]);
623
- var renderBar = function renderBar2(task) {
624
- var _ref, _ref1, _task_color;
625
- var geom = barGeometry(task, range.start, pxPerDay);
626
- var activeDrag = drag && drag.id === task.id ? drag : null;
692
+ var markerDragEnabled = (enableMarkerDrag !== null && enableMarkerDrag !== void 0 ? enableMarkerDrag : onMarkerDateChange !== void 0) && onMarkerDateChange !== void 0;
693
+ var [markerDragging, setMarkerDragging] = useState(false);
694
+ var markerGrantRef = useRef(null);
695
+ var markerEmittedRef = useRef(null);
696
+ var markerSessionRef = useRef(null);
697
+ var emitMarker = useCallback(function (dayDelta) {
698
+ var base = markerGrantRef.current;
699
+ if (!base) return;
700
+ var next = addDays(base, dayDelta);
701
+ if (markerEmittedRef.current === next.getTime()) return;
702
+ markerEmittedRef.current = next.getTime();
703
+ onMarkerDateChange === null || onMarkerDateChange === void 0 ? void 0 : onMarkerDateChange(next);
704
+ }, [onMarkerDateChange]);
705
+ var openMarkerSession = useCallback(function () {
706
+ if (markerDate === void 0) return false;
707
+ var base = startOfDay(markerDate);
708
+ markerGrantRef.current = base;
709
+ markerEmittedRef.current = base.getTime();
710
+ return true;
711
+ }, [markerDate]);
712
+ var handleMarkerPointerDown = useCallback(function (e) {
713
+ var _e_stopPropagation, _dragCleanupRef_current;
714
+ if (!markerDragEnabled || !hasDom) return;
715
+ if (e.button !== void 0 && e.button !== 0) return;
716
+ if (!openMarkerSession()) return;
717
+ (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
718
+ (_dragCleanupRef_current = dragCleanupRef.current) === null || _dragCleanupRef_current === void 0 ? void 0 : _dragCleanupRef_current.call(dragCleanupRef);
719
+ var startX = e.clientX;
720
+ var active = false;
721
+ var ended = false;
722
+ var prevUserSelect = "";
723
+ var toDayDelta = function toDayDelta2(dx) {
724
+ return dirSignRef.current * dxToDayDelta(dx, pxPerDay);
725
+ };
726
+ var teardown = function teardown2() {
727
+ if (ended) return;
728
+ ended = true;
729
+ window.removeEventListener("pointermove", onMove);
730
+ window.removeEventListener("pointerup", onUp);
731
+ window.removeEventListener("keydown", onKey, true);
732
+ if (active) document.body.style.userSelect = prevUserSelect;
733
+ setMarkerDragging(false);
734
+ markerGrantRef.current = null;
735
+ dragCleanupRef.current = null;
736
+ };
737
+ var onMove = function onMove2(me) {
738
+ var dx = me.clientX - startX;
739
+ if (!active) {
740
+ if (Math.abs(dx) < DRAG_THRESHOLD_PX) return;
741
+ active = true;
742
+ prevUserSelect = document.body.style.userSelect;
743
+ document.body.style.userSelect = "none";
744
+ setMarkerDragging(true);
745
+ }
746
+ emitMarker(toDayDelta(dx));
747
+ };
748
+ var onUp = function onUp2() {
749
+ return teardown();
750
+ };
751
+ var onKey = function onKey2(ke) {
752
+ if (ke.key !== "Escape" || !active) return;
753
+ ke.stopPropagation();
754
+ emitMarker(0);
755
+ teardown();
756
+ };
757
+ window.addEventListener("pointermove", onMove);
758
+ window.addEventListener("pointerup", onUp);
759
+ window.addEventListener("keydown", onKey, true);
760
+ dragCleanupRef.current = teardown;
761
+ }, [markerDragEnabled, hasDom, openMarkerSession, emitMarker, pxPerDay]);
762
+ var markerNativeProps = useMemo(function () {
763
+ if (!markerDragEnabled || isWeb) return {};
764
+ return {
765
+ onStartShouldSetResponder: function onStartShouldSetResponder() {
766
+ return true;
767
+ },
768
+ onMoveShouldSetResponder: function onMoveShouldSetResponder() {
769
+ return true;
770
+ },
771
+ onResponderTerminationRequest: function onResponderTerminationRequest() {
772
+ return false;
773
+ },
774
+ onResponderGrant: function onResponderGrant(e) {
775
+ var _ref;
776
+ var _e_nativeEvent;
777
+ if (!openMarkerSession()) return;
778
+ markerSessionRef.current = {
779
+ startX: (_ref = e === null || e === void 0 ? void 0 : (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.pageX) !== null && _ref !== void 0 ? _ref : 0
780
+ };
781
+ setMarkerDragging(true);
782
+ },
783
+ onResponderMove: function onResponderMove(e) {
784
+ var _ref;
785
+ var _e_nativeEvent;
786
+ var session = markerSessionRef.current;
787
+ if (!session) return;
788
+ var dx = ((_ref = e === null || e === void 0 ? void 0 : (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.pageX) !== null && _ref !== void 0 ? _ref : 0) - session.startX;
789
+ emitMarker(dirSignRef.current * dxToDayDelta(dx, pxPerDay));
790
+ },
791
+ onResponderRelease: function onResponderRelease() {
792
+ markerSessionRef.current = null;
793
+ markerGrantRef.current = null;
794
+ setMarkerDragging(false);
795
+ },
796
+ onResponderTerminate: function onResponderTerminate() {
797
+ markerSessionRef.current = null;
798
+ markerGrantRef.current = null;
799
+ setMarkerDragging(false);
800
+ }
801
+ };
802
+ }, [markerDragEnabled, openMarkerSession, emitMarker, pxPerDay]);
803
+ var handleMarkerKeyboardMove = useCallback(function (key, shiftKey) {
804
+ if (!markerDragEnabled || markerDate === void 0) return;
805
+ var physical = key === "ArrowRight" ? 1 : -1;
806
+ var dayDelta = physical * dirSignRef.current * (shiftKey ? 7 : 1);
807
+ var next = addDays(startOfDay(markerDate), dayDelta);
808
+ markerEmittedRef.current = next.getTime();
809
+ onMarkerDateChange === null || onMarkerDateChange === void 0 ? void 0 : onMarkerDateChange(next);
810
+ setAnnouncement(withInterp(t("Marker moved to {{date}}"), {
811
+ date: formatAbsoluteDate(next)
812
+ }));
813
+ }, [markerDragEnabled, markerDate, onMarkerDateChange, t]);
814
+ var markerX = markerDate === void 0 ? null : dateLineX(range, pxPerDay, markerDate);
815
+ var markerName = markerLabel !== null && markerLabel !== void 0 ? markerLabel : t("Marker");
816
+ var spanAccessibleName = function spanAccessibleName2(title, span) {
817
+ if (isBoundedSpan(span)) {
818
+ return ganttTaskAccessibleLabel({
819
+ title,
820
+ start: span.start,
821
+ end: span.end
822
+ });
823
+ }
824
+ var parts = openSpanLabelParts(span);
825
+ if (parts.start !== void 0) {
826
+ return withInterp(t("{{title}}, from {{start}}, no end"), {
827
+ title,
828
+ start: parts.start
829
+ });
830
+ }
831
+ if (parts.end !== void 0) {
832
+ return withInterp(t("{{title}}, until {{end}}, no start"), {
833
+ title,
834
+ end: parts.end
835
+ });
836
+ }
837
+ return withInterp(t("{{title}}, always, no dates"), {
838
+ title
839
+ });
840
+ };
841
+ var renderBar = function renderBar2(task, ref) {
842
+ var _ref, _ref1, _span_color, _span_intent, _span_title, _span_progress;
843
+ var span = ref.span;
844
+ var barKey = ref.key;
845
+ var bounded = boundedSpan(ref);
846
+ var geom = openBarGeometry(span, range, pxPerDay);
847
+ var activeDrag = drag && drag.key === barKey ? drag : null;
627
848
  var dragging = activeDrag !== null;
628
- var activeResize = resize && resize.id === task.id ? resize : null;
849
+ var activeResize = resize && resize.key === barKey ? resize : null;
629
850
  var resizing = activeResize !== null;
630
851
  var sessionLive = dragging || resizing;
631
852
  var dayDelta = (_ref = (_ref1 = activeDrag === null || activeDrag === void 0 ? void 0 : activeDrag.dayDelta) !== null && _ref1 !== void 0 ? _ref1 : activeResize === null || activeResize === void 0 ? void 0 : activeResize.dayDelta) !== null && _ref !== void 0 ? _ref : 0;
632
- var span = {
633
- start: task.start,
634
- end: task.end
635
- };
636
- var previewSpan = activeDrag ? shiftSpanByDays(span, dayDelta) : activeResize ? resizeSpanByDays(span, activeResize.edge, activeResize.dayDelta) : null;
853
+ var previewSpan = bounded && activeDrag ? shiftSpanByDays(bounded, dayDelta) : bounded && activeResize ? resizeSpanByDays(bounded, activeResize.edge, activeResize.dayDelta) : null;
637
854
  var previewGeom = previewSpan ? barGeometry(previewSpan, range.start, pxPerDay) : null;
638
855
  var liveWidth = activeResize ? Math.max(6, activeResize.edge === "end" ? geom.width + activeResize.logicalDx : geom.width - activeResize.logicalDx) : geom.width;
639
856
  var liveTransformX = activeDrag ? activeDrag.dx : activeResize && activeResize.edge === "start" ? activeResize.logicalDx * dirSign : 0;
640
- var fill = (_task_color = task.color) !== null && _task_color !== void 0 ? _task_color : task.intent && task.intent !== "accent" ? "$color9" : "$accentBackground";
641
- var progress = clampProgress(task.progress);
642
- var showLabel = liveWidth >= 44;
643
- var isBarFocused = focusedBarId === task.id;
857
+ var barColor = (_span_color = span.color) !== null && _span_color !== void 0 ? _span_color : task.color;
858
+ var barIntent = (_span_intent = span.intent) !== null && _span_intent !== void 0 ? _span_intent : task.intent;
859
+ var barTitle = (_span_title = span.title) !== null && _span_title !== void 0 ? _span_title : task.title;
860
+ var fill = barColor !== null && barColor !== void 0 ? barColor : barIntent && barIntent !== "accent" ? "$color9" : "$accentBackground";
861
+ var progress = bounded ? clampProgress((_span_progress = span.progress) !== null && _span_progress !== void 0 ? _span_progress : task.progress) : null;
862
+ var showLabel = !geom.eternal && liveWidth >= 44;
863
+ var isBarFocused = focusedBarId === barKey;
644
864
  var showHandles = hoveredId === task.id || sessionLive;
645
- var handleWidth = geom.width >= 24 ? 8 : geom.width >= 12 ? 4 : 0;
865
+ var handleWidth = bounded ? geom.width >= 24 ? 8 : geom.width >= 12 ? 4 : 0 : 0;
646
866
  var physicalLeftEdge = rtl ? "end" : "start";
647
867
  var physicalRightEdge = rtl ? "start" : "end";
868
+ var openStartSide = rtl ? {
869
+ right: 2
870
+ } : {
871
+ left: 2
872
+ };
873
+ var openEndSide = rtl ? {
874
+ left: 2
875
+ } : {
876
+ right: 2
877
+ };
878
+ var squareStart = rtl ? {
879
+ borderTopRightRadius: 0,
880
+ borderBottomRightRadius: 0
881
+ } : {
882
+ borderTopLeftRadius: 0,
883
+ borderBottomLeftRadius: 0
884
+ };
885
+ var squareEnd = rtl ? {
886
+ borderTopLeftRadius: 0,
887
+ borderBottomLeftRadius: 0
888
+ } : {
889
+ borderTopRightRadius: 0,
890
+ borderBottomRightRadius: 0
891
+ };
892
+ var height2 = geom.eternal ? railHeight : barHeight;
648
893
  return /* @__PURE__ */_jsxs(BarIntentWrap, {
649
- intent: task.color ? void 0 : task.intent,
894
+ intent: barColor ? void 0 : barIntent,
650
895
  children: [/* Snapped drop preview (the raw bar tracks the pointer 1:1). */
651
896
  sessionLive && dayDelta !== 0 && previewGeom && /* @__PURE__ */_jsx(YStack, {
652
897
  position: "absolute",
@@ -660,25 +905,28 @@ function GanttView(param) {
660
905
  backgroundColor: "$accentBackground",
661
906
  opacity: 0.25,
662
907
  pointerEvents: "none",
663
- "data-gantt-drop-preview": task.id
908
+ "data-gantt-drop-preview": barKey
664
909
  }), /* @__PURE__ */_jsxs(YStack, {
665
910
  position: "absolute",
666
911
  ...canvasPos(geom.x),
667
912
  width: liveWidth,
668
- top: barInset,
669
- height: barHeight,
913
+ top: barInset + (barHeight - height2) / 2,
914
+ height: height2,
670
915
  x: liveTransformX,
671
916
  zIndex: sessionLive ? 3 : 1,
672
917
  ...knobProps.borderRadius,
918
+ ...(geom.openStart ? squareStart : null),
919
+ ...(geom.openEnd ? squareEnd : null),
673
920
  backgroundColor: fill,
674
- opacity: sessionLive ? 0.85 : 1,
921
+ // A rail reads as chrome, not as a duration somebody set.
922
+ opacity: sessionLive ? 0.85 : geom.eternal ? 0.55 : 1,
675
923
  hoverStyle: {
676
- opacity: sessionLive ? 0.85 : 0.9
924
+ opacity: sessionLive ? 0.85 : geom.eternal ? 0.7 : 0.9
677
925
  },
678
926
  pressStyle: {
679
927
  opacity: 0.8
680
928
  },
681
- cursor: webDragEnabled ? "grab" : onItemPress ? "pointer" : void 0,
929
+ cursor: bounded && webDragEnabled ? "grab" : onItemPress ? "pointer" : void 0,
682
930
  justifyContent: "center",
683
931
  // LC-25: committed/reverted geometry jumps tween on web; the live
684
932
  // drag/resize tracking stays 1:1 (no transition while the session
@@ -686,18 +934,18 @@ function GanttView(param) {
686
934
  transition: sessionLive ? void 0 : webLayoutTransition,
687
935
  role: "button",
688
936
  tabIndex: 0,
689
- "aria-label": ganttTaskAccessibleLabel(task),
937
+ "aria-label": spanAccessibleName(barTitle, span),
690
938
  // LC-71: one ring on the bar (the perceived control), keyboard-only.
691
939
  ...(isBarFocused && barKeyboardRing ? keyboardFocusRingProps : {
692
940
  outlineWidth: 0
693
941
  }),
694
942
  onFocus: function onFocus() {
695
- setFocusedBarId(task.id);
943
+ setFocusedBarId(barKey);
696
944
  setBarKeyboardRing(wasKeyboardFocus());
697
945
  },
698
946
  onBlur: function onBlur() {
699
947
  setFocusedBarId(function (id) {
700
- return id === task.id ? null : id;
948
+ return id === barKey ? null : id;
701
949
  });
702
950
  setBarKeyboardRing(false);
703
951
  },
@@ -721,17 +969,23 @@ function GanttView(param) {
721
969
  onItemPress === null || onItemPress === void 0 ? void 0 : onItemPress(task);
722
970
  return;
723
971
  }
724
- if ((ke.key === "ArrowLeft" || ke.key === "ArrowRight") && dragEnabled) {
972
+ if ((ke.key === "ArrowLeft" || ke.key === "ArrowRight") && dragEnabled && bounded) {
725
973
  var _ke_preventDefault1, _ke_stopPropagation1;
726
974
  (_ke_preventDefault1 = ke.preventDefault) === null || _ke_preventDefault1 === void 0 ? void 0 : _ke_preventDefault1.call(ke);
727
975
  (_ke_stopPropagation1 = ke.stopPropagation) === null || _ke_stopPropagation1 === void 0 ? void 0 : _ke_stopPropagation1.call(ke);
728
- handleBarKeyboardMove(task, ke.key, ke.shiftKey === true);
976
+ handleBarKeyboardMove(task, ref, ke.key, ke.shiftKey === true);
729
977
  }
730
978
  },
731
- "data-gantt-bar": task.id,
732
- ...(nativeDragEnabled ? null : getBarDragProps(task)),
979
+ "data-gantt-bar": barKey,
980
+ ...(geom.eternal ? {
981
+ "data-gantt-rail": "true"
982
+ } : null),
983
+ ...(geom.openStart || geom.openEnd ? {
984
+ "data-gantt-span-open": geom.eternal ? "both" : geom.openStart ? "start" : "end"
985
+ } : null),
986
+ ...(nativeDragEnabled ? null : getBarDragProps(task, ref)),
733
987
  // Native drag responders own the tap → press is handled on release.
734
- onPress: nativeDragEnabled ? void 0 : function (e) {
988
+ onPress: nativeDragEnabled && bounded ? void 0 : function (e) {
735
989
  var _e_stopPropagation;
736
990
  e === null || e === void 0 ? void 0 : (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
737
991
  if (suppressClickRef.current) return;
@@ -752,8 +1006,29 @@ function GanttView(param) {
752
1006
  pointerEvents: "none",
753
1007
  "data-gantt-progress": String(progress)
754
1008
  }), showLabel && /* @__PURE__ */_jsx(GanttBarLabel, {
755
- title: task.title,
1009
+ title: barTitle,
756
1010
  fill
1011
+ }), /* "This end is not an end" — a mark, never a cap. */
1012
+ geom.openStart && /* @__PURE__ */_jsx(Text, {
1013
+ position: "absolute",
1014
+ ...openStartSide,
1015
+ ...knobProps.label,
1016
+ color: "$color12",
1017
+ opacity: 0.75,
1018
+ pointerEvents: "none",
1019
+ "aria-hidden": true,
1020
+ "data-gantt-open-start": "true",
1021
+ children: rtl ? "\xBB" : "\xAB"
1022
+ }), geom.openEnd && /* @__PURE__ */_jsx(Text, {
1023
+ position: "absolute",
1024
+ ...openEndSide,
1025
+ ...knobProps.label,
1026
+ color: "$color12",
1027
+ opacity: 0.75,
1028
+ pointerEvents: "none",
1029
+ "aria-hidden": true,
1030
+ "data-gantt-open-end": "true",
1031
+ children: rtl ? "\xAB" : "\xBB"
757
1032
  }), /* Live date label while dragging (honest preview of the commit). */
758
1033
  previewSpan && /* @__PURE__ */_jsx(XStack, {
759
1034
  position: "absolute",
@@ -789,7 +1064,7 @@ function GanttView(param) {
789
1064
  backgroundColor: showHandles ? "$color12" : "transparent",
790
1065
  opacity: showHandles ? 0.28 : 0,
791
1066
  onPointerDown: function onPointerDown(e) {
792
- return handleResizePointerDown(task, physicalLeftEdge, e);
1067
+ return handleResizePointerDown(task, ref, physicalLeftEdge, e);
793
1068
  },
794
1069
  "data-gantt-resize-handle": physicalLeftEdge
795
1070
  }), /* @__PURE__ */_jsx(YStack, {
@@ -802,7 +1077,7 @@ function GanttView(param) {
802
1077
  backgroundColor: showHandles ? "$color12" : "transparent",
803
1078
  opacity: showHandles ? 0.28 : 0,
804
1079
  onPointerDown: function onPointerDown(e) {
805
- return handleResizePointerDown(task, physicalRightEdge, e);
1080
+ return handleResizePointerDown(task, ref, physicalRightEdge, e);
806
1081
  },
807
1082
  "data-gantt-resize-handle": physicalRightEdge
808
1083
  })]
@@ -810,19 +1085,19 @@ function GanttView(param) {
810
1085
  /* Native drag surface: responders live on a plain fill view because
811
1086
  the bar's Tamagui pressability would clobber them (Kanban keeps
812
1087
  its drag responders off the pressable Card the same way). */
813
- nativeDragEnabled && /* @__PURE__ */_jsx(YStack, {
1088
+ nativeDragEnabled && bounded && /* @__PURE__ */_jsx(YStack, {
814
1089
  position: "absolute",
815
1090
  top: 0,
816
1091
  left: 0,
817
1092
  right: 0,
818
1093
  bottom: 0,
819
1094
  zIndex: 5,
820
- ...getBarDragProps(task)
1095
+ ...getBarDragProps(task, ref)
821
1096
  })]
822
1097
  })]
823
- }, task.id);
1098
+ }, barKey);
824
1099
  };
825
- var scrollLocked = drag !== null || resize !== null;
1100
+ var scrollLocked = drag !== null || resize !== null || markerDragging;
826
1101
  var majorGridColor = "$borderColor";
827
1102
  var minorGridColor = componentColors.divider;
828
1103
  var scrollerDirection = {
@@ -910,7 +1185,7 @@ function GanttView(param) {
910
1185
  backgroundColor: componentColors.surface.background,
911
1186
  children: /* @__PURE__ */_jsx(Text, {
912
1187
  ...knobProps.label,
913
- color: componentColors.text.muted,
1188
+ color: knobProps.textAccentColor,
914
1189
  numberOfLines: 1,
915
1190
  children: t("Task")
916
1191
  })
@@ -958,7 +1233,7 @@ function GanttView(param) {
958
1233
  top: 2,
959
1234
  width: Math.max(0, band.width - 8),
960
1235
  ...knobProps.label,
961
- color: componentColors.text.secondary,
1236
+ color: knobProps.textAccentColor,
962
1237
  numberOfLines: 1,
963
1238
  children: band.label
964
1239
  }, band.key);
@@ -972,7 +1247,7 @@ function GanttView(param) {
972
1247
  }),
973
1248
  top: axisHeight / 2,
974
1249
  ...knobProps.label,
975
- color: tick.major ? componentColors.text.secondary : componentColors.text.muted,
1250
+ color: knobProps.textAccentColor,
976
1251
  numberOfLines: 1,
977
1252
  children: formatDayOfMonth(tick.date)
978
1253
  }, tick.date.toISOString());
@@ -984,6 +1259,57 @@ function GanttView(param) {
984
1259
  height: hairlineWidth,
985
1260
  backgroundColor: componentColors.divider,
986
1261
  pointerEvents: "none"
1262
+ }),
1263
+ /* The marker is scrubbed on the AXIS, never on the rows — a
1264
+ press inside a row stays a press on that bar. */
1265
+ markerX !== null && /* @__PURE__ */_jsxs(_Fragment, {
1266
+ children: [/* @__PURE__ */_jsx(YStack, {
1267
+ position: "absolute",
1268
+ ...canvasPos(markerX - 1),
1269
+ top: 0,
1270
+ bottom: 0,
1271
+ width: 2,
1272
+ backgroundColor: "$color12",
1273
+ opacity: 0.9,
1274
+ pointerEvents: "none"
1275
+ }), /* @__PURE__ */_jsx(YStack, {
1276
+ position: "absolute",
1277
+ ...canvasPos(markerX - 12),
1278
+ top: 0,
1279
+ bottom: 0,
1280
+ width: 24,
1281
+ alignItems: "center",
1282
+ justifyContent: "flex-end",
1283
+ zIndex: 4,
1284
+ cursor: markerDragEnabled ? "ew-resize" : void 0,
1285
+ role: "slider",
1286
+ tabIndex: markerDragEnabled ? 0 : -1,
1287
+ "aria-label": markerName,
1288
+ "aria-valuetext": markerDate ? formatAbsoluteDate(markerDate) : void 0,
1289
+ ...(markerDragEnabled && hasDom ? {
1290
+ onPointerDown: function onPointerDown(e) {
1291
+ return handleMarkerPointerDown(e);
1292
+ }
1293
+ } : null),
1294
+ ...markerNativeProps,
1295
+ onKeyDown: function onKeyDown(ke) {
1296
+ var _ke_preventDefault, _ke_stopPropagation;
1297
+ if (ke.key !== "ArrowLeft" && ke.key !== "ArrowRight") return;
1298
+ (_ke_preventDefault = ke.preventDefault) === null || _ke_preventDefault === void 0 ? void 0 : _ke_preventDefault.call(ke);
1299
+ (_ke_stopPropagation = ke.stopPropagation) === null || _ke_stopPropagation === void 0 ? void 0 : _ke_stopPropagation.call(ke);
1300
+ handleMarkerKeyboardMove(ke.key, ke.shiftKey === true);
1301
+ },
1302
+ "data-gantt-marker-handle": "true",
1303
+ children: /* @__PURE__ */_jsx(YStack, {
1304
+ width: 11,
1305
+ height: 9,
1306
+ marginBottom: 2,
1307
+ borderRadius: 2,
1308
+ backgroundColor: "$color12",
1309
+ opacity: markerDragging ? 1 : 0.9,
1310
+ pointerEvents: "none"
1311
+ })
1312
+ })]
987
1313
  })]
988
1314
  })
989
1315
  })]
@@ -1004,9 +1330,15 @@ function GanttView(param) {
1004
1330
  ...hairlineEnd,
1005
1331
  borderColor: "$borderColor",
1006
1332
  children: tasks.map(function (task, index) {
1007
- var selected = focusedBarId === task.id;
1333
+ var _ref;
1334
+ var _refs_;
1335
+ var refs = resolveSpans(task);
1336
+ var selected = refs.some(function (ref) {
1337
+ return ref.key === focusedBarId;
1338
+ });
1008
1339
  var hovered = hoveredId === task.id;
1009
1340
  var last = index === tasks.length - 1;
1341
+ var firstKey = (_ref = (_refs_ = refs[0]) === null || _refs_ === void 0 ? void 0 : _refs_.key) !== null && _ref !== void 0 ? _ref : task.id;
1010
1342
  return /* @__PURE__ */_jsx(XStack, {
1011
1343
  height: rowHeight,
1012
1344
  alignItems: "center",
@@ -1029,11 +1361,11 @@ function GanttView(param) {
1029
1361
  },
1030
1362
  onPress: onItemPress ? function () {
1031
1363
  if (suppressClickRef.current) return;
1032
- setFocusedBarId(task.id);
1364
+ setFocusedBarId(firstKey);
1033
1365
  setBarKeyboardRing(false);
1034
1366
  onItemPress(task);
1035
1367
  } : function () {
1036
- setFocusedBarId(task.id);
1368
+ setFocusedBarId(firstKey);
1037
1369
  setBarKeyboardRing(false);
1038
1370
  },
1039
1371
  "data-gantt-row-label": task.id,
@@ -1106,7 +1438,10 @@ function GanttView(param) {
1106
1438
  }, tick.date.toISOString());
1107
1439
  }), /* Task rows */
1108
1440
  tasks.map(function (task, index) {
1109
- var selected = focusedBarId === task.id;
1441
+ var refs = resolveSpans(task);
1442
+ var selected = refs.some(function (ref) {
1443
+ return ref.key === focusedBarId;
1444
+ });
1110
1445
  var hovered = hoveredId === task.id;
1111
1446
  var last = index === tasks.length - 1;
1112
1447
  return /* @__PURE__ */_jsx(XStack, {
@@ -1128,8 +1463,22 @@ function GanttView(param) {
1128
1463
  }
1129
1464
  },
1130
1465
  "data-gantt-row": task.id,
1131
- children: renderBar(task)
1466
+ children: refs.map(function (ref) {
1467
+ return renderBar(task, ref);
1468
+ })
1132
1469
  }, task.id);
1470
+ }), /* Marker line (controlled — the caller owns the date) */
1471
+ markerX !== null && /* @__PURE__ */_jsx(YStack, {
1472
+ position: "absolute",
1473
+ ...canvasPos(markerX - 1),
1474
+ top: 0,
1475
+ bottom: 0,
1476
+ width: 2,
1477
+ backgroundColor: "$color12",
1478
+ opacity: markerDragging ? 0.95 : 0.75,
1479
+ pointerEvents: "none",
1480
+ zIndex: 2,
1481
+ "data-gantt-marker": "true"
1133
1482
  }), /* Today line (above bars, non-interactive) */
1134
1483
  todayX !== null && /* @__PURE__ */_jsx(YStack, {
1135
1484
  position: "absolute",