@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/Toast/index.tsx
CHANGED
|
@@ -52,6 +52,7 @@ import {
|
|
|
52
52
|
} from "@tamagui/toast";
|
|
53
53
|
import { useEffect, useId, useLayoutEffect, useMemo, useRef, useSyncExternalStore } from "react";
|
|
54
54
|
import type { CSSProperties, ReactNode } from "react";
|
|
55
|
+
import { AccessibilityInfo } from "react-native";
|
|
55
56
|
import { useTranslation } from "../shared/i18n";
|
|
56
57
|
import {
|
|
57
58
|
SizableText,
|
|
@@ -221,6 +222,9 @@ function paintToastFrame(
|
|
|
221
222
|
attrs: { size: string; density: string; nestedPx: number; edgeColor?: string },
|
|
222
223
|
) {
|
|
223
224
|
if (!node) return;
|
|
225
|
+
// Native host refs are not HTMLElements. Native already binds testID /
|
|
226
|
+
// data-* via dataAttrs and the intent edge via borderStartWidth.
|
|
227
|
+
if (typeof node.setAttribute !== "function") return;
|
|
224
228
|
node.setAttribute("data-testid", "toast");
|
|
225
229
|
node.setAttribute("data-size", attrs.size);
|
|
226
230
|
node.setAttribute("data-density", attrs.density);
|
|
@@ -230,6 +234,42 @@ function paintToastFrame(
|
|
|
230
234
|
if (attrs.edgeColor) node.style.borderInlineStartColor = attrs.edgeColor;
|
|
231
235
|
}
|
|
232
236
|
|
|
237
|
+
/**
|
|
238
|
+
* Spoken confirm. Tamagui's ToastAnnounce portal is web-only
|
|
239
|
+
* (`announceTextContent` is null off-web in ToastImpl), so native VoiceOver
|
|
240
|
+
* never heard CopyField's "Copied to clipboard." Put the title on the
|
|
241
|
+
* frame and announce it the same way field errors do.
|
|
242
|
+
*/
|
|
243
|
+
function spokenToastText(title: ReactNode, description?: ReactNode): string | undefined {
|
|
244
|
+
const chunks: string[] = [];
|
|
245
|
+
if (typeof title === "string" && title.trim()) chunks.push(title.trim());
|
|
246
|
+
if (typeof description === "string" && description.trim()) chunks.push(description.trim());
|
|
247
|
+
return chunks.length ? chunks.join(". ") : undefined;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
function useAnnounceToast(text: string | undefined) {
|
|
251
|
+
useEffect(() => {
|
|
252
|
+
if (isWeb || !text) return;
|
|
253
|
+
AccessibilityInfo.announceForAccessibility(text);
|
|
254
|
+
}, [text]);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
export function nativeToastA11y(text: string | undefined, hasControls: boolean, web = isWeb) {
|
|
258
|
+
if (web) return {};
|
|
259
|
+
// ToastImplFrame defaults to tabIndex:0, which Tamagui maps to accessible.
|
|
260
|
+
// Explicit false keeps native controls from disappearing inside that group.
|
|
261
|
+
if (!text || hasControls) return { accessible: false as const };
|
|
262
|
+
return {
|
|
263
|
+
accessible: true as const,
|
|
264
|
+
accessibilityLabel: text,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/** Native View controls need accessible as well as their button role and label. */
|
|
269
|
+
export function nativeToastControlA11y(web = isWeb) {
|
|
270
|
+
return web ? {} : { accessible: true as const };
|
|
271
|
+
}
|
|
272
|
+
|
|
233
273
|
// Grown transparent press target. Stays UNPAINTED — LC-71 ring lives on the
|
|
234
274
|
// inner pill via `.mp-chip-dismiss:focus-visible .mp-chip-dismiss-ring`.
|
|
235
275
|
const ToastActionTarget = styled(View, {
|
|
@@ -243,12 +283,14 @@ const ToastActionTarget = styled(View, {
|
|
|
243
283
|
alignItems: "center",
|
|
244
284
|
justifyContent: "center",
|
|
245
285
|
flexShrink: 0,
|
|
246
|
-
|
|
286
|
+
// No REST dim. The label is $color11 — the lowest AA-safe step of the hue —
|
|
287
|
+
// sitting straight on the toast fill, so it carries no headroom for a
|
|
288
|
+
// multiplier: 0.9 composited every light intent under 4.5 (MPO-128). Hover
|
|
289
|
+
// and press read off the pill's own fill instead.
|
|
247
290
|
outlineWidth: 0,
|
|
248
|
-
hoverStyle: { opacity: 1 },
|
|
249
291
|
pressStyle: { opacity: 0.95 },
|
|
250
292
|
focusStyle: { outlineWidth: 0 },
|
|
251
|
-
focusVisibleStyle: {
|
|
293
|
+
focusVisibleStyle: { outlineWidth: 0 },
|
|
252
294
|
});
|
|
253
295
|
|
|
254
296
|
const ToastActionPill = styled(View, {
|
|
@@ -423,7 +465,15 @@ function ToastBody({
|
|
|
423
465
|
}
|
|
424
466
|
return (
|
|
425
467
|
<>
|
|
426
|
-
<View
|
|
468
|
+
<View
|
|
469
|
+
flexShrink={0}
|
|
470
|
+
height={iconPx}
|
|
471
|
+
justifyContent="center"
|
|
472
|
+
marginTop={1}
|
|
473
|
+
accessible={false}
|
|
474
|
+
accessibilityElementsHidden
|
|
475
|
+
importantForAccessibility="no"
|
|
476
|
+
>
|
|
427
477
|
<Icon size={iconPx} weight="fill" color={iconColor} />
|
|
428
478
|
</View>
|
|
429
479
|
<YStack flexGrow={1} flexShrink={1} gap="$1" minWidth={0} justifyContent="center">
|
|
@@ -512,6 +562,8 @@ function ToastInner({
|
|
|
512
562
|
edgeColor,
|
|
513
563
|
} = useToastVisuals(intent, compact);
|
|
514
564
|
const showClose = dismissible ?? onDismiss != null;
|
|
565
|
+
const spoken = spokenToastText(title, description);
|
|
566
|
+
useAnnounceToast(spoken);
|
|
515
567
|
const frameRef = useRef<HTMLElement | null>(null);
|
|
516
568
|
useLayoutEffect(() => {
|
|
517
569
|
paintToastFrame(frameRef.current, {
|
|
@@ -527,8 +579,15 @@ function ToastInner({
|
|
|
527
579
|
: undefined;
|
|
528
580
|
return (
|
|
529
581
|
<XStack
|
|
530
|
-
|
|
531
|
-
|
|
582
|
+
{...(isWeb
|
|
583
|
+
? {
|
|
584
|
+
role: "status" as const,
|
|
585
|
+
"aria-live": "polite" as const,
|
|
586
|
+
"aria-atomic": true,
|
|
587
|
+
"aria-label": spoken,
|
|
588
|
+
}
|
|
589
|
+
: {})}
|
|
590
|
+
{...nativeToastA11y(spoken, action != null || showClose)}
|
|
532
591
|
className="mp-toast"
|
|
533
592
|
transition={knobProps.transition}
|
|
534
593
|
{...frameProps}
|
|
@@ -550,6 +609,7 @@ function ToastInner({
|
|
|
550
609
|
/>
|
|
551
610
|
{action && (
|
|
552
611
|
<ToastActionTarget
|
|
612
|
+
{...nativeToastControlA11y()}
|
|
553
613
|
className="mp-chip-dismiss"
|
|
554
614
|
{...toastActionPressProps(nestedPx)}
|
|
555
615
|
aria-label={action.altText ?? action.label}
|
|
@@ -571,6 +631,7 @@ function ToastInner({
|
|
|
571
631
|
)}
|
|
572
632
|
{showClose && (
|
|
573
633
|
<ToastCloseTarget
|
|
634
|
+
{...nativeToastControlA11y()}
|
|
574
635
|
className="mp-chip-dismiss"
|
|
575
636
|
aria-label={t("Dismiss notification")}
|
|
576
637
|
alignSelf={description ? "flex-start" : "center"}
|
|
@@ -628,6 +689,8 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
|
|
|
628
689
|
// Store-resolved policy: 0 = sticky/persistent (never auto-expires).
|
|
629
690
|
const duration = entry.duration === 0 ? Number.POSITIVE_INFINITY : entry.duration;
|
|
630
691
|
const assertive = entry.intent === "error" || entry.intent === "warning";
|
|
692
|
+
const spoken = spokenToastText(entry.title, entry.description);
|
|
693
|
+
useAnnounceToast(entry.open ? spoken : undefined);
|
|
631
694
|
const frameRef = useRef<HTMLElement | null>(null);
|
|
632
695
|
useLayoutEffect(() => {
|
|
633
696
|
paintToastFrame(frameRef.current, {
|
|
@@ -645,6 +708,8 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
|
|
|
645
708
|
}}
|
|
646
709
|
duration={duration}
|
|
647
710
|
type={assertive ? "foreground" : "background"}
|
|
711
|
+
{...(isWeb ? { "aria-label": spoken } : {})}
|
|
712
|
+
{...nativeToastA11y(spoken, entry.action != null || entry.dismissible)}
|
|
648
713
|
className="mp-toast"
|
|
649
714
|
transition={knobProps.transition}
|
|
650
715
|
enterStyle={enterExit}
|
|
@@ -668,6 +733,7 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
|
|
|
668
733
|
{entry.action && (
|
|
669
734
|
<TamaguiToast.Action altText={entry.action.altText ?? entry.action.label} asChild>
|
|
670
735
|
<ToastActionTarget
|
|
736
|
+
{...nativeToastControlA11y()}
|
|
671
737
|
className="mp-chip-dismiss"
|
|
672
738
|
{...toastActionPressProps(nestedPx)}
|
|
673
739
|
// Toast.Action defaults to aria-label "Close"; announce the action.
|
|
@@ -692,6 +758,7 @@ function ToastItemInner({ entry, isTop, compact }: ToastItemProps) {
|
|
|
692
758
|
{entry.dismissible && (
|
|
693
759
|
<TamaguiToast.Close asChild>
|
|
694
760
|
<ToastCloseTarget
|
|
761
|
+
{...nativeToastControlA11y()}
|
|
695
762
|
className="mp-chip-dismiss"
|
|
696
763
|
aria-label={t("Dismiss notification")}
|
|
697
764
|
{...toastClosePressProps(entry.action != null, closeVisual)}
|
package/src/TreeSelect/index.tsx
CHANGED
|
@@ -66,6 +66,14 @@ export interface TreeSelectProps extends Omit<GetProps<typeof YStack>, "children
|
|
|
66
66
|
open?: boolean;
|
|
67
67
|
onOpenChange?: (open: boolean) => void;
|
|
68
68
|
defaultExpandedIds?: string[];
|
|
69
|
+
/**
|
|
70
|
+
* MPO-283 — accessible name for the trigger. `GetProps<typeof YStack>`
|
|
71
|
+
* already admitted this prop, but it landed on the outer wrapper, which is
|
|
72
|
+
* not an accessibility element on iOS, so nothing read it. It is routed to
|
|
73
|
+
* the trigger now. `aria-label` is accepted as an alias.
|
|
74
|
+
*/
|
|
75
|
+
accessibilityLabel?: string;
|
|
76
|
+
"aria-label"?: string;
|
|
69
77
|
}
|
|
70
78
|
|
|
71
79
|
function defaultNodeIcon(hasChildren: boolean, isExpanded: boolean, iconSize: number) {
|
|
@@ -134,6 +142,24 @@ function TreeSelectRows({
|
|
|
134
142
|
aria-expanded={hasChildren ? isExpanded : undefined}
|
|
135
143
|
aria-selected={isSelected}
|
|
136
144
|
aria-level={depth + 1}
|
|
145
|
+
// MPO-283: the aria-* above are web-only. Without the RN spellings
|
|
146
|
+
// a row is not an accessibility element on iOS, so the whole tree
|
|
147
|
+
// came back as loose StaticText with no role and no selected state.
|
|
148
|
+
// `role` is overridden too: RN prefers it over accessibilityRole,
|
|
149
|
+
// and `treeitem` leaves the element out of the iOS tree the same
|
|
150
|
+
// way `radio` does (measured, iOS 26.2).
|
|
151
|
+
{...(!isWeb
|
|
152
|
+
? {
|
|
153
|
+
accessible: true,
|
|
154
|
+
role: "button" as const,
|
|
155
|
+
accessibilityRole: "button" as const,
|
|
156
|
+
accessibilityLabel: node.label,
|
|
157
|
+
accessibilityState: {
|
|
158
|
+
selected: isSelected,
|
|
159
|
+
...(hasChildren ? { expanded: isExpanded } : undefined),
|
|
160
|
+
},
|
|
161
|
+
}
|
|
162
|
+
: undefined)}
|
|
137
163
|
data-treeselect-row={node.id}
|
|
138
164
|
data-treeselect-index={String(index)}
|
|
139
165
|
data-depth={String(depth)}
|
|
@@ -181,6 +207,16 @@ function TreeSelectRows({
|
|
|
181
207
|
? t("Collapse {{label}}", { label: node.label })
|
|
182
208
|
: t("Expand {{label}}", { label: node.label })
|
|
183
209
|
}
|
|
210
|
+
// MPO-283: the aria-label above never reaches native.
|
|
211
|
+
{...(!isWeb
|
|
212
|
+
? {
|
|
213
|
+
accessible: true,
|
|
214
|
+
accessibilityRole: "button" as const,
|
|
215
|
+
accessibilityLabel: isExpanded
|
|
216
|
+
? t("Collapse {{label}}", { label: node.label })
|
|
217
|
+
: t("Expand {{label}}", { label: node.label }),
|
|
218
|
+
}
|
|
219
|
+
: undefined)}
|
|
184
220
|
width={expandIconSize}
|
|
185
221
|
height={expandIconSize}
|
|
186
222
|
alignItems="center"
|
|
@@ -321,6 +357,7 @@ function Trigger({
|
|
|
321
357
|
triggerRef,
|
|
322
358
|
sizeToken,
|
|
323
359
|
borderRadius,
|
|
360
|
+
accessibilityLabel,
|
|
324
361
|
}: {
|
|
325
362
|
display?: string;
|
|
326
363
|
placeholder: string;
|
|
@@ -328,6 +365,7 @@ function Trigger({
|
|
|
328
365
|
disabled: boolean;
|
|
329
366
|
id?: string;
|
|
330
367
|
labelled: boolean;
|
|
368
|
+
accessibilityLabel?: string;
|
|
331
369
|
onToggle: () => void;
|
|
332
370
|
triggerRef: (node: HTMLElement | null) => void;
|
|
333
371
|
sizeToken: string;
|
|
@@ -349,8 +387,21 @@ function Trigger({
|
|
|
349
387
|
role="combobox"
|
|
350
388
|
aria-haspopup="tree"
|
|
351
389
|
aria-expanded={open}
|
|
352
|
-
aria-label={labelled ? undefined : placeholder}
|
|
390
|
+
aria-label={accessibilityLabel ?? (labelled ? undefined : placeholder)}
|
|
353
391
|
id={id}
|
|
392
|
+
// MPO-283 (same family as ToggleGroup / RadioGroup): every semantic on
|
|
393
|
+
// this trigger above is a web attribute, and tamagui does not map any
|
|
394
|
+
// of them onto React Native, so on iOS the control reached the
|
|
395
|
+
// accessibility tree with no role, no name and no expanded state.
|
|
396
|
+
{...(!isWeb
|
|
397
|
+
? {
|
|
398
|
+
accessible: true,
|
|
399
|
+
role: "button" as const,
|
|
400
|
+
accessibilityRole: "button" as const,
|
|
401
|
+
accessibilityLabel: accessibilityLabel ?? display ?? placeholder,
|
|
402
|
+
accessibilityState: { disabled, expanded: open },
|
|
403
|
+
}
|
|
404
|
+
: undefined)}
|
|
354
405
|
tabIndex={disabled || open ? -1 : 0}
|
|
355
406
|
disabled={disabled}
|
|
356
407
|
cursor={disabled ? "not-allowed" : "pointer"}
|
|
@@ -582,6 +633,7 @@ function FloatingTreeSelect({
|
|
|
582
633
|
sizeToken,
|
|
583
634
|
borderRadius,
|
|
584
635
|
loading,
|
|
636
|
+
accessibilityLabel,
|
|
585
637
|
}: {
|
|
586
638
|
nodes: TreeNode[];
|
|
587
639
|
value?: string;
|
|
@@ -599,6 +651,7 @@ function FloatingTreeSelect({
|
|
|
599
651
|
sizeToken: string;
|
|
600
652
|
borderRadius: number | string;
|
|
601
653
|
loading?: boolean;
|
|
654
|
+
accessibilityLabel?: string;
|
|
602
655
|
}) {
|
|
603
656
|
const treeId = useId();
|
|
604
657
|
const searchRef = useRef<HTMLInputElement | null>(null);
|
|
@@ -695,6 +748,7 @@ function FloatingTreeSelect({
|
|
|
695
748
|
triggerRef={panel.setReferenceRef}
|
|
696
749
|
sizeToken={sizeToken}
|
|
697
750
|
borderRadius={borderRadius}
|
|
751
|
+
accessibilityLabel={accessibilityLabel}
|
|
698
752
|
/>
|
|
699
753
|
{panel.mounted && (
|
|
700
754
|
<FloatingFocusManager context={panel.context} modal={false} initialFocus={-1}>
|
|
@@ -772,6 +826,7 @@ function SheetTreeSelect({
|
|
|
772
826
|
sizeToken,
|
|
773
827
|
borderRadius,
|
|
774
828
|
loading,
|
|
829
|
+
accessibilityLabel,
|
|
775
830
|
}: {
|
|
776
831
|
nodes: TreeNode[];
|
|
777
832
|
value?: string;
|
|
@@ -789,6 +844,7 @@ function SheetTreeSelect({
|
|
|
789
844
|
sizeToken: string;
|
|
790
845
|
borderRadius: number | string;
|
|
791
846
|
loading?: boolean;
|
|
847
|
+
accessibilityLabel?: string;
|
|
792
848
|
}) {
|
|
793
849
|
const treeId = useId();
|
|
794
850
|
const searchRef = useRef<HTMLInputElement | null>(null);
|
|
@@ -844,6 +900,7 @@ function SheetTreeSelect({
|
|
|
844
900
|
}}
|
|
845
901
|
sizeToken={sizeToken}
|
|
846
902
|
borderRadius={borderRadius}
|
|
903
|
+
accessibilityLabel={accessibilityLabel}
|
|
847
904
|
/>
|
|
848
905
|
}
|
|
849
906
|
header={
|
|
@@ -902,6 +959,8 @@ export function TreeSelect({
|
|
|
902
959
|
onOpenChange,
|
|
903
960
|
defaultExpandedIds,
|
|
904
961
|
id: idProp,
|
|
962
|
+
accessibilityLabel,
|
|
963
|
+
"aria-label": ariaLabel,
|
|
905
964
|
...stackProps
|
|
906
965
|
}: TreeSelectProps) {
|
|
907
966
|
if (isWeb) ensureKeyboardModalityTracking();
|
|
@@ -965,6 +1024,7 @@ export function TreeSelect({
|
|
|
965
1024
|
sizeToken: String(knobProps.sizeToken),
|
|
966
1025
|
borderRadius: knobProps.borderRadius.borderRadius,
|
|
967
1026
|
loading,
|
|
1027
|
+
accessibilityLabel: accessibilityLabel ?? ariaLabel,
|
|
968
1028
|
};
|
|
969
1029
|
|
|
970
1030
|
const core = shouldUseSheet ? (
|
package/src/Unspaced.stories.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
2
|
-
import { Text
|
|
3
|
-
import { Unspaced } from "./tamagui";
|
|
2
|
+
import { Text } from "./Text";
|
|
3
|
+
import { Unspaced, YStack } from "./tamagui";
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof Unspaced> = {
|
|
6
6
|
title: "Components/Unspaced",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
2
|
-
import { Text
|
|
3
|
-
import { VisuallyHidden } from "./tamagui";
|
|
2
|
+
import { Text } from "./Text";
|
|
3
|
+
import { VisuallyHidden, YStack } from "./tamagui";
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof VisuallyHidden> = {
|
|
6
6
|
title: "Components/VisuallyHidden",
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* @vitest-environment jsdom
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
import { readFileSync } from "node:fs";
|
|
6
|
+
import { resolve } from "node:path";
|
|
5
7
|
import { fireEvent, screen, waitFor } from "@testing-library/react";
|
|
6
8
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
7
9
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
@@ -252,7 +254,7 @@ describe("DestructiveAction", () => {
|
|
|
252
254
|
await waitFor(() => expect(onAction).toHaveBeenCalledTimes(1));
|
|
253
255
|
});
|
|
254
256
|
|
|
255
|
-
it("typed-confirm
|
|
257
|
+
it("typed-confirm field is a Tamagui Input (native-safe), not a raw HTML input with #ccc", async () => {
|
|
256
258
|
renderWithProviders(
|
|
257
259
|
<DestructiveAction
|
|
258
260
|
severity="high"
|
|
@@ -264,8 +266,22 @@ describe("DestructiveAction", () => {
|
|
|
264
266
|
);
|
|
265
267
|
fireEvent.click(screen.getByText("Delete project"));
|
|
266
268
|
await waitFor(() => expect(alertdialog()).toBeTruthy());
|
|
267
|
-
const
|
|
269
|
+
const marked = alertdialog()?.querySelector("[data-mp-confirm-expected]");
|
|
270
|
+
expect(marked).toBeTruthy();
|
|
271
|
+
const input =
|
|
272
|
+
marked instanceof HTMLInputElement
|
|
273
|
+
? marked
|
|
274
|
+
: (marked?.querySelector("input") as HTMLInputElement | null);
|
|
268
275
|
expect(input).toBeTruthy();
|
|
269
|
-
expect(input
|
|
276
|
+
expect(input!.getAttribute("style") ?? input!.style.cssText).not.toMatch(/#ccc/i);
|
|
277
|
+
expect(alertdialog()?.querySelector("[data-mp-confirm-prompt]")?.textContent).toContain(
|
|
278
|
+
'Type "my-project" to confirm.',
|
|
279
|
+
);
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
it("typed-confirm TSX has no HTML span/input hosts (MPO-165)", () => {
|
|
283
|
+
const src = readFileSync(resolve(process.cwd(), "src/actions/DestructiveAction.tsx"), "utf8");
|
|
284
|
+
expect(src).not.toMatch(/<span[\s>]/);
|
|
285
|
+
expect(src).not.toMatch(/<input[\s>]/);
|
|
270
286
|
});
|
|
271
287
|
});
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { Button, formatActionLabel, type ButtonProps } from "@multiplatform.one/forms";
|
|
9
9
|
import { useCallback, useState, type ReactNode } from "react";
|
|
10
10
|
import { useTranslation } from "../shared/i18n";
|
|
11
|
-
import { Paragraph, YStack } from "tamagui";
|
|
11
|
+
import { Input, Paragraph, YStack } from "tamagui";
|
|
12
12
|
import { ConfirmDialog } from "../feedback/ConfirmDialog";
|
|
13
13
|
import { withInterp } from "../shared/t";
|
|
14
14
|
import {
|
|
@@ -211,24 +211,19 @@ export function DestructiveAction({
|
|
|
211
211
|
dialogCtx.expectedText != null ? (
|
|
212
212
|
<YStack gap="$3">
|
|
213
213
|
{consequence ? <Paragraph size="$3">{consequence}</Paragraph> : null}
|
|
214
|
-
<
|
|
215
|
-
|
|
214
|
+
<Paragraph size="$3" data-mp-confirm-prompt="">
|
|
215
|
+
{typedPrompt}
|
|
216
|
+
</Paragraph>
|
|
217
|
+
<Input
|
|
216
218
|
value={typedText}
|
|
217
|
-
|
|
219
|
+
onChangeText={setTypedText}
|
|
218
220
|
placeholder={dialogCtx.expectedText}
|
|
219
221
|
autoCapitalize="none"
|
|
220
|
-
autoCorrect=
|
|
222
|
+
autoCorrect={false}
|
|
221
223
|
spellCheck={false}
|
|
222
224
|
data-mp-confirm-expected=""
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
padding: "8px 12px",
|
|
226
|
-
borderRadius: 8,
|
|
227
|
-
border: "1px solid var(--borderColor, var(--c-color6, currentColor))",
|
|
228
|
-
background: "var(--background, transparent)",
|
|
229
|
-
color: "inherit",
|
|
230
|
-
font: "inherit",
|
|
231
|
-
}}
|
|
225
|
+
accessibilityLabel={typedPrompt ?? undefined}
|
|
226
|
+
width="100%"
|
|
232
227
|
/>
|
|
233
228
|
</YStack>
|
|
234
229
|
) : (
|
package/src/charts/Axis.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ScaleBand, ScaleLinear, ScalePoint } from "d3-scale";
|
|
2
2
|
import { formatAxisTick, getLinearTicks, truncateLabel } from "./math";
|
|
3
|
-
import { G, Line, SvgText } from "./svg";
|
|
3
|
+
import { G, Line, SvgText, chartChromeProps } from "./svg";
|
|
4
4
|
import type { PlotArea } from "./types";
|
|
5
5
|
import { useChartTheme } from "./useChartTheme";
|
|
6
6
|
|
|
@@ -47,6 +47,7 @@ export function XAxis({
|
|
|
47
47
|
<G>
|
|
48
48
|
{showLine ? (
|
|
49
49
|
<Line
|
|
50
|
+
{...chartChromeProps("axis")}
|
|
50
51
|
x1={plot.x}
|
|
51
52
|
y1={y}
|
|
52
53
|
x2={plot.x + plot.width}
|
|
@@ -64,6 +65,7 @@ export function XAxis({
|
|
|
64
65
|
<G key={`${value}-${index}`}>
|
|
65
66
|
{showTicks ? (
|
|
66
67
|
<Line
|
|
68
|
+
{...chartChromeProps("axis")}
|
|
67
69
|
x1={center}
|
|
68
70
|
y1={y}
|
|
69
71
|
x2={center}
|
|
@@ -130,6 +132,7 @@ export function YAxis({
|
|
|
130
132
|
<G>
|
|
131
133
|
{showLine ? (
|
|
132
134
|
<Line
|
|
135
|
+
{...chartChromeProps("axis")}
|
|
133
136
|
x1={plot.x}
|
|
134
137
|
y1={plot.y}
|
|
135
138
|
x2={plot.x}
|
|
@@ -144,6 +147,7 @@ export function YAxis({
|
|
|
144
147
|
<G key={`${value}-${index}`}>
|
|
145
148
|
{showGrid ? (
|
|
146
149
|
<Line
|
|
150
|
+
{...chartChromeProps("grid")}
|
|
147
151
|
x1={plot.x}
|
|
148
152
|
y1={y}
|
|
149
153
|
x2={plot.x + plot.width}
|
|
@@ -154,6 +158,7 @@ export function YAxis({
|
|
|
154
158
|
) : null}
|
|
155
159
|
{showTicks ? (
|
|
156
160
|
<Line
|
|
161
|
+
{...chartChromeProps("axis")}
|
|
157
162
|
x1={plot.x - TICK_LENGTH}
|
|
158
163
|
y1={y}
|
|
159
164
|
x2={plot.x}
|
package/src/charts/BarChart.tsx
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { useTranslation } from "../shared/i18n";
|
|
2
2
|
import type { YStackProps } from "tamagui";
|
|
3
3
|
import { XAxis, YAxis } from "./Axis";
|
|
4
|
+
import { ChartDataFrame } from "./ChartDataView";
|
|
4
5
|
import { ChartSurface } from "./ChartSurface";
|
|
5
|
-
import { describeChart, describeDatum } from "./accessibility";
|
|
6
|
+
import { chartDatumText, describeChart, describeDatum } from "./accessibility";
|
|
6
7
|
import { computeCartesianPlot, resolveSeriesFills, thinCategories } from "./composeChart";
|
|
7
8
|
import {
|
|
8
9
|
createBandScale,
|
|
@@ -83,73 +84,87 @@ export function BarChart({
|
|
|
83
84
|
const interactive = Boolean(onDatumPress || onDatumHoverIn || onDatumHoverOut);
|
|
84
85
|
|
|
85
86
|
return (
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
87
|
+
<ChartDataFrame data={data} title={title} valueFormatter={valueFormatter} width={width}>
|
|
88
|
+
<ChartSurface
|
|
89
|
+
label={ariaLabel}
|
|
90
|
+
proof={{
|
|
91
|
+
kind: "bar",
|
|
92
|
+
separated: true,
|
|
93
|
+
datumText: false,
|
|
94
|
+
datumValues: chartDatumText(data, valueFormatter),
|
|
95
|
+
datumCount: data.length,
|
|
96
|
+
}}
|
|
97
|
+
height={height}
|
|
98
|
+
width={width}
|
|
99
|
+
{...stackProps}
|
|
100
|
+
>
|
|
101
|
+
{(size) => {
|
|
102
|
+
const domain = domainProp ?? valueDomain(data.map((datum) => datum.value));
|
|
103
|
+
// Explicit domains stay literal (nice: false) so a shared 0–255
|
|
104
|
+
// scale does not drift to 0–260. Auto domains still nice for ticks.
|
|
105
|
+
const nice = domainProp ? false : undefined;
|
|
106
|
+
// Ticks come from the domain alone, so the margin scale needs no
|
|
107
|
+
// meaningful range yet — the plot rectangle depends on label widths.
|
|
108
|
+
const marginScale = createLinearScale({ domain, range: [0, 1], nice });
|
|
109
|
+
const tickValues = getLinearTicks(marginScale, yTicks);
|
|
110
|
+
const plot = computeCartesianPlot(size, {
|
|
111
|
+
showXAxis,
|
|
112
|
+
showYAxis,
|
|
113
|
+
yTickLabels: tickValues.map((value) => format(value)),
|
|
114
|
+
fontSize: labelFontSize,
|
|
115
|
+
});
|
|
116
|
+
if (plot.width <= 0 || plot.height <= 0 || data.length === 0) return null;
|
|
117
|
+
const xScale = createBandScale({
|
|
118
|
+
domain: data.map((datum) => datum.label),
|
|
119
|
+
range: [plot.x, plot.x + plot.width],
|
|
120
|
+
});
|
|
121
|
+
const yScale = createLinearScale({
|
|
122
|
+
domain,
|
|
123
|
+
range: [plot.y + plot.height, plot.y],
|
|
124
|
+
nice,
|
|
125
|
+
});
|
|
126
|
+
return (
|
|
127
|
+
<>
|
|
128
|
+
{showYAxis || showGrid ? (
|
|
129
|
+
<YAxis
|
|
130
|
+
plot={plot}
|
|
131
|
+
scale={yScale}
|
|
132
|
+
ticks={yTicks}
|
|
133
|
+
tickFormat={(value) => format(value)}
|
|
134
|
+
showLabels={showYAxis}
|
|
135
|
+
showGrid={showGrid}
|
|
136
|
+
/>
|
|
137
|
+
) : null}
|
|
138
|
+
<BarSeries
|
|
139
|
+
data={data}
|
|
140
|
+
xScale={xScale}
|
|
141
|
+
yScale={yScale}
|
|
116
142
|
plot={plot}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
143
|
+
fills={fills}
|
|
144
|
+
onDatumPress={onDatumPress}
|
|
145
|
+
onDatumHoverIn={onDatumHoverIn}
|
|
146
|
+
onDatumHoverOut={onDatumHoverOut}
|
|
147
|
+
datumLabel={
|
|
148
|
+
interactive
|
|
149
|
+
? (datum) => describeDatum({ datum, formatValue: valueFormatter })
|
|
150
|
+
: undefined
|
|
151
|
+
}
|
|
122
152
|
/>
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
{showXAxis ? (
|
|
140
|
-
<XAxis
|
|
141
|
-
plot={plot}
|
|
142
|
-
scale={xScale}
|
|
143
|
-
tickValues={thinCategories(
|
|
144
|
-
data.map((datum) => datum.label),
|
|
145
|
-
plot.width,
|
|
146
|
-
labelFontSize,
|
|
147
|
-
)}
|
|
148
|
-
/>
|
|
149
|
-
) : null}
|
|
150
|
-
</>
|
|
151
|
-
);
|
|
152
|
-
}}
|
|
153
|
-
</ChartSurface>
|
|
153
|
+
{showXAxis ? (
|
|
154
|
+
<XAxis
|
|
155
|
+
plot={plot}
|
|
156
|
+
scale={xScale}
|
|
157
|
+
tickValues={thinCategories(
|
|
158
|
+
data.map((datum) => datum.label),
|
|
159
|
+
plot.width,
|
|
160
|
+
labelFontSize,
|
|
161
|
+
)}
|
|
162
|
+
/>
|
|
163
|
+
) : null}
|
|
164
|
+
</>
|
|
165
|
+
);
|
|
166
|
+
}}
|
|
167
|
+
</ChartSurface>
|
|
168
|
+
</ChartDataFrame>
|
|
154
169
|
);
|
|
155
170
|
}
|