@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
package/src/feedback/notify.ts
CHANGED
package/src/feedback/route.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface NotifyAction {
|
|
|
20
20
|
export interface NotifyEvent {
|
|
21
21
|
severity: NotifySeverity;
|
|
22
22
|
scope: NotifyScope;
|
|
23
|
+
/** Target one inline region instead of broadcasting to every region of the scope. */
|
|
24
|
+
region?: string;
|
|
23
25
|
/** Escalate to a blocking dialog (error/warning only). Ignored for info/success. */
|
|
24
26
|
blocking?: boolean;
|
|
25
27
|
action?: NotifyAction;
|
|
@@ -40,6 +42,7 @@ export interface NotifyRoute {
|
|
|
40
42
|
surface: NotifySurface;
|
|
41
43
|
severity: NotifySeverity;
|
|
42
44
|
scope: NotifyScope;
|
|
45
|
+
region?: string;
|
|
43
46
|
/** Toast intent (info → accent). Banner/alert/dialog use `severity` as Alert intent. */
|
|
44
47
|
toastIntent: NotifyToastIntent;
|
|
45
48
|
title?: string;
|
|
@@ -81,6 +84,7 @@ export function routeNotify(event: NotifyEvent): NotifyRoute {
|
|
|
81
84
|
const base = {
|
|
82
85
|
severity,
|
|
83
86
|
scope,
|
|
87
|
+
...(event.region != null ? { region: event.region } : {}),
|
|
84
88
|
toastIntent,
|
|
85
89
|
title,
|
|
86
90
|
body,
|
package/src/feedback/store.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface FeedbackEntry {
|
|
|
10
10
|
surface: Exclude<NotifySurface, "toast">;
|
|
11
11
|
severity: NotifySeverity;
|
|
12
12
|
scope: NotifyScope;
|
|
13
|
+
region?: string;
|
|
13
14
|
title?: string;
|
|
14
15
|
body: string;
|
|
15
16
|
action?: NotifyAction;
|
|
@@ -64,6 +65,12 @@ export function dismissFeedbackBySurface(surface: FeedbackEntry["surface"]): voi
|
|
|
64
65
|
if (entries.length !== before) emit();
|
|
65
66
|
}
|
|
66
67
|
|
|
68
|
+
export function dismissFeedbackByRegion(region: string): void {
|
|
69
|
+
const before = entries.length;
|
|
70
|
+
entries = entries.filter((entry) => entry.region !== region);
|
|
71
|
+
if (entries.length !== before) emit();
|
|
72
|
+
}
|
|
73
|
+
|
|
67
74
|
/** Hard-reset (tests / story decorators). */
|
|
68
75
|
export function resetFeedback(): void {
|
|
69
76
|
entries = [];
|
package/src/icons/lucide.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Thin re-export so apps/packages/features never import @tamagui/lucide-icons-2. */
|
|
2
|
-
export { Eye, EyeOff, Github, Info, Mail } from "@tamagui/lucide-icons-2";
|
|
2
|
+
export { Eye, EyeOff, Github, Info, Mail, Pencil } from "@tamagui/lucide-icons-2";
|
|
3
3
|
// Aliased: bare `Menu` is the lucide hamburger. Tamagui Menu / create-menu
|
|
4
4
|
// are unused leftovers and are not house barrel names (R9 G7). Package
|
|
5
5
|
// root re-exports this as `Menu` after the curated tamagui surface.
|
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
type GroupPosition,
|
|
12
12
|
} from "@multiplatform.one/theme";
|
|
13
13
|
import { Image as TamaguiImage, View, isWeb } from "tamagui";
|
|
14
|
-
import { componentColors } from "../../componentColors";
|
|
15
14
|
import { Skeleton } from "../../Skeleton";
|
|
16
15
|
import { isThumbnailSize, thumbnailPx as resolveThumbnailPx } from "./shared";
|
|
17
16
|
import type { ImagePlaceholder, ImageProps } from "./types";
|
|
@@ -51,6 +50,7 @@ function glyphSize(px: number): number {
|
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
function DefaultFallback({ px }: { px: number }) {
|
|
53
|
+
const { knobProps } = useResolvedKnobs();
|
|
54
54
|
return (
|
|
55
55
|
<View
|
|
56
56
|
data-image-fallback=""
|
|
@@ -61,7 +61,7 @@ function DefaultFallback({ px }: { px: number }) {
|
|
|
61
61
|
justifyContent="center"
|
|
62
62
|
backgroundColor="$color3"
|
|
63
63
|
>
|
|
64
|
-
<ImageIcon size={glyphSize(px)} color={
|
|
64
|
+
<ImageIcon size={glyphSize(px)} color={knobProps.textAccentColor} />
|
|
65
65
|
</View>
|
|
66
66
|
);
|
|
67
67
|
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { SvgUri as RNSvgUri } from "react-native-svg";
|
|
2
|
-
import { styled } from "tamagui";
|
|
1
|
+
import { SvgUri as RNSvgUri, type UriProps } from "react-native-svg";
|
|
2
|
+
import { styled, type TamaguiComponent } from "tamagui";
|
|
3
|
+
import type { StackStyleBase, TamaDefer, TamaguiComponentPropsBaseBase } from "@tamagui/core";
|
|
3
4
|
|
|
4
|
-
export const SvgUri
|
|
5
|
+
export const SvgUri: TamaguiComponent<
|
|
6
|
+
TamaDefer,
|
|
7
|
+
unknown,
|
|
8
|
+
TamaguiComponentPropsBaseBase & UriProps,
|
|
9
|
+
StackStyleBase,
|
|
10
|
+
{},
|
|
11
|
+
{}
|
|
12
|
+
> = styled(RNSvgUri, { name: "SvgUri", uri: null, color: "$color" });
|
|
5
13
|
|
|
6
14
|
export type SvgUriProps = React.ComponentProps<typeof SvgUri>;
|
|
@@ -18,7 +18,6 @@ import { createContext, useContext, useEffect, useRef, type ReactNode } from "re
|
|
|
18
18
|
import { useTranslation } from "../shared/i18n";
|
|
19
19
|
import { XStack, YStack, type YStackProps } from "tamagui";
|
|
20
20
|
import { Alert } from "../Alert";
|
|
21
|
-
import { componentColors } from "../componentColors";
|
|
22
21
|
import { Skeleton } from "../Skeleton";
|
|
23
22
|
import { Text } from "../Text";
|
|
24
23
|
import { EmptyState } from "./page";
|
|
@@ -320,7 +319,7 @@ function AsyncPendingBar() {
|
|
|
320
319
|
{...knobProps.gap}
|
|
321
320
|
>
|
|
322
321
|
<Spinner size="small" aria-hidden />
|
|
323
|
-
<Text {...knobProps.label} color={
|
|
322
|
+
<Text {...knobProps.label} color={knobProps.textAccentColor}>
|
|
324
323
|
{t("Updating...")}
|
|
325
324
|
</Text>
|
|
326
325
|
</XStack>
|
|
@@ -1,6 +1,20 @@
|
|
|
1
|
+
import { cleanup, screen } from "@testing-library/react";
|
|
1
2
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
2
|
-
import {
|
|
3
|
+
import { Preset } from "@multiplatform.one/theme";
|
|
4
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
3
5
|
import { EmptyState } from "./EmptyState";
|
|
6
|
+
import { KPICard } from "../views/Dashboard";
|
|
7
|
+
|
|
8
|
+
afterEach(cleanup);
|
|
9
|
+
|
|
10
|
+
const RADIUS_STOPS = ["none", "small", "medium", "large", "full"] as const;
|
|
11
|
+
|
|
12
|
+
function radiusAtoms(el: Element): string[] {
|
|
13
|
+
return String(el.className || "")
|
|
14
|
+
.split(" ")
|
|
15
|
+
.filter((c) => /^_(btlr|btrr|bbrr|bblr)-/.test(c))
|
|
16
|
+
.sort();
|
|
17
|
+
}
|
|
4
18
|
|
|
5
19
|
describe("EmptyState", () => {
|
|
6
20
|
it("does not pin compact, so the density knob restyles the frame", () => {
|
|
@@ -28,3 +42,46 @@ describe("EmptyState", () => {
|
|
|
28
42
|
expect(container.textContent).toContain("Records you add will show up here.");
|
|
29
43
|
});
|
|
30
44
|
});
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* RULINGS-2026-08-28 R2e (MPO-106 D4): an icon well rides the radius scale
|
|
48
|
+
* (DEFAULT); R-PILL is reserved for a well that IS a count badge. EmptyState
|
|
49
|
+
* declared R-PILL and painted 1000, so its well stayed a circle at every
|
|
50
|
+
* stop while KPICard's well — the dialect the ruling picked — rode the scale.
|
|
51
|
+
*/
|
|
52
|
+
describe("EmptyState icon well radius (R2e)", () => {
|
|
53
|
+
it.each(RADIUS_STOPS)("at radius %s the well matches KPICard's well", (borderRadius) => {
|
|
54
|
+
renderWithProviders(
|
|
55
|
+
<Preset overrides={{ borderRadius }}>
|
|
56
|
+
<>
|
|
57
|
+
<EmptyState title="Nothing here" icon={<span data-testid="empty-icon">i</span>} />
|
|
58
|
+
<KPICard
|
|
59
|
+
config={{ id: "k", title: "K", value: 1, icon: <span data-testid="kpi-icon">i</span> }}
|
|
60
|
+
/>
|
|
61
|
+
</>
|
|
62
|
+
</Preset>,
|
|
63
|
+
);
|
|
64
|
+
const emptyWell = screen.getByTestId("empty-icon").parentElement as HTMLElement;
|
|
65
|
+
const kpiWell = screen.getByTestId("kpi-icon").parentElement as HTMLElement;
|
|
66
|
+
expect(radiusAtoms(emptyWell)).not.toHaveLength(0);
|
|
67
|
+
expect(radiusAtoms(emptyWell)).toEqual(radiusAtoms(kpiWell));
|
|
68
|
+
// A knob-immunity declaration is what licensed the circle; the well is
|
|
69
|
+
// not immune, so it must carry none.
|
|
70
|
+
expect(emptyWell.getAttribute("data-radius-class")).toBeNull();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it("squares at radius none rather than staying a circle", () => {
|
|
74
|
+
renderWithProviders(
|
|
75
|
+
<Preset overrides={{ borderRadius: "none" }}>
|
|
76
|
+
<EmptyState title="Nothing here" icon={<span data-testid="empty-icon">i</span>} />
|
|
77
|
+
</Preset>,
|
|
78
|
+
);
|
|
79
|
+
const well = screen.getByTestId("empty-icon").parentElement as HTMLElement;
|
|
80
|
+
expect(radiusAtoms(well)).toEqual([
|
|
81
|
+
"_bblr-t-radius-0",
|
|
82
|
+
"_bbrr-t-radius-0",
|
|
83
|
+
"_btlr-t-radius-0",
|
|
84
|
+
"_btrr-t-radius-0",
|
|
85
|
+
]);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -77,7 +77,7 @@ export const MultipleActions: Story = {
|
|
|
77
77
|
action={
|
|
78
78
|
<>
|
|
79
79
|
<Button>Create record</Button>
|
|
80
|
-
<Button
|
|
80
|
+
<Button>Learn more</Button>
|
|
81
81
|
</>
|
|
82
82
|
}
|
|
83
83
|
/>
|
|
@@ -132,7 +132,7 @@ export const NoResults: Story = {
|
|
|
132
132
|
<EmptyState
|
|
133
133
|
{...args}
|
|
134
134
|
icon={<MagnifyingGlassIcon size={40} />}
|
|
135
|
-
action={<Button
|
|
135
|
+
action={<Button>Clear filters</Button>}
|
|
136
136
|
/>
|
|
137
137
|
</PageCanvas>
|
|
138
138
|
),
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import {
|
|
11
11
|
Intent,
|
|
12
|
-
radiusClassProps,
|
|
13
12
|
readingWidthStyle,
|
|
14
13
|
useResolvedKnobs,
|
|
15
14
|
warnBannedErrorWords,
|
|
@@ -69,18 +68,23 @@ export function EmptyState({
|
|
|
69
68
|
warnBannedErrorWords(description, { component: "EmptyState" });
|
|
70
69
|
}
|
|
71
70
|
|
|
71
|
+
const {
|
|
72
|
+
borderColor: _wellEdgeColor,
|
|
73
|
+
borderWidth: _wellEdgeWidth,
|
|
74
|
+
...wellRadius
|
|
75
|
+
} = knobProps.borderRadius;
|
|
76
|
+
|
|
72
77
|
const well = icon ? (
|
|
73
78
|
<YStack
|
|
74
79
|
alignItems="center"
|
|
75
80
|
justifyContent="center"
|
|
76
81
|
backgroundColor={componentColors.interactive.background}
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
// the
|
|
80
|
-
//
|
|
81
|
-
{...
|
|
82
|
+
// R2e: an icon well rides the radius scale (DEFAULT), the same
|
|
83
|
+
// resolution KPICard's well takes. Only the radius half of the
|
|
84
|
+
// fragment applies — the well paints no edge. Its inset still scales
|
|
85
|
+
// with the size knob (spec: empty icon well consumes sizeToken).
|
|
86
|
+
{...wellRadius}
|
|
82
87
|
padding={knobProps.sizeToken as any}
|
|
83
|
-
borderRadius={1000}
|
|
84
88
|
aria-hidden
|
|
85
89
|
{...(!isWeb ? { accessibilityElementsHidden: true } : null)}
|
|
86
90
|
>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
2
2
|
import { Input } from "@multiplatform.one/forms";
|
|
3
3
|
import { Paragraph, YStack } from "tamagui";
|
|
4
|
-
import {
|
|
4
|
+
import { Text } from "../../Text";
|
|
5
5
|
import { KeyboardAvoidingWrapper } from "./index";
|
|
6
6
|
|
|
7
7
|
const meta: Meta<typeof KeyboardAvoidingWrapper> = {
|
|
@@ -27,10 +27,10 @@ export const Default: Story = {
|
|
|
27
27
|
<KeyboardAvoidingWrapper>
|
|
28
28
|
<YStack>
|
|
29
29
|
<Paragraph>Content inside KeyboardAvoidingWrapper</Paragraph>
|
|
30
|
-
<
|
|
30
|
+
<Text>
|
|
31
31
|
On native, this shifts content when the keyboard appears. On web, it is a simple
|
|
32
32
|
passthrough wrapper.
|
|
33
|
-
</
|
|
33
|
+
</Text>
|
|
34
34
|
<Input label="Test input" placeholder="Focus to test keyboard avoidance" />
|
|
35
35
|
</YStack>
|
|
36
36
|
</KeyboardAvoidingWrapper>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { defaultConfig } from "@tamagui/config/v5";
|
|
2
|
+
import { createTamagui, TamaguiProvider } from "tamagui";
|
|
3
|
+
import type { ReactElement } from "react";
|
|
4
|
+
import { defaultHeadingFont, Preset } from "@multiplatform.one/theme";
|
|
5
|
+
import { cleanup, render, screen } from "@testing-library/react";
|
|
6
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
7
|
+
import { PageHeader } from "./page";
|
|
8
|
+
|
|
9
|
+
const config = createTamagui({
|
|
10
|
+
...defaultConfig,
|
|
11
|
+
fonts: { ...defaultConfig.fonts, heading: defaultHeadingFont },
|
|
12
|
+
});
|
|
13
|
+
function renderWithProviders(node: ReactElement) {
|
|
14
|
+
return render(
|
|
15
|
+
<TamaguiProvider config={config} defaultTheme="light">
|
|
16
|
+
{node}
|
|
17
|
+
</TamaguiProvider>,
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
afterEach(cleanup);
|
|
21
|
+
|
|
22
|
+
describe("PageHeader rendered Tamagui title recipes", () => {
|
|
23
|
+
for (const scale of ["moderate", "display"] as const) {
|
|
24
|
+
for (const weight of ["regular", "bold"] as const) {
|
|
25
|
+
it(`${scale} preserves ${weight} independently of size`, () => {
|
|
26
|
+
renderWithProviders(
|
|
27
|
+
<Preset overrides={{ pageTitleScale: scale, fontWeight: weight }}>
|
|
28
|
+
<PageHeader title="Measured title" />
|
|
29
|
+
</Preset>,
|
|
30
|
+
);
|
|
31
|
+
const title = screen.getByRole("heading", { name: "Measured title" });
|
|
32
|
+
expect(getComputedStyle(title).fontSize).toBe(scale === "moderate" ? "26px" : "40px");
|
|
33
|
+
expect(getComputedStyle(title).fontWeight).toBe(weight === "regular" ? "400" : "700");
|
|
34
|
+
expect(title.tagName).toBe("H1");
|
|
35
|
+
expect(title).toHaveAttribute("data-font-weight-knob", weight);
|
|
36
|
+
expect(title.className).toContain("font_heading");
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it(`${scale}/${weight} survives nested overrides and a titleScale eject`, () => {
|
|
40
|
+
renderWithProviders(
|
|
41
|
+
<Preset
|
|
42
|
+
overrides={{
|
|
43
|
+
pageTitleScale: scale,
|
|
44
|
+
fontWeight: weight === "bold" ? "regular" : "bold",
|
|
45
|
+
}}
|
|
46
|
+
>
|
|
47
|
+
<Preset overrides={{ fontWeight: weight }}>
|
|
48
|
+
<PageHeader
|
|
49
|
+
title="Nested title"
|
|
50
|
+
headingLevel={2}
|
|
51
|
+
titleScale={scale === "moderate" ? "display" : "moderate"}
|
|
52
|
+
/>
|
|
53
|
+
</Preset>
|
|
54
|
+
</Preset>,
|
|
55
|
+
);
|
|
56
|
+
const title = screen.getByRole("heading", { name: "Nested title" });
|
|
57
|
+
expect(getComputedStyle(title).fontSize).toBe(scale === "moderate" ? "40px" : "26px");
|
|
58
|
+
expect(getComputedStyle(title).fontWeight).toBe(weight === "regular" ? "400" : "700");
|
|
59
|
+
expect(title.tagName).toBe("H2");
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
it("preserves the consumer heading eject and wrapper props", () => {
|
|
65
|
+
renderWithProviders(
|
|
66
|
+
<PageHeader
|
|
67
|
+
heading={<h3 style={{ fontWeight: 600 }}>Custom</h3>}
|
|
68
|
+
data-testid="eject"
|
|
69
|
+
padding={7}
|
|
70
|
+
/>,
|
|
71
|
+
);
|
|
72
|
+
expect(getComputedStyle(screen.getByRole("heading")).fontWeight).toBe("600");
|
|
73
|
+
expect(getComputedStyle(screen.getByTestId("eject")).paddingTop).toBe("7px");
|
|
74
|
+
});
|
|
75
|
+
});
|
|
@@ -67,7 +67,7 @@ export const WithActions: Story = {
|
|
|
67
67
|
{...args}
|
|
68
68
|
actions={
|
|
69
69
|
<>
|
|
70
|
-
<Button
|
|
70
|
+
<Button>Secondary</Button>
|
|
71
71
|
<Button>Primary</Button>
|
|
72
72
|
</>
|
|
73
73
|
}
|
|
@@ -83,7 +83,7 @@ export const WithNav: Story = {
|
|
|
83
83
|
{...args}
|
|
84
84
|
actions={
|
|
85
85
|
<>
|
|
86
|
-
<Button
|
|
86
|
+
<Button>Secondary</Button>
|
|
87
87
|
<Button>Primary</Button>
|
|
88
88
|
</>
|
|
89
89
|
}
|
|
@@ -155,8 +155,8 @@ export const LongTitleNarrow: Story = {
|
|
|
155
155
|
actions={
|
|
156
156
|
<>
|
|
157
157
|
<Button>First action</Button>
|
|
158
|
-
<Button
|
|
159
|
-
<Button
|
|
158
|
+
<Button>Second action</Button>
|
|
159
|
+
<Button>Third action</Button>
|
|
160
160
|
</>
|
|
161
161
|
}
|
|
162
162
|
/>
|
|
@@ -68,7 +68,7 @@ export const DetailPage: StoryObj<typeof DetailPageLayout> = {
|
|
|
68
68
|
sizeClass="expanded"
|
|
69
69
|
title="Bulbasaur"
|
|
70
70
|
subtitle="Pokemon · #0001"
|
|
71
|
-
toolbarLeading={<Button
|
|
71
|
+
toolbarLeading={<Button>Back</Button>}
|
|
72
72
|
toolbarTrailing={<Button theme="accent">Edit</Button>}
|
|
73
73
|
aside={<ContentBox label="Aside (meta / timeline) ⅓" minHeight={240} />}
|
|
74
74
|
>
|
|
@@ -82,7 +82,7 @@ export const DetailPageCompact: StoryObj<typeof DetailPageLayout> = {
|
|
|
82
82
|
<DetailPageLayout
|
|
83
83
|
sizeClass="compact"
|
|
84
84
|
title="Bulbasaur"
|
|
85
|
-
toolbarLeading={<Button
|
|
85
|
+
toolbarLeading={<Button>Back</Button>}
|
|
86
86
|
aside={<ContentBox label="Aside — stacked below, never hidden" minHeight={140} />}
|
|
87
87
|
>
|
|
88
88
|
<ContentBox label="Main content" minHeight={200} />
|
|
@@ -13,6 +13,37 @@ import * as Layouts from "./index";
|
|
|
13
13
|
|
|
14
14
|
afterEach(cleanup);
|
|
15
15
|
|
|
16
|
+
const originalInnerWidth = window.innerWidth;
|
|
17
|
+
|
|
18
|
+
/** Drive the real size-class path from a viewport width (setup reads it at render). */
|
|
19
|
+
function setViewportWidth(width: number) {
|
|
20
|
+
Object.defineProperty(window, "innerWidth", { configurable: true, value: width });
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
afterEach(() => setViewportWidth(originalInnerWidth));
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Rail | (centre | inspector) — the three-region page the kit composes from
|
|
27
|
+
* two scaffolds. `sizeClass` is set on the OUTER one only, so this also
|
|
28
|
+
* covers whether the class reaches the inner scaffold.
|
|
29
|
+
*/
|
|
30
|
+
function ThreeRegionPage(props: {
|
|
31
|
+
sizeClass?: "compact" | "medium" | "expanded" | "large" | "xl";
|
|
32
|
+
}) {
|
|
33
|
+
return (
|
|
34
|
+
<PaneScaffold
|
|
35
|
+
sizeClass={props.sizeClass}
|
|
36
|
+
primary={<Paragraph>Rail</Paragraph>}
|
|
37
|
+
secondary={
|
|
38
|
+
<PaneScaffold
|
|
39
|
+
primary={<Paragraph>Centre</Paragraph>}
|
|
40
|
+
secondary={<Paragraph>Inspector</Paragraph>}
|
|
41
|
+
/>
|
|
42
|
+
}
|
|
43
|
+
/>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
16
47
|
describe("layouts index exports (W11)", () => {
|
|
17
48
|
it("exports PaneScaffold canonical layouts + ReadingWidth", () => {
|
|
18
49
|
expect(Layouts.PaneScaffold).toBe(PaneScaffold);
|
|
@@ -24,7 +55,7 @@ describe("layouts index exports (W11)", () => {
|
|
|
24
55
|
});
|
|
25
56
|
|
|
26
57
|
describe("PaneScaffold", () => {
|
|
27
|
-
it("
|
|
58
|
+
it("stacks both panes below the two-pane budget", () => {
|
|
28
59
|
renderWithProviders(
|
|
29
60
|
<PaneScaffold
|
|
30
61
|
sizeClass="compact"
|
|
@@ -33,8 +64,34 @@ describe("PaneScaffold", () => {
|
|
|
33
64
|
/>,
|
|
34
65
|
);
|
|
35
66
|
const root = screen.getByTestId("pane-scaffold");
|
|
36
|
-
expect(root).toHaveAttribute("data-panes", "
|
|
37
|
-
expect(
|
|
67
|
+
expect(root).toHaveAttribute("data-panes", "2");
|
|
68
|
+
expect(root).toHaveAttribute("data-pane-layout", "stack");
|
|
69
|
+
expect(screen.getByTestId("pane-primary")).toHaveTextContent("List");
|
|
70
|
+
expect(screen.getByTestId("pane-secondary")).toHaveTextContent("Detail");
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it("drops the sash when stacked (nothing to drag with a thumb)", () => {
|
|
74
|
+
renderWithProviders(
|
|
75
|
+
<PaneScaffold
|
|
76
|
+
sizeClass="compact"
|
|
77
|
+
primary={<Paragraph>List</Paragraph>}
|
|
78
|
+
secondary={<Paragraph>Detail</Paragraph>}
|
|
79
|
+
/>,
|
|
80
|
+
);
|
|
81
|
+
expect(screen.getByTestId("pane-scaffold")).toHaveAttribute("data-sash", "false");
|
|
82
|
+
expect(screen.queryByTestId("pane-sash")).not.toBeInTheDocument();
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it("narrowLayout=swap drops the inactive pane", () => {
|
|
86
|
+
renderWithProviders(
|
|
87
|
+
<PaneScaffold
|
|
88
|
+
sizeClass="compact"
|
|
89
|
+
narrowLayout="swap"
|
|
90
|
+
primary={<Paragraph>List</Paragraph>}
|
|
91
|
+
secondary={<Paragraph>Detail</Paragraph>}
|
|
92
|
+
/>,
|
|
93
|
+
);
|
|
94
|
+
expect(screen.getByTestId("pane-scaffold")).toHaveAttribute("data-panes", "1");
|
|
38
95
|
expect(screen.queryByText("Detail")).not.toBeInTheDocument();
|
|
39
96
|
});
|
|
40
97
|
|
|
@@ -66,12 +123,27 @@ describe("PaneScaffold", () => {
|
|
|
66
123
|
expect(screen.getByTestId("pane-secondary")).toHaveTextContent("Detail");
|
|
67
124
|
});
|
|
68
125
|
|
|
69
|
-
it("maxPanes=1
|
|
126
|
+
it("maxPanes=1 takes the narrow path even when expanded", () => {
|
|
70
127
|
renderWithProviders(
|
|
71
128
|
<PaneScaffold
|
|
72
129
|
sizeClass="xl"
|
|
73
130
|
maxPanes={1}
|
|
74
131
|
primary={<Paragraph>Only</Paragraph>}
|
|
132
|
+
secondary={<Paragraph>Also</Paragraph>}
|
|
133
|
+
/>,
|
|
134
|
+
);
|
|
135
|
+
const root = screen.getByTestId("pane-scaffold");
|
|
136
|
+
expect(root).toHaveAttribute("data-pane-layout", "stack");
|
|
137
|
+
expect(screen.getByText("Also")).toBeInTheDocument();
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it("maxPanes=1 with activePane drops the other pane", () => {
|
|
141
|
+
renderWithProviders(
|
|
142
|
+
<PaneScaffold
|
|
143
|
+
sizeClass="xl"
|
|
144
|
+
maxPanes={1}
|
|
145
|
+
activePane="primary"
|
|
146
|
+
primary={<Paragraph>Only</Paragraph>}
|
|
75
147
|
secondary={<Paragraph>Hidden</Paragraph>}
|
|
76
148
|
/>,
|
|
77
149
|
);
|
|
@@ -80,7 +152,64 @@ describe("PaneScaffold", () => {
|
|
|
80
152
|
});
|
|
81
153
|
});
|
|
82
154
|
|
|
155
|
+
// MPO-235: two scaffolds are how the kit builds three regions, and a phone
|
|
156
|
+
// rendered only the outer primary — the centre and inspector were unreachable.
|
|
157
|
+
describe("PaneScaffold nesting (MPO-235)", () => {
|
|
158
|
+
it("renders all three regions at a 402pt viewport", () => {
|
|
159
|
+
setViewportWidth(402);
|
|
160
|
+
renderWithProviders(<ThreeRegionPage />);
|
|
161
|
+
|
|
162
|
+
expect(screen.getByText("Rail")).toBeInTheDocument();
|
|
163
|
+
expect(screen.getByText("Centre")).toBeInTheDocument();
|
|
164
|
+
expect(screen.getByText("Inspector")).toBeInTheDocument();
|
|
165
|
+
|
|
166
|
+
const scaffolds = screen.getAllByTestId("pane-scaffold");
|
|
167
|
+
expect(scaffolds).toHaveLength(2);
|
|
168
|
+
for (const node of scaffolds) {
|
|
169
|
+
expect(node).toHaveAttribute("data-pane-layout", "stack");
|
|
170
|
+
expect(node).toHaveAttribute("data-size-class", "compact");
|
|
171
|
+
}
|
|
172
|
+
expect(screen.queryAllByTestId("pane-sash")).toHaveLength(0);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it("passes the outer size class to the inner scaffold", () => {
|
|
176
|
+
// Viewport stays wide: only the outer override may narrow the inner one.
|
|
177
|
+
setViewportWidth(1440);
|
|
178
|
+
renderWithProviders(<ThreeRegionPage sizeClass="compact" />);
|
|
179
|
+
|
|
180
|
+
expect(screen.getByText("Centre")).toBeInTheDocument();
|
|
181
|
+
expect(screen.getByText("Inspector")).toBeInTheDocument();
|
|
182
|
+
for (const node of screen.getAllByTestId("pane-scaffold")) {
|
|
183
|
+
expect(node).toHaveAttribute("data-pane-layout", "stack");
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
it("still splits both scaffolds when the viewport is wide", () => {
|
|
188
|
+
setViewportWidth(1440);
|
|
189
|
+
renderWithProviders(<ThreeRegionPage />);
|
|
190
|
+
|
|
191
|
+
const scaffolds = screen.getAllByTestId("pane-scaffold");
|
|
192
|
+
expect(scaffolds).toHaveLength(2);
|
|
193
|
+
for (const node of scaffolds) {
|
|
194
|
+
expect(node).toHaveAttribute("data-pane-layout", "split");
|
|
195
|
+
}
|
|
196
|
+
expect(screen.getAllByTestId("pane-sash")).toHaveLength(2);
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
|
|
83
200
|
describe("ListDetailLayout", () => {
|
|
201
|
+
it("keeps the swap idiom on compact: list only until an item is picked", () => {
|
|
202
|
+
renderWithProviders(
|
|
203
|
+
<ListDetailLayout
|
|
204
|
+
sizeClass="compact"
|
|
205
|
+
list={<Paragraph>Items</Paragraph>}
|
|
206
|
+
detail={<Paragraph>Item 1</Paragraph>}
|
|
207
|
+
/>,
|
|
208
|
+
);
|
|
209
|
+
expect(screen.getByTestId("pane-scaffold")).toHaveAttribute("data-panes", "1");
|
|
210
|
+
expect(screen.queryByText("Item 1")).not.toBeInTheDocument();
|
|
211
|
+
});
|
|
212
|
+
|
|
84
213
|
it("flips to detail when selected on compact", () => {
|
|
85
214
|
renderWithProviders(
|
|
86
215
|
<ListDetailLayout
|
|
@@ -96,6 +225,17 @@ describe("ListDetailLayout", () => {
|
|
|
96
225
|
});
|
|
97
226
|
|
|
98
227
|
describe("SupportingPaneLayout", () => {
|
|
228
|
+
it("stacks the supporting pane on compact instead of hiding it", () => {
|
|
229
|
+
renderWithProviders(
|
|
230
|
+
<SupportingPaneLayout sizeClass="compact" supporting={<Paragraph>Meta</Paragraph>}>
|
|
231
|
+
<Paragraph>Body</Paragraph>
|
|
232
|
+
</SupportingPaneLayout>,
|
|
233
|
+
);
|
|
234
|
+
expect(screen.getByTestId("pane-scaffold")).toHaveAttribute("data-pane-layout", "stack");
|
|
235
|
+
expect(screen.getByText("Body")).toBeInTheDocument();
|
|
236
|
+
expect(screen.getByText("Meta")).toBeInTheDocument();
|
|
237
|
+
});
|
|
238
|
+
|
|
99
239
|
it("renders side-by-side at large", () => {
|
|
100
240
|
renderWithProviders(
|
|
101
241
|
<SupportingPaneLayout sizeClass="large" supporting={<Paragraph>Meta</Paragraph>}>
|