@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
|
@@ -53,6 +53,29 @@ var import_react_native = require("react-native");
|
|
|
53
53
|
var import_tamagui = require("tamagui");
|
|
54
54
|
var import_ganttMath = require("./ganttMath.native.js");
|
|
55
55
|
var CanvasScroller = import_tamagui.isWeb ? import_tamagui.ScrollView : import_react_native.ScrollView;
|
|
56
|
+
function boundedSpan(ref) {
|
|
57
|
+
var span = ref.span;
|
|
58
|
+
return (0, import_ganttMath.isBoundedSpan)(span) ? {
|
|
59
|
+
start: span.start,
|
|
60
|
+
end: span.end
|
|
61
|
+
} : null;
|
|
62
|
+
}
|
|
63
|
+
function resolveSpans(task) {
|
|
64
|
+
var list = task.spans;
|
|
65
|
+
if (!list || list.length === 0) return [{
|
|
66
|
+
span: task,
|
|
67
|
+
index: 0,
|
|
68
|
+
key: task.id
|
|
69
|
+
}];
|
|
70
|
+
return list.map(function (span, index) {
|
|
71
|
+
var _span_id;
|
|
72
|
+
return {
|
|
73
|
+
span,
|
|
74
|
+
index,
|
|
75
|
+
key: (_span_id = span.id) !== null && _span_id !== void 0 ? _span_id : `${task.id}#${index}`
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
}
|
|
56
79
|
var DRAG_THRESHOLD_PX = 4;
|
|
57
80
|
var TOUCH_LONG_PRESS_MS = 300;
|
|
58
81
|
var TOUCH_SLOP_PX = 8;
|
|
@@ -244,6 +267,10 @@ function GanttView(param) {
|
|
|
244
267
|
showZoomSwitcher = true,
|
|
245
268
|
firstDayOfWeek = 0,
|
|
246
269
|
initialDate,
|
|
270
|
+
markerDate,
|
|
271
|
+
onMarkerDateChange,
|
|
272
|
+
enableMarkerDrag,
|
|
273
|
+
markerLabel,
|
|
247
274
|
...stackProps
|
|
248
275
|
} = param;
|
|
249
276
|
var {
|
|
@@ -277,16 +304,60 @@ function GanttView(param) {
|
|
|
277
304
|
var space = knobProps.space;
|
|
278
305
|
var barInset = space === "small" ? 4 : space === "large" ? 9 : 6;
|
|
279
306
|
var barHeight = Math.max(10, rowHeight - barInset * 2);
|
|
307
|
+
var railHeight = Math.max(4, Math.round(barHeight / 2));
|
|
280
308
|
var transition = knobProps.transition;
|
|
281
309
|
var webLayoutTransition = import_tamagui.isWeb ? transition : void 0;
|
|
282
310
|
var spans = (0, import_react.useMemo)(function () {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
311
|
+
var flat = [];
|
|
312
|
+
var _iteratorNormalCompletion = true,
|
|
313
|
+
_didIteratorError = false,
|
|
314
|
+
_iteratorError = void 0,
|
|
315
|
+
_iteratorNormalCompletion1 = true,
|
|
316
|
+
_didIteratorError1 = false,
|
|
317
|
+
_iteratorError1 = void 0;
|
|
318
|
+
try {
|
|
319
|
+
for (var _iterator = tasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion1 = (_step = _iterator.next()).done); _iteratorNormalCompletion1 = true) {
|
|
320
|
+
var task = _step.value;
|
|
321
|
+
try {
|
|
322
|
+
for (var _iterator1 = resolveSpans(task)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion = true) {
|
|
323
|
+
var ref = _step1.value;
|
|
324
|
+
flat.push(ref.span);
|
|
325
|
+
}
|
|
326
|
+
} catch (err) {
|
|
327
|
+
_didIteratorError = true;
|
|
328
|
+
_iteratorError = err;
|
|
329
|
+
} finally {
|
|
330
|
+
try {
|
|
331
|
+
if (!_iteratorNormalCompletion && _iterator1.return != null) {
|
|
332
|
+
_iterator1.return();
|
|
333
|
+
}
|
|
334
|
+
} finally {
|
|
335
|
+
if (_didIteratorError) {
|
|
336
|
+
throw _iteratorError;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
} catch (err) {
|
|
342
|
+
_didIteratorError1 = true;
|
|
343
|
+
_iteratorError1 = err;
|
|
344
|
+
} finally {
|
|
345
|
+
try {
|
|
346
|
+
if (!_iteratorNormalCompletion1 && _iterator.return != null) {
|
|
347
|
+
_iterator.return();
|
|
348
|
+
}
|
|
349
|
+
} finally {
|
|
350
|
+
if (_didIteratorError1) {
|
|
351
|
+
throw _iteratorError1;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
if (markerDate !== void 0) flat.push({
|
|
356
|
+
start: markerDate,
|
|
357
|
+
end: markerDate
|
|
288
358
|
});
|
|
289
|
-
|
|
359
|
+
return (0, import_ganttMath.openSpanExtents)(flat);
|
|
360
|
+
}, [tasks, markerDate]);
|
|
290
361
|
var range = (0, import_react.useMemo)(function () {
|
|
291
362
|
return (0, import_ganttMath.computeGanttRange)(spans, zoom, /* @__PURE__ */new Date(), firstDayOfWeek);
|
|
292
363
|
}, [spans, zoom, firstDayOfWeek]);
|
|
@@ -312,17 +383,17 @@ function GanttView(param) {
|
|
|
312
383
|
var hScrollRef = (0, import_react.useRef)(null);
|
|
313
384
|
var axisScrollRef = (0, import_react.useRef)(null);
|
|
314
385
|
var canvasViewportRef = (0, import_react.useRef)(null);
|
|
315
|
-
var
|
|
386
|
+
var pendingAnchorRef = (0, import_react.useRef)(null);
|
|
316
387
|
var scrollToDate = (0, import_react.useCallback)(function (date, animated) {
|
|
317
388
|
var _hScrollRef_current_scrollTo, _hScrollRef_current, _axisScrollRef_current_scrollTo, _axisScrollRef_current;
|
|
318
|
-
var
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
}
|
|
389
|
+
var viewportWidth = canvasViewportRef.current;
|
|
390
|
+
if (viewportWidth === null) pendingAnchorRef.current = date;
|
|
391
|
+
var x = (0, import_ganttMath.scrollAnchorX)(date, range.start, pxPerDay, {
|
|
392
|
+
labelWidth,
|
|
393
|
+
chartWidth,
|
|
394
|
+
viewportWidth,
|
|
395
|
+
rtl
|
|
396
|
+
});
|
|
326
397
|
(_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, {
|
|
327
398
|
x,
|
|
328
399
|
animated
|
|
@@ -352,11 +423,11 @@ function GanttView(param) {
|
|
|
352
423
|
var handleCanvasLayout = (0, import_react.useCallback)(function (event) {
|
|
353
424
|
var _event_nativeEvent_layout, _event_nativeEvent;
|
|
354
425
|
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;
|
|
355
|
-
if (typeof width !== "number") return;
|
|
426
|
+
if (typeof width !== "number" || !Number.isFinite(width) || width <= 0) return;
|
|
356
427
|
canvasViewportRef.current = width;
|
|
357
|
-
var pending =
|
|
428
|
+
var pending = pendingAnchorRef.current;
|
|
358
429
|
if (pending) {
|
|
359
|
-
|
|
430
|
+
pendingAnchorRef.current = null;
|
|
360
431
|
scrollToDateRef.current(pending, false);
|
|
361
432
|
}
|
|
362
433
|
}, []);
|
|
@@ -381,17 +452,14 @@ function GanttView(param) {
|
|
|
381
452
|
suppressClickRef.current = false;
|
|
382
453
|
}, 0);
|
|
383
454
|
}, []);
|
|
384
|
-
var commitDrag = (0, import_react.useCallback)(function (task, dayDelta) {
|
|
385
|
-
if (dayDelta !== 0)
|
|
386
|
-
onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, (0, import_ganttMath.shiftSpanByDays)({
|
|
387
|
-
start: task.start,
|
|
388
|
-
end: task.end
|
|
389
|
-
}, dayDelta));
|
|
390
|
-
}
|
|
455
|
+
var commitDrag = (0, import_react.useCallback)(function (task, ref, span, dayDelta) {
|
|
456
|
+
if (dayDelta !== 0) onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, (0, import_ganttMath.shiftSpanByDays)(span, dayDelta), ref);
|
|
391
457
|
}, [onItemMove]);
|
|
392
|
-
var handleBarPointerDown = (0, import_react.useCallback)(function (task, e) {
|
|
458
|
+
var handleBarPointerDown = (0, import_react.useCallback)(function (task, ref, e) {
|
|
393
459
|
var _e_stopPropagation, _dragCleanupRef_current;
|
|
394
460
|
if (!webDragEnabled) return;
|
|
461
|
+
var span = boundedSpan(ref);
|
|
462
|
+
if (!span) return;
|
|
395
463
|
if (e.button !== void 0 && e.button !== 0) return;
|
|
396
464
|
(_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
|
|
397
465
|
(_dragCleanupRef_current = dragCleanupRef.current) === null || _dragCleanupRef_current === void 0 ? void 0 : _dragCleanupRef_current.call(dragCleanupRef);
|
|
@@ -412,7 +480,7 @@ function GanttView(param) {
|
|
|
412
480
|
prevUserSelect = document.body.style.userSelect;
|
|
413
481
|
document.body.style.userSelect = "none";
|
|
414
482
|
setDrag({
|
|
415
|
-
|
|
483
|
+
key: ref.key,
|
|
416
484
|
dx,
|
|
417
485
|
dayDelta: toDayDelta(dx)
|
|
418
486
|
});
|
|
@@ -441,7 +509,7 @@ function GanttView(param) {
|
|
|
441
509
|
return;
|
|
442
510
|
}
|
|
443
511
|
setDrag({
|
|
444
|
-
|
|
512
|
+
key: ref.key,
|
|
445
513
|
dx,
|
|
446
514
|
dayDelta: toDayDelta(dx)
|
|
447
515
|
});
|
|
@@ -452,7 +520,7 @@ function GanttView(param) {
|
|
|
452
520
|
teardown();
|
|
453
521
|
if (!wasActive) return;
|
|
454
522
|
suppressNextClick();
|
|
455
|
-
commitDrag(task, dayDelta);
|
|
523
|
+
commitDrag(task, ref, span, dayDelta);
|
|
456
524
|
};
|
|
457
525
|
var onKey = function onKey2(ke) {
|
|
458
526
|
if (ke.key !== "Escape" || !active) return;
|
|
@@ -478,12 +546,16 @@ function GanttView(param) {
|
|
|
478
546
|
window.addEventListener("keydown", onKey, true);
|
|
479
547
|
dragCleanupRef.current = teardown;
|
|
480
548
|
}, [webDragEnabled, pxPerDay, commitDrag, suppressNextClick]);
|
|
481
|
-
var handleNativeGrant = (0, import_react.useCallback)(function (task, e) {
|
|
549
|
+
var handleNativeGrant = (0, import_react.useCallback)(function (task, ref, e) {
|
|
482
550
|
var _ref;
|
|
483
551
|
var _e_nativeEvent;
|
|
484
552
|
if (!nativeDragEnabled) return;
|
|
553
|
+
var span = boundedSpan(ref);
|
|
554
|
+
if (!span) return;
|
|
485
555
|
var session = {
|
|
486
556
|
task,
|
|
557
|
+
ref,
|
|
558
|
+
span,
|
|
487
559
|
startX: (_ref = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.pageX) !== null && _ref !== void 0 ? _ref : 0,
|
|
488
560
|
dragging: false,
|
|
489
561
|
liftTimer: null
|
|
@@ -493,7 +565,7 @@ function GanttView(param) {
|
|
|
493
565
|
if (nativeSessionRef.current !== session) return;
|
|
494
566
|
session.dragging = true;
|
|
495
567
|
setDrag({
|
|
496
|
-
|
|
568
|
+
key: ref.key,
|
|
497
569
|
dx: 0,
|
|
498
570
|
dayDelta: 0
|
|
499
571
|
});
|
|
@@ -514,7 +586,7 @@ function GanttView(param) {
|
|
|
514
586
|
return;
|
|
515
587
|
}
|
|
516
588
|
setDrag({
|
|
517
|
-
|
|
589
|
+
key: session.ref.key,
|
|
518
590
|
dx,
|
|
519
591
|
dayDelta: dirSignRef.current * (0, import_ganttMath.dxToDayDelta)(dx, pxPerDay)
|
|
520
592
|
});
|
|
@@ -532,7 +604,7 @@ function GanttView(param) {
|
|
|
532
604
|
}
|
|
533
605
|
var dayDelta = dirSignRef.current * (0, import_ganttMath.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);
|
|
534
606
|
setDrag(null);
|
|
535
|
-
commitDrag(session.task, dayDelta);
|
|
607
|
+
commitDrag(session.task, session.ref, session.span, dayDelta);
|
|
536
608
|
}, [onItemPress, pxPerDay, commitDrag]);
|
|
537
609
|
var handleNativeTerminate = (0, import_react.useCallback)(function () {
|
|
538
610
|
var session = nativeSessionRef.current;
|
|
@@ -540,16 +612,14 @@ function GanttView(param) {
|
|
|
540
612
|
nativeSessionRef.current = null;
|
|
541
613
|
setDrag(null);
|
|
542
614
|
}, []);
|
|
543
|
-
var handleResizePointerDown = (0, import_react.useCallback)(function (task, edge, e) {
|
|
615
|
+
var handleResizePointerDown = (0, import_react.useCallback)(function (task, ref, edge, e) {
|
|
544
616
|
var _e_stopPropagation, _dragCleanupRef_current;
|
|
545
617
|
if (!webDragEnabled) return;
|
|
618
|
+
var span = boundedSpan(ref);
|
|
619
|
+
if (!span) return;
|
|
546
620
|
if (e.button !== void 0 && e.button !== 0) return;
|
|
547
621
|
(_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
|
|
548
622
|
(_dragCleanupRef_current = dragCleanupRef.current) === null || _dragCleanupRef_current === void 0 ? void 0 : _dragCleanupRef_current.call(dragCleanupRef);
|
|
549
|
-
var span = {
|
|
550
|
-
start: task.start,
|
|
551
|
-
end: task.end
|
|
552
|
-
};
|
|
553
623
|
var maxShrinkPx = ((0, import_ganttMath.spanInclusiveDays)(span) - 1) * pxPerDay;
|
|
554
624
|
var startX = e.clientX;
|
|
555
625
|
var sign = dirSignRef.current;
|
|
@@ -582,7 +652,7 @@ function GanttView(param) {
|
|
|
582
652
|
document.body.style.userSelect = "none";
|
|
583
653
|
}
|
|
584
654
|
setResize({
|
|
585
|
-
|
|
655
|
+
key: ref.key,
|
|
586
656
|
edge,
|
|
587
657
|
logicalDx: clampLogicalDx(dx),
|
|
588
658
|
dayDelta: toDayDelta(dx)
|
|
@@ -594,9 +664,7 @@ function GanttView(param) {
|
|
|
594
664
|
teardown();
|
|
595
665
|
if (!wasActive) return;
|
|
596
666
|
suppressNextClick();
|
|
597
|
-
if (dayDelta !== 0)
|
|
598
|
-
onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, (0, import_ganttMath.resizeSpanByDays)(span, edge, dayDelta));
|
|
599
|
-
}
|
|
667
|
+
if (dayDelta !== 0) onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, (0, import_ganttMath.resizeSpanByDays)(span, edge, dayDelta), ref);
|
|
600
668
|
};
|
|
601
669
|
var onKey = function onKey2(ke) {
|
|
602
670
|
if (ke.key !== "Escape" || !active) return;
|
|
@@ -616,11 +684,12 @@ function GanttView(param) {
|
|
|
616
684
|
window.addEventListener("keydown", onKey, true);
|
|
617
685
|
dragCleanupRef.current = teardown;
|
|
618
686
|
}, [webDragEnabled, pxPerDay, onItemMove, suppressNextClick]);
|
|
619
|
-
var getBarDragProps = (0, import_react.useCallback)(function (task) {
|
|
687
|
+
var getBarDragProps = (0, import_react.useCallback)(function (task, ref) {
|
|
688
|
+
if (!boundedSpan(ref)) return {};
|
|
620
689
|
if (webDragEnabled) {
|
|
621
690
|
return {
|
|
622
691
|
onPointerDown: function onPointerDown(e) {
|
|
623
|
-
return handleBarPointerDown(task, e);
|
|
692
|
+
return handleBarPointerDown(task, ref, e);
|
|
624
693
|
}
|
|
625
694
|
};
|
|
626
695
|
}
|
|
@@ -638,7 +707,7 @@ function GanttView(param) {
|
|
|
638
707
|
return !((_nativeSessionRef_current = nativeSessionRef.current) === null || _nativeSessionRef_current === void 0 ? void 0 : _nativeSessionRef_current.dragging);
|
|
639
708
|
},
|
|
640
709
|
onResponderGrant: function onResponderGrant(e) {
|
|
641
|
-
return handleNativeGrant(task, e);
|
|
710
|
+
return handleNativeGrant(task, ref, e);
|
|
642
711
|
},
|
|
643
712
|
onResponderMove: handleNativeMove,
|
|
644
713
|
onResponderRelease: handleNativeRelease,
|
|
@@ -647,46 +716,222 @@ function GanttView(param) {
|
|
|
647
716
|
}
|
|
648
717
|
return {};
|
|
649
718
|
}, [webDragEnabled, nativeDragEnabled, handleBarPointerDown, handleNativeGrant, handleNativeMove, handleNativeRelease, handleNativeTerminate]);
|
|
650
|
-
var handleBarKeyboardMove = (0, import_react.useCallback)(function (task, key, shiftKey) {
|
|
719
|
+
var handleBarKeyboardMove = (0, import_react.useCallback)(function (task, ref, key, shiftKey) {
|
|
720
|
+
var _ref_span_title;
|
|
721
|
+
var span = boundedSpan(ref);
|
|
722
|
+
if (!span) return;
|
|
651
723
|
var physical = key === "ArrowRight" ? 1 : -1;
|
|
652
724
|
var dayDelta = physical * dirSignRef.current * (shiftKey ? 7 : 1);
|
|
653
|
-
var next = (0, import_ganttMath.shiftSpanByDays)(
|
|
654
|
-
|
|
655
|
-
end: task.end
|
|
656
|
-
}, dayDelta);
|
|
657
|
-
onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, next);
|
|
725
|
+
var next = (0, import_ganttMath.shiftSpanByDays)(span, dayDelta);
|
|
726
|
+
onItemMove === null || onItemMove === void 0 ? void 0 : onItemMove(task, next, ref);
|
|
658
727
|
setAnnouncement((0, import_t.withInterp)(t("{{title}} moved to {{range}}"), {
|
|
659
|
-
title: task.title,
|
|
728
|
+
title: (_ref_span_title = ref.span.title) !== null && _ref_span_title !== void 0 ? _ref_span_title : task.title,
|
|
660
729
|
range: (0, import_ganttMath.formatSpanLabel)(next)
|
|
661
730
|
}));
|
|
662
731
|
}, [onItemMove, t]);
|
|
663
|
-
var
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
732
|
+
var markerDragEnabled = (enableMarkerDrag !== null && enableMarkerDrag !== void 0 ? enableMarkerDrag : onMarkerDateChange !== void 0) && onMarkerDateChange !== void 0;
|
|
733
|
+
var [markerDragging, setMarkerDragging] = (0, import_react.useState)(false);
|
|
734
|
+
var markerGrantRef = (0, import_react.useRef)(null);
|
|
735
|
+
var markerEmittedRef = (0, import_react.useRef)(null);
|
|
736
|
+
var markerSessionRef = (0, import_react.useRef)(null);
|
|
737
|
+
var emitMarker = (0, import_react.useCallback)(function (dayDelta) {
|
|
738
|
+
var base = markerGrantRef.current;
|
|
739
|
+
if (!base) return;
|
|
740
|
+
var next = (0, import_ganttMath.addDays)(base, dayDelta);
|
|
741
|
+
if (markerEmittedRef.current === next.getTime()) return;
|
|
742
|
+
markerEmittedRef.current = next.getTime();
|
|
743
|
+
onMarkerDateChange === null || onMarkerDateChange === void 0 ? void 0 : onMarkerDateChange(next);
|
|
744
|
+
}, [onMarkerDateChange]);
|
|
745
|
+
var openMarkerSession = (0, import_react.useCallback)(function () {
|
|
746
|
+
if (markerDate === void 0) return false;
|
|
747
|
+
var base = (0, import_ganttMath.startOfDay)(markerDate);
|
|
748
|
+
markerGrantRef.current = base;
|
|
749
|
+
markerEmittedRef.current = base.getTime();
|
|
750
|
+
return true;
|
|
751
|
+
}, [markerDate]);
|
|
752
|
+
var handleMarkerPointerDown = (0, import_react.useCallback)(function (e) {
|
|
753
|
+
var _e_stopPropagation, _dragCleanupRef_current;
|
|
754
|
+
if (!markerDragEnabled || !hasDom) return;
|
|
755
|
+
if (e.button !== void 0 && e.button !== 0) return;
|
|
756
|
+
if (!openMarkerSession()) return;
|
|
757
|
+
(_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
|
|
758
|
+
(_dragCleanupRef_current = dragCleanupRef.current) === null || _dragCleanupRef_current === void 0 ? void 0 : _dragCleanupRef_current.call(dragCleanupRef);
|
|
759
|
+
var startX = e.clientX;
|
|
760
|
+
var active = false;
|
|
761
|
+
var ended = false;
|
|
762
|
+
var prevUserSelect = "";
|
|
763
|
+
var toDayDelta = function toDayDelta2(dx) {
|
|
764
|
+
return dirSignRef.current * (0, import_ganttMath.dxToDayDelta)(dx, pxPerDay);
|
|
765
|
+
};
|
|
766
|
+
var teardown = function teardown2() {
|
|
767
|
+
if (ended) return;
|
|
768
|
+
ended = true;
|
|
769
|
+
window.removeEventListener("pointermove", onMove);
|
|
770
|
+
window.removeEventListener("pointerup", onUp);
|
|
771
|
+
window.removeEventListener("keydown", onKey, true);
|
|
772
|
+
if (active) document.body.style.userSelect = prevUserSelect;
|
|
773
|
+
setMarkerDragging(false);
|
|
774
|
+
markerGrantRef.current = null;
|
|
775
|
+
dragCleanupRef.current = null;
|
|
776
|
+
};
|
|
777
|
+
var onMove = function onMove2(me) {
|
|
778
|
+
var dx = me.clientX - startX;
|
|
779
|
+
if (!active) {
|
|
780
|
+
if (Math.abs(dx) < DRAG_THRESHOLD_PX) return;
|
|
781
|
+
active = true;
|
|
782
|
+
prevUserSelect = document.body.style.userSelect;
|
|
783
|
+
document.body.style.userSelect = "none";
|
|
784
|
+
setMarkerDragging(true);
|
|
785
|
+
}
|
|
786
|
+
emitMarker(toDayDelta(dx));
|
|
787
|
+
};
|
|
788
|
+
var onUp = function onUp2() {
|
|
789
|
+
return teardown();
|
|
790
|
+
};
|
|
791
|
+
var onKey = function onKey2(ke) {
|
|
792
|
+
if (ke.key !== "Escape" || !active) return;
|
|
793
|
+
ke.stopPropagation();
|
|
794
|
+
emitMarker(0);
|
|
795
|
+
teardown();
|
|
796
|
+
};
|
|
797
|
+
window.addEventListener("pointermove", onMove);
|
|
798
|
+
window.addEventListener("pointerup", onUp);
|
|
799
|
+
window.addEventListener("keydown", onKey, true);
|
|
800
|
+
dragCleanupRef.current = teardown;
|
|
801
|
+
}, [markerDragEnabled, hasDom, openMarkerSession, emitMarker, pxPerDay]);
|
|
802
|
+
var markerNativeProps = (0, import_react.useMemo)(function () {
|
|
803
|
+
if (!markerDragEnabled || import_tamagui.isWeb) return {};
|
|
804
|
+
return {
|
|
805
|
+
onStartShouldSetResponder: function onStartShouldSetResponder() {
|
|
806
|
+
return true;
|
|
807
|
+
},
|
|
808
|
+
onMoveShouldSetResponder: function onMoveShouldSetResponder() {
|
|
809
|
+
return true;
|
|
810
|
+
},
|
|
811
|
+
onResponderTerminationRequest: function onResponderTerminationRequest() {
|
|
812
|
+
return false;
|
|
813
|
+
},
|
|
814
|
+
onResponderGrant: function onResponderGrant(e) {
|
|
815
|
+
var _ref;
|
|
816
|
+
var _e_nativeEvent;
|
|
817
|
+
if (!openMarkerSession()) return;
|
|
818
|
+
markerSessionRef.current = {
|
|
819
|
+
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
|
|
820
|
+
};
|
|
821
|
+
setMarkerDragging(true);
|
|
822
|
+
},
|
|
823
|
+
onResponderMove: function onResponderMove(e) {
|
|
824
|
+
var _ref;
|
|
825
|
+
var _e_nativeEvent;
|
|
826
|
+
var session = markerSessionRef.current;
|
|
827
|
+
if (!session) return;
|
|
828
|
+
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;
|
|
829
|
+
emitMarker(dirSignRef.current * (0, import_ganttMath.dxToDayDelta)(dx, pxPerDay));
|
|
830
|
+
},
|
|
831
|
+
onResponderRelease: function onResponderRelease() {
|
|
832
|
+
markerSessionRef.current = null;
|
|
833
|
+
markerGrantRef.current = null;
|
|
834
|
+
setMarkerDragging(false);
|
|
835
|
+
},
|
|
836
|
+
onResponderTerminate: function onResponderTerminate() {
|
|
837
|
+
markerSessionRef.current = null;
|
|
838
|
+
markerGrantRef.current = null;
|
|
839
|
+
setMarkerDragging(false);
|
|
840
|
+
}
|
|
841
|
+
};
|
|
842
|
+
}, [markerDragEnabled, openMarkerSession, emitMarker, pxPerDay]);
|
|
843
|
+
var handleMarkerKeyboardMove = (0, import_react.useCallback)(function (key, shiftKey) {
|
|
844
|
+
if (!markerDragEnabled || markerDate === void 0) return;
|
|
845
|
+
var physical = key === "ArrowRight" ? 1 : -1;
|
|
846
|
+
var dayDelta = physical * dirSignRef.current * (shiftKey ? 7 : 1);
|
|
847
|
+
var next = (0, import_ganttMath.addDays)((0, import_ganttMath.startOfDay)(markerDate), dayDelta);
|
|
848
|
+
markerEmittedRef.current = next.getTime();
|
|
849
|
+
onMarkerDateChange === null || onMarkerDateChange === void 0 ? void 0 : onMarkerDateChange(next);
|
|
850
|
+
setAnnouncement((0, import_t.withInterp)(t("Marker moved to {{date}}"), {
|
|
851
|
+
date: (0, import_theme.formatAbsoluteDate)(next)
|
|
852
|
+
}));
|
|
853
|
+
}, [markerDragEnabled, markerDate, onMarkerDateChange, t]);
|
|
854
|
+
var markerX = markerDate === void 0 ? null : (0, import_ganttMath.dateLineX)(range, pxPerDay, markerDate);
|
|
855
|
+
var markerName = markerLabel !== null && markerLabel !== void 0 ? markerLabel : t("Marker");
|
|
856
|
+
var spanAccessibleName = function spanAccessibleName2(title, span) {
|
|
857
|
+
if ((0, import_ganttMath.isBoundedSpan)(span)) {
|
|
858
|
+
return (0, import_ganttMath.ganttTaskAccessibleLabel)({
|
|
859
|
+
title,
|
|
860
|
+
start: span.start,
|
|
861
|
+
end: span.end
|
|
862
|
+
});
|
|
863
|
+
}
|
|
864
|
+
var parts = (0, import_ganttMath.openSpanLabelParts)(span);
|
|
865
|
+
if (parts.start !== void 0) {
|
|
866
|
+
return (0, import_t.withInterp)(t("{{title}}, from {{start}}, no end"), {
|
|
867
|
+
title,
|
|
868
|
+
start: parts.start
|
|
869
|
+
});
|
|
870
|
+
}
|
|
871
|
+
if (parts.end !== void 0) {
|
|
872
|
+
return (0, import_t.withInterp)(t("{{title}}, until {{end}}, no start"), {
|
|
873
|
+
title,
|
|
874
|
+
end: parts.end
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
return (0, import_t.withInterp)(t("{{title}}, always, no dates"), {
|
|
878
|
+
title
|
|
879
|
+
});
|
|
880
|
+
};
|
|
881
|
+
var renderBar = function renderBar2(task, ref) {
|
|
882
|
+
var _ref, _ref1, _span_color, _span_intent, _span_title, _span_progress;
|
|
883
|
+
var span = ref.span;
|
|
884
|
+
var barKey = ref.key;
|
|
885
|
+
var bounded = boundedSpan(ref);
|
|
886
|
+
var geom = (0, import_ganttMath.openBarGeometry)(span, range, pxPerDay);
|
|
887
|
+
var activeDrag = drag && drag.key === barKey ? drag : null;
|
|
667
888
|
var dragging = activeDrag !== null;
|
|
668
|
-
var activeResize = resize && resize.
|
|
889
|
+
var activeResize = resize && resize.key === barKey ? resize : null;
|
|
669
890
|
var resizing = activeResize !== null;
|
|
670
891
|
var sessionLive = dragging || resizing;
|
|
671
892
|
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;
|
|
672
|
-
var
|
|
673
|
-
start: task.start,
|
|
674
|
-
end: task.end
|
|
675
|
-
};
|
|
676
|
-
var previewSpan = activeDrag ? (0, import_ganttMath.shiftSpanByDays)(span, dayDelta) : activeResize ? (0, import_ganttMath.resizeSpanByDays)(span, activeResize.edge, activeResize.dayDelta) : null;
|
|
893
|
+
var previewSpan = bounded && activeDrag ? (0, import_ganttMath.shiftSpanByDays)(bounded, dayDelta) : bounded && activeResize ? (0, import_ganttMath.resizeSpanByDays)(bounded, activeResize.edge, activeResize.dayDelta) : null;
|
|
677
894
|
var previewGeom = previewSpan ? (0, import_ganttMath.barGeometry)(previewSpan, range.start, pxPerDay) : null;
|
|
678
895
|
var liveWidth = activeResize ? Math.max(6, activeResize.edge === "end" ? geom.width + activeResize.logicalDx : geom.width - activeResize.logicalDx) : geom.width;
|
|
679
896
|
var liveTransformX = activeDrag ? activeDrag.dx : activeResize && activeResize.edge === "start" ? activeResize.logicalDx * dirSign : 0;
|
|
680
|
-
var
|
|
681
|
-
var
|
|
682
|
-
var
|
|
683
|
-
var
|
|
897
|
+
var barColor = (_span_color = span.color) !== null && _span_color !== void 0 ? _span_color : task.color;
|
|
898
|
+
var barIntent = (_span_intent = span.intent) !== null && _span_intent !== void 0 ? _span_intent : task.intent;
|
|
899
|
+
var barTitle = (_span_title = span.title) !== null && _span_title !== void 0 ? _span_title : task.title;
|
|
900
|
+
var fill = barColor !== null && barColor !== void 0 ? barColor : barIntent && barIntent !== "accent" ? "$color9" : "$accentBackground";
|
|
901
|
+
var progress = bounded ? clampProgress((_span_progress = span.progress) !== null && _span_progress !== void 0 ? _span_progress : task.progress) : null;
|
|
902
|
+
var showLabel = !geom.eternal && liveWidth >= 44;
|
|
903
|
+
var isBarFocused = focusedBarId === barKey;
|
|
684
904
|
var showHandles = hoveredId === task.id || sessionLive;
|
|
685
|
-
var handleWidth = geom.width >= 24 ? 8 : geom.width >= 12 ? 4 : 0;
|
|
905
|
+
var handleWidth = bounded ? geom.width >= 24 ? 8 : geom.width >= 12 ? 4 : 0 : 0;
|
|
686
906
|
var physicalLeftEdge = rtl ? "end" : "start";
|
|
687
907
|
var physicalRightEdge = rtl ? "start" : "end";
|
|
908
|
+
var openStartSide = rtl ? {
|
|
909
|
+
right: 2
|
|
910
|
+
} : {
|
|
911
|
+
left: 2
|
|
912
|
+
};
|
|
913
|
+
var openEndSide = rtl ? {
|
|
914
|
+
left: 2
|
|
915
|
+
} : {
|
|
916
|
+
right: 2
|
|
917
|
+
};
|
|
918
|
+
var squareStart = rtl ? {
|
|
919
|
+
borderTopRightRadius: 0,
|
|
920
|
+
borderBottomRightRadius: 0
|
|
921
|
+
} : {
|
|
922
|
+
borderTopLeftRadius: 0,
|
|
923
|
+
borderBottomLeftRadius: 0
|
|
924
|
+
};
|
|
925
|
+
var squareEnd = rtl ? {
|
|
926
|
+
borderTopLeftRadius: 0,
|
|
927
|
+
borderBottomLeftRadius: 0
|
|
928
|
+
} : {
|
|
929
|
+
borderTopRightRadius: 0,
|
|
930
|
+
borderBottomRightRadius: 0
|
|
931
|
+
};
|
|
932
|
+
var height2 = geom.eternal ? railHeight : barHeight;
|
|
688
933
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(BarIntentWrap, {
|
|
689
|
-
intent:
|
|
934
|
+
intent: barColor ? void 0 : barIntent,
|
|
690
935
|
children: [/* Snapped drop preview (the raw bar tracks the pointer 1:1). */
|
|
691
936
|
sessionLive && dayDelta !== 0 && previewGeom && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
692
937
|
position: "absolute",
|
|
@@ -700,25 +945,28 @@ function GanttView(param) {
|
|
|
700
945
|
backgroundColor: "$accentBackground",
|
|
701
946
|
opacity: 0.25,
|
|
702
947
|
pointerEvents: "none",
|
|
703
|
-
"data-gantt-drop-preview":
|
|
948
|
+
"data-gantt-drop-preview": barKey
|
|
704
949
|
}), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
|
|
705
950
|
position: "absolute",
|
|
706
951
|
...canvasPos(geom.x),
|
|
707
952
|
width: liveWidth,
|
|
708
|
-
top: barInset,
|
|
709
|
-
height:
|
|
953
|
+
top: barInset + (barHeight - height2) / 2,
|
|
954
|
+
height: height2,
|
|
710
955
|
x: liveTransformX,
|
|
711
956
|
zIndex: sessionLive ? 3 : 1,
|
|
712
957
|
...knobProps.borderRadius,
|
|
958
|
+
...(geom.openStart ? squareStart : null),
|
|
959
|
+
...(geom.openEnd ? squareEnd : null),
|
|
713
960
|
backgroundColor: fill,
|
|
714
|
-
|
|
961
|
+
// A rail reads as chrome, not as a duration somebody set.
|
|
962
|
+
opacity: sessionLive ? 0.85 : geom.eternal ? 0.55 : 1,
|
|
715
963
|
hoverStyle: {
|
|
716
|
-
opacity: sessionLive ? 0.85 : 0.9
|
|
964
|
+
opacity: sessionLive ? 0.85 : geom.eternal ? 0.7 : 0.9
|
|
717
965
|
},
|
|
718
966
|
pressStyle: {
|
|
719
967
|
opacity: 0.8
|
|
720
968
|
},
|
|
721
|
-
cursor: webDragEnabled ? "grab" : onItemPress ? "pointer" : void 0,
|
|
969
|
+
cursor: bounded && webDragEnabled ? "grab" : onItemPress ? "pointer" : void 0,
|
|
722
970
|
justifyContent: "center",
|
|
723
971
|
// LC-25: committed/reverted geometry jumps tween on web; the live
|
|
724
972
|
// drag/resize tracking stays 1:1 (no transition while the session
|
|
@@ -726,18 +974,18 @@ function GanttView(param) {
|
|
|
726
974
|
transition: sessionLive ? void 0 : webLayoutTransition,
|
|
727
975
|
role: "button",
|
|
728
976
|
tabIndex: 0,
|
|
729
|
-
"aria-label": (
|
|
977
|
+
"aria-label": spanAccessibleName(barTitle, span),
|
|
730
978
|
// LC-71: one ring on the bar (the perceived control), keyboard-only.
|
|
731
979
|
...(isBarFocused && barKeyboardRing ? import_theme.keyboardFocusRingProps : {
|
|
732
980
|
outlineWidth: 0
|
|
733
981
|
}),
|
|
734
982
|
onFocus: function onFocus() {
|
|
735
|
-
setFocusedBarId(
|
|
983
|
+
setFocusedBarId(barKey);
|
|
736
984
|
setBarKeyboardRing((0, import_theme.wasKeyboardFocus)());
|
|
737
985
|
},
|
|
738
986
|
onBlur: function onBlur() {
|
|
739
987
|
setFocusedBarId(function (id) {
|
|
740
|
-
return id ===
|
|
988
|
+
return id === barKey ? null : id;
|
|
741
989
|
});
|
|
742
990
|
setBarKeyboardRing(false);
|
|
743
991
|
},
|
|
@@ -761,17 +1009,23 @@ function GanttView(param) {
|
|
|
761
1009
|
onItemPress === null || onItemPress === void 0 ? void 0 : onItemPress(task);
|
|
762
1010
|
return;
|
|
763
1011
|
}
|
|
764
|
-
if ((ke.key === "ArrowLeft" || ke.key === "ArrowRight") && dragEnabled) {
|
|
1012
|
+
if ((ke.key === "ArrowLeft" || ke.key === "ArrowRight") && dragEnabled && bounded) {
|
|
765
1013
|
var _ke_preventDefault1, _ke_stopPropagation1;
|
|
766
1014
|
(_ke_preventDefault1 = ke.preventDefault) === null || _ke_preventDefault1 === void 0 ? void 0 : _ke_preventDefault1.call(ke);
|
|
767
1015
|
(_ke_stopPropagation1 = ke.stopPropagation) === null || _ke_stopPropagation1 === void 0 ? void 0 : _ke_stopPropagation1.call(ke);
|
|
768
|
-
handleBarKeyboardMove(task, ke.key, ke.shiftKey === true);
|
|
1016
|
+
handleBarKeyboardMove(task, ref, ke.key, ke.shiftKey === true);
|
|
769
1017
|
}
|
|
770
1018
|
},
|
|
771
|
-
"data-gantt-bar":
|
|
772
|
-
...(
|
|
1019
|
+
"data-gantt-bar": barKey,
|
|
1020
|
+
...(geom.eternal ? {
|
|
1021
|
+
"data-gantt-rail": "true"
|
|
1022
|
+
} : null),
|
|
1023
|
+
...(geom.openStart || geom.openEnd ? {
|
|
1024
|
+
"data-gantt-span-open": geom.eternal ? "both" : geom.openStart ? "start" : "end"
|
|
1025
|
+
} : null),
|
|
1026
|
+
...(nativeDragEnabled ? null : getBarDragProps(task, ref)),
|
|
773
1027
|
// Native drag responders own the tap → press is handled on release.
|
|
774
|
-
onPress: nativeDragEnabled ? void 0 : function (e) {
|
|
1028
|
+
onPress: nativeDragEnabled && bounded ? void 0 : function (e) {
|
|
775
1029
|
var _e_stopPropagation;
|
|
776
1030
|
e === null || e === void 0 ? void 0 : (_e_stopPropagation = e.stopPropagation) === null || _e_stopPropagation === void 0 ? void 0 : _e_stopPropagation.call(e);
|
|
777
1031
|
if (suppressClickRef.current) return;
|
|
@@ -792,8 +1046,29 @@ function GanttView(param) {
|
|
|
792
1046
|
pointerEvents: "none",
|
|
793
1047
|
"data-gantt-progress": String(progress)
|
|
794
1048
|
}), showLabel && /* @__PURE__ */(0, import_jsx_runtime.jsx)(GanttBarLabel, {
|
|
795
|
-
title:
|
|
1049
|
+
title: barTitle,
|
|
796
1050
|
fill
|
|
1051
|
+
}), /* "This end is not an end" — a mark, never a cap. */
|
|
1052
|
+
geom.openStart && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
1053
|
+
position: "absolute",
|
|
1054
|
+
...openStartSide,
|
|
1055
|
+
...knobProps.label,
|
|
1056
|
+
color: "$color12",
|
|
1057
|
+
opacity: 0.75,
|
|
1058
|
+
pointerEvents: "none",
|
|
1059
|
+
"aria-hidden": true,
|
|
1060
|
+
"data-gantt-open-start": "true",
|
|
1061
|
+
children: rtl ? "\xBB" : "\xAB"
|
|
1062
|
+
}), geom.openEnd && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
1063
|
+
position: "absolute",
|
|
1064
|
+
...openEndSide,
|
|
1065
|
+
...knobProps.label,
|
|
1066
|
+
color: "$color12",
|
|
1067
|
+
opacity: 0.75,
|
|
1068
|
+
pointerEvents: "none",
|
|
1069
|
+
"aria-hidden": true,
|
|
1070
|
+
"data-gantt-open-end": "true",
|
|
1071
|
+
children: rtl ? "\xAB" : "\xBB"
|
|
797
1072
|
}), /* Live date label while dragging (honest preview of the commit). */
|
|
798
1073
|
previewSpan && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
|
|
799
1074
|
position: "absolute",
|
|
@@ -829,7 +1104,7 @@ function GanttView(param) {
|
|
|
829
1104
|
backgroundColor: showHandles ? "$color12" : "transparent",
|
|
830
1105
|
opacity: showHandles ? 0.28 : 0,
|
|
831
1106
|
onPointerDown: function onPointerDown(e) {
|
|
832
|
-
return handleResizePointerDown(task, physicalLeftEdge, e);
|
|
1107
|
+
return handleResizePointerDown(task, ref, physicalLeftEdge, e);
|
|
833
1108
|
},
|
|
834
1109
|
"data-gantt-resize-handle": physicalLeftEdge
|
|
835
1110
|
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
@@ -842,7 +1117,7 @@ function GanttView(param) {
|
|
|
842
1117
|
backgroundColor: showHandles ? "$color12" : "transparent",
|
|
843
1118
|
opacity: showHandles ? 0.28 : 0,
|
|
844
1119
|
onPointerDown: function onPointerDown(e) {
|
|
845
|
-
return handleResizePointerDown(task, physicalRightEdge, e);
|
|
1120
|
+
return handleResizePointerDown(task, ref, physicalRightEdge, e);
|
|
846
1121
|
},
|
|
847
1122
|
"data-gantt-resize-handle": physicalRightEdge
|
|
848
1123
|
})]
|
|
@@ -850,19 +1125,19 @@ function GanttView(param) {
|
|
|
850
1125
|
/* Native drag surface: responders live on a plain fill view because
|
|
851
1126
|
the bar's Tamagui pressability would clobber them (Kanban keeps
|
|
852
1127
|
its drag responders off the pressable Card the same way). */
|
|
853
|
-
nativeDragEnabled && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
1128
|
+
nativeDragEnabled && bounded && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
854
1129
|
position: "absolute",
|
|
855
1130
|
top: 0,
|
|
856
1131
|
left: 0,
|
|
857
1132
|
right: 0,
|
|
858
1133
|
bottom: 0,
|
|
859
1134
|
zIndex: 5,
|
|
860
|
-
...getBarDragProps(task)
|
|
1135
|
+
...getBarDragProps(task, ref)
|
|
861
1136
|
})]
|
|
862
1137
|
})]
|
|
863
|
-
},
|
|
1138
|
+
}, barKey);
|
|
864
1139
|
};
|
|
865
|
-
var scrollLocked = drag !== null || resize !== null;
|
|
1140
|
+
var scrollLocked = drag !== null || resize !== null || markerDragging;
|
|
866
1141
|
var majorGridColor = "$borderColor";
|
|
867
1142
|
var minorGridColor = import_componentColors.componentColors.divider;
|
|
868
1143
|
var scrollerDirection = {
|
|
@@ -1024,6 +1299,57 @@ function GanttView(param) {
|
|
|
1024
1299
|
height: import_theme.hairlineWidth,
|
|
1025
1300
|
backgroundColor: import_componentColors.componentColors.divider,
|
|
1026
1301
|
pointerEvents: "none"
|
|
1302
|
+
}),
|
|
1303
|
+
/* The marker is scrubbed on the AXIS, never on the rows — a
|
|
1304
|
+
press inside a row stays a press on that bar. */
|
|
1305
|
+
markerX !== null && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
1306
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
1307
|
+
position: "absolute",
|
|
1308
|
+
...canvasPos(markerX - 1),
|
|
1309
|
+
top: 0,
|
|
1310
|
+
bottom: 0,
|
|
1311
|
+
width: 2,
|
|
1312
|
+
backgroundColor: "$color12",
|
|
1313
|
+
opacity: 0.9,
|
|
1314
|
+
pointerEvents: "none"
|
|
1315
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
1316
|
+
position: "absolute",
|
|
1317
|
+
...canvasPos(markerX - 12),
|
|
1318
|
+
top: 0,
|
|
1319
|
+
bottom: 0,
|
|
1320
|
+
width: 24,
|
|
1321
|
+
alignItems: "center",
|
|
1322
|
+
justifyContent: "flex-end",
|
|
1323
|
+
zIndex: 4,
|
|
1324
|
+
cursor: markerDragEnabled ? "ew-resize" : void 0,
|
|
1325
|
+
role: "slider",
|
|
1326
|
+
tabIndex: markerDragEnabled ? 0 : -1,
|
|
1327
|
+
"aria-label": markerName,
|
|
1328
|
+
"aria-valuetext": markerDate ? (0, import_theme.formatAbsoluteDate)(markerDate) : void 0,
|
|
1329
|
+
...(markerDragEnabled && hasDom ? {
|
|
1330
|
+
onPointerDown: function onPointerDown(e) {
|
|
1331
|
+
return handleMarkerPointerDown(e);
|
|
1332
|
+
}
|
|
1333
|
+
} : null),
|
|
1334
|
+
...markerNativeProps,
|
|
1335
|
+
onKeyDown: function onKeyDown(ke) {
|
|
1336
|
+
var _ke_preventDefault, _ke_stopPropagation;
|
|
1337
|
+
if (ke.key !== "ArrowLeft" && ke.key !== "ArrowRight") return;
|
|
1338
|
+
(_ke_preventDefault = ke.preventDefault) === null || _ke_preventDefault === void 0 ? void 0 : _ke_preventDefault.call(ke);
|
|
1339
|
+
(_ke_stopPropagation = ke.stopPropagation) === null || _ke_stopPropagation === void 0 ? void 0 : _ke_stopPropagation.call(ke);
|
|
1340
|
+
handleMarkerKeyboardMove(ke.key, ke.shiftKey === true);
|
|
1341
|
+
},
|
|
1342
|
+
"data-gantt-marker-handle": "true",
|
|
1343
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
1344
|
+
width: 11,
|
|
1345
|
+
height: 9,
|
|
1346
|
+
marginBottom: 2,
|
|
1347
|
+
borderRadius: 2,
|
|
1348
|
+
backgroundColor: "$color12",
|
|
1349
|
+
opacity: markerDragging ? 1 : 0.9,
|
|
1350
|
+
pointerEvents: "none"
|
|
1351
|
+
})
|
|
1352
|
+
})]
|
|
1027
1353
|
})]
|
|
1028
1354
|
})
|
|
1029
1355
|
})]
|
|
@@ -1044,9 +1370,15 @@ function GanttView(param) {
|
|
|
1044
1370
|
...hairlineEnd,
|
|
1045
1371
|
borderColor: "$borderColor",
|
|
1046
1372
|
children: tasks.map(function (task, index) {
|
|
1047
|
-
var
|
|
1373
|
+
var _ref;
|
|
1374
|
+
var _refs_;
|
|
1375
|
+
var refs = resolveSpans(task);
|
|
1376
|
+
var selected = refs.some(function (ref) {
|
|
1377
|
+
return ref.key === focusedBarId;
|
|
1378
|
+
});
|
|
1048
1379
|
var hovered = hoveredId === task.id;
|
|
1049
1380
|
var last = index === tasks.length - 1;
|
|
1381
|
+
var firstKey = (_ref = (_refs_ = refs[0]) === null || _refs_ === void 0 ? void 0 : _refs_.key) !== null && _ref !== void 0 ? _ref : task.id;
|
|
1050
1382
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
|
|
1051
1383
|
height: rowHeight,
|
|
1052
1384
|
alignItems: "center",
|
|
@@ -1069,11 +1401,11 @@ function GanttView(param) {
|
|
|
1069
1401
|
},
|
|
1070
1402
|
onPress: onItemPress ? function () {
|
|
1071
1403
|
if (suppressClickRef.current) return;
|
|
1072
|
-
setFocusedBarId(
|
|
1404
|
+
setFocusedBarId(firstKey);
|
|
1073
1405
|
setBarKeyboardRing(false);
|
|
1074
1406
|
onItemPress(task);
|
|
1075
1407
|
} : function () {
|
|
1076
|
-
setFocusedBarId(
|
|
1408
|
+
setFocusedBarId(firstKey);
|
|
1077
1409
|
setBarKeyboardRing(false);
|
|
1078
1410
|
},
|
|
1079
1411
|
"data-gantt-row-label": task.id,
|
|
@@ -1146,7 +1478,10 @@ function GanttView(param) {
|
|
|
1146
1478
|
}, tick.date.toISOString());
|
|
1147
1479
|
}), /* Task rows */
|
|
1148
1480
|
tasks.map(function (task, index) {
|
|
1149
|
-
var
|
|
1481
|
+
var refs = resolveSpans(task);
|
|
1482
|
+
var selected = refs.some(function (ref) {
|
|
1483
|
+
return ref.key === focusedBarId;
|
|
1484
|
+
});
|
|
1150
1485
|
var hovered = hoveredId === task.id;
|
|
1151
1486
|
var last = index === tasks.length - 1;
|
|
1152
1487
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
|
|
@@ -1168,8 +1503,22 @@ function GanttView(param) {
|
|
|
1168
1503
|
}
|
|
1169
1504
|
},
|
|
1170
1505
|
"data-gantt-row": task.id,
|
|
1171
|
-
children:
|
|
1506
|
+
children: refs.map(function (ref) {
|
|
1507
|
+
return renderBar(task, ref);
|
|
1508
|
+
})
|
|
1172
1509
|
}, task.id);
|
|
1510
|
+
}), /* Marker line (controlled — the caller owns the date) */
|
|
1511
|
+
markerX !== null && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
1512
|
+
position: "absolute",
|
|
1513
|
+
...canvasPos(markerX - 1),
|
|
1514
|
+
top: 0,
|
|
1515
|
+
bottom: 0,
|
|
1516
|
+
width: 2,
|
|
1517
|
+
backgroundColor: "$color12",
|
|
1518
|
+
opacity: markerDragging ? 0.95 : 0.75,
|
|
1519
|
+
pointerEvents: "none",
|
|
1520
|
+
zIndex: 2,
|
|
1521
|
+
"data-gantt-marker": "true"
|
|
1173
1522
|
}), /* Today line (above bars, non-interactive) */
|
|
1174
1523
|
todayX !== null && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
1175
1524
|
position: "absolute",
|