@multiplatform.one/components 7.23.1 → 7.24.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/Alert/index.cjs +1 -1
- package/dist/cjs/Alert/index.native.js +1 -1
- package/dist/cjs/Alert/index.native.js.map +1 -1
- package/dist/cjs/Avatar/index.cjs +6 -4
- package/dist/cjs/Avatar/index.native.js +6 -4
- package/dist/cjs/Avatar/index.native.js.map +1 -1
- package/dist/cjs/ContextMenu/index.cjs +1 -1
- package/dist/cjs/ContextMenu/index.native.js +1 -1
- package/dist/cjs/ContextMenu/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/index.cjs +1 -1
- package/dist/cjs/DropdownMenu/index.native.js +1 -1
- package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
- package/dist/cjs/ProgressSteps/index.cjs +16 -10
- package/dist/cjs/ProgressSteps/index.native.js +16 -10
- package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
- package/dist/cjs/SheetModal/index.native.js +7 -0
- package/dist/cjs/SheetModal/index.native.js.map +1 -1
- package/dist/cjs/Tabs/index.cjs +2 -1
- package/dist/cjs/Tabs/index.native.js +2 -1
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/ThemePlayground/index.cjs +114 -0
- package/dist/cjs/ThemePlayground/index.native.js +33 -0
- package/dist/cjs/ThemePlayground/index.native.js.map +1 -0
- package/dist/cjs/Toast/index.cjs +2 -2
- package/dist/cjs/Toast/index.native.js +2 -2
- package/dist/cjs/Toast/index.native.js.map +1 -1
- package/dist/cjs/TreeSelect/index.cjs +0 -1
- package/dist/cjs/TreeSelect/index.native.js +0 -1
- package/dist/cjs/TreeSelect/index.native.js.map +1 -1
- package/dist/cjs/Video/PlayerChrome.cjs +2 -2
- package/dist/cjs/Video/PlayerChrome.native.js +2 -2
- package/dist/cjs/Video/PlayerChrome.native.js.map +1 -1
- package/dist/cjs/Wizard/index.cjs +33 -33
- package/dist/cjs/Wizard/index.native.js +33 -33
- package/dist/cjs/Wizard/index.native.js.map +1 -1
- package/dist/cjs/code/HighlightedCode/index.cjs +3 -2
- package/dist/cjs/code/HighlightedCode/index.native.js +3 -2
- package/dist/cjs/code/HighlightedCode/index.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/attachments.cjs +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/page.cjs +18 -5
- package/dist/cjs/layouts/page.native.js +18 -6
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/sidebar.cjs +20 -12
- package/dist/cjs/layouts/sidebar.native.js +22 -18
- package/dist/cjs/layouts/sidebar.native.js.map +1 -1
- package/dist/cjs/layouts/tags.cjs +4 -1
- package/dist/cjs/layouts/tags.native.js +4 -1
- package/dist/cjs/layouts/tags.native.js.map +1 -1
- package/dist/cjs/layouts/timeline.cjs +12 -7
- package/dist/cjs/layouts/timeline.native.js +15 -9
- package/dist/cjs/layouts/timeline.native.js.map +1 -1
- package/dist/cjs/layouts/toolbar.cjs +0 -1
- package/dist/cjs/layouts/toolbar.native.js +0 -1
- package/dist/cjs/layouts/toolbar.native.js.map +1 -1
- package/dist/cjs/views/Calendar.cjs +5 -5
- package/dist/cjs/views/Calendar.native.js +5 -5
- package/dist/cjs/views/Calendar.native.js.map +1 -1
- package/dist/cjs/views/Gantt.cjs +2 -2
- package/dist/cjs/views/Gantt.native.js +2 -2
- package/dist/cjs/views/Gantt.native.js.map +1 -1
- package/dist/cjs/views/ImageGrid.cjs +17 -10
- package/dist/cjs/views/ImageGrid.native.js +19 -10
- package/dist/cjs/views/ImageGrid.native.js.map +1 -1
- package/dist/cjs/views/TreeView.cjs +4 -1
- package/dist/cjs/views/TreeView.native.js +4 -1
- package/dist/cjs/views/TreeView.native.js.map +1 -1
- package/dist/esm/Accordion/index.native.js.map +1 -1
- package/dist/esm/Alert/index.mjs +1 -1
- package/dist/esm/Alert/index.mjs.map +1 -1
- package/dist/esm/Alert/index.native.js +1 -1
- package/dist/esm/Alert/index.native.js.map +1 -1
- 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.mjs +7 -5
- package/dist/esm/Avatar/index.mjs.map +1 -1
- package/dist/esm/Avatar/index.native.js +7 -5
- 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.native.js.map +1 -1
- package/dist/esm/Collapsible.native.js.map +1 -1
- package/dist/esm/ContextMenu/index.mjs +1 -1
- package/dist/esm/ContextMenu/index.mjs.map +1 -1
- package/dist/esm/ContextMenu/index.native.js +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.mjs +1 -1
- package/dist/esm/DropdownMenu/index.mjs.map +1 -1
- package/dist/esm/DropdownMenu/index.native.js +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.mjs +16 -10
- package/dist/esm/ProgressSteps/index.mjs.map +1 -1
- package/dist/esm/ProgressSteps/index.native.js +16 -10
- 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.native.js +7 -0
- 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 +2 -1
- package/dist/esm/Tabs/index.mjs.map +1 -1
- package/dist/esm/Tabs/index.native.js +2 -1
- package/dist/esm/Tabs/index.native.js.map +1 -1
- package/dist/esm/Text.native.js.map +1 -1
- package/dist/esm/ThemePlayground/index.mjs +78 -0
- package/dist/esm/ThemePlayground/index.mjs.map +1 -0
- package/dist/esm/ThemePlayground/index.native.js +5 -0
- package/dist/esm/ThemePlayground/index.native.js.map +1 -0
- package/dist/esm/Toast/index.mjs +2 -2
- package/dist/esm/Toast/index.mjs.map +1 -1
- package/dist/esm/Toast/index.native.js +2 -2
- 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 +0 -1
- package/dist/esm/TreeSelect/index.mjs.map +1 -1
- package/dist/esm/TreeSelect/index.native.js +0 -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.mjs +2 -2
- package/dist/esm/Video/PlayerChrome.mjs.map +1 -1
- package/dist/esm/Video/PlayerChrome.native.js +2 -2
- 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.mjs +33 -33
- package/dist/esm/Wizard/index.mjs.map +1 -1
- package/dist/esm/Wizard/index.native.js +33 -33
- 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.native.js.map +1 -1
- package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
- package/dist/esm/code/HighlightedCode/index.mjs +4 -3
- package/dist/esm/code/HighlightedCode/index.mjs.map +1 -1
- package/dist/esm/code/HighlightedCode/index.native.js +4 -3
- 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.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.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -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.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.mjs +1 -1
- package/dist/esm/layouts/attachments.mjs.map +1 -1
- package/dist/esm/layouts/attachments.native.js +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 +18 -5
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +18 -6
- 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 +20 -12
- package/dist/esm/layouts/sidebar.mjs.map +1 -1
- package/dist/esm/layouts/sidebar.native.js +22 -18
- package/dist/esm/layouts/sidebar.native.js.map +1 -1
- package/dist/esm/layouts/tags.mjs +5 -2
- package/dist/esm/layouts/tags.mjs.map +1 -1
- package/dist/esm/layouts/tags.native.js +5 -2
- package/dist/esm/layouts/tags.native.js.map +1 -1
- package/dist/esm/layouts/timeline.mjs +13 -8
- package/dist/esm/layouts/timeline.mjs.map +1 -1
- package/dist/esm/layouts/timeline.native.js +16 -10
- package/dist/esm/layouts/timeline.native.js.map +1 -1
- package/dist/esm/layouts/toolbar.mjs +0 -1
- package/dist/esm/layouts/toolbar.mjs.map +1 -1
- package/dist/esm/layouts/toolbar.native.js +0 -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.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.mjs +5 -5
- package/dist/esm/views/Calendar.mjs.map +1 -1
- package/dist/esm/views/Calendar.native.js +5 -5
- 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.mjs +2 -2
- package/dist/esm/views/Gantt.mjs.map +1 -1
- package/dist/esm/views/Gantt.native.js +2 -2
- package/dist/esm/views/Gantt.native.js.map +1 -1
- package/dist/esm/views/ImageGrid.mjs +17 -10
- package/dist/esm/views/ImageGrid.mjs.map +1 -1
- package/dist/esm/views/ImageGrid.native.js +19 -10
- package/dist/esm/views/ImageGrid.native.js.map +1 -1
- package/dist/esm/views/List.native.js.map +1 -1
- package/dist/esm/views/Matrix.native.js.map +1 -1
- package/dist/esm/views/ReportBuilder.native.js.map +1 -1
- package/dist/esm/views/TreeView.mjs +5 -2
- package/dist/esm/views/TreeView.mjs.map +1 -1
- package/dist/esm/views/TreeView.native.js +5 -2
- 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.native.js.map +1 -1
- 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.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/esm/views/treeViewReveal.native.js.map +1 -1
- package/dist/jsx/Accordion/index.native.js +1 -1
- package/dist/jsx/Accordion/index.native.js.map +1 -1
- package/dist/jsx/Alert/index.mjs +1 -1
- package/dist/jsx/Alert/index.mjs.map +1 -1
- package/dist/jsx/Alert/index.native.js +1 -1
- package/dist/jsx/Alert/index.native.js.map +1 -1
- package/dist/jsx/AnimateHeight/index.native.js.map +1 -1
- package/dist/jsx/Avatar/getInitials.native.js.map +1 -1
- package/dist/jsx/Avatar/index.mjs +7 -5
- package/dist/jsx/Avatar/index.mjs.map +1 -1
- package/dist/jsx/Avatar/index.native.js +6 -4
- package/dist/jsx/Avatar/index.native.js.map +1 -1
- package/dist/jsx/Badge/index.native.js.map +1 -1
- package/dist/jsx/Button.native.js.map +1 -1
- package/dist/jsx/Card.native.js.map +1 -1
- package/dist/jsx/CardFooter.native.js.map +1 -1
- package/dist/jsx/CardHeader.native.js.map +1 -1
- package/dist/jsx/Carousel/index.native.js +2 -2
- package/dist/jsx/Carousel/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/Collapsible.native.js.map +1 -1
- package/dist/jsx/ContextMenu/index.mjs +1 -1
- package/dist/jsx/ContextMenu/index.mjs.map +1 -1
- package/dist/jsx/ContextMenu/index.native.js +1 -1
- package/dist/jsx/ContextMenu/index.native.js.map +1 -1
- package/dist/jsx/CopyField/index.native.js.map +1 -1
- package/dist/jsx/DotIndicator/index.native.js.map +1 -1
- package/dist/jsx/DropdownMenu/index.mjs +1 -1
- package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
- package/dist/jsx/DropdownMenu/index.native.js +1 -1
- package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
- package/dist/jsx/ErrorBoundary/index.native.js.map +1 -1
- package/dist/jsx/Heading.native.js.map +1 -1
- package/dist/jsx/Meter/index.native.js +1 -1
- package/dist/jsx/Meter/index.native.js.map +1 -1
- package/dist/jsx/Meter/meter.native.js.map +1 -1
- package/dist/jsx/Pagination.native.js +1 -1
- package/dist/jsx/Pagination.native.js.map +1 -1
- package/dist/jsx/ProgressSteps/index.mjs +16 -10
- package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
- package/dist/jsx/ProgressSteps/index.native.js +16 -10
- package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
- package/dist/jsx/Quote/index.native.js.map +1 -1
- package/dist/jsx/Separator/index.native.js.map +1 -1
- package/dist/jsx/SheetModal/detents.native.js.map +1 -1
- package/dist/jsx/SheetModal/index.native.js +7 -0
- package/dist/jsx/SheetModal/index.native.js.map +1 -1
- package/dist/jsx/Skeleton/index.native.js.map +1 -1
- package/dist/jsx/SkipLink/index.native.js.map +1 -1
- package/dist/jsx/SortableList/SortableHandle.native.js.map +1 -1
- package/dist/jsx/SortableList/index.native.js.map +1 -1
- package/dist/jsx/SortableList/useSortableRows.native.js.map +1 -1
- package/dist/jsx/Tabs/index.mjs +2 -1
- package/dist/jsx/Tabs/index.mjs.map +1 -1
- package/dist/jsx/Tabs/index.native.js +3 -2
- package/dist/jsx/Tabs/index.native.js.map +1 -1
- package/dist/jsx/Text.native.js.map +1 -1
- package/dist/jsx/ThemePlayground/index.mjs +78 -0
- package/dist/jsx/ThemePlayground/index.mjs.map +1 -0
- package/dist/jsx/ThemePlayground/index.native.js +33 -0
- package/dist/jsx/ThemePlayground/index.native.js.map +1 -0
- package/dist/jsx/Toast/index.mjs +2 -2
- package/dist/jsx/Toast/index.mjs.map +1 -1
- package/dist/jsx/Toast/index.native.js +2 -2
- package/dist/jsx/Toast/index.native.js.map +1 -1
- package/dist/jsx/Toast/store.native.js.map +1 -1
- package/dist/jsx/Tooltip/nativePress.native.js.map +1 -1
- package/dist/jsx/Tooltip/tooltipShared.native.js.map +1 -1
- package/dist/jsx/TreeSelect/index.mjs +0 -1
- package/dist/jsx/TreeSelect/index.mjs.map +1 -1
- package/dist/jsx/TreeSelect/index.native.js +1 -2
- package/dist/jsx/TreeSelect/index.native.js.map +1 -1
- package/dist/jsx/TreeSelect/treeSelectModel.native.js.map +1 -1
- package/dist/jsx/Video/PlayerChrome.mjs +2 -2
- package/dist/jsx/Video/PlayerChrome.mjs.map +1 -1
- package/dist/jsx/Video/PlayerChrome.native.js +2 -2
- package/dist/jsx/Video/PlayerChrome.native.js.map +1 -1
- package/dist/jsx/Video/VideoFrame.native.js.map +1 -1
- package/dist/jsx/Video/types.native.js.map +1 -1
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/Wizard/index.mjs +33 -33
- package/dist/jsx/Wizard/index.mjs.map +1 -1
- package/dist/jsx/Wizard/index.native.js +35 -35
- package/dist/jsx/Wizard/index.native.js.map +1 -1
- package/dist/jsx/actions/ActionBar.native.js.map +1 -1
- package/dist/jsx/actions/DestructiveAction.native.js.map +1 -1
- package/dist/jsx/actions/devWarn.native.js.map +1 -1
- package/dist/jsx/actions/index.native.js.map +1 -1
- package/dist/jsx/actions/severity.native.js.map +1 -1
- package/dist/jsx/charts/Axis.native.js.map +1 -1
- package/dist/jsx/charts/BarChart.native.js.map +1 -1
- package/dist/jsx/charts/ChartDataView.native.js.map +1 -1
- package/dist/jsx/charts/ChartSurface.native.js.map +1 -1
- package/dist/jsx/charts/LineChart.native.js.map +1 -1
- package/dist/jsx/charts/PieChart.native.js.map +1 -1
- package/dist/jsx/charts/Sparkline.native.js.map +1 -1
- package/dist/jsx/charts/accessibility.native.js.map +1 -1
- package/dist/jsx/charts/composeChart.native.js.map +1 -1
- package/dist/jsx/charts/index.native.js.map +1 -1
- package/dist/jsx/charts/math.native.js.map +1 -1
- package/dist/jsx/charts/series.native.js.map +1 -1
- package/dist/jsx/charts/svg.native.js.map +1 -1
- package/dist/jsx/charts/types.native.js.map +1 -1
- package/dist/jsx/charts/useChartTheme.native.js.map +1 -1
- package/dist/jsx/code/Code/index.native.js.map +1 -1
- package/dist/jsx/code/CodeBlock/index.native.js +6 -6
- package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
- package/dist/jsx/code/HighlightedCode/index.mjs +4 -3
- package/dist/jsx/code/HighlightedCode/index.mjs.map +1 -1
- package/dist/jsx/code/HighlightedCode/index.native.js +3 -2
- package/dist/jsx/code/HighlightedCode/index.native.js.map +1 -1
- package/dist/jsx/code/Highlighter/index.native.js.map +1 -1
- package/dist/jsx/code/Pre/index.native.js.map +1 -1
- package/dist/jsx/code/index.native.js +5 -5
- package/dist/jsx/code/index.native.js.map +1 -1
- package/dist/jsx/componentColors.native.js.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/jsx/feedback/NotifyHost.native.js +2 -2
- package/dist/jsx/feedback/NotifyHost.native.js.map +1 -1
- package/dist/jsx/feedback/copy.native.js.map +1 -1
- package/dist/jsx/feedback/index.native.js.map +1 -1
- package/dist/jsx/feedback/notify.native.js.map +1 -1
- package/dist/jsx/feedback/route.native.js.map +1 -1
- package/dist/jsx/feedback/store.native.js.map +1 -1
- package/dist/jsx/hooks/index.native.js +1 -1
- package/dist/jsx/hooks/index.native.js.map +1 -1
- package/dist/jsx/hooks/useClipboard.native.js.map +1 -1
- package/dist/jsx/hooks/useDocumentTitle.native.js.map +1 -1
- package/dist/jsx/icons/CheckRegular.native.js.map +1 -1
- package/dist/jsx/icons/MinusRegular.native.js.map +1 -1
- package/dist/jsx/icons/index.native.js.map +1 -1
- package/dist/jsx/icons/lucide.native.js.map +1 -1
- package/dist/jsx/icons/themed.native.js.map +1 -1
- package/dist/jsx/images/Image/ImageFrame.native.js +1 -1
- package/dist/jsx/images/Image/ImageFrame.native.js.map +1 -1
- package/dist/jsx/images/Image/index.native.js +1 -1
- package/dist/jsx/images/Image/shared.native.js +1 -1
- package/dist/jsx/images/Image/shared.native.js.map +1 -1
- package/dist/jsx/images/Image/types.native.js.map +1 -1
- package/dist/jsx/images/index.native.js.map +1 -1
- package/dist/jsx/index.js +1 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +1 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +30 -29
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/knobImmuneExports.native.js.map +1 -1
- package/dist/jsx/layouts/AsyncBoundary.native.js +2 -2
- package/dist/jsx/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/jsx/layouts/Debug/index.native.js.map +1 -1
- package/dist/jsx/layouts/EmptyState.native.js.map +1 -1
- package/dist/jsx/layouts/KeyboardAvoidingWrapper/behavior.native.js.map +1 -1
- package/dist/jsx/layouts/PageTemplates.native.js.map +1 -1
- package/dist/jsx/layouts/PaneScaffold.native.js.map +1 -1
- package/dist/jsx/layouts/SafeAreaWrapper/insets.native.js.map +1 -1
- package/dist/jsx/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/jsx/layouts/attachments.mjs +1 -1
- package/dist/jsx/layouts/attachments.mjs.map +1 -1
- package/dist/jsx/layouts/attachments.native.js +2 -2
- package/dist/jsx/layouts/attachments.native.js.map +1 -1
- package/dist/jsx/layouts/breadcrumbs.native.js.map +1 -1
- package/dist/jsx/layouts/index.native.js +3 -3
- package/dist/jsx/layouts/index.native.js.map +1 -1
- package/dist/jsx/layouts/page.mjs +18 -5
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +18 -6
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/jsx/layouts/sidebar.mjs +20 -12
- package/dist/jsx/layouts/sidebar.mjs.map +1 -1
- package/dist/jsx/layouts/sidebar.native.js +22 -18
- package/dist/jsx/layouts/sidebar.native.js.map +1 -1
- package/dist/jsx/layouts/tags.mjs +5 -2
- package/dist/jsx/layouts/tags.mjs.map +1 -1
- package/dist/jsx/layouts/tags.native.js +5 -2
- package/dist/jsx/layouts/tags.native.js.map +1 -1
- package/dist/jsx/layouts/timeline.mjs +13 -8
- package/dist/jsx/layouts/timeline.mjs.map +1 -1
- package/dist/jsx/layouts/timeline.native.js +17 -11
- package/dist/jsx/layouts/timeline.native.js.map +1 -1
- package/dist/jsx/layouts/toolbar.mjs +0 -1
- package/dist/jsx/layouts/toolbar.mjs.map +1 -1
- package/dist/jsx/layouts/toolbar.native.js +0 -1
- package/dist/jsx/layouts/toolbar.native.js.map +1 -1
- package/dist/jsx/shared/actionScan.native.js.map +1 -1
- package/dist/jsx/shared/i18n.native.js.map +1 -1
- package/dist/jsx/shared/t.native.js.map +1 -1
- package/dist/jsx/shared/textRidesText.native.js.map +1 -1
- package/dist/jsx/shared/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/jsx/surfaces.native.js +1 -1
- package/dist/jsx/surfaces.native.js.map +1 -1
- package/dist/jsx/tamagui.native.js +1 -1
- package/dist/jsx/tamagui.native.js.map +1 -1
- package/dist/jsx/testSetup.native.js.map +1 -1
- package/dist/jsx/utils/setTinted.native.js.map +1 -1
- package/dist/jsx/utils/unwrapText.native.js.map +1 -1
- package/dist/jsx/views/Calendar.mjs +5 -5
- package/dist/jsx/views/Calendar.mjs.map +1 -1
- package/dist/jsx/views/Calendar.native.js +5 -5
- package/dist/jsx/views/Calendar.native.js.map +1 -1
- package/dist/jsx/views/Dashboard.native.js +1 -1
- package/dist/jsx/views/Dashboard.native.js.map +1 -1
- package/dist/jsx/views/Gantt.mjs +2 -2
- package/dist/jsx/views/Gantt.mjs.map +1 -1
- package/dist/jsx/views/Gantt.native.js +3 -3
- package/dist/jsx/views/Gantt.native.js.map +1 -1
- package/dist/jsx/views/ImageGrid.mjs +17 -10
- package/dist/jsx/views/ImageGrid.mjs.map +1 -1
- package/dist/jsx/views/ImageGrid.native.js +20 -11
- package/dist/jsx/views/ImageGrid.native.js.map +1 -1
- package/dist/jsx/views/Kanban.native.js +1 -1
- package/dist/jsx/views/List.native.js.map +1 -1
- package/dist/jsx/views/Matrix.native.js +1 -1
- package/dist/jsx/views/Matrix.native.js.map +1 -1
- package/dist/jsx/views/ReportBuilder.native.js +1 -1
- package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
- package/dist/jsx/views/TreeView.mjs +5 -2
- package/dist/jsx/views/TreeView.mjs.map +1 -1
- package/dist/jsx/views/TreeView.native.js +4 -1
- package/dist/jsx/views/TreeView.native.js.map +1 -1
- package/dist/jsx/views/calendarMath.native.js.map +1 -1
- package/dist/jsx/views/ganttMath.native.js.map +1 -1
- package/dist/jsx/views/index.native.js +1 -1
- package/dist/jsx/views/index.native.js.map +1 -1
- package/dist/jsx/views/kanbanDnd.native.js.map +1 -1
- package/dist/jsx/views/matrixMath.native.js.map +1 -1
- package/dist/jsx/views/treeViewDnd.native.js.map +1 -1
- package/dist/jsx/views/treeViewLayout.native.js.map +1 -1
- package/dist/jsx/views/treeViewMotion.native.js.map +1 -1
- package/dist/jsx/views/treeViewReveal.native.js.map +1 -1
- package/package.json +13 -9
- package/src/Alert/index.tsx +1 -1
- package/src/Avatar/index.tsx +10 -4
- package/src/ContextMenu/index.tsx +1 -1
- package/src/DropdownMenu/index.tsx +1 -1
- package/src/ProgressSteps/index.tsx +21 -14
- package/src/SheetModal/SheetModal.touch.spec.tsx +42 -1
- package/src/SheetModal/index.native.tsx +15 -1
- package/src/Tabs/index.tsx +6 -2
- package/src/ThemePlayground/ThemePlayground.spec.tsx +36 -0
- package/src/ThemePlayground/index.native.tsx +8 -0
- package/src/ThemePlayground/index.tsx +83 -0
- package/src/Toast/index.tsx +2 -2
- package/src/TreeSelect/index.tsx +1 -7
- package/src/Video/PlayerChrome.tsx +2 -2
- package/src/Wizard/index.tsx +34 -33
- package/src/code/HighlightedCode/index.tsx +4 -3
- package/src/index.ts +1 -0
- package/src/layouts/Timeline.stories.tsx +17 -16
- package/src/layouts/attachments.tsx +2 -1
- package/src/layouts/page.tsx +12 -9
- package/src/layouts/sidebar.tsx +21 -20
- package/src/layouts/tags.tsx +5 -2
- package/src/layouts/timeline.tsx +31 -26
- package/src/layouts/toolbar.tsx +0 -1
- package/src/views/Calendar.tsx +6 -15
- package/src/views/Gantt.tsx +2 -2
- package/src/views/ImageGrid.tsx +15 -16
- package/src/views/Kanban.stories.tsx +3 -3
- package/src/views/TreeView.tsx +5 -3
- package/types/Avatar/index.d.ts.map +1 -1
- package/types/ProgressSteps/index.d.ts.map +1 -1
- package/types/SheetModal/index.native.d.ts.map +1 -1
- package/types/Tabs/index.d.ts.map +1 -1
- package/types/ThemePlayground/index.d.ts +11 -0
- package/types/ThemePlayground/index.d.ts.map +1 -0
- package/types/ThemePlayground/index.native.d.ts +5 -0
- package/types/ThemePlayground/index.native.d.ts.map +1 -0
- package/types/TreeSelect/index.d.ts.map +1 -1
- package/types/Wizard/index.d.ts.map +1 -1
- package/types/code/HighlightedCode/index.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/layouts/attachments.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/layouts/timeline.d.ts.map +1 -1
- package/types/views/Calendar.d.ts.map +1 -1
- package/types/views/ImageGrid.d.ts.map +1 -1
- package/types/views/TreeView.d.ts.map +1 -1
package/src/Avatar/index.tsx
CHANGED
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
View,
|
|
21
21
|
XStack,
|
|
22
22
|
getVariableValue,
|
|
23
|
+
styled,
|
|
23
24
|
withStaticProperties,
|
|
24
25
|
} from "tamagui";
|
|
25
26
|
import { getSize } from "@tamagui/get-token";
|
|
@@ -347,6 +348,11 @@ function AvatarRoot({
|
|
|
347
348
|
);
|
|
348
349
|
}
|
|
349
350
|
|
|
351
|
+
const AvatarGroupItem = styled(View, {
|
|
352
|
+
name: "AvatarGroupItem",
|
|
353
|
+
flexShrink: 0,
|
|
354
|
+
});
|
|
355
|
+
|
|
350
356
|
function AvatarGroup({
|
|
351
357
|
children,
|
|
352
358
|
max = 4,
|
|
@@ -378,9 +384,9 @@ function AvatarGroup({
|
|
|
378
384
|
key={index}
|
|
379
385
|
value={{ size, circular, nested, compact, overlap, index, count: total }}
|
|
380
386
|
>
|
|
381
|
-
<
|
|
387
|
+
<AvatarGroupItem zIndex={index} marginStart={index > 0 ? -overlapPx : 0}>
|
|
382
388
|
{child}
|
|
383
|
-
</
|
|
389
|
+
</AvatarGroupItem>
|
|
384
390
|
</GroupCtx.Provider>
|
|
385
391
|
))}
|
|
386
392
|
{extra > 0 ? (
|
|
@@ -395,7 +401,7 @@ function AvatarGroup({
|
|
|
395
401
|
count: total,
|
|
396
402
|
}}
|
|
397
403
|
>
|
|
398
|
-
<
|
|
404
|
+
<AvatarGroupItem zIndex={shown.length} marginStart={-overlapPx}>
|
|
399
405
|
<AvatarRoot
|
|
400
406
|
initials={overflowLabel}
|
|
401
407
|
fallbackBackgroundColor="$color4"
|
|
@@ -405,7 +411,7 @@ function AvatarGroup({
|
|
|
405
411
|
compact={compact}
|
|
406
412
|
size={size}
|
|
407
413
|
/>
|
|
408
|
-
</
|
|
414
|
+
</AvatarGroupItem>
|
|
409
415
|
</GroupCtx.Provider>
|
|
410
416
|
) : null}
|
|
411
417
|
</XStack>
|
|
@@ -96,6 +96,10 @@ const StepButton = styled(View, {
|
|
|
96
96
|
focusVisibleStyle: { outlineWidth: 0, outlineStyle: "none" as any },
|
|
97
97
|
});
|
|
98
98
|
|
|
99
|
+
const StepMarkerTarget = styled(View, {
|
|
100
|
+
name: "ProgressStepMarkerTarget",
|
|
101
|
+
});
|
|
102
|
+
|
|
99
103
|
const Connector = styled(View, {
|
|
100
104
|
name: "ProgressStepConnector",
|
|
101
105
|
flexShrink: 0,
|
|
@@ -261,7 +265,7 @@ export function ProgressSteps({
|
|
|
261
265
|
);
|
|
262
266
|
|
|
263
267
|
const markerTarget = (
|
|
264
|
-
<
|
|
268
|
+
<StepMarkerTarget
|
|
265
269
|
width={MIN_PRESS_TARGET}
|
|
266
270
|
height={MIN_PRESS_TARGET}
|
|
267
271
|
minWidth={MIN_PRESS_TARGET}
|
|
@@ -274,7 +278,7 @@ export function ProgressSteps({
|
|
|
274
278
|
hitSlop={hitSlop ?? pressTargetHitSlop(markerPx)}
|
|
275
279
|
>
|
|
276
280
|
{marker}
|
|
277
|
-
</
|
|
281
|
+
</StepMarkerTarget>
|
|
278
282
|
);
|
|
279
283
|
|
|
280
284
|
const labelBlock = (
|
|
@@ -282,7 +286,7 @@ export function ProgressSteps({
|
|
|
282
286
|
gap="$0.5"
|
|
283
287
|
flexShrink={1}
|
|
284
288
|
{...(horizontal
|
|
285
|
-
? { alignItems: "center",
|
|
289
|
+
? { alignItems: "center", maxWidth: 160 }
|
|
286
290
|
: { flexGrow: 1, justifyContent: "center" })}
|
|
287
291
|
>
|
|
288
292
|
<SizableText
|
|
@@ -321,32 +325,35 @@ export function ProgressSteps({
|
|
|
321
325
|
flexGrow={1}
|
|
322
326
|
minHeight={16}
|
|
323
327
|
backgroundColor={connectorFill}
|
|
324
|
-
marginTop={2}
|
|
325
328
|
transition={knobProps.transition}
|
|
326
329
|
/>
|
|
327
330
|
) : null;
|
|
328
331
|
|
|
329
332
|
const horizontalConnector = !isLast ? (
|
|
330
|
-
<
|
|
333
|
+
<XStack
|
|
331
334
|
flexGrow={1}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
335
|
+
paddingTop={(markerPx - connectorThickness) / 2}
|
|
336
|
+
paddingHorizontal={gapToken}
|
|
337
|
+
>
|
|
338
|
+
<Connector
|
|
339
|
+
flexGrow={1}
|
|
340
|
+
height={connectorThickness}
|
|
341
|
+
backgroundColor={connectorFill}
|
|
342
|
+
minWidth={16}
|
|
343
|
+
transition={knobProps.transition}
|
|
344
|
+
/>
|
|
345
|
+
</XStack>
|
|
339
346
|
) : null;
|
|
340
347
|
|
|
341
348
|
const showLabels = labels !== "hidden";
|
|
342
349
|
const body = horizontal ? (
|
|
343
|
-
<YStack alignItems="center" flexShrink={0}>
|
|
350
|
+
<YStack alignItems="center" flexShrink={0} gap={gapToken}>
|
|
344
351
|
{markerTarget}
|
|
345
352
|
{showLabels ? labelBlock : null}
|
|
346
353
|
</YStack>
|
|
347
354
|
) : (
|
|
348
355
|
<XStack alignItems="stretch" gap={gapToken} minHeight={MIN_PRESS_TARGET}>
|
|
349
|
-
<YStack alignItems="center" width={MIN_PRESS_TARGET} flexShrink={0}>
|
|
356
|
+
<YStack alignItems="center" width={MIN_PRESS_TARGET} flexShrink={0} gap={2}>
|
|
350
357
|
{markerTarget}
|
|
351
358
|
{verticalConnector}
|
|
352
359
|
</YStack>
|
|
@@ -6,9 +6,16 @@
|
|
|
6
6
|
* responder claim (`onStartShouldSetResponder` returning true). A surface
|
|
7
7
|
* holding that claim takes every touch that starts on plain content inside
|
|
8
8
|
* it, and a responder ancestor stops the ScrollView's own pan.
|
|
9
|
+
*
|
|
10
|
+
* The sheet's RN Modal is its own native window, but its touch events still
|
|
11
|
+
* bubble through the React tree to whatever rendered it. A screen ScrollView
|
|
12
|
+
* up there saw onTouchStart, marked itself touching, took the responder on
|
|
13
|
+
* the first scroll event of a list in the sheet, and on release blurred the
|
|
14
|
+
* focused input: the keyboard dropped on the first scroll (MPO-299 AC3).
|
|
9
15
|
*/
|
|
10
16
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
11
|
-
import { cleanup } from "@testing-library/react";
|
|
17
|
+
import { cleanup, fireEvent } from "@testing-library/react";
|
|
18
|
+
import { View } from "react-native";
|
|
12
19
|
import { afterEach, expect, it, vi } from "vitest";
|
|
13
20
|
import { Text } from "tamagui";
|
|
14
21
|
import { SheetModal } from "./index.native";
|
|
@@ -61,3 +68,37 @@ it("keeps every native sheet stack out of the touch responder", () => {
|
|
|
61
68
|
stacks.clear();
|
|
62
69
|
}
|
|
63
70
|
});
|
|
71
|
+
|
|
72
|
+
it("keeps touches inside the sheet from bubbling to React ancestors outside the modal", () => {
|
|
73
|
+
const outside = { start: vi.fn(), move: vi.fn(), end: vi.fn(), cancel: vi.fn() };
|
|
74
|
+
const inside = vi.fn();
|
|
75
|
+
for (const fill of [false, true]) {
|
|
76
|
+
const view = renderWithProviders(
|
|
77
|
+
<div
|
|
78
|
+
onTouchStart={outside.start}
|
|
79
|
+
onTouchMove={outside.move}
|
|
80
|
+
onTouchEnd={outside.end}
|
|
81
|
+
onTouchCancel={outside.cancel}
|
|
82
|
+
>
|
|
83
|
+
<SheetModal open onOpenChange={() => {}} fill={fill} scrollable>
|
|
84
|
+
<View onTouchStart={inside}>
|
|
85
|
+
<Text>row</Text>
|
|
86
|
+
</View>
|
|
87
|
+
</SheetModal>
|
|
88
|
+
</div>,
|
|
89
|
+
);
|
|
90
|
+
const row = view.getByText("row");
|
|
91
|
+
const touch = { identifier: 0, clientX: 10, clientY: 10, pageX: 10, pageY: 10, force: 1 };
|
|
92
|
+
const down = { touches: [touch], changedTouches: [touch] };
|
|
93
|
+
const up = { touches: [], changedTouches: [touch] };
|
|
94
|
+
fireEvent.touchStart(row, down);
|
|
95
|
+
fireEvent.touchMove(row, down);
|
|
96
|
+
fireEvent.touchEnd(row, up);
|
|
97
|
+
fireEvent.touchCancel(row, up);
|
|
98
|
+
cleanup();
|
|
99
|
+
}
|
|
100
|
+
expect(inside).toHaveBeenCalledTimes(2);
|
|
101
|
+
for (const [phase, handler] of Object.entries(outside)) {
|
|
102
|
+
expect(handler, phase).not.toHaveBeenCalled();
|
|
103
|
+
}
|
|
104
|
+
});
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
StyleSheet,
|
|
31
31
|
View as RNView,
|
|
32
32
|
useWindowDimensions,
|
|
33
|
+
type GestureResponderEvent,
|
|
33
34
|
} from "react-native";
|
|
34
35
|
import { SafeAreaInsetsContext, initialWindowMetrics } from "react-native-safe-area-context";
|
|
35
36
|
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
@@ -57,6 +58,13 @@ const IN_DIALOG_REGION = { inDialogRegion: true } as const;
|
|
|
57
58
|
*/
|
|
58
59
|
const fillSlot = { flex: 1, minHeight: 0 } as const;
|
|
59
60
|
const nonShrinking = { flexShrink: 0 } as const;
|
|
61
|
+
/*
|
|
62
|
+
* MPO-299: the Modal is its own native window, yet its touch events bubble
|
|
63
|
+
* through the React tree to whatever rendered it. A screen ScrollView there
|
|
64
|
+
* marks itself touching, takes the responder on the first scroll of a list
|
|
65
|
+
* in the sheet, and blurs the focused input on release.
|
|
66
|
+
*/
|
|
67
|
+
const stopAtModal = (event: GestureResponderEvent) => event.stopPropagation();
|
|
60
68
|
|
|
61
69
|
export function SheetModal({
|
|
62
70
|
open,
|
|
@@ -348,7 +356,13 @@ export function SheetModal({
|
|
|
348
356
|
onRequestClose={close}
|
|
349
357
|
onShow={enter}
|
|
350
358
|
>
|
|
351
|
-
<RNView
|
|
359
|
+
<RNView
|
|
360
|
+
style={{ flex: 1, justifyContent: "flex-end", paddingBottom: keyboardInset }}
|
|
361
|
+
onTouchStart={stopAtModal}
|
|
362
|
+
onTouchMove={stopAtModal}
|
|
363
|
+
onTouchEnd={stopAtModal}
|
|
364
|
+
onTouchCancel={stopAtModal}
|
|
365
|
+
>
|
|
352
366
|
<Pressable
|
|
353
367
|
style={StyleSheet.absoluteFill}
|
|
354
368
|
onPress={handleBackdropPress}
|
package/src/Tabs/index.tsx
CHANGED
|
@@ -236,6 +236,10 @@ const StripWrapper = styled(View, {
|
|
|
236
236
|
position: "relative",
|
|
237
237
|
});
|
|
238
238
|
|
|
239
|
+
// A slot name for the spec's ## Slot margins table, not styled(): a styled
|
|
240
|
+
// wrapper drops onScroll on native (MPO-368).
|
|
241
|
+
const TabStripScroll = ScrollView;
|
|
242
|
+
|
|
239
243
|
const TabsList = styled(TamaguiTabs.List, {
|
|
240
244
|
name: "MpTabsList",
|
|
241
245
|
unstyled: true,
|
|
@@ -732,7 +736,7 @@ function TabsRoot({
|
|
|
732
736
|
{tabList}
|
|
733
737
|
</View>
|
|
734
738
|
) : (
|
|
735
|
-
<
|
|
739
|
+
<TabStripScroll
|
|
736
740
|
ref={scrollRef}
|
|
737
741
|
data-tabs-scroll="true"
|
|
738
742
|
horizontal
|
|
@@ -755,7 +759,7 @@ function TabsRoot({
|
|
|
755
759
|
}}
|
|
756
760
|
>
|
|
757
761
|
{tabList}
|
|
758
|
-
</
|
|
762
|
+
</TabStripScroll>
|
|
759
763
|
)}
|
|
760
764
|
</StripWrapper>
|
|
761
765
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MPO-411. The theme playground is the catalog's: a palette toggle that opens
|
|
3
|
+
* the house ThemeDevtoolsPanel in a SheetModal, so a reader flips the scheme,
|
|
4
|
+
* the preset and the style knobs and watches the page restyle live. Web only;
|
|
5
|
+
* the native twin renders nothing because the panel draws raw DOM.
|
|
6
|
+
*/
|
|
7
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
8
|
+
import { cleanup, fireEvent, screen, waitFor } from "@testing-library/react";
|
|
9
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
10
|
+
import { ThemePlayground } from "./index";
|
|
11
|
+
import { ThemePlayground as NativeThemePlayground } from "./index.native";
|
|
12
|
+
|
|
13
|
+
afterEach(cleanup);
|
|
14
|
+
|
|
15
|
+
describe("ThemePlayground", () => {
|
|
16
|
+
it("offers a labelled palette toggle, closed until pressed", async () => {
|
|
17
|
+
renderWithProviders(<ThemePlayground testID="playground" />);
|
|
18
|
+
const toggle = await screen.findByTestId("playground", {}, { timeout: 10000 });
|
|
19
|
+
expect(toggle.getAttribute("aria-label")).toBe("Theme");
|
|
20
|
+
expect(toggle.getAttribute("aria-expanded")).toBe("false");
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("opens the playground sheet from the toggle", async () => {
|
|
24
|
+
renderWithProviders(<ThemePlayground testID="playground" />);
|
|
25
|
+
fireEvent.click(await screen.findByTestId("playground", {}, { timeout: 10000 }));
|
|
26
|
+
await waitFor(() =>
|
|
27
|
+
expect(screen.getByTestId("playground").getAttribute("aria-expanded")).toBe("true"),
|
|
28
|
+
);
|
|
29
|
+
expect(await screen.findByText("Theme playground", {}, { timeout: 10000 })).toBeTruthy();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("renders nothing on native", () => {
|
|
33
|
+
const { container } = renderWithProviders(<NativeThemePlayground testID="playground" />);
|
|
34
|
+
expect(container.querySelector('[data-testid="playground"]')).toBeNull();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ThemePlaygroundProps } from "./index";
|
|
2
|
+
|
|
3
|
+
export type { ThemePlaygroundProps } from "./index";
|
|
4
|
+
|
|
5
|
+
/** The panel draws raw DOM, so native offers no playground. */
|
|
6
|
+
export function ThemePlayground(_props: ThemePlaygroundProps): null {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ThemeDevtoolsPanel } from "@multiplatform.one/theme";
|
|
2
|
+
import { PaletteIcon } from "@phosphor-icons/react";
|
|
3
|
+
import { Suspense, lazy, useState, type ComponentType } from "react";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import { SizableText, Text, YStack } from "tamagui";
|
|
6
|
+
import { Button } from "../Button";
|
|
7
|
+
import { SheetModal } from "../SheetModal";
|
|
8
|
+
import { Tooltip } from "../Tooltip";
|
|
9
|
+
|
|
10
|
+
export interface ThemePlaygroundProps {
|
|
11
|
+
testID?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The panel reads the reader's color scheme through `@vxrn/color-scheme`,
|
|
16
|
+
* an optional peer: without it the panel still opens, minus the scheme row.
|
|
17
|
+
*/
|
|
18
|
+
const ScopedPanel = lazy(async (): Promise<{ default: ComponentType<object> }> => {
|
|
19
|
+
const scheme = await import("@vxrn/color-scheme").catch(() => undefined);
|
|
20
|
+
const useUserScheme = scheme?.useUserScheme;
|
|
21
|
+
if (!useUserScheme) {
|
|
22
|
+
return { default: () => <ThemeDevtoolsPanel /> };
|
|
23
|
+
}
|
|
24
|
+
const Panel = () => (
|
|
25
|
+
<ThemeDevtoolsPanel useUserScheme={useUserScheme} devtoolsTheme={useUserScheme().value} />
|
|
26
|
+
);
|
|
27
|
+
return { default: Panel };
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A palette toggle opening the house ThemeDevtoolsPanel in a sheet: scheme,
|
|
32
|
+
* preset and style knobs, restyling the page live (LC-18 as a reader-facing
|
|
33
|
+
* control). The panel stays mounted after the first open so closing the
|
|
34
|
+
* sheet does not blank it mid-slide.
|
|
35
|
+
*/
|
|
36
|
+
export function ThemePlayground({ testID }: ThemePlaygroundProps) {
|
|
37
|
+
const { t } = useTranslation();
|
|
38
|
+
const [open, setOpen] = useState(false);
|
|
39
|
+
const [opened, setOpened] = useState(false);
|
|
40
|
+
const change = (next: boolean) => {
|
|
41
|
+
setOpen(next);
|
|
42
|
+
if (next) setOpened(true);
|
|
43
|
+
};
|
|
44
|
+
return (
|
|
45
|
+
<>
|
|
46
|
+
<Tooltip content={t("Restyle the page live: scheme, preset and style knobs")}>
|
|
47
|
+
<Button
|
|
48
|
+
variant={open ? undefined : "outlined"}
|
|
49
|
+
theme={open ? "accent" : undefined}
|
|
50
|
+
minHeight={44}
|
|
51
|
+
minWidth={44}
|
|
52
|
+
onPress={() => change(true)}
|
|
53
|
+
icon={<PaletteIcon size={16} />}
|
|
54
|
+
aria-label={t("Theme")}
|
|
55
|
+
aria-expanded={open}
|
|
56
|
+
testID={testID}
|
|
57
|
+
/>
|
|
58
|
+
</Tooltip>
|
|
59
|
+
<SheetModal
|
|
60
|
+
open={open}
|
|
61
|
+
onOpenChange={change}
|
|
62
|
+
snapPoint={85}
|
|
63
|
+
scrollable
|
|
64
|
+
header={
|
|
65
|
+
<YStack>
|
|
66
|
+
<SizableText size="$6" fontWeight="700">
|
|
67
|
+
{t("Theme playground")}
|
|
68
|
+
</SizableText>
|
|
69
|
+
<Text fontSize="$2" color="$color10">
|
|
70
|
+
{t("Changes restyle the page live")}
|
|
71
|
+
</Text>
|
|
72
|
+
</YStack>
|
|
73
|
+
}
|
|
74
|
+
>
|
|
75
|
+
{opened ? (
|
|
76
|
+
<Suspense fallback={null}>
|
|
77
|
+
<ScopedPanel />
|
|
78
|
+
</Suspense>
|
|
79
|
+
) : null}
|
|
80
|
+
</SheetModal>
|
|
81
|
+
</>
|
|
82
|
+
);
|
|
83
|
+
}
|
package/src/Toast/index.tsx
CHANGED
|
@@ -467,9 +467,9 @@ function ToastBody({
|
|
|
467
467
|
<>
|
|
468
468
|
<View
|
|
469
469
|
flexShrink={0}
|
|
470
|
-
height={iconPx}
|
|
470
|
+
height={iconPx + 1}
|
|
471
471
|
justifyContent="center"
|
|
472
|
-
|
|
472
|
+
paddingTop={1}
|
|
473
473
|
accessible={false}
|
|
474
474
|
accessibilityElementsHidden
|
|
475
475
|
importantForAccessibility="no"
|
package/src/TreeSelect/index.tsx
CHANGED
|
@@ -254,13 +254,7 @@ function TreeSelectRows({
|
|
|
254
254
|
{node.label}
|
|
255
255
|
</Text>
|
|
256
256
|
{hasChildren && childCount > 0 ? (
|
|
257
|
-
<Text
|
|
258
|
-
fontFamily="$mono"
|
|
259
|
-
fontSize={11}
|
|
260
|
-
lineHeight={21}
|
|
261
|
-
color="$color8"
|
|
262
|
-
marginLeft="auto"
|
|
263
|
-
>
|
|
257
|
+
<Text fontFamily="$mono" fontSize={11} lineHeight={21} color="$color8">
|
|
264
258
|
{childCount}
|
|
265
259
|
</Text>
|
|
266
260
|
) : null}
|
|
@@ -220,8 +220,8 @@ function SeekBar({
|
|
|
220
220
|
left={`${ratio * 100}%`}
|
|
221
221
|
width={hot ? 14 : 12}
|
|
222
222
|
height={hot ? 14 : 12}
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
x={hot ? -7 : -6}
|
|
224
|
+
y={hot ? -7 : -6}
|
|
225
225
|
backgroundColor="$color12"
|
|
226
226
|
borderRadius={radius}
|
|
227
227
|
pointerEvents="none"
|
package/src/Wizard/index.tsx
CHANGED
|
@@ -518,6 +518,7 @@ function WizardRoot({
|
|
|
518
518
|
ref={shellRef}
|
|
519
519
|
data-wizard-status="ready"
|
|
520
520
|
data-wizard-current={String(current)}
|
|
521
|
+
{...knobProps.gap}
|
|
521
522
|
{...props}
|
|
522
523
|
>
|
|
523
524
|
<YStack data-wizard-rail="" width="100%">
|
|
@@ -532,7 +533,7 @@ function WizardRoot({
|
|
|
532
533
|
}}
|
|
533
534
|
/>
|
|
534
535
|
</YStack>
|
|
535
|
-
<YStack
|
|
536
|
+
<YStack width="100%">
|
|
536
537
|
<WizardRule />
|
|
537
538
|
</YStack>
|
|
538
539
|
{stepErrors.length > 0 ? (
|
|
@@ -542,7 +543,6 @@ function WizardRoot({
|
|
|
542
543
|
{...knobProps.borderRadius}
|
|
543
544
|
borderWidth={1}
|
|
544
545
|
borderColor="$red9"
|
|
545
|
-
marginTop={knobProps.gap.gap}
|
|
546
546
|
width="100%"
|
|
547
547
|
>
|
|
548
548
|
<ErrorSummary
|
|
@@ -553,42 +553,43 @@ function WizardRoot({
|
|
|
553
553
|
/>
|
|
554
554
|
</YStack>
|
|
555
555
|
) : null}
|
|
556
|
-
<YStack
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
{
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
<
|
|
556
|
+
<YStack {...knobProps.gapLg} width="100%">
|
|
557
|
+
<YStack width="100%">
|
|
558
|
+
{steps.map((step, index) => {
|
|
559
|
+
const legend = hideLabels ? stepCaption(t, index, steps) : step.label;
|
|
560
|
+
return (
|
|
561
|
+
<YStack
|
|
562
|
+
key={step.id || index}
|
|
563
|
+
ref={(node) => {
|
|
564
|
+
panelRefs.current[index] = node as HTMLElement | null;
|
|
565
|
+
}}
|
|
566
|
+
data-wizard-panel=""
|
|
567
|
+
data-wizard-fields=""
|
|
568
|
+
data-wizard-step-caption={hideLabels ? "" : undefined}
|
|
569
|
+
data-active={index === current ? "true" : "false"}
|
|
570
|
+
data-step-id={step.id}
|
|
571
|
+
display={index === current ? "flex" : "none"}
|
|
572
|
+
aria-hidden={index !== current || undefined}
|
|
573
|
+
width="100%"
|
|
574
|
+
maxWidth={formReadableMaxWidth}
|
|
575
|
+
alignSelf="flex-start"
|
|
576
|
+
{...knobProps.gap}
|
|
577
|
+
>
|
|
578
|
+
<FormSection label={legend} compact={compact}>
|
|
579
|
+
{panels[index]}
|
|
580
|
+
</FormSection>
|
|
581
|
+
</YStack>
|
|
582
|
+
);
|
|
583
|
+
})}
|
|
584
|
+
</YStack>
|
|
585
|
+
<YStack width="100%">
|
|
586
|
+
<WizardRule />
|
|
587
|
+
</YStack>
|
|
586
588
|
</YStack>
|
|
587
589
|
<ActionBar
|
|
588
590
|
id={`${reactId}-footer`}
|
|
589
591
|
data-wizard-footer=""
|
|
590
592
|
align={hasLeading ? "between" : "end"}
|
|
591
|
-
marginTop={knobProps.gap.gap}
|
|
592
593
|
cancel={
|
|
593
594
|
hasLeading ? (
|
|
594
595
|
<XStack gap="$2" flexWrap="wrap" alignItems="center">
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
11
11
|
import type { ReactNode } from "react";
|
|
12
|
-
import { Text, isWeb } from "tamagui";
|
|
12
|
+
import { Text, getTokenValue, isWeb } from "tamagui";
|
|
13
13
|
import type { HighlightLine } from "../Highlighter";
|
|
14
14
|
import { componentColors } from "../../componentColors";
|
|
15
15
|
|
|
@@ -50,6 +50,7 @@ export function HighlightedCode({
|
|
|
50
50
|
// it (LC-18). $color8 line-number ink fails AA (SB-M-020); $color11
|
|
51
51
|
// (text.secondary) is the lowest ramp that stays readable on code surfaces.
|
|
52
52
|
const gutterWidth = lineNumberGutterBySize[String(resolvedFontSize)] ?? 40;
|
|
53
|
+
const gutterGap = getTokenValue("$2" as Parameters<typeof getTokenValue>[0], "space") as number;
|
|
53
54
|
// While tokens are loading, show the raw children (plain text fallback)
|
|
54
55
|
// — geometry rides the surrounding type scale, not a fixed catalog px.
|
|
55
56
|
if (!tokens) {
|
|
@@ -79,12 +80,12 @@ export function HighlightedCode({
|
|
|
79
80
|
<Text
|
|
80
81
|
color={knobProps.textAccentColor}
|
|
81
82
|
fontSize={resolvedFontSize}
|
|
82
|
-
width={gutterWidth}
|
|
83
|
+
width={gutterWidth + gutterGap}
|
|
84
|
+
paddingInlineEnd={gutterGap}
|
|
83
85
|
data-line-number=""
|
|
84
86
|
display="inline-flex"
|
|
85
87
|
// "end" is web-only CSS; native textAlign has no logical values
|
|
86
88
|
textAlign={(isWeb ? "end" : "right") as any}
|
|
87
|
-
marginInlineEnd="$2"
|
|
88
89
|
userSelect="none"
|
|
89
90
|
>
|
|
90
91
|
{lineNumber}
|
package/src/index.ts
CHANGED
|
@@ -243,22 +243,23 @@ export const CustomEntryRenderer = () => (
|
|
|
243
243
|
<Timeline
|
|
244
244
|
entries={sampleEntries}
|
|
245
245
|
renderEntry={(entry: TimelineEntry, defaultContent) => (
|
|
246
|
-
<YStack
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
246
|
+
<YStack key={entry.id} paddingBottom="$2">
|
|
247
|
+
<YStack
|
|
248
|
+
padding="$3"
|
|
249
|
+
gap="$1"
|
|
250
|
+
backgroundColor={entry.type === "comment" ? "$blue2" : "$gray2"}
|
|
251
|
+
borderRadius="$3"
|
|
252
|
+
>
|
|
253
|
+
<XStack justifyContent="space-between">
|
|
254
|
+
<Text fontSize="$2" fontWeight="600">
|
|
255
|
+
{entry.author}
|
|
256
|
+
</Text>
|
|
257
|
+
<Text fontSize="$1" color="$gray10">
|
|
258
|
+
{entry.type}
|
|
259
|
+
</Text>
|
|
260
|
+
</XStack>
|
|
261
|
+
{defaultContent}
|
|
262
|
+
</YStack>
|
|
262
263
|
</YStack>
|
|
263
264
|
)}
|
|
264
265
|
/>
|
|
@@ -617,6 +617,7 @@ export function Attachments({
|
|
|
617
617
|
<YStack
|
|
618
618
|
{...(compact ? { padding: "$2" } : knobProps.panelPadding)}
|
|
619
619
|
alignItems="center"
|
|
620
|
+
gap="$2"
|
|
620
621
|
{...knobProps.borderRadius}
|
|
621
622
|
borderWidth={canAdd ? 1 : 0}
|
|
622
623
|
borderStyle={canAdd ? "dashed" : undefined}
|
|
@@ -629,7 +630,7 @@ export function Attachments({
|
|
|
629
630
|
{...dropHandlers}
|
|
630
631
|
>
|
|
631
632
|
<PaperclipIcon size={compact ? 20 : 28} />
|
|
632
|
-
<Text color={knobProps.textAccentColor} fontSize={compact ? "$2" : "$3"}
|
|
633
|
+
<Text color={knobProps.textAccentColor} fontSize={compact ? "$2" : "$3"}>
|
|
633
634
|
{noAttachmentsLabel}
|
|
634
635
|
</Text>
|
|
635
636
|
</YStack>
|