@multiplatform.one/frappe-ui 7.50.1 → 7.51.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/FrappeRecordView.cjs +12 -9
- package/dist/cjs/FrappeRecordView.native.js +12 -9
- package/dist/cjs/FrappeRecordView.native.js.map +1 -1
- package/dist/cjs/record/RecordPage.cjs +32 -39
- package/dist/cjs/record/RecordPage.native.js +33 -39
- package/dist/cjs/record/RecordPage.native.js.map +1 -1
- package/dist/cjs/record/RecordRows.cjs +3 -6
- package/dist/cjs/record/RecordRows.native.js +3 -6
- package/dist/cjs/record/RecordRows.native.js.map +1 -1
- package/dist/cjs/schemaForm/index.cjs +9 -1
- package/dist/cjs/schemaForm/index.native.js +9 -1
- package/dist/cjs/schemaForm/index.native.js.map +1 -1
- package/dist/esm/FrappeRecordView.mjs +13 -10
- package/dist/esm/FrappeRecordView.mjs.map +1 -1
- package/dist/esm/FrappeRecordView.native.js +13 -10
- package/dist/esm/FrappeRecordView.native.js.map +1 -1
- package/dist/esm/record/RecordPage.mjs +35 -43
- package/dist/esm/record/RecordPage.mjs.map +1 -1
- package/dist/esm/record/RecordPage.native.js +36 -43
- package/dist/esm/record/RecordPage.native.js.map +1 -1
- package/dist/esm/record/RecordRows.mjs +4 -7
- package/dist/esm/record/RecordRows.mjs.map +1 -1
- package/dist/esm/record/RecordRows.native.js +4 -7
- package/dist/esm/record/RecordRows.native.js.map +1 -1
- package/dist/esm/schemaForm/index.mjs +10 -2
- package/dist/esm/schemaForm/index.mjs.map +1 -1
- package/dist/esm/schemaForm/index.native.js +10 -2
- package/dist/esm/schemaForm/index.native.js.map +1 -1
- package/dist/jsx/FrappeRecordView.mjs +13 -10
- package/dist/jsx/FrappeRecordView.mjs.map +1 -1
- package/dist/jsx/FrappeRecordView.native.js +12 -9
- package/dist/jsx/FrappeRecordView.native.js.map +1 -1
- package/dist/jsx/record/RecordPage.mjs +35 -43
- package/dist/jsx/record/RecordPage.mjs.map +1 -1
- package/dist/jsx/record/RecordPage.native.js +33 -39
- package/dist/jsx/record/RecordPage.native.js.map +1 -1
- package/dist/jsx/record/RecordRows.mjs +4 -7
- package/dist/jsx/record/RecordRows.mjs.map +1 -1
- package/dist/jsx/record/RecordRows.native.js +3 -6
- package/dist/jsx/record/RecordRows.native.js.map +1 -1
- package/dist/jsx/schemaForm/index.mjs +10 -2
- package/dist/jsx/schemaForm/index.mjs.map +1 -1
- package/dist/jsx/schemaForm/index.native.js +9 -1
- package/dist/jsx/schemaForm/index.native.js.map +1 -1
- package/package.json +16 -16
- package/src/FrappeRecordView.tsx +3 -6
- package/src/record/RecordLargeTitle.spec.tsx +58 -0
- package/src/record/RecordPage.tsx +47 -57
- package/src/record/RecordRows.surface.spec.tsx +23 -0
- package/src/record/RecordRows.tsx +8 -5
- package/src/schemaForm/SchemaForm.flatLift.spec.tsx +49 -0
- package/src/schemaForm/index.tsx +7 -1
- package/types/FrappeRecordView.d.ts.map +1 -1
- package/types/record/RecordPage.d.ts +13 -1
- package/types/record/RecordPage.d.ts.map +1 -1
- package/types/record/RecordRows.d.ts +2 -2
- package/types/record/RecordRows.d.ts.map +1 -1
- package/types/schemaForm/index.d.ts.map +1 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-157: the record page's name reaches its pinned bar. RecordPage renders
|
|
3
|
+
* the Screen, so the title registers from a child inside the Screen's scroll
|
|
4
|
+
* scope; registered from RecordPage's own body it never reached the bar, and
|
|
5
|
+
* the One detail's bar stayed empty however far it scrolled.
|
|
6
|
+
*/
|
|
7
|
+
import { Screen, ScreenToolbar } from "@multiplatform.one/components";
|
|
8
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
9
|
+
import { act, cleanup, fireEvent, screen } from "@testing-library/react";
|
|
10
|
+
import fs from "node:fs";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
13
|
+
import { RecordLargeTitle } from "./RecordPage";
|
|
14
|
+
|
|
15
|
+
const TITLE_BOTTOM = 120;
|
|
16
|
+
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
vi.spyOn(Element.prototype, "getBoundingClientRect").mockImplementation(function (this: Element) {
|
|
19
|
+
const bottom = this.tagName === "H1" ? TITLE_BOTTOM : 0;
|
|
20
|
+
return { top: 0, bottom, left: 0, right: 0, width: 0, height: bottom, x: 0, y: 0 } as DOMRect;
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
afterEach(() => {
|
|
25
|
+
vi.restoreAllMocks();
|
|
26
|
+
cleanup();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
describe("RecordLargeTitle (LC-157)", () => {
|
|
30
|
+
it("hands the record's name to the pinned bar once it scrolls away", async () => {
|
|
31
|
+
const { container } = renderWithProviders(
|
|
32
|
+
<Screen
|
|
33
|
+
scrollViewProps={{ testID: "page-scroll" } as never}
|
|
34
|
+
topBar={<ScreenToolbar leading={<span>Pokemon</span>} />}
|
|
35
|
+
>
|
|
36
|
+
<RecordLargeTitle title="Pikachu" />
|
|
37
|
+
<div style={{ height: 2000 }} />
|
|
38
|
+
</Screen>,
|
|
39
|
+
);
|
|
40
|
+
const barTitle = () => container.querySelector("[data-bar-title]");
|
|
41
|
+
expect(barTitle()?.textContent).toBe("Pikachu");
|
|
42
|
+
expect(barTitle()?.getAttribute("aria-hidden")).toBe("true");
|
|
43
|
+
await act(async () => {
|
|
44
|
+
fireEvent.scroll(screen.getByTestId("page-scroll"), {
|
|
45
|
+
target: { scrollTop: TITLE_BOTTOM + 10 },
|
|
46
|
+
});
|
|
47
|
+
await new Promise((resolve) => setTimeout(resolve, 120));
|
|
48
|
+
});
|
|
49
|
+
expect(barTitle()?.getAttribute("aria-hidden")).toBe("false");
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it("RecordPage renders its name through it, not a hook in its own body", () => {
|
|
53
|
+
const source = fs.readFileSync(path.resolve(__dirname, "RecordPage.tsx"), "utf-8");
|
|
54
|
+
const body = source.slice(source.indexOf("export function RecordPage<"));
|
|
55
|
+
expect(body).toContain("<RecordLargeTitle title={title} />");
|
|
56
|
+
expect(body).not.toContain("useLargeTitle(");
|
|
57
|
+
});
|
|
58
|
+
});
|
|
@@ -2,28 +2,21 @@ import {
|
|
|
2
2
|
Avatar,
|
|
3
3
|
DropdownMenu,
|
|
4
4
|
H1,
|
|
5
|
+
PageBackButton,
|
|
5
6
|
PageSection,
|
|
6
7
|
Quote,
|
|
7
8
|
Screen,
|
|
9
|
+
ScreenToolbar,
|
|
8
10
|
Tabs,
|
|
9
11
|
Text,
|
|
10
12
|
XStack,
|
|
11
13
|
YStack,
|
|
14
|
+
useLargeTitle,
|
|
12
15
|
type DropdownMenuEntry,
|
|
13
16
|
} from "@multiplatform.one/components";
|
|
14
17
|
import { Button } from "@multiplatform.one/forms";
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
hairline,
|
|
18
|
-
Surface,
|
|
19
|
-
useResolvedKnobs,
|
|
20
|
-
} from "@multiplatform.one/theme";
|
|
21
|
-
import {
|
|
22
|
-
CaretLeftIcon,
|
|
23
|
-
DotsThreeOutlineIcon,
|
|
24
|
-
HeartIcon,
|
|
25
|
-
PencilSimpleIcon,
|
|
26
|
-
} from "@phosphor-icons/react";
|
|
18
|
+
import { formatAbsoluteDateTime, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
19
|
+
import { DotsThreeOutlineIcon, HeartIcon, PencilSimpleIcon } from "@phosphor-icons/react";
|
|
27
20
|
import type { ComponentType, ReactNode } from "react";
|
|
28
21
|
import { useTranslation } from "react-i18next";
|
|
29
22
|
import { frappeRouteHref } from "../frappeNavigation";
|
|
@@ -40,6 +33,22 @@ import { RecordPager, type RecordPagerEntry } from "./RecordPager";
|
|
|
40
33
|
import { RecordGroup, RecordRows } from "./RecordRows";
|
|
41
34
|
import type { FrappeRecordSection, FrappeRecordTab } from "./recordSections";
|
|
42
35
|
|
|
36
|
+
/**
|
|
37
|
+
* LC-157: the record's name is the page's large title, at the page-title
|
|
38
|
+
* token, and the top bar takes it once it scrolls away. It registers from
|
|
39
|
+
* inside the Screen: RecordPage renders the Screen, so a hook in its own body
|
|
40
|
+
* would sit above the scroll scope and never reach the bar.
|
|
41
|
+
*/
|
|
42
|
+
export function RecordLargeTitle({ title }: { title: string }) {
|
|
43
|
+
const { knobProps } = useResolvedKnobs();
|
|
44
|
+
const largeTitle = useLargeTitle(title);
|
|
45
|
+
return (
|
|
46
|
+
<H1 margin={0} {...largeTitle} {...knobProps.pageTitle} {...knobProps.heading}>
|
|
47
|
+
{title}
|
|
48
|
+
</H1>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
43
52
|
/** A hop from the record to another page of it (the backoffice form). */
|
|
44
53
|
export interface FrappeRecordAction<TDoc> {
|
|
45
54
|
label: string;
|
|
@@ -73,7 +82,10 @@ export interface RecordPageProps<TDoc extends { name: string; doctype: string }>
|
|
|
73
82
|
canEdit: boolean;
|
|
74
83
|
}
|
|
75
84
|
|
|
76
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* The record page's top bar: back to the list, then the heart and the menu.
|
|
87
|
+
* It is the Screen's pinned bar (LC-157): pass it as `Screen`'s `topBar`.
|
|
88
|
+
*/
|
|
77
89
|
export function RecordTopBar({
|
|
78
90
|
listName,
|
|
79
91
|
onBack,
|
|
@@ -86,43 +98,19 @@ export function RecordTopBar({
|
|
|
86
98
|
trailing?: ReactNode;
|
|
87
99
|
}) {
|
|
88
100
|
const { t } = useTranslation();
|
|
89
|
-
const { knobProps } = useResolvedKnobs();
|
|
90
|
-
// LC-153: the top bar's neutral buttons (back, heart, menu) paint plain.
|
|
91
101
|
return (
|
|
92
|
-
<
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
paddingVertical="$1"
|
|
98
|
-
{...hairline.bottom}
|
|
99
|
-
borderColor="$borderColor"
|
|
100
|
-
testID={`${slug}-detail-header`}
|
|
101
|
-
>
|
|
102
|
-
<Button
|
|
103
|
-
chromeless
|
|
104
|
-
minHeight={knobProps.sizeToken}
|
|
102
|
+
<ScreenToolbar
|
|
103
|
+
testID={`${slug}-detail-header`}
|
|
104
|
+
leading={
|
|
105
|
+
<PageBackButton
|
|
106
|
+
label={listName}
|
|
105
107
|
onPress={onBack}
|
|
106
|
-
icon={CaretLeftIcon}
|
|
107
|
-
flexShrink={1}
|
|
108
108
|
aria-label={t("Back to {{title}}", { title: listName })}
|
|
109
109
|
testID={`${slug}-detail-back`}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
<XStack
|
|
115
|
-
alignItems="center"
|
|
116
|
-
justifyContent="flex-end"
|
|
117
|
-
gap="$1"
|
|
118
|
-
flexGrow={1}
|
|
119
|
-
flexShrink={0}
|
|
120
|
-
>
|
|
121
|
-
{trailing}
|
|
122
|
-
</XStack>
|
|
123
|
-
) : null}
|
|
124
|
-
</XStack>
|
|
125
|
-
</Surface>
|
|
110
|
+
/>
|
|
111
|
+
}
|
|
112
|
+
trailing={trailing}
|
|
113
|
+
/>
|
|
126
114
|
);
|
|
127
115
|
}
|
|
128
116
|
|
|
@@ -333,14 +321,18 @@ export function RecordPage<TDoc extends { name: string; doctype: string }>({
|
|
|
333
321
|
);
|
|
334
322
|
|
|
335
323
|
return (
|
|
336
|
-
<Screen
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
324
|
+
<Screen
|
|
325
|
+
noPadding
|
|
326
|
+
gap={0}
|
|
327
|
+
topBar={
|
|
328
|
+
<RecordTopBar
|
|
329
|
+
listName={listName}
|
|
330
|
+
onBack={() => navigate(route)}
|
|
331
|
+
slug={slug}
|
|
332
|
+
trailing={trailing}
|
|
333
|
+
/>
|
|
334
|
+
}
|
|
335
|
+
>
|
|
344
336
|
<RecordHeroFrame tint={tint} testID={`${slug}-detail-stage`}>
|
|
345
337
|
<YStack testID={`${slug}-hero-art`}>
|
|
346
338
|
<RecordGallery images={images} slides={slides} alt={title} />
|
|
@@ -366,9 +358,7 @@ export function RecordPage<TDoc extends { name: string; doctype: string }>({
|
|
|
366
358
|
/>
|
|
367
359
|
))}
|
|
368
360
|
</XStack>
|
|
369
|
-
<
|
|
370
|
-
{title}
|
|
371
|
-
</H1>
|
|
361
|
+
<RecordLargeTitle title={title} />
|
|
372
362
|
{look?.subtitle?.(doc) ? (
|
|
373
363
|
<Text {...nested.body} color="$color11">
|
|
374
364
|
{look.subtitle(doc)}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-151 SURFACE-LADDER: a record's grouped rows (abilities, moves, history,
|
|
3
|
+
* the stats bars) sit on the page as one content card, the grouped white step
|
|
4
|
+
* with its hairline edge, not as a page-coloured outline.
|
|
5
|
+
*/
|
|
6
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
7
|
+
import { cleanup } from "@testing-library/react";
|
|
8
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
9
|
+
import { RecordGroup } from "./RecordRows";
|
|
10
|
+
|
|
11
|
+
afterEach(cleanup);
|
|
12
|
+
|
|
13
|
+
describe("RecordGroup surface (LC-151)", () => {
|
|
14
|
+
it("is a content Card, so it takes the grouped step and the hairline", () => {
|
|
15
|
+
const { getByTestId } = renderWithProviders(
|
|
16
|
+
<RecordGroup testID="abilities">
|
|
17
|
+
{[<span key="a">Static</span>, <span key="b">Lightning Rod</span>]}
|
|
18
|
+
</RecordGroup>,
|
|
19
|
+
);
|
|
20
|
+
const group = getByTestId("abilities");
|
|
21
|
+
expect(group.className).toContain("is_Card");
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Accordion,
|
|
3
|
+
Card,
|
|
3
4
|
Chip,
|
|
4
5
|
TamaguiSizableText,
|
|
5
6
|
Text,
|
|
6
7
|
XStack,
|
|
7
8
|
YStack,
|
|
8
|
-
type
|
|
9
|
+
type CardProps,
|
|
9
10
|
} from "@multiplatform.one/components";
|
|
10
11
|
import { hairline, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
11
12
|
import type { ReactNode } from "react";
|
|
@@ -16,12 +17,14 @@ import { slugWords, type FrappeRecordRowsSection } from "./recordSections";
|
|
|
16
17
|
type Row = Record<string, unknown>;
|
|
17
18
|
|
|
18
19
|
/** The bordered surface the record page sets its groups and bars on. */
|
|
19
|
-
export function RecordGroupFrame({ children, ...rest }:
|
|
20
|
-
|
|
20
|
+
export function RecordGroupFrame({ children, ...rest }: CardProps & { children: ReactNode }) {
|
|
21
|
+
// LC-151: a record's grouped rows are a content card, the grouped white
|
|
22
|
+
// step with a hairline edge on the page. The rows own their inset, so the
|
|
23
|
+
// card adds none.
|
|
21
24
|
return (
|
|
22
|
-
<
|
|
25
|
+
<Card padding={0} gap={0} overflow="hidden" {...rest}>
|
|
23
26
|
{children}
|
|
24
|
-
</
|
|
27
|
+
</Card>
|
|
25
28
|
);
|
|
26
29
|
}
|
|
27
30
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// LC-151 gives a top-level card a hair of lift. A flat form section drops its
|
|
2
|
+
// card chrome on a phone, and the lift with it: on web the lift is an inline
|
|
3
|
+
// box-shadow, so the section clears it itself rather than through `$max-sm`.
|
|
4
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
5
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
6
|
+
import type { FieldSchema } from "../fieldRegistry";
|
|
7
|
+
import { SchemaForm, type FormSchema } from "./index";
|
|
8
|
+
|
|
9
|
+
const media = vi.hoisted(() => ({ phone: true }));
|
|
10
|
+
vi.mock("tamagui", async (importOriginal) => {
|
|
11
|
+
const actual = (await importOriginal()) as Record<string, unknown> & {
|
|
12
|
+
useMedia: () => Record<string, boolean>;
|
|
13
|
+
};
|
|
14
|
+
return { ...actual, useMedia: () => ({ ...actual.useMedia(), "max-sm": media.phone }) };
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const fields: FieldSchema[] = [{ type: "Data", name: "pokemon_name", label: "Name" }];
|
|
18
|
+
const schema: FormSchema = { fields, sections: [{ label: "Vitals", columns: [{ fields }] }] };
|
|
19
|
+
|
|
20
|
+
function sectionCard(layout: "flat" | "cards") {
|
|
21
|
+
renderWithProviders(
|
|
22
|
+
<SchemaForm
|
|
23
|
+
schema={schema}
|
|
24
|
+
doc={{ pokemon_name: "Pikachu" }}
|
|
25
|
+
setValue={vi.fn()}
|
|
26
|
+
layout={layout}
|
|
27
|
+
/>,
|
|
28
|
+
);
|
|
29
|
+
return document.querySelector("[data-mpo-schema-form-card]") as HTMLElement;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
afterEach(() => {
|
|
33
|
+
media.phone = true;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe("a flat section on a phone has no card lift (LC-151)", () => {
|
|
37
|
+
it("clears the inline box-shadow under max-sm", () => {
|
|
38
|
+
expect(sectionCard("flat").style.boxShadow).toBe("none");
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("keeps the card's lift on a wider screen", () => {
|
|
42
|
+
media.phone = false;
|
|
43
|
+
expect(sectionCard("flat").style.boxShadow).not.toBe("none");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("keeps the lift on a carded section on a phone", () => {
|
|
47
|
+
expect(sectionCard("cards").style.boxShadow).not.toBe("none");
|
|
48
|
+
});
|
|
49
|
+
});
|
package/src/schemaForm/index.tsx
CHANGED
|
@@ -20,7 +20,7 @@ import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
|
20
20
|
import { Card, sectionHeading, Text } from "@multiplatform.one/components";
|
|
21
21
|
import React, { useMemo } from "react";
|
|
22
22
|
import { useTranslation } from "react-i18next";
|
|
23
|
-
import { SizableText, Text as TamaguiText, XStack, YStack } from "tamagui";
|
|
23
|
+
import { SizableText, Text as TamaguiText, XStack, YStack, useMedia } from "tamagui";
|
|
24
24
|
|
|
25
25
|
import { compileDependsOn } from "../dependsOn";
|
|
26
26
|
import { Heading, type HeadingLevel } from "../fields/Heading";
|
|
@@ -371,6 +371,10 @@ function SchemaFormSectionCard({
|
|
|
371
371
|
}, [collapsible, section.collapsed]);
|
|
372
372
|
const hideBorder = !!section.hideBorder;
|
|
373
373
|
const effectiveCollapsed = collapsible && collapsed;
|
|
374
|
+
// The card's lift is an inline box-shadow on web (LC-151), which a
|
|
375
|
+
// `$max-sm` media prop cannot reach, so a flattened phone section drops it here.
|
|
376
|
+
const media = useMedia();
|
|
377
|
+
const phoneFlat = flat && media["max-sm"];
|
|
374
378
|
|
|
375
379
|
return (
|
|
376
380
|
<Card
|
|
@@ -379,6 +383,7 @@ function SchemaFormSectionCard({
|
|
|
379
383
|
data-mpo-schema-form-flat={flat ? "" : undefined}
|
|
380
384
|
{...(hideBorder ? { borderWidth: 0, backgroundColor: "transparent" } : {})}
|
|
381
385
|
{...(flat ? { "$max-sm": phoneFlatSection } : {})}
|
|
386
|
+
{...(phoneFlat ? { style: { boxShadow: "none" } } : {})}
|
|
382
387
|
>
|
|
383
388
|
{flat && section.label ? (
|
|
384
389
|
<Card.Header>
|
|
@@ -519,6 +524,7 @@ const phoneFlatSection = {
|
|
|
519
524
|
borderRadius: 0,
|
|
520
525
|
borderWidth: 0,
|
|
521
526
|
elevation: 0,
|
|
527
|
+
shadowOpacity: 0,
|
|
522
528
|
} as const;
|
|
523
529
|
|
|
524
530
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeRecordView.d.ts","sourceRoot":"","sources":["../src/FrappeRecordView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,MAAM,WAAW,qBAAqB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kFAAkF;IAClF,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;QAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACtE,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAC9D,+EAA+E;IAC/E,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC1C,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9E,IAAI,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAClC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC/E,OAAO,EACP,KAAK,EACL,IAAI,EAAE,QAAQ,EACd,SAAS,EACT,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,IAAI,EACJ,UAAU,EACV,KAAK,EACL,OAAY,EACZ,OAAO,EACP,IAAa,EACb,SAAS,EACT,OAAY,EACZ,OAAc,EACd,MAAM,GACP,EAAE,qBAAqB,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"FrappeRecordView.d.ts","sourceRoot":"","sources":["../src/FrappeRecordView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,15 @@ import { type FrappeInsightsMetric } from "../insights/insightsRecord";
|
|
|
3
3
|
import type { FrappeListFacet } from "../list/listState";
|
|
4
4
|
import { type FrappeRecordLook } from "../list/recordLook";
|
|
5
5
|
import type { FrappeRecordTab } from "./recordSections";
|
|
6
|
+
/**
|
|
7
|
+
* LC-157: the record's name is the page's large title, at the page-title
|
|
8
|
+
* token, and the top bar takes it once it scrolls away. It registers from
|
|
9
|
+
* inside the Screen: RecordPage renders the Screen, so a hook in its own body
|
|
10
|
+
* would sit above the scroll scope and never reach the bar.
|
|
11
|
+
*/
|
|
12
|
+
export declare function RecordLargeTitle({ title }: {
|
|
13
|
+
title: string;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
15
|
/** A hop from the record to another page of it (the backoffice form). */
|
|
7
16
|
export interface FrappeRecordAction<TDoc> {
|
|
8
17
|
label: string;
|
|
@@ -41,7 +50,10 @@ export interface RecordPageProps<TDoc extends {
|
|
|
41
50
|
/** The session may write this record: Edit shows. */
|
|
42
51
|
canEdit: boolean;
|
|
43
52
|
}
|
|
44
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* The record page's top bar: back to the list, then the heart and the menu.
|
|
55
|
+
* It is the Screen's pinned bar (LC-157): pass it as `Screen`'s `topBar`.
|
|
56
|
+
*/
|
|
45
57
|
export declare function RecordTopBar({ listName, onBack, slug, trailing, }: {
|
|
46
58
|
listName: string;
|
|
47
59
|
onBack: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordPage.d.ts","sourceRoot":"","sources":["../../src/record/RecordPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RecordPage.d.ts","sourceRoot":"","sources":["../../src/record/RecordPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type CardProps } from "@multiplatform.one/components";
|
|
2
2
|
import type { ReactNode } from "react";
|
|
3
3
|
import { type FrappeRecordRowsSection } from "./recordSections";
|
|
4
4
|
type Row = Record<string, unknown>;
|
|
5
5
|
/** The bordered surface the record page sets its groups and bars on. */
|
|
6
|
-
export declare function RecordGroupFrame({ children, ...rest }:
|
|
6
|
+
export declare function RecordGroupFrame({ children, ...rest }: CardProps & {
|
|
7
7
|
children: ReactNode;
|
|
8
8
|
}): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
/** A bordered group of rows split by hairlines, the record page's list shape. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordRows.d.ts","sourceRoot":"","sources":["../../src/record/RecordRows.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RecordRows.d.ts","sourceRoot":"","sources":["../../src/record/RecordRows.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAa,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAS1F;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,2CAgB3F;AA0CD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,GACR,EAAE;IACD,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;IACrB,OAAO,EAAE,uBAAuB,CAAC;CAClC,2CAiCA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemaForm/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMxE,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gEAAgE;IAChE,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,MAAM,aAAa,GACrB,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,GAC9C;IAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,MAAM,EAAE,UAAU,CAAC;IACnB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IACxF;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAmCD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,GAAG,EACH,QAAQ,EACR,MAAW,EACX,QAAgB,EAChB,SAAc,EACd,UAAe,EACf,cAAmB,EACnB,eAAwB,EACxB,mBAAuB,EACvB,kBAAkB,EAClB,KAAK,EACL,MAAgB,GACjB,EAAE,eAAe,2CAuKjB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemaForm/index.tsx"],"names":[],"mappings":"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"}
|