@multiplatform.one/components 7.78.0 → 7.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Accordion/index.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/Chip/index.native.js.map +1 -1
- package/dist/cjs/Collapsible.native.js.map +1 -1
- 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.cjs +84 -0
- package/dist/cjs/Diff/diff.native.js +108 -0
- package/dist/cjs/Diff/diff.native.js.map +1 -0
- package/dist/cjs/Diff/index.cjs +174 -0
- package/dist/cjs/Diff/index.native.js +181 -0
- package/dist/cjs/Diff/index.native.js.map +1 -0
- package/dist/cjs/DotIndicator/index.native.js.map +1 -1
- 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.cjs +102 -0
- package/dist/cjs/ElapsedProgress/index.native.js +112 -0
- package/dist/cjs/ElapsedProgress/index.native.js.map +1 -0
- 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.cjs +98 -0
- package/dist/cjs/MachineLiteral/index.native.js +102 -0
- package/dist/cjs/MachineLiteral/index.native.js.map +1 -0
- package/dist/cjs/Material/blur.cjs +34 -0
- package/dist/cjs/Material/blur.native.js +100 -0
- package/dist/cjs/Material/blur.native.js.map +1 -0
- package/dist/cjs/Material/index.cjs +9 -3
- package/dist/cjs/Material/index.native.js +9 -3
- package/dist/cjs/Material/index.native.js.map +1 -1
- package/dist/cjs/Meter/index.cjs +3 -1
- package/dist/cjs/Meter/index.native.js +4 -2
- 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.native.js +1 -1
- 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.native.js +1 -1
- 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/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.cjs +4 -1
- package/dist/cjs/SortableList/index.native.js +4 -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.cjs +84 -0
- package/dist/cjs/SortableList/useUserOrder.native.js +107 -0
- package/dist/cjs/SortableList/useUserOrder.native.js.map +1 -0
- 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 +7 -1
- package/dist/cjs/TreeSelect/index.native.js +8 -2
- 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 +432 -0
- package/dist/cjs/appShell/AppShell.native.js +499 -0
- package/dist/cjs/appShell/AppShell.native.js.map +1 -0
- 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.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.cjs +10 -5
- package/dist/cjs/appShell/TabBar.native.js +11 -6
- package/dist/cjs/appShell/TabBar.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.native.js.map +1 -1
- package/dist/cjs/appShell/index.cjs +1 -0
- package/dist/cjs/appShell/index.native.js +1 -0
- 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.cjs +1 -1
- package/dist/cjs/charts/Sparkline.native.js +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.cjs +6 -1
- package/dist/cjs/index.native.js +42 -37
- 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.cjs +3 -0
- package/dist/cjs/layouts/page.native.js +5 -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.cjs +55 -0
- package/dist/cjs/layouts/screenScroll.native.js +59 -0
- 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 +46 -9
- package/dist/cjs/layouts/sidebar.native.js +50 -10
- 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.cjs +3 -3
- package/dist/cjs/views/ReportBuilder.native.js +5 -5
- 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.cjs +3 -1
- package/dist/cjs/views/index.native.js +3 -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.cjs +39 -0
- package/dist/cjs/views/sameNameScope.native.js +63 -0
- package/dist/cjs/views/sameNameScope.native.js.map +1 -0
- 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/Chip/index.native.js.map +1 -1
- package/dist/esm/Collapsible.native.js.map +1 -1
- package/dist/esm/ContextMenu/index.native.js.map +1 -1
- package/dist/esm/CopyField/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.mjs +58 -0
- package/dist/esm/Diff/diff.mjs.map +1 -0
- package/dist/esm/Diff/diff.native.js +79 -0
- package/dist/esm/Diff/diff.native.js.map +1 -0
- package/dist/esm/Diff/index.mjs +147 -0
- package/dist/esm/Diff/index.mjs.map +1 -0
- package/dist/esm/Diff/index.native.js +151 -0
- package/dist/esm/Diff/index.native.js.map +1 -0
- package/dist/esm/DotIndicator/index.native.js.map +1 -1
- 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.mjs +76 -0
- package/dist/esm/ElapsedProgress/index.mjs.map +1 -0
- package/dist/esm/ElapsedProgress/index.native.js +83 -0
- package/dist/esm/ElapsedProgress/index.native.js.map +1 -0
- 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.mjs +73 -0
- package/dist/esm/MachineLiteral/index.mjs.map +1 -0
- package/dist/esm/MachineLiteral/index.native.js +74 -0
- package/dist/esm/MachineLiteral/index.native.js.map +1 -0
- package/dist/esm/Material/blur.mjs +8 -0
- package/dist/esm/Material/blur.mjs.map +1 -0
- package/dist/esm/Material/blur.native.js +67 -0
- package/dist/esm/Material/blur.native.js.map +1 -0
- package/dist/esm/Material/index.mjs +10 -4
- package/dist/esm/Material/index.mjs.map +1 -1
- package/dist/esm/Material/index.native.js +10 -4
- package/dist/esm/Material/index.native.js.map +1 -1
- package/dist/esm/Meter/index.mjs +4 -3
- package/dist/esm/Meter/index.mjs.map +1 -1
- package/dist/esm/Meter/index.native.js +4 -3
- 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.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.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/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.mjs +2 -1
- package/dist/esm/SortableList/index.mjs.map +1 -1
- package/dist/esm/SortableList/index.native.js +2 -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.mjs +58 -0
- package/dist/esm/SortableList/useUserOrder.mjs.map +1 -0
- package/dist/esm/SortableList/useUserOrder.native.js +78 -0
- package/dist/esm/SortableList/useUserOrder.native.js.map +1 -0
- 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 +8 -2
- package/dist/esm/TreeSelect/index.mjs.map +1 -1
- package/dist/esm/TreeSelect/index.native.js +8 -2
- 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 +406 -0
- package/dist/esm/appShell/AppShell.mjs.map +1 -0
- package/dist/esm/appShell/AppShell.native.js +470 -0
- package/dist/esm/appShell/AppShell.native.js.map +1 -0
- 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.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 +10 -5
- package/dist/esm/appShell/TabBar.mjs.map +1 -1
- package/dist/esm/appShell/TabBar.native.js +10 -5
- package/dist/esm/appShell/TabBar.native.js.map +1 -1
- package/dist/esm/appShell/appTile.native.js.map +1 -1
- package/dist/esm/appShell/bottomChrome.native.js.map +1 -1
- package/dist/esm/appShell/index.mjs +1 -0
- package/dist/esm/appShell/index.mjs.map +1 -1
- package/dist/esm/appShell/index.native.js +1 -0
- 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.mjs +1 -1
- package/dist/esm/charts/Sparkline.mjs.map +1 -1
- package/dist/esm/charts/Sparkline.native.js +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.mjs +5 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +5 -2
- 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.mjs +4 -2
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +4 -2
- package/dist/esm/layouts/page.native.js.map +1 -1
- package/dist/esm/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/esm/layouts/screenScroll.mjs +53 -1
- package/dist/esm/layouts/screenScroll.mjs.map +1 -1
- package/dist/esm/layouts/screenScroll.native.js +57 -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 +45 -11
- package/dist/esm/layouts/sidebar.mjs.map +1 -1
- package/dist/esm/layouts/sidebar.native.js +48 -11
- 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.mjs +4 -4
- package/dist/esm/views/ReportBuilder.mjs.map +1 -1
- package/dist/esm/views/ReportBuilder.native.js +4 -4
- package/dist/esm/views/ReportBuilder.native.js.map +1 -1
- package/dist/esm/views/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.mjs +2 -1
- package/dist/esm/views/index.mjs.map +1 -1
- package/dist/esm/views/index.native.js +2 -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.mjs +14 -0
- package/dist/esm/views/sameNameScope.mjs.map +1 -0
- package/dist/esm/views/sameNameScope.native.js +35 -0
- package/dist/esm/views/sameNameScope.native.js.map +1 -0
- package/dist/esm/views/treeViewDnd.native.js.map +1 -1
- package/dist/esm/views/treeViewLayout.native.js.map +1 -1
- package/dist/esm/views/treeViewMotion.native.js.map +1 -1
- package/dist/esm/views/treeViewReveal.native.js.map +1 -1
- package/dist/esm/views/usePageFlowLoadMore.native.js.map +1 -1
- package/dist/esm/views/widgetChrome.native.js.map +1 -1
- package/dist/jsx/Diff/diff.mjs +58 -0
- package/dist/jsx/Diff/diff.mjs.map +1 -0
- package/dist/jsx/Diff/diff.native.js +108 -0
- package/dist/jsx/Diff/diff.native.js.map +1 -0
- package/dist/jsx/Diff/index.mjs +147 -0
- package/dist/jsx/Diff/index.mjs.map +1 -0
- package/dist/jsx/Diff/index.native.js +181 -0
- package/dist/jsx/Diff/index.native.js.map +1 -0
- package/dist/jsx/ElapsedProgress/index.mjs +76 -0
- package/dist/jsx/ElapsedProgress/index.mjs.map +1 -0
- package/dist/jsx/ElapsedProgress/index.native.js +112 -0
- package/dist/jsx/ElapsedProgress/index.native.js.map +1 -0
- package/dist/jsx/MachineLiteral/index.mjs +73 -0
- package/dist/jsx/MachineLiteral/index.mjs.map +1 -0
- package/dist/jsx/MachineLiteral/index.native.js +102 -0
- package/dist/jsx/MachineLiteral/index.native.js.map +1 -0
- package/dist/jsx/Material/blur.mjs +8 -0
- package/dist/jsx/Material/blur.mjs.map +1 -0
- package/dist/jsx/Material/blur.native.js +100 -0
- package/dist/jsx/Material/blur.native.js.map +1 -0
- package/dist/jsx/Material/index.mjs +10 -4
- package/dist/jsx/Material/index.mjs.map +1 -1
- package/dist/jsx/Material/index.native.js +9 -3
- package/dist/jsx/Material/index.native.js.map +1 -1
- package/dist/jsx/Meter/index.mjs +4 -3
- package/dist/jsx/Meter/index.mjs.map +1 -1
- package/dist/jsx/Meter/index.native.js +3 -1
- package/dist/jsx/Meter/index.native.js.map +1 -1
- package/dist/jsx/SortableList/index.mjs +2 -1
- package/dist/jsx/SortableList/index.mjs.map +1 -1
- package/dist/jsx/SortableList/index.native.js +4 -1
- package/dist/jsx/SortableList/index.native.js.map +1 -1
- package/dist/jsx/SortableList/useUserOrder.mjs +58 -0
- package/dist/jsx/SortableList/useUserOrder.mjs.map +1 -0
- package/dist/jsx/SortableList/useUserOrder.native.js +107 -0
- package/dist/jsx/SortableList/useUserOrder.native.js.map +1 -0
- package/dist/jsx/TreeSelect/index.mjs +8 -2
- package/dist/jsx/TreeSelect/index.mjs.map +1 -1
- package/dist/jsx/TreeSelect/index.native.js +7 -1
- package/dist/jsx/TreeSelect/index.native.js.map +1 -1
- package/dist/jsx/appShell/AppShell.mjs +406 -0
- package/dist/jsx/appShell/AppShell.mjs.map +1 -0
- package/dist/jsx/appShell/AppShell.native.js +499 -0
- package/dist/jsx/appShell/AppShell.native.js.map +1 -0
- package/dist/jsx/appShell/TabBar.mjs +10 -5
- package/dist/jsx/appShell/TabBar.mjs.map +1 -1
- package/dist/jsx/appShell/TabBar.native.js +10 -5
- package/dist/jsx/appShell/TabBar.native.js.map +1 -1
- package/dist/jsx/appShell/index.mjs +1 -0
- package/dist/jsx/appShell/index.mjs.map +1 -1
- package/dist/jsx/appShell/index.native.js +1 -0
- package/dist/jsx/appShell/index.native.js.map +1 -1
- package/dist/jsx/charts/Sparkline.mjs +1 -1
- package/dist/jsx/charts/Sparkline.mjs.map +1 -1
- package/dist/jsx/charts/Sparkline.native.js +1 -1
- package/dist/jsx/charts/Sparkline.native.js.map +1 -1
- package/dist/jsx/index.js +5 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +5 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +6 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/layouts/page.mjs +4 -2
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +3 -0
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/layouts/screenScroll.mjs +53 -1
- package/dist/jsx/layouts/screenScroll.mjs.map +1 -1
- package/dist/jsx/layouts/screenScroll.native.js +59 -0
- package/dist/jsx/layouts/screenScroll.native.js.map +1 -1
- package/dist/jsx/layouts/sidebar.mjs +45 -11
- package/dist/jsx/layouts/sidebar.mjs.map +1 -1
- package/dist/jsx/layouts/sidebar.native.js +49 -9
- package/dist/jsx/layouts/sidebar.native.js.map +1 -1
- package/dist/jsx/views/ReportBuilder.mjs +4 -4
- package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
- package/dist/jsx/views/ReportBuilder.native.js +3 -3
- package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
- package/dist/jsx/views/index.mjs +2 -1
- package/dist/jsx/views/index.mjs.map +1 -1
- package/dist/jsx/views/index.native.js +2 -0
- package/dist/jsx/views/index.native.js.map +1 -1
- package/dist/jsx/views/sameNameScope.mjs +14 -0
- package/dist/jsx/views/sameNameScope.mjs.map +1 -0
- package/dist/jsx/views/sameNameScope.native.js +63 -0
- package/dist/jsx/views/sameNameScope.native.js.map +1 -0
- package/package.json +18 -9
- package/src/Diff/Diff.spec.tsx +105 -0
- package/src/Diff/Diff.stories.tsx +44 -0
- package/src/Diff/diff.ts +61 -0
- package/src/Diff/index.tsx +145 -0
- package/src/ElapsedProgress/ElapsedProgress.spec.tsx +66 -0
- package/src/ElapsedProgress/ElapsedProgress.stories.tsx +43 -0
- package/src/ElapsedProgress/index.tsx +89 -0
- package/src/MachineLiteral/MachineLiteral.spec.tsx +86 -0
- package/src/MachineLiteral/MachineLiteral.stories.tsx +44 -0
- package/src/MachineLiteral/index.tsx +75 -0
- package/src/Material/blur.native.spec.tsx +135 -0
- package/src/Material/blur.native.tsx +93 -0
- package/src/Material/blur.ts +11 -0
- package/src/Material/index.tsx +18 -6
- package/src/Meter/index.tsx +4 -2
- package/src/SortableList/index.tsx +2 -0
- package/src/SortableList/useUserOrder.spec.tsx +110 -0
- package/src/SortableList/useUserOrder.ts +96 -0
- package/src/TreeSelect/TreeSelect.rows.spec.tsx +44 -0
- package/src/TreeSelect/index.tsx +12 -1
- package/src/appShell/AppShell.spec.tsx +259 -0
- package/src/appShell/AppShell.stories.tsx +112 -0
- package/src/appShell/AppShell.tsx +526 -0
- package/src/appShell/TabBar.tsx +3 -0
- package/src/appShell/index.ts +1 -0
- package/src/charts/Sparkline.tsx +3 -3
- package/src/index.ts +7 -0
- package/src/layouts/Sidebar.spec.tsx +31 -0
- package/src/layouts/page.tsx +8 -0
- package/src/layouts/screenScroll.tsx +71 -0
- package/src/layouts/sidebar.tsx +83 -5
- package/src/presentationEmpty.spec.tsx +71 -0
- package/src/views/ReportBuilder.tsx +4 -3
- package/src/views/index.ts +1 -0
- package/src/views/sameNameScope.spec.tsx +55 -0
- package/src/views/sameNameScope.ts +22 -0
- package/types/Diff/diff.d.ts +17 -0
- package/types/Diff/diff.d.ts.map +1 -0
- package/types/Diff/index.d.ts +15 -0
- package/types/Diff/index.d.ts.map +1 -0
- package/types/ElapsedProgress/index.d.ts +15 -0
- package/types/ElapsedProgress/index.d.ts.map +1 -0
- package/types/MachineLiteral/index.d.ts +13 -0
- package/types/MachineLiteral/index.d.ts.map +1 -0
- package/types/Material/blur.d.ts +9 -0
- package/types/Material/blur.d.ts.map +1 -0
- package/types/Material/blur.native.d.ts +38 -0
- package/types/Material/blur.native.d.ts.map +1 -0
- package/types/Material/index.d.ts.map +1 -1
- package/types/Meter/index.d.ts +2 -0
- package/types/Meter/index.d.ts.map +1 -1
- package/types/SortableList/index.d.ts +2 -0
- package/types/SortableList/index.d.ts.map +1 -1
- package/types/SortableList/useUserOrder.d.ts +28 -0
- package/types/SortableList/useUserOrder.d.ts.map +1 -0
- package/types/TreeSelect/index.d.ts.map +1 -1
- package/types/appShell/AppShell.d.ts +47 -0
- package/types/appShell/AppShell.d.ts.map +1 -0
- package/types/appShell/TabBar.d.ts.map +1 -1
- package/types/appShell/index.d.ts +1 -0
- package/types/appShell/index.d.ts.map +1 -1
- package/types/charts/Sparkline.d.ts +2 -2
- package/types/charts/Sparkline.d.ts.map +1 -1
- package/types/index.d.ts +5 -2
- package/types/index.d.ts.map +1 -1
- package/types/layouts/page.d.ts +5 -0
- package/types/layouts/page.d.ts.map +1 -1
- package/types/layouts/screenScroll.d.ts +24 -0
- package/types/layouts/screenScroll.d.ts.map +1 -1
- package/types/layouts/sidebar.d.ts +31 -1
- package/types/layouts/sidebar.d.ts.map +1 -1
- package/types/views/ReportBuilder.d.ts.map +1 -1
- package/types/views/index.d.ts +1 -0
- package/types/views/index.d.ts.map +1 -1
- package/types/views/sameNameScope.d.ts +8 -0
- package/types/views/sameNameScope.d.ts.map +1 -0
|
@@ -308,6 +308,77 @@ export function useTopBarSlot(): TopBarSlotValue | null {
|
|
|
308
308
|
return useContext(TopBarSlotContext);
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
+
/**
|
|
312
|
+
* What the outermost Screen under an app shell tells the shell's nav bar
|
|
313
|
+
* (LC-157 under `AppShell`): its scroll state, and whether the page pins a
|
|
314
|
+
* top bar of its own, in which case that bar is the nav bar and the shell
|
|
315
|
+
* draws none.
|
|
316
|
+
*/
|
|
317
|
+
export interface ShellScrollReport extends ScreenScrollState {
|
|
318
|
+
ownTopBar: boolean;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
type ShellScrollReporter = (id: string, report: ShellScrollReport | null) => void;
|
|
322
|
+
|
|
323
|
+
const ShellScrollReportContext = createContext<ShellScrollReporter | null>(null);
|
|
324
|
+
|
|
325
|
+
/** The shell's half: the latest report, and the scope its content sits in. */
|
|
326
|
+
export function useShellScrollReports(): {
|
|
327
|
+
report: ShellScrollReport | null;
|
|
328
|
+
reporter: ShellScrollReporter;
|
|
329
|
+
} {
|
|
330
|
+
const [entry, setEntry] = useState<{ id: string; report: ShellScrollReport } | null>(null);
|
|
331
|
+
const reporter = useCallback<ShellScrollReporter>((id, report) => {
|
|
332
|
+
setEntry((prev) => {
|
|
333
|
+
if (!report) return prev?.id === id ? null : prev;
|
|
334
|
+
if (
|
|
335
|
+
prev?.id === id &&
|
|
336
|
+
prev.report.scrolled === report.scrolled &&
|
|
337
|
+
prev.report.collapsed === report.collapsed &&
|
|
338
|
+
prev.report.title === report.title &&
|
|
339
|
+
prev.report.ownTopBar === report.ownTopBar
|
|
340
|
+
) {
|
|
341
|
+
return prev;
|
|
342
|
+
}
|
|
343
|
+
return { id, report };
|
|
344
|
+
});
|
|
345
|
+
}, []);
|
|
346
|
+
return { report: entry?.report ?? null, reporter };
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
export function ShellScrollReportScope({
|
|
350
|
+
reporter,
|
|
351
|
+
children,
|
|
352
|
+
}: {
|
|
353
|
+
reporter: ShellScrollReporter;
|
|
354
|
+
children: ReactNode;
|
|
355
|
+
}) {
|
|
356
|
+
return (
|
|
357
|
+
<ShellScrollReportContext.Provider value={reporter}>
|
|
358
|
+
{children}
|
|
359
|
+
</ShellScrollReportContext.Provider>
|
|
360
|
+
);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* The Screen's half: the outermost Screen under a shell reports its state;
|
|
365
|
+
* a Screen nested in another stays quiet, so the page's own wins.
|
|
366
|
+
*/
|
|
367
|
+
export function useReportScreenScroll(state: ScreenScrollState, ownTopBar: boolean) {
|
|
368
|
+
const reporter = useContext(ShellScrollReportContext);
|
|
369
|
+
const nested = useContext(ScreenScrollActionsContext) !== null;
|
|
370
|
+
const id = useId();
|
|
371
|
+
const live = reporter && !nested ? reporter : null;
|
|
372
|
+
const { scrolled, collapsed, title } = state;
|
|
373
|
+
useEffect(() => {
|
|
374
|
+
live?.(id, { scrolled, collapsed, title, ownTopBar });
|
|
375
|
+
}, [live, id, scrolled, collapsed, title, ownTopBar]);
|
|
376
|
+
useEffect(() => {
|
|
377
|
+
if (!live) return;
|
|
378
|
+
return () => live(id, null);
|
|
379
|
+
}, [live, id]);
|
|
380
|
+
}
|
|
381
|
+
|
|
311
382
|
const inertTitle = () => () => undefined;
|
|
312
383
|
const inertTitleBottom = () => undefined;
|
|
313
384
|
|
package/src/layouts/sidebar.tsx
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
getGroupPosition,
|
|
6
6
|
hairline,
|
|
7
7
|
hairlineWidth,
|
|
8
|
+
normalizeToHex,
|
|
8
9
|
stackRadiusProps,
|
|
9
10
|
useResolvedKnobs,
|
|
10
11
|
wasKeyboardFocus,
|
|
@@ -12,7 +13,16 @@ import {
|
|
|
12
13
|
} from "@multiplatform.one/theme";
|
|
13
14
|
import type React from "react";
|
|
14
15
|
import { Fragment, useId, useState } from "react";
|
|
15
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
Label,
|
|
18
|
+
Separator,
|
|
19
|
+
Text as TamaguiText,
|
|
20
|
+
XStack,
|
|
21
|
+
YStack,
|
|
22
|
+
isWeb,
|
|
23
|
+
useTheme,
|
|
24
|
+
useThemeName,
|
|
25
|
+
} from "tamagui";
|
|
16
26
|
import { ScrollView } from "../ScrollView";
|
|
17
27
|
import { componentColors } from "../componentColors";
|
|
18
28
|
import { Text } from "../Text";
|
|
@@ -76,6 +86,46 @@ export interface SidebarProps {
|
|
|
76
86
|
*/
|
|
77
87
|
footer?: React.ReactNode;
|
|
78
88
|
testID?: string;
|
|
89
|
+
/** Pinned above the rows, outside their scroll (an app's name in a shell rail). */
|
|
90
|
+
header?: React.ReactNode;
|
|
91
|
+
/** Stacked under the sections inside the same scroll (a page's panel, LC-101). */
|
|
92
|
+
children?: React.ReactNode;
|
|
93
|
+
/**
|
|
94
|
+
* Paint the column in the translucent sidebar material instead of the card
|
|
95
|
+
* surface (the HIG source list): an app shell's sidebar.
|
|
96
|
+
*/
|
|
97
|
+
material?: boolean;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* The ramp step the sidebar material paints: darker than the page in light,
|
|
102
|
+
* lighter in dark, as the HIG sidebar reads against its content. The dark
|
|
103
|
+
* ramp climbs slower at its low end, so it takes one step more.
|
|
104
|
+
*/
|
|
105
|
+
export const sidebarMaterial = { light: "$color3", dark: "$color4" } as const;
|
|
106
|
+
/**
|
|
107
|
+
* How much of the page shows through the material. The shell's column sits
|
|
108
|
+
* beside its content, never over it, so the page ground is all that is
|
|
109
|
+
* behind it and a blur would paint nothing (LC-206).
|
|
110
|
+
*/
|
|
111
|
+
export const sidebarMaterialOpacity = 0.72;
|
|
112
|
+
/**
|
|
113
|
+
* A material rail's inset from its edges. Its rows are inset pills with no
|
|
114
|
+
* rule between them (the HIG source list); a header or footer lines up with
|
|
115
|
+
* the rows by it.
|
|
116
|
+
*/
|
|
117
|
+
export const sidebarRailInset = "$2";
|
|
118
|
+
|
|
119
|
+
function useSidebarMaterial(enabled: boolean) {
|
|
120
|
+
const theme = useTheme() as unknown as Record<string, { val?: unknown } | undefined>;
|
|
121
|
+
const step = useThemeName().startsWith("dark") ? sidebarMaterial.dark : sidebarMaterial.light;
|
|
122
|
+
if (!enabled) return null;
|
|
123
|
+
const base = theme[step.slice(1)]?.val;
|
|
124
|
+
const hex = typeof base === "string" ? normalizeToHex(base) : null;
|
|
125
|
+
const backgroundColor = hex
|
|
126
|
+
? `rgba(${[1, 3, 5].map((i) => parseInt(hex.slice(i, i + 2), 16)).join(", ")}, ${sidebarMaterialOpacity})`
|
|
127
|
+
: step;
|
|
128
|
+
return { backgroundColor };
|
|
79
129
|
}
|
|
80
130
|
|
|
81
131
|
export function Sidebar({
|
|
@@ -86,8 +136,12 @@ export function Sidebar({
|
|
|
86
136
|
divider = true,
|
|
87
137
|
footer,
|
|
88
138
|
testID,
|
|
139
|
+
header,
|
|
140
|
+
children,
|
|
141
|
+
material = false,
|
|
89
142
|
}: SidebarProps) {
|
|
90
143
|
const { knobProps } = useResolvedKnobs();
|
|
144
|
+
const materialProps = useSidebarMaterial(material);
|
|
91
145
|
const headingId = useId();
|
|
92
146
|
// LC-05: active row labels and metadata share the selection ink.
|
|
93
147
|
// SP-EDGE: rows own the horizontal inset (the panelPadding role via the
|
|
@@ -112,6 +166,7 @@ export function Sidebar({
|
|
|
112
166
|
// SF-CARD fill without a four-side control border (R-NONE). The end
|
|
113
167
|
// hairline is the panel divider (Axiom 15), stretched to the rail height.
|
|
114
168
|
{...knobProps.surface}
|
|
169
|
+
{...(materialProps as object)}
|
|
115
170
|
borderWidth={0}
|
|
116
171
|
borderColor="$borderColor"
|
|
117
172
|
{...(!divider
|
|
@@ -125,8 +180,21 @@ export function Sidebar({
|
|
|
125
180
|
: { borderEndWidth: hairlineWidth })}
|
|
126
181
|
testID={testID}
|
|
127
182
|
>
|
|
183
|
+
{header ? (
|
|
184
|
+
<YStack
|
|
185
|
+
flexShrink={0}
|
|
186
|
+
{...(material ? { paddingHorizontal: sidebarRailInset } : null)}
|
|
187
|
+
data-sidebar-header=""
|
|
188
|
+
>
|
|
189
|
+
{header}
|
|
190
|
+
</YStack>
|
|
191
|
+
) : null}
|
|
128
192
|
<ScrollView flex={1}>
|
|
129
|
-
<YStack
|
|
193
|
+
<YStack
|
|
194
|
+
{...knobProps.panelPadding}
|
|
195
|
+
paddingHorizontal={material ? sidebarRailInset : 0}
|
|
196
|
+
{...knobProps.gapLg}
|
|
197
|
+
>
|
|
130
198
|
{sections.map((section, sectionIdx) => {
|
|
131
199
|
const titleId = section.title ? `${headingId}-${sectionIdx}` : undefined;
|
|
132
200
|
return (
|
|
@@ -183,7 +251,9 @@ export function Sidebar({
|
|
|
183
251
|
<YStack width="100%" data-sidebar-group="">
|
|
184
252
|
{section.items.map((item, itemIdx, items) => {
|
|
185
253
|
const position = getGroupPosition(itemIdx, items.length);
|
|
186
|
-
const corners =
|
|
254
|
+
const corners = material
|
|
255
|
+
? { borderRadius: knobProps.borderRadius.borderRadius }
|
|
256
|
+
: stackRadiusProps(position, knobProps.borderRadius.borderRadius);
|
|
187
257
|
const itemKey = `${sectionIdx}:${String(item.value ?? item.label)}`;
|
|
188
258
|
const ink = item.active
|
|
189
259
|
? componentColors.selection.ink
|
|
@@ -202,7 +272,7 @@ export function Sidebar({
|
|
|
202
272
|
: null;
|
|
203
273
|
return (
|
|
204
274
|
<Fragment key={itemKey}>
|
|
205
|
-
{itemIdx > 0 ? (
|
|
275
|
+
{itemIdx > 0 && !material ? (
|
|
206
276
|
<YStack alignSelf="stretch" paddingStart={rowPad}>
|
|
207
277
|
<Separator alignSelf="stretch" {...hairline.line} />
|
|
208
278
|
</YStack>
|
|
@@ -325,10 +395,18 @@ export function Sidebar({
|
|
|
325
395
|
</YStack>
|
|
326
396
|
);
|
|
327
397
|
})}
|
|
398
|
+
{children}
|
|
328
399
|
</YStack>
|
|
329
400
|
</ScrollView>
|
|
330
401
|
{footer != null && footer !== false ? (
|
|
331
|
-
<YStack
|
|
402
|
+
<YStack
|
|
403
|
+
flexShrink={1}
|
|
404
|
+
minHeight={0}
|
|
405
|
+
maxHeight="50%"
|
|
406
|
+
width="100%"
|
|
407
|
+
{...(material ? { paddingHorizontal: sidebarRailInset } : null)}
|
|
408
|
+
data-sidebar-footer=""
|
|
409
|
+
>
|
|
332
410
|
<Separator width="100%" alignSelf="stretch" {...hairline.line} />
|
|
333
411
|
{footer}
|
|
334
412
|
</YStack>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-220 EMPTY-IS-DRAWN: a presentation component given no reading draws its
|
|
3
|
+
* own empty form at the populated box (the bare track, the em dash, the empty
|
|
4
|
+
* surface), shows no "0", and its accessible name says there is no reading.
|
|
5
|
+
*/
|
|
6
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
7
|
+
import { cleanup, screen } from "@testing-library/react";
|
|
8
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
9
|
+
import { Sparkline } from "./charts/Sparkline";
|
|
10
|
+
import { Default as DiffMain, NoReading } from "./Diff/Diff.stories";
|
|
11
|
+
import { Diff, type DiffProps } from "./Diff";
|
|
12
|
+
import { Meter, type MeterProps } from "./Meter";
|
|
13
|
+
import { Default as MeterMain, Unknown } from "./Meter/Meter.stories";
|
|
14
|
+
|
|
15
|
+
afterEach(cleanup);
|
|
16
|
+
|
|
17
|
+
const noZero = /(^|[^\d.])0([^\d.]|$)/;
|
|
18
|
+
|
|
19
|
+
describe("presentation components draw their empty form (LC-220)", () => {
|
|
20
|
+
it("Meter: the bare track at the populated height, an em dash, no fill, no reading spoken", () => {
|
|
21
|
+
const full = renderWithProviders(<Meter {...(MeterMain.args as MeterProps)} />);
|
|
22
|
+
const fullRail = full.container.querySelector("[role='meter']") as HTMLElement;
|
|
23
|
+
const height = fullRail.getAttribute("data-meter-track-height");
|
|
24
|
+
full.unmount();
|
|
25
|
+
|
|
26
|
+
const { container } = renderWithProviders(
|
|
27
|
+
<Meter {...(Unknown.args as MeterProps)} value={null} />,
|
|
28
|
+
);
|
|
29
|
+
const rail = container.querySelector("[role='meter']") as HTMLElement;
|
|
30
|
+
expect(rail).toBeTruthy();
|
|
31
|
+
expect(rail.getAttribute("data-meter-track-height")).toBe(height);
|
|
32
|
+
expect(rail.getAttribute("data-meter-fill")).toBeNull();
|
|
33
|
+
expect(rail.getAttribute("aria-valuenow")).toBeNull();
|
|
34
|
+
expect(rail.getAttribute("aria-valuetext")).toBe("No reading");
|
|
35
|
+
expect(container.textContent).toContain("—");
|
|
36
|
+
expect(container.textContent).not.toMatch(noZero);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("Diff: the same frame with an em dash and a no-reading name, never 0 added", () => {
|
|
40
|
+
const full = renderWithProviders(<Diff {...(DiffMain.args as DiffProps)} />);
|
|
41
|
+
const fullFrame = full.container.querySelector("[role='region']") as HTMLElement;
|
|
42
|
+
const fullClass = fullFrame.className;
|
|
43
|
+
full.unmount();
|
|
44
|
+
|
|
45
|
+
const { container } = renderWithProviders(<Diff {...(NoReading.args as DiffProps)} />);
|
|
46
|
+
const frame = container.querySelector("[role='region']") as HTMLElement;
|
|
47
|
+
expect(frame.className).toBe(fullClass);
|
|
48
|
+
expect(frame.getAttribute("aria-label")).toMatch(/no reading$/);
|
|
49
|
+
expect(container.textContent).toBe("—");
|
|
50
|
+
expect(container.textContent).not.toMatch(noZero);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("Sparkline: the surface keeps its box and says no data, with no point drawn", () => {
|
|
54
|
+
const full = renderWithProviders(
|
|
55
|
+
<Sparkline width={160} data={[3, 5, 4, 8]} title="Sessions" />,
|
|
56
|
+
);
|
|
57
|
+
const fullSvg = full.container.querySelector("svg") as SVGElement;
|
|
58
|
+
const height = fullSvg.getAttribute("height");
|
|
59
|
+
full.unmount();
|
|
60
|
+
|
|
61
|
+
const { container } = renderWithProviders(
|
|
62
|
+
<Sparkline width={160} data={null} title="Sessions" />,
|
|
63
|
+
);
|
|
64
|
+
const svg = container.querySelector("svg") as SVGElement;
|
|
65
|
+
expect(svg.getAttribute("height")).toBe(height);
|
|
66
|
+
expect(svg.getAttribute("width")).toBe("160");
|
|
67
|
+
expect(screen.getByRole("img").getAttribute("aria-label")).toMatch(/no data$/);
|
|
68
|
+
expect(container.querySelectorAll("path")).toHaveLength(0);
|
|
69
|
+
expect(container.textContent).not.toMatch(noZero);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
formatTimeOfDay,
|
|
14
14
|
hairline,
|
|
15
15
|
keyboardFocusRingProps,
|
|
16
|
+
listHeightForRows,
|
|
16
17
|
pressTargetStyle,
|
|
17
18
|
useResolvedKnobs,
|
|
18
19
|
ensureKeyboardModalityTracking,
|
|
@@ -733,7 +734,7 @@ export function ReportBuilder({
|
|
|
733
734
|
})}
|
|
734
735
|
</Button>
|
|
735
736
|
</DropdownMenu.Trigger>
|
|
736
|
-
<DropdownMenu.Content maxHeight={
|
|
737
|
+
<DropdownMenu.Content maxHeight={listHeightForRows(10, knobProps.menuRow.minHeight)}>
|
|
737
738
|
<DropdownMenu.Label>{t("Report columns")}</DropdownMenu.Label>
|
|
738
739
|
{columns.map((column) => {
|
|
739
740
|
const checked = enabledColumnSet.has(column.fieldname);
|
|
@@ -759,7 +760,7 @@ export function ReportBuilder({
|
|
|
759
760
|
{groupByCol ? t("Group by: {{field}}", { field: groupByCol.label }) : t("Group by")}
|
|
760
761
|
</Button>
|
|
761
762
|
</DropdownMenu.Trigger>
|
|
762
|
-
<DropdownMenu.Content maxHeight={
|
|
763
|
+
<DropdownMenu.Content maxHeight={listHeightForRows(10, knobProps.menuRow.minHeight)}>
|
|
763
764
|
<DropdownMenu.CheckboxItem
|
|
764
765
|
checked={!groupBy}
|
|
765
766
|
closeOnSelect
|
|
@@ -817,7 +818,7 @@ export function ReportBuilder({
|
|
|
817
818
|
})}
|
|
818
819
|
</Button>
|
|
819
820
|
</DropdownMenu.Trigger>
|
|
820
|
-
<DropdownMenu.Content maxHeight={
|
|
821
|
+
<DropdownMenu.Content maxHeight={listHeightForRows(10, knobProps.menuRow.minHeight)}>
|
|
821
822
|
{numericColumns.map((column) => (
|
|
822
823
|
<DropdownMenu.CheckboxItem
|
|
823
824
|
key={column.fieldname}
|
package/src/views/index.ts
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-213 SAME-NAME-SCOPE: two items with one name show the scope that tells
|
|
3
|
+
* them apart, in the visible title and so in the row's accessible name; items
|
|
4
|
+
* without a collision carry no suffix.
|
|
5
|
+
*/
|
|
6
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
7
|
+
import { cleanup, screen } from "@testing-library/react";
|
|
8
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
9
|
+
import { List, ListRow } from "./List";
|
|
10
|
+
import { scopedNames } from "./sameNameScope";
|
|
11
|
+
|
|
12
|
+
afterEach(cleanup);
|
|
13
|
+
|
|
14
|
+
const apps = [
|
|
15
|
+
{ id: "a", name: "postgres", tenant: "corp" },
|
|
16
|
+
{ id: "b", name: "redis", tenant: "corp" },
|
|
17
|
+
{ id: "c", name: "postgres", tenant: "master" },
|
|
18
|
+
{ id: "d", name: "nginx", tenant: "master" },
|
|
19
|
+
];
|
|
20
|
+
|
|
21
|
+
describe("scopedNames (LC-213)", () => {
|
|
22
|
+
it("suffixes exactly the colliding items with their scope", () => {
|
|
23
|
+
expect(
|
|
24
|
+
scopedNames(
|
|
25
|
+
apps,
|
|
26
|
+
(app) => app.name,
|
|
27
|
+
(app) => app.tenant,
|
|
28
|
+
),
|
|
29
|
+
).toEqual(["postgres (corp)", "redis", "postgres (master)", "nginx"]);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("a list of the fixture gives every row a unique accessible name", () => {
|
|
33
|
+
const labels = scopedNames(
|
|
34
|
+
apps,
|
|
35
|
+
(app) => app.name,
|
|
36
|
+
(app) => app.tenant,
|
|
37
|
+
);
|
|
38
|
+
renderWithProviders(
|
|
39
|
+
<List
|
|
40
|
+
items={apps}
|
|
41
|
+
aria-label="Apps"
|
|
42
|
+
height={300}
|
|
43
|
+
estimateSize={50}
|
|
44
|
+
renderItem={(_app, index) => <ListRow title={labels[index]} />}
|
|
45
|
+
/>,
|
|
46
|
+
);
|
|
47
|
+
const names = screen.getAllByRole("listitem").map((row) => row.textContent);
|
|
48
|
+
expect(names).toHaveLength(4);
|
|
49
|
+
expect(new Set(names).size).toBe(4);
|
|
50
|
+
expect(names.filter((name) => /\(.+\)$/.test(name ?? ""))).toEqual([
|
|
51
|
+
"postgres (corp)",
|
|
52
|
+
"postgres (master)",
|
|
53
|
+
]);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-213 SAME-NAME-SCOPE: when two items in one collection share a display
|
|
3
|
+
* name, each colliding item's label carries the scope that tells them apart
|
|
4
|
+
* ("postgres (corp)", "postgres (master)"). Items without a collision keep
|
|
5
|
+
* their bare name. The label is the visible title and the accessible name.
|
|
6
|
+
*/
|
|
7
|
+
export function scopedNames<T>(
|
|
8
|
+
items: readonly T[],
|
|
9
|
+
nameOf: (item: T) => string,
|
|
10
|
+
scopeOf: (item: T) => string | null | undefined,
|
|
11
|
+
): string[] {
|
|
12
|
+
const counts = new Map<string, number>();
|
|
13
|
+
for (const item of items) {
|
|
14
|
+
const name = nameOf(item);
|
|
15
|
+
counts.set(name, (counts.get(name) ?? 0) + 1);
|
|
16
|
+
}
|
|
17
|
+
return items.map((item) => {
|
|
18
|
+
const name = nameOf(item);
|
|
19
|
+
const scope = scopeOf(item);
|
|
20
|
+
return (counts.get(name) ?? 0) > 1 && scope ? `${name} (${scope})` : name;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type DiffLineKind = "added" | "removed" | "same";
|
|
2
|
+
export interface DiffLine {
|
|
3
|
+
kind: DiffLineKind;
|
|
4
|
+
text: string;
|
|
5
|
+
/** 1-based line in the before text; absent on an added line. */
|
|
6
|
+
before?: number;
|
|
7
|
+
/** 1-based line in the after text; absent on a removed line. */
|
|
8
|
+
after?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface DiffCounts {
|
|
11
|
+
added: number;
|
|
12
|
+
removed: number;
|
|
13
|
+
}
|
|
14
|
+
/** Line diff by longest common subsequence, removals before additions in a hunk. */
|
|
15
|
+
export declare function diffLines(before: string, after: string): DiffLine[];
|
|
16
|
+
export declare function countDiff(lines: readonly DiffLine[]): DiffCounts;
|
|
17
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/Diff/diff.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CA6BnE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,UAAU,CAQhE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type YStackProps } from "tamagui";
|
|
2
|
+
export { countDiff, diffLines } from "./diff";
|
|
3
|
+
export type { DiffCounts, DiffLine, DiffLineKind } from "./diff";
|
|
4
|
+
export interface DiffProps extends Omit<YStackProps, "children"> {
|
|
5
|
+
/** The text before the change; null or undefined is no reading. */
|
|
6
|
+
before?: string | null;
|
|
7
|
+
/** The text after the change; null or undefined is no reading. */
|
|
8
|
+
after?: string | null;
|
|
9
|
+
/** What changed, the head of the region's accessible name ("nginx.conf"). */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Show before/after line numbers in the gutter (default true). */
|
|
12
|
+
lineNumbers?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function Diff({ before, after, label, lineNumbers, ...frameProps }: DiffProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Diff/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAKxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEjE,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IAC9D,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkBD,wBAAgB,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAkB,EAAE,GAAG,UAAU,EAAE,EAAE,SAAS,2CA+F1F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type XStackProps } from "tamagui";
|
|
2
|
+
export interface ElapsedProgressProps extends Omit<XStackProps, "children"> {
|
|
3
|
+
/** When the work started (epoch ms or a Date). */
|
|
4
|
+
startedAt: number | Date;
|
|
5
|
+
/** Determinate share done, 0 to 1; omit when the work can't say. */
|
|
6
|
+
progress?: number | null;
|
|
7
|
+
/** How long the spinner stays bare before the elapsed time joins it (ms, default 3000). */
|
|
8
|
+
threshold?: number;
|
|
9
|
+
/** What is running, for the accessible name ("Build"). */
|
|
10
|
+
label?: string;
|
|
11
|
+
}
|
|
12
|
+
/** m:ss under an hour, h:mm:ss past it. */
|
|
13
|
+
export declare function formatElapsed(ms: number): string;
|
|
14
|
+
export declare function ElapsedProgress({ startedAt, progress, threshold, label, ...rowProps }: ElapsedProgressProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ElapsedProgress/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAIjE,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IACzE,kDAAkD;IAClD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,QAAQ,EACR,SAAgB,EAChB,KAAK,EACL,GAAG,QAAQ,EACZ,EAAE,oBAAoB,2CA+CtB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type XStackProps } from "tamagui";
|
|
2
|
+
export interface MachineLiteralProps extends Omit<XStackProps, "children"> {
|
|
3
|
+
/** The literal, shown and copied exactly as given. */
|
|
4
|
+
value: string;
|
|
5
|
+
/** Its human reading, or a formatter that derives one ("daily at 02:00"). */
|
|
6
|
+
reading?: string | ((value: string) => string | null | undefined);
|
|
7
|
+
/** What the literal is, for the copy action's name ("cron expression"). */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** False drops the copy action (default true). */
|
|
10
|
+
copyable?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function MachineLiteral({ value, reading, label, copyable, ...rowProps }: MachineLiteralProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MachineLiteral/index.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAMjE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IACxE,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAClE,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAe,EACf,GAAG,QAAQ,EACZ,EAAE,mBAAmB,2CAyCrB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The material's native blur, web arm: the browser blurs through
|
|
3
|
+
* `backdropFilter`, so there is no blur view to draw.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useMaterialBlur(): null;
|
|
6
|
+
export declare function MaterialBlurFill(_props: {
|
|
7
|
+
radius?: number;
|
|
8
|
+
}): null;
|
|
9
|
+
//# sourceMappingURL=blur.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../src/Material/blur.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAElE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ComponentType } from "react";
|
|
2
|
+
import { type ViewStyle } from "react-native";
|
|
3
|
+
/** The name expo-blur registers its native module and view under. */
|
|
4
|
+
export declare const blurNativeModule = "ExpoBlur";
|
|
5
|
+
/** The HIG material a tab bar or toolbar uses, per colour scheme. */
|
|
6
|
+
export declare const materialBlurTint: {
|
|
7
|
+
readonly light: "systemChromeMaterialLight";
|
|
8
|
+
readonly dark: "systemChromeMaterialDark";
|
|
9
|
+
};
|
|
10
|
+
export declare function blurTintFor(themeName: string | undefined): string;
|
|
11
|
+
export type MaterialBlurView = ComponentType<{
|
|
12
|
+
tint?: string;
|
|
13
|
+
intensity?: number;
|
|
14
|
+
pointerEvents?: "none";
|
|
15
|
+
style?: ViewStyle | ViewStyle[];
|
|
16
|
+
}>;
|
|
17
|
+
export interface BlurSources {
|
|
18
|
+
core: () => {
|
|
19
|
+
requireOptionalNativeModule?: (name: string) => unknown;
|
|
20
|
+
};
|
|
21
|
+
blur: () => {
|
|
22
|
+
BlurView?: MaterialBlurView;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** The BlurView, or null when this platform or binary cannot draw it. */
|
|
26
|
+
export declare function resolveBlurView(sources: BlurSources, os: string): MaterialBlurView | null;
|
|
27
|
+
export declare function useMaterialBlur(): {
|
|
28
|
+
BlurView: MaterialBlurView;
|
|
29
|
+
tint: string;
|
|
30
|
+
} | null;
|
|
31
|
+
/**
|
|
32
|
+
* The blur behind a material's content: fills its parent inside the hairline
|
|
33
|
+
* and clips to the parent's corner radius, so the parent keeps its shadow.
|
|
34
|
+
*/
|
|
35
|
+
export declare function MaterialBlurFill({ radius }: {
|
|
36
|
+
radius?: number;
|
|
37
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
38
|
+
//# sourceMappingURL=blur.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blur.native.d.ts","sourceRoot":"","sources":["../../src/Material/blur.native.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpE,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C,qEAAqE;AACrE,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEjE;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM;QAAE,2BAA2B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE,CAAC;IACxE,IAAI,EAAE,MAAM;QAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;CAC7C;AAOD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAQzF;AASD,wBAAgB,eAAe,IAAI;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKrF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAU,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,kDAYnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Material/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Material/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,cAAc,EAAU,KAAK,WAAW,EAAY,MAAM,SAAS,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEzC,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAEF,wBAAgB,eAAe,CAAC,SAAS,GAAE,iBAA4B,GAAG,MAAM,CAG/E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK1F;AAED,wBAAgB,WAAW,CAAC,SAAS,GAAE,iBAA4B;;;;;;;;;;;;;EAkBlE;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,eAAO,MAAM,QAAQ,0GAanB,CAAC"}
|
package/types/Meter/index.d.ts
CHANGED
|
@@ -47,6 +47,8 @@ export interface MeterProps extends Omit<GetProps<typeof MeterRoot>, "children">
|
|
|
47
47
|
loading?: boolean;
|
|
48
48
|
disabled?: boolean;
|
|
49
49
|
}
|
|
50
|
+
/** LC-220: an unknown level is spoken as no reading, never as a zero or a bare dash. */
|
|
51
|
+
export declare const NO_READING = "No reading";
|
|
50
52
|
/**
|
|
51
53
|
* Bounded-quantity display. Inert — no tab stop, no focus ring. The input
|
|
52
54
|
* twin is Slider.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Meter/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Meter/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAUL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnE,QAAA,MAAM,SAAS;;;6CAEb,CAAC;AA+BH,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,SAAS,CAAC,EAAE,UAAU,CAAC;IAC9E,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAQD,wFAAwF;AACxF,eAAO,MAAM,UAAU,eAAe,CAAC;AAcvC;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAiB,EACjB,UAAU,EACV,SAAS,EACT,MAAmB,EACnB,QAAQ,EACR,OAAe,EACf,QAAgB,EAChB,GAAG,KAAK,EACT,EAAE,UAAU,2CA2KZ"}
|
|
@@ -3,6 +3,8 @@ import { type SizeTokens, type YStackProps } from "tamagui";
|
|
|
3
3
|
export { SortableHandle, SortableHandleWell } from "./SortableHandle";
|
|
4
4
|
export { SortableSessionProvider, useSortableRows } from "./useSortableRows";
|
|
5
5
|
export type { SortableSession, UseSortableRowsOptions } from "./useSortableRows";
|
|
6
|
+
export { applyUserOrder, useUserOrder } from "./useUserOrder";
|
|
7
|
+
export type { UseUserOrderOptions, UserOrderStorage } from "./useUserOrder";
|
|
6
8
|
export type SortableDisabledStyle = "keepLabel" | "dimWhole";
|
|
7
9
|
export type SortableListProps<T> = Omit<YStackProps, "children" | "onChange" | "disabled" | "aria-label"> & {
|
|
8
10
|
items: T[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SortableList/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EACL,KAAK,UAAU,EAKf,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAOjB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SortableList/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EACL,KAAK,UAAU,EAKf,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAOjB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE7D,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,IAAI,CACrC,WAAW,EACX,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CACpD,GAAG;IACF,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACnD,qDAAqD;IACrD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,qEAAqE;IACrE,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AASF,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,aAA2B,EAC3B,IAAI,EACJ,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,SAAS,EACvB,GAAG,UAAU,EACd,EAAE,iBAAiB,CAAC,CAAC,CAAC,2CAuJtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Where a user's arrangement lives; defaults to the browser's localStorage. */
|
|
2
|
+
export interface UserOrderStorage {
|
|
3
|
+
getItem: (key: string) => string | null;
|
|
4
|
+
setItem: (key: string, value: string) => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The items in the user's order (LC-209): known ids keep their saved place,
|
|
8
|
+
* new ids land at the end in the order the source gave them. Ids missing
|
|
9
|
+
* from this read keep their slot in `order`, so a partial refresh never
|
|
10
|
+
* reshuffles them.
|
|
11
|
+
*/
|
|
12
|
+
export declare function applyUserOrder<T>(items: readonly T[], order: readonly string[], getId: (item: T) => string): {
|
|
13
|
+
items: T[];
|
|
14
|
+
order: string[];
|
|
15
|
+
};
|
|
16
|
+
export interface UseUserOrderOptions {
|
|
17
|
+
storage?: UserOrderStorage;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Keeps a hand-arranged collection in the user's order across data refreshes
|
|
21
|
+
* and reloads. Feed `items` from any source order; render the returned
|
|
22
|
+
* `items`; pass `onChange` to SortableList.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useUserOrder<T>(key: string, items: readonly T[], getId: (item: T) => string, options?: UseUserOrderOptions): {
|
|
25
|
+
items: T[];
|
|
26
|
+
onChange: (next: T[]) => void;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=useUserOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUserOrder.d.ts","sourceRoot":"","sources":["../../src/SortableList/useUserOrder.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AA6BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GACzB;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAYjC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC1B,OAAO,GAAE,mBAAwB;;qBAaxB,CAAC,EAAE;EAUb"}
|