@multiplatform.one/components 7.81.2 → 7.82.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/CheckGlyph/MenuCheckColumn.native.js.map +1 -1
- package/dist/cjs/CheckGlyph/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.native.js.map +1 -1
- package/dist/cjs/Diff/index.native.js.map +1 -1
- package/dist/cjs/DotIndicator/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/index.native.js.map +1 -1
- package/dist/cjs/DropdownMenu/menuSettle.native.js.map +1 -1
- package/dist/cjs/ElapsedProgress/index.native.js.map +1 -1
- package/dist/cjs/ErrorBoundary/index.native.js.map +1 -1
- package/dist/cjs/Heading.native.js.map +1 -1
- package/dist/cjs/Kbd/index.native.js.map +1 -1
- package/dist/cjs/Kbd/keys.native.js.map +1 -1
- package/dist/cjs/Lightbox/MediaControl.native.js.map +1 -1
- package/dist/cjs/Lightbox/index.gnome.native.js.map +1 -1
- package/dist/cjs/Lightbox/index.native.js +1 -1
- package/dist/cjs/Lightbox/shared.native.js.map +1 -1
- package/dist/cjs/Lightbox/useLightbox.native.js.map +1 -1
- package/dist/cjs/MachineLiteral/index.native.js.map +1 -1
- package/dist/cjs/Material/index.native.js.map +1 -1
- package/dist/cjs/Meter/index.native.js +1 -1
- package/dist/cjs/Meter/index.native.js.map +1 -1
- package/dist/cjs/Meter/meter.native.js.map +1 -1
- package/dist/cjs/OverflowRow/index.native.js +1 -1
- package/dist/cjs/OverflowRow/index.native.js.map +1 -1
- package/dist/cjs/Pagination.native.js +1 -1
- package/dist/cjs/Pagination.native.js.map +1 -1
- package/dist/cjs/Popover.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.native.js.map +1 -1
- package/dist/cjs/SortableList/useSortableRows.native.js.map +1 -1
- package/dist/cjs/SortableList/useUserOrder.native.js.map +1 -1
- package/dist/cjs/Tabs/index.native.js +1 -1
- package/dist/cjs/Tabs/index.native.js.map +1 -1
- package/dist/cjs/Text.native.js.map +1 -1
- package/dist/cjs/ThemePresetPicker/index.native.js +2 -2
- package/dist/cjs/ThemePresetPicker/index.native.js.map +1 -1
- package/dist/cjs/Toast/index.native.js.map +1 -1
- package/dist/cjs/Toast/store.native.js.map +1 -1
- package/dist/cjs/Tooltip/nativePress.native.js.map +1 -1
- package/dist/cjs/Tooltip/tooltipShared.native.js.map +1 -1
- package/dist/cjs/TreeSelect/index.native.js +2 -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.native.js +1 -1
- package/dist/cjs/appShell/AppShell.native.js.map +1 -1
- package/dist/cjs/appShell/Dock.native.js.map +1 -1
- package/dist/cjs/appShell/MpoTabHost.native.js.map +1 -1
- package/dist/cjs/appShell/ScopeMenu.native.js +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.native.js +1 -1
- 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.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 +2 -2
- package/dist/cjs/charts/ChartDataView.native.js.map +1 -1
- package/dist/cjs/charts/ChartSurface.native.js.map +1 -1
- package/dist/cjs/charts/LineChart.native.js.map +1 -1
- package/dist/cjs/charts/PieChart.native.js.map +1 -1
- package/dist/cjs/charts/Sparkline.native.js.map +1 -1
- package/dist/cjs/charts/accessibility.native.js.map +1 -1
- package/dist/cjs/charts/chartHeight.native.js.map +1 -1
- package/dist/cjs/charts/composeChart.native.js.map +1 -1
- package/dist/cjs/charts/index.native.js.map +1 -1
- package/dist/cjs/charts/math.native.js.map +1 -1
- package/dist/cjs/charts/series.native.js.map +1 -1
- package/dist/cjs/charts/svg.native.js.map +1 -1
- package/dist/cjs/charts/types.native.js.map +1 -1
- package/dist/cjs/charts/useChartTheme.native.js.map +1 -1
- package/dist/cjs/code/Code/index.native.js.map +1 -1
- package/dist/cjs/code/CodeBlock/index.cjs +38 -31
- package/dist/cjs/code/CodeBlock/index.native.js +45 -38
- 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/LogView.native.js.map +1 -1
- package/dist/cjs/code/Pre/index.native.js.map +1 -1
- package/dist/cjs/code/index.native.js +5 -5
- package/dist/cjs/code/index.native.js.map +1 -1
- package/dist/cjs/componentColors.native.js.map +1 -1
- package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/cjs/feedback/NotifyHost.native.js +2 -2
- package/dist/cjs/feedback/NotifyHost.native.js.map +1 -1
- package/dist/cjs/feedback/copy.native.js.map +1 -1
- package/dist/cjs/feedback/index.native.js.map +1 -1
- package/dist/cjs/feedback/notify.native.js.map +1 -1
- package/dist/cjs/feedback/route.native.js.map +1 -1
- package/dist/cjs/feedback/store.native.js.map +1 -1
- package/dist/cjs/formLayouts/FormLayouts.native.js +1 -1
- package/dist/cjs/formLayouts/FormLayouts.native.js.map +1 -1
- package/dist/cjs/formLayouts/PreferencePanel.native.js +2 -2
- package/dist/cjs/formLayouts/PreferencePanel.native.js.map +1 -1
- package/dist/cjs/formLayouts/index.native.js.map +1 -1
- package/dist/cjs/hooks/index.native.js +1 -1
- package/dist/cjs/hooks/index.native.js.map +1 -1
- package/dist/cjs/hooks/useClipboard.native.js.map +1 -1
- package/dist/cjs/hooks/useDocumentTitle.native.js.map +1 -1
- package/dist/cjs/hooks/useHoldCue.native.js.map +1 -1
- package/dist/cjs/icons/CheckRegular.native.js.map +1 -1
- package/dist/cjs/icons/MinusRegular.native.js.map +1 -1
- package/dist/cjs/icons/index.native.js.map +1 -1
- package/dist/cjs/icons/lucide.native.js.map +1 -1
- package/dist/cjs/icons/themed.native.js.map +1 -1
- package/dist/cjs/images/Image/ImageFrame.native.js +1 -1
- package/dist/cjs/images/Image/ImageFrame.native.js.map +1 -1
- package/dist/cjs/images/Image/framing.native.js.map +1 -1
- package/dist/cjs/images/Image/index.native.js +1 -1
- package/dist/cjs/images/Image/mediaRadius.native.js.map +1 -1
- package/dist/cjs/images/Image/shared.native.js +1 -1
- package/dist/cjs/images/Image/shared.native.js.map +1 -1
- package/dist/cjs/images/Image/types.native.js.map +1 -1
- package/dist/cjs/images/index.native.js.map +1 -1
- package/dist/cjs/index.native.js +39 -39
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/knobImmuneExports.native.js.map +1 -1
- package/dist/cjs/layouts/AsyncBoundary.native.js +2 -2
- package/dist/cjs/layouts/AsyncBoundary.native.js.map +1 -1
- package/dist/cjs/layouts/Debug/index.native.js.map +1 -1
- package/dist/cjs/layouts/EmptyState.cjs +9 -43
- package/dist/cjs/layouts/EmptyState.native.js +9 -45
- 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/barTitleSpan.cjs +54 -0
- package/dist/cjs/layouts/barTitleSpan.native.js +78 -0
- package/dist/cjs/layouts/barTitleSpan.native.js.map +1 -0
- 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 +130 -41
- package/dist/cjs/layouts/page.native.js +145 -47
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/pageHeadingScope.native.js.map +1 -1
- package/dist/cjs/layouts/screenScroll.native.js.map +1 -1
- package/dist/cjs/layouts/shellSidebarSlot.native.js.map +1 -1
- package/dist/cjs/layouts/sidebar.native.js +1 -1
- package/dist/cjs/layouts/sidebar.native.js.map +1 -1
- package/dist/cjs/layouts/tags.native.js +2 -2
- package/dist/cjs/layouts/tags.native.js.map +1 -1
- package/dist/cjs/layouts/timeline.native.js +2 -2
- package/dist/cjs/layouts/timeline.native.js.map +1 -1
- package/dist/cjs/layouts/toolbar.native.js +1 -1
- package/dist/cjs/layouts/toolbar.native.js.map +1 -1
- package/dist/cjs/shared/actionScan.native.js.map +1 -1
- package/dist/cjs/shared/i18n.native.js.map +1 -1
- package/dist/cjs/shared/restoreRetries.native.js.map +1 -1
- package/dist/cjs/shared/t.native.js.map +1 -1
- package/dist/cjs/shared/textRidesText.native.js.map +1 -1
- package/dist/cjs/shared/useReturnFocusOnClose.native.js.map +1 -1
- package/dist/cjs/surfaces.native.js +1 -1
- package/dist/cjs/surfaces.native.js.map +1 -1
- package/dist/cjs/tamagui.native.js +1 -1
- package/dist/cjs/tamagui.native.js.map +1 -1
- package/dist/cjs/testSetup.native.js.map +1 -1
- package/dist/cjs/utils/setTinted.native.js.map +1 -1
- package/dist/cjs/utils/unwrapText.native.js.map +1 -1
- package/dist/cjs/views/Calendar.native.js +1 -1
- package/dist/cjs/views/Calendar.native.js.map +1 -1
- package/dist/cjs/views/Dashboard.native.js +2 -2
- package/dist/cjs/views/Dashboard.native.js.map +1 -1
- package/dist/cjs/views/Gantt.native.js +2 -2
- package/dist/cjs/views/Gantt.native.js.map +1 -1
- package/dist/cjs/views/GanttDateGrip.native.js.map +1 -1
- package/dist/cjs/views/ImageGrid.native.js +2 -2
- package/dist/cjs/views/ImageGrid.native.js.map +1 -1
- package/dist/cjs/views/Kanban.native.js +1 -1
- package/dist/cjs/views/List.native.js.map +1 -1
- package/dist/cjs/views/ListGroup.native.js.map +1 -1
- package/dist/cjs/views/ListRow.native.js.map +1 -1
- package/dist/cjs/views/Matrix.native.js +2 -2
- package/dist/cjs/views/Matrix.native.js.map +1 -1
- package/dist/cjs/views/ReportBuilder.native.js +2 -2
- package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
- package/dist/cjs/views/ShortcutCard.native.js.map +1 -1
- package/dist/cjs/views/TreeView.native.js.map +1 -1
- package/dist/cjs/views/calendarMath.native.js.map +1 -1
- package/dist/cjs/views/ganttIntervals.native.js.map +1 -1
- package/dist/cjs/views/ganttMath.native.js.map +1 -1
- package/dist/cjs/views/index.native.js +1 -1
- package/dist/cjs/views/index.native.js.map +1 -1
- package/dist/cjs/views/kanbanDnd.native.js.map +1 -1
- package/dist/cjs/views/matrixMath.native.js.map +1 -1
- package/dist/cjs/views/sameNameScope.native.js.map +1 -1
- package/dist/cjs/views/treeViewDnd.native.js.map +1 -1
- package/dist/cjs/views/treeViewLayout.native.js.map +1 -1
- package/dist/cjs/views/treeViewMotion.native.js.map +1 -1
- package/dist/cjs/views/treeViewReveal.native.js.map +1 -1
- package/dist/cjs/views/usePageFlowLoadMore.native.js.map +1 -1
- package/dist/cjs/views/widgetChrome.native.js.map +1 -1
- package/dist/esm/code/CodeBlock/index.mjs +39 -32
- package/dist/esm/code/CodeBlock/index.mjs.map +1 -1
- package/dist/esm/code/CodeBlock/index.native.js +39 -32
- package/dist/esm/code/CodeBlock/index.native.js.map +1 -1
- package/dist/esm/layouts/EmptyState.mjs +9 -43
- package/dist/esm/layouts/EmptyState.mjs.map +1 -1
- package/dist/esm/layouts/EmptyState.native.js +9 -45
- package/dist/esm/layouts/EmptyState.native.js.map +1 -1
- package/dist/esm/layouts/barTitleSpan.mjs +27 -0
- package/dist/esm/layouts/barTitleSpan.mjs.map +1 -0
- package/dist/esm/layouts/barTitleSpan.native.js +48 -0
- package/dist/esm/layouts/barTitleSpan.native.js.map +1 -0
- package/dist/esm/layouts/page.mjs +132 -43
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +145 -47
- package/dist/esm/layouts/page.native.js.map +1 -1
- package/dist/jsx/code/CodeBlock/index.mjs +39 -32
- package/dist/jsx/code/CodeBlock/index.mjs.map +1 -1
- package/dist/jsx/code/CodeBlock/index.native.js +38 -31
- package/dist/jsx/code/CodeBlock/index.native.js.map +1 -1
- package/dist/jsx/layouts/EmptyState.mjs +9 -43
- package/dist/jsx/layouts/EmptyState.mjs.map +1 -1
- package/dist/jsx/layouts/EmptyState.native.js +9 -45
- package/dist/jsx/layouts/EmptyState.native.js.map +1 -1
- package/dist/jsx/layouts/barTitleSpan.mjs +27 -0
- package/dist/jsx/layouts/barTitleSpan.mjs.map +1 -0
- package/dist/jsx/layouts/barTitleSpan.native.js +78 -0
- package/dist/jsx/layouts/barTitleSpan.native.js.map +1 -0
- package/dist/jsx/layouts/page.mjs +132 -43
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +143 -45
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/package.json +9 -9
- package/src/code/CodeBlock/CodeBlock.copy.spec.tsx +13 -0
- package/src/code/CodeBlock/index.tsx +46 -30
- package/src/layouts/EmptyState.spec.tsx +2 -0
- package/src/layouts/EmptyState.tsx +6 -39
- package/src/layouts/PageHeader.stories.tsx +238 -38
- package/src/layouts/barTitleSpan.spec.ts +35 -0
- package/src/layouts/barTitleSpan.ts +44 -0
- package/src/layouts/glyphCentre.spec.tsx +218 -0
- package/src/layouts/navBar.spec.tsx +58 -2
- package/src/layouts/page.tsx +126 -34
- package/types/code/CodeBlock/index.d.ts.map +1 -1
- package/types/layouts/EmptyState.d.ts.map +1 -1
- package/types/layouts/barTitleSpan.d.ts +29 -0
- package/types/layouts/barTitleSpan.d.ts.map +1 -0
- package/types/layouts/page.d.ts +6 -1
- package/types/layouts/page.d.ts.map +1 -1
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
* jsdom has no layout: the large title's geometry is stubbed through
|
|
9
9
|
* getBoundingClientRect, and scrolling sets scrollTop on the scroll element.
|
|
10
10
|
*/
|
|
11
|
-
import { ICON_BUTTON_GLYPH_PX } from "@multiplatform.one/forms";
|
|
11
|
+
import { ICON_BUTTON_GLYPH_PX, IconButton } from "@multiplatform.one/forms";
|
|
12
12
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
13
13
|
import { Preset, useGlyphTintOnSurface } from "@multiplatform.one/theme";
|
|
14
|
-
import { SlidersHorizontalIcon } from "@phosphor-icons/react";
|
|
14
|
+
import { PlusIcon, SlidersHorizontalIcon } from "@phosphor-icons/react";
|
|
15
15
|
import { act, cleanup, fireEvent, screen } from "@testing-library/react";
|
|
16
16
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
17
17
|
import {
|
|
@@ -269,3 +269,59 @@ describe("bar glyphs carry their weight (LC-176)", () => {
|
|
|
269
269
|
expect(screen.getByLabelText("Back").closest("[data-mp-icon-button-group]")).toBeNull();
|
|
270
270
|
});
|
|
271
271
|
});
|
|
272
|
+
|
|
273
|
+
const IPHONE =
|
|
274
|
+
"Mozilla/5.0 (iPhone; CPU iPhone OS 26_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1";
|
|
275
|
+
|
|
276
|
+
describe("inline bar title and glyphs on glass (FZ-8442)", () => {
|
|
277
|
+
afterEach(() => vi.unstubAllGlobals());
|
|
278
|
+
|
|
279
|
+
it("a title is centred in the flow toolbar and shown at rest, clear of the back control", () => {
|
|
280
|
+
renderWithProviders(
|
|
281
|
+
<ScreenToolbar
|
|
282
|
+
leading={<PageBackButton />}
|
|
283
|
+
title="Inbox"
|
|
284
|
+
trailing={<PageBarButton icon={SlidersHorizontalIcon} aria-label="Filter" />}
|
|
285
|
+
/>,
|
|
286
|
+
);
|
|
287
|
+
const title = document.querySelector("[data-bar-title]") as HTMLElement;
|
|
288
|
+
expect(title.textContent).toBe("Inbox");
|
|
289
|
+
expect(title.getAttribute("aria-hidden")).not.toBe("true");
|
|
290
|
+
const back = screen.getByLabelText("Back");
|
|
291
|
+
expect(title.contains(back)).toBe(false);
|
|
292
|
+
expect(back.parentElement?.contains(title)).toBe(false);
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
it("the pinned bar shows a given title at rest", () => {
|
|
296
|
+
renderWithProviders(
|
|
297
|
+
<Screen topBar={<ScreenToolbar leading={<PageBackButton />} title="Inbox" />}>
|
|
298
|
+
<div style={{ height: 2000 }} />
|
|
299
|
+
</Screen>,
|
|
300
|
+
);
|
|
301
|
+
const title = document.querySelector("[data-top-bar] [data-bar-title]") as HTMLElement;
|
|
302
|
+
expect(title.textContent).toBe("Inbox");
|
|
303
|
+
expect(title.getAttribute("aria-hidden")).not.toBe("true");
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
it("on glass the back caret drops its pull and a lone + keeps its own circle", () => {
|
|
307
|
+
vi.stubGlobal("navigator", { userAgent: IPHONE, platform: "iPhone", maxTouchPoints: 5 });
|
|
308
|
+
renderWithProviders(
|
|
309
|
+
<Screen topBar={<ScreenToolbar leading={<PageBackButton />} />}>
|
|
310
|
+
<PageHeader
|
|
311
|
+
title="Nodes"
|
|
312
|
+
actions={<IconButton icon={PlusIcon} aria-label="Add node" edge="end" />}
|
|
313
|
+
/>
|
|
314
|
+
</Screen>,
|
|
315
|
+
);
|
|
316
|
+
const back = screen.getByLabelText("Back");
|
|
317
|
+
expect(back.getAttribute("data-mp-icon-button")).toBe("glass");
|
|
318
|
+
const caret = back.querySelector("svg")!;
|
|
319
|
+
const pull = Math.round(Number(caret.getAttribute("width")) * (72 / 256));
|
|
320
|
+
expect(Array.from(caret.parentElement!.classList).some((c) => c.includes(`-${pull}px`))).toBe(
|
|
321
|
+
false,
|
|
322
|
+
);
|
|
323
|
+
const add = screen.getByLabelText("Add node");
|
|
324
|
+
expect(add.getAttribute("data-mp-icon-button")).toBe("glass");
|
|
325
|
+
expect(add.closest("[data-mp-glass-capsule]")).toBeNull();
|
|
326
|
+
});
|
|
327
|
+
});
|
package/src/layouts/page.tsx
CHANGED
|
@@ -33,9 +33,15 @@ import {
|
|
|
33
33
|
type PageTitleScale,
|
|
34
34
|
type ParentScreen,
|
|
35
35
|
} from "@multiplatform.one/theme";
|
|
36
|
-
import {
|
|
36
|
+
import {
|
|
37
|
+
Button,
|
|
38
|
+
IconButtonGroup,
|
|
39
|
+
useGlyphOnPlate,
|
|
40
|
+
type ButtonProps,
|
|
41
|
+
} from "@multiplatform.one/forms";
|
|
37
42
|
import { CaretLeftIcon, CaretRightIcon, DotsThreeIcon } from "@phosphor-icons/react";
|
|
38
43
|
import { useState, type ReactNode } from "react";
|
|
44
|
+
import { barTitleSpan, sideExtents } from "./barTitleSpan";
|
|
39
45
|
import type { LayoutChangeEvent, NativeScrollEvent, NativeSyntheticEvent } from "react-native";
|
|
40
46
|
import type { ScrollViewProps as TamaguiScrollViewProps, XStackProps, YStackProps } from "tamagui";
|
|
41
47
|
import {
|
|
@@ -655,11 +661,94 @@ export { EmptyState, type EmptyStateProps } from "./EmptyState";
|
|
|
655
661
|
// ScreenToolbar — minimal back/edit-style screen toolbar
|
|
656
662
|
// ---------------------------------------------------------------------------
|
|
657
663
|
|
|
658
|
-
export interface ScreenToolbarProps extends XStackProps {
|
|
664
|
+
export interface ScreenToolbarProps extends Omit<XStackProps, "title"> {
|
|
659
665
|
/** Leading content (typically a back button). */
|
|
660
666
|
leading?: ReactNode;
|
|
661
667
|
/** Trailing content (typically primary/secondary actions). */
|
|
662
668
|
trailing?: ReactNode;
|
|
669
|
+
/**
|
|
670
|
+
* The bar's inline title (the iOS inline navigation title): centred in the
|
|
671
|
+
* bar, clear of the wider side group, never set against the back control.
|
|
672
|
+
*/
|
|
673
|
+
title?: string;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
function useBarTitleSpan() {
|
|
677
|
+
const none = { x: 0, width: 0 };
|
|
678
|
+
const [box, setBox] = useState({ row: 0, leading: none, trailing: none, title: 0 });
|
|
679
|
+
const set = <K extends keyof typeof box>(key: K, value: (typeof box)[K]) =>
|
|
680
|
+
setBox((prev) =>
|
|
681
|
+
JSON.stringify(prev[key]) === JSON.stringify(value) ? prev : { ...prev, [key]: value },
|
|
682
|
+
);
|
|
683
|
+
const extent = (event: LayoutChangeEvent) => {
|
|
684
|
+
const { x, width } = event.nativeEvent.layout;
|
|
685
|
+
return { x, width };
|
|
686
|
+
};
|
|
687
|
+
return {
|
|
688
|
+
span: barTitleSpan({
|
|
689
|
+
row: box.row,
|
|
690
|
+
title: box.title,
|
|
691
|
+
...sideExtents(box.row, box.leading, box.trailing),
|
|
692
|
+
}),
|
|
693
|
+
measureRow: (event: LayoutChangeEvent) => set("row", Math.floor(extent(event).width)),
|
|
694
|
+
measureLeading: (event: LayoutChangeEvent) => set("leading", extent(event)),
|
|
695
|
+
measureTrailing: (event: LayoutChangeEvent) => set("trailing", extent(event)),
|
|
696
|
+
measureTitle: (event: LayoutChangeEvent) => set("title", Math.ceil(extent(event).width)),
|
|
697
|
+
};
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
function BarTitle({
|
|
701
|
+
title,
|
|
702
|
+
span,
|
|
703
|
+
onTitleWidth,
|
|
704
|
+
shown = true,
|
|
705
|
+
...rest
|
|
706
|
+
}: {
|
|
707
|
+
title: string;
|
|
708
|
+
span: { left: number; right: number };
|
|
709
|
+
onTitleWidth: (event: LayoutChangeEvent) => void;
|
|
710
|
+
shown?: boolean;
|
|
711
|
+
} & XStackProps) {
|
|
712
|
+
const { knobProps } = useResolvedKnobs({ component: "ScreenToolbar" });
|
|
713
|
+
const text = {
|
|
714
|
+
...knobProps.body,
|
|
715
|
+
fontWeight: "600",
|
|
716
|
+
color: "$color12",
|
|
717
|
+
numberOfLines: 1,
|
|
718
|
+
} as const;
|
|
719
|
+
return (
|
|
720
|
+
<>
|
|
721
|
+
{shown ? (
|
|
722
|
+
<XStack
|
|
723
|
+
position="absolute"
|
|
724
|
+
top={0}
|
|
725
|
+
left={0}
|
|
726
|
+
opacity={0}
|
|
727
|
+
pointerEvents="none"
|
|
728
|
+
aria-hidden
|
|
729
|
+
onLayout={onTitleWidth}
|
|
730
|
+
>
|
|
731
|
+
<SizableText {...text}>{title}</SizableText>
|
|
732
|
+
</XStack>
|
|
733
|
+
) : null}
|
|
734
|
+
<XStack
|
|
735
|
+
position="absolute"
|
|
736
|
+
top={0}
|
|
737
|
+
bottom={0}
|
|
738
|
+
left={span.left}
|
|
739
|
+
right={span.right}
|
|
740
|
+
alignItems="center"
|
|
741
|
+
justifyContent="center"
|
|
742
|
+
pointerEvents="none"
|
|
743
|
+
aria-hidden={!shown}
|
|
744
|
+
data-bar-title=""
|
|
745
|
+
opacity={shown ? 1 : 0}
|
|
746
|
+
{...rest}
|
|
747
|
+
>
|
|
748
|
+
<SizableText {...text}>{title}</SizableText>
|
|
749
|
+
</XStack>
|
|
750
|
+
</>
|
|
751
|
+
);
|
|
663
752
|
}
|
|
664
753
|
|
|
665
754
|
/**
|
|
@@ -679,8 +768,9 @@ export function ScreenToolbar(props: ScreenToolbarProps) {
|
|
|
679
768
|
return slot ? <PinnedTopBar {...props} slot={slot} /> : <InlineToolbar {...props} />;
|
|
680
769
|
}
|
|
681
770
|
|
|
682
|
-
function InlineToolbar({ leading, trailing, children, ...rest }: ScreenToolbarProps) {
|
|
771
|
+
function InlineToolbar({ leading, trailing, title, children, ...rest }: ScreenToolbarProps) {
|
|
683
772
|
const { knobProps } = useResolvedKnobs({ component: "ScreenToolbar" });
|
|
773
|
+
const titleSpan = useBarTitleSpan();
|
|
684
774
|
const insetToken = usePageChromeInset();
|
|
685
775
|
const bleed = insetToken ? { marginHorizontal: negateSpaceToken(insetToken) as "$4" } : null;
|
|
686
776
|
// LC-145: a phone top bar is one row; the leading group shrinks first.
|
|
@@ -692,8 +782,9 @@ function InlineToolbar({ leading, trailing, children, ...rest }: ScreenToolbarPr
|
|
|
692
782
|
data-testid="screen-toolbar"
|
|
693
783
|
justifyContent="space-between"
|
|
694
784
|
alignItems="center"
|
|
695
|
-
flexWrap={oneRow ? "nowrap" : "wrap"}
|
|
785
|
+
flexWrap={oneRow || title ? "nowrap" : "wrap"}
|
|
696
786
|
minHeight={MIN_PRESS_TARGET}
|
|
787
|
+
{...(title ? { position: "relative" as const, onLayout: titleSpan.measureRow } : null)}
|
|
697
788
|
{...bleed}
|
|
698
789
|
{...(insetToken ? { paddingHorizontal: insetToken as "$4" } : knobProps.panelPadding)}
|
|
699
790
|
{...knobProps.gap}
|
|
@@ -706,6 +797,7 @@ function InlineToolbar({ leading, trailing, children, ...rest }: ScreenToolbarPr
|
|
|
706
797
|
// Shrink weight, not a size: the back label gives way before the actions wrap.
|
|
707
798
|
flexShrink={oneRow ? 1000 : 1}
|
|
708
799
|
minWidth={0}
|
|
800
|
+
{...(title ? { onLayout: titleSpan.measureLeading } : null)}
|
|
709
801
|
>
|
|
710
802
|
{leading}
|
|
711
803
|
</XStack>
|
|
@@ -716,9 +808,13 @@ function InlineToolbar({ leading, trailing, children, ...rest }: ScreenToolbarPr
|
|
|
716
808
|
flexShrink={1}
|
|
717
809
|
minWidth={0}
|
|
718
810
|
justifyContent="flex-end"
|
|
811
|
+
{...(title ? { onLayout: titleSpan.measureTrailing } : null)}
|
|
719
812
|
>
|
|
720
813
|
{trailing}
|
|
721
814
|
</IconButtonGroup>
|
|
815
|
+
{title ? (
|
|
816
|
+
<BarTitle title={title} span={titleSpan.span} onTitleWidth={titleSpan.measureTitle} />
|
|
817
|
+
) : null}
|
|
722
818
|
</XStack>
|
|
723
819
|
</Surface>
|
|
724
820
|
);
|
|
@@ -737,19 +833,16 @@ function InlineToolbar({ leading, trailing, children, ...rest }: ScreenToolbarPr
|
|
|
737
833
|
function PinnedTopBar({
|
|
738
834
|
leading,
|
|
739
835
|
trailing,
|
|
836
|
+
title: inlineTitle,
|
|
740
837
|
children,
|
|
741
838
|
slot,
|
|
742
839
|
...rest
|
|
743
840
|
}: ScreenToolbarProps & { slot: { inset: string | null; maxWidth: number | null } }) {
|
|
744
841
|
const { knobProps } = useResolvedKnobs({ component: "ScreenToolbar" });
|
|
745
|
-
const { scrolled, collapsed, title } = useScreenScroll();
|
|
746
|
-
const
|
|
747
|
-
const measureSide = (side: "leading" | "trailing") => (event: LayoutChangeEvent) => {
|
|
748
|
-
const width = Math.ceil(event.nativeEvent.layout.width);
|
|
749
|
-
setSides((prev) => (prev[side] === width ? prev : { ...prev, [side]: width }));
|
|
750
|
-
};
|
|
842
|
+
const { scrolled, collapsed, title: largeTitle } = useScreenScroll();
|
|
843
|
+
const titleSpan = useBarTitleSpan();
|
|
751
844
|
const motion = transitionProps(knobProps.motion.control);
|
|
752
|
-
const
|
|
845
|
+
const title = inlineTitle ?? largeTitle;
|
|
753
846
|
// LC-153: the pinned bar is a bar, so its neutral buttons paint plain.
|
|
754
847
|
return (
|
|
755
848
|
<Surface bar>
|
|
@@ -772,6 +865,7 @@ function PinnedTopBar({
|
|
|
772
865
|
flexWrap="nowrap"
|
|
773
866
|
// The collapsed title is placed against this row, not the page.
|
|
774
867
|
position="relative"
|
|
868
|
+
onLayout={titleSpan.measureRow}
|
|
775
869
|
paddingHorizontal={(slot.inset ?? knobProps.panelPadding.padding) as "$4"}
|
|
776
870
|
{...knobProps.gap}
|
|
777
871
|
{...rest}
|
|
@@ -781,7 +875,7 @@ function PinnedTopBar({
|
|
|
781
875
|
alignItems="center"
|
|
782
876
|
flexShrink={1000}
|
|
783
877
|
minWidth={0}
|
|
784
|
-
onLayout={
|
|
878
|
+
onLayout={titleSpan.measureLeading}
|
|
785
879
|
>
|
|
786
880
|
{leading}
|
|
787
881
|
</XStack>
|
|
@@ -794,29 +888,18 @@ function PinnedTopBar({
|
|
|
794
888
|
flexShrink={1}
|
|
795
889
|
minWidth={0}
|
|
796
890
|
justifyContent="flex-end"
|
|
797
|
-
onLayout={
|
|
891
|
+
onLayout={titleSpan.measureTrailing}
|
|
798
892
|
>
|
|
799
893
|
{trailing}
|
|
800
894
|
</IconButtonGroup>
|
|
801
895
|
{title ? (
|
|
802
|
-
<
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
right={clearance}
|
|
808
|
-
alignItems="center"
|
|
809
|
-
justifyContent="center"
|
|
810
|
-
pointerEvents="none"
|
|
811
|
-
aria-hidden={!collapsed}
|
|
812
|
-
data-bar-title=""
|
|
813
|
-
opacity={collapsed ? 1 : 0}
|
|
896
|
+
<BarTitle
|
|
897
|
+
title={title}
|
|
898
|
+
span={titleSpan.span}
|
|
899
|
+
onTitleWidth={titleSpan.measureTitle}
|
|
900
|
+
shown={Boolean(inlineTitle) || collapsed}
|
|
814
901
|
{...motion}
|
|
815
|
-
|
|
816
|
-
<SizableText {...knobProps.body} fontWeight="600" color="$color12" numberOfLines={1}>
|
|
817
|
-
{title}
|
|
818
|
-
</SizableText>
|
|
819
|
-
</XStack>
|
|
902
|
+
/>
|
|
820
903
|
) : null}
|
|
821
904
|
</XStack>
|
|
822
905
|
</YStack>
|
|
@@ -841,8 +924,11 @@ function useTopBarControl() {
|
|
|
841
924
|
// Phosphor's caret path starts 72 units into its 256 grid; back pulls by that
|
|
842
925
|
// so the caret's point, not its box, lands on the title's leading edge.
|
|
843
926
|
const CARET_OPTICAL_INSET = 72 / 256;
|
|
927
|
+
// Its ink is centred 8 units toward the point, so on a glass circle it moves
|
|
928
|
+
// back by that to sit at the circle's centre (FZ-8442).
|
|
929
|
+
const CARET_INK_OFFSET = 8 / 256;
|
|
844
930
|
|
|
845
|
-
function backCaret(Caret: typeof CaretLeftIcon) {
|
|
931
|
+
function backCaret(Caret: typeof CaretLeftIcon, inkSign: 1 | -1) {
|
|
846
932
|
return function BackCaret({
|
|
847
933
|
size = 22,
|
|
848
934
|
color,
|
|
@@ -856,16 +942,22 @@ function backCaret(Caret: typeof CaretLeftIcon) {
|
|
|
856
942
|
strokeWidth?: number;
|
|
857
943
|
strokeLinejoin?: "round";
|
|
858
944
|
}) {
|
|
945
|
+
const plated = useGlyphOnPlate();
|
|
859
946
|
return (
|
|
860
|
-
<XStack
|
|
947
|
+
<XStack
|
|
948
|
+
data-back-caret=""
|
|
949
|
+
{...(plated
|
|
950
|
+
? { x: inkSign * size * CARET_INK_OFFSET }
|
|
951
|
+
: { marginInlineStart: -Math.round(size * CARET_OPTICAL_INSET) })}
|
|
952
|
+
>
|
|
861
953
|
<Caret size={size} color={color} weight={weight} {...stroke} />
|
|
862
954
|
</XStack>
|
|
863
955
|
);
|
|
864
956
|
};
|
|
865
957
|
}
|
|
866
958
|
|
|
867
|
-
const BackCaretLeft = backCaret(CaretLeftIcon);
|
|
868
|
-
const BackCaretRight = backCaret(CaretRightIcon);
|
|
959
|
+
const BackCaretLeft = backCaret(CaretLeftIcon, 1);
|
|
960
|
+
const BackCaretRight = backCaret(CaretRightIcon, -1);
|
|
869
961
|
|
|
870
962
|
export interface PageBackButtonProps extends Omit<ButtonProps, "children"> {
|
|
871
963
|
/** Where back goes, shown beside the caret (the list's name). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/code/CodeBlock/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/code/CodeBlock/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4CH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,sCAAsC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAa,EACb,QAAgB,EAChB,KAAK,EACL,eAAe,EAAE,mBAAmB,EACpC,cAAmB,EACnB,WAAW,EACX,IAAI,GACL,EAAE,cAAc,2CAgKhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/layouts/EmptyState.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/layouts/EmptyState.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAGL,KAAK,UAAU,EAKf,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IAChE,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kFAAkF;IAClF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AA+CD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAe,EACf,MAAkB,EAClB,IAAI,EACJ,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,eAAe,2CA2GjB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** The space kept between the bar's inline title and either side group. */
|
|
2
|
+
export declare const BAR_TITLE_GAP = 8;
|
|
3
|
+
export interface BarTitleBox {
|
|
4
|
+
/** The bar row's width. */
|
|
5
|
+
row: number;
|
|
6
|
+
/** Where the group on the left ends, from the row's left edge; 0 when empty. */
|
|
7
|
+
leftEnd: number;
|
|
8
|
+
/** Where the group on the right starts, from the row's left edge; 0 when empty. */
|
|
9
|
+
rightStart: number;
|
|
10
|
+
/** The title's natural one-line width. */
|
|
11
|
+
title: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Where the bar's inline title sits. Like UIKit it is centred on the bar
|
|
15
|
+
* while it fits clear of both side groups; when the wider group would touch
|
|
16
|
+
* it, it centres in the span left between the groups instead of vanishing.
|
|
17
|
+
*/
|
|
18
|
+
export declare function barTitleSpan(box: BarTitleBox): {
|
|
19
|
+
left: number;
|
|
20
|
+
right: number;
|
|
21
|
+
};
|
|
22
|
+
type Extent = {
|
|
23
|
+
x: number;
|
|
24
|
+
width: number;
|
|
25
|
+
};
|
|
26
|
+
/** The bar's two side groups as physical left and right extents (RTL-safe). */
|
|
27
|
+
export declare function sideExtents(row: number, a: Extent, b: Extent): Pick<BarTitleBox, "leftEnd" | "rightStart">;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=barTitleSpan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barTitleSpan.d.ts","sourceRoot":"","sources":["../../src/layouts/barTitleSpan.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAK9E;AAED,KAAK,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,+EAA+E;AAC/E,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC,CAU7C"}
|
package/types/layouts/page.d.ts
CHANGED
|
@@ -135,11 +135,16 @@ export interface PageSectionProps extends YStackProps {
|
|
|
135
135
|
*/
|
|
136
136
|
export declare function PageSection({ title, description, heading, divider, surface, headingLevel, children, ...rest }: PageSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
137
137
|
export { EmptyState, type EmptyStateProps } from "./EmptyState";
|
|
138
|
-
export interface ScreenToolbarProps extends XStackProps {
|
|
138
|
+
export interface ScreenToolbarProps extends Omit<XStackProps, "title"> {
|
|
139
139
|
/** Leading content (typically a back button). */
|
|
140
140
|
leading?: ReactNode;
|
|
141
141
|
/** Trailing content (typically primary/secondary actions). */
|
|
142
142
|
trailing?: ReactNode;
|
|
143
|
+
/**
|
|
144
|
+
* The bar's inline title (the iOS inline navigation title): centred in the
|
|
145
|
+
* bar, clear of the wider side group, never set against the back control.
|
|
146
|
+
*/
|
|
147
|
+
title?: string;
|
|
143
148
|
}
|
|
144
149
|
/**
|
|
145
150
|
* Minimal toolbar with leading/trailing slots. For the standard "back +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/layouts/page.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAeL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/layouts/page.tsx"],"names":[],"mappings":"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"}
|