@multiplatform.one/components 7.10.0 → 7.15.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/README.md +100 -2
- package/dist/cjs/Accordion/index.cjs +2 -6
- package/dist/cjs/Accordion/index.native.js +2 -6
- package/dist/cjs/Accordion/index.native.js.map +1 -1
- package/dist/cjs/AnimateHeight/index.cjs +1 -3
- package/dist/cjs/AnimateHeight/index.native.js +1 -3
- package/dist/cjs/AnimateHeight/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +8 -1
- package/dist/cjs/Chip/index.native.js +8 -1
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/SheetModal/index.cjs +22 -3
- package/dist/cjs/SheetModal/index.native.js +115 -27
- package/dist/cjs/SheetModal/index.native.js.map +1 -1
- package/dist/cjs/Tabs/index.cjs +35 -18
- package/dist/cjs/Tabs/index.native.js +39 -18
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/Text.cjs +2 -0
- package/dist/cjs/Text.native.js +2 -0
- package/dist/cjs/Text.native.js.map +1 -1
- package/dist/cjs/TreeSelect/index.cjs +55 -52
- package/dist/cjs/TreeSelect/index.native.js +55 -52
- package/dist/cjs/TreeSelect/index.native.js.map +1 -1
- package/dist/cjs/Video/PlayerChrome.cjs +3 -9
- package/dist/cjs/Video/PlayerChrome.native.js +3 -9
- package/dist/cjs/Video/PlayerChrome.native.js.map +1 -1
- package/dist/cjs/code/Code/index.cjs +6 -0
- package/dist/cjs/code/Code/index.native.js +7 -4
- package/dist/cjs/code/Code/index.native.js.map +1 -1
- package/dist/cjs/code/CodeBlock/index.cjs +4 -5
- package/dist/cjs/code/CodeBlock/index.native.js +4 -5
- package/dist/cjs/code/CodeBlock/index.native.js.map +1 -1
- package/dist/cjs/icons/themed.cjs +2 -1
- package/dist/cjs/icons/themed.native.js +2 -1
- package/dist/cjs/icons/themed.native.js.map +1 -1
- package/dist/cjs/knobImmuneExports.cjs +3 -3
- package/dist/cjs/knobImmuneExports.native.js +3 -3
- package/dist/cjs/layouts/PaneScaffold.cjs +70 -42
- package/dist/cjs/layouts/PaneScaffold.native.js +75 -48
- package/dist/cjs/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/cjs/layouts/page.cjs +2 -1
- package/dist/cjs/layouts/page.native.js +2 -1
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/sidebar.cjs +1 -3
- package/dist/cjs/layouts/sidebar.native.js +1 -3
- package/dist/cjs/layouts/sidebar.native.js.map +1 -1
- package/dist/cjs/layouts/tags.native.js.map +1 -1
- package/dist/cjs/surfaces.cjs +0 -32
- package/dist/cjs/surfaces.native.js +0 -32
- package/dist/cjs/surfaces.native.js.map +1 -1
- package/dist/cjs/views/List.cjs +1 -3
- package/dist/cjs/views/List.native.js +1 -3
- package/dist/cjs/views/List.native.js.map +1 -1
- package/dist/cjs/views/Matrix.cjs +568 -0
- package/dist/cjs/views/Matrix.native.js +612 -0
- package/dist/cjs/views/Matrix.native.js.map +1 -0
- package/dist/cjs/views/TreeView.cjs +175 -43
- package/dist/cjs/views/TreeView.native.js +181 -46
- package/dist/cjs/views/TreeView.native.js.map +1 -1
- package/dist/cjs/views/ganttMath.cjs +2 -0
- package/dist/cjs/views/ganttMath.native.js +2 -0
- package/dist/cjs/views/ganttMath.native.js.map +1 -1
- package/dist/cjs/views/index.cjs +16 -0
- package/dist/cjs/views/index.native.js +16 -0
- package/dist/cjs/views/index.native.js.map +1 -1
- package/dist/cjs/views/matrixMath.cjs +157 -0
- package/dist/cjs/views/matrixMath.native.js +229 -0
- package/dist/cjs/views/matrixMath.native.js.map +1 -0
- package/dist/esm/Accordion/index.mjs +3 -7
- package/dist/esm/Accordion/index.mjs.map +1 -1
- package/dist/esm/Accordion/index.native.js +3 -7
- package/dist/esm/Accordion/index.native.js.map +1 -1
- package/dist/esm/AnimateHeight/index.mjs +2 -4
- package/dist/esm/AnimateHeight/index.mjs.map +1 -1
- package/dist/esm/AnimateHeight/index.native.js +2 -4
- 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.native.js.map +1 -1
- package/dist/esm/Carousel/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +9 -2
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +9 -2
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/Collapsible.native.js.map +1 -1
- package/dist/esm/ContextMenu/index.native.js.map +1 -1
- 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.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.native.js.map +1 -1
- package/dist/esm/Meter/meter.native.js.map +1 -1
- 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/SheetModal/index.mjs +22 -3
- package/dist/esm/SheetModal/index.mjs.map +1 -1
- package/dist/esm/SheetModal/index.native.js +117 -29
- package/dist/esm/SheetModal/index.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 +36 -19
- package/dist/esm/Tabs/index.mjs.map +1 -1
- package/dist/esm/Tabs/index.native.js +40 -19
- package/dist/esm/Tabs/index.native.js.map +1 -1
- package/dist/esm/Text.mjs +3 -1
- package/dist/esm/Text.mjs.map +1 -1
- package/dist/esm/Text.native.js +3 -1
- package/dist/esm/Text.native.js.map +1 -1
- 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.mjs +56 -53
- package/dist/esm/TreeSelect/index.mjs.map +1 -1
- package/dist/esm/TreeSelect/index.native.js +56 -53
- 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.mjs +4 -10
- package/dist/esm/Video/PlayerChrome.mjs.map +1 -1
- package/dist/esm/Video/PlayerChrome.native.js +4 -10
- 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.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.native.js.map +1 -1
- package/dist/esm/charts/BarChart.native.js.map +1 -1
- package/dist/esm/charts/ChartDataView.native.js.map +1 -1
- package/dist/esm/charts/ChartSurface.native.js.map +1 -1
- package/dist/esm/charts/LineChart.native.js.map +1 -1
- package/dist/esm/charts/PieChart.native.js.map +1 -1
- package/dist/esm/charts/Sparkline.native.js.map +1 -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.native.js.map +1 -1
- package/dist/esm/charts/math.native.js.map +1 -1
- package/dist/esm/charts/series.native.js.map +1 -1
- 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/Code/index.mjs +6 -0
- package/dist/esm/code/Code/index.mjs.map +1 -1
- package/dist/esm/code/Code/index.native.js +10 -7
- package/dist/esm/code/Code/index.native.js.map +1 -1
- package/dist/esm/code/CodeBlock/index.mjs +5 -6
- package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
- package/dist/esm/code/CodeBlock/index.native.js +5 -6
- 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.native.js.map +1 -1
- package/dist/esm/feedback/NotifyHost.native.js.map +1 -1
- package/dist/esm/feedback/copy.native.js.map +1 -1
- package/dist/esm/feedback/index.native.js.map +1 -1
- package/dist/esm/feedback/notify.native.js.map +1 -1
- package/dist/esm/feedback/route.native.js.map +1 -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.native.js.map +1 -1
- package/dist/esm/icons/themed.mjs +3 -2
- package/dist/esm/icons/themed.mjs.map +1 -1
- package/dist/esm/icons/themed.native.js +3 -2
- 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 +3 -3
- package/dist/esm/knobImmuneExports.native.js +3 -3
- 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 +70 -42
- package/dist/esm/layouts/PaneScaffold.mjs.map +1 -1
- package/dist/esm/layouts/PaneScaffold.native.js +75 -48
- 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.native.js.map +1 -1
- package/dist/esm/layouts/page.mjs +3 -2
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +3 -2
- 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.mjs +2 -4
- package/dist/esm/layouts/sidebar.mjs.map +1 -1
- package/dist/esm/layouts/sidebar.native.js +2 -4
- package/dist/esm/layouts/sidebar.native.js.map +1 -1
- package/dist/esm/layouts/tags.mjs.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/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/esm/surfaces.mjs +1 -33
- package/dist/esm/surfaces.mjs.map +1 -1
- package/dist/esm/surfaces.native.js +1 -33
- package/dist/esm/surfaces.native.js.map +1 -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.native.js.map +1 -1
- 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.mjs +2 -4
- package/dist/esm/views/List.mjs.map +1 -1
- package/dist/esm/views/List.native.js +2 -4
- package/dist/esm/views/List.native.js.map +1 -1
- package/dist/esm/views/Matrix.mjs +543 -0
- package/dist/esm/views/Matrix.mjs.map +1 -0
- package/dist/esm/views/Matrix.native.js +573 -0
- package/dist/esm/views/Matrix.native.js.map +1 -0
- package/dist/esm/views/ReportBuilder.native.js.map +1 -1
- package/dist/esm/views/TreeView.mjs +175 -43
- package/dist/esm/views/TreeView.mjs.map +1 -1
- package/dist/esm/views/TreeView.native.js +181 -46
- 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 +1 -1
- package/dist/esm/views/ganttMath.mjs.map +1 -1
- package/dist/esm/views/ganttMath.native.js +1 -1
- package/dist/esm/views/ganttMath.native.js.map +1 -1
- package/dist/esm/views/index.mjs +4 -2
- package/dist/esm/views/index.mjs.map +1 -1
- package/dist/esm/views/index.native.js +4 -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/matrixMath.mjs +122 -0
- package/dist/esm/views/matrixMath.mjs.map +1 -0
- package/dist/esm/views/matrixMath.native.js +191 -0
- package/dist/esm/views/matrixMath.native.js.map +1 -0
- 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/esm/views/treeViewReveal.native.js.map +1 -1
- package/dist/jsx/Accordion/index.mjs +3 -7
- package/dist/jsx/Accordion/index.mjs.map +1 -1
- package/dist/jsx/Accordion/index.native.js +2 -6
- package/dist/jsx/Accordion/index.native.js.map +1 -1
- package/dist/jsx/AnimateHeight/index.mjs +2 -4
- package/dist/jsx/AnimateHeight/index.mjs.map +1 -1
- package/dist/jsx/AnimateHeight/index.native.js +1 -3
- package/dist/jsx/AnimateHeight/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +9 -2
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +8 -1
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/SheetModal/index.mjs +22 -3
- package/dist/jsx/SheetModal/index.mjs.map +1 -1
- package/dist/jsx/SheetModal/index.native.js +115 -27
- package/dist/jsx/SheetModal/index.native.js.map +1 -1
- package/dist/jsx/Tabs/index.mjs +36 -19
- package/dist/jsx/Tabs/index.mjs.map +1 -1
- package/dist/jsx/Tabs/index.native.js +39 -18
- package/dist/jsx/Tabs/index.native.js.map +1 -1
- package/dist/jsx/Text.mjs +3 -1
- package/dist/jsx/Text.mjs.map +1 -1
- package/dist/jsx/Text.native.js +2 -0
- package/dist/jsx/Text.native.js.map +1 -1
- package/dist/jsx/TreeSelect/index.mjs +56 -53
- package/dist/jsx/TreeSelect/index.mjs.map +1 -1
- package/dist/jsx/TreeSelect/index.native.js +55 -52
- package/dist/jsx/TreeSelect/index.native.js.map +1 -1
- package/dist/jsx/Video/PlayerChrome.mjs +4 -10
- package/dist/jsx/Video/PlayerChrome.mjs.map +1 -1
- package/dist/jsx/Video/PlayerChrome.native.js +3 -9
- package/dist/jsx/Video/PlayerChrome.native.js.map +1 -1
- package/dist/jsx/code/Code/index.mjs +6 -0
- package/dist/jsx/code/Code/index.mjs.map +1 -1
- package/dist/jsx/code/Code/index.native.js +7 -4
- package/dist/jsx/code/Code/index.native.js.map +1 -1
- package/dist/jsx/code/CodeBlock/index.mjs +5 -6
- package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
- package/dist/jsx/code/CodeBlock/index.native.js +4 -5
- package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
- package/dist/jsx/icons/themed.mjs +3 -2
- package/dist/jsx/icons/themed.mjs.map +1 -1
- package/dist/jsx/icons/themed.native.js +2 -1
- package/dist/jsx/icons/themed.native.js.map +1 -1
- package/dist/jsx/knobImmuneExports.mjs +3 -3
- package/dist/jsx/knobImmuneExports.native.js +3 -3
- package/dist/jsx/layouts/PaneScaffold.mjs +70 -42
- package/dist/jsx/layouts/PaneScaffold.mjs.map +1 -1
- package/dist/jsx/layouts/PaneScaffold.native.js +75 -48
- package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/jsx/layouts/page.mjs +3 -2
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +2 -1
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/layouts/sidebar.mjs +2 -4
- package/dist/jsx/layouts/sidebar.mjs.map +1 -1
- package/dist/jsx/layouts/sidebar.native.js +1 -3
- package/dist/jsx/layouts/sidebar.native.js.map +1 -1
- package/dist/jsx/layouts/tags.mjs.map +1 -1
- package/dist/jsx/layouts/tags.native.js.map +1 -1
- package/dist/jsx/surfaces.mjs +1 -33
- package/dist/jsx/surfaces.mjs.map +1 -1
- package/dist/jsx/surfaces.native.js +0 -32
- package/dist/jsx/surfaces.native.js.map +1 -1
- package/dist/jsx/views/List.mjs +2 -4
- package/dist/jsx/views/List.mjs.map +1 -1
- package/dist/jsx/views/List.native.js +1 -3
- package/dist/jsx/views/List.native.js.map +1 -1
- package/dist/jsx/views/Matrix.mjs +543 -0
- package/dist/jsx/views/Matrix.mjs.map +1 -0
- package/dist/jsx/views/Matrix.native.js +612 -0
- package/dist/jsx/views/Matrix.native.js.map +1 -0
- package/dist/jsx/views/TreeView.mjs +175 -43
- package/dist/jsx/views/TreeView.mjs.map +1 -1
- package/dist/jsx/views/TreeView.native.js +181 -46
- package/dist/jsx/views/TreeView.native.js.map +1 -1
- package/dist/jsx/views/ganttMath.mjs +1 -1
- package/dist/jsx/views/ganttMath.mjs.map +1 -1
- package/dist/jsx/views/ganttMath.native.js +2 -0
- package/dist/jsx/views/ganttMath.native.js.map +1 -1
- package/dist/jsx/views/index.mjs +4 -2
- package/dist/jsx/views/index.mjs.map +1 -1
- package/dist/jsx/views/index.native.js +16 -0
- package/dist/jsx/views/index.native.js.map +1 -1
- package/dist/jsx/views/matrixMath.mjs +122 -0
- package/dist/jsx/views/matrixMath.mjs.map +1 -0
- package/dist/jsx/views/matrixMath.native.js +229 -0
- package/dist/jsx/views/matrixMath.native.js.map +1 -0
- package/package.json +12 -12
- package/src/Accordion/Accordion.spec.tsx +20 -0
- package/src/Accordion/index.tsx +8 -4
- package/src/AnimateHeight/index.tsx +143 -142
- package/src/Chip/Chip.borderLadder.spec.tsx +54 -0
- package/src/Chip/Chip.pressSlop.spec.tsx +57 -0
- package/src/Chip/index.tsx +15 -1
- package/src/Heading.native.spec.tsx +1 -1
- package/src/Separator/index.tsx +3 -3
- package/src/SheetModal/SheetModal.detentLayout.spec.tsx +173 -0
- package/src/SheetModal/SheetModal.fill.spec.tsx +147 -0
- package/src/SheetModal/SheetModal.ownedBody.spec.tsx +200 -0
- package/src/SheetModal/SheetModal.stories.spec.tsx +23 -2
- package/src/SheetModal/SheetModal.stories.tsx +275 -2
- package/src/SheetModal/SheetModal.touch.spec.tsx +63 -0
- package/src/SheetModal/index.native.tsx +143 -21
- package/src/SheetModal/index.tsx +40 -3
- package/src/Tabs/Tabs.hydration.spec.tsx +123 -0
- package/src/Tabs/Tabs.lifecycle.spec.tsx +123 -0
- package/src/Tabs/Tabs.measurement.spec.tsx +186 -0
- package/src/Tabs/Tabs.stories.tsx +43 -0
- package/src/Tabs/index.tsx +45 -15
- package/src/Text.spec.tsx +32 -2
- package/src/Text.tsx +7 -6
- package/src/Toast/Toast.spec.tsx +50 -0
- package/src/Tooltip/Tooltip.spec.tsx +55 -2
- package/src/TreeSelect/TreeSelect.spec.tsx +15 -15
- package/src/TreeSelect/index.tsx +53 -50
- package/src/Video/PlayerChrome.tsx +4 -3
- package/src/Wheel/Wheel.spec.tsx +4 -4
- package/src/adjacency.l1.spec.tsx +175 -0
- package/src/code/Code/code.spec.tsx +2 -19
- package/src/code/Code/index.tsx +0 -6
- package/src/code/CodeBlock/index.tsx +5 -3
- package/src/code/highlightedCode.spec.tsx +2 -2
- package/src/code/hostProps.spec.tsx +55 -0
- package/src/icons/themed.hydration.spec.tsx +60 -0
- package/src/icons/themed.tsx +3 -6
- package/src/knobImmuneExports.ts +3 -3
- package/src/layouts/PaneScaffold.spec.tsx +148 -2
- package/src/layouts/PaneScaffold.stories.tsx +33 -1
- package/src/layouts/PaneScaffold.tsx +101 -48
- package/src/layouts/page.designLaw.spec.tsx +20 -0
- package/src/layouts/page.tsx +2 -0
- package/src/layouts/sidebar.tsx +2 -3
- package/src/layouts/tags.tsx +2 -1
- package/src/overlayElevation.spec.tsx +39 -51
- package/src/surfaces.spec.tsx +13 -10
- package/src/surfaces.tsx +4 -33
- package/src/tamagui.spec.ts +4 -3
- package/src/textAccentSecondary.spec.tsx +100 -2
- package/src/views/List.tsx +2 -1
- package/src/views/Matrix.spec.tsx +339 -0
- package/src/views/Matrix.stories.spec.tsx +68 -0
- package/src/views/Matrix.stories.tsx +153 -0
- package/src/views/Matrix.tsx +738 -0
- package/src/views/TreeView.reveal.spec.tsx +7 -0
- package/src/views/TreeView.reveal.stories.tsx +134 -0
- package/src/views/TreeView.scroll-index.spec.tsx +246 -0
- package/src/views/TreeView.scroll.spec.tsx +711 -50
- package/src/views/TreeView.tsx +230 -49
- package/src/views/ganttMath.ts +4 -2
- package/src/views/index.ts +30 -0
- package/src/views/matrixMath.spec.ts +237 -0
- package/src/views/matrixMath.ts +251 -0
- package/src/views/views.spec.tsx +3 -1
- package/types/Accordion/index.d.ts.map +1 -1
- package/types/AnimateHeight/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts.map +1 -1
- package/types/Separator/index.d.ts +3 -3
- package/types/SheetModal/index.d.ts +8 -1
- package/types/SheetModal/index.d.ts.map +1 -1
- package/types/SheetModal/index.native.d.ts +1 -1
- package/types/SheetModal/index.native.d.ts.map +1 -1
- package/types/Tabs/index.d.ts.map +1 -1
- package/types/Text.d.ts.map +1 -1
- package/types/TreeSelect/index.d.ts.map +1 -1
- package/types/Video/PlayerChrome.d.ts.map +1 -1
- package/types/code/Code/index.d.ts.map +1 -1
- package/types/code/CodeBlock/index.d.ts.map +1 -1
- package/types/icons/themed.d.ts.map +1 -1
- package/types/layouts/PaneScaffold.d.ts +14 -1
- package/types/layouts/PaneScaffold.d.ts.map +1 -1
- package/types/layouts/page.d.ts.map +1 -1
- package/types/layouts/sidebar.d.ts.map +1 -1
- package/types/layouts/tags.d.ts.map +1 -1
- package/types/surfaces.d.ts.map +1 -1
- package/types/views/List.d.ts.map +1 -1
- package/types/views/Matrix.d.ts +102 -0
- package/types/views/Matrix.d.ts.map +1 -0
- package/types/views/TreeView.d.ts +10 -1
- package/types/views/TreeView.d.ts.map +1 -1
- package/types/views/ganttMath.d.ts +4 -0
- package/types/views/ganttMath.d.ts.map +1 -1
- package/types/views/index.d.ts +3 -1
- package/types/views/index.d.ts.map +1 -1
- package/types/views/matrixMath.d.ts +114 -0
- package/types/views/matrixMath.d.ts.map +1 -0
|
@@ -91,11 +91,14 @@ function TreeView({
|
|
|
91
91
|
estimateSize: estimateSizeProp,
|
|
92
92
|
overscan = 10,
|
|
93
93
|
height: heightProp,
|
|
94
|
+
initialScrollOffset,
|
|
95
|
+
onScrollOffsetChange,
|
|
94
96
|
emptyMessage: emptyMessageProp,
|
|
95
97
|
defaultExpandedIds,
|
|
96
98
|
expandedIds: controlledExpandedIds,
|
|
97
99
|
onExpandedIdsChange,
|
|
98
100
|
revealRequest,
|
|
101
|
+
onRevealComplete,
|
|
99
102
|
expandByDefault = false,
|
|
100
103
|
display = "default",
|
|
101
104
|
showExpansionArrows = true,
|
|
@@ -133,6 +136,26 @@ function TreeView({
|
|
|
133
136
|
const treeId = (0, import_react2.useId)();
|
|
134
137
|
const containerRef = (0, import_react2.useRef)(null);
|
|
135
138
|
const flashListRef = (0, import_react2.useRef)(null);
|
|
139
|
+
const initialScroll = (0, import_react2.useRef)(initialScrollOffset === void 0 ? void 0 : {
|
|
140
|
+
offset: Number.isFinite(initialScrollOffset) ? Math.max(0, initialScrollOffset) : 0
|
|
141
|
+
});
|
|
142
|
+
const cancelInitialScroll = (0, import_react2.useCallback)(() => {
|
|
143
|
+
initialScroll.current = void 0;
|
|
144
|
+
}, []);
|
|
145
|
+
const hasNodes = nodes.length > 0;
|
|
146
|
+
const listInstance = (0, import_react2.useMemo)(() => ({
|
|
147
|
+
hasNodes,
|
|
148
|
+
attached: false,
|
|
149
|
+
loaded: false,
|
|
150
|
+
indexScrollRequested: false,
|
|
151
|
+
offset: 0
|
|
152
|
+
}), [hasNodes]);
|
|
153
|
+
const scrollActive = (0, import_react2.useRef)(true);
|
|
154
|
+
const lastReportedOffset = (0, import_react2.useRef)(void 0);
|
|
155
|
+
const offsetCallback = (0, import_react2.useRef)(onScrollOffsetChange);
|
|
156
|
+
(0, import_react2.useLayoutEffect)(() => {
|
|
157
|
+
offsetCallback.current = onScrollOffsetChange;
|
|
158
|
+
}, [onScrollOffsetChange]);
|
|
136
159
|
const [focusedIndex, setFocusedIndex] = (0, import_react2.useState)(-1);
|
|
137
160
|
const [keyboardRing, setKeyboardRing] = (0, import_react2.useState)(false);
|
|
138
161
|
const typeaheadRef = (0, import_react2.useRef)({
|
|
@@ -162,6 +185,7 @@ function TreeView({
|
|
|
162
185
|
const rowHeights = (0, import_react2.useRef)(/* @__PURE__ */new Map());
|
|
163
186
|
const getRowHeight = (0, import_react2.useCallback)(id => rowHeights.current.get(id) ?? estimateSize, [estimateSize]);
|
|
164
187
|
const toggleNode = (0, import_react2.useCallback)(node => {
|
|
188
|
+
cancelInitialScroll();
|
|
165
189
|
const next = new Set(expandedIds);
|
|
166
190
|
if (next.has(node.id)) {
|
|
167
191
|
next.delete(node.id);
|
|
@@ -170,7 +194,7 @@ function TreeView({
|
|
|
170
194
|
}
|
|
171
195
|
setExpandedIds(next);
|
|
172
196
|
onNodeToggle?.(node);
|
|
173
|
-
}, [expandedIds, setExpandedIds, onNodeToggle]);
|
|
197
|
+
}, [expandedIds, setExpandedIds, onNodeToggle, cancelInitialScroll]);
|
|
174
198
|
const previousExpandedIds = (0, import_react2.useRef)(expandedIds);
|
|
175
199
|
(0, import_react2.useLayoutEffect)(() => {
|
|
176
200
|
const previous = previousExpandedIds.current;
|
|
@@ -219,28 +243,115 @@ function TreeView({
|
|
|
219
243
|
return result;
|
|
220
244
|
}, [nodes, expandedIds]);
|
|
221
245
|
const revealIntent = (0, import_react2.useRef)(void 0);
|
|
222
|
-
const
|
|
223
|
-
const
|
|
246
|
+
const scrollFrame = (0, import_react2.useRef)(void 0);
|
|
247
|
+
const scrollStep = (0, import_react2.useRef)(() => {});
|
|
224
248
|
const renderedRows = (0, import_react2.useRef)(/* @__PURE__ */new Set());
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
249
|
+
const scrollBounds = (0, import_react2.useCallback)(() => {
|
|
250
|
+
const list = flashListRef.current;
|
|
251
|
+
if (!scrollActive.current || !listInstance.attached || !listInstance.loaded || !list) return;
|
|
252
|
+
if (import_tamagui.isWeb) {
|
|
253
|
+
const rect = containerRef.current?.getBoundingClientRect();
|
|
254
|
+
if (!rect || !(rect.width > 0) || !(rect.height > 0)) return;
|
|
255
|
+
}
|
|
256
|
+
const viewport = list.getWindowSize();
|
|
257
|
+
const contentHeight = list.getChildContainerDimensions().height + list.getFirstItemOffset();
|
|
258
|
+
if (!Number.isFinite(viewport.width) || viewport.width <= 0 || !Number.isFinite(viewport.height) || viewport.height <= 0 || !Number.isFinite(contentHeight) || contentHeight <= 0) return;
|
|
259
|
+
return {
|
|
260
|
+
list,
|
|
261
|
+
width: viewport.width,
|
|
262
|
+
height: viewport.height,
|
|
263
|
+
contentHeight,
|
|
264
|
+
maxOffset: Math.max(0, contentHeight - viewport.height)
|
|
265
|
+
};
|
|
266
|
+
}, [listInstance]);
|
|
267
|
+
const observeOffset = (0, import_react2.useCallback)((offset, fromEvent = false) => {
|
|
268
|
+
if (!scrollActive.current || !listInstance.attached || !Number.isFinite(offset)) return;
|
|
269
|
+
if (fromEvent && initialScroll.current?.attempted === void 0 && offset !== listInstance.offset) {
|
|
270
|
+
cancelInitialScroll();
|
|
271
|
+
}
|
|
272
|
+
listInstance.offset = offset;
|
|
273
|
+
const bounds = scrollBounds();
|
|
274
|
+
if (!bounds) return;
|
|
275
|
+
const bounded = Math.max(0, Math.min(offset, bounds.maxOffset));
|
|
276
|
+
const initial = initialScroll.current;
|
|
277
|
+
if (initial) {
|
|
278
|
+
const target = Math.min(initial.offset, bounds.maxOffset);
|
|
279
|
+
if (initial.attempted ? Math.abs(bounded - target) >= 1 : bounded !== target) return;
|
|
280
|
+
initialScroll.current = void 0;
|
|
281
|
+
}
|
|
282
|
+
if (offsetCallback.current && lastReportedOffset.current !== bounded) {
|
|
283
|
+
lastReportedOffset.current = bounded;
|
|
284
|
+
offsetCallback.current(bounded);
|
|
285
|
+
}
|
|
286
|
+
}, [cancelInitialScroll, scrollBounds, listInstance]);
|
|
287
|
+
const scheduleScroll = (0, import_react2.useCallback)(() => {
|
|
288
|
+
if (!scrollActive.current || !listInstance.attached || scrollFrame.current !== void 0) return;
|
|
289
|
+
if (!initialScroll.current && (!revealIntent.current || revealIntent.current.complete) && !offsetCallback.current) return;
|
|
290
|
+
scrollFrame.current = requestAnimationFrame(() => {
|
|
291
|
+
scrollFrame.current = void 0;
|
|
292
|
+
if (listInstance.attached) scrollStep.current();
|
|
230
293
|
});
|
|
294
|
+
}, [listInstance]);
|
|
295
|
+
const attachList = (0, import_react2.useCallback)(list => {
|
|
296
|
+
flashListRef.current = list;
|
|
297
|
+
listInstance.attached = list !== null;
|
|
298
|
+
if (!list) {
|
|
299
|
+
listInstance.loaded = false;
|
|
300
|
+
if (initialScroll.current) initialScroll.current.attempted = void 0;
|
|
301
|
+
if (scrollFrame.current !== void 0) cancelAnimationFrame(scrollFrame.current);
|
|
302
|
+
scrollFrame.current = void 0;
|
|
303
|
+
}
|
|
304
|
+
}, [listInstance]);
|
|
305
|
+
(0, import_react2.useLayoutEffect)(() => {
|
|
306
|
+
scrollActive.current = true;
|
|
307
|
+
return () => {
|
|
308
|
+
scrollActive.current = false;
|
|
309
|
+
revealIntent.current = void 0;
|
|
310
|
+
if (scrollFrame.current !== void 0) cancelAnimationFrame(scrollFrame.current);
|
|
311
|
+
scrollFrame.current = void 0;
|
|
312
|
+
};
|
|
231
313
|
}, []);
|
|
232
314
|
(0, import_react2.useLayoutEffect)(() => {
|
|
233
315
|
if (!revealRequest) {
|
|
234
316
|
revealIntent.current = void 0;
|
|
235
317
|
} else if (revealIntent.current?.id !== revealRequest.id || revealIntent.current?.requestId !== revealRequest.requestId) {
|
|
318
|
+
cancelInitialScroll();
|
|
236
319
|
revealIntent.current = {
|
|
237
320
|
...revealRequest,
|
|
238
321
|
complete: false
|
|
239
322
|
};
|
|
240
323
|
}
|
|
241
|
-
|
|
324
|
+
const step = () => {
|
|
325
|
+
const currentList = flashListRef.current;
|
|
326
|
+
if (currentList) {
|
|
327
|
+
observeOffset(listInstance.indexScrollRequested ? listInstance.offset : currentList.getAbsoluteLastScrollOffset());
|
|
328
|
+
}
|
|
329
|
+
if (!scrollActive.current) return;
|
|
330
|
+
if (scrollStep.current !== step) {
|
|
331
|
+
scheduleScroll();
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
242
334
|
const intent = revealIntent.current;
|
|
243
|
-
if (!intent || intent.complete)
|
|
335
|
+
if (!intent || intent.complete) {
|
|
336
|
+
const initial = initialScroll.current;
|
|
337
|
+
const bounds = scrollBounds();
|
|
338
|
+
if (!initial || !bounds || flatNodes.length === 0) return;
|
|
339
|
+
const target = Math.min(initial.offset, bounds.maxOffset);
|
|
340
|
+
const attempted = initial.attempted;
|
|
341
|
+
if (!attempted || attempted.target !== target || attempted.width !== bounds.width || attempted.height !== bounds.height || attempted.contentHeight !== bounds.contentHeight) {
|
|
342
|
+
initial.attempted = {
|
|
343
|
+
target,
|
|
344
|
+
width: bounds.width,
|
|
345
|
+
height: bounds.height,
|
|
346
|
+
contentHeight: bounds.contentHeight
|
|
347
|
+
};
|
|
348
|
+
bounds.list.scrollToOffset({
|
|
349
|
+
offset: target,
|
|
350
|
+
animated: false
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
244
355
|
const next = (0, import_treeViewReveal.treeRevealExpansion)(nodes, expandedIds, intent.id);
|
|
245
356
|
if (!next) return;
|
|
246
357
|
if (next !== expandedIds) {
|
|
@@ -266,15 +377,26 @@ function TreeView({
|
|
|
266
377
|
if (viewport.width <= 0) return;
|
|
267
378
|
const layout = list.getLayout(index);
|
|
268
379
|
if (!layout) return;
|
|
269
|
-
const offset = list.getAbsoluteLastScrollOffset();
|
|
380
|
+
const offset = listInstance.indexScrollRequested ? listInstance.offset : list.getAbsoluteLastScrollOffset();
|
|
381
|
+
const top = layout.y + list.getFirstItemOffset();
|
|
270
382
|
const nextOffset = (0, import_treeViewReveal.treeRevealOffset)({
|
|
271
|
-
y:
|
|
383
|
+
y: top,
|
|
272
384
|
height: layout.height
|
|
273
385
|
}, offset, viewport.height);
|
|
274
386
|
if (nextOffset === void 0) return;
|
|
275
387
|
if (Math.abs(nextOffset - offset) < 1) {
|
|
276
|
-
|
|
277
|
-
if (
|
|
388
|
+
let visible = top < offset + viewport.height && top + layout.height > offset;
|
|
389
|
+
if (!listInstance.indexScrollRequested) {
|
|
390
|
+
const range = list.computeVisibleIndices();
|
|
391
|
+
visible = visible && index >= range.startIndex && index <= range.endIndex;
|
|
392
|
+
}
|
|
393
|
+
if (revealIntent.current === intent && layout.isHeightMeasured && renderedRows.current.has(intent.id) && visible) {
|
|
394
|
+
intent.complete = true;
|
|
395
|
+
onRevealComplete?.({
|
|
396
|
+
id: intent.id,
|
|
397
|
+
requestId: intent.requestId
|
|
398
|
+
});
|
|
399
|
+
}
|
|
278
400
|
return;
|
|
279
401
|
}
|
|
280
402
|
list.scrollToOffset({
|
|
@@ -282,21 +404,19 @@ function TreeView({
|
|
|
282
404
|
animated: false
|
|
283
405
|
});
|
|
284
406
|
};
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
revealIntent.current = void 0;
|
|
289
|
-
if (revealFrame.current !== void 0) cancelAnimationFrame(revealFrame.current);
|
|
290
|
-
revealFrame.current = void 0;
|
|
291
|
-
}, []);
|
|
407
|
+
scrollStep.current = step;
|
|
408
|
+
scheduleScroll();
|
|
409
|
+
}, [nodes, expandedIds, setExpandedIds, flatNodes, revealRequest?.id, revealRequest?.requestId, onRevealComplete, height, motion, scheduleScroll, cancelInitialScroll, observeOffset, scrollBounds, listInstance]);
|
|
292
410
|
const scrollToIndex = (0, import_react2.useCallback)(index => {
|
|
293
411
|
if (index >= 0 && index < flatNodes.length) {
|
|
412
|
+
cancelInitialScroll();
|
|
413
|
+
listInstance.indexScrollRequested = true;
|
|
294
414
|
flashListRef.current?.scrollToIndex({
|
|
295
415
|
index,
|
|
296
416
|
animated: true
|
|
297
417
|
});
|
|
298
418
|
}
|
|
299
|
-
}, [flatNodes.length]);
|
|
419
|
+
}, [flatNodes.length, cancelInitialScroll, listInstance]);
|
|
300
420
|
const focusRow = (0, import_react2.useCallback)(index => {
|
|
301
421
|
setKeyboardRing(true);
|
|
302
422
|
setFocusedIndex(index);
|
|
@@ -514,6 +634,7 @@ function TreeView({
|
|
|
514
634
|
if (!container?.getBoundingClientRect) return false;
|
|
515
635
|
const session = (0, import_treeViewDnd.treeKeyboardLift)(nodes, flat.node.id);
|
|
516
636
|
if (!session) return false;
|
|
637
|
+
cancelInitialScroll();
|
|
517
638
|
const rowRect = rowEl.getBoundingClientRect();
|
|
518
639
|
const containerRect = container.getBoundingClientRect();
|
|
519
640
|
grabOffsetRef.current = {
|
|
@@ -546,7 +667,7 @@ function TreeView({
|
|
|
546
667
|
announce((0, import_treeViewDnd.describeTreeDragState)("lift", session, nodes, flat.node.label));
|
|
547
668
|
startAutoScroll();
|
|
548
669
|
return true;
|
|
549
|
-
}, [announce, nodes, startAutoScroll]);
|
|
670
|
+
}, [announce, nodes, startAutoScroll, cancelInitialScroll]);
|
|
550
671
|
const handleDragHandlePointerDown = (0, import_react2.useCallback)((flat, e) => {
|
|
551
672
|
if (!canReorder || typeof window === "undefined") return;
|
|
552
673
|
if (e.button !== void 0 && e.button !== 0) return;
|
|
@@ -677,6 +798,7 @@ function TreeView({
|
|
|
677
798
|
if (!flat) return false;
|
|
678
799
|
const session = (0, import_treeViewDnd.treeKeyboardLift)(nodes, flat.node.id);
|
|
679
800
|
if (!session) return false;
|
|
801
|
+
cancelInitialScroll();
|
|
680
802
|
const ui = {
|
|
681
803
|
mode: "keyboard",
|
|
682
804
|
node: flat.node,
|
|
@@ -694,7 +816,7 @@ function TreeView({
|
|
|
694
816
|
dragUiRef.current = ui;
|
|
695
817
|
announce((0, import_treeViewDnd.describeTreeDragState)("lift", session, nodes, flat.node.label));
|
|
696
818
|
return true;
|
|
697
|
-
}, [announce, canReorder, dndRows, flatNodes, focusedIndex, getRowHeight, nodes]);
|
|
819
|
+
}, [announce, canReorder, dndRows, flatNodes, focusedIndex, getRowHeight, nodes, cancelInitialScroll]);
|
|
698
820
|
const moveKeyboardDrag = (0, import_react2.useCallback)(direction => {
|
|
699
821
|
const ui = dragUiRef.current;
|
|
700
822
|
if (!ui || ui.mode !== "keyboard") return false;
|
|
@@ -860,20 +982,30 @@ function TreeView({
|
|
|
860
982
|
onFocus: handleContainerFocus,
|
|
861
983
|
onBlur: handleContainerBlur,
|
|
862
984
|
onKeyDown: handleTreeKeyDown,
|
|
863
|
-
onLayout:
|
|
985
|
+
onLayout: scheduleScroll,
|
|
986
|
+
...(import_tamagui.isWeb && {
|
|
987
|
+
onWheel: cancelInitialScroll,
|
|
988
|
+
onPointerDown: cancelInitialScroll
|
|
989
|
+
}),
|
|
864
990
|
position: "relative",
|
|
865
991
|
style: {
|
|
866
992
|
height
|
|
867
993
|
},
|
|
868
994
|
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_flash_list.FlashList, {
|
|
869
|
-
ref:
|
|
995
|
+
ref: attachList,
|
|
870
996
|
data: flatNodes,
|
|
871
997
|
drawDistance: overscan * estimateSize,
|
|
872
998
|
keyExtractor: item => item.node.id,
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
999
|
+
onLoad: () => {
|
|
1000
|
+
if (!scrollActive.current || !listInstance.attached) return;
|
|
1001
|
+
listInstance.loaded = true;
|
|
1002
|
+
scheduleScroll();
|
|
1003
|
+
},
|
|
1004
|
+
onCommitLayoutEffect: scheduleScroll,
|
|
1005
|
+
onContentSizeChange: scheduleScroll,
|
|
1006
|
+
onScrollBeginDrag: () => {
|
|
1007
|
+
if (scrollActive.current && listInstance.attached) cancelInitialScroll();
|
|
1008
|
+
},
|
|
877
1009
|
extraData: {
|
|
878
1010
|
focused: effectiveFocused,
|
|
879
1011
|
selectedId,
|
|
@@ -884,17 +1016,17 @@ function TreeView({
|
|
|
884
1016
|
keyboardRing,
|
|
885
1017
|
collapsedSelectedAncestors
|
|
886
1018
|
},
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
1019
|
+
onScroll: e => {
|
|
1020
|
+
if (!scrollActive.current || !listInstance.attached) return;
|
|
1021
|
+
const y = e?.nativeEvent?.contentOffset?.y;
|
|
1022
|
+
if (typeof y === "number" && Number.isFinite(y)) {
|
|
1023
|
+
scrollOffsetRef.current = y;
|
|
1024
|
+
if (dragUiRef.current) setDragScrollY(y);
|
|
1025
|
+
observeOffset(y, true);
|
|
1026
|
+
}
|
|
1027
|
+
scheduleScroll();
|
|
1028
|
+
},
|
|
1029
|
+
scrollEventThrottle: 16,
|
|
898
1030
|
renderItem: ({
|
|
899
1031
|
item,
|
|
900
1032
|
index
|
|
@@ -930,7 +1062,7 @@ function TreeView({
|
|
|
930
1062
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
|
|
931
1063
|
ref: row => {
|
|
932
1064
|
if (row) renderedRows.current.add(node.id);else renderedRows.current.delete(node.id);
|
|
933
|
-
|
|
1065
|
+
scheduleScroll();
|
|
934
1066
|
},
|
|
935
1067
|
id: `${treeId}-node-${index}`,
|
|
936
1068
|
...{
|
|
@@ -966,7 +1098,7 @@ function TreeView({
|
|
|
966
1098
|
onLayout: e => {
|
|
967
1099
|
const h = e?.nativeEvent?.layout?.height;
|
|
968
1100
|
if (typeof h === "number" && h > 0) rowHeights.current.set(node.id, h);
|
|
969
|
-
|
|
1101
|
+
scheduleScroll();
|
|
970
1102
|
},
|
|
971
1103
|
backgroundColor:
|
|
972
1104
|
// Nest-into parent highlight wins while a drag is active
|