@multiplatform.one/components 7.81.0 → 7.81.2
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/SheetModal/index.cjs +1 -9
- package/dist/cjs/SheetModal/index.native.js +7 -11
- package/dist/cjs/SheetModal/index.native.js.map +1 -1
- package/dist/cjs/appShell/AppShell.cjs +9 -1
- package/dist/cjs/appShell/AppShell.native.js +9 -1
- package/dist/cjs/appShell/AppShell.native.js.map +1 -1
- package/dist/cjs/appShell/TabHost.native.js +7 -1
- package/dist/cjs/appShell/TabHost.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/charts/BarChart.cjs +1 -0
- package/dist/cjs/charts/BarChart.native.js +1 -0
- package/dist/cjs/charts/BarChart.native.js.map +1 -1
- package/dist/cjs/charts/ChartDataView.cjs +89 -9
- package/dist/cjs/charts/ChartDataView.native.js +94 -9
- package/dist/cjs/charts/ChartDataView.native.js.map +1 -1
- package/dist/cjs/charts/ChartSurface.cjs +26 -8
- package/dist/cjs/charts/ChartSurface.native.js +27 -9
- package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
- package/dist/cjs/charts/chartHeight.cjs +1 -1
- package/dist/cjs/charts/chartHeight.native.js +1 -1
- package/dist/cjs/charts/chartHeight.native.js.map +1 -1
- package/dist/cjs/charts/composeChart.cjs +1 -1
- package/dist/cjs/charts/composeChart.native.js +1 -1
- package/dist/cjs/charts/composeChart.native.js.map +1 -1
- package/dist/cjs/code/LogView.cjs +142 -0
- package/dist/cjs/code/LogView.native.js +151 -0
- package/dist/cjs/code/LogView.native.js.map +1 -0
- package/dist/cjs/code/index.cjs +2 -1
- package/dist/cjs/code/index.native.js +1 -0
- package/dist/cjs/code/index.native.js.map +1 -1
- package/dist/cjs/layouts/PageTemplates.cjs +61 -0
- package/dist/cjs/layouts/PageTemplates.native.js +62 -0
- package/dist/cjs/layouts/PageTemplates.native.js.map +1 -1
- package/dist/cjs/views/ImageGrid.cjs +9 -0
- package/dist/cjs/views/ImageGrid.native.js +12 -1
- package/dist/cjs/views/ImageGrid.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.native.js.map +1 -1
- package/dist/esm/CheckGlyph/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.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.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.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/index.mjs +2 -10
- package/dist/esm/SheetModal/index.mjs.map +1 -1
- package/dist/esm/SheetModal/index.native.js +8 -12
- 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.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 +10 -2
- package/dist/esm/appShell/AppShell.mjs.map +1 -1
- package/dist/esm/appShell/AppShell.native.js +10 -2
- 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.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.native.js.map +1 -1
- package/dist/esm/appShell/TabHost.native.js +7 -1
- 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.mjs +1 -0
- package/dist/esm/charts/BarChart.mjs.map +1 -1
- package/dist/esm/charts/BarChart.native.js +1 -0
- package/dist/esm/charts/BarChart.native.js.map +1 -1
- package/dist/esm/charts/ChartDataView.mjs +83 -3
- package/dist/esm/charts/ChartDataView.mjs.map +1 -1
- package/dist/esm/charts/ChartDataView.native.js +88 -3
- package/dist/esm/charts/ChartDataView.native.js.map +1 -1
- package/dist/esm/charts/ChartSurface.mjs +26 -8
- package/dist/esm/charts/ChartSurface.mjs.map +1 -1
- package/dist/esm/charts/ChartSurface.native.js +27 -9
- 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.mjs +1 -1
- package/dist/esm/charts/chartHeight.mjs.map +1 -1
- package/dist/esm/charts/chartHeight.native.js +1 -1
- package/dist/esm/charts/chartHeight.native.js.map +1 -1
- package/dist/esm/charts/composeChart.mjs +1 -1
- package/dist/esm/charts/composeChart.mjs.map +1 -1
- package/dist/esm/charts/composeChart.native.js +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/LogView.mjs +117 -0
- package/dist/esm/code/LogView.mjs.map +1 -0
- package/dist/esm/code/LogView.native.js +123 -0
- package/dist/esm/code/LogView.native.js.map +1 -0
- package/dist/esm/code/Pre/index.native.js.map +1 -1
- package/dist/esm/code/index.mjs +1 -0
- package/dist/esm/code/index.mjs.map +1 -1
- package/dist/esm/code/index.native.js +1 -0
- 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.mjs +61 -1
- package/dist/esm/layouts/PageTemplates.mjs.map +1 -1
- package/dist/esm/layouts/PageTemplates.native.js +62 -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.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.mjs +10 -1
- package/dist/esm/views/ImageGrid.mjs.map +1 -1
- package/dist/esm/views/ImageGrid.native.js +13 -2
- 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/SheetModal/index.mjs +2 -10
- package/dist/jsx/SheetModal/index.mjs.map +1 -1
- package/dist/jsx/SheetModal/index.native.js +7 -11
- package/dist/jsx/SheetModal/index.native.js.map +1 -1
- package/dist/jsx/appShell/AppShell.mjs +10 -2
- package/dist/jsx/appShell/AppShell.mjs.map +1 -1
- package/dist/jsx/appShell/AppShell.native.js +9 -1
- package/dist/jsx/appShell/AppShell.native.js.map +1 -1
- package/dist/jsx/appShell/TabHost.native.js +7 -1
- 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/charts/BarChart.mjs +1 -0
- package/dist/jsx/charts/BarChart.mjs.map +1 -1
- package/dist/jsx/charts/BarChart.native.js +1 -0
- package/dist/jsx/charts/BarChart.native.js.map +1 -1
- package/dist/jsx/charts/ChartDataView.mjs +83 -3
- package/dist/jsx/charts/ChartDataView.mjs.map +1 -1
- package/dist/jsx/charts/ChartDataView.native.js +94 -9
- package/dist/jsx/charts/ChartDataView.native.js.map +1 -1
- package/dist/jsx/charts/ChartSurface.mjs +26 -8
- package/dist/jsx/charts/ChartSurface.mjs.map +1 -1
- package/dist/jsx/charts/ChartSurface.native.js +27 -9
- package/dist/jsx/charts/ChartSurface.native.js.map +1 -1
- package/dist/jsx/charts/chartHeight.mjs +1 -1
- package/dist/jsx/charts/chartHeight.mjs.map +1 -1
- package/dist/jsx/charts/chartHeight.native.js +1 -1
- package/dist/jsx/charts/chartHeight.native.js.map +1 -1
- package/dist/jsx/charts/composeChart.mjs +1 -1
- package/dist/jsx/charts/composeChart.mjs.map +1 -1
- package/dist/jsx/charts/composeChart.native.js +1 -1
- package/dist/jsx/charts/composeChart.native.js.map +1 -1
- package/dist/jsx/code/LogView.mjs +117 -0
- package/dist/jsx/code/LogView.mjs.map +1 -0
- package/dist/jsx/code/LogView.native.js +151 -0
- package/dist/jsx/code/LogView.native.js.map +1 -0
- package/dist/jsx/code/index.mjs +1 -0
- package/dist/jsx/code/index.mjs.map +1 -1
- package/dist/jsx/code/index.native.js +1 -0
- package/dist/jsx/code/index.native.js.map +1 -1
- package/dist/jsx/layouts/PageTemplates.mjs +61 -1
- package/dist/jsx/layouts/PageTemplates.mjs.map +1 -1
- package/dist/jsx/layouts/PageTemplates.native.js +62 -0
- package/dist/jsx/layouts/PageTemplates.native.js.map +1 -1
- package/dist/jsx/views/ImageGrid.mjs +10 -1
- package/dist/jsx/views/ImageGrid.mjs.map +1 -1
- package/dist/jsx/views/ImageGrid.native.js +12 -1
- package/dist/jsx/views/ImageGrid.native.js.map +1 -1
- package/package.json +9 -9
- 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 +13 -17
- package/src/SheetModal/index.tsx +8 -14
- package/src/appShell/AppShell.spec.tsx +21 -0
- package/src/appShell/AppShell.tsx +9 -2
- package/src/appShell/TabHost.native.spec.tsx +10 -0
- package/src/appShell/TabHost.native.tsx +6 -1
- package/src/appShell/bottomChrome.ts +24 -3
- package/src/charts/BarChart.tsx +8 -2
- package/src/charts/ChartDataView.spec.tsx +23 -2
- package/src/charts/ChartDataView.tsx +87 -6
- package/src/charts/ChartSurface.tsx +17 -8
- package/src/charts/chartHeight.ts +8 -2
- package/src/charts/composeChart.ts +3 -2
- package/src/code/LogView.tsx +127 -0
- package/src/code/index.ts +1 -0
- package/src/layouts/DenseContent.stories.tsx +93 -0
- package/src/layouts/PageTemplates.tsx +90 -0
- package/src/views/ImageGrid.tsx +19 -2
- package/types/SheetModal/index.d.ts.map +1 -1
- package/types/SheetModal/index.native.d.ts.map +1 -1
- package/types/appShell/AppShell.d.ts.map +1 -1
- 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/charts/BarChart.d.ts +1 -1
- package/types/charts/BarChart.d.ts.map +1 -1
- package/types/charts/ChartDataView.d.ts +3 -1
- package/types/charts/ChartDataView.d.ts.map +1 -1
- package/types/charts/ChartSurface.d.ts.map +1 -1
- package/types/charts/chartHeight.d.ts +2 -1
- package/types/charts/chartHeight.d.ts.map +1 -1
- package/types/charts/composeChart.d.ts +2 -1
- package/types/charts/composeChart.d.ts.map +1 -1
- package/types/code/LogView.d.ts +31 -0
- package/types/code/LogView.d.ts.map +1 -0
- package/types/code/index.d.ts +1 -0
- package/types/code/index.d.ts.map +1 -1
- package/types/layouts/PageTemplates.d.ts +26 -0
- package/types/layouts/PageTemplates.d.ts.map +1 -1
- package/types/views/ImageGrid.d.ts.map +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Button } from "@multiplatform.one/forms";
|
|
2
|
+
import { TableIcon } from "@phosphor-icons/react";
|
|
2
3
|
import { isWeb } from "@multiplatform.one/platform";
|
|
3
4
|
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
4
5
|
import { createContext, useContext, useId, useState, type ReactNode } from "react";
|
|
@@ -6,6 +7,8 @@ import { Paragraph, XStack, YStack } from "tamagui";
|
|
|
6
7
|
import { OverlayHeader } from "../actions/StandardAction";
|
|
7
8
|
import { Dialog } from "../Dialog";
|
|
8
9
|
import { ScrollView } from "../ScrollView";
|
|
10
|
+
import { Separator } from "../Separator";
|
|
11
|
+
import { Text } from "../Text";
|
|
9
12
|
import { sectionHeading } from "../componentColors";
|
|
10
13
|
import { useTranslation } from "../shared/i18n";
|
|
11
14
|
import { DialogContent, DialogOverlay } from "../surfaces";
|
|
@@ -44,13 +47,13 @@ export function ChartDataView({ data, title, valueFormatter, children }: ChartDa
|
|
|
44
47
|
const action = (
|
|
45
48
|
<Dialog.Trigger asChild>
|
|
46
49
|
<Button
|
|
47
|
-
|
|
50
|
+
circular
|
|
51
|
+
chromeless
|
|
52
|
+
icon={TableIcon}
|
|
48
53
|
id={triggerId}
|
|
49
54
|
{...(isWeb ? { "aria-label": actionLabel } : { accessibilityLabel: actionLabel })}
|
|
50
55
|
{...chartWebProps({ "data-mpo-chart-data-trigger": id })}
|
|
51
|
-
|
|
52
|
-
{t("View data")}
|
|
53
|
-
</Button>
|
|
56
|
+
/>
|
|
54
57
|
</Dialog.Trigger>
|
|
55
58
|
);
|
|
56
59
|
return (
|
|
@@ -128,15 +131,41 @@ export function ChartDataFrame({
|
|
|
128
131
|
title,
|
|
129
132
|
valueFormatter,
|
|
130
133
|
width,
|
|
134
|
+
fill,
|
|
131
135
|
children,
|
|
132
|
-
}: Omit<ChartDataViewProps, "children"> & {
|
|
136
|
+
}: Omit<ChartDataViewProps, "children"> & {
|
|
137
|
+
children: ReactNode;
|
|
138
|
+
width?: number;
|
|
139
|
+
/** The chart flexes to its region's height (LC-215). */
|
|
140
|
+
fill?: boolean;
|
|
141
|
+
}) {
|
|
133
142
|
const inherited = useContext(ChartDataContext);
|
|
134
143
|
const { knobProps } = useResolvedKnobs();
|
|
135
144
|
if (inherited) return children;
|
|
145
|
+
if (fill)
|
|
146
|
+
return (
|
|
147
|
+
<YStack
|
|
148
|
+
minWidth={0}
|
|
149
|
+
width={width ?? "100%"}
|
|
150
|
+
maxWidth="100%"
|
|
151
|
+
flex={1}
|
|
152
|
+
minHeight={0}
|
|
153
|
+
{...knobProps.gap}
|
|
154
|
+
>
|
|
155
|
+
{children}
|
|
156
|
+
<ChartDataList data={data} title={title} valueFormatter={valueFormatter} />
|
|
157
|
+
</YStack>
|
|
158
|
+
);
|
|
136
159
|
return (
|
|
137
160
|
<ChartDataView data={data} title={title} valueFormatter={valueFormatter}>
|
|
138
161
|
{({ action }) => (
|
|
139
|
-
<YStack
|
|
162
|
+
<YStack
|
|
163
|
+
minWidth={0}
|
|
164
|
+
width={width ?? "100%"}
|
|
165
|
+
maxWidth="100%"
|
|
166
|
+
{...(fill ? { flex: 1, minHeight: 0 } : null)}
|
|
167
|
+
{...knobProps.gap}
|
|
168
|
+
>
|
|
140
169
|
{children}
|
|
141
170
|
<XStack justifyContent="flex-end">{action}</XStack>
|
|
142
171
|
</YStack>
|
|
@@ -145,6 +174,58 @@ export function ChartDataFrame({
|
|
|
145
174
|
);
|
|
146
175
|
}
|
|
147
176
|
|
|
177
|
+
/**
|
|
178
|
+
* LC-215: a chart that fills its region stops at its aspect and gives the
|
|
179
|
+
* rest of the height to its own values, one row per datum, so the page never
|
|
180
|
+
* ends in an empty band (LC-173) and the data needs no separate action.
|
|
181
|
+
*/
|
|
182
|
+
function ChartDataList({
|
|
183
|
+
data,
|
|
184
|
+
title,
|
|
185
|
+
valueFormatter,
|
|
186
|
+
}: Pick<ChartDataViewProps, "data" | "title" | "valueFormatter">) {
|
|
187
|
+
const { t } = useTranslation();
|
|
188
|
+
const { knobProps } = useResolvedKnobs();
|
|
189
|
+
const format = valueFormatter ?? formatChartValue;
|
|
190
|
+
const rows = data.map((datum, index) =>
|
|
191
|
+
typeof datum === "number" ? { label: String(index + 1), value: datum } : datum,
|
|
192
|
+
);
|
|
193
|
+
const label = title ? `${title}: ${t("data")}` : t("Chart data");
|
|
194
|
+
return (
|
|
195
|
+
<ScrollView
|
|
196
|
+
flex={1}
|
|
197
|
+
minHeight={0}
|
|
198
|
+
{...(isWeb ? { "aria-label": label } : { accessibilityLabel: label })}
|
|
199
|
+
{...chartWebProps({ "data-mpo-chart-data-inline": "true" })}
|
|
200
|
+
>
|
|
201
|
+
{rows.map((datum, index) => (
|
|
202
|
+
<YStack key={index}>
|
|
203
|
+
{index > 0 ? <Separator /> : null}
|
|
204
|
+
<XStack
|
|
205
|
+
minHeight={44}
|
|
206
|
+
alignItems="center"
|
|
207
|
+
{...knobProps.gap}
|
|
208
|
+
{...chartWebProps({ "data-mpo-chart-data-row": String(index) })}
|
|
209
|
+
{...(!isWeb
|
|
210
|
+
? {
|
|
211
|
+
accessible: true,
|
|
212
|
+
accessibilityLabel: describeDatum({ datum, formatValue: format }),
|
|
213
|
+
}
|
|
214
|
+
: {})}
|
|
215
|
+
>
|
|
216
|
+
<Text flex={1} minWidth={0} {...knobProps.body}>
|
|
217
|
+
{datum.label}
|
|
218
|
+
</Text>
|
|
219
|
+
<Text tabular {...knobProps.body} color={knobProps.textRole.meta.color}>
|
|
220
|
+
{format(datum.value)}
|
|
221
|
+
</Text>
|
|
222
|
+
</XStack>
|
|
223
|
+
</YStack>
|
|
224
|
+
))}
|
|
225
|
+
</ScrollView>
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
|
|
148
229
|
export function useChartDataViewProps(): Record<string, unknown> {
|
|
149
230
|
const context = useContext(ChartDataContext);
|
|
150
231
|
if (!context) return {};
|
|
@@ -47,28 +47,37 @@ export function ChartSurface({
|
|
|
47
47
|
children,
|
|
48
48
|
...stackProps
|
|
49
49
|
}: ChartSurfaceProps) {
|
|
50
|
-
const
|
|
50
|
+
const fill = heightProp === "fill";
|
|
51
|
+
const fixedHeight = useChartHeight(heightProp, 200);
|
|
51
52
|
const dataViewProps = useChartDataViewProps();
|
|
52
53
|
const { motion, animationEnabled } = useChartTheme();
|
|
53
|
-
const [
|
|
54
|
-
const width = widthProp ??
|
|
54
|
+
const [measured, setMeasured] = useState({ width: 0, height: 0 });
|
|
55
|
+
const width = widthProp ?? measured.width;
|
|
56
|
+
const height = fill ? measured.height : fixedHeight;
|
|
57
|
+
// LC-215: a filled chart takes its region's height only up to its aspect,
|
|
58
|
+
// so a dozen bars never stand a phone screen tall or a desktop wide.
|
|
59
|
+
const fillCap = width > 0 ? Math.round(width * (width < 600 ? 0.9 : 0.5)) : undefined;
|
|
55
60
|
|
|
56
61
|
const handleLayout = useCallback((event: LayoutChangeEvent) => {
|
|
57
|
-
const
|
|
58
|
-
|
|
62
|
+
const { width: nextWidth, height: nextHeight } = event.nativeEvent.layout;
|
|
63
|
+
setMeasured((prev) =>
|
|
64
|
+
Math.abs(prev.width - nextWidth) >= 0.5 || Math.abs(prev.height - nextHeight) >= 0.5
|
|
65
|
+
? { width: nextWidth, height: nextHeight }
|
|
66
|
+
: prev,
|
|
67
|
+
);
|
|
59
68
|
}, []);
|
|
60
69
|
|
|
61
70
|
return (
|
|
62
71
|
<YStack
|
|
63
72
|
width="100%"
|
|
64
|
-
|
|
73
|
+
{...(fill ? { flex: 1, minHeight: 0, maxHeight: fillCap } : { height })}
|
|
65
74
|
overflow="hidden"
|
|
66
|
-
onLayout={widthProp === undefined ? handleLayout : undefined}
|
|
75
|
+
onLayout={widthProp === undefined || fill ? handleLayout : undefined}
|
|
67
76
|
{...transitionProps(motion)}
|
|
68
77
|
{...(animationEnabled ? { enterStyle: { opacity: 0, y: 6 } } : {})}
|
|
69
78
|
{...stackProps}
|
|
70
79
|
>
|
|
71
|
-
{width > 0 ? (
|
|
80
|
+
{width > 0 && height > 0 ? (
|
|
72
81
|
<Svg width={width} height={height} {...chartRootA11yProps(label, proof)} {...dataViewProps}>
|
|
73
82
|
{children({ width, height })}
|
|
74
83
|
</Svg>
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { getActiveScaleTokens, usePresetContext, type SizeKey } from "@multiplatform.one/theme";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/** `"fill"` flexes the chart to the height its region hands it (LC-215). */
|
|
4
|
+
export type ChartHeight = number | SizeKey | "fill";
|
|
4
5
|
|
|
5
6
|
export function useChartHeight(height: ChartHeight | undefined, fallback: number): number {
|
|
6
7
|
usePresetContext();
|
|
7
|
-
const value =
|
|
8
|
+
const value =
|
|
9
|
+
height === "fill"
|
|
10
|
+
? undefined
|
|
11
|
+
: typeof height === "string"
|
|
12
|
+
? getActiveScaleTokens().size[height]
|
|
13
|
+
: height;
|
|
8
14
|
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : fallback;
|
|
9
15
|
}
|
|
@@ -76,7 +76,8 @@ const X_LABEL_SLOT_GAP = 8;
|
|
|
76
76
|
/**
|
|
77
77
|
* Pick an evenly-strided subset of category labels that fits the plot width
|
|
78
78
|
* without overlap (LC-10 at phone widths): every label gets a slot sized by
|
|
79
|
-
* the widest label (capped), and the stride
|
|
79
|
+
* the widest label (capped), and the stride counts back from the last label
|
|
80
|
+
* so the latest category always keeps its label.
|
|
80
81
|
*/
|
|
81
82
|
export function thinCategories(labels: string[], plotWidth: number, fontSize: number): string[] {
|
|
82
83
|
if (labels.length <= 1 || plotWidth <= 0) return labels;
|
|
@@ -85,5 +86,5 @@ export function thinCategories(labels: string[], plotWidth: number, fontSize: nu
|
|
|
85
86
|
const capacity = Math.max(1, Math.floor(plotWidth / slot));
|
|
86
87
|
if (labels.length <= capacity) return labels;
|
|
87
88
|
const stride = Math.ceil(labels.length / capacity);
|
|
88
|
-
return labels.filter((_, index) => index % stride === 0);
|
|
89
|
+
return labels.filter((_, index) => (labels.length - 1 - index) % stride === 0);
|
|
89
90
|
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { ScrollView, Text, View, XStack, YStack, useTheme, type YStackProps } from "tamagui";
|
|
4
|
+
import { WarningIcon, XCircleIcon } from "@phosphor-icons/react";
|
|
5
|
+
|
|
6
|
+
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
7
|
+
|
|
8
|
+
export interface LogEntry {
|
|
9
|
+
/** Stable key; defaults to the entry's index. */
|
|
10
|
+
id?: string;
|
|
11
|
+
/** When it happened: an ISO string or a Date. Shown as HH:MM:SS. */
|
|
12
|
+
time: string | Date;
|
|
13
|
+
level?: LogLevel;
|
|
14
|
+
/** Who wrote it ("worker-2"), a short muted column. */
|
|
15
|
+
source?: string;
|
|
16
|
+
message: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface LogViewProps extends Omit<YStackProps, "children"> {
|
|
20
|
+
entries: readonly LogEntry[];
|
|
21
|
+
/** Names the log for assistive tech ("Sync worker log"). */
|
|
22
|
+
label: string;
|
|
23
|
+
/** Keep the newest entry in view as entries arrive. Default: true. */
|
|
24
|
+
follow?: boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const levelInk = { warn: "yellow11", error: "red11" } as const;
|
|
28
|
+
const levelGlyph = { warn: WarningIcon, error: XCircleIcon } as const;
|
|
29
|
+
|
|
30
|
+
function clockTime(time: string | Date): string {
|
|
31
|
+
const iso = typeof time === "string" ? time : time.toISOString();
|
|
32
|
+
return iso.match(/T(\d{2}:\d{2}:\d{2})/)?.[1] ?? iso;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A log or terminal stream (LC-215): one row per entry, the time and source
|
|
37
|
+
* in fixed muted columns and the message wrapping under itself, so the
|
|
38
|
+
* columns stay aligned at any width. At compact width the time, level and
|
|
39
|
+
* source sit on a line above the message, which then takes the full width.
|
|
40
|
+
* Only a warning or an error carries a mark: a glyph leading its message in
|
|
41
|
+
* the level's ink, never a word and never a dot between two values (LC-261).
|
|
42
|
+
* The log sits on the page ground and fills whatever
|
|
43
|
+
* region it is given; its first glyph sits on the page line.
|
|
44
|
+
*/
|
|
45
|
+
export function LogView({ entries, label, follow = true, ...rest }: LogViewProps) {
|
|
46
|
+
const { knobProps } = useResolvedKnobs({ component: "Screen" });
|
|
47
|
+
const compact = useLayoutSizeClass() === "compact";
|
|
48
|
+
const theme = useTheme();
|
|
49
|
+
const scroller = useRef<{ scrollToEnd?: (options?: { animated?: boolean }) => void } | null>(
|
|
50
|
+
null,
|
|
51
|
+
);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (follow) scroller.current?.scrollToEnd?.({ animated: false });
|
|
54
|
+
}, [entries, follow]);
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<YStack flex={1} minHeight={0} data-log-view="" role="log" aria-label={label} {...rest}>
|
|
58
|
+
<ScrollView ref={scroller as never} flex={1} keyboardShouldPersistTaps="handled">
|
|
59
|
+
<YStack
|
|
60
|
+
{...knobProps.panelPadding}
|
|
61
|
+
{...(compact ? null : { paddingHorizontal: 0 })}
|
|
62
|
+
gap={compact ? "$3" : "$1"}
|
|
63
|
+
>
|
|
64
|
+
{entries.map((entry, index) => {
|
|
65
|
+
const level = entry.level === "warn" || entry.level === "error" ? entry.level : null;
|
|
66
|
+
const ink = level ? (`$${levelInk[level]}` as const) : "$color12";
|
|
67
|
+
const Glyph = level ? levelGlyph[level] : null;
|
|
68
|
+
const meta = (
|
|
69
|
+
<>
|
|
70
|
+
<Text fontFamily="$mono" fontSize="$3" color="$color10" flexShrink={0}>
|
|
71
|
+
{clockTime(entry.time)}
|
|
72
|
+
</Text>
|
|
73
|
+
{entry.source ? (
|
|
74
|
+
<Text
|
|
75
|
+
fontFamily="$mono"
|
|
76
|
+
fontSize="$3"
|
|
77
|
+
color="$color10"
|
|
78
|
+
flexShrink={0}
|
|
79
|
+
numberOfLines={1}
|
|
80
|
+
>
|
|
81
|
+
{entry.source}
|
|
82
|
+
</Text>
|
|
83
|
+
) : null}
|
|
84
|
+
</>
|
|
85
|
+
);
|
|
86
|
+
const message = (
|
|
87
|
+
<XStack
|
|
88
|
+
gap="$1.5"
|
|
89
|
+
alignItems="flex-start"
|
|
90
|
+
flex={compact ? undefined : 1}
|
|
91
|
+
minWidth={0}
|
|
92
|
+
>
|
|
93
|
+
{Glyph ? (
|
|
94
|
+
<View height="$1" justifyContent="center" flexShrink={0} aria-hidden>
|
|
95
|
+
<Glyph
|
|
96
|
+
size={14}
|
|
97
|
+
weight="bold"
|
|
98
|
+
color={
|
|
99
|
+
level ? (theme[levelInk[level]]?.get() as string | undefined) : undefined
|
|
100
|
+
}
|
|
101
|
+
/>
|
|
102
|
+
</View>
|
|
103
|
+
) : null}
|
|
104
|
+
<Text fontFamily="$mono" fontSize="$3" color={ink} flex={1} minWidth={0}>
|
|
105
|
+
{entry.message}
|
|
106
|
+
</Text>
|
|
107
|
+
</XStack>
|
|
108
|
+
);
|
|
109
|
+
return compact ? (
|
|
110
|
+
<YStack key={entry.id ?? index} data-log-entry="">
|
|
111
|
+
<XStack gap="$2" alignItems="center">
|
|
112
|
+
{meta}
|
|
113
|
+
</XStack>
|
|
114
|
+
{message}
|
|
115
|
+
</YStack>
|
|
116
|
+
) : (
|
|
117
|
+
<XStack key={entry.id ?? index} gap="$3" alignItems="flex-start" data-log-entry="">
|
|
118
|
+
{meta}
|
|
119
|
+
{message}
|
|
120
|
+
</XStack>
|
|
121
|
+
);
|
|
122
|
+
})}
|
|
123
|
+
</YStack>
|
|
124
|
+
</ScrollView>
|
|
125
|
+
</YStack>
|
|
126
|
+
);
|
|
127
|
+
}
|
package/src/code/index.ts
CHANGED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
2
|
+
import { DownloadSimpleIcon, PauseIcon, type IconProps } from "@phosphor-icons/react";
|
|
3
|
+
import { Button } from "@multiplatform.one/forms";
|
|
4
|
+
import { BarChart } from "../charts/BarChart";
|
|
5
|
+
import { LogView, type LogEntry } from "../code/LogView";
|
|
6
|
+
import { DensePageLayout } from "./PageTemplates";
|
|
7
|
+
import { StatusDot } from "./StatusDot";
|
|
8
|
+
|
|
9
|
+
const PauseFillIcon = (props: IconProps) => <PauseIcon weight="fill" {...props} />;
|
|
10
|
+
|
|
11
|
+
const tables = ["customers", "orders", "invoices", "payments", "shipments", "returns"];
|
|
12
|
+
|
|
13
|
+
const logEntries: LogEntry[] = Array.from({ length: 64 }, (_, index) => {
|
|
14
|
+
const second = 7 + index * 13;
|
|
15
|
+
const time = `2026-10-29T14:${String(Math.floor(second / 60) % 60).padStart(2, "0")}:${String(second % 60).padStart(2, "0")}Z`;
|
|
16
|
+
const table = tables[index % tables.length];
|
|
17
|
+
if (index % 17 === 11)
|
|
18
|
+
return {
|
|
19
|
+
time,
|
|
20
|
+
level: "error",
|
|
21
|
+
source: `worker-${index % 4}`,
|
|
22
|
+
message: `push ${table} failed: 409 conflict on row ${1200 + index}, retrying in 4s`,
|
|
23
|
+
};
|
|
24
|
+
if (index % 9 === 4)
|
|
25
|
+
return {
|
|
26
|
+
time,
|
|
27
|
+
level: "warn",
|
|
28
|
+
source: `worker-${index % 4}`,
|
|
29
|
+
message: `${table} lagging 38s behind the primary`,
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
time,
|
|
33
|
+
level: "info",
|
|
34
|
+
source: `worker-${index % 4}`,
|
|
35
|
+
message: `synced ${table}: ${(index * 37) % 400} rows in ${120 + ((index * 53) % 900)} ms`,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const weeks = [42, 57, 49, 63, 71, 66, 80, 74, 88, 92, 85, 97];
|
|
40
|
+
const deploys = weeks.map((value, index) => ({ label: `W${index + 31}`, value }));
|
|
41
|
+
|
|
42
|
+
const meta: Meta<typeof DensePageLayout> = {
|
|
43
|
+
title: "Components/DenseContent",
|
|
44
|
+
component: DensePageLayout,
|
|
45
|
+
parameters: {
|
|
46
|
+
status: { type: "beta" },
|
|
47
|
+
layout: "fullscreen",
|
|
48
|
+
docs: {
|
|
49
|
+
description: {
|
|
50
|
+
component:
|
|
51
|
+
"LC-215 DENSE-CONTENT-BLEEDS: a page whose content is a log, terminal or chart keeps its head (title, live status, icon actions) and gives the rest of the height to the surface. On a phone the surface bleeds to both screen edges; from `medium` up it stays in the page column at the measure its content reads at: the page column for a log, the readable `expanded` measure for a chart.",
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
export default meta;
|
|
57
|
+
|
|
58
|
+
type Story = StoryObj<typeof DensePageLayout>;
|
|
59
|
+
|
|
60
|
+
export const Log: Story = {
|
|
61
|
+
render: () => (
|
|
62
|
+
<DensePageLayout
|
|
63
|
+
kind="log"
|
|
64
|
+
title="Sync worker"
|
|
65
|
+
status={<StatusDot tone="positive">Running</StatusDot>}
|
|
66
|
+
actions={
|
|
67
|
+
<>
|
|
68
|
+
<Button circular chromeless icon={PauseFillIcon} aria-label="Pause the stream" />
|
|
69
|
+
<Button circular chromeless icon={DownloadSimpleIcon} aria-label="Download the log" />
|
|
70
|
+
</>
|
|
71
|
+
}
|
|
72
|
+
>
|
|
73
|
+
<LogView label="Sync worker log" entries={logEntries} />
|
|
74
|
+
</DensePageLayout>
|
|
75
|
+
),
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const Chart: Story = {
|
|
79
|
+
render: () => (
|
|
80
|
+
<DensePageLayout
|
|
81
|
+
kind="chart"
|
|
82
|
+
measure="readable"
|
|
83
|
+
gutter
|
|
84
|
+
title="Deploys"
|
|
85
|
+
subtitle="Last 12 weeks"
|
|
86
|
+
actions={
|
|
87
|
+
<Button circular chromeless icon={DownloadSimpleIcon} aria-label="Download the data" />
|
|
88
|
+
}
|
|
89
|
+
>
|
|
90
|
+
<BarChart data={deploys} height="fill" title="Deploys per week" />
|
|
91
|
+
</DensePageLayout>
|
|
92
|
+
),
|
|
93
|
+
};
|
|
@@ -315,3 +315,93 @@ export function SettingsPageLayout({
|
|
|
315
315
|
</Screen>
|
|
316
316
|
);
|
|
317
317
|
}
|
|
318
|
+
|
|
319
|
+
// ── DensePageLayout ────────────────────────────────────────────────────────
|
|
320
|
+
|
|
321
|
+
export interface DensePageLayoutProps
|
|
322
|
+
extends Omit<ScreenProps, "scroll" | "bleed" | "noPadding">, TemplateHeaderProps {
|
|
323
|
+
/** The live state beside the title (a `StatusDot`). */
|
|
324
|
+
status?: ReactNode;
|
|
325
|
+
/**
|
|
326
|
+
* The column the dense region keeps at regular width: `"wide"` (a log or
|
|
327
|
+
* terminal, the page column) or `"readable"` (a chart, the `expanded`
|
|
328
|
+
* measure, so a dozen bars never stretch across a desktop).
|
|
329
|
+
*/
|
|
330
|
+
measure?: "wide" | "readable";
|
|
331
|
+
/** Names the dense region (`data-dense-surface`), e.g. "log" or "chart". */
|
|
332
|
+
kind?: string;
|
|
333
|
+
/**
|
|
334
|
+
* Keep the page gutter inside the region on a phone. A chart takes it so its
|
|
335
|
+
* axis labels sit on the page line; a `LogView` pads its own text.
|
|
336
|
+
*/
|
|
337
|
+
gutter?: boolean;
|
|
338
|
+
children: ReactNode;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* A page whose content is one dense surface: a log, a terminal or a chart
|
|
343
|
+
* (LC-215). The page keeps its head (title, live status, icon actions) and
|
|
344
|
+
* the surface takes the rest of the height. On a phone the surface bleeds to
|
|
345
|
+
* both screen edges; from `medium` up it stays in the page column, rounded
|
|
346
|
+
* as the page's one surface, at the measure its content reads at.
|
|
347
|
+
*/
|
|
348
|
+
export function DensePageLayout({
|
|
349
|
+
title,
|
|
350
|
+
subtitle,
|
|
351
|
+
status,
|
|
352
|
+
actions,
|
|
353
|
+
header,
|
|
354
|
+
nav,
|
|
355
|
+
measure = "wide",
|
|
356
|
+
kind,
|
|
357
|
+
gutter = false,
|
|
358
|
+
maxWidth,
|
|
359
|
+
children,
|
|
360
|
+
...rest
|
|
361
|
+
}: DensePageLayoutProps) {
|
|
362
|
+
const compact = useLayoutSizeClass() === "compact";
|
|
363
|
+
const { knobProps } = useResolvedKnobs({ component: "Screen" });
|
|
364
|
+
const head =
|
|
365
|
+
header !== undefined ? (
|
|
366
|
+
header
|
|
367
|
+
) : title || subtitle || actions || nav || status ? (
|
|
368
|
+
<PageHeader title={title} subtitle={subtitle} status={status} actions={actions} nav={nav} />
|
|
369
|
+
) : null;
|
|
370
|
+
const region = (
|
|
371
|
+
<YStack
|
|
372
|
+
flex={1}
|
|
373
|
+
minHeight={0}
|
|
374
|
+
minWidth={0}
|
|
375
|
+
data-dense-surface={kind}
|
|
376
|
+
{...(compact
|
|
377
|
+
? gutter
|
|
378
|
+
? { paddingHorizontal: knobProps.panelPadding.padding as "$4" }
|
|
379
|
+
: null
|
|
380
|
+
: { ...knobProps.containerRadius, overflow: "hidden" })}
|
|
381
|
+
>
|
|
382
|
+
{children}
|
|
383
|
+
</YStack>
|
|
384
|
+
);
|
|
385
|
+
if (compact)
|
|
386
|
+
return (
|
|
387
|
+
<Screen data-canonical="dense-page" scroll={false} bleed noPadding {...rest}>
|
|
388
|
+
{head ? (
|
|
389
|
+
<YStack {...knobProps.panelPadding} paddingBottom={0}>
|
|
390
|
+
{head}
|
|
391
|
+
</YStack>
|
|
392
|
+
) : null}
|
|
393
|
+
{region}
|
|
394
|
+
</Screen>
|
|
395
|
+
);
|
|
396
|
+
return (
|
|
397
|
+
<Screen
|
|
398
|
+
data-canonical="dense-page"
|
|
399
|
+
scroll={false}
|
|
400
|
+
maxWidth={maxWidth ?? (measure === "readable" ? layoutBreakpoints.expanded : undefined)}
|
|
401
|
+
{...rest}
|
|
402
|
+
>
|
|
403
|
+
{head}
|
|
404
|
+
{region}
|
|
405
|
+
</Screen>
|
|
406
|
+
);
|
|
407
|
+
}
|
package/src/views/ImageGrid.tsx
CHANGED
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
XStack,
|
|
31
31
|
YStack,
|
|
32
32
|
getTokenValue,
|
|
33
|
+
isWeb,
|
|
33
34
|
useWindowDimensions,
|
|
34
35
|
type YStackProps,
|
|
35
36
|
} from "tamagui";
|
|
@@ -251,6 +252,7 @@ function ImageGridTile({
|
|
|
251
252
|
data-focused={isFocused || undefined}
|
|
252
253
|
data-media-tile="image-grid"
|
|
253
254
|
position="relative"
|
|
255
|
+
flexGrow={1}
|
|
254
256
|
{...radiusFragment}
|
|
255
257
|
borderWidth={0}
|
|
256
258
|
cursor={clickable ? "pointer" : undefined}
|
|
@@ -264,8 +266,23 @@ function ImageGridTile({
|
|
|
264
266
|
onPress={onPress}
|
|
265
267
|
>
|
|
266
268
|
{/* Clip media to the radius; keep overflow off the ring node so
|
|
267
|
-
LC-71 outline is not severed (same split as Input.Box).
|
|
268
|
-
|
|
269
|
+
LC-71 outline is not severed (same split as Input.Box).
|
|
270
|
+
LC-179: every tile takes its row's height. On web the clip is a
|
|
271
|
+
one-cell grid so a card drawn inside stretches to that height. */}
|
|
272
|
+
<View
|
|
273
|
+
borderRadius={radius}
|
|
274
|
+
overflow="hidden"
|
|
275
|
+
flexGrow={1}
|
|
276
|
+
{...(isWeb
|
|
277
|
+
? {
|
|
278
|
+
style: {
|
|
279
|
+
display: "grid",
|
|
280
|
+
gridTemplateColumns: "minmax(0, 1fr)",
|
|
281
|
+
justifyItems: "stretch",
|
|
282
|
+
},
|
|
283
|
+
}
|
|
284
|
+
: undefined)}
|
|
285
|
+
>
|
|
269
286
|
<MediaRadiusContext.Provider value={radius}>{children}</MediaRadiusContext.Provider>
|
|
270
287
|
</View>
|
|
271
288
|
{hovered && !showRing ? (
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SheetModal/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SheetModal/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AASjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAkCD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EAAE,aAAa,EACrB,aAAa,EACb,SAAS,EACT,UAAU,EACV,IAAY,GACb,EAAE,eAAe,2CAyGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/SheetModal/index.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/SheetModal/index.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgDH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwB/C,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EAAE,aAAa,EACrB,aAAa,EACb,SAAS,EACT,UAAU,EACV,IAAY,GACb,EAAE,eAAe,2CAgdjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/appShell/AppShell.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAepF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,uEAAuE;IACvE,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,iGAAiG;IACjG,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,wEAAwE;AACxE,wBAAgB,aAAa,CAC3B,YAAY,EAAE,SAAS,mBAAmB,EAAE,EAC5C,IAAI,EAAE,MAAM,GACX;IAAE,WAAW,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAQnE;AAiKD,wBAAgB,QAAQ,CAAC,EACvB,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAc,EACd,QAAQ,EACR,MAAoB,GACrB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/appShell/AppShell.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAepF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,uEAAuE;IACvE,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,iGAAiG;IACjG,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,wEAAwE;AACxE,wBAAgB,aAAa,CAC3B,YAAY,EAAE,SAAS,mBAAmB,EAAE,EAC5C,IAAI,EAAE,MAAM,GACX;IAAE,WAAW,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAQnE;AAiKD,wBAAgB,QAAQ,CAAC,EACvB,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAc,EACd,QAAQ,EACR,MAAoB,GACrB,EAAE,aAAa,2CAiQf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabHost.native.d.ts","sourceRoot":"","sources":["../../src/appShell/TabHost.native.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"TabHost.native.d.ts","sourceRoot":"","sources":["../../src/appShell/TabHost.native.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,cAAc,CAAC;AAI7E,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7D,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,2CAA4C,CAAC;AAE9E,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAC3E,KAAK,QAAQ,GAAG;IAAE,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAElF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGjE,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,CAAC;QAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,sCAAsC,CAAC,EAAE,OAAO,CAAC;QACjD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;YAAE,WAAW,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,IAAI,CAAC;KAC5E,CAAC,CAAC;IACH,MAAM,EAAE,aAAa,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,YAAY,CAAC,EAAE;YAAE,IAAI,EAAE,UAAU,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAClD,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gDAAgD,CAAC,EAAE,OAAO,CAAC;KAC5D,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,OAAO,EAAE,MAAM;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;CACtC;AAOD,yFAAyF;AACzF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAuB,GACjE,UAAU,GAAG,IAAI,CASnB;AASD,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,EAAE,SAAQ,GAAG,OAAO,CAItF;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAMxD;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,GACT,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,2CA0DrC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAI1C"}
|
|
@@ -9,7 +9,17 @@
|
|
|
9
9
|
import { type ReactNode } from "react";
|
|
10
10
|
/** Publish (or with null, withdraw) one floating bar's covered height. */
|
|
11
11
|
export declare function setBottomChromeInset(id: symbol, next: number | null): void;
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* A region whose frame already ends above the bottom chrome, so nothing in it
|
|
14
|
+
* pads by the inset again.
|
|
15
|
+
*/
|
|
16
|
+
export declare function BottomChromeCleared({ children }: {
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
}): import("react").FunctionComponentElement<import("react").ProviderProps<boolean>>;
|
|
19
|
+
/**
|
|
20
|
+
* Points of screen the bottom chrome covers; 0 when no floating tab bar is
|
|
21
|
+
* mounted, or inside a `BottomChromeCleared` region.
|
|
22
|
+
*/
|
|
13
23
|
export declare function useBottomChromeInset(): number;
|
|
14
24
|
/** Publish (or with null, withdraw) a page's bottom accessory. The latest wins. */
|
|
15
25
|
export declare function setBottomAccessory(id: symbol, node: ReactNode | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomChrome.d.ts","sourceRoot":"","sources":["../../src/appShell/bottomChrome.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"bottomChrome.d.ts","sourceRoot":"","sources":["../../src/appShell/bottomChrome.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAGL,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AA4Bf,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,QAEnE;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,oFAEzE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAKD,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,QAEpE;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,IAAI,SAAS,CAE9C;AAED,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAEjE;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
|
@@ -3,7 +3,7 @@ import type { YStackProps } from "tamagui";
|
|
|
3
3
|
import type { ChartDatum, ChartDatumEvents } from "./types";
|
|
4
4
|
export interface BarChartProps extends ChartDatumEvents, Omit<YStackProps, "children" | "width" | "height"> {
|
|
5
5
|
data: ChartDatum[];
|
|
6
|
-
/** Drawing height as a theme size token or
|
|
6
|
+
/** Drawing height as a theme size token, pixels, or "fill" (default 200). */
|
|
7
7
|
height?: ChartHeight;
|
|
8
8
|
/** Explicit width bypasses responsive measurement. */
|
|
9
9
|
width?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../src/charts/BarChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAc3C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,WAAW,aACf,SAAQ,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5E,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../src/charts/BarChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAc3C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,WAAW,aACf,SAAQ,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5E,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAY,EACZ,KAAK,EACL,WAAmB,EACnB,KAAK,EACL,MAAM,EACN,SAAgB,EAChB,SAAgB,EAChB,QAAe,EACf,MAAU,EACV,cAAc,EACd,KAAK,EACL,KAAK,EACL,MAAM,EAAE,UAAU,EAClB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,GAAG,UAAU,EACd,EAAE,aAAa,2CAmGf"}
|