@multiplatform.one/components 7.7.6 → 7.8.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.
- package/dist/cjs/Button.native.js.map +1 -1
- package/dist/cjs/Card.cjs +7 -1
- package/dist/cjs/Card.native.js +11 -1
- package/dist/cjs/Card.native.js.map +1 -1
- package/dist/cjs/CardFooter.cjs +1 -0
- package/dist/cjs/CardFooter.native.js +1 -0
- package/dist/cjs/CardFooter.native.js.map +1 -1
- package/dist/cjs/CopyField/index.cjs +6 -1
- package/dist/cjs/CopyField/index.native.js +6 -1
- package/dist/cjs/CopyField/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/index.cjs +31 -1
- package/dist/cjs/DropdownMenu/index.native.js +31 -1
- package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
- package/dist/cjs/Meter/index.cjs +12 -5
- package/dist/cjs/Meter/index.native.js +12 -5
- package/dist/cjs/Meter/index.native.js.map +1 -1
- package/dist/cjs/Tabs/index.cjs +7 -6
- package/dist/cjs/Tabs/index.native.js +8 -7
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/Toast/index.cjs +53 -2
- package/dist/cjs/Toast/index.native.js +55 -2
- package/dist/cjs/Toast/index.native.js.map +1 -1
- package/dist/cjs/actions/DestructiveAction.cjs +7 -13
- package/dist/cjs/actions/DestructiveAction.native.js +7 -15
- package/dist/cjs/actions/DestructiveAction.native.js.map +1 -1
- package/dist/cjs/charts/Axis.cjs +5 -0
- package/dist/cjs/charts/Axis.native.js +5 -0
- package/dist/cjs/charts/Axis.native.js.map +1 -1
- package/dist/cjs/charts/BarChart.cjs +71 -57
- package/dist/cjs/charts/BarChart.native.js +81 -67
- package/dist/cjs/charts/BarChart.native.js.map +1 -1
- package/dist/cjs/charts/ChartDataView.cjs +212 -0
- package/dist/cjs/charts/ChartDataView.native.js +224 -0
- package/dist/cjs/charts/ChartDataView.native.js.map +1 -0
- package/dist/cjs/charts/ChartSurface.cjs +5 -1
- package/dist/cjs/charts/ChartSurface.native.js +5 -1
- package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
- package/dist/cjs/charts/LineChart.cjs +81 -67
- package/dist/cjs/charts/LineChart.native.js +94 -80
- package/dist/cjs/charts/LineChart.native.js.map +1 -1
- package/dist/cjs/charts/PieChart.cjs +98 -73
- package/dist/cjs/charts/PieChart.native.js +109 -84
- package/dist/cjs/charts/PieChart.native.js.map +1 -1
- package/dist/cjs/charts/Sparkline.cjs +10 -1
- package/dist/cjs/charts/Sparkline.native.js +10 -1
- package/dist/cjs/charts/Sparkline.native.js.map +1 -1
- package/dist/cjs/charts/accessibility.cjs +4 -0
- package/dist/cjs/charts/accessibility.native.js +7 -0
- package/dist/cjs/charts/accessibility.native.js.map +1 -1
- package/dist/cjs/charts/index.cjs +3 -1
- package/dist/cjs/charts/index.native.js +2 -0
- package/dist/cjs/charts/index.native.js.map +1 -1
- package/dist/cjs/charts/math.cjs +16 -0
- package/dist/cjs/charts/math.native.js +18 -0
- package/dist/cjs/charts/math.native.js.map +1 -1
- package/dist/cjs/charts/series.cjs +49 -7
- package/dist/cjs/charts/series.native.js +53 -11
- package/dist/cjs/charts/series.native.js.map +1 -1
- package/dist/cjs/charts/svg.cjs +46 -3
- package/dist/cjs/charts/svg.native.js +46 -3
- package/dist/cjs/charts/svg.native.js.map +1 -1
- package/dist/cjs/code/CodeBlock/index.cjs +6 -1
- package/dist/cjs/code/CodeBlock/index.native.js +6 -1
- package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
- package/dist/cjs/feedback/ConfirmDialog.cjs +7 -21
- package/dist/cjs/feedback/ConfirmDialog.native.js +7 -22
- package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/cjs/feedback/NotifyHost.cjs +2 -1
- package/dist/cjs/feedback/NotifyHost.native.js +3 -2
- package/dist/cjs/feedback/NotifyHost.native.js.map +1 -1
- package/dist/cjs/feedback/copy.cjs +36 -4
- package/dist/cjs/feedback/copy.native.js +38 -4
- package/dist/cjs/feedback/copy.native.js.map +1 -1
- package/dist/cjs/feedback/index.cjs +1 -0
- package/dist/cjs/feedback/index.native.js +1 -0
- package/dist/cjs/feedback/index.native.js.map +1 -1
- package/dist/cjs/feedback/notify.cjs +1 -0
- package/dist/cjs/feedback/notify.native.js +1 -0
- package/dist/cjs/feedback/notify.native.js.map +1 -1
- package/dist/cjs/feedback/route.cjs +3 -0
- package/dist/cjs/feedback/route.native.js +3 -0
- package/dist/cjs/feedback/route.native.js.map +1 -1
- package/dist/cjs/feedback/store.cjs +6 -0
- package/dist/cjs/feedback/store.native.js +8 -0
- package/dist/cjs/feedback/store.native.js.map +1 -1
- package/dist/cjs/icons/lucide.cjs +2 -1
- package/dist/cjs/icons/lucide.native.js +2 -1
- package/dist/cjs/icons/lucide.native.js.map +1 -1
- package/dist/cjs/layouts/PaneScaffold.cjs +96 -41
- package/dist/cjs/layouts/PaneScaffold.native.js +97 -41
- package/dist/cjs/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/cjs/layouts/index.cjs +2 -0
- package/dist/cjs/layouts/index.native.js +2 -0
- package/dist/cjs/layouts/index.native.js.map +1 -1
- package/dist/cjs/layouts/page.cjs +48 -7
- package/dist/cjs/layouts/page.native.js +50 -7
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/shared/useKeyboardInset.cjs +1 -19
- package/dist/cjs/shared/useKeyboardInset.native.js +3 -3
- package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/cjs/views/Dashboard.cjs +110 -17
- package/dist/cjs/views/Dashboard.native.js +151 -45
- package/dist/cjs/views/Dashboard.native.js.map +1 -1
- package/dist/cjs/views/Gantt.cjs +374 -91
- package/dist/cjs/views/Gantt.native.js +443 -94
- package/dist/cjs/views/Gantt.native.js.map +1 -1
- package/dist/cjs/views/ganttMath.cjs +91 -2
- package/dist/cjs/views/ganttMath.native.js +113 -3
- package/dist/cjs/views/ganttMath.native.js.map +1 -1
- package/dist/cjs/views/index.cjs +20 -1
- package/dist/cjs/views/index.native.js +20 -1
- package/dist/cjs/views/index.native.js.map +1 -1
- package/dist/esm/Button.mjs.map +1 -1
- package/dist/esm/Button.native.js.map +1 -1
- package/dist/esm/Card.mjs +8 -2
- package/dist/esm/Card.mjs.map +1 -1
- package/dist/esm/Card.native.js +12 -2
- package/dist/esm/Card.native.js.map +1 -1
- package/dist/esm/CardFooter.mjs +1 -0
- package/dist/esm/CardFooter.mjs.map +1 -1
- package/dist/esm/CardFooter.native.js +1 -0
- package/dist/esm/CardFooter.native.js.map +1 -1
- package/dist/esm/CopyField/index.mjs +7 -2
- package/dist/esm/CopyField/index.mjs.map +1 -1
- package/dist/esm/CopyField/index.native.js +7 -2
- package/dist/esm/CopyField/index.native.js.map +1 -1
- package/dist/esm/DropdownMenu/index.mjs +32 -2
- package/dist/esm/DropdownMenu/index.mjs.map +1 -1
- package/dist/esm/DropdownMenu/index.native.js +32 -2
- package/dist/esm/DropdownMenu/index.native.js.map +1 -1
- package/dist/esm/Meter/index.mjs +12 -5
- package/dist/esm/Meter/index.mjs.map +1 -1
- package/dist/esm/Meter/index.native.js +12 -5
- package/dist/esm/Meter/index.native.js.map +1 -1
- package/dist/esm/Tabs/index.mjs +7 -6
- package/dist/esm/Tabs/index.mjs.map +1 -1
- package/dist/esm/Tabs/index.native.js +8 -7
- package/dist/esm/Tabs/index.native.js.map +1 -1
- package/dist/esm/Toast/index.mjs +52 -3
- package/dist/esm/Toast/index.mjs.map +1 -1
- package/dist/esm/Toast/index.native.js +54 -3
- package/dist/esm/Toast/index.native.js.map +1 -1
- package/dist/esm/actions/DestructiveAction.mjs +8 -14
- package/dist/esm/actions/DestructiveAction.mjs.map +1 -1
- package/dist/esm/actions/DestructiveAction.native.js +8 -16
- package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
- package/dist/esm/charts/Axis.mjs +6 -1
- package/dist/esm/charts/Axis.mjs.map +1 -1
- package/dist/esm/charts/Axis.native.js +6 -1
- package/dist/esm/charts/Axis.native.js.map +1 -1
- package/dist/esm/charts/BarChart.mjs +72 -58
- package/dist/esm/charts/BarChart.mjs.map +1 -1
- package/dist/esm/charts/BarChart.native.js +82 -68
- package/dist/esm/charts/BarChart.native.js.map +1 -1
- package/dist/esm/charts/ChartDataView.mjs +185 -0
- package/dist/esm/charts/ChartDataView.mjs.map +1 -0
- package/dist/esm/charts/ChartDataView.native.js +194 -0
- package/dist/esm/charts/ChartDataView.native.js.map +1 -0
- package/dist/esm/charts/ChartSurface.mjs +5 -1
- package/dist/esm/charts/ChartSurface.mjs.map +1 -1
- package/dist/esm/charts/ChartSurface.native.js +5 -1
- package/dist/esm/charts/ChartSurface.native.js.map +1 -1
- package/dist/esm/charts/LineChart.mjs +82 -68
- package/dist/esm/charts/LineChart.mjs.map +1 -1
- package/dist/esm/charts/LineChart.native.js +95 -81
- package/dist/esm/charts/LineChart.native.js.map +1 -1
- package/dist/esm/charts/PieChart.mjs +100 -75
- package/dist/esm/charts/PieChart.mjs.map +1 -1
- package/dist/esm/charts/PieChart.native.js +111 -86
- package/dist/esm/charts/PieChart.native.js.map +1 -1
- package/dist/esm/charts/Sparkline.mjs +11 -2
- package/dist/esm/charts/Sparkline.mjs.map +1 -1
- package/dist/esm/charts/Sparkline.native.js +11 -2
- package/dist/esm/charts/Sparkline.native.js.map +1 -1
- package/dist/esm/charts/accessibility.mjs +4 -1
- package/dist/esm/charts/accessibility.mjs.map +1 -1
- package/dist/esm/charts/accessibility.native.js +7 -1
- package/dist/esm/charts/accessibility.native.js.map +1 -1
- package/dist/esm/charts/index.mjs +2 -1
- package/dist/esm/charts/index.mjs.map +1 -1
- package/dist/esm/charts/index.native.js +2 -1
- package/dist/esm/charts/index.native.js.map +1 -1
- package/dist/esm/charts/math.mjs +16 -1
- package/dist/esm/charts/math.mjs.map +1 -1
- package/dist/esm/charts/math.native.js +18 -1
- package/dist/esm/charts/math.native.js.map +1 -1
- package/dist/esm/charts/series.mjs +51 -9
- package/dist/esm/charts/series.mjs.map +1 -1
- package/dist/esm/charts/series.native.js +55 -13
- package/dist/esm/charts/series.native.js.map +1 -1
- package/dist/esm/charts/svg.mjs +40 -4
- package/dist/esm/charts/svg.mjs.map +1 -1
- package/dist/esm/charts/svg.native.js +40 -4
- package/dist/esm/charts/svg.native.js.map +1 -1
- package/dist/esm/code/CodeBlock/index.mjs +7 -2
- package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
- package/dist/esm/code/CodeBlock/index.native.js +7 -2
- package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
- package/dist/esm/feedback/ConfirmDialog.mjs +8 -22
- package/dist/esm/feedback/ConfirmDialog.mjs.map +1 -1
- package/dist/esm/feedback/ConfirmDialog.native.js +8 -23
- package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/esm/feedback/NotifyHost.mjs +2 -1
- package/dist/esm/feedback/NotifyHost.mjs.map +1 -1
- package/dist/esm/feedback/NotifyHost.native.js +3 -2
- package/dist/esm/feedback/NotifyHost.native.js.map +1 -1
- package/dist/esm/feedback/copy.mjs +35 -4
- package/dist/esm/feedback/copy.mjs.map +1 -1
- package/dist/esm/feedback/copy.native.js +37 -4
- package/dist/esm/feedback/copy.native.js.map +1 -1
- package/dist/esm/feedback/index.mjs +2 -2
- package/dist/esm/feedback/index.mjs.map +1 -1
- package/dist/esm/feedback/index.native.js +2 -2
- package/dist/esm/feedback/index.native.js.map +1 -1
- package/dist/esm/feedback/notify.mjs +1 -0
- package/dist/esm/feedback/notify.mjs.map +1 -1
- package/dist/esm/feedback/notify.native.js +1 -0
- package/dist/esm/feedback/notify.native.js.map +1 -1
- package/dist/esm/feedback/route.mjs +3 -0
- package/dist/esm/feedback/route.mjs.map +1 -1
- package/dist/esm/feedback/route.native.js +3 -0
- package/dist/esm/feedback/route.native.js.map +1 -1
- package/dist/esm/feedback/store.mjs +6 -1
- package/dist/esm/feedback/store.mjs.map +1 -1
- package/dist/esm/feedback/store.native.js +8 -1
- package/dist/esm/feedback/store.native.js.map +1 -1
- package/dist/esm/icons/lucide.mjs +2 -2
- package/dist/esm/icons/lucide.mjs.map +1 -1
- package/dist/esm/icons/lucide.native.js +2 -2
- package/dist/esm/icons/lucide.native.js.map +1 -1
- package/dist/esm/layouts/PaneScaffold.mjs +97 -42
- package/dist/esm/layouts/PaneScaffold.mjs.map +1 -1
- package/dist/esm/layouts/PaneScaffold.native.js +98 -42
- package/dist/esm/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/esm/layouts/index.mjs +2 -1
- package/dist/esm/layouts/index.mjs.map +1 -1
- package/dist/esm/layouts/index.native.js +2 -1
- package/dist/esm/layouts/index.native.js.map +1 -1
- package/dist/esm/layouts/page.mjs +49 -8
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +51 -8
- package/dist/esm/layouts/page.native.js.map +1 -1
- package/dist/esm/shared/useKeyboardInset.mjs +1 -19
- package/dist/esm/shared/useKeyboardInset.mjs.map +1 -1
- package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/esm/views/Dashboard.mjs +112 -19
- package/dist/esm/views/Dashboard.mjs.map +1 -1
- package/dist/esm/views/Dashboard.native.js +153 -47
- package/dist/esm/views/Dashboard.native.js.map +1 -1
- package/dist/esm/views/Gantt.mjs +376 -93
- package/dist/esm/views/Gantt.mjs.map +1 -1
- package/dist/esm/views/Gantt.native.js +445 -96
- package/dist/esm/views/Gantt.native.js.map +1 -1
- package/dist/esm/views/ganttMath.mjs +84 -3
- package/dist/esm/views/ganttMath.mjs.map +1 -1
- package/dist/esm/views/ganttMath.native.js +106 -4
- package/dist/esm/views/ganttMath.native.js.map +1 -1
- package/dist/esm/views/index.mjs +2 -2
- package/dist/esm/views/index.mjs.map +1 -1
- package/dist/esm/views/index.native.js +2 -2
- package/dist/esm/views/index.native.js.map +1 -1
- package/dist/jsx/Button.mjs.map +1 -1
- package/dist/jsx/Button.native.js.map +1 -1
- package/dist/jsx/Card.mjs +8 -2
- package/dist/jsx/Card.mjs.map +1 -1
- package/dist/jsx/Card.native.js +11 -1
- package/dist/jsx/Card.native.js.map +1 -1
- package/dist/jsx/CardFooter.mjs +1 -0
- package/dist/jsx/CardFooter.mjs.map +1 -1
- package/dist/jsx/CardFooter.native.js +1 -0
- package/dist/jsx/CardFooter.native.js.map +1 -1
- package/dist/jsx/CopyField/index.mjs +7 -2
- package/dist/jsx/CopyField/index.mjs.map +1 -1
- package/dist/jsx/CopyField/index.native.js +6 -1
- package/dist/jsx/CopyField/index.native.js.map +1 -1
- package/dist/jsx/DropdownMenu/index.mjs +32 -2
- package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
- package/dist/jsx/DropdownMenu/index.native.js +31 -1
- package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
- package/dist/jsx/Meter/index.mjs +12 -5
- package/dist/jsx/Meter/index.mjs.map +1 -1
- package/dist/jsx/Meter/index.native.js +12 -5
- package/dist/jsx/Meter/index.native.js.map +1 -1
- package/dist/jsx/Tabs/index.mjs +7 -6
- package/dist/jsx/Tabs/index.mjs.map +1 -1
- package/dist/jsx/Tabs/index.native.js +8 -7
- package/dist/jsx/Tabs/index.native.js.map +1 -1
- package/dist/jsx/Toast/index.mjs +52 -3
- package/dist/jsx/Toast/index.mjs.map +1 -1
- package/dist/jsx/Toast/index.native.js +55 -2
- package/dist/jsx/Toast/index.native.js.map +1 -1
- package/dist/jsx/actions/DestructiveAction.mjs +8 -14
- package/dist/jsx/actions/DestructiveAction.mjs.map +1 -1
- package/dist/jsx/actions/DestructiveAction.native.js +7 -15
- package/dist/jsx/actions/DestructiveAction.native.js.map +1 -1
- package/dist/jsx/charts/Axis.mjs +6 -1
- package/dist/jsx/charts/Axis.mjs.map +1 -1
- package/dist/jsx/charts/Axis.native.js +5 -0
- package/dist/jsx/charts/Axis.native.js.map +1 -1
- package/dist/jsx/charts/BarChart.mjs +72 -58
- package/dist/jsx/charts/BarChart.mjs.map +1 -1
- package/dist/jsx/charts/BarChart.native.js +81 -67
- package/dist/jsx/charts/BarChart.native.js.map +1 -1
- package/dist/jsx/charts/ChartDataView.mjs +185 -0
- package/dist/jsx/charts/ChartDataView.mjs.map +1 -0
- package/dist/jsx/charts/ChartDataView.native.js +224 -0
- package/dist/jsx/charts/ChartDataView.native.js.map +1 -0
- package/dist/jsx/charts/ChartSurface.mjs +5 -1
- package/dist/jsx/charts/ChartSurface.mjs.map +1 -1
- package/dist/jsx/charts/ChartSurface.native.js +5 -1
- package/dist/jsx/charts/ChartSurface.native.js.map +1 -1
- package/dist/jsx/charts/LineChart.mjs +82 -68
- package/dist/jsx/charts/LineChart.mjs.map +1 -1
- package/dist/jsx/charts/LineChart.native.js +94 -80
- package/dist/jsx/charts/LineChart.native.js.map +1 -1
- package/dist/jsx/charts/PieChart.mjs +100 -75
- package/dist/jsx/charts/PieChart.mjs.map +1 -1
- package/dist/jsx/charts/PieChart.native.js +109 -84
- package/dist/jsx/charts/PieChart.native.js.map +1 -1
- package/dist/jsx/charts/Sparkline.mjs +11 -2
- package/dist/jsx/charts/Sparkline.mjs.map +1 -1
- package/dist/jsx/charts/Sparkline.native.js +10 -1
- package/dist/jsx/charts/Sparkline.native.js.map +1 -1
- package/dist/jsx/charts/accessibility.mjs +4 -1
- package/dist/jsx/charts/accessibility.mjs.map +1 -1
- package/dist/jsx/charts/accessibility.native.js +7 -0
- package/dist/jsx/charts/accessibility.native.js.map +1 -1
- package/dist/jsx/charts/index.mjs +2 -1
- package/dist/jsx/charts/index.mjs.map +1 -1
- package/dist/jsx/charts/index.native.js +2 -0
- package/dist/jsx/charts/index.native.js.map +1 -1
- package/dist/jsx/charts/math.mjs +16 -1
- package/dist/jsx/charts/math.mjs.map +1 -1
- package/dist/jsx/charts/math.native.js +18 -0
- package/dist/jsx/charts/math.native.js.map +1 -1
- package/dist/jsx/charts/series.mjs +51 -9
- package/dist/jsx/charts/series.mjs.map +1 -1
- package/dist/jsx/charts/series.native.js +53 -11
- package/dist/jsx/charts/series.native.js.map +1 -1
- package/dist/jsx/charts/svg.mjs +40 -4
- package/dist/jsx/charts/svg.mjs.map +1 -1
- package/dist/jsx/charts/svg.native.js +46 -3
- package/dist/jsx/charts/svg.native.js.map +1 -1
- package/dist/jsx/code/CodeBlock/index.mjs +7 -2
- package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
- package/dist/jsx/code/CodeBlock/index.native.js +6 -1
- package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.mjs +8 -22
- package/dist/jsx/feedback/ConfirmDialog.mjs.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.native.js +7 -22
- package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/jsx/feedback/NotifyHost.mjs +2 -1
- package/dist/jsx/feedback/NotifyHost.mjs.map +1 -1
- package/dist/jsx/feedback/NotifyHost.native.js +3 -2
- package/dist/jsx/feedback/NotifyHost.native.js.map +1 -1
- package/dist/jsx/feedback/copy.mjs +35 -4
- package/dist/jsx/feedback/copy.mjs.map +1 -1
- package/dist/jsx/feedback/copy.native.js +38 -4
- package/dist/jsx/feedback/copy.native.js.map +1 -1
- package/dist/jsx/feedback/index.mjs +2 -2
- package/dist/jsx/feedback/index.mjs.map +1 -1
- package/dist/jsx/feedback/index.native.js +1 -0
- package/dist/jsx/feedback/index.native.js.map +1 -1
- package/dist/jsx/feedback/notify.mjs +1 -0
- package/dist/jsx/feedback/notify.mjs.map +1 -1
- package/dist/jsx/feedback/notify.native.js +1 -0
- package/dist/jsx/feedback/notify.native.js.map +1 -1
- package/dist/jsx/feedback/route.mjs +3 -0
- package/dist/jsx/feedback/route.mjs.map +1 -1
- package/dist/jsx/feedback/route.native.js +3 -0
- package/dist/jsx/feedback/route.native.js.map +1 -1
- package/dist/jsx/feedback/store.mjs +6 -1
- package/dist/jsx/feedback/store.mjs.map +1 -1
- package/dist/jsx/feedback/store.native.js +8 -0
- package/dist/jsx/feedback/store.native.js.map +1 -1
- package/dist/jsx/icons/lucide.mjs +2 -2
- package/dist/jsx/icons/lucide.mjs.map +1 -1
- package/dist/jsx/icons/lucide.native.js +2 -1
- package/dist/jsx/layouts/PaneScaffold.mjs +97 -42
- package/dist/jsx/layouts/PaneScaffold.mjs.map +1 -1
- package/dist/jsx/layouts/PaneScaffold.native.js +97 -41
- package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/jsx/layouts/index.mjs +2 -1
- package/dist/jsx/layouts/index.mjs.map +1 -1
- package/dist/jsx/layouts/index.native.js +2 -0
- package/dist/jsx/layouts/index.native.js.map +1 -1
- package/dist/jsx/layouts/page.mjs +49 -8
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +50 -7
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/shared/useKeyboardInset.mjs +1 -19
- package/dist/jsx/shared/useKeyboardInset.mjs.map +1 -1
- package/dist/jsx/shared/useKeyboardInset.native.js +3 -3
- package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/jsx/views/Dashboard.mjs +112 -19
- package/dist/jsx/views/Dashboard.mjs.map +1 -1
- package/dist/jsx/views/Dashboard.native.js +151 -45
- package/dist/jsx/views/Dashboard.native.js.map +1 -1
- package/dist/jsx/views/Gantt.mjs +376 -93
- package/dist/jsx/views/Gantt.mjs.map +1 -1
- package/dist/jsx/views/Gantt.native.js +443 -94
- package/dist/jsx/views/Gantt.native.js.map +1 -1
- package/dist/jsx/views/ganttMath.mjs +84 -3
- package/dist/jsx/views/ganttMath.mjs.map +1 -1
- package/dist/jsx/views/ganttMath.native.js +113 -3
- package/dist/jsx/views/ganttMath.native.js.map +1 -1
- package/dist/jsx/views/index.mjs +2 -2
- package/dist/jsx/views/index.mjs.map +1 -1
- package/dist/jsx/views/index.native.js +20 -1
- package/dist/jsx/views/index.native.js.map +1 -1
- package/package.json +11 -9
- package/src/Button.tsx +10 -2
- package/src/Card.spec.tsx +76 -3
- package/src/Card.stories.tsx +1 -1
- package/src/Card.tsx +13 -1
- package/src/CardFooter.stories.tsx +3 -7
- package/src/CardFooter.tsx +3 -1
- package/src/CardHeader.stories.tsx +1 -3
- package/src/Collapsible.stories.tsx +2 -2
- package/src/CopyField/CopyField.spec.tsx +66 -1
- package/src/CopyField/index.tsx +4 -3
- package/src/DropdownMenu/DropdownMenu.spec.tsx +112 -1
- package/src/DropdownMenu/DropdownMenu.stories.tsx +1 -3
- package/src/DropdownMenu/index.tsx +67 -6
- package/src/LinearGradient.stories.tsx +2 -2
- package/src/Meter/Meter.spec.tsx +59 -2
- package/src/Meter/Meter.stories.tsx +38 -0
- package/src/Meter/index.tsx +9 -4
- package/src/Panel.stories.tsx +1 -1
- package/src/SortableList/SortableList.spec.tsx +3 -3
- package/src/Tabs/Tabs.spec.tsx +43 -3
- package/src/Tabs/Tabs.stories.tsx +10 -1
- package/src/Tabs/index.tsx +19 -13
- package/src/Toast/Toast.spec.tsx +56 -1
- package/src/Toast/index.tsx +68 -3
- package/src/Unspaced.stories.tsx +2 -2
- package/src/VisuallyHidden.stories.tsx +2 -2
- package/src/actions/DestructiveAction.spec.tsx +19 -3
- package/src/actions/DestructiveAction.tsx +9 -14
- package/src/charts/Axis.tsx +6 -1
- package/src/charts/BarChart.tsx +82 -67
- package/src/charts/ChartDataView.spec.tsx +104 -0
- package/src/charts/ChartDataView.tsx +158 -0
- package/src/charts/ChartSurface.tsx +7 -2
- package/src/charts/Charts.stories.tsx +213 -9
- package/src/charts/LineChart.tsx +90 -75
- package/src/charts/PieChart.knobs.spec.tsx +25 -0
- package/src/charts/PieChart.tsx +51 -9
- package/src/charts/Sparkline.tsx +25 -3
- package/src/charts/accessibility.ts +8 -0
- package/src/charts/charts.spec.tsx +77 -3
- package/src/charts/index.ts +2 -0
- package/src/charts/math.spec.ts +19 -0
- package/src/charts/math.ts +36 -0
- package/src/charts/series.tsx +101 -21
- package/src/charts/svg.spec.ts +28 -0
- package/src/charts/svg.ts +56 -2
- package/src/code/CodeBlock/CodeBlock.copy.spec.tsx +23 -0
- package/src/code/CodeBlock/index.tsx +4 -3
- package/src/feedback/ConfirmDialog.nativeFocus.spec.tsx +52 -0
- package/src/feedback/ConfirmDialog.spec.tsx +20 -0
- package/src/feedback/ConfirmDialog.tsx +9 -15
- package/src/feedback/NotifyHost.tsx +11 -2
- package/src/feedback/copy.ts +36 -4
- package/src/feedback/index.ts +1 -0
- package/src/feedback/notify.spec.ts +15 -1
- package/src/feedback/notify.ts +1 -0
- package/src/feedback/route.ts +4 -0
- package/src/feedback/store.ts +7 -0
- package/src/icons/lucide.ts +1 -1
- package/src/images/SvgUri/index.native.ts +11 -3
- package/src/layouts/EmptyState.stories.tsx +2 -2
- package/src/layouts/Page.weight.spec.tsx +75 -0
- package/src/layouts/PageHeader.stories.tsx +4 -4
- package/src/layouts/PageTemplates.stories.tsx +2 -2
- package/src/layouts/PaneScaffold.spec.tsx +144 -4
- package/src/layouts/PaneScaffold.stories.tsx +58 -2
- package/src/layouts/PaneScaffold.tsx +156 -58
- package/src/layouts/ScreenToolbar.stories.tsx +6 -23
- package/src/layouts/index.tsx +11 -0
- package/src/layouts/layouts.spec.tsx +51 -0
- package/src/layouts/page.designLaw.spec.tsx +25 -0
- package/src/layouts/page.tsx +46 -9
- package/src/shared/useKeyboardInset.native.ts +43 -0
- package/src/shared/useKeyboardInset.ts +2 -41
- package/src/tamagui.spec.ts +63 -0
- package/src/views/Dashboard.stories.tsx +38 -1
- package/src/views/Dashboard.tsx +119 -21
- package/src/views/Gantt.scroll.spec.tsx +120 -0
- package/src/views/Gantt.spec.tsx +376 -0
- package/src/views/Gantt.stories.tsx +75 -2
- package/src/views/Gantt.tsx +564 -96
- package/src/views/Kanban.spec.tsx +11 -0
- package/src/views/ganttMath.ts +142 -4
- package/src/views/index.ts +44 -1
- package/src/views/views.spec.tsx +39 -0
- package/types/Button.d.ts +12 -2
- package/types/Button.d.ts.map +1 -1
- package/types/Card.d.ts.map +1 -1
- package/types/CardFooter.d.ts +2 -1
- package/types/CardFooter.d.ts.map +1 -1
- package/types/CopyField/index.d.ts.map +1 -1
- package/types/DropdownMenu/index.d.ts +22 -0
- package/types/DropdownMenu/index.d.ts.map +1 -1
- package/types/Meter/index.d.ts.map +1 -1
- package/types/Tabs/index.d.ts +1 -1
- package/types/Tabs/index.d.ts.map +1 -1
- package/types/Toast/index.d.ts +16 -0
- package/types/Toast/index.d.ts.map +1 -1
- package/types/actions/DestructiveAction.d.ts.map +1 -1
- package/types/charts/Axis.d.ts.map +1 -1
- package/types/charts/BarChart.d.ts.map +1 -1
- package/types/charts/ChartDataView.d.ts +22 -0
- package/types/charts/ChartDataView.d.ts.map +1 -0
- package/types/charts/ChartSurface.d.ts +4 -1
- package/types/charts/ChartSurface.d.ts.map +1 -1
- package/types/charts/LineChart.d.ts.map +1 -1
- package/types/charts/PieChart.d.ts +1 -1
- package/types/charts/PieChart.d.ts.map +1 -1
- package/types/charts/Sparkline.d.ts +3 -1
- package/types/charts/Sparkline.d.ts.map +1 -1
- package/types/charts/accessibility.d.ts +3 -0
- package/types/charts/accessibility.d.ts.map +1 -1
- package/types/charts/index.d.ts +1 -0
- package/types/charts/index.d.ts.map +1 -1
- package/types/charts/math.d.ts +12 -0
- package/types/charts/math.d.ts.map +1 -1
- package/types/charts/series.d.ts +1 -1
- package/types/charts/series.d.ts.map +1 -1
- package/types/charts/svg.d.ts +18 -2
- package/types/charts/svg.d.ts.map +1 -1
- package/types/code/CodeBlock/index.d.ts.map +1 -1
- package/types/feedback/ConfirmDialog.d.ts.map +1 -1
- package/types/feedback/NotifyHost.d.ts +3 -1
- package/types/feedback/NotifyHost.d.ts.map +1 -1
- package/types/feedback/copy.d.ts +12 -2
- package/types/feedback/copy.d.ts.map +1 -1
- package/types/feedback/index.d.ts +1 -1
- package/types/feedback/index.d.ts.map +1 -1
- package/types/feedback/notify.d.ts.map +1 -1
- package/types/feedback/route.d.ts +3 -0
- package/types/feedback/route.d.ts.map +1 -1
- package/types/feedback/store.d.ts +2 -0
- package/types/feedback/store.d.ts.map +1 -1
- package/types/icons/lucide.d.ts +1 -1
- package/types/icons/lucide.d.ts.map +1 -1
- package/types/images/SvgUri/index.native.d.ts +4 -3
- package/types/images/SvgUri/index.native.d.ts.map +1 -1
- package/types/layouts/PaneScaffold.d.ts +27 -5
- package/types/layouts/PaneScaffold.d.ts.map +1 -1
- package/types/layouts/index.d.ts +1 -0
- package/types/layouts/index.d.ts.map +1 -1
- package/types/layouts/page.d.ts +10 -5
- package/types/layouts/page.d.ts.map +1 -1
- package/types/shared/useKeyboardInset.d.ts +1 -14
- package/types/shared/useKeyboardInset.d.ts.map +1 -1
- package/types/shared/useKeyboardInset.native.d.ts +16 -0
- package/types/shared/useKeyboardInset.native.d.ts.map +1 -0
- package/types/views/Dashboard.d.ts.map +1 -1
- package/types/views/Gantt.d.ts +132 -13
- package/types/views/Gantt.d.ts.map +1 -1
- package/types/views/ganttMath.d.ts +73 -0
- package/types/views/ganttMath.d.ts.map +1 -1
- package/types/views/index.d.ts +2 -2
- package/types/views/index.d.ts.map +1 -1
|
@@ -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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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 =
|
|
388
|
+
var pending = pendingAnchorRef.current;
|
|
318
389
|
if (pending) {
|
|
319
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
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.
|
|
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
|
|
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
|
|
641
|
-
var
|
|
642
|
-
var
|
|
643
|
-
var
|
|
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:
|
|
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":
|
|
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:
|
|
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
|
-
|
|
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":
|
|
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(
|
|
943
|
+
setFocusedBarId(barKey);
|
|
696
944
|
setBarKeyboardRing(wasKeyboardFocus());
|
|
697
945
|
},
|
|
698
946
|
onBlur: function onBlur() {
|
|
699
947
|
setFocusedBarId(function (id) {
|
|
700
|
-
return 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":
|
|
732
|
-
...(
|
|
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:
|
|
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
|
-
},
|
|
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 = {
|
|
@@ -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
|
|
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(
|
|
1364
|
+
setFocusedBarId(firstKey);
|
|
1033
1365
|
setBarKeyboardRing(false);
|
|
1034
1366
|
onItemPress(task);
|
|
1035
1367
|
} : function () {
|
|
1036
|
-
setFocusedBarId(
|
|
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
|
|
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:
|
|
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",
|