@multiplatform.one/components 7.7.6 → 7.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Accordion/index.cjs +3 -3
- package/dist/cjs/Accordion/index.native.js +4 -4
- package/dist/cjs/Accordion/index.native.js.map +1 -1
- 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/Chip/index.cjs +1 -1
- package/dist/cjs/Chip/index.native.js +1 -1
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/ContextMenu/index.cjs +3 -3
- package/dist/cjs/ContextMenu/index.native.js +3 -3
- package/dist/cjs/ContextMenu/index.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 +34 -4
- package/dist/cjs/DropdownMenu/index.native.js +34 -4
- package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
- package/dist/cjs/Meter/index.cjs +15 -7
- package/dist/cjs/Meter/index.native.js +15 -7
- package/dist/cjs/Meter/index.native.js.map +1 -1
- package/dist/cjs/Meter/meter.cjs +1 -2
- package/dist/cjs/Meter/meter.native.js +1 -2
- package/dist/cjs/Meter/meter.native.js.map +1 -1
- package/dist/cjs/Pagination.cjs +2 -2
- package/dist/cjs/Pagination.native.js +2 -2
- package/dist/cjs/Pagination.native.js.map +1 -1
- package/dist/cjs/ProgressSteps/index.cjs +3 -3
- package/dist/cjs/ProgressSteps/index.native.js +3 -3
- package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
- package/dist/cjs/Quote/index.cjs +1 -2
- package/dist/cjs/Quote/index.native.js +1 -2
- package/dist/cjs/Quote/index.native.js.map +1 -1
- package/dist/cjs/Tabs/index.cjs +8 -7
- package/dist/cjs/Tabs/index.native.js +9 -8
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/Toast/index.cjs +57 -7
- package/dist/cjs/Toast/index.native.js +59 -7
- package/dist/cjs/Toast/index.native.js.map +1 -1
- package/dist/cjs/TreeSelect/index.cjs +46 -7
- package/dist/cjs/TreeSelect/index.native.js +58 -7
- package/dist/cjs/TreeSelect/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 -74
- package/dist/cjs/charts/PieChart.native.js +109 -85
- 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/code/HighlightedCode/index.cjs +1 -1
- package/dist/cjs/code/HighlightedCode/index.native.js +1 -1
- package/dist/cjs/code/HighlightedCode/index.native.js.map +1 -1
- package/dist/cjs/componentColors.cjs +6 -4
- package/dist/cjs/componentColors.native.js +6 -4
- package/dist/cjs/componentColors.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/images/Image/ImageFrame.cjs +4 -2
- package/dist/cjs/images/Image/ImageFrame.native.js +4 -2
- package/dist/cjs/images/Image/ImageFrame.native.js.map +1 -1
- package/dist/cjs/layouts/AsyncBoundary.cjs +1 -2
- package/dist/cjs/layouts/AsyncBoundary.native.js +1 -2
- package/dist/cjs/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/cjs/layouts/EmptyState.cjs +6 -2
- package/dist/cjs/layouts/EmptyState.native.js +10 -6
- package/dist/cjs/layouts/EmptyState.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/attachments.cjs +4 -4
- package/dist/cjs/layouts/attachments.native.js +4 -4
- package/dist/cjs/layouts/attachments.native.js.map +1 -1
- package/dist/cjs/layouts/breadcrumbs.cjs +1 -2
- package/dist/cjs/layouts/breadcrumbs.native.js +1 -2
- package/dist/cjs/layouts/breadcrumbs.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 +50 -9
- package/dist/cjs/layouts/page.native.js +52 -9
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/sidebar.cjs +2 -2
- package/dist/cjs/layouts/sidebar.native.js +2 -2
- package/dist/cjs/layouts/sidebar.native.js.map +1 -1
- package/dist/cjs/layouts/tags.cjs +6 -7
- package/dist/cjs/layouts/tags.native.js +6 -9
- package/dist/cjs/layouts/tags.native.js.map +1 -1
- package/dist/cjs/layouts/timeline.cjs +5 -5
- package/dist/cjs/layouts/timeline.native.js +5 -5
- package/dist/cjs/layouts/timeline.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/surfaces.cjs +1 -0
- package/dist/cjs/surfaces.native.js +1 -0
- package/dist/cjs/surfaces.native.js.map +1 -1
- package/dist/cjs/views/Calendar.cjs +11 -8
- package/dist/cjs/views/Calendar.native.js +11 -8
- package/dist/cjs/views/Calendar.native.js.map +1 -1
- package/dist/cjs/views/Dashboard.cjs +116 -23
- package/dist/cjs/views/Dashboard.native.js +158 -52
- package/dist/cjs/views/Dashboard.native.js.map +1 -1
- package/dist/cjs/views/Gantt.cjs +377 -94
- package/dist/cjs/views/Gantt.native.js +446 -97
- package/dist/cjs/views/Gantt.native.js.map +1 -1
- package/dist/cjs/views/Kanban.cjs +2 -2
- package/dist/cjs/views/Kanban.native.js +2 -2
- package/dist/cjs/views/Kanban.native.js.map +1 -1
- package/dist/cjs/views/ReportBuilder.cjs +4 -4
- package/dist/cjs/views/ReportBuilder.native.js +4 -4
- package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
- package/dist/cjs/views/TreeView.cjs +103 -6
- package/dist/cjs/views/TreeView.native.js +115 -6
- package/dist/cjs/views/TreeView.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/cjs/views/treeViewReveal.cjs +55 -0
- package/dist/cjs/views/treeViewReveal.native.js +80 -0
- package/dist/cjs/views/treeViewReveal.native.js.map +1 -0
- package/dist/esm/Accordion/index.mjs +3 -3
- package/dist/esm/Accordion/index.mjs.map +1 -1
- package/dist/esm/Accordion/index.native.js +4 -4
- package/dist/esm/Accordion/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/Chip/index.mjs +1 -1
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +1 -1
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/ContextMenu/index.mjs +3 -3
- package/dist/esm/ContextMenu/index.mjs.map +1 -1
- package/dist/esm/ContextMenu/index.native.js +3 -3
- package/dist/esm/ContextMenu/index.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 +35 -5
- package/dist/esm/DropdownMenu/index.mjs.map +1 -1
- package/dist/esm/DropdownMenu/index.native.js +35 -5
- package/dist/esm/DropdownMenu/index.native.js.map +1 -1
- package/dist/esm/Meter/index.mjs +15 -7
- package/dist/esm/Meter/index.mjs.map +1 -1
- package/dist/esm/Meter/index.native.js +15 -7
- package/dist/esm/Meter/index.native.js.map +1 -1
- package/dist/esm/Meter/meter.mjs +1 -2
- package/dist/esm/Meter/meter.mjs.map +1 -1
- package/dist/esm/Meter/meter.native.js +1 -2
- package/dist/esm/Meter/meter.native.js.map +1 -1
- package/dist/esm/Pagination.mjs +2 -2
- package/dist/esm/Pagination.mjs.map +1 -1
- package/dist/esm/Pagination.native.js +2 -2
- package/dist/esm/Pagination.native.js.map +1 -1
- package/dist/esm/ProgressSteps/index.mjs +3 -3
- package/dist/esm/ProgressSteps/index.mjs.map +1 -1
- package/dist/esm/ProgressSteps/index.native.js +3 -3
- package/dist/esm/ProgressSteps/index.native.js.map +1 -1
- package/dist/esm/Quote/index.mjs +1 -2
- package/dist/esm/Quote/index.mjs.map +1 -1
- package/dist/esm/Quote/index.native.js +1 -2
- package/dist/esm/Quote/index.native.js.map +1 -1
- package/dist/esm/Tabs/index.mjs +8 -7
- package/dist/esm/Tabs/index.mjs.map +1 -1
- package/dist/esm/Tabs/index.native.js +9 -8
- package/dist/esm/Tabs/index.native.js.map +1 -1
- package/dist/esm/Toast/index.mjs +56 -8
- package/dist/esm/Toast/index.mjs.map +1 -1
- package/dist/esm/Toast/index.native.js +58 -8
- package/dist/esm/Toast/index.native.js.map +1 -1
- package/dist/esm/TreeSelect/index.mjs +46 -7
- package/dist/esm/TreeSelect/index.mjs.map +1 -1
- package/dist/esm/TreeSelect/index.native.js +58 -7
- package/dist/esm/TreeSelect/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 -76
- package/dist/esm/charts/PieChart.mjs.map +1 -1
- package/dist/esm/charts/PieChart.native.js +111 -87
- 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/code/HighlightedCode/index.mjs +1 -1
- package/dist/esm/code/HighlightedCode/index.mjs.map +1 -1
- package/dist/esm/code/HighlightedCode/index.native.js +1 -1
- package/dist/esm/code/HighlightedCode/index.native.js.map +1 -1
- package/dist/esm/componentColors.mjs +6 -4
- package/dist/esm/componentColors.mjs.map +1 -1
- package/dist/esm/componentColors.native.js +6 -4
- package/dist/esm/componentColors.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/images/Image/ImageFrame.mjs +4 -2
- package/dist/esm/images/Image/ImageFrame.mjs.map +1 -1
- package/dist/esm/images/Image/ImageFrame.native.js +4 -2
- package/dist/esm/images/Image/ImageFrame.native.js.map +1 -1
- package/dist/esm/layouts/AsyncBoundary.mjs +1 -2
- package/dist/esm/layouts/AsyncBoundary.mjs.map +1 -1
- package/dist/esm/layouts/AsyncBoundary.native.js +1 -2
- package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/esm/layouts/EmptyState.mjs +7 -3
- package/dist/esm/layouts/EmptyState.mjs.map +1 -1
- package/dist/esm/layouts/EmptyState.native.js +11 -7
- package/dist/esm/layouts/EmptyState.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/attachments.mjs +4 -4
- package/dist/esm/layouts/attachments.mjs.map +1 -1
- package/dist/esm/layouts/attachments.native.js +4 -4
- package/dist/esm/layouts/attachments.native.js.map +1 -1
- package/dist/esm/layouts/breadcrumbs.mjs +1 -2
- package/dist/esm/layouts/breadcrumbs.mjs.map +1 -1
- package/dist/esm/layouts/breadcrumbs.native.js +1 -2
- package/dist/esm/layouts/breadcrumbs.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 +51 -10
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +53 -10
- package/dist/esm/layouts/page.native.js.map +1 -1
- package/dist/esm/layouts/sidebar.mjs +2 -2
- package/dist/esm/layouts/sidebar.mjs.map +1 -1
- package/dist/esm/layouts/sidebar.native.js +2 -2
- package/dist/esm/layouts/sidebar.native.js.map +1 -1
- package/dist/esm/layouts/tags.mjs +6 -7
- package/dist/esm/layouts/tags.mjs.map +1 -1
- package/dist/esm/layouts/tags.native.js +6 -9
- package/dist/esm/layouts/tags.native.js.map +1 -1
- package/dist/esm/layouts/timeline.mjs +5 -5
- package/dist/esm/layouts/timeline.mjs.map +1 -1
- package/dist/esm/layouts/timeline.native.js +5 -5
- package/dist/esm/layouts/timeline.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/surfaces.mjs +1 -0
- package/dist/esm/surfaces.mjs.map +1 -1
- package/dist/esm/surfaces.native.js +1 -0
- package/dist/esm/surfaces.native.js.map +1 -1
- package/dist/esm/views/Calendar.mjs +11 -8
- package/dist/esm/views/Calendar.mjs.map +1 -1
- package/dist/esm/views/Calendar.native.js +11 -8
- package/dist/esm/views/Calendar.native.js.map +1 -1
- package/dist/esm/views/Dashboard.mjs +118 -25
- package/dist/esm/views/Dashboard.mjs.map +1 -1
- package/dist/esm/views/Dashboard.native.js +160 -54
- package/dist/esm/views/Dashboard.native.js.map +1 -1
- package/dist/esm/views/Gantt.mjs +379 -96
- package/dist/esm/views/Gantt.mjs.map +1 -1
- package/dist/esm/views/Gantt.native.js +448 -99
- package/dist/esm/views/Gantt.native.js.map +1 -1
- package/dist/esm/views/Kanban.mjs +2 -2
- package/dist/esm/views/Kanban.mjs.map +1 -1
- package/dist/esm/views/Kanban.native.js +2 -2
- package/dist/esm/views/Kanban.native.js.map +1 -1
- package/dist/esm/views/ReportBuilder.mjs +4 -4
- package/dist/esm/views/ReportBuilder.mjs.map +1 -1
- package/dist/esm/views/ReportBuilder.native.js +4 -4
- package/dist/esm/views/ReportBuilder.native.js.map +1 -1
- package/dist/esm/views/TreeView.mjs +104 -7
- package/dist/esm/views/TreeView.mjs.map +1 -1
- package/dist/esm/views/TreeView.native.js +116 -7
- package/dist/esm/views/TreeView.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/esm/views/treeViewReveal.mjs +29 -0
- package/dist/esm/views/treeViewReveal.mjs.map +1 -0
- package/dist/esm/views/treeViewReveal.native.js +51 -0
- package/dist/esm/views/treeViewReveal.native.js.map +1 -0
- package/dist/jsx/Accordion/index.mjs +3 -3
- package/dist/jsx/Accordion/index.mjs.map +1 -1
- package/dist/jsx/Accordion/index.native.js +4 -4
- package/dist/jsx/Accordion/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/Chip/index.mjs +1 -1
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +1 -1
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/ContextMenu/index.mjs +3 -3
- package/dist/jsx/ContextMenu/index.mjs.map +1 -1
- package/dist/jsx/ContextMenu/index.native.js +3 -3
- package/dist/jsx/ContextMenu/index.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 +35 -5
- package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
- package/dist/jsx/DropdownMenu/index.native.js +34 -4
- package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
- package/dist/jsx/Meter/index.mjs +15 -7
- package/dist/jsx/Meter/index.mjs.map +1 -1
- package/dist/jsx/Meter/index.native.js +15 -7
- package/dist/jsx/Meter/index.native.js.map +1 -1
- package/dist/jsx/Meter/meter.mjs +1 -2
- package/dist/jsx/Meter/meter.mjs.map +1 -1
- package/dist/jsx/Meter/meter.native.js +1 -2
- package/dist/jsx/Meter/meter.native.js.map +1 -1
- package/dist/jsx/Pagination.mjs +2 -2
- package/dist/jsx/Pagination.mjs.map +1 -1
- package/dist/jsx/Pagination.native.js +2 -2
- package/dist/jsx/Pagination.native.js.map +1 -1
- package/dist/jsx/ProgressSteps/index.mjs +3 -3
- package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
- package/dist/jsx/ProgressSteps/index.native.js +3 -3
- package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
- package/dist/jsx/Quote/index.mjs +1 -2
- package/dist/jsx/Quote/index.mjs.map +1 -1
- package/dist/jsx/Quote/index.native.js +1 -2
- package/dist/jsx/Quote/index.native.js.map +1 -1
- package/dist/jsx/Tabs/index.mjs +8 -7
- package/dist/jsx/Tabs/index.mjs.map +1 -1
- package/dist/jsx/Tabs/index.native.js +9 -8
- package/dist/jsx/Tabs/index.native.js.map +1 -1
- package/dist/jsx/Toast/index.mjs +56 -8
- package/dist/jsx/Toast/index.mjs.map +1 -1
- package/dist/jsx/Toast/index.native.js +59 -7
- package/dist/jsx/Toast/index.native.js.map +1 -1
- package/dist/jsx/TreeSelect/index.mjs +46 -7
- package/dist/jsx/TreeSelect/index.mjs.map +1 -1
- package/dist/jsx/TreeSelect/index.native.js +58 -7
- package/dist/jsx/TreeSelect/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 -76
- package/dist/jsx/charts/PieChart.mjs.map +1 -1
- package/dist/jsx/charts/PieChart.native.js +109 -85
- 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/code/HighlightedCode/index.mjs +1 -1
- package/dist/jsx/code/HighlightedCode/index.mjs.map +1 -1
- package/dist/jsx/code/HighlightedCode/index.native.js +1 -1
- package/dist/jsx/code/HighlightedCode/index.native.js.map +1 -1
- package/dist/jsx/componentColors.mjs +6 -4
- package/dist/jsx/componentColors.mjs.map +1 -1
- package/dist/jsx/componentColors.native.js +6 -4
- package/dist/jsx/componentColors.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/images/Image/ImageFrame.mjs +4 -2
- package/dist/jsx/images/Image/ImageFrame.mjs.map +1 -1
- package/dist/jsx/images/Image/ImageFrame.native.js +4 -2
- package/dist/jsx/images/Image/ImageFrame.native.js.map +1 -1
- package/dist/jsx/layouts/AsyncBoundary.mjs +1 -2
- package/dist/jsx/layouts/AsyncBoundary.mjs.map +1 -1
- package/dist/jsx/layouts/AsyncBoundary.native.js +1 -2
- package/dist/jsx/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/jsx/layouts/EmptyState.mjs +7 -3
- package/dist/jsx/layouts/EmptyState.mjs.map +1 -1
- package/dist/jsx/layouts/EmptyState.native.js +10 -6
- package/dist/jsx/layouts/EmptyState.native.js.map +1 -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/attachments.mjs +4 -4
- package/dist/jsx/layouts/attachments.mjs.map +1 -1
- package/dist/jsx/layouts/attachments.native.js +4 -4
- package/dist/jsx/layouts/attachments.native.js.map +1 -1
- package/dist/jsx/layouts/breadcrumbs.mjs +1 -2
- package/dist/jsx/layouts/breadcrumbs.mjs.map +1 -1
- package/dist/jsx/layouts/breadcrumbs.native.js +1 -2
- package/dist/jsx/layouts/breadcrumbs.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 +51 -10
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +52 -9
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/layouts/sidebar.mjs +2 -2
- package/dist/jsx/layouts/sidebar.mjs.map +1 -1
- package/dist/jsx/layouts/sidebar.native.js +2 -2
- package/dist/jsx/layouts/sidebar.native.js.map +1 -1
- package/dist/jsx/layouts/tags.mjs +6 -7
- package/dist/jsx/layouts/tags.mjs.map +1 -1
- package/dist/jsx/layouts/tags.native.js +6 -9
- package/dist/jsx/layouts/tags.native.js.map +1 -1
- package/dist/jsx/layouts/timeline.mjs +5 -5
- package/dist/jsx/layouts/timeline.mjs.map +1 -1
- package/dist/jsx/layouts/timeline.native.js +5 -5
- package/dist/jsx/layouts/timeline.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/surfaces.mjs +1 -0
- package/dist/jsx/surfaces.mjs.map +1 -1
- package/dist/jsx/surfaces.native.js +1 -0
- package/dist/jsx/surfaces.native.js.map +1 -1
- package/dist/jsx/views/Calendar.mjs +11 -8
- package/dist/jsx/views/Calendar.mjs.map +1 -1
- package/dist/jsx/views/Calendar.native.js +11 -8
- package/dist/jsx/views/Calendar.native.js.map +1 -1
- package/dist/jsx/views/Dashboard.mjs +118 -25
- package/dist/jsx/views/Dashboard.mjs.map +1 -1
- package/dist/jsx/views/Dashboard.native.js +158 -52
- package/dist/jsx/views/Dashboard.native.js.map +1 -1
- package/dist/jsx/views/Gantt.mjs +379 -96
- package/dist/jsx/views/Gantt.mjs.map +1 -1
- package/dist/jsx/views/Gantt.native.js +446 -97
- package/dist/jsx/views/Gantt.native.js.map +1 -1
- package/dist/jsx/views/Kanban.mjs +2 -2
- package/dist/jsx/views/Kanban.mjs.map +1 -1
- package/dist/jsx/views/Kanban.native.js +2 -2
- package/dist/jsx/views/Kanban.native.js.map +1 -1
- package/dist/jsx/views/ReportBuilder.mjs +4 -4
- package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
- package/dist/jsx/views/ReportBuilder.native.js +4 -4
- package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
- package/dist/jsx/views/TreeView.mjs +104 -7
- package/dist/jsx/views/TreeView.mjs.map +1 -1
- package/dist/jsx/views/TreeView.native.js +115 -6
- package/dist/jsx/views/TreeView.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/dist/jsx/views/treeViewReveal.mjs +29 -0
- package/dist/jsx/views/treeViewReveal.mjs.map +1 -0
- package/dist/jsx/views/treeViewReveal.native.js +80 -0
- package/dist/jsx/views/treeViewReveal.native.js.map +1 -0
- package/package.json +11 -9
- package/src/Accordion/index.tsx +4 -6
- 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/Chip/index.tsx +1 -1
- package/src/Collapsible.stories.tsx +2 -2
- package/src/ContextMenu/index.tsx +3 -3
- 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 +70 -9
- package/src/LinearGradient.stories.tsx +2 -2
- package/src/Meter/Meter.spec.tsx +71 -6
- package/src/Meter/Meter.stories.tsx +38 -0
- package/src/Meter/index.tsx +12 -6
- package/src/Meter/meter.ts +6 -1
- package/src/Pagination.tsx +2 -2
- package/src/Panel.stories.tsx +1 -1
- package/src/ProgressSteps/index.tsx +3 -3
- package/src/Quote/index.tsx +1 -3
- 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 +21 -15
- package/src/Toast/Toast.spec.tsx +176 -49
- package/src/Toast/index.tsx +73 -6
- package/src/TreeSelect/index.tsx +61 -1
- 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 -10
- 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/code/HighlightedCode/index.tsx +1 -1
- package/src/componentColors.ts +6 -4
- 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/Image/ImageFrame.tsx +2 -2
- package/src/images/SvgUri/index.native.ts +11 -3
- package/src/layouts/AsyncBoundary.tsx +1 -2
- package/src/layouts/EmptyState.spec.tsx +58 -1
- package/src/layouts/EmptyState.stories.tsx +2 -2
- package/src/layouts/EmptyState.tsx +11 -7
- package/src/layouts/KeyboardAvoidingWrapper/KeyboardAvoidingWrapper.stories.tsx +3 -3
- 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 +61 -10
- package/src/layouts/PaneScaffold.tsx +156 -58
- package/src/layouts/SafeAreaWrapper/SafeAreaWrapper.stories.tsx +3 -3
- package/src/layouts/ScreenToolbar.stories.tsx +6 -23
- package/src/layouts/attachments.tsx +4 -4
- package/src/layouts/breadcrumbs.tsx +1 -2
- 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 +48 -11
- package/src/layouts/sidebar.tsx +2 -2
- package/src/layouts/tags-trigger.spec.tsx +32 -0
- package/src/layouts/tags.tsx +6 -9
- package/src/layouts/timeline.tsx +5 -5
- package/src/shared/useKeyboardInset.native.ts +43 -0
- package/src/shared/useKeyboardInset.ts +2 -41
- package/src/surfaces.spec.tsx +97 -3
- package/src/surfaces.tsx +4 -2
- package/src/tamagui.spec.ts +63 -0
- package/src/textAccentSecondary.spec.tsx +187 -0
- package/src/views/Calendar.tsx +9 -8
- package/src/views/Dashboard.stories.tsx +38 -1
- package/src/views/Dashboard.tsx +132 -29
- 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 +567 -99
- package/src/views/Kanban.native.tsx +2 -2
- package/src/views/Kanban.spec.tsx +11 -0
- package/src/views/Kanban.tsx +2 -2
- package/src/views/ReportBuilder.tsx +4 -4
- package/src/views/TreeView.reveal.spec.tsx +167 -0
- package/src/views/TreeView.reveal.stories.tsx +115 -0
- package/src/views/TreeView.scroll.spec.tsx +196 -0
- package/src/views/TreeView.spec.tsx +1 -1
- package/src/views/TreeView.tsx +159 -16
- package/src/views/ganttMath.ts +142 -4
- package/src/views/index.ts +44 -1
- package/src/views/treeViewReveal.spec.ts +83 -0
- package/src/views/treeViewReveal.ts +45 -0
- package/src/views/views.spec.tsx +52 -12
- package/types/Accordion/index.d.ts.map +1 -1
- 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/Meter/meter.d.ts +5 -1
- package/types/Meter/meter.d.ts.map +1 -1
- package/types/Quote/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/TreeSelect/index.d.ts +9 -1
- package/types/TreeSelect/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/componentColors.d.ts +1 -4
- package/types/componentColors.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/Image/ImageFrame.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/AsyncBoundary.d.ts.map +1 -1
- package/types/layouts/EmptyState.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/breadcrumbs.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/layouts/tags.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/surfaces.d.ts.map +1 -1
- package/types/views/Calendar.d.ts.map +1 -1
- package/types/views/Dashboard.d.ts +7 -3
- 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/TreeView.d.ts +10 -1
- package/types/views/TreeView.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
- package/types/views/treeViewReveal.d.ts +11 -0
- package/types/views/treeViewReveal.d.ts.map +1 -0
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
} from "@multiplatform.one/theme";
|
|
9
9
|
import type { ReactNode } from "react";
|
|
10
10
|
import { Paragraph, Text, YStack } from "tamagui";
|
|
11
|
+
import { Text as HouseText } from "../Text";
|
|
11
12
|
import { componentColors } from "../componentColors";
|
|
12
13
|
import {
|
|
13
14
|
FeedLayout,
|
|
@@ -43,11 +44,7 @@ function PaneFill({ label, hint, muted }: { label: string; hint?: string; muted?
|
|
|
43
44
|
gap="$2"
|
|
44
45
|
>
|
|
45
46
|
<Paragraph fontWeight="600">{label}</Paragraph>
|
|
46
|
-
{hint ?
|
|
47
|
-
<Text color={componentColors.text.muted} fontSize="$2">
|
|
48
|
-
{hint}
|
|
49
|
-
</Text>
|
|
50
|
-
) : null}
|
|
47
|
+
{hint ? <HouseText fontSize="$2">{hint}</HouseText> : null}
|
|
51
48
|
</YStack>
|
|
52
49
|
);
|
|
53
50
|
}
|
|
@@ -113,7 +110,7 @@ const meta: Meta<typeof PaneScaffold> = {
|
|
|
113
110
|
docs: {
|
|
114
111
|
description: {
|
|
115
112
|
component:
|
|
116
|
-
|
|
113
|
+
'Adaptive TWO-pane shell (DG-LAY-01/02) — `primary` and `secondary`, no more. Size classes: compact <640, medium ≥640, expanded ≥860 (FloatingPanel), large ≥1024, xl ≥1280. Two panes from expanded up unless `maxPanes` ejects. Side-by-side uses a hairline sash (Linear / VS Code / Polaris Frame); pass `paneGap` to eject to spaced columns. Below expanded the panes stack and the sash goes away, so nothing is hidden on a phone; `narrowLayout="swap"` (what `activePane` opts into) is the list-detail exception. Three regions come from nesting a scaffold inside a pane — see the Nested three-region story; the size class rides down, so the inner scaffold stacks with the outer.',
|
|
117
114
|
},
|
|
118
115
|
},
|
|
119
116
|
},
|
|
@@ -123,12 +120,12 @@ const meta: Meta<typeof PaneScaffold> = {
|
|
|
123
120
|
options: ["compact", "medium", "expanded", "large", "xl"],
|
|
124
121
|
},
|
|
125
122
|
activePane: { control: "radio", options: ["primary", "secondary"] },
|
|
123
|
+
narrowLayout: { control: "radio", options: ["stack", "swap"] },
|
|
126
124
|
maxPanes: { control: "radio", options: [1, 2, undefined] },
|
|
127
125
|
resizable: { control: "boolean" },
|
|
128
126
|
},
|
|
129
127
|
args: {
|
|
130
128
|
sizeClass: "expanded",
|
|
131
|
-
activePane: "primary",
|
|
132
129
|
},
|
|
133
130
|
};
|
|
134
131
|
export default meta;
|
|
@@ -150,7 +147,63 @@ export const TwoPane: Story = {
|
|
|
150
147
|
),
|
|
151
148
|
};
|
|
152
149
|
|
|
150
|
+
export const CompactStacked: Story = {
|
|
151
|
+
name: "Compact (stacked)",
|
|
152
|
+
args: { sizeClass: "compact" },
|
|
153
|
+
parameters: {
|
|
154
|
+
docs: {
|
|
155
|
+
description: {
|
|
156
|
+
story:
|
|
157
|
+
"Below the two-pane budget the secondary sits under the primary and the sash is gone. Reflow, not hide.",
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
render: (args) => (
|
|
162
|
+
<YStack height={400} padding="$4">
|
|
163
|
+
<SplitFrame>
|
|
164
|
+
<PaneScaffold
|
|
165
|
+
{...args}
|
|
166
|
+
primary={<PaneFill label="Primary" />}
|
|
167
|
+
secondary={<PaneFill label="Secondary" muted />}
|
|
168
|
+
/>
|
|
169
|
+
</SplitFrame>
|
|
170
|
+
</YStack>
|
|
171
|
+
),
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
export const NestedThreeRegion: Story = {
|
|
175
|
+
name: "Nested three-region",
|
|
176
|
+
args: { sizeClass: "compact" },
|
|
177
|
+
parameters: {
|
|
178
|
+
docs: {
|
|
179
|
+
description: {
|
|
180
|
+
story:
|
|
181
|
+
"Rail | (centre | inspector): the recipe for three regions. Switch `sizeClass` to `xl` for two seams side by side; on compact all three stack, none is dropped.",
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
render: (args) => (
|
|
186
|
+
<YStack height={520} padding="$4">
|
|
187
|
+
<SplitFrame height={480}>
|
|
188
|
+
<PaneScaffold
|
|
189
|
+
{...args}
|
|
190
|
+
paneFlex={[1, 3]}
|
|
191
|
+
primary={<PaneFill label="Rail" muted />}
|
|
192
|
+
secondary={
|
|
193
|
+
<PaneScaffold
|
|
194
|
+
paneFlex={[2, 1]}
|
|
195
|
+
primary={<PaneFill label="Centre" hint="Main canvas" />}
|
|
196
|
+
secondary={<PaneFill label="Inspector" muted />}
|
|
197
|
+
/>
|
|
198
|
+
}
|
|
199
|
+
/>
|
|
200
|
+
</SplitFrame>
|
|
201
|
+
</YStack>
|
|
202
|
+
),
|
|
203
|
+
};
|
|
204
|
+
|
|
153
205
|
export const CompactActiveSecondary: Story = {
|
|
206
|
+
name: "Compact (swap)",
|
|
154
207
|
args: { sizeClass: "compact", activePane: "secondary" },
|
|
155
208
|
render: (args) => (
|
|
156
209
|
<YStack height={400} padding="$4">
|
|
@@ -218,9 +271,7 @@ export const ProseReadingWidth: StoryObj<typeof ReadingWidth> = {
|
|
|
218
271
|
</Paragraph>
|
|
219
272
|
</ReadingWidth>
|
|
220
273
|
<ReadingWidth measure="none">
|
|
221
|
-
<
|
|
222
|
-
Ejected measure (full width of parent).
|
|
223
|
-
</Paragraph>
|
|
274
|
+
<HouseText>Ejected measure (full width of parent).</HouseText>
|
|
224
275
|
</ReadingWidth>
|
|
225
276
|
</YStack>
|
|
226
277
|
),
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PaneScaffold + canonical layouts (DG-LAY-02) — W11.
|
|
3
3
|
*
|
|
4
|
+
* PaneScaffold is a TWO-pane scaffold: `primary` and `secondary`, no more.
|
|
5
|
+
* Three regions come from NESTING one scaffold inside a pane of another. The
|
|
6
|
+
* resolved size class rides a context down, so an inner scaffold reflows with
|
|
7
|
+
* the outer one instead of splitting inside a stacked column.
|
|
8
|
+
*
|
|
4
9
|
* Devs declare pane roles; the scaffold picks 1 vs 2 columns from the
|
|
5
10
|
* canonical layout size class (`expanded` @ 860 = two-pane budget).
|
|
6
11
|
*
|
|
@@ -13,7 +18,10 @@
|
|
|
13
18
|
* - **Supporting-pane**: secondary is meaningful only relative to primary.
|
|
14
19
|
* - **Feed**: equal-weight cards in a responsive grid.
|
|
15
20
|
*
|
|
16
|
-
*
|
|
21
|
+
* Below the two-pane budget the panes STACK (primary above secondary) and the
|
|
22
|
+
* sash goes away — a drag handle is a pointer affordance and there is nothing
|
|
23
|
+
* to drag with a thumb. Hiding a pane is the list-detail navigation idiom, not
|
|
24
|
+
* the responsive default: pass `activePane` (or `narrowLayout="swap"`) for it.
|
|
17
25
|
*/
|
|
18
26
|
|
|
19
27
|
import {
|
|
@@ -31,7 +39,17 @@ import {
|
|
|
31
39
|
type LayoutSizeClass,
|
|
32
40
|
READING_WIDTH_CH,
|
|
33
41
|
} from "@multiplatform.one/theme";
|
|
34
|
-
import {
|
|
42
|
+
import {
|
|
43
|
+
Children,
|
|
44
|
+
createContext,
|
|
45
|
+
useCallback,
|
|
46
|
+
useContext,
|
|
47
|
+
useEffect,
|
|
48
|
+
useId,
|
|
49
|
+
useRef,
|
|
50
|
+
useState,
|
|
51
|
+
type ReactNode,
|
|
52
|
+
} from "react";
|
|
35
53
|
import type { XStackProps, YStackProps } from "tamagui";
|
|
36
54
|
import { isWeb, XStack, YStack } from "tamagui";
|
|
37
55
|
import { useDirection } from "../hooks/useDirection";
|
|
@@ -51,10 +69,17 @@ export interface PaneScaffoldProps extends Omit<XStackProps, "children"> {
|
|
|
51
69
|
primary: ReactNode;
|
|
52
70
|
secondary?: ReactNode;
|
|
53
71
|
/**
|
|
54
|
-
* Which pane to show when
|
|
55
|
-
* List-detail on compact typically flips to `secondary` once an item is
|
|
72
|
+
* Which pane to show when `narrowLayout` is `swap`. Default: `primary`.
|
|
73
|
+
* List-detail on compact typically flips to `secondary` once an item is
|
|
74
|
+
* selected. Passing this prop opts the scaffold into `swap`.
|
|
56
75
|
*/
|
|
57
76
|
activePane?: PaneRole;
|
|
77
|
+
/**
|
|
78
|
+
* What happens below the two-pane budget. `stack` (the default) puts
|
|
79
|
+
* secondary under primary so no content is unreachable; `swap` renders
|
|
80
|
+
* `activePane` alone, which is the list-detail navigation idiom.
|
|
81
|
+
*/
|
|
82
|
+
narrowLayout?: "stack" | "swap";
|
|
58
83
|
/** Override the default pane budget (compact/medium → 1, expanded+ → 2). */
|
|
59
84
|
maxPanes?: 1 | 2;
|
|
60
85
|
/**
|
|
@@ -82,6 +107,14 @@ export interface PaneScaffoldProps extends Omit<XStackProps, "children"> {
|
|
|
82
107
|
sizeClass?: LayoutSizeClass;
|
|
83
108
|
}
|
|
84
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Resolved size class handed down to nested scaffolds. Without it an inner
|
|
112
|
+
* scaffold reads the WINDOW while the outer one was overridden (Storybook
|
|
113
|
+
* viewport, template test), so a stacked outer could still hold a split
|
|
114
|
+
* inner and the narrow reflow would only go one level deep.
|
|
115
|
+
*/
|
|
116
|
+
const PaneSizeClassContext = createContext<LayoutSizeClass | null>(null);
|
|
117
|
+
|
|
85
118
|
/**
|
|
86
119
|
* Adaptive one-/two-pane shell. Geometry only — surface colors stay stable
|
|
87
120
|
* across breakpoints (Material M-L5).
|
|
@@ -89,7 +122,8 @@ export interface PaneScaffoldProps extends Omit<XStackProps, "children"> {
|
|
|
89
122
|
export function PaneScaffold({
|
|
90
123
|
primary,
|
|
91
124
|
secondary,
|
|
92
|
-
activePane
|
|
125
|
+
activePane: activePaneProp,
|
|
126
|
+
narrowLayout: narrowLayoutProp,
|
|
93
127
|
maxPanes: maxPanesProp,
|
|
94
128
|
paneFlex = [1, 1],
|
|
95
129
|
paneGap,
|
|
@@ -102,23 +136,73 @@ export function PaneScaffold({
|
|
|
102
136
|
...rest
|
|
103
137
|
}: PaneScaffoldProps) {
|
|
104
138
|
const liveClass = useLayoutSizeClass();
|
|
105
|
-
const
|
|
139
|
+
const inheritedClass = useContext(PaneSizeClassContext);
|
|
140
|
+
const sizeClass = sizeClassProp ?? inheritedClass ?? liveClass;
|
|
106
141
|
// Explicit `maxPanes` is the eject hatch (force 1 or 2 regardless of class).
|
|
107
142
|
const budget = maxPanesProp ?? defaultMaxPanes(sizeClass);
|
|
108
143
|
const hasSecondary = secondary !== null && secondary !== undefined;
|
|
109
|
-
const
|
|
144
|
+
const split = budget >= 2 && hasSecondary;
|
|
110
145
|
const gapped = paneGap !== undefined;
|
|
111
146
|
const gap = gapped ? paneGap : undefined;
|
|
112
|
-
const resizable = (resizableProp ?? !gapped) &&
|
|
147
|
+
const resizable = (resizableProp ?? !gapped) && split && !gapped;
|
|
148
|
+
// `activePane` only decides anything when a pane is dropped, so passing it
|
|
149
|
+
// IS the swap opt-in. Everything else stacks: a scaffold that hides its
|
|
150
|
+
// secondary by default leaves that content unreachable on a phone.
|
|
151
|
+
const narrowLayout = narrowLayoutProp ?? (activePaneProp === undefined ? "stack" : "swap");
|
|
152
|
+
const stacked = !split && hasSecondary && narrowLayout === "stack";
|
|
153
|
+
const [primaryFlex, secondaryFlex] = paneFlex;
|
|
113
154
|
|
|
114
155
|
// flexBasis auto, not the flex:1 shorthand's 0%: react-native-web resets
|
|
115
156
|
// min-height to 0, so a 0% basis contributes zero intrinsic height inside
|
|
116
157
|
// auto-height scroll flows (Screen scroll pages) and the scaffold collapses,
|
|
117
158
|
// painting pane content over whatever follows. Bounded parents still fill
|
|
118
159
|
// (grow 1) exactly as before.
|
|
119
|
-
|
|
160
|
+
let content: ReactNode;
|
|
161
|
+
if (stacked) {
|
|
162
|
+
content = (
|
|
163
|
+
<YStack
|
|
164
|
+
flexGrow={1}
|
|
165
|
+
flexShrink={1}
|
|
166
|
+
flexBasis="auto"
|
|
167
|
+
minWidth={0}
|
|
168
|
+
width="100%"
|
|
169
|
+
gap={gap ?? 0}
|
|
170
|
+
data-testid="pane-scaffold"
|
|
171
|
+
data-panes="2"
|
|
172
|
+
data-pane-layout="stack"
|
|
173
|
+
data-size-class={sizeClass}
|
|
174
|
+
data-sash="false"
|
|
175
|
+
{...rest}
|
|
176
|
+
>
|
|
177
|
+
<YStack
|
|
178
|
+
flexGrow={1}
|
|
179
|
+
flexShrink={1}
|
|
180
|
+
flexBasis="auto"
|
|
181
|
+
minWidth={0}
|
|
182
|
+
minHeight={0}
|
|
183
|
+
width="100%"
|
|
184
|
+
{...(gapped ? undefined : paneHairlineBottom)}
|
|
185
|
+
data-testid="pane-primary"
|
|
186
|
+
>
|
|
187
|
+
{primary}
|
|
188
|
+
</YStack>
|
|
189
|
+
<YStack
|
|
190
|
+
flexGrow={1}
|
|
191
|
+
flexShrink={1}
|
|
192
|
+
flexBasis="auto"
|
|
193
|
+
minWidth={0}
|
|
194
|
+
minHeight={0}
|
|
195
|
+
width="100%"
|
|
196
|
+
data-testid="pane-secondary"
|
|
197
|
+
>
|
|
198
|
+
{secondary}
|
|
199
|
+
</YStack>
|
|
200
|
+
</YStack>
|
|
201
|
+
);
|
|
202
|
+
} else if (!split) {
|
|
203
|
+
const activePane = activePaneProp ?? "primary";
|
|
120
204
|
const shown = activePane === "secondary" && hasSecondary ? secondary : primary;
|
|
121
|
-
|
|
205
|
+
content = (
|
|
122
206
|
<YStack
|
|
123
207
|
flexGrow={1}
|
|
124
208
|
flexShrink={1}
|
|
@@ -127,62 +211,64 @@ export function PaneScaffold({
|
|
|
127
211
|
width="100%"
|
|
128
212
|
data-testid="pane-scaffold"
|
|
129
213
|
data-panes="1"
|
|
214
|
+
data-pane-layout="single"
|
|
130
215
|
data-size-class={sizeClass}
|
|
131
216
|
{...rest}
|
|
132
217
|
>
|
|
133
218
|
{shown}
|
|
134
219
|
</YStack>
|
|
135
220
|
);
|
|
221
|
+
} else {
|
|
222
|
+
content = (
|
|
223
|
+
<XStack
|
|
224
|
+
flexGrow={1}
|
|
225
|
+
flexShrink={1}
|
|
226
|
+
flexBasis="auto"
|
|
227
|
+
minWidth={0}
|
|
228
|
+
minHeight={0}
|
|
229
|
+
width="100%"
|
|
230
|
+
alignItems="stretch"
|
|
231
|
+
gap={gap ?? 0}
|
|
232
|
+
position="relative"
|
|
233
|
+
data-testid="pane-scaffold"
|
|
234
|
+
data-panes="2"
|
|
235
|
+
data-pane-layout="split"
|
|
236
|
+
data-size-class={sizeClass}
|
|
237
|
+
data-sash={resizable ? "true" : "false"}
|
|
238
|
+
{...rest}
|
|
239
|
+
>
|
|
240
|
+
{resizable ? (
|
|
241
|
+
<ResizablePanes
|
|
242
|
+
primary={primary}
|
|
243
|
+
secondary={secondary}
|
|
244
|
+
primaryFlex={primaryFlex}
|
|
245
|
+
secondaryFlex={secondaryFlex}
|
|
246
|
+
minFraction={minPaneFraction}
|
|
247
|
+
maxFraction={maxPaneFraction}
|
|
248
|
+
fraction={primaryFractionProp}
|
|
249
|
+
onFractionChange={onPrimaryFractionChange}
|
|
250
|
+
/>
|
|
251
|
+
) : (
|
|
252
|
+
<>
|
|
253
|
+
<YStack
|
|
254
|
+
flex={primaryFlex}
|
|
255
|
+
minWidth={0}
|
|
256
|
+
minHeight={0}
|
|
257
|
+
{...(gapped ? undefined : paneHairlineEnd)}
|
|
258
|
+
data-testid="pane-primary"
|
|
259
|
+
>
|
|
260
|
+
{primary}
|
|
261
|
+
</YStack>
|
|
262
|
+
<YStack flex={secondaryFlex} minWidth={0} minHeight={0} data-testid="pane-secondary">
|
|
263
|
+
{secondary}
|
|
264
|
+
</YStack>
|
|
265
|
+
</>
|
|
266
|
+
)}
|
|
267
|
+
</XStack>
|
|
268
|
+
);
|
|
136
269
|
}
|
|
137
270
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return (
|
|
141
|
-
<XStack
|
|
142
|
-
flexGrow={1}
|
|
143
|
-
flexShrink={1}
|
|
144
|
-
flexBasis="auto"
|
|
145
|
-
minWidth={0}
|
|
146
|
-
minHeight={0}
|
|
147
|
-
width="100%"
|
|
148
|
-
alignItems="stretch"
|
|
149
|
-
gap={gap ?? 0}
|
|
150
|
-
position="relative"
|
|
151
|
-
data-testid="pane-scaffold"
|
|
152
|
-
data-panes="2"
|
|
153
|
-
data-size-class={sizeClass}
|
|
154
|
-
data-sash={resizable ? "true" : "false"}
|
|
155
|
-
{...rest}
|
|
156
|
-
>
|
|
157
|
-
{resizable ? (
|
|
158
|
-
<ResizablePanes
|
|
159
|
-
primary={primary}
|
|
160
|
-
secondary={secondary}
|
|
161
|
-
primaryFlex={primaryFlex}
|
|
162
|
-
secondaryFlex={secondaryFlex}
|
|
163
|
-
minFraction={minPaneFraction}
|
|
164
|
-
maxFraction={maxPaneFraction}
|
|
165
|
-
fraction={primaryFractionProp}
|
|
166
|
-
onFractionChange={onPrimaryFractionChange}
|
|
167
|
-
/>
|
|
168
|
-
) : (
|
|
169
|
-
<>
|
|
170
|
-
<YStack
|
|
171
|
-
flex={primaryFlex}
|
|
172
|
-
minWidth={0}
|
|
173
|
-
minHeight={0}
|
|
174
|
-
{...(gapped ? undefined : paneHairlineEnd)}
|
|
175
|
-
data-testid="pane-primary"
|
|
176
|
-
>
|
|
177
|
-
{primary}
|
|
178
|
-
</YStack>
|
|
179
|
-
<YStack flex={secondaryFlex} minWidth={0} minHeight={0} data-testid="pane-secondary">
|
|
180
|
-
{secondary}
|
|
181
|
-
</YStack>
|
|
182
|
-
</>
|
|
183
|
-
)}
|
|
184
|
-
</XStack>
|
|
185
|
-
);
|
|
271
|
+
return <PaneSizeClassContext.Provider value={sizeClass}>{content}</PaneSizeClassContext.Provider>;
|
|
186
272
|
}
|
|
187
273
|
|
|
188
274
|
const paneHairlineEnd = isWeb
|
|
@@ -194,6 +280,9 @@ const paneHairlineEnd = isWeb
|
|
|
194
280
|
}
|
|
195
281
|
: { borderEndWidth: hairlineWidth, borderColor: "$borderColor" };
|
|
196
282
|
|
|
283
|
+
/** Stacked seam: the horizontal twin of `paneHairlineEnd`. */
|
|
284
|
+
const paneHairlineBottom = { ...hairline.bottom, borderColor: "$borderColor" };
|
|
285
|
+
|
|
197
286
|
function clampFraction(value: number, min: number, max: number): number {
|
|
198
287
|
return Math.min(max, Math.max(min, value));
|
|
199
288
|
}
|
|
@@ -458,12 +547,17 @@ export interface ListDetailLayoutProps extends Omit<
|
|
|
458
547
|
* Canonical list-detail: explorative list + item detail. Detail remains
|
|
459
548
|
* meaningful without the list (Material M-L4). List is the narrower pane
|
|
460
549
|
* (Linear issue view / VS Code explorer), not a 50/50 split.
|
|
550
|
+
*
|
|
551
|
+
* Below the two-pane budget this SWAPS rather than stacks — list and detail
|
|
552
|
+
* are two steps of one navigation, so `selected` decides which is on screen.
|
|
553
|
+
* Pass `narrowLayout="stack"` to show both instead.
|
|
461
554
|
*/
|
|
462
555
|
export function ListDetailLayout({
|
|
463
556
|
list,
|
|
464
557
|
detail,
|
|
465
558
|
selected = false,
|
|
466
559
|
activePane,
|
|
560
|
+
narrowLayout,
|
|
467
561
|
...rest
|
|
468
562
|
}: ListDetailLayoutProps) {
|
|
469
563
|
return (
|
|
@@ -472,6 +566,7 @@ export function ListDetailLayout({
|
|
|
472
566
|
secondary={detail}
|
|
473
567
|
paneFlex={[1, 2]}
|
|
474
568
|
activePane={activePane ?? (selected ? "secondary" : "primary")}
|
|
569
|
+
narrowLayout={narrowLayout ?? "swap"}
|
|
475
570
|
data-canonical="list-detail"
|
|
476
571
|
{...rest}
|
|
477
572
|
/>
|
|
@@ -493,6 +588,9 @@ export interface SupportingPaneLayoutProps extends Omit<
|
|
|
493
588
|
* Canonical supporting-pane: primary content + contextual support (~⅔ / ⅓).
|
|
494
589
|
* Supporting content is only meaningful relative to primary (Material M-L4).
|
|
495
590
|
* Seam is a hairline (Polaris Frame navigation / Linear properties column).
|
|
591
|
+
*
|
|
592
|
+
* Below the two-pane budget the supporting content stacks under the primary.
|
|
593
|
+
* It is never dropped: it has no screen of its own to be reached from.
|
|
496
594
|
*/
|
|
497
595
|
export function SupportingPaneLayout({ children, supporting, ...rest }: SupportingPaneLayoutProps) {
|
|
498
596
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
2
2
|
import { Paragraph, YStack } from "tamagui";
|
|
3
|
-
import {
|
|
3
|
+
import { Text } from "../../Text";
|
|
4
4
|
import { SafeAreaWrapper } from "./index";
|
|
5
5
|
|
|
6
6
|
const meta: Meta<typeof SafeAreaWrapper> = {
|
|
@@ -26,10 +26,10 @@ export const Default: Story = {
|
|
|
26
26
|
<SafeAreaWrapper>
|
|
27
27
|
<YStack>
|
|
28
28
|
<Paragraph>Content inside SafeAreaWrapper</Paragraph>
|
|
29
|
-
<
|
|
29
|
+
<Text>
|
|
30
30
|
On native, this respects device safe area insets. On web, it is a simple passthrough
|
|
31
31
|
wrapper.
|
|
32
|
-
</
|
|
32
|
+
</Text>
|
|
33
33
|
</YStack>
|
|
34
34
|
</SafeAreaWrapper>
|
|
35
35
|
),
|
|
@@ -26,16 +26,10 @@ export const Default: Story = {
|
|
|
26
26
|
name: "Main",
|
|
27
27
|
render: () => (
|
|
28
28
|
<ScreenToolbar
|
|
29
|
-
leading={
|
|
30
|
-
<Button compact variant="outlined">
|
|
31
|
-
Back
|
|
32
|
-
</Button>
|
|
33
|
-
}
|
|
29
|
+
leading={<Button compact>Back</Button>}
|
|
34
30
|
trailing={
|
|
35
31
|
<>
|
|
36
|
-
<Button compact
|
|
37
|
-
Cancel
|
|
38
|
-
</Button>
|
|
32
|
+
<Button compact>Cancel</Button>
|
|
39
33
|
<Button compact>Save</Button>
|
|
40
34
|
</>
|
|
41
35
|
}
|
|
@@ -59,7 +53,6 @@ export const DisabledAndLoading: Story = {
|
|
|
59
53
|
// the toolbar row's shared control height.
|
|
60
54
|
<Button
|
|
61
55
|
compact
|
|
62
|
-
variant="outlined"
|
|
63
56
|
disabled
|
|
64
57
|
disabledReason="No screen to go back to"
|
|
65
58
|
disabledReasonPlacement="inline"
|
|
@@ -82,22 +75,12 @@ export const ManyActionsNarrow: Story = {
|
|
|
82
75
|
render: () => (
|
|
83
76
|
<YStack maxWidth={320} borderWidth={1} borderColor="$color6" borderStyle="dashed">
|
|
84
77
|
<ScreenToolbar
|
|
85
|
-
leading={
|
|
86
|
-
<Button compact variant="outlined">
|
|
87
|
-
Back to the previous screen
|
|
88
|
-
</Button>
|
|
89
|
-
}
|
|
78
|
+
leading={<Button compact>Back to the previous screen</Button>}
|
|
90
79
|
trailing={
|
|
91
80
|
<>
|
|
92
|
-
<Button compact
|
|
93
|
-
|
|
94
|
-
</Button>
|
|
95
|
-
<Button compact variant="outlined">
|
|
96
|
-
Archive
|
|
97
|
-
</Button>
|
|
98
|
-
<Button compact variant="outlined">
|
|
99
|
-
Delete permanently
|
|
100
|
-
</Button>
|
|
81
|
+
<Button compact>Duplicate</Button>
|
|
82
|
+
<Button compact>Archive</Button>
|
|
83
|
+
<Button compact>Delete permanently</Button>
|
|
101
84
|
<Button compact>Save changes</Button>
|
|
102
85
|
</>
|
|
103
86
|
}
|
|
@@ -454,7 +454,7 @@ function AttachmentRow({
|
|
|
454
454
|
{attachment.fileName}
|
|
455
455
|
</Text>
|
|
456
456
|
<XStack gap="$2" alignItems="center">
|
|
457
|
-
<Text fontSize="$2" color={
|
|
457
|
+
<Text fontSize="$2" color={knobProps.textAccentColor}>
|
|
458
458
|
{attachment.formattedSize || formatFileSize(attachment.fileSize)}
|
|
459
459
|
</Text>
|
|
460
460
|
{ext ? (
|
|
@@ -627,7 +627,7 @@ export function Attachments({
|
|
|
627
627
|
{...dropHandlers}
|
|
628
628
|
>
|
|
629
629
|
<PaperclipIcon size={compact ? 20 : 28} />
|
|
630
|
-
<Text color={
|
|
630
|
+
<Text color={knobProps.textAccentColor} fontSize={compact ? "$2" : "$3"} marginTop="$2">
|
|
631
631
|
{noAttachmentsLabel}
|
|
632
632
|
</Text>
|
|
633
633
|
</YStack>
|
|
@@ -657,7 +657,7 @@ export function Attachments({
|
|
|
657
657
|
{label}
|
|
658
658
|
{/* Count hides on error so the badge can't lie (DG-ST-04) */}
|
|
659
659
|
{maxAttachments > 0 && !hasError && (
|
|
660
|
-
<Text color={
|
|
660
|
+
<Text color={knobProps.textAccentColor} fontSize="$2">
|
|
661
661
|
{" "}
|
|
662
662
|
({items.length}/{maxAttachments})
|
|
663
663
|
</Text>
|
|
@@ -766,7 +766,7 @@ export function Attachments({
|
|
|
766
766
|
) : previewFile ? (
|
|
767
767
|
<YStack alignItems="center" {...knobProps.gap} paddingVertical="$4">
|
|
768
768
|
{getFileIcon(previewFile, 40)}
|
|
769
|
-
<Text color={
|
|
769
|
+
<Text color={knobProps.textAccentColor} textAlign="center">
|
|
770
770
|
{previewUnavailableLabel}
|
|
771
771
|
</Text>
|
|
772
772
|
</YStack>
|
|
@@ -23,7 +23,6 @@ import {
|
|
|
23
23
|
import React, { useMemo, useState } from "react";
|
|
24
24
|
import { useTranslation } from "react-i18next";
|
|
25
25
|
import { Anchor, Text, XStack, isWeb } from "tamagui";
|
|
26
|
-
import { componentColors } from "../componentColors";
|
|
27
26
|
import { withInterp } from "../shared/t";
|
|
28
27
|
|
|
29
28
|
/** Approx medium body line box before press-target padding (DG-LAY-04). */
|
|
@@ -240,7 +239,7 @@ export function Breadcrumbs({ items, onNavigate, label, maxVisible }: Breadcrumb
|
|
|
240
239
|
) : (
|
|
241
240
|
<Text
|
|
242
241
|
{...knobProps.body}
|
|
243
|
-
color={
|
|
242
|
+
color={knobProps.textAccentColor}
|
|
244
243
|
fontSize={textSize}
|
|
245
244
|
fontWeight="400"
|
|
246
245
|
{...(slot.isCurrent ? { "aria-current": "page" as const } : null)}
|
package/src/layouts/index.tsx
CHANGED
|
@@ -12,6 +12,17 @@ export * from "./page";
|
|
|
12
12
|
export * from "./pageHeadingScope";
|
|
13
13
|
export * from "./PageTemplates";
|
|
14
14
|
export * from "./PaneScaffold";
|
|
15
|
+
// EmptyState is NAMED here rather than left to reach the barrel through
|
|
16
|
+
// `export * from "./page"` (page.tsx re-exports it, so it has always been
|
|
17
|
+
// importable from @multiplatform.one/components — MPO-223's "not exported"
|
|
18
|
+
// premise was wrong, measured against published 7.7.1). Naming it is still
|
|
19
|
+
// worth doing: reachability that rides a transitive star through an unrelated
|
|
20
|
+
// module is the fragility that dropped ProgressCard twice (MPO-53, 5c7af7134),
|
|
21
|
+
// and it reads as absent to anyone grepping this file, which is how a consumer
|
|
22
|
+
// talked itself into a deep `src/layouts/EmptyState` import. `layouts.spec.tsx`
|
|
23
|
+
// asserts every module in this directory is reachable from here, so the next
|
|
24
|
+
// omission fails a test.
|
|
25
|
+
export { EmptyState, type EmptyStateProps } from "./EmptyState";
|
|
15
26
|
export {
|
|
16
27
|
AsyncBoundary,
|
|
17
28
|
AsyncSkeleton,
|
|
@@ -13,6 +13,7 @@ import * as React from "react";
|
|
|
13
13
|
import { TamaguiProvider, createTamagui } from "tamagui";
|
|
14
14
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
15
15
|
import * as Debug from "./Debug";
|
|
16
|
+
import * as EmptyStateModule from "./EmptyState";
|
|
16
17
|
import * as Layouts from "./index";
|
|
17
18
|
import { Sidebar, type SidebarSection } from "./sidebar";
|
|
18
19
|
import { Toolbar, type ToolbarAction } from "./toolbar";
|
|
@@ -72,6 +73,56 @@ describe("Layouts Index", () => {
|
|
|
72
73
|
it("should export Timeline", () => {
|
|
73
74
|
expect(Layouts).toHaveProperty("Timeline");
|
|
74
75
|
});
|
|
76
|
+
|
|
77
|
+
// MPO-223. The per-component `it`s above are a hand-kept list, and a hand-kept
|
|
78
|
+
// list is how ProgressCard fell off the catalog twice (MPO-53, then 5c7af7134):
|
|
79
|
+
// nobody adds a line for the module they forgot. This walks the directory
|
|
80
|
+
// instead, so a new module in src/layouts that nothing re-exports fails here
|
|
81
|
+
// rather than in a consumer's app.
|
|
82
|
+
//
|
|
83
|
+
// Scope is this directory's own modules: the top-level files, plus each
|
|
84
|
+
// subdirectory's index. A subdirectory's internals stay internal on purpose
|
|
85
|
+
// (SafeAreaWrapper/insets, KeyboardAvoidingWrapper/behavior), and `.native`
|
|
86
|
+
// variants are the same module on a platform this runner is not.
|
|
87
|
+
//
|
|
88
|
+
// Runtime names only — `import * as` cannot see type-only exports, so the
|
|
89
|
+
// interfaces ride the typecheck. That is enough for the failure this guards:
|
|
90
|
+
// a missing VALUE is what breaks a build.
|
|
91
|
+
it("reaches every module under src/layouts from the barrel", () => {
|
|
92
|
+
// Negations live in the GLOB, not in a filter below it: `eager: true`
|
|
93
|
+
// imports every match up front, so a `.stories.tsx` skipped afterwards has
|
|
94
|
+
// already been loaded — and loading one drags the storybook runtime into a
|
|
95
|
+
// vitest environment that has no preview API (measured: "does not provide
|
|
96
|
+
// an export named 'definePreview'", whole suite fails to collect).
|
|
97
|
+
const modules = import.meta.glob<Record<string, unknown>>(
|
|
98
|
+
[
|
|
99
|
+
"./*.tsx",
|
|
100
|
+
"./*/index.tsx",
|
|
101
|
+
"!./index.tsx",
|
|
102
|
+
"!./*.spec.tsx",
|
|
103
|
+
"!./*.stories.tsx",
|
|
104
|
+
"!./**/*.spec.tsx",
|
|
105
|
+
"!./**/*.stories.tsx",
|
|
106
|
+
],
|
|
107
|
+
{ eager: true },
|
|
108
|
+
);
|
|
109
|
+
const unreachable: string[] = [];
|
|
110
|
+
for (const [file, mod] of Object.entries(modules)) {
|
|
111
|
+
for (const name of Object.keys(mod)) {
|
|
112
|
+
if (name === "default") continue;
|
|
113
|
+
if (!(name in Layouts)) unreachable.push(`${file} -> ${name}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
expect(unreachable).toEqual([]);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// The import a consumer actually writes. It passed before EmptyState was
|
|
120
|
+
// named in index.tsx too — page.tsx re-exported it — and this locks the
|
|
121
|
+
// identity, not just the presence, so a future shadow cannot quietly swap it.
|
|
122
|
+
it("exports the same EmptyState from the barrel and from its module", () => {
|
|
123
|
+
expect(Layouts).toHaveProperty("EmptyState");
|
|
124
|
+
expect(Layouts.EmptyState).toBe(EmptyStateModule.EmptyState);
|
|
125
|
+
});
|
|
75
126
|
});
|
|
76
127
|
|
|
77
128
|
// ---------------------------------------------------------------------------
|
|
@@ -135,4 +135,29 @@ describe("density unpinned (LC-76)", () => {
|
|
|
135
135
|
const frame = container.querySelector('[data-testid="page-section"]') as HTMLElement;
|
|
136
136
|
expect(frame.getAttribute("data-density")).toBe("compact");
|
|
137
137
|
});
|
|
138
|
+
|
|
139
|
+
it("Screen's explicit density override reaches nested page primitives", () => {
|
|
140
|
+
renderWithProviders(
|
|
141
|
+
<Preset overrides={{ density: "comfortable" }}>
|
|
142
|
+
<Screen compact scroll={false}>
|
|
143
|
+
<PageHeader title="Compact screen" />
|
|
144
|
+
<PageSection title="Inherited section" />
|
|
145
|
+
</Screen>
|
|
146
|
+
</Preset>,
|
|
147
|
+
);
|
|
148
|
+
expect(screen.getByTestId("page-header").getAttribute("data-density")).toBe("compact");
|
|
149
|
+
expect(screen.getByTestId("page-section").getAttribute("data-density")).toBe("compact");
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
it("a painted section steps its interior density without shrinking its heading", () => {
|
|
153
|
+
renderWithProviders(
|
|
154
|
+
<Preset overrides={{ density: "comfortable" }}>
|
|
155
|
+
<PageSection surface title="Outer" data-testid="outer-section">
|
|
156
|
+
<PageSection title="Inner" data-testid="inner-section" />
|
|
157
|
+
</PageSection>
|
|
158
|
+
</Preset>,
|
|
159
|
+
);
|
|
160
|
+
expect(screen.getByTestId("outer-section").getAttribute("data-density")).toBe("comfortable");
|
|
161
|
+
expect(screen.getByTestId("inner-section").getAttribute("data-density")).toBe("compact");
|
|
162
|
+
});
|
|
138
163
|
});
|