@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/Pagination.tsx
CHANGED
|
@@ -339,7 +339,7 @@ export function Pagination({
|
|
|
339
339
|
minWidth="$2"
|
|
340
340
|
minHeight={pageControlFloor.minHeight}
|
|
341
341
|
{...knobProps.body}
|
|
342
|
-
color={
|
|
342
|
+
color={knobProps.textAccentColor}
|
|
343
343
|
>
|
|
344
344
|
…
|
|
345
345
|
</Text>
|
|
@@ -418,7 +418,7 @@ export function Pagination({
|
|
|
418
418
|
{summary && (
|
|
419
419
|
<Text
|
|
420
420
|
{...knobProps.body}
|
|
421
|
-
color={
|
|
421
|
+
color={knobProps.textAccentColor}
|
|
422
422
|
aria-live="polite"
|
|
423
423
|
userSelect="none"
|
|
424
424
|
>
|
package/src/Panel.stories.tsx
CHANGED
|
@@ -52,7 +52,7 @@ export const InteractiveContent: Story = {
|
|
|
52
52
|
<SizableText fontWeight="600">Interactive content</SizableText>
|
|
53
53
|
<Input placeholder="Focus me" inputProps={{ "aria-label": "Focus demo" }} />
|
|
54
54
|
<XStack gap="$2">
|
|
55
|
-
<Button
|
|
55
|
+
<Button>Cancel</Button>
|
|
56
56
|
<Button>Submit</Button>
|
|
57
57
|
</XStack>
|
|
58
58
|
</Panel>
|
|
@@ -206,7 +206,7 @@ export function ProgressSteps({
|
|
|
206
206
|
const markerBorder = kind === "upcoming" ? componentColors.indicator.track : markerBg;
|
|
207
207
|
const markerFg =
|
|
208
208
|
kind === "upcoming"
|
|
209
|
-
?
|
|
209
|
+
? knobProps.textAccentColor
|
|
210
210
|
: kind === "error"
|
|
211
211
|
? (onError ?? "$color1")
|
|
212
212
|
: kind === "completed"
|
|
@@ -293,7 +293,7 @@ export function ProgressSteps({
|
|
|
293
293
|
kind === "error"
|
|
294
294
|
? "$red11"
|
|
295
295
|
: state === "upcoming"
|
|
296
|
-
?
|
|
296
|
+
? knobProps.textAccentColor
|
|
297
297
|
: componentColors.text.primary
|
|
298
298
|
}
|
|
299
299
|
textAlign={horizontal ? "center" : undefined}
|
|
@@ -305,7 +305,7 @@ export function ProgressSteps({
|
|
|
305
305
|
<SizableText
|
|
306
306
|
{...knobProps.body}
|
|
307
307
|
fontSize="$1"
|
|
308
|
-
color={kind === "error" ? "$red11" :
|
|
308
|
+
color={kind === "error" ? "$red11" : knobProps.textAccentColor}
|
|
309
309
|
textAlign={horizontal ? "center" : undefined}
|
|
310
310
|
numberOfLines={2}
|
|
311
311
|
>
|
package/src/Quote/index.tsx
CHANGED
|
@@ -66,8 +66,6 @@ export function Quote({ children, cite, compact, ...props }: QuoteProps) {
|
|
|
66
66
|
compact === undefined ? { component: "Quote" } : { component: "Quote", compact },
|
|
67
67
|
);
|
|
68
68
|
const railWidth = quoteRailWidth(knobProps.borderRadius.borderWidth);
|
|
69
|
-
const citeColor =
|
|
70
|
-
knobProps.textAccentColor === "$color" ? componentColors.text.muted : knobProps.textAccentColor;
|
|
71
69
|
|
|
72
70
|
return (
|
|
73
71
|
<QuoteFrame
|
|
@@ -106,7 +104,7 @@ export function Quote({ children, cite, compact, ...props }: QuoteProps) {
|
|
|
106
104
|
key={key}
|
|
107
105
|
render="cite"
|
|
108
106
|
{...knobProps.label}
|
|
109
|
-
color={
|
|
107
|
+
color={knobProps.textAccentColor}
|
|
110
108
|
fontStyle="normal"
|
|
111
109
|
>
|
|
112
110
|
— {label}
|
|
@@ -138,10 +138,10 @@ describe("SortableList", () => {
|
|
|
138
138
|
|
|
139
139
|
it("renders emptyMessage when there are no rows (board 04)", () => {
|
|
140
140
|
const { container } = renderWithProviders(
|
|
141
|
-
<SortableList
|
|
141
|
+
<SortableList<{ id: string; label: string }>
|
|
142
142
|
items={[]}
|
|
143
|
-
getId={(item
|
|
144
|
-
getLabel={(item
|
|
143
|
+
getId={(item) => item.id}
|
|
144
|
+
getLabel={(item) => item.label}
|
|
145
145
|
emptyMessage="No rows yet"
|
|
146
146
|
/>,
|
|
147
147
|
);
|
package/src/Tabs/Tabs.spec.tsx
CHANGED
|
@@ -246,6 +246,48 @@ describe("Tabs", () => {
|
|
|
246
246
|
expect(two).toHaveAttribute("aria-selected", "true");
|
|
247
247
|
});
|
|
248
248
|
|
|
249
|
+
it("selects the focused tab automatically when navigating with arrows", async () => {
|
|
250
|
+
renderWithProviders(<Tabs items={items} variant="band" />);
|
|
251
|
+
const one = screen.getByRole("tab", { name: "One" });
|
|
252
|
+
const two = screen.getByRole("tab", { name: "Two" });
|
|
253
|
+
one.focus();
|
|
254
|
+
fireEvent.keyDown(one, { key: "ArrowRight" });
|
|
255
|
+
await waitFor(() => expect(two).toHaveFocus());
|
|
256
|
+
expect(two).toHaveAttribute("aria-selected", "true");
|
|
257
|
+
expect(screen.getByText("Panel two")).toBeVisible();
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
it("reverses horizontal arrow navigation in RTL", async () => {
|
|
261
|
+
document.documentElement.dir = "rtl";
|
|
262
|
+
renderWithProviders(<Tabs items={items} defaultValue="two" />);
|
|
263
|
+
const two = screen.getByRole("tab", { name: "Two" });
|
|
264
|
+
const one = screen.getByRole("tab", { name: "One" });
|
|
265
|
+
two.focus();
|
|
266
|
+
fireEvent.keyDown(two, { key: "ArrowRight" });
|
|
267
|
+
await waitFor(() => expect(one).toHaveFocus());
|
|
268
|
+
expect(one).toHaveAttribute("aria-selected", "true");
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
it("stops at the last enabled tab when looping is disabled", async () => {
|
|
272
|
+
renderWithProviders(<Tabs items={items} loop={false} />);
|
|
273
|
+
const one = screen.getByRole("tab", { name: "One" });
|
|
274
|
+
const two = screen.getByRole("tab", { name: "Two" });
|
|
275
|
+
one.focus();
|
|
276
|
+
fireEvent.keyDown(one, { key: "End" });
|
|
277
|
+
await waitFor(() => expect(two).toHaveFocus());
|
|
278
|
+
fireEvent.keyDown(two, { key: "ArrowRight" });
|
|
279
|
+
expect(two).toHaveFocus();
|
|
280
|
+
expect(two).toHaveAttribute("aria-selected", "true");
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
it("removes every tab from the page tab order when the strip is disabled", () => {
|
|
284
|
+
renderWithProviders(<Tabs items={items} disabled />);
|
|
285
|
+
for (const tab of screen.getAllByRole("tab")) {
|
|
286
|
+
expect(tab.tabIndex).toBe(-1);
|
|
287
|
+
expect(tab).toHaveAttribute("aria-disabled", "true");
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
|
|
249
291
|
it("keeps an enabled entry point when the selected tab is disabled", () => {
|
|
250
292
|
renderWithProviders(<Tabs items={items} value="three" />);
|
|
251
293
|
const stops = screen.getAllByRole("tab").filter((tab) => tab.tabIndex === 0);
|
|
@@ -261,13 +303,11 @@ describe("Tabs", () => {
|
|
|
261
303
|
expect(container.querySelector("[data-tabs-indicator]")).toBeNull();
|
|
262
304
|
});
|
|
263
305
|
|
|
264
|
-
it("lets equal-band chrome shrink inside each allocated tab
|
|
306
|
+
it("lets equal-band chrome shrink inside each allocated tab", () => {
|
|
265
307
|
renderWithProviders(<Tabs items={items} variant="band" />);
|
|
266
308
|
const chrome = screen.getByRole("tab", { name: "One" }).firstElementChild!;
|
|
267
309
|
expect(chrome.className).toContain("_fs-1");
|
|
268
310
|
expect(chrome.className).toContain("_fb-0px");
|
|
269
|
-
expect(chrome.className).toContain("_pl-0px");
|
|
270
|
-
expect(chrome.className).toContain("_pr-0px");
|
|
271
311
|
});
|
|
272
312
|
|
|
273
313
|
it("ariaLabel overrides the default tablist name", () => {
|
|
@@ -27,6 +27,7 @@ const meta: Meta<typeof Tabs> = {
|
|
|
27
27
|
},
|
|
28
28
|
argTypes: {
|
|
29
29
|
variant: { control: "select", options: ["underline", "contained", "band"] },
|
|
30
|
+
distribution: { control: "select", options: ["content", "equal"] },
|
|
30
31
|
size: { control: "select", options: ["$2", "$3", "$4", "$5"] },
|
|
31
32
|
accent: { control: "boolean" },
|
|
32
33
|
error: { control: "boolean" },
|
|
@@ -348,8 +349,16 @@ export const EqualBand: Story = {
|
|
|
348
349
|
|
|
349
350
|
export const IntrinsicHorizontalHost: Story = {
|
|
350
351
|
render: () => (
|
|
351
|
-
<ScrollView horizontal width={390}>
|
|
352
|
+
<ScrollView horizontal width={390} maxWidth="100%">
|
|
352
353
|
<Tabs items={baseItems} ariaLabel="Intrinsic tabs" />
|
|
353
354
|
</ScrollView>
|
|
354
355
|
),
|
|
355
356
|
};
|
|
357
|
+
|
|
358
|
+
export const EqualSmall: Story = {
|
|
359
|
+
render: () => (
|
|
360
|
+
<YStack width={390} maxWidth="100%">
|
|
361
|
+
<Tabs items={baseItems} distribution="equal" size="$2" ariaLabel="Compact equal sections" />
|
|
362
|
+
</YStack>
|
|
363
|
+
),
|
|
364
|
+
};
|
package/src/Tabs/index.tsx
CHANGED
|
@@ -534,6 +534,12 @@ function TabsRoot({
|
|
|
534
534
|
item.value === anchorValue &&
|
|
535
535
|
itemIndex === items.findIndex((i) => i.value === anchorValue);
|
|
536
536
|
const kbRing = kbFocusValue === item.value;
|
|
537
|
+
const feedbackBackground =
|
|
538
|
+
pressValue === item.value
|
|
539
|
+
? componentColors.interactive.hover
|
|
540
|
+
: hoverValue === item.value
|
|
541
|
+
? componentColors.interactive.background
|
|
542
|
+
: "transparent";
|
|
537
543
|
return (
|
|
538
544
|
<Trigger
|
|
539
545
|
key={item.value}
|
|
@@ -545,7 +551,7 @@ function TabsRoot({
|
|
|
545
551
|
}}
|
|
546
552
|
flex={equalDistribution ? 1 : undefined}
|
|
547
553
|
minWidth={0}
|
|
548
|
-
minHeight={
|
|
554
|
+
minHeight={equalDistribution ? MIN_PRESS_TARGET : undefined}
|
|
549
555
|
borderEndWidth={isBand && itemIndex < items.length - 1 ? 1 : 0}
|
|
550
556
|
borderColor={isBand ? componentColors.surface.border : undefined}
|
|
551
557
|
disabled={isDisabled}
|
|
@@ -573,7 +579,13 @@ function TabsRoot({
|
|
|
573
579
|
onInteraction={handleInteraction}
|
|
574
580
|
cursor={isDisabled ? "not-allowed" : "pointer"}
|
|
575
581
|
backgroundColor={
|
|
576
|
-
isBand
|
|
582
|
+
isBand
|
|
583
|
+
? isActive
|
|
584
|
+
? componentColors.surface.background
|
|
585
|
+
: isDisabled
|
|
586
|
+
? "transparent"
|
|
587
|
+
: feedbackBackground
|
|
588
|
+
: "transparent"
|
|
577
589
|
}
|
|
578
590
|
borderRadius={0}
|
|
579
591
|
{...(isDisabled
|
|
@@ -608,8 +620,8 @@ function TabsRoot({
|
|
|
608
620
|
// (spreading the recipe there too doubled the horizontal
|
|
609
621
|
// padding).
|
|
610
622
|
{...knobProps.control}
|
|
611
|
-
//
|
|
612
|
-
paddingHorizontal={isBand ?
|
|
623
|
+
// Band columns share width; a minimal inset keeps labels off the edges.
|
|
624
|
+
paddingHorizontal={isBand ? "$1" : knobProps.control.paddingHorizontal}
|
|
613
625
|
alignSelf="stretch"
|
|
614
626
|
flexGrow={equalDistribution ? 1 : undefined}
|
|
615
627
|
flexShrink={equalDistribution ? 1 : undefined}
|
|
@@ -619,32 +631,26 @@ function TabsRoot({
|
|
|
619
631
|
alignItems="center"
|
|
620
632
|
justifyContent="center"
|
|
621
633
|
backgroundColor={
|
|
622
|
-
isActive || isDisabled
|
|
623
|
-
? "transparent"
|
|
624
|
-
: pressValue === item.value
|
|
625
|
-
? componentColors.interactive.hover
|
|
626
|
-
: hoverValue === item.value
|
|
627
|
-
? componentColors.interactive.background
|
|
628
|
-
: "transparent"
|
|
634
|
+
isBand || isActive || isDisabled ? "transparent" : feedbackBackground
|
|
629
635
|
}
|
|
630
636
|
{...(kbRing ? keyboardFocusRingProps : undefined)}
|
|
631
637
|
>
|
|
632
638
|
{item.icon}
|
|
633
639
|
<TabLabel
|
|
634
|
-
minWidth={equalDistribution ? 0 : undefined}
|
|
635
|
-
flexShrink={equalDistribution ? 1 : undefined}
|
|
636
640
|
active={isActive}
|
|
641
|
+
flexShrink={1}
|
|
642
|
+
minWidth={0}
|
|
637
643
|
{...knobProps.controlType}
|
|
638
644
|
fontFamily={knobProps.label.fontFamily}
|
|
639
645
|
fontWeight={!isBand && isActive ? "700" : knobProps.label.fontWeight}
|
|
640
646
|
color={
|
|
641
647
|
isDisabled
|
|
642
|
-
?
|
|
648
|
+
? disabledState.textKnobProps.color
|
|
643
649
|
: isActive
|
|
644
650
|
? variant === "contained" && onSelectedTint
|
|
645
651
|
? onSelectedTint
|
|
646
652
|
: componentColors.text.primary
|
|
647
|
-
:
|
|
653
|
+
: knobProps.textAccentColor
|
|
648
654
|
}
|
|
649
655
|
>
|
|
650
656
|
{wrapBareTextChildren(item.label, (label) => label)}
|
package/src/Toast/Toast.spec.tsx
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { fireEvent, screen, act, cleanup } from "@testing-library/react";
|
|
2
|
-
import type { ReactElement } from "react";
|
|
2
|
+
import type { ReactElement, ReactNode } from "react";
|
|
3
3
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
4
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
5
|
-
import { Button, SizableText,
|
|
5
|
+
import { Button, SizableText, TamaguiProvider, useTheme, YStack } from "tamagui";
|
|
6
6
|
import {
|
|
7
7
|
__resetDevWarnSeen,
|
|
8
8
|
aaTextContrastRatio,
|
|
9
|
-
|
|
9
|
+
createDefaultThemeConfig,
|
|
10
|
+
createThemesBuilder,
|
|
11
|
+
defaultAccentTheme,
|
|
12
|
+
defaultBaseTheme,
|
|
13
|
+
defaultBuilderOptions,
|
|
14
|
+
measureContrast,
|
|
10
15
|
normalizeToHex,
|
|
11
16
|
Preset,
|
|
12
|
-
relativeLuminance,
|
|
13
17
|
useAccentOnSurface,
|
|
14
18
|
} from "@multiplatform.one/theme";
|
|
15
|
-
import { Toast, ToastViewport, useToast } from "./index";
|
|
19
|
+
import { Toast, ToastViewport, useToast, nativeToastA11y, nativeToastControlA11y } from "./index";
|
|
16
20
|
import {
|
|
17
21
|
__resetToastViewportRegistry,
|
|
18
22
|
dismissToast,
|
|
@@ -39,6 +43,40 @@ function Trigger(props: Parameters<ReturnType<typeof useToast>["show"]>[0]) {
|
|
|
39
43
|
return <Button onPress={() => toast.show(props)}>fire</Button>;
|
|
40
44
|
}
|
|
41
45
|
|
|
46
|
+
describe("native toast accessibility", () => {
|
|
47
|
+
it("groups text-only content while leaving action and dismiss controls reachable", () => {
|
|
48
|
+
expect(nativeToastA11y("Saved", false, false)).toEqual({
|
|
49
|
+
accessible: true,
|
|
50
|
+
accessibilityLabel: "Saved",
|
|
51
|
+
});
|
|
52
|
+
expect(nativeToastA11y("Saved", true, false)).toEqual({ accessible: false });
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("does not wire a second native announcement channel or web grouping", () => {
|
|
56
|
+
expect(nativeToastA11y("Saved", false, false)).not.toHaveProperty("accessibilityLiveRegion");
|
|
57
|
+
expect(nativeToastA11y("Saved", false, false)).not.toHaveProperty("aria-live");
|
|
58
|
+
expect(nativeToastA11y("Saved", false, true)).toEqual({});
|
|
59
|
+
expect(nativeToastA11y(undefined, false, false)).toEqual({ accessible: false });
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it("makes native action and dismiss controls accessibility elements without leaking to web", () => {
|
|
63
|
+
expect(nativeToastControlA11y(false)).toEqual({ accessible: true });
|
|
64
|
+
expect(nativeToastControlA11y(true)).toEqual({});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it("records the library grouping default and keeps native control props off the DOM", () => {
|
|
68
|
+
renderWithProviders(
|
|
69
|
+
<>
|
|
70
|
+
<Trigger title="Saved" dismissible />
|
|
71
|
+
<ToastViewport />
|
|
72
|
+
</>,
|
|
73
|
+
);
|
|
74
|
+
fireEvent.click(screen.getByText("fire"));
|
|
75
|
+
expect(screen.getByTestId("toast")).toHaveAttribute("tabindex", "0");
|
|
76
|
+
expect(screen.getByLabelText("Dismiss notification")).not.toHaveAttribute("accessible");
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
42
80
|
describe("Toast (standalone)", () => {
|
|
43
81
|
it("renders title, description and role=status", () => {
|
|
44
82
|
renderWithProviders(
|
|
@@ -49,6 +87,15 @@ describe("Toast (standalone)", () => {
|
|
|
49
87
|
expect(screen.getByRole("status")).toBeInTheDocument();
|
|
50
88
|
});
|
|
51
89
|
|
|
90
|
+
it("names CopyField confirm for assistive tech (DG-FB-03)", () => {
|
|
91
|
+
renderWithProviders(<Toast title="Copied to clipboard." intent="success" />);
|
|
92
|
+
const status = screen.getByRole("status");
|
|
93
|
+
expect(status).toHaveAttribute("aria-live", "polite");
|
|
94
|
+
expect(status).toHaveAttribute("aria-label", "Copied to clipboard.");
|
|
95
|
+
expect(status).toHaveTextContent("Copied to clipboard.");
|
|
96
|
+
expect(status).toHaveAttribute("aria-atomic");
|
|
97
|
+
});
|
|
98
|
+
|
|
52
99
|
it("fires onDismiss from the close button", () => {
|
|
53
100
|
const onDismiss = vi.fn();
|
|
54
101
|
renderWithProviders(<Toast title="Saved" onDismiss={onDismiss} />);
|
|
@@ -198,6 +245,18 @@ describe("useToast + ToastViewport (imperative)", () => {
|
|
|
198
245
|
expect(getToasts()).toHaveLength(2);
|
|
199
246
|
});
|
|
200
247
|
|
|
248
|
+
it("viewport announce region carries Copied to clipboard.", async () => {
|
|
249
|
+
renderWithProviders(<ToastViewport />);
|
|
250
|
+
act(() => {
|
|
251
|
+
showToast({ title: "Copied to clipboard.", intent: "success" });
|
|
252
|
+
});
|
|
253
|
+
expect(await screen.findByText("Copied to clipboard.")).toBeInTheDocument();
|
|
254
|
+
await vi.waitFor(() => {
|
|
255
|
+
const live = document.querySelector("[aria-live]:not([aria-live='off'])");
|
|
256
|
+
expect(live?.textContent ?? "").toMatch(/Copied to clipboard/);
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
|
|
201
260
|
it("dismisses via the close button", async () => {
|
|
202
261
|
vi.useFakeTimers();
|
|
203
262
|
try {
|
|
@@ -459,35 +518,91 @@ function tokenVal(theme: ReturnType<typeof useTheme>, key: string): string {
|
|
|
459
518
|
return typeof raw === "string" ? raw : "";
|
|
460
519
|
}
|
|
461
520
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
521
|
+
const TOAST_INTENTS = ["accent", "success", "warning", "error"] as const;
|
|
522
|
+
const CONTRAST_SCHEMES = ["light", "dark"] as const;
|
|
523
|
+
|
|
524
|
+
const houseConfig = createDefaultThemeConfig();
|
|
525
|
+
const houseThemes = createThemesBuilder(
|
|
526
|
+
defaultBaseTheme,
|
|
527
|
+
defaultAccentTheme,
|
|
528
|
+
defaultBuilderOptions,
|
|
529
|
+
).themes() as Record<string, Record<string, string>>;
|
|
530
|
+
|
|
531
|
+
/**
|
|
532
|
+
* The HOUSE config, not the stock one `renderWithProviders` mounts. The
|
|
533
|
+
* intent sub-themes the Toast wraps in (`light_warning`, ...) exist only
|
|
534
|
+
* there; under stock the wrap falls back to the base ramp and the arm
|
|
535
|
+
* certifies a pair the product never paints.
|
|
536
|
+
*/
|
|
537
|
+
function ContrastScheme({
|
|
538
|
+
scheme,
|
|
539
|
+
children,
|
|
540
|
+
}: {
|
|
541
|
+
scheme: (typeof CONTRAST_SCHEMES)[number];
|
|
542
|
+
children: ReactNode;
|
|
543
|
+
}) {
|
|
473
544
|
return (
|
|
474
|
-
|
|
475
|
-
<
|
|
476
|
-
|
|
477
|
-
title="Archived"
|
|
478
|
-
intent={intent}
|
|
479
|
-
action={{ label: ACTION, onPress: () => {} }}
|
|
480
|
-
onDismiss={() => {}}
|
|
481
|
-
/>
|
|
482
|
-
</>
|
|
545
|
+
<TamaguiProvider config={houseConfig.tamagui} defaultTheme={scheme} disableInjectCSS>
|
|
546
|
+
<YStack backgroundColor="$background">{children}</YStack>
|
|
547
|
+
</TamaguiProvider>
|
|
483
548
|
);
|
|
484
549
|
}
|
|
485
550
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
551
|
+
/**
|
|
552
|
+
* Accent toasts stay on the BASE theme and take their ink from
|
|
553
|
+
* `useAccentOnSurface()` -- a picked value, not a token the label can name in
|
|
554
|
+
* a class. Stamp it from inside the theme the Toast mounts in.
|
|
555
|
+
*/
|
|
556
|
+
function AccentInkProbe() {
|
|
557
|
+
const onSurface = useAccentOnSurface();
|
|
558
|
+
const theme = useTheme();
|
|
559
|
+
const ink = onSurface.startsWith("$")
|
|
560
|
+
? tokenVal(theme, onSurface.slice(1)) || onSurface
|
|
561
|
+
: onSurface;
|
|
562
|
+
return <span data-testid="accent-ink" data-fg={ink} />;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* The RESTING atom for a prefix. Tamagui spells state atoms `_o-0hover-1` /
|
|
567
|
+
* `_bg-0active-color5`, so a bare prefix read picks up hover paint and
|
|
568
|
+
* certifies a surface nobody rests on.
|
|
569
|
+
*/
|
|
570
|
+
function restAtom(node: Element, prefix: string): string | undefined {
|
|
571
|
+
for (const cls of Array.from(node.classList)) {
|
|
572
|
+
if (!cls.startsWith(prefix)) continue;
|
|
573
|
+
const value = cls.slice(prefix.length);
|
|
574
|
+
if (/^\d*(hover|active|focus|press|disabled)/.test(value)) continue;
|
|
575
|
+
return value;
|
|
576
|
+
}
|
|
577
|
+
return undefined;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
/** `_o-0--9` is Tamagui's atom for 0.9; no resting atom means no rest dim. */
|
|
581
|
+
function restOpacity(node: Element): number {
|
|
582
|
+
const atom = restAtom(node, "_o-");
|
|
583
|
+
if (atom === undefined) return 1;
|
|
584
|
+
const value = Number(atom.replaceAll("--", "."));
|
|
585
|
+
return Number.isFinite(value) ? value : 1;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* The ink as PAINTED. An opacity on the press target multiplies the label
|
|
590
|
+
* toward the fill under it, so the token pair is not what a reader sees:
|
|
591
|
+
* MPO-128's warning action measures 4.66:1 as tokens and 3.88:1 as pixels.
|
|
592
|
+
*/
|
|
593
|
+
function paintedInk(ink: string, ground: string, alpha: number): string {
|
|
594
|
+
const f = normalizeToHex(ink);
|
|
595
|
+
const b = normalizeToHex(ground);
|
|
596
|
+
if (!f || !b) return ink;
|
|
597
|
+
if (alpha >= 1) return f;
|
|
598
|
+
const channel = (offset: number) =>
|
|
599
|
+
Math.round(
|
|
600
|
+
Number.parseInt(f.slice(offset, offset + 2), 16) * alpha +
|
|
601
|
+
Number.parseInt(b.slice(offset, offset + 2), 16) * (1 - alpha),
|
|
602
|
+
)
|
|
603
|
+
.toString(16)
|
|
604
|
+
.padStart(2, "0");
|
|
605
|
+
return `#${channel(1)}${channel(3)}${channel(5)}`;
|
|
491
606
|
}
|
|
492
607
|
|
|
493
608
|
describe("Toast overlay shadow (standalone === viewport)", () => {
|
|
@@ -639,28 +754,40 @@ describe("Toast action label weight and contrast (TEXT NODE)", () => {
|
|
|
639
754
|
expect(screen.getByTestId("toast").contains(textNode)).toBe(true);
|
|
640
755
|
});
|
|
641
756
|
|
|
642
|
-
it.each(
|
|
643
|
-
"%s action label clears
|
|
757
|
+
it.each(TOAST_INTENTS)(
|
|
758
|
+
"%s action label clears the AA floor AS PAINTED, in light and dark",
|
|
644
759
|
(intent) => {
|
|
645
|
-
for (const scheme of
|
|
760
|
+
for (const scheme of CONTRAST_SCHEMES) {
|
|
646
761
|
renderWithProviders(
|
|
647
|
-
<
|
|
648
|
-
<
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
const labelColor = (label as HTMLElement).style.color;
|
|
657
|
-
const pillBg = (pill as HTMLElement).style.backgroundColor;
|
|
658
|
-
const fromProbe = measuredRatio(fg, bg);
|
|
659
|
-
const fromNodes = measuredRatio(labelColor || fg, pillBg || bg);
|
|
660
|
-
const ratio = Number.isFinite(fromNodes) ? fromNodes : fromProbe;
|
|
661
|
-
expect(ratio, `${scheme} ${intent} ${fg} on ${bg}`).toBeGreaterThanOrEqual(
|
|
662
|
-
aaTextContrastRatio,
|
|
762
|
+
<ContrastScheme scheme={scheme}>
|
|
763
|
+
<AccentInkProbe />
|
|
764
|
+
<Toast
|
|
765
|
+
title="Archived"
|
|
766
|
+
intent={intent}
|
|
767
|
+
action={{ label: ACTION, onPress: () => {} }}
|
|
768
|
+
onDismiss={() => {}}
|
|
769
|
+
/>
|
|
770
|
+
</ContrastScheme>,
|
|
663
771
|
);
|
|
772
|
+
// Non-accent intents ride their hue sub-theme; accent stays on base.
|
|
773
|
+
const theme = houseThemes[intent === "accent" ? scheme : `${scheme}_${intent}`];
|
|
774
|
+
const groundToken = restAtom(screen.getByTestId("toast"), "_bg-");
|
|
775
|
+
const inkToken = restAtom(screen.getByText(ACTION), "_col-");
|
|
776
|
+
const ground = theme?.[groundToken ?? ""] ?? "";
|
|
777
|
+
const ink =
|
|
778
|
+
intent === "accent"
|
|
779
|
+
? (screen.getByTestId("accent-ink").getAttribute("data-fg") ?? "")
|
|
780
|
+
: (theme?.[inkToken ?? ""] ?? "");
|
|
781
|
+
const where = `${scheme} ${intent}: ${inkToken ?? "?"} on ${groundToken ?? "?"}`;
|
|
782
|
+
expect(ground, `${where} -- the toast frame paints no resting fill`).toBeTruthy();
|
|
783
|
+
expect(ink, `${where} -- the action label emits no resting ink`).toBeTruthy();
|
|
784
|
+
const alpha = restOpacity(screen.getByLabelText(ACTION));
|
|
785
|
+
const report = measureContrast({
|
|
786
|
+
foreground: paintedInk(ink, ground, alpha),
|
|
787
|
+
background: ground,
|
|
788
|
+
label: `${where} at rest opacity ${alpha}`,
|
|
789
|
+
});
|
|
790
|
+
expect(report.ratio, report.label).toBeGreaterThanOrEqual(aaTextContrastRatio);
|
|
664
791
|
cleanup();
|
|
665
792
|
}
|
|
666
793
|
},
|