@multiplatform.one/components 7.80.0 → 7.81.1
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.native.js +1 -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.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.native.js.map +1 -1
- 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 +3 -3
- package/dist/cjs/Carousel/index.native.js.map +1 -1
- package/dist/cjs/CheckGlyph/MenuCheckColumn.cjs +56 -0
- package/dist/cjs/CheckGlyph/MenuCheckColumn.native.js +60 -0
- package/dist/cjs/CheckGlyph/MenuCheckColumn.native.js.map +1 -0
- package/dist/cjs/CheckGlyph/index.cjs +40 -0
- package/dist/cjs/CheckGlyph/index.native.js +44 -0
- package/dist/cjs/CheckGlyph/index.native.js.map +1 -0
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/Collapsible.native.js.map +1 -1
- package/dist/cjs/ContextMenu/index.cjs +5 -22
- package/dist/cjs/ContextMenu/index.native.js +7 -25
- package/dist/cjs/ContextMenu/index.native.js.map +1 -1
- package/dist/cjs/CopyField/CopyMenuButton.native.js +1 -1
- package/dist/cjs/CopyField/CopyMenuButton.native.js.map +1 -1
- package/dist/cjs/CopyField/index.native.js.map +1 -1
- package/dist/cjs/Dialog.native.js.map +1 -1
- package/dist/cjs/Diff/diff.native.js.map +1 -1
- package/dist/cjs/Diff/index.native.js.map +1 -1
- package/dist/cjs/DotIndicator/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/index.cjs +5 -17
- package/dist/cjs/DropdownMenu/index.native.js +7 -19
- package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/menuSettle.native.js.map +1 -1
- package/dist/cjs/ElapsedProgress/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/Kbd/index.native.js.map +1 -1
- package/dist/cjs/Kbd/keys.native.js.map +1 -1
- package/dist/cjs/Lightbox/MediaControl.native.js.map +1 -1
- package/dist/cjs/Lightbox/index.gnome.native.js.map +1 -1
- package/dist/cjs/Lightbox/index.native.js +1 -1
- package/dist/cjs/Lightbox/shared.native.js.map +1 -1
- package/dist/cjs/Lightbox/useLightbox.native.js.map +1 -1
- package/dist/cjs/MachineLiteral/index.native.js.map +1 -1
- package/dist/cjs/Material/index.native.js.map +1 -1
- package/dist/cjs/Meter/index.native.js +1 -1
- package/dist/cjs/Meter/index.native.js.map +1 -1
- package/dist/cjs/Meter/meter.native.js.map +1 -1
- package/dist/cjs/OverflowRow/index.native.js +1 -1
- package/dist/cjs/OverflowRow/index.native.js.map +1 -1
- package/dist/cjs/Pagination.native.js +1 -1
- package/dist/cjs/Pagination.native.js.map +1 -1
- package/dist/cjs/Popover.cjs +2 -2
- package/dist/cjs/Popover.native.js +3 -3
- package/dist/cjs/Popover.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/SchemeToggle/index.cjs +2 -2
- package/dist/cjs/SchemeToggle/index.native.js +3 -3
- package/dist/cjs/SchemeToggle/index.native.js.map +1 -1
- package/dist/cjs/ScrollView/revealFocusedField.native.js.map +1 -1
- package/dist/cjs/Separator/index.native.js.map +1 -1
- package/dist/cjs/Sheet.native.js.map +1 -1
- package/dist/cjs/SheetModal/SheetHeader.native.js.map +1 -1
- package/dist/cjs/SheetModal/SheetNavigation.native.js.map +1 -1
- package/dist/cjs/SheetModal/detents.native.js.map +1 -1
- package/dist/cjs/SheetModal/index.cjs +5 -10
- package/dist/cjs/SheetModal/index.native.js +8 -12
- package/dist/cjs/SheetModal/index.native.js.map +1 -1
- package/dist/cjs/SheetModal/useSheetFrameFocus.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/SortableList/useUserOrder.native.js.map +1 -1
- package/dist/cjs/Tabs/index.native.js +1 -1
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/Text.native.js.map +1 -1
- package/dist/cjs/ThemePresetPicker/index.native.js +2 -2
- package/dist/cjs/ThemePresetPicker/index.native.js.map +1 -1
- 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.cjs +2 -6
- package/dist/cjs/TreeSelect/index.native.js +3 -7
- 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/DangerSection.native.js.map +1 -1
- package/dist/cjs/actions/DestructiveAction.native.js.map +1 -1
- package/dist/cjs/actions/HeaderActions.native.js +2 -2
- package/dist/cjs/actions/HeaderActions.native.js.map +1 -1
- package/dist/cjs/actions/StandardAction.native.js +1 -1
- package/dist/cjs/actions/StandardAction.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/appShell/AppShell.cjs +31 -17
- package/dist/cjs/appShell/AppShell.native.js +37 -23
- package/dist/cjs/appShell/AppShell.native.js.map +1 -1
- package/dist/cjs/appShell/Dock.native.js.map +1 -1
- package/dist/cjs/appShell/MpoTabHost.native.js.map +1 -1
- package/dist/cjs/appShell/ScopeMenu.cjs +39 -16
- package/dist/cjs/appShell/ScopeMenu.native.js +43 -17
- package/dist/cjs/appShell/ScopeMenu.native.js.map +1 -1
- package/dist/cjs/appShell/SettingsSplit.native.js +1 -1
- package/dist/cjs/appShell/SettingsSplit.native.js.map +1 -1
- package/dist/cjs/appShell/Springboard.native.js +1 -1
- package/dist/cjs/appShell/Springboard.native.js.map +1 -1
- package/dist/cjs/appShell/SystemBar.native.js.map +1 -1
- package/dist/cjs/appShell/TabBar.native.js +1 -1
- package/dist/cjs/appShell/TabBar.native.js.map +1 -1
- package/dist/cjs/appShell/TabHost.native.js +48 -11
- package/dist/cjs/appShell/TabHost.native.js.map +1 -1
- package/dist/cjs/appShell/appTile.native.js +1 -1
- package/dist/cjs/appShell/appTile.native.js.map +1 -1
- package/dist/cjs/appShell/bottomChrome.cjs +12 -1
- package/dist/cjs/appShell/bottomChrome.native.js +13 -1
- package/dist/cjs/appShell/bottomChrome.native.js.map +1 -1
- package/dist/cjs/appShell/index.native.js.map +1 -1
- package/dist/cjs/charts/Axis.native.js.map +1 -1
- package/dist/cjs/charts/BarChart.native.js.map +1 -1
- package/dist/cjs/charts/ChartDataView.native.js +1 -1
- package/dist/cjs/charts/ChartDataView.native.js.map +1 -1
- package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
- package/dist/cjs/charts/LineChart.native.js.map +1 -1
- package/dist/cjs/charts/PieChart.native.js.map +1 -1
- package/dist/cjs/charts/Sparkline.native.js.map +1 -1
- package/dist/cjs/charts/accessibility.native.js.map +1 -1
- package/dist/cjs/charts/chartHeight.native.js.map +1 -1
- package/dist/cjs/charts/composeChart.native.js.map +1 -1
- package/dist/cjs/charts/index.native.js.map +1 -1
- package/dist/cjs/charts/math.native.js.map +1 -1
- package/dist/cjs/charts/series.native.js.map +1 -1
- 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.native.js +7 -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/houseSyntaxTheme.native.js.map +1 -1
- package/dist/cjs/code/Highlighter/index.native.js.map +1 -1
- package/dist/cjs/code/Highlighter/namedGroupMatchAll.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.native.js.map +1 -1
- package/dist/cjs/feedback/NotifyHost.native.js +2 -2
- package/dist/cjs/feedback/NotifyHost.native.js.map +1 -1
- package/dist/cjs/feedback/copy.native.js.map +1 -1
- package/dist/cjs/feedback/index.native.js.map +1 -1
- package/dist/cjs/feedback/notify.native.js.map +1 -1
- package/dist/cjs/feedback/route.native.js.map +1 -1
- package/dist/cjs/feedback/store.native.js.map +1 -1
- package/dist/cjs/formLayouts/FormLayouts.native.js +1 -1
- package/dist/cjs/formLayouts/FormLayouts.native.js.map +1 -1
- package/dist/cjs/formLayouts/PreferencePanel.native.js +2 -2
- package/dist/cjs/formLayouts/PreferencePanel.native.js.map +1 -1
- package/dist/cjs/formLayouts/index.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/hooks/useHoldCue.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.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/framing.native.js.map +1 -1
- package/dist/cjs/images/Image/index.native.js +1 -1
- package/dist/cjs/images/Image/mediaRadius.native.js.map +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 +39 -39
- package/dist/cjs/index.native.js.map +1 -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/IdentityPlate.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.native.js.map +1 -1
- package/dist/cjs/layouts/SafeAreaWrapper/insets.native.js.map +1 -1
- package/dist/cjs/layouts/StatusDot.native.js.map +1 -1
- package/dist/cjs/layouts/StatusGlyphStrip.native.js +1 -1
- package/dist/cjs/layouts/StatusGlyphStrip.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/bottomAccessory.native.js.map +1 -1
- package/dist/cjs/layouts/breadcrumbs.native.js.map +1 -1
- package/dist/cjs/layouts/index.native.js +3 -3
- package/dist/cjs/layouts/index.native.js.map +1 -1
- package/dist/cjs/layouts/page.native.js +2 -2
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/cjs/layouts/screenScroll.native.js.map +1 -1
- package/dist/cjs/layouts/shellSidebarSlot.native.js.map +1 -1
- package/dist/cjs/layouts/sidebar.cjs +29 -8
- package/dist/cjs/layouts/sidebar.native.js +31 -9
- package/dist/cjs/layouts/sidebar.native.js.map +1 -1
- package/dist/cjs/layouts/tags.native.js +2 -2
- 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 +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/restoreRetries.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/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.native.js +1 -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 +1 -1
- package/dist/cjs/views/Calendar.native.js.map +1 -1
- package/dist/cjs/views/Dashboard.native.js +2 -2
- package/dist/cjs/views/Dashboard.native.js.map +1 -1
- package/dist/cjs/views/Gantt.native.js +2 -2
- package/dist/cjs/views/Gantt.native.js.map +1 -1
- package/dist/cjs/views/GanttDateGrip.native.js.map +1 -1
- package/dist/cjs/views/ImageGrid.native.js +2 -2
- package/dist/cjs/views/ImageGrid.native.js.map +1 -1
- package/dist/cjs/views/Kanban.native.js +1 -1
- package/dist/cjs/views/List.native.js.map +1 -1
- package/dist/cjs/views/ListGroup.native.js.map +1 -1
- package/dist/cjs/views/ListRow.native.js.map +1 -1
- package/dist/cjs/views/Matrix.native.js +2 -2
- package/dist/cjs/views/Matrix.native.js.map +1 -1
- package/dist/cjs/views/ReportBuilder.native.js +2 -2
- package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
- package/dist/cjs/views/ShortcutCard.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/ganttIntervals.native.js.map +1 -1
- package/dist/cjs/views/ganttMath.native.js.map +1 -1
- package/dist/cjs/views/index.native.js +1 -1
- package/dist/cjs/views/index.native.js.map +1 -1
- package/dist/cjs/views/kanbanDnd.native.js.map +1 -1
- package/dist/cjs/views/matrixMath.native.js.map +1 -1
- package/dist/cjs/views/sameNameScope.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/cjs/views/treeViewReveal.native.js.map +1 -1
- package/dist/cjs/views/usePageFlowLoadMore.native.js.map +1 -1
- package/dist/cjs/views/widgetChrome.native.js.map +1 -1
- package/dist/esm/Accordion/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.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/CheckGlyph/MenuCheckColumn.mjs +31 -0
- package/dist/esm/CheckGlyph/MenuCheckColumn.mjs.map +1 -0
- package/dist/esm/CheckGlyph/MenuCheckColumn.native.js +32 -0
- package/dist/esm/CheckGlyph/MenuCheckColumn.native.js.map +1 -0
- package/dist/esm/CheckGlyph/index.mjs +15 -0
- package/dist/esm/CheckGlyph/index.mjs.map +1 -0
- package/dist/esm/CheckGlyph/index.native.js +16 -0
- package/dist/esm/CheckGlyph/index.native.js.map +1 -0
- 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 +6 -23
- package/dist/esm/ContextMenu/index.mjs.map +1 -1
- package/dist/esm/ContextMenu/index.native.js +8 -26
- package/dist/esm/ContextMenu/index.native.js.map +1 -1
- package/dist/esm/CopyField/CopyMenuButton.native.js.map +1 -1
- package/dist/esm/CopyField/index.native.js.map +1 -1
- package/dist/esm/Dialog.native.js.map +1 -1
- package/dist/esm/Diff/diff.native.js.map +1 -1
- package/dist/esm/Diff/index.native.js.map +1 -1
- package/dist/esm/DotIndicator/index.native.js.map +1 -1
- package/dist/esm/DropdownMenu/index.mjs +6 -18
- package/dist/esm/DropdownMenu/index.mjs.map +1 -1
- package/dist/esm/DropdownMenu/index.native.js +8 -20
- package/dist/esm/DropdownMenu/index.native.js.map +1 -1
- package/dist/esm/DropdownMenu/menuSettle.native.js.map +1 -1
- package/dist/esm/ElapsedProgress/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/Kbd/index.native.js.map +1 -1
- package/dist/esm/Kbd/keys.native.js.map +1 -1
- package/dist/esm/Lightbox/MediaControl.native.js.map +1 -1
- package/dist/esm/Lightbox/index.gnome.native.js.map +1 -1
- package/dist/esm/Lightbox/shared.native.js.map +1 -1
- package/dist/esm/Lightbox/useLightbox.native.js.map +1 -1
- package/dist/esm/MachineLiteral/index.native.js.map +1 -1
- package/dist/esm/Material/index.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/OverflowRow/index.native.js.map +1 -1
- package/dist/esm/Pagination.native.js.map +1 -1
- package/dist/esm/Popover.mjs +2 -2
- package/dist/esm/Popover.mjs.map +1 -1
- package/dist/esm/Popover.native.js +2 -2
- package/dist/esm/Popover.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/SchemeToggle/index.mjs +3 -3
- package/dist/esm/SchemeToggle/index.mjs.map +1 -1
- package/dist/esm/SchemeToggle/index.native.js +3 -3
- package/dist/esm/SchemeToggle/index.native.js.map +1 -1
- package/dist/esm/ScrollView/revealFocusedField.native.js.map +1 -1
- package/dist/esm/Separator/index.native.js.map +1 -1
- package/dist/esm/Sheet.native.js.map +1 -1
- package/dist/esm/SheetModal/SheetHeader.native.js.map +1 -1
- package/dist/esm/SheetModal/SheetNavigation.native.js.map +1 -1
- package/dist/esm/SheetModal/detents.native.js.map +1 -1
- package/dist/esm/SheetModal/index.mjs +6 -11
- package/dist/esm/SheetModal/index.mjs.map +1 -1
- package/dist/esm/SheetModal/index.native.js +9 -13
- package/dist/esm/SheetModal/index.native.js.map +1 -1
- package/dist/esm/SheetModal/useSheetFrameFocus.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/SortableList/useUserOrder.native.js.map +1 -1
- package/dist/esm/Tabs/index.native.js.map +1 -1
- package/dist/esm/Text.native.js.map +1 -1
- package/dist/esm/ThemePresetPicker/index.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 +4 -8
- package/dist/esm/TreeSelect/index.mjs.map +1 -1
- package/dist/esm/TreeSelect/index.native.js +4 -8
- 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/DangerSection.native.js.map +1 -1
- package/dist/esm/actions/DestructiveAction.native.js.map +1 -1
- package/dist/esm/actions/HeaderActions.native.js.map +1 -1
- package/dist/esm/actions/StandardAction.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/appShell/AppShell.mjs +32 -18
- package/dist/esm/appShell/AppShell.mjs.map +1 -1
- package/dist/esm/appShell/AppShell.native.js +37 -23
- package/dist/esm/appShell/AppShell.native.js.map +1 -1
- package/dist/esm/appShell/Dock.native.js.map +1 -1
- package/dist/esm/appShell/MpoTabHost.native.js.map +1 -1
- package/dist/esm/appShell/ScopeMenu.mjs +43 -20
- package/dist/esm/appShell/ScopeMenu.mjs.map +1 -1
- package/dist/esm/appShell/ScopeMenu.native.js +47 -21
- package/dist/esm/appShell/ScopeMenu.native.js.map +1 -1
- package/dist/esm/appShell/SettingsSplit.native.js.map +1 -1
- package/dist/esm/appShell/Springboard.native.js.map +1 -1
- package/dist/esm/appShell/SystemBar.native.js.map +1 -1
- package/dist/esm/appShell/TabBar.mjs.map +1 -1
- package/dist/esm/appShell/TabBar.native.js.map +1 -1
- package/dist/esm/appShell/TabHost.native.js +48 -13
- package/dist/esm/appShell/TabHost.native.js.map +1 -1
- package/dist/esm/appShell/appTile.native.js.map +1 -1
- package/dist/esm/appShell/bottomChrome.mjs +13 -3
- package/dist/esm/appShell/bottomChrome.mjs.map +1 -1
- package/dist/esm/appShell/bottomChrome.native.js +14 -3
- package/dist/esm/appShell/bottomChrome.native.js.map +1 -1
- package/dist/esm/appShell/index.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/chartHeight.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.native.js.map +1 -1
- package/dist/esm/code/Highlighter/houseSyntaxTheme.native.js.map +1 -1
- package/dist/esm/code/Highlighter/index.native.js.map +1 -1
- package/dist/esm/code/Highlighter/namedGroupMatchAll.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/formLayouts/FormLayouts.native.js.map +1 -1
- package/dist/esm/formLayouts/PreferencePanel.native.js.map +1 -1
- package/dist/esm/formLayouts/index.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/hooks/useHoldCue.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/framing.native.js.map +1 -1
- package/dist/esm/images/Image/mediaRadius.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.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/IdentityPlate.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/StatusDot.native.js.map +1 -1
- package/dist/esm/layouts/StatusGlyphStrip.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/bottomAccessory.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.native.js.map +1 -1
- package/dist/esm/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/esm/layouts/screenScroll.native.js.map +1 -1
- package/dist/esm/layouts/shellSidebarSlot.native.js.map +1 -1
- package/dist/esm/layouts/sidebar.mjs +31 -10
- package/dist/esm/layouts/sidebar.mjs.map +1 -1
- package/dist/esm/layouts/sidebar.native.js +32 -10
- 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/restoreRetries.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.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/GanttDateGrip.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/ListGroup.native.js.map +1 -1
- package/dist/esm/views/ListRow.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/ShortcutCard.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/ganttIntervals.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/sameNameScope.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/esm/views/usePageFlowLoadMore.native.js.map +1 -1
- package/dist/esm/views/widgetChrome.native.js.map +1 -1
- package/dist/jsx/CheckGlyph/MenuCheckColumn.mjs +31 -0
- package/dist/jsx/CheckGlyph/MenuCheckColumn.mjs.map +1 -0
- package/dist/jsx/CheckGlyph/MenuCheckColumn.native.js +60 -0
- package/dist/jsx/CheckGlyph/MenuCheckColumn.native.js.map +1 -0
- package/dist/jsx/CheckGlyph/index.mjs +15 -0
- package/dist/jsx/CheckGlyph/index.mjs.map +1 -0
- package/dist/jsx/CheckGlyph/index.native.js +44 -0
- package/dist/jsx/CheckGlyph/index.native.js.map +1 -0
- package/dist/jsx/ContextMenu/index.mjs +6 -23
- package/dist/jsx/ContextMenu/index.mjs.map +1 -1
- package/dist/jsx/ContextMenu/index.native.js +7 -25
- package/dist/jsx/ContextMenu/index.native.js.map +1 -1
- package/dist/jsx/DropdownMenu/index.mjs +6 -18
- package/dist/jsx/DropdownMenu/index.mjs.map +1 -1
- package/dist/jsx/DropdownMenu/index.native.js +7 -19
- package/dist/jsx/DropdownMenu/index.native.js.map +1 -1
- package/dist/jsx/Popover.mjs +2 -2
- package/dist/jsx/Popover.mjs.map +1 -1
- package/dist/jsx/Popover.native.js +2 -2
- package/dist/jsx/Popover.native.js.map +1 -1
- package/dist/jsx/SchemeToggle/index.mjs +3 -3
- package/dist/jsx/SchemeToggle/index.mjs.map +1 -1
- package/dist/jsx/SchemeToggle/index.native.js +2 -2
- package/dist/jsx/SchemeToggle/index.native.js.map +1 -1
- package/dist/jsx/SheetModal/index.mjs +6 -11
- package/dist/jsx/SheetModal/index.mjs.map +1 -1
- package/dist/jsx/SheetModal/index.native.js +8 -12
- package/dist/jsx/SheetModal/index.native.js.map +1 -1
- package/dist/jsx/TreeSelect/index.mjs +4 -8
- package/dist/jsx/TreeSelect/index.mjs.map +1 -1
- package/dist/jsx/TreeSelect/index.native.js +2 -6
- package/dist/jsx/TreeSelect/index.native.js.map +1 -1
- package/dist/jsx/appShell/AppShell.mjs +32 -18
- package/dist/jsx/appShell/AppShell.mjs.map +1 -1
- package/dist/jsx/appShell/AppShell.native.js +36 -22
- package/dist/jsx/appShell/AppShell.native.js.map +1 -1
- package/dist/jsx/appShell/ScopeMenu.mjs +43 -20
- package/dist/jsx/appShell/ScopeMenu.mjs.map +1 -1
- package/dist/jsx/appShell/ScopeMenu.native.js +43 -17
- package/dist/jsx/appShell/ScopeMenu.native.js.map +1 -1
- package/dist/jsx/appShell/TabBar.mjs.map +1 -1
- package/dist/jsx/appShell/TabBar.native.js.map +1 -1
- package/dist/jsx/appShell/TabHost.native.js +48 -11
- package/dist/jsx/appShell/TabHost.native.js.map +1 -1
- package/dist/jsx/appShell/bottomChrome.mjs +13 -3
- package/dist/jsx/appShell/bottomChrome.mjs.map +1 -1
- package/dist/jsx/appShell/bottomChrome.native.js +13 -1
- package/dist/jsx/appShell/bottomChrome.native.js.map +1 -1
- package/dist/jsx/layouts/sidebar.mjs +31 -10
- package/dist/jsx/layouts/sidebar.mjs.map +1 -1
- package/dist/jsx/layouts/sidebar.native.js +30 -8
- package/dist/jsx/layouts/sidebar.native.js.map +1 -1
- package/package.json +9 -9
- package/src/CheckGlyph/CheckGlyph.spec.tsx +46 -0
- package/src/CheckGlyph/MenuCheckColumn.tsx +32 -0
- package/src/CheckGlyph/index.tsx +12 -0
- package/src/ContextMenu/ContextMenu.spec.tsx +46 -1
- package/src/ContextMenu/index.tsx +5 -22
- package/src/DropdownMenu/DropdownMenu.avatarTrigger.spec.tsx +6 -9
- package/src/DropdownMenu/index.tsx +5 -18
- package/src/Popover.coverTrigger.spec.tsx +3 -3
- package/src/Popover.tsx +5 -5
- package/src/SchemeToggle/SchemeToggle.spec.tsx +5 -11
- package/src/SchemeToggle/SchemeToggle.stories.tsx +21 -0
- package/src/SchemeToggle/index.tsx +2 -1
- package/src/ScrollView/ScrollView.native.spec.tsx +14 -2
- package/src/SheetFrame.stories.tsx +2 -8
- package/src/SheetModal/SheetModal.grabber.spec.tsx +51 -0
- package/src/SheetModal/index.native.tsx +15 -18
- package/src/SheetModal/index.tsx +12 -15
- package/src/TreeSelect/index.tsx +2 -4
- package/src/appShell/AppShell.spec.tsx +51 -0
- package/src/appShell/AppShell.tsx +30 -14
- package/src/appShell/ScopeMenu.spec.tsx +22 -0
- package/src/appShell/ScopeMenu.tsx +57 -18
- package/src/appShell/TabBar.tsx +13 -3
- package/src/appShell/TabHost.native.spec.tsx +63 -6
- package/src/appShell/TabHost.native.tsx +56 -15
- package/src/appShell/TabHost.stories.tsx +72 -0
- package/src/appShell/bottomChrome.ts +24 -3
- package/src/layouts/PageHeader.stories.tsx +3 -3
- package/src/layouts/Sidebar.spec.tsx +61 -1
- package/src/layouts/pageActionButton.spec.tsx +7 -3
- package/src/layouts/sidebar.tsx +22 -8
- package/types/CheckGlyph/MenuCheckColumn.d.ts +11 -0
- package/types/CheckGlyph/MenuCheckColumn.d.ts.map +1 -0
- package/types/CheckGlyph/index.d.ts +10 -0
- package/types/CheckGlyph/index.d.ts.map +1 -0
- package/types/ContextMenu/index.d.ts.map +1 -1
- package/types/DropdownMenu/index.d.ts.map +1 -1
- package/types/Popover.d.ts +1 -1
- package/types/Popover.d.ts.map +1 -1
- package/types/SchemeToggle/index.d.ts.map +1 -1
- package/types/SheetModal/index.d.ts.map +1 -1
- package/types/SheetModal/index.native.d.ts.map +1 -1
- package/types/TreeSelect/index.d.ts.map +1 -1
- package/types/appShell/AppShell.d.ts.map +1 -1
- package/types/appShell/ScopeMenu.d.ts +0 -18
- package/types/appShell/ScopeMenu.d.ts.map +1 -1
- package/types/appShell/TabBar.d.ts +12 -6
- package/types/appShell/TabBar.d.ts.map +1 -1
- package/types/appShell/TabHost.native.d.ts +23 -5
- package/types/appShell/TabHost.native.d.ts.map +1 -1
- package/types/appShell/bottomChrome.d.ts +11 -1
- package/types/appShell/bottomChrome.d.ts.map +1 -1
- package/types/layouts/sidebar.d.ts +7 -1
- package/types/layouts/sidebar.d.ts.map +1 -1
|
@@ -2,7 +2,8 @@ import { fireEvent, waitFor } from "@testing-library/react";
|
|
|
2
2
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
3
3
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
4
|
import { Button } from "@multiplatform.one/forms";
|
|
5
|
-
import {
|
|
5
|
+
import { SunIcon } from "@phosphor-icons/react";
|
|
6
|
+
import { menuRowCheckGlyph, menuRowIconGlyph, OVERLAY_ANCHOR_GAP } from "@multiplatform.one/theme";
|
|
6
7
|
import { ContextMenu } from "./index";
|
|
7
8
|
|
|
8
9
|
function renderOpen(onSelect = vi.fn()) {
|
|
@@ -73,6 +74,50 @@ describe("ContextMenu", () => {
|
|
|
73
74
|
expect(selected?.lastElementChild).toBe(check);
|
|
74
75
|
});
|
|
75
76
|
|
|
77
|
+
it("draws a check beside row icons at their glyph, so it shares their stroke (FZ-8557 r3)", async () => {
|
|
78
|
+
renderWithProviders(
|
|
79
|
+
<ContextMenu
|
|
80
|
+
defaultOpen
|
|
81
|
+
items={[
|
|
82
|
+
{
|
|
83
|
+
label: "Light",
|
|
84
|
+
icon: <SunIcon size={menuRowIconGlyph.size} weight={menuRowIconGlyph.weight} />,
|
|
85
|
+
checked: true,
|
|
86
|
+
},
|
|
87
|
+
{ label: "Pinned", checked: true },
|
|
88
|
+
]}
|
|
89
|
+
>
|
|
90
|
+
<Button>Target</Button>
|
|
91
|
+
</ContextMenu>,
|
|
92
|
+
);
|
|
93
|
+
await waitFor(() => {
|
|
94
|
+
expect(document.querySelectorAll('[role="menuitemcheckbox"]')).toHaveLength(2);
|
|
95
|
+
});
|
|
96
|
+
const [iconRow, textRow] = Array.from(
|
|
97
|
+
document.querySelectorAll<HTMLElement>('[role="menuitemcheckbox"]'),
|
|
98
|
+
);
|
|
99
|
+
const checkOf = (row: HTMLElement | undefined) =>
|
|
100
|
+
row?.querySelector("[data-mp-check] svg")?.getAttribute("width");
|
|
101
|
+
expect(checkOf(iconRow)).toBe(String(menuRowIconGlyph.size));
|
|
102
|
+
expect(checkOf(textRow)).toBe(String(menuRowCheckGlyph.size));
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it("sits a trailing check on the row's padding, with no X column (FZ-8665)", async () => {
|
|
106
|
+
renderWithProviders(
|
|
107
|
+
<ContextMenu defaultOpen anchor="trigger" items={[{ label: "Pinned", checked: true }]}>
|
|
108
|
+
<Button>Target</Button>
|
|
109
|
+
</ContextMenu>,
|
|
110
|
+
);
|
|
111
|
+
await waitFor(() => {
|
|
112
|
+
expect(document.querySelector('[role="menuitemcheckbox"]')).toBeTruthy();
|
|
113
|
+
});
|
|
114
|
+
const row = document.querySelector<HTMLElement>('[role="menuitemcheckbox"]') as HTMLElement;
|
|
115
|
+
const check = row.querySelector<HTMLElement>("[data-mp-check]") as HTMLElement;
|
|
116
|
+
expect(row.lastElementChild).toBe(check);
|
|
117
|
+
expect(check.className).not.toMatch(/_(mr|me|mie|marginInlineEnd)-/);
|
|
118
|
+
expect(check.style.marginInlineEnd).toBe("");
|
|
119
|
+
});
|
|
120
|
+
|
|
76
121
|
it("selects a plain item and closes (LC-21 COMMIT)", async () => {
|
|
77
122
|
const onSelect = vi.fn();
|
|
78
123
|
renderOpen(onSelect);
|
|
@@ -22,11 +22,11 @@ import { IconSlot } from "@multiplatform.one/theme";
|
|
|
22
22
|
* Sheet at ≤640 via FloatingPanel's overlay family pivot.
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
+
import { MenuCheckColumn } from "../CheckGlyph/MenuCheckColumn";
|
|
25
26
|
import {
|
|
26
27
|
transitionProps,
|
|
27
28
|
hairline,
|
|
28
29
|
keyboardFocusRingProps,
|
|
29
|
-
useMenuRowCheckInk,
|
|
30
30
|
menuRowChecked,
|
|
31
31
|
menuRowFrame,
|
|
32
32
|
useResolvedKnobs,
|
|
@@ -49,7 +49,6 @@ import {
|
|
|
49
49
|
type RefObject,
|
|
50
50
|
} from "react";
|
|
51
51
|
|
|
52
|
-
import { CheckIcon } from "@phosphor-icons/react";
|
|
53
52
|
import { FloatingPanel } from "@multiplatform.one/forms";
|
|
54
53
|
import type { GetProps, TamaguiElement } from "tamagui";
|
|
55
54
|
import {
|
|
@@ -257,16 +256,15 @@ function ContextMenuRoot({
|
|
|
257
256
|
contentPadding="none"
|
|
258
257
|
triggerSizing={triggerSizing}
|
|
259
258
|
{...freeOverlay}
|
|
260
|
-
// LC-112 (FZ-
|
|
261
|
-
// at every width and
|
|
262
|
-
// pressing the button's spot closes the menu.
|
|
259
|
+
// LC-112 (FZ-8665 Round 45): a bar button's menu opens ON the button
|
|
260
|
+
// at every width, and its rows start at its top edge.
|
|
263
261
|
{...(anchor === "trigger"
|
|
264
262
|
? {
|
|
265
263
|
compactFace: "menu" as const,
|
|
266
264
|
anchorMode: "cover-trigger" as const,
|
|
267
265
|
coverAlign: "auto" as const,
|
|
268
266
|
triggerEcho: false,
|
|
269
|
-
|
|
267
|
+
iconCover: true,
|
|
270
268
|
}
|
|
271
269
|
: null)}
|
|
272
270
|
>
|
|
@@ -618,7 +616,6 @@ export interface ContextMenuCheckboxItemProps extends Omit<ContextMenuItemProps,
|
|
|
618
616
|
|
|
619
617
|
const ContextMenuCheckboxItem = forwardRef<TamaguiElement, ContextMenuCheckboxItemProps>(
|
|
620
618
|
function ContextMenuCheckboxItem({ checked, onCheckedChange, onSelect, ...props }, ref) {
|
|
621
|
-
const checkInk = useMenuRowCheckInk();
|
|
622
619
|
return (
|
|
623
620
|
<ContextMenuItemBody
|
|
624
621
|
ref={ref}
|
|
@@ -630,21 +627,7 @@ const ContextMenuCheckboxItem = forwardRef<TamaguiElement, ContextMenuCheckboxIt
|
|
|
630
627
|
onCheckedChange?.(!checked);
|
|
631
628
|
onSelect?.();
|
|
632
629
|
}}
|
|
633
|
-
trailing={
|
|
634
|
-
<View
|
|
635
|
-
width={18}
|
|
636
|
-
flexShrink={0}
|
|
637
|
-
alignItems="center"
|
|
638
|
-
justifyContent="center"
|
|
639
|
-
opacity={checked ? 1 : 0}
|
|
640
|
-
data-mp-check="trailing"
|
|
641
|
-
{...(isWeb && checkInk
|
|
642
|
-
? ({ style: { color: checkInk } } as Record<string, unknown>)
|
|
643
|
-
: {})}
|
|
644
|
-
>
|
|
645
|
-
<IconSlot icon={<CheckIcon size={14} weight="bold" color={checkInk} />} />
|
|
646
|
-
</View>
|
|
647
|
-
}
|
|
630
|
+
trailing={<MenuCheckColumn checked={checked} iconRow={props.icon != null} />}
|
|
648
631
|
{...props}
|
|
649
632
|
/>
|
|
650
633
|
);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FZ-8220, LC-112, LC-262: an avatar trigger is an icon trigger. The account
|
|
3
3
|
* menu opens on it (FZ-8438) with no text echo row, the avatar alone or inside
|
|
4
|
-
* the press boxes an app wraps around it
|
|
5
|
-
*
|
|
6
|
-
* (FZ-8480 Round 37).
|
|
4
|
+
* the press boxes an app wraps around it. It covers the avatar and repeats
|
|
5
|
+
* nothing: no X, and the rows start at the panel's top edge (FZ-8665 Round 45).
|
|
7
6
|
*/
|
|
8
7
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
9
8
|
import { waitFor } from "@testing-library/react";
|
|
@@ -62,7 +61,7 @@ describe("DropdownMenu avatar trigger (FZ-8220)", () => {
|
|
|
62
61
|
expect(identity?.textContent).toContain("clayrisser@gmail.com");
|
|
63
62
|
});
|
|
64
63
|
|
|
65
|
-
it("
|
|
64
|
+
it("covers the avatar at phone width, a menu and not a sheet, with no X (FZ-8665)", async () => {
|
|
66
65
|
const width = window.innerWidth;
|
|
67
66
|
Object.defineProperty(window, "innerWidth", { configurable: true, writable: true, value: 390 });
|
|
68
67
|
try {
|
|
@@ -81,11 +80,9 @@ describe("DropdownMenu avatar trigger (FZ-8220)", () => {
|
|
|
81
80
|
expect(found?.querySelector('[role="menu"]')).toBeTruthy();
|
|
82
81
|
return found as HTMLElement;
|
|
83
82
|
});
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
expect(echo?.textContent).toBe("");
|
|
88
|
-
expect(echo?.querySelector("svg")).toBeTruthy();
|
|
83
|
+
expect(panel.querySelector('[aria-label="Close"]')).toBeNull();
|
|
84
|
+
// The avatar's initials stay on the page, under the panel.
|
|
85
|
+
expect(panel.textContent).not.toContain("CR");
|
|
89
86
|
} finally {
|
|
90
87
|
Object.defineProperty(window, "innerWidth", {
|
|
91
88
|
configurable: true,
|
|
@@ -21,12 +21,12 @@ import { IconSlot } from "@multiplatform.one/theme";
|
|
|
21
21
|
* `onCheckedChange` and `onSelect`.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
+
import { MenuCheckColumn } from "../CheckGlyph/MenuCheckColumn";
|
|
24
25
|
import {
|
|
25
26
|
transitionProps,
|
|
26
27
|
Surface,
|
|
27
28
|
hairline,
|
|
28
29
|
keyboardFocusRingProps,
|
|
29
|
-
useMenuRowCheckInk,
|
|
30
30
|
menuRowChecked,
|
|
31
31
|
menuRowFrame,
|
|
32
32
|
useResolvedKnobs,
|
|
@@ -53,7 +53,6 @@ import {
|
|
|
53
53
|
type RefObject,
|
|
54
54
|
} from "react";
|
|
55
55
|
|
|
56
|
-
import { CheckIcon } from "@phosphor-icons/react";
|
|
57
56
|
import { FloatingPanel, type PanelWidth } from "@multiplatform.one/forms";
|
|
58
57
|
import type { GetProps, SizeTokens, TamaguiElement } from "tamagui";
|
|
59
58
|
import {
|
|
@@ -457,9 +456,9 @@ function DropdownMenuRoot({
|
|
|
457
456
|
anchorMode={resolvedAnchorMode}
|
|
458
457
|
triggerEcho={!iconTrigger}
|
|
459
458
|
coverAlign={iconTrigger ? "auto" : "start"}
|
|
460
|
-
// LC-112 (FZ-
|
|
461
|
-
//
|
|
462
|
-
|
|
459
|
+
// LC-112 (FZ-8665 Round 45): the menu covers its button, and its
|
|
460
|
+
// rows start at its top edge.
|
|
461
|
+
iconCover={iconTrigger}
|
|
463
462
|
triggerRow={triggerRow}
|
|
464
463
|
contentPadding="none"
|
|
465
464
|
triggerSizing={triggerSizing}
|
|
@@ -906,7 +905,6 @@ export interface DropdownMenuCheckboxItemProps extends Omit<DropdownMenuItemProp
|
|
|
906
905
|
|
|
907
906
|
const DropdownMenuCheckboxItem = forwardRef<TamaguiElement, DropdownMenuCheckboxItemProps>(
|
|
908
907
|
function DropdownMenuCheckboxItem({ checked, onCheckedChange, onSelect, ...props }, ref) {
|
|
909
|
-
const checkInk = useMenuRowCheckInk();
|
|
910
908
|
return (
|
|
911
909
|
<DropdownMenuItemBody
|
|
912
910
|
ref={ref}
|
|
@@ -918,18 +916,7 @@ const DropdownMenuCheckboxItem = forwardRef<TamaguiElement, DropdownMenuCheckbox
|
|
|
918
916
|
onCheckedChange?.(!checked);
|
|
919
917
|
onSelect?.();
|
|
920
918
|
}}
|
|
921
|
-
trailing={
|
|
922
|
-
<View
|
|
923
|
-
width={18}
|
|
924
|
-
flexShrink={0}
|
|
925
|
-
alignItems="center"
|
|
926
|
-
justifyContent="center"
|
|
927
|
-
opacity={checked ? 1 : 0}
|
|
928
|
-
data-mp-check="trailing"
|
|
929
|
-
>
|
|
930
|
-
<IconSlot icon={<CheckIcon size={14} weight="bold" color={checkInk} />} />
|
|
931
|
-
</View>
|
|
932
|
-
}
|
|
919
|
+
trailing={<MenuCheckColumn checked={checked} iconRow={props.icon != null} />}
|
|
933
920
|
{...props}
|
|
934
921
|
/>
|
|
935
922
|
);
|
|
@@ -97,7 +97,7 @@ describe("Popover cover-trigger adapter", () => {
|
|
|
97
97
|
fireEvent.click(result.getByRole("button", { name: "Apply filters" }));
|
|
98
98
|
await waitFor(() => expect(result.queryByTestId("floating-panel-viewport")).toBeNull());
|
|
99
99
|
});
|
|
100
|
-
it("an icon trigger's panel covers the button
|
|
100
|
+
it("an icon trigger's panel covers the button with no X, a press outside closing it (FZ-8665)", async () => {
|
|
101
101
|
const result = renderWithProviders(
|
|
102
102
|
<Popover anchorMode="cover-trigger">
|
|
103
103
|
<Popover.Trigger asChild>
|
|
@@ -112,8 +112,8 @@ describe("Popover cover-trigger adapter", () => {
|
|
|
112
112
|
const panel = await result.findByTestId("floating-panel-viewport");
|
|
113
113
|
expect(within(panel).queryByRole("button", { name: "Add node" })).toBeNull();
|
|
114
114
|
expect(panel.querySelector("[data-fp-trigger-row]")).toBeNull();
|
|
115
|
-
|
|
116
|
-
fireEvent.click(
|
|
115
|
+
expect(within(panel).queryByRole("button", { name: "Close" })).toBeNull();
|
|
116
|
+
fireEvent.click(document.body);
|
|
117
117
|
await waitFor(() => expect(result.queryByTestId("floating-panel-viewport")).toBeNull());
|
|
118
118
|
});
|
|
119
119
|
});
|
package/src/Popover.tsx
CHANGED
|
@@ -143,9 +143,9 @@ const CoverPopover = forwardRef<Popover, PopoverProps>(function CoverPopover(
|
|
|
143
143
|
}
|
|
144
144
|
}, [content.length, unsupportedContent]);
|
|
145
145
|
const trigger = triggerPart?.props.children ?? triggerRow;
|
|
146
|
-
// LC-112 (FZ-
|
|
147
|
-
//
|
|
148
|
-
//
|
|
146
|
+
// LC-112 (FZ-8665): a glyph trigger (the "+") is covered by its panel, and a
|
|
147
|
+
// press outside closes it. The panel stays a panel at phone width, sized by
|
|
148
|
+
// its content.
|
|
149
149
|
const iconTrigger = triggerRow == null && isIconTrigger(trigger);
|
|
150
150
|
const decorated = isValidElement(trigger)
|
|
151
151
|
? cloneElement(trigger as ReactElement<Record<string, unknown>>, {
|
|
@@ -168,7 +168,7 @@ const CoverPopover = forwardRef<Popover, PopoverProps>(function CoverPopover(
|
|
|
168
168
|
{...(iconTrigger
|
|
169
169
|
? {
|
|
170
170
|
triggerEcho: false,
|
|
171
|
-
|
|
171
|
+
iconCover: true,
|
|
172
172
|
coverAlign: "auto" as const,
|
|
173
173
|
compactFace: "menu" as const,
|
|
174
174
|
widthMode: "fit-content" as const,
|
|
@@ -220,7 +220,7 @@ export const Popover = withStaticProperties(PopoverRoot, {
|
|
|
220
220
|
Trigger: TamaguiPopover.Trigger,
|
|
221
221
|
Content: StackedPopoverContent,
|
|
222
222
|
Close: PopoverClose,
|
|
223
|
-
/** A panel's title row
|
|
223
|
+
/** A panel's title row, on the panel's padding (LC-112). */
|
|
224
224
|
Header: PanelHeader,
|
|
225
225
|
Anchor: TamaguiPopover.Anchor,
|
|
226
226
|
Adapt: TamaguiPopover.Adapt,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CircleHalfIcon, MoonIcon, SunIcon
|
|
1
|
+
import { CircleHalfIcon, MoonIcon, SunIcon } from "@phosphor-icons/react";
|
|
2
2
|
import { fireEvent, render, waitFor } from "@testing-library/react";
|
|
3
3
|
import { describe, expect, it, vi } from "vitest";
|
|
4
4
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
@@ -43,7 +43,7 @@ describe("SchemeToggle (FZ-8158)", () => {
|
|
|
43
43
|
expect(set).toHaveBeenCalledWith("system");
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
it("opens its menu on the button
|
|
46
|
+
it("opens its menu on the button with no X, a press outside closing it (FZ-8665)", async () => {
|
|
47
47
|
const { useUserScheme } = preference("dark", "dark");
|
|
48
48
|
const { getByRole } = renderWithProviders(<SchemeToggle useUserScheme={useUserScheme} />);
|
|
49
49
|
const live = getByRole("button", { name: "Appearance: Dark" });
|
|
@@ -53,15 +53,9 @@ describe("SchemeToggle (FZ-8158)", () => {
|
|
|
53
53
|
expect(found?.querySelector('[role="menu"]')).toBeTruthy();
|
|
54
54
|
return found as HTMLElement;
|
|
55
55
|
});
|
|
56
|
-
|
|
57
|
-
expect(
|
|
58
|
-
|
|
59
|
-
node?.querySelector("svg path")?.getAttribute("d");
|
|
60
|
-
const x = render(<XIcon weight="bold" />);
|
|
61
|
-
expect(pathOf(echo)).toBe(pathOf(x.container));
|
|
62
|
-
expect(pathOf(echo)).not.toBe(pathOf(live));
|
|
63
|
-
x.unmount();
|
|
64
|
-
fireEvent.click(echo as HTMLElement);
|
|
56
|
+
expect(panel.querySelector('[aria-label="Close"]')).toBeNull();
|
|
57
|
+
expect(panel.querySelector(`[aria-label="${live.getAttribute("aria-label")}"]`)).toBeNull();
|
|
58
|
+
fireEvent.click(document.body);
|
|
65
59
|
await waitFor(() => expect(document.querySelector('[role="menu"]')).toBeFalsy());
|
|
66
60
|
});
|
|
67
61
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
2
|
+
import { XStack } from "tamagui";
|
|
3
|
+
import { SchemeToggle } from "./index";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof SchemeToggle> = {
|
|
6
|
+
title: "Components/SchemeToggle",
|
|
7
|
+
component: SchemeToggle,
|
|
8
|
+
parameters: { status: { type: "beta" } },
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof SchemeToggle>;
|
|
13
|
+
|
|
14
|
+
/** A tap flips light and dark; a right-click (long-press on native) opens System, Light and Dark. */
|
|
15
|
+
export const Default: Story = {
|
|
16
|
+
render: () => (
|
|
17
|
+
<XStack padding="$4" justifyContent="flex-end">
|
|
18
|
+
<SchemeToggle />
|
|
19
|
+
</XStack>
|
|
20
|
+
),
|
|
21
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CircleHalfIcon, MoonIcon, SunIcon } from "@phosphor-icons/react";
|
|
2
2
|
import { IconButton, type IconButtonProps } from "@multiplatform.one/forms";
|
|
3
3
|
import {
|
|
4
|
+
menuRowIconGlyph,
|
|
4
5
|
useSchemePreference,
|
|
5
6
|
type SchemePreference,
|
|
6
7
|
type ThemeScheme,
|
|
@@ -60,7 +61,7 @@ export function SchemeToggle({
|
|
|
60
61
|
const Glyph = schemeGlyphs[value];
|
|
61
62
|
return {
|
|
62
63
|
label: name(value),
|
|
63
|
-
icon: <Glyph size={
|
|
64
|
+
icon: <Glyph size={menuRowIconGlyph.size} weight={menuRowIconGlyph.weight} />,
|
|
64
65
|
checked: scheme.setting === value,
|
|
65
66
|
onSelect: () => scheme.set(value),
|
|
66
67
|
};
|
|
@@ -206,6 +206,15 @@ describe("catalog scroll owners (MPO-457)", () => {
|
|
|
206
206
|
});
|
|
207
207
|
expect(offenders).toEqual([]);
|
|
208
208
|
});
|
|
209
|
+
|
|
210
|
+
it("reads a type argument as no tag, so a ref typed by the RN ScrollView owns no scroll", () => {
|
|
211
|
+
const code = [
|
|
212
|
+
"const scrollRef = useRef<RNScrollView | null>(null);",
|
|
213
|
+
"const Scroller = forwardRef<RNScrollView, Props>(render);",
|
|
214
|
+
"return <RNScrollView ref={scrollRef} />;",
|
|
215
|
+
].join("\n");
|
|
216
|
+
expect(openingTags(code, "RNScrollView").map((tag) => tag.line)).toEqual([3]);
|
|
217
|
+
});
|
|
209
218
|
});
|
|
210
219
|
|
|
211
220
|
function sourceFiles(dir: string): string[] {
|
|
@@ -245,10 +254,13 @@ function aliasesOf(code: string, local: string): string[] {
|
|
|
245
254
|
return [...code.matchAll(re)].map((match) => match[1]!);
|
|
246
255
|
}
|
|
247
256
|
|
|
248
|
-
/**
|
|
257
|
+
/**
|
|
258
|
+
* Every JSX opening tag of `name`, props included, with its line. A `<` right
|
|
259
|
+
* after an identifier or a closing bracket opens a type argument, not a tag.
|
|
260
|
+
*/
|
|
249
261
|
function openingTags(code: string, name: string): Array<{ text: string; line: number }> {
|
|
250
262
|
const out: Array<{ text: string; line: number }> = [];
|
|
251
|
-
for (const match of code.matchAll(new RegExp(
|
|
263
|
+
for (const match of code.matchAll(new RegExp(`(?<![\\w$.)\\]])<${name}(?![\\w.])`, "g"))) {
|
|
252
264
|
let depth = 0;
|
|
253
265
|
let end = match.index + match[0].length;
|
|
254
266
|
for (; end < code.length; end++) {
|
|
@@ -2,6 +2,7 @@ import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
3
|
// Catalog Button (G-15 story honesty / LC-18, UX-P06).
|
|
4
4
|
import { Button } from "@multiplatform.one/forms";
|
|
5
|
+
import { sheetGrabber } from "@multiplatform.one/theme";
|
|
5
6
|
import { isWeb, Sheet, YStack } from "tamagui";
|
|
6
7
|
import { ScrollView } from "./ScrollView";
|
|
7
8
|
import { SheetModal } from "./SheetModal";
|
|
@@ -81,14 +82,7 @@ function TabsInSheetHarness() {
|
|
|
81
82
|
onPositionChange={setPosition}
|
|
82
83
|
dismissOnSnapToBottom={false}
|
|
83
84
|
>
|
|
84
|
-
<Sheet.Handle
|
|
85
|
-
backgroundColor="$color8"
|
|
86
|
-
opacity={0.45}
|
|
87
|
-
height={5}
|
|
88
|
-
width={36}
|
|
89
|
-
borderRadius={100}
|
|
90
|
-
aria-label="Resize"
|
|
91
|
-
/>
|
|
85
|
+
<Sheet.Handle {...sheetGrabber} aria-label="Resize" />
|
|
92
86
|
<SheetFrame borderBottomLeftRadius={0} borderBottomRightRadius={0}>
|
|
93
87
|
<SizableText fontWeight="600">Stack</SizableText>
|
|
94
88
|
<Tabs
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FZ-8648: one grabber. SheetModal draws the theme's `sheetGrabber` on the web
|
|
3
|
+
* and on native, with no local transform or margin, the recipe the
|
|
4
|
+
* FloatingPanel sheet draws too (`public/forms/.../sheetGrabber.spec.tsx`).
|
|
5
|
+
*/
|
|
6
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
7
|
+
import { sheetGrabber } from "@multiplatform.one/theme";
|
|
8
|
+
import { describe, expect, it, vi } from "vitest";
|
|
9
|
+
import { Text, View } from "tamagui";
|
|
10
|
+
import { SheetModal as NativeSheetModal } from "./index.native";
|
|
11
|
+
import { SheetModal } from "./index";
|
|
12
|
+
|
|
13
|
+
vi.mock("react-native-web", async (importOriginal) => ({
|
|
14
|
+
...(await importOriginal<typeof import("react-native")>()),
|
|
15
|
+
ActionSheetIOS: undefined,
|
|
16
|
+
Modal: ({ children }: { children: import("react").ReactNode }) => children,
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
const atoms = (node: Element) => String(node.className).split(/\s+/).filter(Boolean);
|
|
20
|
+
|
|
21
|
+
function recipeAtoms() {
|
|
22
|
+
const view = renderWithProviders(<View testID="recipe" {...sheetGrabber} />);
|
|
23
|
+
const list = atoms(view.getByTestId("recipe"));
|
|
24
|
+
view.unmount();
|
|
25
|
+
return list;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
describe("SheetModal grabber (FZ-8648)", () => {
|
|
29
|
+
it("draws the recipe on native", () => {
|
|
30
|
+
const recipe = recipeAtoms();
|
|
31
|
+
const result = renderWithProviders(
|
|
32
|
+
<NativeSheetModal open onOpenChange={() => {}}>
|
|
33
|
+
<Text>Body</Text>
|
|
34
|
+
</NativeSheetModal>,
|
|
35
|
+
);
|
|
36
|
+
const capsule = result.getByTestId("sheet-modal-grabber").firstElementChild as Element;
|
|
37
|
+
expect(atoms(capsule)).toEqual(expect.arrayContaining(recipe));
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("draws the recipe on the web, with no transform", async () => {
|
|
41
|
+
const recipe = recipeAtoms();
|
|
42
|
+
const result = renderWithProviders(
|
|
43
|
+
<SheetModal open onOpenChange={() => {}}>
|
|
44
|
+
<Text>Body</Text>
|
|
45
|
+
</SheetModal>,
|
|
46
|
+
);
|
|
47
|
+
const handle = await result.findByLabelText("Resize");
|
|
48
|
+
expect(atoms(handle)).toEqual(expect.arrayContaining(recipe));
|
|
49
|
+
expect(handle.getAttribute("style") ?? "").not.toMatch(/transform/);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -28,6 +28,9 @@ import {
|
|
|
28
28
|
useResolvedKnobs,
|
|
29
29
|
type MotionStop,
|
|
30
30
|
nativeAnimationConfig as animationConfig,
|
|
31
|
+
overlayScrim,
|
|
32
|
+
sheetGrabber,
|
|
33
|
+
sheetGrabberZone,
|
|
31
34
|
} from "@multiplatform.one/theme";
|
|
32
35
|
import {
|
|
33
36
|
useCallback,
|
|
@@ -424,7 +427,7 @@ export function SheetModal({
|
|
|
424
427
|
accessibilityRole="button"
|
|
425
428
|
accessibilityLabel={t("Close")}
|
|
426
429
|
>
|
|
427
|
-
<View flex={1} backgroundColor=
|
|
430
|
+
<View flex={1} backgroundColor={overlayScrim} />
|
|
428
431
|
</Pressable>
|
|
429
432
|
<Animated.View
|
|
430
433
|
onLayout={(e) => {
|
|
@@ -456,12 +459,19 @@ export function SheetModal({
|
|
|
456
459
|
{...knobProps.borderRadius}
|
|
457
460
|
borderBottomLeftRadius={0}
|
|
458
461
|
borderBottomRightRadius={0}
|
|
459
|
-
|
|
462
|
+
// A compact sheet spans the screen: only its top edge meets the page.
|
|
463
|
+
{...(regular
|
|
464
|
+
? { borderBottomWidth: 0 }
|
|
465
|
+
: {
|
|
466
|
+
elevation: knobProps.elevation,
|
|
467
|
+
borderLeftWidth: 0,
|
|
468
|
+
borderRightWidth: 0,
|
|
469
|
+
borderBottomWidth: 0,
|
|
470
|
+
})}
|
|
460
471
|
maxHeight={maxHeight}
|
|
461
472
|
flexShrink={1}
|
|
462
473
|
minHeight={0}
|
|
463
474
|
{...(fill ? fillSlot : null)}
|
|
464
|
-
paddingTop="$2"
|
|
465
475
|
paddingBottom={keyboardInset > 0 ? 8 : bottomInset}
|
|
466
476
|
// No focus or press pseudo on this surface: on native tamagui
|
|
467
477
|
// turns one into a touch-responder claim, and a responder here
|
|
@@ -489,22 +499,9 @@ export function SheetModal({
|
|
|
489
499
|
accessibilityRole="adjustable"
|
|
490
500
|
accessibilityLabel={t("Drag to resize")}
|
|
491
501
|
testID="sheet-modal-grabber"
|
|
492
|
-
style={{
|
|
493
|
-
alignSelf: "stretch",
|
|
494
|
-
alignItems: "center",
|
|
495
|
-
paddingTop: 3,
|
|
496
|
-
paddingBottom: 11,
|
|
497
|
-
...(fill ? nonShrinking : null),
|
|
498
|
-
}}
|
|
502
|
+
style={{ ...sheetGrabberZone, ...(fill ? nonShrinking : null) }}
|
|
499
503
|
>
|
|
500
|
-
<View
|
|
501
|
-
width={36}
|
|
502
|
-
height={5}
|
|
503
|
-
borderRadius={100}
|
|
504
|
-
backgroundColor="$color8"
|
|
505
|
-
opacity={0.45}
|
|
506
|
-
accessible={false}
|
|
507
|
-
/>
|
|
504
|
+
<View {...sheetGrabber} accessible={false} />
|
|
508
505
|
</RNView>
|
|
509
506
|
<DialogRegionContext.Provider value={IN_DIALOG_REGION}>
|
|
510
507
|
<Surface elevated={regular || undefined}>
|
package/src/SheetModal/index.tsx
CHANGED
|
@@ -9,7 +9,12 @@
|
|
|
9
9
|
* on device). Dismissal: overlay tap / snap-to-bottom / Escape (LC-21).
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
overlayScrim,
|
|
14
|
+
sheetGrabber,
|
|
15
|
+
transitionProps,
|
|
16
|
+
useResolvedKnobs,
|
|
17
|
+
} from "@multiplatform.one/theme";
|
|
13
18
|
import { OverlayStackProvider, useOverlayZIndex } from "@multiplatform.one/forms";
|
|
14
19
|
import { useEffect, useId, useRef, type ReactNode } from "react";
|
|
15
20
|
import { isWeb, Sheet, View, useWindowDimensions } from "tamagui";
|
|
@@ -128,24 +133,13 @@ export function SheetModal({
|
|
|
128
133
|
portalProps={{ zIndex: sheetZIndex }}
|
|
129
134
|
>
|
|
130
135
|
<Sheet.Overlay
|
|
131
|
-
backgroundColor=
|
|
136
|
+
backgroundColor={overlayScrim}
|
|
132
137
|
{...transitionProps(knobProps.motion.scrim)}
|
|
133
138
|
enterStyle={{ opacity: 0 }}
|
|
134
139
|
exitStyle={{ opacity: 0 }}
|
|
135
140
|
/>
|
|
136
|
-
{/*
|
|
137
|
-
<Sheet.Handle
|
|
138
|
-
backgroundColor="$color8"
|
|
139
|
-
opacity={0.45}
|
|
140
|
-
height={5}
|
|
141
|
-
width={36}
|
|
142
|
-
borderRadius={100}
|
|
143
|
-
marginBottom={0}
|
|
144
|
-
marginHorizontal={0}
|
|
145
|
-
alignSelf="center"
|
|
146
|
-
y={10}
|
|
147
|
-
aria-label="Resize"
|
|
148
|
-
/>
|
|
141
|
+
{/* VoiceOver resize affordance. */}
|
|
142
|
+
<Sheet.Handle {...sheetGrabber} aria-label="Resize" />
|
|
149
143
|
<SheetFrame
|
|
150
144
|
ref={frameRef as never}
|
|
151
145
|
{...({
|
|
@@ -160,6 +154,9 @@ export function SheetModal({
|
|
|
160
154
|
: null)}
|
|
161
155
|
borderBottomLeftRadius={0}
|
|
162
156
|
borderBottomRightRadius={0}
|
|
157
|
+
borderLeftWidth={0}
|
|
158
|
+
borderRightWidth={0}
|
|
159
|
+
borderBottomWidth={0}
|
|
163
160
|
overflow="hidden"
|
|
164
161
|
{...frameRingReset}
|
|
165
162
|
>
|
package/src/TreeSelect/index.tsx
CHANGED
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
panelViewportPadding,
|
|
12
12
|
useOverlayZIndex,
|
|
13
13
|
} from "@multiplatform.one/forms";
|
|
14
|
+
import { CheckGlyph } from "../CheckGlyph";
|
|
14
15
|
import {
|
|
15
16
|
CaretDownIcon,
|
|
16
17
|
CaretLeftIcon,
|
|
17
18
|
CaretRightIcon,
|
|
18
|
-
CheckIcon,
|
|
19
19
|
FileIcon,
|
|
20
20
|
FolderIcon,
|
|
21
21
|
FolderOpenIcon,
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
ensureKeyboardModalityTracking,
|
|
28
28
|
keyboardFocusRingProps,
|
|
29
29
|
listHeightForRows,
|
|
30
|
-
useMenuRowCheckInk,
|
|
31
30
|
menuRowChecked,
|
|
32
31
|
useResolvedKnobs,
|
|
33
32
|
} from "@multiplatform.one/theme";
|
|
@@ -110,7 +109,6 @@ function TreeSelectRows({
|
|
|
110
109
|
}) {
|
|
111
110
|
const { t } = useTranslation();
|
|
112
111
|
const { knobProps } = useResolvedKnobs();
|
|
113
|
-
const checkInk = useMenuRowCheckInk();
|
|
114
112
|
const checkedFill = menuRowChecked(knobProps.scheme);
|
|
115
113
|
const nestedPx = knobProps.nestedControl.px;
|
|
116
114
|
const indentStep = 16;
|
|
@@ -271,7 +269,7 @@ function TreeSelectRows({
|
|
|
271
269
|
) : null}
|
|
272
270
|
{isSelected ? (
|
|
273
271
|
<View flexShrink={0} width={14} height={14}>
|
|
274
|
-
<
|
|
272
|
+
<CheckGlyph />
|
|
275
273
|
</View>
|
|
276
274
|
) : null}
|
|
277
275
|
</XStack>
|