@multiplatform.one/components 7.7.4 → 7.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Accordion/index.cjs +4 -0
- package/dist/cjs/Accordion/index.native.js +5 -1
- package/dist/cjs/Accordion/index.native.js.map +1 -1
- package/dist/cjs/Alert/index.native.js.map +1 -1
- package/dist/cjs/AnimateHeight/index.cjs +29 -2
- package/dist/cjs/AnimateHeight/index.native.js +30 -2
- package/dist/cjs/AnimateHeight/index.native.js.map +1 -1
- package/dist/cjs/Avatar/getInitials.native.js.map +1 -1
- package/dist/cjs/Avatar/index.native.js.map +1 -1
- package/dist/cjs/Badge/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/CardHeader.native.js.map +1 -1
- package/dist/cjs/Carousel/index.native.js +1 -1
- package/dist/cjs/Carousel/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/Collapsible.cjs +48 -0
- package/dist/cjs/Collapsible.native.js +56 -0
- package/dist/cjs/Collapsible.native.js.map +1 -0
- 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/DotIndicator/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/index.cjs +31 -1
- package/dist/cjs/DropdownMenu/index.native.js +31 -1
- package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
- package/dist/cjs/ErrorBoundary/index.native.js.map +1 -1
- package/dist/cjs/Heading.native.js.map +1 -1
- package/dist/cjs/Meter/index.cjs +12 -5
- package/dist/cjs/Meter/index.native.js +13 -6
- package/dist/cjs/Meter/index.native.js.map +1 -1
- package/dist/cjs/Meter/meter.native.js.map +1 -1
- package/dist/cjs/Pagination.cjs +28 -9
- package/dist/cjs/Pagination.native.js +29 -10
- package/dist/cjs/Pagination.native.js.map +1 -1
- package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
- package/dist/cjs/Quote/index.native.js.map +1 -1
- package/dist/cjs/Separator/index.native.js.map +1 -1
- package/dist/cjs/SheetModal/detents.native.js.map +1 -1
- package/dist/cjs/Skeleton/index.native.js.map +1 -1
- package/dist/cjs/SkipLink/index.native.js.map +1 -1
- package/dist/cjs/SortableList/SortableHandle.native.js.map +1 -1
- package/dist/cjs/SortableList/index.native.js.map +1 -1
- package/dist/cjs/SortableList/useSortableRows.native.js.map +1 -1
- package/dist/cjs/Tabs/index.cjs +145 -91
- package/dist/cjs/Tabs/index.native.js +187 -123
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/Text.native.js.map +1 -1
- package/dist/cjs/Toast/index.cjs +53 -2
- package/dist/cjs/Toast/index.native.js +55 -2
- package/dist/cjs/Toast/index.native.js.map +1 -1
- package/dist/cjs/Toast/store.native.js.map +1 -1
- package/dist/cjs/Tooltip/nativePress.native.js.map +1 -1
- package/dist/cjs/Tooltip/tooltipShared.native.js.map +1 -1
- package/dist/cjs/TreeSelect/index.native.js +1 -1
- package/dist/cjs/TreeSelect/index.native.js.map +1 -1
- package/dist/cjs/TreeSelect/treeSelectModel.native.js.map +1 -1
- package/dist/cjs/Video/PlayerChrome.native.js.map +1 -1
- package/dist/cjs/Video/VideoFrame.native.js.map +1 -1
- package/dist/cjs/Video/types.native.js.map +1 -1
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/Wizard/index.native.js +2 -2
- package/dist/cjs/Wizard/index.native.js.map +1 -1
- package/dist/cjs/actions/ActionBar.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/actions/devWarn.native.js.map +1 -1
- package/dist/cjs/actions/index.native.js.map +1 -1
- package/dist/cjs/actions/severity.native.js.map +1 -1
- package/dist/cjs/charts/Axis.cjs +5 -0
- package/dist/cjs/charts/Axis.native.js +5 -0
- package/dist/cjs/charts/Axis.native.js.map +1 -1
- package/dist/cjs/charts/BarChart.cjs +71 -57
- package/dist/cjs/charts/BarChart.native.js +81 -67
- package/dist/cjs/charts/BarChart.native.js.map +1 -1
- package/dist/cjs/charts/ChartDataView.cjs +212 -0
- package/dist/cjs/charts/ChartDataView.native.js +224 -0
- package/dist/cjs/charts/ChartDataView.native.js.map +1 -0
- package/dist/cjs/charts/ChartSurface.cjs +5 -1
- package/dist/cjs/charts/ChartSurface.native.js +5 -1
- package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
- package/dist/cjs/charts/LineChart.cjs +81 -67
- package/dist/cjs/charts/LineChart.native.js +94 -80
- package/dist/cjs/charts/LineChart.native.js.map +1 -1
- package/dist/cjs/charts/PieChart.cjs +98 -73
- package/dist/cjs/charts/PieChart.native.js +109 -84
- package/dist/cjs/charts/PieChart.native.js.map +1 -1
- package/dist/cjs/charts/Sparkline.cjs +10 -1
- package/dist/cjs/charts/Sparkline.native.js +10 -1
- package/dist/cjs/charts/Sparkline.native.js.map +1 -1
- package/dist/cjs/charts/accessibility.cjs +4 -0
- package/dist/cjs/charts/accessibility.native.js +7 -0
- package/dist/cjs/charts/accessibility.native.js.map +1 -1
- package/dist/cjs/charts/composeChart.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/charts/types.native.js.map +1 -1
- package/dist/cjs/charts/useChartTheme.native.js.map +1 -1
- package/dist/cjs/code/Code/index.native.js.map +1 -1
- package/dist/cjs/code/CodeBlock/index.cjs +6 -1
- package/dist/cjs/code/CodeBlock/index.native.js +12 -7
- package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
- package/dist/cjs/code/HighlightedCode/index.native.js.map +1 -1
- package/dist/cjs/code/Highlighter/index.native.js.map +1 -1
- package/dist/cjs/code/Pre/index.native.js.map +1 -1
- package/dist/cjs/code/index.native.js +5 -5
- package/dist/cjs/code/index.native.js.map +1 -1
- 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 +5 -4
- 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/hooks/index.native.js +1 -1
- package/dist/cjs/hooks/index.native.js.map +1 -1
- package/dist/cjs/hooks/useClipboard.native.js.map +1 -1
- package/dist/cjs/hooks/useDocumentTitle.native.js.map +1 -1
- package/dist/cjs/icons/CheckRegular.native.js.map +1 -1
- package/dist/cjs/icons/MinusRegular.native.js.map +1 -1
- package/dist/cjs/icons/index.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/icons/themed.native.js.map +1 -1
- package/dist/cjs/images/Image/ImageFrame.native.js +1 -1
- package/dist/cjs/images/Image/ImageFrame.native.js.map +1 -1
- package/dist/cjs/images/Image/index.native.js +1 -1
- package/dist/cjs/images/Image/shared.native.js +1 -1
- package/dist/cjs/images/Image/shared.native.js.map +1 -1
- package/dist/cjs/images/Image/types.native.js.map +1 -1
- package/dist/cjs/images/index.native.js.map +1 -1
- package/dist/cjs/index.native.js +29 -29
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/knobImmuneExports.cjs +0 -1
- package/dist/cjs/knobImmuneExports.native.js +0 -1
- package/dist/cjs/knobImmuneExports.native.js.map +1 -1
- package/dist/cjs/layouts/AsyncBoundary.native.js +2 -2
- package/dist/cjs/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/cjs/layouts/Debug/index.native.js.map +1 -1
- package/dist/cjs/layouts/EmptyState.native.js.map +1 -1
- package/dist/cjs/layouts/KeyboardAvoidingWrapper/behavior.native.js.map +1 -1
- package/dist/cjs/layouts/PageTemplates.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/SafeAreaWrapper/insets.native.js.map +1 -1
- package/dist/cjs/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/cjs/layouts/attachments.native.js +1 -1
- package/dist/cjs/layouts/attachments.native.js.map +1 -1
- 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 +5 -3
- package/dist/cjs/layouts/index.native.js.map +1 -1
- package/dist/cjs/layouts/page.cjs +48 -7
- package/dist/cjs/layouts/page.native.js +50 -7
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/cjs/layouts/sidebar.native.js.map +1 -1
- package/dist/cjs/layouts/tags.native.js +1 -1
- package/dist/cjs/layouts/tags.native.js.map +1 -1
- package/dist/cjs/layouts/timeline.native.js +2 -2
- package/dist/cjs/layouts/timeline.native.js.map +1 -1
- package/dist/cjs/layouts/toolbar.native.js.map +1 -1
- package/dist/cjs/shared/actionScan.native.js.map +1 -1
- package/dist/cjs/shared/i18n.native.js.map +1 -1
- package/dist/cjs/shared/t.native.js.map +1 -1
- package/dist/cjs/shared/textRidesText.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/shared/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/cjs/surfaces.native.js +1 -1
- package/dist/cjs/surfaces.native.js.map +1 -1
- package/dist/cjs/tamagui.cjs +3 -2
- package/dist/cjs/tamagui.native.js +2 -1
- package/dist/cjs/tamagui.native.js.map +1 -1
- package/dist/cjs/testSetup.native.js.map +1 -1
- package/dist/cjs/utils/setTinted.native.js.map +1 -1
- package/dist/cjs/utils/unwrapText.native.js.map +1 -1
- package/dist/cjs/views/Calendar.native.js.map +1 -1
- package/dist/cjs/views/Dashboard.cjs +110 -17
- package/dist/cjs/views/Dashboard.native.js +152 -46
- package/dist/cjs/views/Dashboard.native.js.map +1 -1
- package/dist/cjs/views/Gantt.cjs +374 -91
- package/dist/cjs/views/Gantt.native.js +444 -95
- package/dist/cjs/views/Gantt.native.js.map +1 -1
- package/dist/cjs/views/ImageGrid.native.js +1 -1
- package/dist/cjs/views/ImageGrid.native.js.map +1 -1
- package/dist/cjs/views/List.native.js.map +1 -1
- package/dist/cjs/views/ReportBuilder.native.js +1 -1
- package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
- package/dist/cjs/views/TreeView.native.js.map +1 -1
- package/dist/cjs/views/calendarMath.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 +21 -2
- package/dist/cjs/views/index.native.js.map +1 -1
- package/dist/cjs/views/kanbanDnd.native.js.map +1 -1
- package/dist/cjs/views/treeViewDnd.native.js.map +1 -1
- package/dist/cjs/views/treeViewLayout.native.js.map +1 -1
- package/dist/cjs/views/treeViewMotion.native.js.map +1 -1
- package/dist/esm/Accordion/index.mjs +4 -0
- package/dist/esm/Accordion/index.mjs.map +1 -1
- package/dist/esm/Accordion/index.native.js +4 -0
- package/dist/esm/Accordion/index.native.js.map +1 -1
- package/dist/esm/AnimateHeight/index.mjs +29 -2
- package/dist/esm/AnimateHeight/index.mjs.map +1 -1
- package/dist/esm/AnimateHeight/index.native.js +30 -2
- package/dist/esm/AnimateHeight/index.native.js.map +1 -1
- package/dist/esm/Avatar/getInitials.native.js.map +1 -1
- package/dist/esm/Avatar/index.native.js.map +1 -1
- package/dist/esm/Badge/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/Carousel/index.native.js.map +1 -1
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/Collapsible.mjs +23 -0
- package/dist/esm/Collapsible.mjs.map +1 -0
- package/dist/esm/Collapsible.native.js +28 -0
- package/dist/esm/Collapsible.native.js.map +1 -0
- 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/DotIndicator/index.native.js.map +1 -1
- package/dist/esm/DropdownMenu/index.mjs +32 -2
- package/dist/esm/DropdownMenu/index.mjs.map +1 -1
- package/dist/esm/DropdownMenu/index.native.js +32 -2
- package/dist/esm/DropdownMenu/index.native.js.map +1 -1
- package/dist/esm/ErrorBoundary/index.native.js.map +1 -1
- package/dist/esm/Heading.native.js.map +1 -1
- package/dist/esm/Meter/index.mjs +12 -5
- package/dist/esm/Meter/index.mjs.map +1 -1
- package/dist/esm/Meter/index.native.js +12 -5
- package/dist/esm/Meter/index.native.js.map +1 -1
- package/dist/esm/Meter/meter.native.js.map +1 -1
- package/dist/esm/Pagination.mjs +28 -9
- package/dist/esm/Pagination.mjs.map +1 -1
- package/dist/esm/Pagination.native.js +28 -9
- package/dist/esm/Pagination.native.js.map +1 -1
- package/dist/esm/ProgressSteps/index.native.js.map +1 -1
- package/dist/esm/Quote/index.native.js.map +1 -1
- package/dist/esm/Separator/index.native.js.map +1 -1
- package/dist/esm/SheetModal/detents.native.js.map +1 -1
- package/dist/esm/Skeleton/index.native.js.map +1 -1
- package/dist/esm/SkipLink/index.native.js.map +1 -1
- package/dist/esm/SortableList/SortableHandle.native.js.map +1 -1
- package/dist/esm/SortableList/index.native.js.map +1 -1
- package/dist/esm/SortableList/useSortableRows.native.js.map +1 -1
- package/dist/esm/Tabs/index.mjs +145 -91
- package/dist/esm/Tabs/index.mjs.map +1 -1
- package/dist/esm/Tabs/index.native.js +187 -123
- package/dist/esm/Tabs/index.native.js.map +1 -1
- package/dist/esm/Text.native.js.map +1 -1
- package/dist/esm/Toast/index.mjs +52 -3
- package/dist/esm/Toast/index.mjs.map +1 -1
- package/dist/esm/Toast/index.native.js +54 -3
- package/dist/esm/Toast/index.native.js.map +1 -1
- package/dist/esm/Toast/store.native.js.map +1 -1
- package/dist/esm/Tooltip/nativePress.native.js.map +1 -1
- package/dist/esm/Tooltip/tooltipShared.native.js.map +1 -1
- package/dist/esm/TreeSelect/index.native.js.map +1 -1
- package/dist/esm/TreeSelect/treeSelectModel.native.js.map +1 -1
- package/dist/esm/Video/PlayerChrome.native.js.map +1 -1
- package/dist/esm/Video/VideoFrame.native.js.map +1 -1
- package/dist/esm/Video/types.native.js.map +1 -1
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/Wizard/index.native.js.map +1 -1
- package/dist/esm/actions/ActionBar.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/actions/devWarn.native.js.map +1 -1
- package/dist/esm/actions/index.native.js.map +1 -1
- package/dist/esm/actions/severity.native.js.map +1 -1
- package/dist/esm/charts/Axis.mjs +6 -1
- package/dist/esm/charts/Axis.mjs.map +1 -1
- package/dist/esm/charts/Axis.native.js +6 -1
- package/dist/esm/charts/Axis.native.js.map +1 -1
- package/dist/esm/charts/BarChart.mjs +72 -58
- package/dist/esm/charts/BarChart.mjs.map +1 -1
- package/dist/esm/charts/BarChart.native.js +82 -68
- package/dist/esm/charts/BarChart.native.js.map +1 -1
- package/dist/esm/charts/ChartDataView.mjs +185 -0
- package/dist/esm/charts/ChartDataView.mjs.map +1 -0
- package/dist/esm/charts/ChartDataView.native.js +194 -0
- package/dist/esm/charts/ChartDataView.native.js.map +1 -0
- package/dist/esm/charts/ChartSurface.mjs +5 -1
- package/dist/esm/charts/ChartSurface.mjs.map +1 -1
- package/dist/esm/charts/ChartSurface.native.js +5 -1
- package/dist/esm/charts/ChartSurface.native.js.map +1 -1
- package/dist/esm/charts/LineChart.mjs +82 -68
- package/dist/esm/charts/LineChart.mjs.map +1 -1
- package/dist/esm/charts/LineChart.native.js +95 -81
- package/dist/esm/charts/LineChart.native.js.map +1 -1
- package/dist/esm/charts/PieChart.mjs +100 -75
- package/dist/esm/charts/PieChart.mjs.map +1 -1
- package/dist/esm/charts/PieChart.native.js +111 -86
- package/dist/esm/charts/PieChart.native.js.map +1 -1
- package/dist/esm/charts/Sparkline.mjs +11 -2
- package/dist/esm/charts/Sparkline.mjs.map +1 -1
- package/dist/esm/charts/Sparkline.native.js +11 -2
- package/dist/esm/charts/Sparkline.native.js.map +1 -1
- package/dist/esm/charts/accessibility.mjs +4 -1
- package/dist/esm/charts/accessibility.mjs.map +1 -1
- package/dist/esm/charts/accessibility.native.js +7 -1
- package/dist/esm/charts/accessibility.native.js.map +1 -1
- package/dist/esm/charts/composeChart.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/charts/types.native.js.map +1 -1
- package/dist/esm/charts/useChartTheme.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.native.js.map +1 -1
- package/dist/esm/code/Highlighter/index.native.js.map +1 -1
- package/dist/esm/code/Pre/index.native.js.map +1 -1
- package/dist/esm/code/index.native.js.map +1 -1
- 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/hooks/index.native.js.map +1 -1
- package/dist/esm/hooks/useClipboard.native.js.map +1 -1
- package/dist/esm/hooks/useDocumentTitle.native.js.map +1 -1
- package/dist/esm/icons/CheckRegular.native.js.map +1 -1
- package/dist/esm/icons/MinusRegular.native.js.map +1 -1
- package/dist/esm/icons/index.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/icons/themed.native.js.map +1 -1
- package/dist/esm/images/Image/ImageFrame.native.js.map +1 -1
- package/dist/esm/images/Image/shared.native.js.map +1 -1
- package/dist/esm/images/Image/types.native.js.map +1 -1
- package/dist/esm/images/index.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/knobImmuneExports.mjs +0 -1
- package/dist/esm/knobImmuneExports.mjs.map +1 -1
- package/dist/esm/knobImmuneExports.native.js +0 -1
- package/dist/esm/knobImmuneExports.native.js.map +1 -1
- package/dist/esm/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/esm/layouts/Debug/index.native.js.map +1 -1
- package/dist/esm/layouts/EmptyState.native.js.map +1 -1
- package/dist/esm/layouts/KeyboardAvoidingWrapper/behavior.native.js.map +1 -1
- package/dist/esm/layouts/PageTemplates.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/SafeAreaWrapper/insets.native.js.map +1 -1
- package/dist/esm/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/esm/layouts/attachments.native.js.map +1 -1
- 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 +49 -8
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +51 -8
- package/dist/esm/layouts/page.native.js.map +1 -1
- package/dist/esm/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/esm/layouts/sidebar.native.js.map +1 -1
- package/dist/esm/layouts/tags.native.js.map +1 -1
- package/dist/esm/layouts/timeline.native.js.map +1 -1
- package/dist/esm/layouts/toolbar.native.js.map +1 -1
- package/dist/esm/shared/actionScan.native.js.map +1 -1
- package/dist/esm/shared/i18n.native.js.map +1 -1
- package/dist/esm/shared/t.native.js.map +1 -1
- package/dist/esm/shared/textRidesText.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/shared/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/esm/surfaces.native.js.map +1 -1
- package/dist/esm/tamagui.mjs +2 -1
- package/dist/esm/tamagui.mjs.map +1 -1
- package/dist/esm/tamagui.native.js +2 -1
- package/dist/esm/tamagui.native.js.map +1 -1
- package/dist/esm/testSetup.native.js.map +1 -1
- package/dist/esm/utils/setTinted.native.js.map +1 -1
- package/dist/esm/utils/unwrapText.native.js.map +1 -1
- package/dist/esm/views/Calendar.native.js.map +1 -1
- package/dist/esm/views/Dashboard.mjs +112 -19
- package/dist/esm/views/Dashboard.mjs.map +1 -1
- package/dist/esm/views/Dashboard.native.js +153 -47
- package/dist/esm/views/Dashboard.native.js.map +1 -1
- package/dist/esm/views/Gantt.mjs +376 -93
- package/dist/esm/views/Gantt.mjs.map +1 -1
- package/dist/esm/views/Gantt.native.js +445 -96
- package/dist/esm/views/Gantt.native.js.map +1 -1
- package/dist/esm/views/ImageGrid.native.js.map +1 -1
- package/dist/esm/views/List.native.js.map +1 -1
- package/dist/esm/views/ReportBuilder.native.js.map +1 -1
- package/dist/esm/views/TreeView.native.js.map +1 -1
- package/dist/esm/views/calendarMath.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/kanbanDnd.native.js.map +1 -1
- package/dist/esm/views/treeViewDnd.native.js.map +1 -1
- package/dist/esm/views/treeViewLayout.native.js.map +1 -1
- package/dist/esm/views/treeViewMotion.native.js.map +1 -1
- package/dist/jsx/Accordion/index.mjs +4 -0
- package/dist/jsx/Accordion/index.mjs.map +1 -1
- package/dist/jsx/Accordion/index.native.js +4 -0
- package/dist/jsx/Accordion/index.native.js.map +1 -1
- package/dist/jsx/AnimateHeight/index.mjs +29 -2
- package/dist/jsx/AnimateHeight/index.mjs.map +1 -1
- package/dist/jsx/AnimateHeight/index.native.js +30 -2
- package/dist/jsx/AnimateHeight/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/Collapsible.mjs +23 -0
- package/dist/jsx/Collapsible.mjs.map +1 -0
- package/dist/jsx/Collapsible.native.js +56 -0
- package/dist/jsx/Collapsible.native.js.map +1 -0
- package/dist/jsx/CopyField/index.mjs +7 -2
- package/dist/jsx/CopyField/index.mjs.map +1 -1
- package/dist/jsx/CopyField/index.native.js +6 -1
- package/dist/jsx/CopyField/index.native.js.map +1 -1
- package/dist/jsx/DropdownMenu/index.mjs +32 -2
- package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
- package/dist/jsx/DropdownMenu/index.native.js +31 -1
- package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
- package/dist/jsx/Meter/index.mjs +12 -5
- package/dist/jsx/Meter/index.mjs.map +1 -1
- package/dist/jsx/Meter/index.native.js +12 -5
- package/dist/jsx/Meter/index.native.js.map +1 -1
- package/dist/jsx/Pagination.mjs +28 -9
- package/dist/jsx/Pagination.mjs.map +1 -1
- package/dist/jsx/Pagination.native.js +28 -9
- package/dist/jsx/Pagination.native.js.map +1 -1
- package/dist/jsx/Tabs/index.mjs +145 -91
- package/dist/jsx/Tabs/index.mjs.map +1 -1
- package/dist/jsx/Tabs/index.native.js +187 -123
- package/dist/jsx/Tabs/index.native.js.map +1 -1
- package/dist/jsx/Toast/index.mjs +52 -3
- package/dist/jsx/Toast/index.mjs.map +1 -1
- package/dist/jsx/Toast/index.native.js +55 -2
- package/dist/jsx/Toast/index.native.js.map +1 -1
- package/dist/jsx/actions/DestructiveAction.mjs +8 -14
- package/dist/jsx/actions/DestructiveAction.mjs.map +1 -1
- package/dist/jsx/actions/DestructiveAction.native.js +7 -15
- package/dist/jsx/actions/DestructiveAction.native.js.map +1 -1
- package/dist/jsx/charts/Axis.mjs +6 -1
- package/dist/jsx/charts/Axis.mjs.map +1 -1
- package/dist/jsx/charts/Axis.native.js +5 -0
- package/dist/jsx/charts/Axis.native.js.map +1 -1
- package/dist/jsx/charts/BarChart.mjs +72 -58
- package/dist/jsx/charts/BarChart.mjs.map +1 -1
- package/dist/jsx/charts/BarChart.native.js +81 -67
- package/dist/jsx/charts/BarChart.native.js.map +1 -1
- package/dist/jsx/charts/ChartDataView.mjs +185 -0
- package/dist/jsx/charts/ChartDataView.mjs.map +1 -0
- package/dist/jsx/charts/ChartDataView.native.js +224 -0
- package/dist/jsx/charts/ChartDataView.native.js.map +1 -0
- package/dist/jsx/charts/ChartSurface.mjs +5 -1
- package/dist/jsx/charts/ChartSurface.mjs.map +1 -1
- package/dist/jsx/charts/ChartSurface.native.js +5 -1
- package/dist/jsx/charts/ChartSurface.native.js.map +1 -1
- package/dist/jsx/charts/LineChart.mjs +82 -68
- package/dist/jsx/charts/LineChart.mjs.map +1 -1
- package/dist/jsx/charts/LineChart.native.js +94 -80
- package/dist/jsx/charts/LineChart.native.js.map +1 -1
- package/dist/jsx/charts/PieChart.mjs +100 -75
- package/dist/jsx/charts/PieChart.mjs.map +1 -1
- package/dist/jsx/charts/PieChart.native.js +109 -84
- package/dist/jsx/charts/PieChart.native.js.map +1 -1
- package/dist/jsx/charts/Sparkline.mjs +11 -2
- package/dist/jsx/charts/Sparkline.mjs.map +1 -1
- package/dist/jsx/charts/Sparkline.native.js +10 -1
- package/dist/jsx/charts/Sparkline.native.js.map +1 -1
- package/dist/jsx/charts/accessibility.mjs +4 -1
- package/dist/jsx/charts/accessibility.mjs.map +1 -1
- package/dist/jsx/charts/accessibility.native.js +7 -0
- package/dist/jsx/charts/accessibility.native.js.map +1 -1
- package/dist/jsx/charts/index.mjs +2 -1
- package/dist/jsx/charts/index.mjs.map +1 -1
- package/dist/jsx/charts/index.native.js +2 -0
- package/dist/jsx/charts/index.native.js.map +1 -1
- package/dist/jsx/charts/math.mjs +16 -1
- package/dist/jsx/charts/math.mjs.map +1 -1
- package/dist/jsx/charts/math.native.js +18 -0
- package/dist/jsx/charts/math.native.js.map +1 -1
- package/dist/jsx/charts/series.mjs +51 -9
- package/dist/jsx/charts/series.mjs.map +1 -1
- package/dist/jsx/charts/series.native.js +53 -11
- package/dist/jsx/charts/series.native.js.map +1 -1
- package/dist/jsx/charts/svg.mjs +40 -4
- package/dist/jsx/charts/svg.mjs.map +1 -1
- package/dist/jsx/charts/svg.native.js +46 -3
- package/dist/jsx/charts/svg.native.js.map +1 -1
- package/dist/jsx/code/CodeBlock/index.mjs +7 -2
- package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
- package/dist/jsx/code/CodeBlock/index.native.js +6 -1
- package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.mjs +8 -22
- package/dist/jsx/feedback/ConfirmDialog.mjs.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.native.js +7 -22
- package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/jsx/feedback/NotifyHost.mjs +2 -1
- package/dist/jsx/feedback/NotifyHost.mjs.map +1 -1
- package/dist/jsx/feedback/NotifyHost.native.js +3 -2
- package/dist/jsx/feedback/NotifyHost.native.js.map +1 -1
- package/dist/jsx/feedback/copy.mjs +35 -4
- package/dist/jsx/feedback/copy.mjs.map +1 -1
- package/dist/jsx/feedback/copy.native.js +38 -4
- package/dist/jsx/feedback/copy.native.js.map +1 -1
- package/dist/jsx/feedback/index.mjs +2 -2
- package/dist/jsx/feedback/index.mjs.map +1 -1
- package/dist/jsx/feedback/index.native.js +1 -0
- package/dist/jsx/feedback/index.native.js.map +1 -1
- package/dist/jsx/feedback/notify.mjs +1 -0
- package/dist/jsx/feedback/notify.mjs.map +1 -1
- package/dist/jsx/feedback/notify.native.js +1 -0
- package/dist/jsx/feedback/notify.native.js.map +1 -1
- package/dist/jsx/feedback/route.mjs +3 -0
- package/dist/jsx/feedback/route.mjs.map +1 -1
- package/dist/jsx/feedback/route.native.js +3 -0
- package/dist/jsx/feedback/route.native.js.map +1 -1
- package/dist/jsx/feedback/store.mjs +6 -1
- package/dist/jsx/feedback/store.mjs.map +1 -1
- package/dist/jsx/feedback/store.native.js +8 -0
- package/dist/jsx/feedback/store.native.js.map +1 -1
- package/dist/jsx/icons/lucide.mjs +2 -2
- package/dist/jsx/icons/lucide.mjs.map +1 -1
- package/dist/jsx/icons/lucide.native.js +2 -1
- package/dist/jsx/knobImmuneExports.mjs +0 -1
- package/dist/jsx/knobImmuneExports.mjs.map +1 -1
- package/dist/jsx/knobImmuneExports.native.js +0 -1
- package/dist/jsx/knobImmuneExports.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/index.mjs +2 -1
- package/dist/jsx/layouts/index.mjs.map +1 -1
- package/dist/jsx/layouts/index.native.js +2 -0
- package/dist/jsx/layouts/index.native.js.map +1 -1
- package/dist/jsx/layouts/page.mjs +49 -8
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +50 -7
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/shared/useKeyboardInset.mjs +1 -19
- package/dist/jsx/shared/useKeyboardInset.mjs.map +1 -1
- package/dist/jsx/shared/useKeyboardInset.native.js +3 -3
- package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/jsx/tamagui.mjs +2 -1
- package/dist/jsx/tamagui.mjs.map +1 -1
- package/dist/jsx/tamagui.native.js +2 -1
- package/dist/jsx/tamagui.native.js.map +1 -1
- package/dist/jsx/views/Dashboard.mjs +112 -19
- package/dist/jsx/views/Dashboard.mjs.map +1 -1
- package/dist/jsx/views/Dashboard.native.js +151 -45
- package/dist/jsx/views/Dashboard.native.js.map +1 -1
- package/dist/jsx/views/Gantt.mjs +376 -93
- package/dist/jsx/views/Gantt.mjs.map +1 -1
- package/dist/jsx/views/Gantt.native.js +443 -94
- package/dist/jsx/views/Gantt.native.js.map +1 -1
- package/dist/jsx/views/ganttMath.mjs +84 -3
- package/dist/jsx/views/ganttMath.mjs.map +1 -1
- package/dist/jsx/views/ganttMath.native.js +113 -3
- package/dist/jsx/views/ganttMath.native.js.map +1 -1
- package/dist/jsx/views/index.mjs +2 -2
- package/dist/jsx/views/index.mjs.map +1 -1
- package/dist/jsx/views/index.native.js +20 -1
- package/dist/jsx/views/index.native.js.map +1 -1
- package/package.json +11 -9
- package/src/Accordion/index.tsx +7 -1
- package/src/AnimateHeight/AnimateHeight.native.spec.tsx +51 -0
- package/src/AnimateHeight/index.tsx +30 -5
- package/src/Button.tsx +10 -2
- package/src/Card.spec.tsx +76 -3
- package/src/Card.stories.tsx +1 -1
- package/src/Card.tsx +13 -1
- package/src/CardFooter.stories.tsx +3 -7
- package/src/CardFooter.tsx +3 -1
- package/src/CardHeader.stories.tsx +1 -3
- package/src/Collapsible.stories.tsx +2 -2
- package/src/Collapsible.tsx +23 -0
- package/src/CopyField/CopyField.spec.tsx +66 -1
- package/src/CopyField/index.tsx +4 -3
- package/src/DropdownMenu/DropdownMenu.spec.tsx +112 -1
- package/src/DropdownMenu/DropdownMenu.stories.tsx +1 -3
- package/src/DropdownMenu/index.tsx +67 -6
- package/src/LinearGradient.stories.tsx +2 -2
- package/src/Meter/Meter.spec.tsx +59 -2
- package/src/Meter/Meter.stories.tsx +38 -0
- package/src/Meter/index.tsx +9 -4
- package/src/Pagination.simple.spec.tsx +23 -0
- package/src/Pagination.stories.tsx +8 -0
- package/src/Pagination.tsx +27 -10
- package/src/Panel.stories.tsx +1 -1
- package/src/SortableList/SortableList.spec.tsx +3 -3
- package/src/Tabs/Tabs.bandColor.spec.tsx +23 -0
- package/src/Tabs/Tabs.native.spec.tsx +35 -0
- package/src/Tabs/Tabs.spec.tsx +91 -1
- package/src/Tabs/Tabs.stories.tsx +36 -1
- package/src/Tabs/index.tsx +272 -187
- package/src/Toast/Toast.spec.tsx +56 -1
- package/src/Toast/index.tsx +68 -3
- package/src/Unspaced.stories.tsx +2 -2
- package/src/VisuallyHidden.stories.tsx +2 -2
- package/src/actions/DestructiveAction.spec.tsx +19 -3
- package/src/actions/DestructiveAction.tsx +9 -14
- package/src/charts/Axis.tsx +6 -1
- package/src/charts/BarChart.tsx +82 -67
- package/src/charts/ChartDataView.spec.tsx +104 -0
- package/src/charts/ChartDataView.tsx +158 -0
- package/src/charts/ChartSurface.tsx +7 -2
- package/src/charts/Charts.stories.tsx +213 -9
- package/src/charts/LineChart.tsx +90 -75
- package/src/charts/PieChart.knobs.spec.tsx +25 -0
- package/src/charts/PieChart.tsx +51 -9
- package/src/charts/Sparkline.tsx +25 -3
- package/src/charts/accessibility.ts +8 -0
- package/src/charts/charts.spec.tsx +77 -3
- package/src/charts/index.ts +2 -0
- package/src/charts/math.spec.ts +19 -0
- package/src/charts/math.ts +36 -0
- package/src/charts/series.tsx +101 -21
- package/src/charts/svg.spec.ts +28 -0
- package/src/charts/svg.ts +56 -2
- package/src/code/CodeBlock/CodeBlock.copy.spec.tsx +23 -0
- package/src/code/CodeBlock/index.tsx +4 -3
- package/src/disclosureForm.spec.tsx +57 -0
- package/src/disclosureNativeProps.spec.tsx +35 -0
- package/src/feedback/ConfirmDialog.nativeFocus.spec.tsx +52 -0
- package/src/feedback/ConfirmDialog.spec.tsx +20 -0
- package/src/feedback/ConfirmDialog.tsx +9 -15
- package/src/feedback/NotifyHost.tsx +11 -2
- package/src/feedback/copy.ts +36 -4
- package/src/feedback/index.ts +1 -0
- package/src/feedback/notify.spec.ts +15 -1
- package/src/feedback/notify.ts +1 -0
- package/src/feedback/route.ts +4 -0
- package/src/feedback/store.ts +7 -0
- package/src/icons/lucide.ts +1 -1
- package/src/images/SvgUri/index.native.ts +11 -3
- package/src/knobImmuneExports.ts +0 -2
- package/src/layouts/EmptyState.stories.tsx +2 -2
- package/src/layouts/Page.weight.spec.tsx +75 -0
- package/src/layouts/PageHeader.stories.tsx +4 -4
- package/src/layouts/PageTemplates.stories.tsx +2 -2
- package/src/layouts/PaneScaffold.spec.tsx +144 -4
- package/src/layouts/PaneScaffold.stories.tsx +58 -2
- package/src/layouts/PaneScaffold.tsx +156 -58
- package/src/layouts/ScreenToolbar.stories.tsx +6 -23
- package/src/layouts/index.tsx +11 -0
- package/src/layouts/layouts.spec.tsx +51 -0
- package/src/layouts/page.designLaw.spec.tsx +25 -0
- package/src/layouts/page.tsx +46 -9
- package/src/primitives.spec.tsx +19 -4
- package/src/shared/useKeyboardInset.native.ts +43 -0
- package/src/shared/useKeyboardInset.ts +2 -41
- package/src/tamagui.spec.ts +63 -0
- package/src/tamagui.ts +3 -1
- package/src/views/Dashboard.stories.tsx +38 -1
- package/src/views/Dashboard.tsx +119 -21
- package/src/views/Gantt.scroll.spec.tsx +120 -0
- package/src/views/Gantt.spec.tsx +376 -0
- package/src/views/Gantt.stories.tsx +75 -2
- package/src/views/Gantt.tsx +564 -96
- package/src/views/Kanban.spec.tsx +11 -0
- package/src/views/ganttMath.ts +142 -4
- package/src/views/index.ts +44 -1
- package/src/views/views.spec.tsx +39 -0
- package/types/Accordion/index.d.ts +2 -0
- package/types/Accordion/index.d.ts.map +1 -1
- package/types/AnimateHeight/index.d.ts +3 -4
- package/types/AnimateHeight/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/Collapsible.d.ts +19 -0
- package/types/Collapsible.d.ts.map +1 -0
- 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/Pagination.d.ts +1 -1
- package/types/Pagination.d.ts.map +1 -1
- package/types/Tabs/index.d.ts +7 -3
- package/types/Tabs/index.d.ts.map +1 -1
- package/types/Toast/index.d.ts +16 -0
- package/types/Toast/index.d.ts.map +1 -1
- package/types/actions/DestructiveAction.d.ts.map +1 -1
- package/types/charts/Axis.d.ts.map +1 -1
- package/types/charts/BarChart.d.ts.map +1 -1
- package/types/charts/ChartDataView.d.ts +22 -0
- package/types/charts/ChartDataView.d.ts.map +1 -0
- package/types/charts/ChartSurface.d.ts +4 -1
- package/types/charts/ChartSurface.d.ts.map +1 -1
- package/types/charts/LineChart.d.ts.map +1 -1
- package/types/charts/PieChart.d.ts +1 -1
- package/types/charts/PieChart.d.ts.map +1 -1
- package/types/charts/Sparkline.d.ts +3 -1
- package/types/charts/Sparkline.d.ts.map +1 -1
- package/types/charts/accessibility.d.ts +3 -0
- package/types/charts/accessibility.d.ts.map +1 -1
- package/types/charts/index.d.ts +1 -0
- package/types/charts/index.d.ts.map +1 -1
- package/types/charts/math.d.ts +12 -0
- package/types/charts/math.d.ts.map +1 -1
- package/types/charts/series.d.ts +1 -1
- package/types/charts/series.d.ts.map +1 -1
- package/types/charts/svg.d.ts +18 -2
- package/types/charts/svg.d.ts.map +1 -1
- package/types/code/CodeBlock/index.d.ts.map +1 -1
- package/types/feedback/ConfirmDialog.d.ts.map +1 -1
- package/types/feedback/NotifyHost.d.ts +3 -1
- package/types/feedback/NotifyHost.d.ts.map +1 -1
- package/types/feedback/copy.d.ts +12 -2
- package/types/feedback/copy.d.ts.map +1 -1
- package/types/feedback/index.d.ts +1 -1
- package/types/feedback/index.d.ts.map +1 -1
- package/types/feedback/notify.d.ts.map +1 -1
- package/types/feedback/route.d.ts +3 -0
- package/types/feedback/route.d.ts.map +1 -1
- package/types/feedback/store.d.ts +2 -0
- package/types/feedback/store.d.ts.map +1 -1
- package/types/icons/lucide.d.ts +1 -1
- package/types/icons/lucide.d.ts.map +1 -1
- package/types/images/SvgUri/index.native.d.ts +4 -3
- package/types/images/SvgUri/index.native.d.ts.map +1 -1
- package/types/knobImmuneExports.d.ts.map +1 -1
- package/types/layouts/PaneScaffold.d.ts +27 -5
- package/types/layouts/PaneScaffold.d.ts.map +1 -1
- package/types/layouts/index.d.ts +1 -0
- package/types/layouts/index.d.ts.map +1 -1
- package/types/layouts/page.d.ts +10 -5
- package/types/layouts/page.d.ts.map +1 -1
- package/types/shared/useKeyboardInset.d.ts +1 -14
- package/types/shared/useKeyboardInset.d.ts.map +1 -1
- package/types/shared/useKeyboardInset.native.d.ts +16 -0
- package/types/shared/useKeyboardInset.native.d.ts.map +1 -0
- package/types/tamagui.d.ts +2 -1
- package/types/tamagui.d.ts.map +1 -1
- package/types/views/Dashboard.d.ts.map +1 -1
- package/types/views/Gantt.d.ts +132 -13
- package/types/views/Gantt.d.ts.map +1 -1
- package/types/views/ganttMath.d.ts +73 -0
- package/types/views/ganttMath.d.ts.map +1 -1
- package/types/views/index.d.ts +2 -2
- package/types/views/index.d.ts.map +1 -1
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PaneScaffold + canonical layouts (DG-LAY-02) — W11.
|
|
3
3
|
*
|
|
4
|
+
* PaneScaffold is a TWO-pane scaffold: `primary` and `secondary`, no more.
|
|
5
|
+
* Three regions come from NESTING one scaffold inside a pane of another. The
|
|
6
|
+
* resolved size class rides a context down, so an inner scaffold reflows with
|
|
7
|
+
* the outer one instead of splitting inside a stacked column.
|
|
8
|
+
*
|
|
4
9
|
* Devs declare pane roles; the scaffold picks 1 vs 2 columns from the
|
|
5
10
|
* canonical layout size class (`expanded` @ 860 = two-pane budget).
|
|
6
11
|
*
|
|
@@ -13,7 +18,10 @@
|
|
|
13
18
|
* - **Supporting-pane**: secondary is meaningful only relative to primary.
|
|
14
19
|
* - **Feed**: equal-weight cards in a responsive grid.
|
|
15
20
|
*
|
|
16
|
-
*
|
|
21
|
+
* Below the two-pane budget the panes STACK (primary above secondary) and the
|
|
22
|
+
* sash goes away — a drag handle is a pointer affordance and there is nothing
|
|
23
|
+
* to drag with a thumb. Hiding a pane is the list-detail navigation idiom, not
|
|
24
|
+
* the responsive default: pass `activePane` (or `narrowLayout="swap"`) for it.
|
|
17
25
|
*/
|
|
18
26
|
|
|
19
27
|
import {
|
|
@@ -31,7 +39,17 @@ import {
|
|
|
31
39
|
type LayoutSizeClass,
|
|
32
40
|
READING_WIDTH_CH,
|
|
33
41
|
} from "@multiplatform.one/theme";
|
|
34
|
-
import {
|
|
42
|
+
import {
|
|
43
|
+
Children,
|
|
44
|
+
createContext,
|
|
45
|
+
useCallback,
|
|
46
|
+
useContext,
|
|
47
|
+
useEffect,
|
|
48
|
+
useId,
|
|
49
|
+
useRef,
|
|
50
|
+
useState,
|
|
51
|
+
type ReactNode,
|
|
52
|
+
} from "react";
|
|
35
53
|
import type { XStackProps, YStackProps } from "tamagui";
|
|
36
54
|
import { isWeb, XStack, YStack } from "tamagui";
|
|
37
55
|
import { useDirection } from "../hooks/useDirection";
|
|
@@ -51,10 +69,17 @@ export interface PaneScaffoldProps extends Omit<XStackProps, "children"> {
|
|
|
51
69
|
primary: ReactNode;
|
|
52
70
|
secondary?: ReactNode;
|
|
53
71
|
/**
|
|
54
|
-
* Which pane to show when
|
|
55
|
-
* List-detail on compact typically flips to `secondary` once an item is
|
|
72
|
+
* Which pane to show when `narrowLayout` is `swap`. Default: `primary`.
|
|
73
|
+
* List-detail on compact typically flips to `secondary` once an item is
|
|
74
|
+
* selected. Passing this prop opts the scaffold into `swap`.
|
|
56
75
|
*/
|
|
57
76
|
activePane?: PaneRole;
|
|
77
|
+
/**
|
|
78
|
+
* What happens below the two-pane budget. `stack` (the default) puts
|
|
79
|
+
* secondary under primary so no content is unreachable; `swap` renders
|
|
80
|
+
* `activePane` alone, which is the list-detail navigation idiom.
|
|
81
|
+
*/
|
|
82
|
+
narrowLayout?: "stack" | "swap";
|
|
58
83
|
/** Override the default pane budget (compact/medium → 1, expanded+ → 2). */
|
|
59
84
|
maxPanes?: 1 | 2;
|
|
60
85
|
/**
|
|
@@ -82,6 +107,14 @@ export interface PaneScaffoldProps extends Omit<XStackProps, "children"> {
|
|
|
82
107
|
sizeClass?: LayoutSizeClass;
|
|
83
108
|
}
|
|
84
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Resolved size class handed down to nested scaffolds. Without it an inner
|
|
112
|
+
* scaffold reads the WINDOW while the outer one was overridden (Storybook
|
|
113
|
+
* viewport, template test), so a stacked outer could still hold a split
|
|
114
|
+
* inner and the narrow reflow would only go one level deep.
|
|
115
|
+
*/
|
|
116
|
+
const PaneSizeClassContext = createContext<LayoutSizeClass | null>(null);
|
|
117
|
+
|
|
85
118
|
/**
|
|
86
119
|
* Adaptive one-/two-pane shell. Geometry only — surface colors stay stable
|
|
87
120
|
* across breakpoints (Material M-L5).
|
|
@@ -89,7 +122,8 @@ export interface PaneScaffoldProps extends Omit<XStackProps, "children"> {
|
|
|
89
122
|
export function PaneScaffold({
|
|
90
123
|
primary,
|
|
91
124
|
secondary,
|
|
92
|
-
activePane
|
|
125
|
+
activePane: activePaneProp,
|
|
126
|
+
narrowLayout: narrowLayoutProp,
|
|
93
127
|
maxPanes: maxPanesProp,
|
|
94
128
|
paneFlex = [1, 1],
|
|
95
129
|
paneGap,
|
|
@@ -102,23 +136,73 @@ export function PaneScaffold({
|
|
|
102
136
|
...rest
|
|
103
137
|
}: PaneScaffoldProps) {
|
|
104
138
|
const liveClass = useLayoutSizeClass();
|
|
105
|
-
const
|
|
139
|
+
const inheritedClass = useContext(PaneSizeClassContext);
|
|
140
|
+
const sizeClass = sizeClassProp ?? inheritedClass ?? liveClass;
|
|
106
141
|
// Explicit `maxPanes` is the eject hatch (force 1 or 2 regardless of class).
|
|
107
142
|
const budget = maxPanesProp ?? defaultMaxPanes(sizeClass);
|
|
108
143
|
const hasSecondary = secondary !== null && secondary !== undefined;
|
|
109
|
-
const
|
|
144
|
+
const split = budget >= 2 && hasSecondary;
|
|
110
145
|
const gapped = paneGap !== undefined;
|
|
111
146
|
const gap = gapped ? paneGap : undefined;
|
|
112
|
-
const resizable = (resizableProp ?? !gapped) &&
|
|
147
|
+
const resizable = (resizableProp ?? !gapped) && split && !gapped;
|
|
148
|
+
// `activePane` only decides anything when a pane is dropped, so passing it
|
|
149
|
+
// IS the swap opt-in. Everything else stacks: a scaffold that hides its
|
|
150
|
+
// secondary by default leaves that content unreachable on a phone.
|
|
151
|
+
const narrowLayout = narrowLayoutProp ?? (activePaneProp === undefined ? "stack" : "swap");
|
|
152
|
+
const stacked = !split && hasSecondary && narrowLayout === "stack";
|
|
153
|
+
const [primaryFlex, secondaryFlex] = paneFlex;
|
|
113
154
|
|
|
114
155
|
// flexBasis auto, not the flex:1 shorthand's 0%: react-native-web resets
|
|
115
156
|
// min-height to 0, so a 0% basis contributes zero intrinsic height inside
|
|
116
157
|
// auto-height scroll flows (Screen scroll pages) and the scaffold collapses,
|
|
117
158
|
// painting pane content over whatever follows. Bounded parents still fill
|
|
118
159
|
// (grow 1) exactly as before.
|
|
119
|
-
|
|
160
|
+
let content: ReactNode;
|
|
161
|
+
if (stacked) {
|
|
162
|
+
content = (
|
|
163
|
+
<YStack
|
|
164
|
+
flexGrow={1}
|
|
165
|
+
flexShrink={1}
|
|
166
|
+
flexBasis="auto"
|
|
167
|
+
minWidth={0}
|
|
168
|
+
width="100%"
|
|
169
|
+
gap={gap ?? 0}
|
|
170
|
+
data-testid="pane-scaffold"
|
|
171
|
+
data-panes="2"
|
|
172
|
+
data-pane-layout="stack"
|
|
173
|
+
data-size-class={sizeClass}
|
|
174
|
+
data-sash="false"
|
|
175
|
+
{...rest}
|
|
176
|
+
>
|
|
177
|
+
<YStack
|
|
178
|
+
flexGrow={1}
|
|
179
|
+
flexShrink={1}
|
|
180
|
+
flexBasis="auto"
|
|
181
|
+
minWidth={0}
|
|
182
|
+
minHeight={0}
|
|
183
|
+
width="100%"
|
|
184
|
+
{...(gapped ? undefined : paneHairlineBottom)}
|
|
185
|
+
data-testid="pane-primary"
|
|
186
|
+
>
|
|
187
|
+
{primary}
|
|
188
|
+
</YStack>
|
|
189
|
+
<YStack
|
|
190
|
+
flexGrow={1}
|
|
191
|
+
flexShrink={1}
|
|
192
|
+
flexBasis="auto"
|
|
193
|
+
minWidth={0}
|
|
194
|
+
minHeight={0}
|
|
195
|
+
width="100%"
|
|
196
|
+
data-testid="pane-secondary"
|
|
197
|
+
>
|
|
198
|
+
{secondary}
|
|
199
|
+
</YStack>
|
|
200
|
+
</YStack>
|
|
201
|
+
);
|
|
202
|
+
} else if (!split) {
|
|
203
|
+
const activePane = activePaneProp ?? "primary";
|
|
120
204
|
const shown = activePane === "secondary" && hasSecondary ? secondary : primary;
|
|
121
|
-
|
|
205
|
+
content = (
|
|
122
206
|
<YStack
|
|
123
207
|
flexGrow={1}
|
|
124
208
|
flexShrink={1}
|
|
@@ -127,62 +211,64 @@ export function PaneScaffold({
|
|
|
127
211
|
width="100%"
|
|
128
212
|
data-testid="pane-scaffold"
|
|
129
213
|
data-panes="1"
|
|
214
|
+
data-pane-layout="single"
|
|
130
215
|
data-size-class={sizeClass}
|
|
131
216
|
{...rest}
|
|
132
217
|
>
|
|
133
218
|
{shown}
|
|
134
219
|
</YStack>
|
|
135
220
|
);
|
|
221
|
+
} else {
|
|
222
|
+
content = (
|
|
223
|
+
<XStack
|
|
224
|
+
flexGrow={1}
|
|
225
|
+
flexShrink={1}
|
|
226
|
+
flexBasis="auto"
|
|
227
|
+
minWidth={0}
|
|
228
|
+
minHeight={0}
|
|
229
|
+
width="100%"
|
|
230
|
+
alignItems="stretch"
|
|
231
|
+
gap={gap ?? 0}
|
|
232
|
+
position="relative"
|
|
233
|
+
data-testid="pane-scaffold"
|
|
234
|
+
data-panes="2"
|
|
235
|
+
data-pane-layout="split"
|
|
236
|
+
data-size-class={sizeClass}
|
|
237
|
+
data-sash={resizable ? "true" : "false"}
|
|
238
|
+
{...rest}
|
|
239
|
+
>
|
|
240
|
+
{resizable ? (
|
|
241
|
+
<ResizablePanes
|
|
242
|
+
primary={primary}
|
|
243
|
+
secondary={secondary}
|
|
244
|
+
primaryFlex={primaryFlex}
|
|
245
|
+
secondaryFlex={secondaryFlex}
|
|
246
|
+
minFraction={minPaneFraction}
|
|
247
|
+
maxFraction={maxPaneFraction}
|
|
248
|
+
fraction={primaryFractionProp}
|
|
249
|
+
onFractionChange={onPrimaryFractionChange}
|
|
250
|
+
/>
|
|
251
|
+
) : (
|
|
252
|
+
<>
|
|
253
|
+
<YStack
|
|
254
|
+
flex={primaryFlex}
|
|
255
|
+
minWidth={0}
|
|
256
|
+
minHeight={0}
|
|
257
|
+
{...(gapped ? undefined : paneHairlineEnd)}
|
|
258
|
+
data-testid="pane-primary"
|
|
259
|
+
>
|
|
260
|
+
{primary}
|
|
261
|
+
</YStack>
|
|
262
|
+
<YStack flex={secondaryFlex} minWidth={0} minHeight={0} data-testid="pane-secondary">
|
|
263
|
+
{secondary}
|
|
264
|
+
</YStack>
|
|
265
|
+
</>
|
|
266
|
+
)}
|
|
267
|
+
</XStack>
|
|
268
|
+
);
|
|
136
269
|
}
|
|
137
270
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return (
|
|
141
|
-
<XStack
|
|
142
|
-
flexGrow={1}
|
|
143
|
-
flexShrink={1}
|
|
144
|
-
flexBasis="auto"
|
|
145
|
-
minWidth={0}
|
|
146
|
-
minHeight={0}
|
|
147
|
-
width="100%"
|
|
148
|
-
alignItems="stretch"
|
|
149
|
-
gap={gap ?? 0}
|
|
150
|
-
position="relative"
|
|
151
|
-
data-testid="pane-scaffold"
|
|
152
|
-
data-panes="2"
|
|
153
|
-
data-size-class={sizeClass}
|
|
154
|
-
data-sash={resizable ? "true" : "false"}
|
|
155
|
-
{...rest}
|
|
156
|
-
>
|
|
157
|
-
{resizable ? (
|
|
158
|
-
<ResizablePanes
|
|
159
|
-
primary={primary}
|
|
160
|
-
secondary={secondary}
|
|
161
|
-
primaryFlex={primaryFlex}
|
|
162
|
-
secondaryFlex={secondaryFlex}
|
|
163
|
-
minFraction={minPaneFraction}
|
|
164
|
-
maxFraction={maxPaneFraction}
|
|
165
|
-
fraction={primaryFractionProp}
|
|
166
|
-
onFractionChange={onPrimaryFractionChange}
|
|
167
|
-
/>
|
|
168
|
-
) : (
|
|
169
|
-
<>
|
|
170
|
-
<YStack
|
|
171
|
-
flex={primaryFlex}
|
|
172
|
-
minWidth={0}
|
|
173
|
-
minHeight={0}
|
|
174
|
-
{...(gapped ? undefined : paneHairlineEnd)}
|
|
175
|
-
data-testid="pane-primary"
|
|
176
|
-
>
|
|
177
|
-
{primary}
|
|
178
|
-
</YStack>
|
|
179
|
-
<YStack flex={secondaryFlex} minWidth={0} minHeight={0} data-testid="pane-secondary">
|
|
180
|
-
{secondary}
|
|
181
|
-
</YStack>
|
|
182
|
-
</>
|
|
183
|
-
)}
|
|
184
|
-
</XStack>
|
|
185
|
-
);
|
|
271
|
+
return <PaneSizeClassContext.Provider value={sizeClass}>{content}</PaneSizeClassContext.Provider>;
|
|
186
272
|
}
|
|
187
273
|
|
|
188
274
|
const paneHairlineEnd = isWeb
|
|
@@ -194,6 +280,9 @@ const paneHairlineEnd = isWeb
|
|
|
194
280
|
}
|
|
195
281
|
: { borderEndWidth: hairlineWidth, borderColor: "$borderColor" };
|
|
196
282
|
|
|
283
|
+
/** Stacked seam: the horizontal twin of `paneHairlineEnd`. */
|
|
284
|
+
const paneHairlineBottom = { ...hairline.bottom, borderColor: "$borderColor" };
|
|
285
|
+
|
|
197
286
|
function clampFraction(value: number, min: number, max: number): number {
|
|
198
287
|
return Math.min(max, Math.max(min, value));
|
|
199
288
|
}
|
|
@@ -458,12 +547,17 @@ export interface ListDetailLayoutProps extends Omit<
|
|
|
458
547
|
* Canonical list-detail: explorative list + item detail. Detail remains
|
|
459
548
|
* meaningful without the list (Material M-L4). List is the narrower pane
|
|
460
549
|
* (Linear issue view / VS Code explorer), not a 50/50 split.
|
|
550
|
+
*
|
|
551
|
+
* Below the two-pane budget this SWAPS rather than stacks — list and detail
|
|
552
|
+
* are two steps of one navigation, so `selected` decides which is on screen.
|
|
553
|
+
* Pass `narrowLayout="stack"` to show both instead.
|
|
461
554
|
*/
|
|
462
555
|
export function ListDetailLayout({
|
|
463
556
|
list,
|
|
464
557
|
detail,
|
|
465
558
|
selected = false,
|
|
466
559
|
activePane,
|
|
560
|
+
narrowLayout,
|
|
467
561
|
...rest
|
|
468
562
|
}: ListDetailLayoutProps) {
|
|
469
563
|
return (
|
|
@@ -472,6 +566,7 @@ export function ListDetailLayout({
|
|
|
472
566
|
secondary={detail}
|
|
473
567
|
paneFlex={[1, 2]}
|
|
474
568
|
activePane={activePane ?? (selected ? "secondary" : "primary")}
|
|
569
|
+
narrowLayout={narrowLayout ?? "swap"}
|
|
475
570
|
data-canonical="list-detail"
|
|
476
571
|
{...rest}
|
|
477
572
|
/>
|
|
@@ -493,6 +588,9 @@ export interface SupportingPaneLayoutProps extends Omit<
|
|
|
493
588
|
* Canonical supporting-pane: primary content + contextual support (~⅔ / ⅓).
|
|
494
589
|
* Supporting content is only meaningful relative to primary (Material M-L4).
|
|
495
590
|
* Seam is a hairline (Polaris Frame navigation / Linear properties column).
|
|
591
|
+
*
|
|
592
|
+
* Below the two-pane budget the supporting content stacks under the primary.
|
|
593
|
+
* It is never dropped: it has no screen of its own to be reached from.
|
|
496
594
|
*/
|
|
497
595
|
export function SupportingPaneLayout({ children, supporting, ...rest }: SupportingPaneLayoutProps) {
|
|
498
596
|
return (
|
|
@@ -26,16 +26,10 @@ export const Default: Story = {
|
|
|
26
26
|
name: "Main",
|
|
27
27
|
render: () => (
|
|
28
28
|
<ScreenToolbar
|
|
29
|
-
leading={
|
|
30
|
-
<Button compact variant="outlined">
|
|
31
|
-
Back
|
|
32
|
-
</Button>
|
|
33
|
-
}
|
|
29
|
+
leading={<Button compact>Back</Button>}
|
|
34
30
|
trailing={
|
|
35
31
|
<>
|
|
36
|
-
<Button compact
|
|
37
|
-
Cancel
|
|
38
|
-
</Button>
|
|
32
|
+
<Button compact>Cancel</Button>
|
|
39
33
|
<Button compact>Save</Button>
|
|
40
34
|
</>
|
|
41
35
|
}
|
|
@@ -59,7 +53,6 @@ export const DisabledAndLoading: Story = {
|
|
|
59
53
|
// the toolbar row's shared control height.
|
|
60
54
|
<Button
|
|
61
55
|
compact
|
|
62
|
-
variant="outlined"
|
|
63
56
|
disabled
|
|
64
57
|
disabledReason="No screen to go back to"
|
|
65
58
|
disabledReasonPlacement="inline"
|
|
@@ -82,22 +75,12 @@ export const ManyActionsNarrow: Story = {
|
|
|
82
75
|
render: () => (
|
|
83
76
|
<YStack maxWidth={320} borderWidth={1} borderColor="$color6" borderStyle="dashed">
|
|
84
77
|
<ScreenToolbar
|
|
85
|
-
leading={
|
|
86
|
-
<Button compact variant="outlined">
|
|
87
|
-
Back to the previous screen
|
|
88
|
-
</Button>
|
|
89
|
-
}
|
|
78
|
+
leading={<Button compact>Back to the previous screen</Button>}
|
|
90
79
|
trailing={
|
|
91
80
|
<>
|
|
92
|
-
<Button compact
|
|
93
|
-
|
|
94
|
-
</Button>
|
|
95
|
-
<Button compact variant="outlined">
|
|
96
|
-
Archive
|
|
97
|
-
</Button>
|
|
98
|
-
<Button compact variant="outlined">
|
|
99
|
-
Delete permanently
|
|
100
|
-
</Button>
|
|
81
|
+
<Button compact>Duplicate</Button>
|
|
82
|
+
<Button compact>Archive</Button>
|
|
83
|
+
<Button compact>Delete permanently</Button>
|
|
101
84
|
<Button compact>Save changes</Button>
|
|
102
85
|
</>
|
|
103
86
|
}
|
package/src/layouts/index.tsx
CHANGED
|
@@ -12,6 +12,17 @@ export * from "./page";
|
|
|
12
12
|
export * from "./pageHeadingScope";
|
|
13
13
|
export * from "./PageTemplates";
|
|
14
14
|
export * from "./PaneScaffold";
|
|
15
|
+
// EmptyState is NAMED here rather than left to reach the barrel through
|
|
16
|
+
// `export * from "./page"` (page.tsx re-exports it, so it has always been
|
|
17
|
+
// importable from @multiplatform.one/components — MPO-223's "not exported"
|
|
18
|
+
// premise was wrong, measured against published 7.7.1). Naming it is still
|
|
19
|
+
// worth doing: reachability that rides a transitive star through an unrelated
|
|
20
|
+
// module is the fragility that dropped ProgressCard twice (MPO-53, 5c7af7134),
|
|
21
|
+
// and it reads as absent to anyone grepping this file, which is how a consumer
|
|
22
|
+
// talked itself into a deep `src/layouts/EmptyState` import. `layouts.spec.tsx`
|
|
23
|
+
// asserts every module in this directory is reachable from here, so the next
|
|
24
|
+
// omission fails a test.
|
|
25
|
+
export { EmptyState, type EmptyStateProps } from "./EmptyState";
|
|
15
26
|
export {
|
|
16
27
|
AsyncBoundary,
|
|
17
28
|
AsyncSkeleton,
|
|
@@ -13,6 +13,7 @@ import * as React from "react";
|
|
|
13
13
|
import { TamaguiProvider, createTamagui } from "tamagui";
|
|
14
14
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
15
15
|
import * as Debug from "./Debug";
|
|
16
|
+
import * as EmptyStateModule from "./EmptyState";
|
|
16
17
|
import * as Layouts from "./index";
|
|
17
18
|
import { Sidebar, type SidebarSection } from "./sidebar";
|
|
18
19
|
import { Toolbar, type ToolbarAction } from "./toolbar";
|
|
@@ -72,6 +73,56 @@ describe("Layouts Index", () => {
|
|
|
72
73
|
it("should export Timeline", () => {
|
|
73
74
|
expect(Layouts).toHaveProperty("Timeline");
|
|
74
75
|
});
|
|
76
|
+
|
|
77
|
+
// MPO-223. The per-component `it`s above are a hand-kept list, and a hand-kept
|
|
78
|
+
// list is how ProgressCard fell off the catalog twice (MPO-53, then 5c7af7134):
|
|
79
|
+
// nobody adds a line for the module they forgot. This walks the directory
|
|
80
|
+
// instead, so a new module in src/layouts that nothing re-exports fails here
|
|
81
|
+
// rather than in a consumer's app.
|
|
82
|
+
//
|
|
83
|
+
// Scope is this directory's own modules: the top-level files, plus each
|
|
84
|
+
// subdirectory's index. A subdirectory's internals stay internal on purpose
|
|
85
|
+
// (SafeAreaWrapper/insets, KeyboardAvoidingWrapper/behavior), and `.native`
|
|
86
|
+
// variants are the same module on a platform this runner is not.
|
|
87
|
+
//
|
|
88
|
+
// Runtime names only — `import * as` cannot see type-only exports, so the
|
|
89
|
+
// interfaces ride the typecheck. That is enough for the failure this guards:
|
|
90
|
+
// a missing VALUE is what breaks a build.
|
|
91
|
+
it("reaches every module under src/layouts from the barrel", () => {
|
|
92
|
+
// Negations live in the GLOB, not in a filter below it: `eager: true`
|
|
93
|
+
// imports every match up front, so a `.stories.tsx` skipped afterwards has
|
|
94
|
+
// already been loaded — and loading one drags the storybook runtime into a
|
|
95
|
+
// vitest environment that has no preview API (measured: "does not provide
|
|
96
|
+
// an export named 'definePreview'", whole suite fails to collect).
|
|
97
|
+
const modules = import.meta.glob<Record<string, unknown>>(
|
|
98
|
+
[
|
|
99
|
+
"./*.tsx",
|
|
100
|
+
"./*/index.tsx",
|
|
101
|
+
"!./index.tsx",
|
|
102
|
+
"!./*.spec.tsx",
|
|
103
|
+
"!./*.stories.tsx",
|
|
104
|
+
"!./**/*.spec.tsx",
|
|
105
|
+
"!./**/*.stories.tsx",
|
|
106
|
+
],
|
|
107
|
+
{ eager: true },
|
|
108
|
+
);
|
|
109
|
+
const unreachable: string[] = [];
|
|
110
|
+
for (const [file, mod] of Object.entries(modules)) {
|
|
111
|
+
for (const name of Object.keys(mod)) {
|
|
112
|
+
if (name === "default") continue;
|
|
113
|
+
if (!(name in Layouts)) unreachable.push(`${file} -> ${name}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
expect(unreachable).toEqual([]);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// The import a consumer actually writes. It passed before EmptyState was
|
|
120
|
+
// named in index.tsx too — page.tsx re-exported it — and this locks the
|
|
121
|
+
// identity, not just the presence, so a future shadow cannot quietly swap it.
|
|
122
|
+
it("exports the same EmptyState from the barrel and from its module", () => {
|
|
123
|
+
expect(Layouts).toHaveProperty("EmptyState");
|
|
124
|
+
expect(Layouts.EmptyState).toBe(EmptyStateModule.EmptyState);
|
|
125
|
+
});
|
|
75
126
|
});
|
|
76
127
|
|
|
77
128
|
// ---------------------------------------------------------------------------
|
|
@@ -135,4 +135,29 @@ describe("density unpinned (LC-76)", () => {
|
|
|
135
135
|
const frame = container.querySelector('[data-testid="page-section"]') as HTMLElement;
|
|
136
136
|
expect(frame.getAttribute("data-density")).toBe("compact");
|
|
137
137
|
});
|
|
138
|
+
|
|
139
|
+
it("Screen's explicit density override reaches nested page primitives", () => {
|
|
140
|
+
renderWithProviders(
|
|
141
|
+
<Preset overrides={{ density: "comfortable" }}>
|
|
142
|
+
<Screen compact scroll={false}>
|
|
143
|
+
<PageHeader title="Compact screen" />
|
|
144
|
+
<PageSection title="Inherited section" />
|
|
145
|
+
</Screen>
|
|
146
|
+
</Preset>,
|
|
147
|
+
);
|
|
148
|
+
expect(screen.getByTestId("page-header").getAttribute("data-density")).toBe("compact");
|
|
149
|
+
expect(screen.getByTestId("page-section").getAttribute("data-density")).toBe("compact");
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
it("a painted section steps its interior density without shrinking its heading", () => {
|
|
153
|
+
renderWithProviders(
|
|
154
|
+
<Preset overrides={{ density: "comfortable" }}>
|
|
155
|
+
<PageSection surface title="Outer" data-testid="outer-section">
|
|
156
|
+
<PageSection title="Inner" data-testid="inner-section" />
|
|
157
|
+
</PageSection>
|
|
158
|
+
</Preset>,
|
|
159
|
+
);
|
|
160
|
+
expect(screen.getByTestId("outer-section").getAttribute("data-density")).toBe("comfortable");
|
|
161
|
+
expect(screen.getByTestId("inner-section").getAttribute("data-density")).toBe("compact");
|
|
162
|
+
});
|
|
138
163
|
});
|
package/src/layouts/page.tsx
CHANGED
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
|
|
18
18
|
import {
|
|
19
19
|
MIN_PRESS_TARGET,
|
|
20
|
+
Preset,
|
|
21
|
+
Surface,
|
|
20
22
|
hairline,
|
|
21
23
|
layoutBreakpoints,
|
|
22
24
|
resolvePageTitleScale,
|
|
@@ -55,6 +57,17 @@ function negateSpaceToken(token: string): `$-${string}` {
|
|
|
55
57
|
return `$-${token.startsWith("$") ? token.slice(1) : token}`;
|
|
56
58
|
}
|
|
57
59
|
|
|
60
|
+
function knobsFor(component: string, compact: boolean | undefined) {
|
|
61
|
+
// LC-76: an omitted override must leave density under the preset's control.
|
|
62
|
+
return compact === undefined ? { component } : { component, compact };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** Nested surfaces step density only; hue remains inherited (LC-73 / R12). */
|
|
66
|
+
function NestedScale({ density, children }: { density: string; children: ReactNode }) {
|
|
67
|
+
if (density === "compact") return children;
|
|
68
|
+
return <Preset overrides={{ density: "compact" }}>{children}</Preset>;
|
|
69
|
+
}
|
|
70
|
+
|
|
58
71
|
// ---------------------------------------------------------------------------
|
|
59
72
|
// Screen — page outer shell (scroll, max-width, padding, theme background)
|
|
60
73
|
// ---------------------------------------------------------------------------
|
|
@@ -76,6 +89,8 @@ export interface ScreenProps extends YStackProps {
|
|
|
76
89
|
noPadding?: boolean;
|
|
77
90
|
/** Props forwarded to the inner ScrollView when scroll=true. */
|
|
78
91
|
scrollViewProps?: TamaguiScrollViewProps;
|
|
92
|
+
/** Density override inherited by the subtree. Omitted follows the preset. */
|
|
93
|
+
compact?: boolean;
|
|
79
94
|
}
|
|
80
95
|
|
|
81
96
|
/**
|
|
@@ -83,8 +98,7 @@ export interface ScreenProps extends YStackProps {
|
|
|
83
98
|
* compose-only screens.
|
|
84
99
|
*
|
|
85
100
|
* SF-TRANSPARENT + SP-PAD/SP-GAP: panelPadding and gapLg restyle with the
|
|
86
|
-
* density/space knobs (LC-76).
|
|
87
|
-
* — that ceiling pinned page inset and made the density knob a no-op.
|
|
101
|
+
* density/space knobs (LC-76). Only an explicit compact prop overrides density.
|
|
88
102
|
*
|
|
89
103
|
* @example
|
|
90
104
|
* <Screen>
|
|
@@ -92,16 +106,26 @@ export interface ScreenProps extends YStackProps {
|
|
|
92
106
|
* <FrappeImageView doctype="Pokemon" />
|
|
93
107
|
* </Screen>
|
|
94
108
|
*/
|
|
95
|
-
export function Screen({
|
|
109
|
+
export function Screen({ compact, ...props }: ScreenProps) {
|
|
110
|
+
const density = compact === undefined ? undefined : compact ? "compact" : "comfortable";
|
|
111
|
+
return (
|
|
112
|
+
<Surface density={density}>
|
|
113
|
+
<ScreenInner compact={compact} {...props} />
|
|
114
|
+
</Surface>
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function ScreenInner({
|
|
96
119
|
children,
|
|
97
120
|
scroll = true,
|
|
98
121
|
maxWidth = CONTENT_MAX_WIDTH,
|
|
99
122
|
bleed = false,
|
|
100
123
|
noPadding = false,
|
|
101
124
|
scrollViewProps,
|
|
125
|
+
compact,
|
|
102
126
|
...rest
|
|
103
127
|
}: ScreenProps) {
|
|
104
|
-
const { knobProps } = useResolvedKnobs(
|
|
128
|
+
const { knobProps } = useResolvedKnobs(knobsFor("Screen", compact));
|
|
105
129
|
|
|
106
130
|
const inner = (
|
|
107
131
|
<YStack
|
|
@@ -180,6 +204,8 @@ export interface PageHeaderProps extends YStackProps {
|
|
|
180
204
|
* surface. Semantics (headingLevel) are unchanged either way.
|
|
181
205
|
*/
|
|
182
206
|
titleScale?: PageTitleScale;
|
|
207
|
+
/** Density override. Omitted follows the preset or parent Surface. */
|
|
208
|
+
compact?: boolean;
|
|
183
209
|
}
|
|
184
210
|
|
|
185
211
|
/**
|
|
@@ -200,10 +226,11 @@ export function PageHeader({
|
|
|
200
226
|
divider = true,
|
|
201
227
|
headingLevel = 1,
|
|
202
228
|
titleScale,
|
|
229
|
+
compact,
|
|
203
230
|
children,
|
|
204
231
|
...rest
|
|
205
232
|
}: PageHeaderProps) {
|
|
206
|
-
const { knobProps } = useResolvedKnobs();
|
|
233
|
+
const { knobProps } = useResolvedKnobs(knobsFor("PageHeader", compact));
|
|
207
234
|
const insetToken = usePageChromeInset();
|
|
208
235
|
// DG-A11Y-02: count the built-in title toward the Screen's h1 budget.
|
|
209
236
|
// Custom `heading` nodes have an unknown level and are not registered.
|
|
@@ -230,9 +257,10 @@ export function PageHeader({
|
|
|
230
257
|
(title ? (
|
|
231
258
|
<TitleTag
|
|
232
259
|
margin={0}
|
|
233
|
-
fontWeight={knobProps.heading.fontWeight}
|
|
234
260
|
{...titleSize}
|
|
261
|
+
fontWeight={knobProps.heading.fontWeight}
|
|
235
262
|
{...headingFamily}
|
|
263
|
+
data-font-weight-knob={knobProps.heading.fontWeight === "700" ? "bold" : "regular"}
|
|
236
264
|
>
|
|
237
265
|
{title}
|
|
238
266
|
</TitleTag>
|
|
@@ -247,6 +275,7 @@ export function PageHeader({
|
|
|
247
275
|
return (
|
|
248
276
|
<YStack
|
|
249
277
|
data-testid="page-header"
|
|
278
|
+
data-density={knobProps.density}
|
|
250
279
|
overflow="visible"
|
|
251
280
|
{...bleed}
|
|
252
281
|
{...(showHairline ? { ...hairline.bottom, borderColor: componentColors.divider } : null)}
|
|
@@ -327,6 +356,8 @@ export interface PageSectionProps extends YStackProps {
|
|
|
327
356
|
* without skips. Visuals are pinned by the shared sectionHeading scale.
|
|
328
357
|
*/
|
|
329
358
|
headingLevel?: Exclude<PageHeadingLevel, 1>;
|
|
359
|
+
/** Density override. Omitted follows the preset or parent Surface. */
|
|
360
|
+
compact?: boolean;
|
|
330
361
|
}
|
|
331
362
|
|
|
332
363
|
/**
|
|
@@ -340,10 +371,11 @@ export function PageSection({
|
|
|
340
371
|
divider = true,
|
|
341
372
|
surface = false,
|
|
342
373
|
headingLevel = 2,
|
|
374
|
+
compact,
|
|
343
375
|
children,
|
|
344
376
|
...rest
|
|
345
377
|
}: PageSectionProps) {
|
|
346
|
-
const { knobProps } = useResolvedKnobs();
|
|
378
|
+
const { knobProps } = useResolvedKnobs(knobsFor("PageSection", compact));
|
|
347
379
|
// See PageHeader: native-only heading family from the headingFont knob.
|
|
348
380
|
const headingFamily = isWeb ? null : { fontFamily: knobProps.heading.fontFamily };
|
|
349
381
|
// The sectionHeading spread pins the visual scale, so stepped levels only
|
|
@@ -387,11 +419,16 @@ export function PageSection({
|
|
|
387
419
|
// a sibling flips `surface` — only the section CONTENT earns the card's
|
|
388
420
|
// panelPadding inset (the painted surface owns it, per LC-39's converse).
|
|
389
421
|
return (
|
|
390
|
-
<YStack
|
|
422
|
+
<YStack
|
|
423
|
+
data-testid="page-section"
|
|
424
|
+
data-density={knobProps.density}
|
|
425
|
+
{...knobProps.gap}
|
|
426
|
+
{...rest}
|
|
427
|
+
>
|
|
391
428
|
{headerBlock}
|
|
392
429
|
{surface ? (
|
|
393
430
|
<YStack {...knobProps.gap} {...surfaceProps}>
|
|
394
|
-
{children}
|
|
431
|
+
<NestedScale density={knobProps.density}>{children}</NestedScale>
|
|
395
432
|
</YStack>
|
|
396
433
|
) : (
|
|
397
434
|
children
|