@multiplatform.one/forms 7.7.3 → 7.7.6
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/Button/index.cjs +3 -33
- package/dist/cjs/Button/index.native.js +3 -33
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/index.cjs +17 -10
- package/dist/cjs/ContextualSaveBar/index.native.js +18 -10
- package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.native.js +51 -28
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/InputParts/index.cjs +3 -1
- package/dist/cjs/InputParts/index.native.js +3 -1
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +39 -48
- package/dist/cjs/fields/Combobox/index.native.js +43 -51
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +11 -7
- package/dist/cjs/fields/Select/index.native.js +13 -19
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/shared/pickerTriggerContract.cjs +38 -0
- package/dist/cjs/shared/pickerTriggerContract.native.js +41 -0
- package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -0
- package/dist/cjs/shared/pressSlopProps.cjs +68 -0
- package/dist/cjs/shared/pressSlopProps.native.js +72 -0
- package/dist/cjs/shared/pressSlopProps.native.js.map +1 -0
- package/dist/esm/Button/index.mjs +1 -31
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +1 -31
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/index.mjs +17 -10
- package/dist/esm/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/esm/ContextualSaveBar/index.native.js +18 -10
- package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +51 -28
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/InputParts/index.mjs +3 -1
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +3 -1
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +39 -48
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +43 -51
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +12 -8
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +14 -20
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/shared/pickerTriggerContract.mjs +13 -0
- package/dist/esm/shared/pickerTriggerContract.mjs.map +1 -0
- package/dist/esm/shared/pickerTriggerContract.native.js +13 -0
- package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -0
- package/dist/esm/shared/pressSlopProps.mjs +43 -0
- package/dist/esm/shared/pressSlopProps.mjs.map +1 -0
- package/dist/esm/shared/pressSlopProps.native.js +44 -0
- package/dist/esm/shared/pressSlopProps.native.js.map +1 -0
- package/dist/jsx/Button/index.mjs +1 -31
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +3 -33
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.mjs +17 -10
- package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.native.js +18 -10
- package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +51 -28
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/InputParts/index.mjs +3 -1
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +3 -1
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +39 -48
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +43 -51
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +12 -8
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +13 -19
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/shared/pickerTriggerContract.mjs +13 -0
- package/dist/jsx/shared/pickerTriggerContract.mjs.map +1 -0
- package/dist/jsx/shared/pickerTriggerContract.native.js +41 -0
- package/dist/jsx/shared/pickerTriggerContract.native.js.map +1 -0
- package/dist/jsx/shared/pressSlopProps.mjs +43 -0
- package/dist/jsx/shared/pressSlopProps.mjs.map +1 -0
- package/dist/jsx/shared/pressSlopProps.native.js +72 -0
- package/dist/jsx/shared/pressSlopProps.native.js.map +1 -0
- package/package.json +7 -7
- package/src/Button/index.tsx +1 -35
- package/src/ContextualSaveBar/ContextualSaveBar.spec.tsx +33 -0
- package/src/ContextualSaveBar/ContextualSaveBar.stories.tsx +19 -0
- package/src/ContextualSaveBar/index.tsx +12 -8
- package/src/ContextualSaveBar/nativeFlow.spec.tsx +20 -0
- package/src/FloatingPanel/FloatingPanel.native.spec.tsx +138 -0
- package/src/FloatingPanel/index.native.tsx +76 -31
- package/src/InputParts/index.tsx +5 -1
- package/src/fields/Combobox/index.tsx +40 -44
- package/src/fields/Select/index.tsx +13 -18
- package/src/fields/pickerActivation.spec.tsx +105 -0
- package/src/fields/pickerDensity.spec.tsx +86 -0
- package/src/fields/pickerRows.spec.tsx +66 -0
- package/src/shared/pickerTriggerContract.ts +13 -0
- package/src/shared/pressSlopProps.spec.ts +39 -0
- package/src/shared/pressSlopProps.ts +52 -0
- package/types/Button/index.d.ts.map +1 -1
- package/types/ContextualSaveBar/index.d.ts +1 -1
- package/types/ContextualSaveBar/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts +16 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/fields/Combobox/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/shared/pickerTriggerContract.d.ts +18 -0
- package/types/shared/pickerTriggerContract.d.ts.map +1 -0
- package/types/shared/pressSlopProps.d.ts +8 -0
- package/types/shared/pressSlopProps.d.ts.map +1 -0
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
} from "@floating-ui/react";
|
|
13
13
|
import type { AnyFormApi } from "../../types";
|
|
14
14
|
import {
|
|
15
|
-
MIN_PRESS_TARGET,
|
|
16
15
|
ensureKeyboardModalityTracking,
|
|
17
16
|
keyboardFocusRingProps,
|
|
18
17
|
menuRowFrame,
|
|
@@ -31,6 +30,7 @@ import * as ReactNative from "react-native";
|
|
|
31
30
|
import { Platform, Pressable as RNPressable } from "react-native";
|
|
32
31
|
import { Paragraph, Text, View, YStack, isWeb, styled, useTheme } from "tamagui";
|
|
33
32
|
import { Chip, type ChipProps } from "../../Chip";
|
|
33
|
+
import { pickerTriggerContract } from "../../shared/pickerTriggerContract";
|
|
34
34
|
import { Skeleton } from "../../Skeleton";
|
|
35
35
|
import { Field, FieldLayout, useFieldA11y, useFieldDescribedBy } from "../../fieldLayout";
|
|
36
36
|
import { Input as InputParts, FocusContext } from "../../InputParts";
|
|
@@ -421,7 +421,7 @@ const SelectItem = memo(function SelectItem({
|
|
|
421
421
|
active={isActive}
|
|
422
422
|
aria-selected={isSelected}
|
|
423
423
|
data-state={isSelected ? "active" : "inactive"}
|
|
424
|
-
|
|
424
|
+
height={ctx.knobProps.control.height}
|
|
425
425
|
// LC-18 KNOB-TOTALITY (UX-021): menu rows re-rhythm with the space knob —
|
|
426
426
|
// horizontal inset from the panelPadding token (SP-EDGE, sidebar-row
|
|
427
427
|
// precedent) over menuRowFrame's static $3; in-row gap rides the gap
|
|
@@ -1005,13 +1005,9 @@ function FloatingSelectCore({
|
|
|
1005
1005
|
// must not paint — it would ghost around the panel's corners.
|
|
1006
1006
|
suppressFocusRing={open}
|
|
1007
1007
|
size={knobProps.sizeToken}
|
|
1008
|
-
|
|
1009
|
-
// = 36px) but the trigger's press target never drops below 44 —
|
|
1010
|
-
// same minHeight floor the house Button holds. Without it a compact
|
|
1011
|
-
// Select sat 36px beside 44px Inputs/Buttons in one control row.
|
|
1012
|
-
minHeight={MIN_PRESS_TARGET}
|
|
1008
|
+
{...pickerTriggerContract(knobProps.control.height)}
|
|
1013
1009
|
{...(inTableCell
|
|
1014
|
-
? // Chromeless in cells
|
|
1010
|
+
? // Chromeless in cells.
|
|
1015
1011
|
{}
|
|
1016
1012
|
: {
|
|
1017
1013
|
borderRadius: knobProps.borderRadius.borderRadius,
|
|
@@ -1054,6 +1050,7 @@ function FloatingSelectCore({
|
|
|
1054
1050
|
</View>
|
|
1055
1051
|
) : (
|
|
1056
1052
|
<Text
|
|
1053
|
+
{...knobProps.controlType}
|
|
1057
1054
|
fontFamily={knobProps.body.fontFamily}
|
|
1058
1055
|
fontWeight={knobProps.body.fontWeight}
|
|
1059
1056
|
color={selectedOption ? textColor : formCommonColors.muted}
|
|
@@ -1370,7 +1367,7 @@ function NativeSelectCore({
|
|
|
1370
1367
|
// menu rows — panelPadding inset + gap fragment.
|
|
1371
1368
|
{...knobProps.gap}
|
|
1372
1369
|
paddingHorizontal={knobProps.panelPadding.padding}
|
|
1373
|
-
height={knobProps.
|
|
1370
|
+
height={knobProps.control.height}
|
|
1374
1371
|
onPress={isWeb ? () => handleSelect(option.value) : undefined}
|
|
1375
1372
|
onMouseEnter={() => setActiveIndex(i)}
|
|
1376
1373
|
onPointerDown={isWeb ? () => setKbNav(false) : undefined}
|
|
@@ -1467,7 +1464,7 @@ function NativeSelectCore({
|
|
|
1467
1464
|
<InputParts.Box
|
|
1468
1465
|
disabled={disabled}
|
|
1469
1466
|
size={knobProps.sizeToken}
|
|
1470
|
-
|
|
1467
|
+
{...pickerTriggerContract(knobProps.control.height)}
|
|
1471
1468
|
pointerEvents="none"
|
|
1472
1469
|
{...(inTableCell
|
|
1473
1470
|
? {}
|
|
@@ -1486,6 +1483,7 @@ function NativeSelectCore({
|
|
|
1486
1483
|
alignItems="flex-start"
|
|
1487
1484
|
>
|
|
1488
1485
|
<Text
|
|
1486
|
+
{...knobProps.controlType}
|
|
1489
1487
|
fontFamily={knobProps.body.fontFamily}
|
|
1490
1488
|
fontWeight={knobProps.body.fontWeight}
|
|
1491
1489
|
color={selectedOption ? formCommonColors.text : formCommonColors.muted}
|
|
@@ -1519,9 +1517,7 @@ function NativeSelectCore({
|
|
|
1519
1517
|
<InputParts.Box
|
|
1520
1518
|
disabled={disabled}
|
|
1521
1519
|
size={knobProps.sizeToken}
|
|
1522
|
-
|
|
1523
|
-
// the web trigger branch above).
|
|
1524
|
-
minHeight={MIN_PRESS_TARGET}
|
|
1520
|
+
{...pickerTriggerContract(knobProps.control.height)}
|
|
1525
1521
|
{...(inTableCell
|
|
1526
1522
|
? {}
|
|
1527
1523
|
: {
|
|
@@ -1551,11 +1547,9 @@ function NativeSelectCore({
|
|
|
1551
1547
|
tabIndex: disabled ? -1 : 0,
|
|
1552
1548
|
}
|
|
1553
1549
|
: { importantForAccessibility: "no" as const })}
|
|
1554
|
-
//
|
|
1555
|
-
//
|
|
1556
|
-
|
|
1557
|
-
// appears (batched true then !prev → false).
|
|
1558
|
-
onPress={isWeb && !disabled ? () => setOpen((prev) => !prev) : undefined}
|
|
1550
|
+
// Sheet capture opens first on web. Keep this opener idempotent;
|
|
1551
|
+
// native delegates the gesture to FloatingPanel's Pressable.
|
|
1552
|
+
onPress={isWeb && !disabled ? () => setOpen(true) : undefined}
|
|
1559
1553
|
onFocus={isWeb ? onTriggerFocus : undefined}
|
|
1560
1554
|
onBlur={isWeb ? onTriggerBlur : undefined}
|
|
1561
1555
|
onPointerDown={isWeb ? onTriggerPointerDown : undefined}
|
|
@@ -1606,6 +1600,7 @@ function NativeSelectCore({
|
|
|
1606
1600
|
</View>
|
|
1607
1601
|
) : (
|
|
1608
1602
|
<Text
|
|
1603
|
+
{...knobProps.controlType}
|
|
1609
1604
|
fontFamily={knobProps.body.fontFamily}
|
|
1610
1605
|
fontWeight={knobProps.body.fontWeight}
|
|
1611
1606
|
color={selectedOption ? textColor : formCommonColors.muted}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
import { fireEvent, waitFor } from "@testing-library/react";
|
|
3
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { Select } from "./Select";
|
|
6
|
+
import { Combobox } from "./Combobox";
|
|
7
|
+
|
|
8
|
+
vi.mock("@multiplatform.one/theme", async (importOriginal) => {
|
|
9
|
+
const actual = await importOriginal<typeof import("@multiplatform.one/theme")>();
|
|
10
|
+
return {
|
|
11
|
+
...actual,
|
|
12
|
+
useResolvedKnobs: (...args: Parameters<typeof actual.useResolvedKnobs>) => {
|
|
13
|
+
const resolved = actual.useResolvedKnobs(...args);
|
|
14
|
+
return {
|
|
15
|
+
...resolved,
|
|
16
|
+
knobProps: {
|
|
17
|
+
...resolved.knobProps,
|
|
18
|
+
control: { ...resolved.knobProps.control, height: 37 },
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const options = [
|
|
26
|
+
{ value: "alpha", label: "Alpha" },
|
|
27
|
+
{ value: "beta", label: "Beta" },
|
|
28
|
+
];
|
|
29
|
+
const originalWidth = window.innerWidth;
|
|
30
|
+
beforeEach(() => Object.defineProperty(window, "innerWidth", { configurable: true, value: 390 }));
|
|
31
|
+
afterEach(() =>
|
|
32
|
+
Object.defineProperty(window, "innerWidth", { configurable: true, value: originalWidth }),
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
function ClearHarness() {
|
|
36
|
+
const [value, setValue] = useState("alpha");
|
|
37
|
+
return (
|
|
38
|
+
<>
|
|
39
|
+
<Combobox
|
|
40
|
+
aria-label="Choice"
|
|
41
|
+
options={options}
|
|
42
|
+
value={value}
|
|
43
|
+
onValueChange={(next) => {
|
|
44
|
+
if (typeof next === "string") setValue(next);
|
|
45
|
+
}}
|
|
46
|
+
clearable
|
|
47
|
+
/>
|
|
48
|
+
<span>Selected:{value || "none"}</span>
|
|
49
|
+
</>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
describe("sheet picker pointer activation", () => {
|
|
54
|
+
for (const [name, Picker] of [
|
|
55
|
+
["Select", Select],
|
|
56
|
+
["Combobox", Combobox],
|
|
57
|
+
] as const) {
|
|
58
|
+
it(`${name} opens once when the real trigger is clicked`, async () => {
|
|
59
|
+
const result = renderWithProviders(<Picker aria-label="Choice" options={options} />);
|
|
60
|
+
const trigger = result.getByRole("combobox", { name: "Choice" });
|
|
61
|
+
fireEvent.click(trigger, { detail: 1 });
|
|
62
|
+
await waitFor(() => expect(trigger.getAttribute("aria-expanded")).toBe("true"));
|
|
63
|
+
});
|
|
64
|
+
it(`${name} keeps keyboard opening and ignores disabled clicks`, () => {
|
|
65
|
+
const result = renderWithProviders(<Picker aria-label="Choice" options={options} />);
|
|
66
|
+
fireEvent.keyDown(result.getByRole("combobox"), { key: " " });
|
|
67
|
+
expect(result.getByRole("combobox").getAttribute("aria-expanded")).toBe("true");
|
|
68
|
+
result.unmount();
|
|
69
|
+
const disabled = renderWithProviders(
|
|
70
|
+
<Picker aria-label="Choice" options={options} disabled />,
|
|
71
|
+
);
|
|
72
|
+
fireEvent.click(disabled.getByRole("combobox"), { detail: 1 });
|
|
73
|
+
expect(disabled.getByRole("combobox").getAttribute("aria-expanded")).toBe("false");
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
it("clear changes the value without opening the sheet", async () => {
|
|
77
|
+
const result = renderWithProviders(<ClearHarness />);
|
|
78
|
+
const clear = result.getByRole("button", { name: "Clear" });
|
|
79
|
+
expect(clear.className).toContain("_miw-44px");
|
|
80
|
+
expect(clear.className).toContain("_mih-44px");
|
|
81
|
+
fireEvent.click(clear, { detail: 1 });
|
|
82
|
+
await waitFor(() => expect(result.getByText("Selected:none")).toBeTruthy());
|
|
83
|
+
expect(result.getByRole("combobox", { name: "Choice" }).getAttribute("aria-expanded")).toBe(
|
|
84
|
+
"false",
|
|
85
|
+
);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("desktop clear retains compact geometry and never opens on pointer down or click", async () => {
|
|
90
|
+
Object.defineProperty(window, "innerWidth", { configurable: true, value: 1200 });
|
|
91
|
+
const result = renderWithProviders(<ClearHarness />);
|
|
92
|
+
const trigger = result.getByRole("combobox", { name: "Choice" });
|
|
93
|
+
const clear = result.getByRole("button", { name: "Clear" });
|
|
94
|
+
expect(trigger.className).toContain("_h-37px");
|
|
95
|
+
expect(clear.className).toContain("_h-37px");
|
|
96
|
+
expect(clear.className).toContain("_miw-44px");
|
|
97
|
+
expect(clear.getAttribute("data-mp-press-slop")).toBe("4");
|
|
98
|
+
expect(clear.getAttribute("data-mp-press-axis")).toBe("vertical");
|
|
99
|
+
fireEvent.mouseDown(clear, { detail: 1 });
|
|
100
|
+
expect(trigger.getAttribute("aria-expanded")).toBe("false");
|
|
101
|
+
fireEvent.mouseUp(clear, { detail: 1 });
|
|
102
|
+
fireEvent.click(clear, { detail: 1 });
|
|
103
|
+
await waitFor(() => expect(result.getByText("Selected:none")).toBeTruthy());
|
|
104
|
+
expect(trigger.getAttribute("aria-expanded")).toBe("false");
|
|
105
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { sizeRecipeForToken } from "@multiplatform.one/theme";
|
|
4
|
+
import { Select } from "./Select";
|
|
5
|
+
import { Combobox } from "./Combobox";
|
|
6
|
+
|
|
7
|
+
const mode = vi.hoisted(() => ({ height: 37, fontSize: 14, table: false }));
|
|
8
|
+
vi.mock("../shared/tableCellContext", async (importOriginal) => ({
|
|
9
|
+
...(await importOriginal<typeof import("../shared/tableCellContext")>()),
|
|
10
|
+
useIsInTableCell: () => mode.table,
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
vi.mock("@multiplatform.one/theme", async (importOriginal) => {
|
|
14
|
+
const actual = await importOriginal<typeof import("@multiplatform.one/theme")>();
|
|
15
|
+
return {
|
|
16
|
+
...actual,
|
|
17
|
+
useResolvedKnobs: (...args: Parameters<typeof actual.useResolvedKnobs>) => {
|
|
18
|
+
const resolved = actual.useResolvedKnobs(...args);
|
|
19
|
+
return {
|
|
20
|
+
...resolved,
|
|
21
|
+
knobProps: {
|
|
22
|
+
...resolved.knobProps,
|
|
23
|
+
control: { ...resolved.knobProps.control, height: mode.height },
|
|
24
|
+
controlType: { ...resolved.knobProps.controlType, fontSize: mode.fontSize },
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
describe("picker desktop recipe sizing", () => {
|
|
32
|
+
for (const [name, Picker] of [
|
|
33
|
+
["Select", Select],
|
|
34
|
+
["Combobox", Combobox],
|
|
35
|
+
] as const) {
|
|
36
|
+
for (const table of [false, true]) {
|
|
37
|
+
it(`${name} table=${table} honors the resolved height and label font without a desktop floor`, () => {
|
|
38
|
+
mode.table = table;
|
|
39
|
+
mode.height = 37;
|
|
40
|
+
mode.fontSize = 14;
|
|
41
|
+
const result = renderWithProviders(
|
|
42
|
+
<Picker
|
|
43
|
+
options={[
|
|
44
|
+
{ value: "one", label: "First choice" },
|
|
45
|
+
{ value: "two", label: "Second choice" },
|
|
46
|
+
]}
|
|
47
|
+
value="one"
|
|
48
|
+
/>,
|
|
49
|
+
);
|
|
50
|
+
const trigger = result.container.querySelector('[data-testid$="-trigger"]')!;
|
|
51
|
+
expect(trigger).toBeTruthy();
|
|
52
|
+
expect(trigger.className).not.toContain("_mih-44px");
|
|
53
|
+
expect(trigger.className).toContain("_h-37px");
|
|
54
|
+
expect(trigger.getAttribute("data-visual-height")).toBe("37");
|
|
55
|
+
expect(trigger.getAttribute("data-mp-press-slop")).toBe("4");
|
|
56
|
+
expect(trigger.getAttribute("data-mp-press-axis")).toBe("vertical");
|
|
57
|
+
expect(trigger.className).toContain("_miw-44px");
|
|
58
|
+
expect(trigger.className).toContain("_oy-visible");
|
|
59
|
+
const targetCss = document.getElementById("mp-button-press-slop")?.textContent;
|
|
60
|
+
expect(targetCss).toContain("isolation:isolate");
|
|
61
|
+
expect(targetCss).toContain("z-index:-1");
|
|
62
|
+
const label = result.getByText("First choice");
|
|
63
|
+
expect(label.className).toContain("_fos-14px");
|
|
64
|
+
});
|
|
65
|
+
it(`${name} table=${table} retains the shared touch recipe floor`, () => {
|
|
66
|
+
const recipe = sizeRecipeForToken("$3", { touch: true });
|
|
67
|
+
mode.height = recipe.height;
|
|
68
|
+
mode.fontSize = recipe.fontSize;
|
|
69
|
+
mode.table = table;
|
|
70
|
+
expect(recipe.height).toBeGreaterThanOrEqual(44);
|
|
71
|
+
const result = renderWithProviders(
|
|
72
|
+
<Picker
|
|
73
|
+
options={[
|
|
74
|
+
{ value: "one", label: "First choice" },
|
|
75
|
+
{ value: "two", label: "Second choice" },
|
|
76
|
+
]}
|
|
77
|
+
value="one"
|
|
78
|
+
/>,
|
|
79
|
+
);
|
|
80
|
+
const trigger = result.container.querySelector('[data-testid$="-trigger"]')!;
|
|
81
|
+
expect(trigger.className).toContain(`_h-${recipe.height}px`);
|
|
82
|
+
expect(trigger.getAttribute("data-press-floor")).toBe("box");
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { fireEvent } from "@testing-library/react";
|
|
3
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
|
+
import { describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { Select } from "./Select";
|
|
6
|
+
import { Combobox } from "./Combobox";
|
|
7
|
+
|
|
8
|
+
const recipe = vi.hoisted(() => ({ height: 37 }));
|
|
9
|
+
vi.mock("@multiplatform.one/theme", async (importOriginal) => {
|
|
10
|
+
const actual = await importOriginal<typeof import("@multiplatform.one/theme")>();
|
|
11
|
+
return {
|
|
12
|
+
...actual,
|
|
13
|
+
useResolvedKnobs: (...args: Parameters<typeof actual.useResolvedKnobs>) => {
|
|
14
|
+
const result = actual.useResolvedKnobs(...args);
|
|
15
|
+
return {
|
|
16
|
+
...result,
|
|
17
|
+
knobProps: {
|
|
18
|
+
...result.knobProps,
|
|
19
|
+
control: { ...result.knobProps.control, height: recipe.height },
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
vi.mock("../FloatingPanel", async (importOriginal) => ({
|
|
26
|
+
...(await importOriginal<typeof import("../FloatingPanel")>()),
|
|
27
|
+
useViewportGtSm: () => false,
|
|
28
|
+
FloatingPanel: ({ trigger, children }: { trigger?: ReactNode; children?: ReactNode }) => (
|
|
29
|
+
<>
|
|
30
|
+
{trigger}
|
|
31
|
+
{children}
|
|
32
|
+
</>
|
|
33
|
+
),
|
|
34
|
+
}));
|
|
35
|
+
|
|
36
|
+
describe("picker sheet rows consume resolved control height", () => {
|
|
37
|
+
for (const [name, Picker] of [
|
|
38
|
+
["Select", Select],
|
|
39
|
+
["Combobox", Combobox],
|
|
40
|
+
] as const) {
|
|
41
|
+
for (const height of [37, 48]) {
|
|
42
|
+
it(`${name} retains labels and selection at resolved height ${height}`, () => {
|
|
43
|
+
recipe.height = height;
|
|
44
|
+
const onValueChange = vi.fn();
|
|
45
|
+
const result = renderWithProviders(
|
|
46
|
+
<Picker
|
|
47
|
+
value="one"
|
|
48
|
+
onValueChange={onValueChange}
|
|
49
|
+
options={[
|
|
50
|
+
{ value: "one", label: "First choice" },
|
|
51
|
+
{ value: "two", label: "Second choice" },
|
|
52
|
+
]}
|
|
53
|
+
/>,
|
|
54
|
+
);
|
|
55
|
+
const row =
|
|
56
|
+
name === "Select"
|
|
57
|
+
? result.getByText("Second choice").parentElement!
|
|
58
|
+
: result.getByRole("option", { name: "Second choice" });
|
|
59
|
+
expect(row.className).toContain(`_h-${height}px`);
|
|
60
|
+
fireEvent.click(row);
|
|
61
|
+
expect(onValueChange).toHaveBeenCalledWith("two");
|
|
62
|
+
expect(onValueChange).toHaveBeenCalledTimes(1);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MIN_PRESS_TARGET } from "@multiplatform.one/theme";
|
|
2
|
+
import { pressSlopProps } from "./pressSlopProps";
|
|
3
|
+
|
|
4
|
+
/** LC-77 recipes own paint; LC-54 declares the remaining effective target. */
|
|
5
|
+
export function pickerTriggerContract(height: number) {
|
|
6
|
+
const belowFloor = height < MIN_PRESS_TARGET;
|
|
7
|
+
return {
|
|
8
|
+
minWidth: MIN_PRESS_TARGET,
|
|
9
|
+
"data-visual-height": String(height),
|
|
10
|
+
"data-press-floor": belowFloor ? "slop" : "box",
|
|
11
|
+
...pressSlopProps(height, belowFloor, "vertical"),
|
|
12
|
+
} as const;
|
|
13
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { pressSlopProps } from "./pressSlopProps";
|
|
3
|
+
import { pickerTriggerContract } from "./pickerTriggerContract";
|
|
4
|
+
|
|
5
|
+
const platform = vi.hoisted(() => ({ web: true }));
|
|
6
|
+
vi.mock("tamagui", async (importOriginal) => ({
|
|
7
|
+
...(await importOriginal<typeof import("tamagui")>()),
|
|
8
|
+
get isWeb() {
|
|
9
|
+
return platform.web;
|
|
10
|
+
},
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
platform.web = true;
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
describe("press-target deficient dimensions", () => {
|
|
18
|
+
it("expands a wide picker only vertically and reserves its own width floor", () => {
|
|
19
|
+
expect(pickerTriggerContract(37)).toMatchObject({
|
|
20
|
+
minWidth: 44,
|
|
21
|
+
"data-mp-press-slop": "4",
|
|
22
|
+
"data-mp-press-axis": "vertical",
|
|
23
|
+
});
|
|
24
|
+
expect(document.getElementById("mp-button-press-slop")?.textContent).toContain(
|
|
25
|
+
'[data-mp-press-slop="4"][data-mp-press-axis="vertical"]::after{inset:-4px 0}',
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
it("retains expansion in both dimensions for small icon controls", () => {
|
|
29
|
+
expect(pressSlopProps(28, true)).toEqual({ "data-mp-press-slop": "8" });
|
|
30
|
+
});
|
|
31
|
+
it("does not expand native picker width but retains icon hitSlop", () => {
|
|
32
|
+
platform.web = false;
|
|
33
|
+
expect(pickerTriggerContract(37)).toMatchObject({
|
|
34
|
+
minWidth: 44,
|
|
35
|
+
hitSlop: { top: 4, bottom: 4, left: 0, right: 0 },
|
|
36
|
+
});
|
|
37
|
+
expect(pressSlopProps(28, true)).toEqual({ hitSlop: { top: 8, bottom: 8, left: 8, right: 8 } });
|
|
38
|
+
});
|
|
39
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { MIN_PRESS_TARGET, pressTargetHitSlop, type HitSlopInsets } from "@multiplatform.one/theme";
|
|
2
|
+
import { isWeb } from "tamagui";
|
|
3
|
+
|
|
4
|
+
const PRESS_SLOP_STYLE_ID = "mp-button-press-slop";
|
|
5
|
+
|
|
6
|
+
function pressSlopStylesheet(): string {
|
|
7
|
+
const rules = ["[data-mp-press-slop]{position:relative;isolation:isolate}"];
|
|
8
|
+
for (let n = 1; n <= 16; n++) {
|
|
9
|
+
rules.push(
|
|
10
|
+
`[data-mp-press-slop="${n}"]::after{content:"";position:absolute;inset:-${n}px;z-index:-1}`,
|
|
11
|
+
);
|
|
12
|
+
rules.push(
|
|
13
|
+
`[data-mp-press-slop="${n}"][data-mp-press-axis="vertical"]::after{inset:-${n}px 0}`,
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
return rules.join("");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function ensureButtonPressSlop(): void {
|
|
20
|
+
if (!isWeb || typeof document === "undefined") return;
|
|
21
|
+
if (document.getElementById(PRESS_SLOP_STYLE_ID)) return;
|
|
22
|
+
const tag = document.createElement("style");
|
|
23
|
+
tag.id = PRESS_SLOP_STYLE_ID;
|
|
24
|
+
tag.textContent = pressSlopStylesheet();
|
|
25
|
+
document.head.appendChild(tag);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function pressSlopProps(
|
|
29
|
+
visualPx: number,
|
|
30
|
+
enabled: boolean,
|
|
31
|
+
axes: "both" | "vertical" = "both",
|
|
32
|
+
):
|
|
33
|
+
| { "data-mp-press-slop": string; "data-mp-press-axis"?: "vertical" }
|
|
34
|
+
| { hitSlop: HitSlopInsets }
|
|
35
|
+
| undefined {
|
|
36
|
+
if (!enabled || visualPx >= MIN_PRESS_TARGET) return undefined;
|
|
37
|
+
const hitSlop = pressTargetHitSlop(visualPx);
|
|
38
|
+
if (axes === "vertical") {
|
|
39
|
+
hitSlop.left = 0;
|
|
40
|
+
hitSlop.right = 0;
|
|
41
|
+
}
|
|
42
|
+
const outset = hitSlop.top;
|
|
43
|
+
if (outset <= 0) return undefined;
|
|
44
|
+
if (isWeb) {
|
|
45
|
+
ensureButtonPressSlop();
|
|
46
|
+
return {
|
|
47
|
+
"data-mp-press-slop": String(outset),
|
|
48
|
+
...(axes === "vertical" ? { "data-mp-press-axis": "vertical" as const } : undefined),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return { hitSlop };
|
|
52
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAYL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAEhB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAEL,KAAK,WAAW,IAAI,kBAAkB,EAUvC,MAAM,SAAS,CAAC;AAIjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AAMpE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAkC,CAAC;AAElG,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EACrC,MAAM,GAAE,gBAA4B,GACnC,gBAAgB,CAOlB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,OAAO,GACpB,gBAAgB,CAElB;AAaD,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElE,KAAK,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAqE7D,eAAO,MAAM,WAAW;;;;;;;;6CA4DtB,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC1F,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,MAAM,EACN,IAAI,EAAE,QAAQ,EACd,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAc,EACd,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,cAAc,EACd,uBAAiC,EACjC,gBAAgB,EAChB,YAAwB,EACxB,MAAM,EAAE,UAAU,EAClB,iBAAiB,EAAE,qBAAqB,EACxC,GAAG,KAAK,EACT,EAAE,WAAW,2CAkeb;yBAngBe,MAAM;;;iBA5BO,CAAC;YAAsB,CAAC"}
|
|
@@ -20,7 +20,7 @@ export interface ContextualSaveBarProps {
|
|
|
20
20
|
* Form reads this; the bar itself does not.
|
|
21
21
|
*/
|
|
22
22
|
onAutoCommit?: (name: string, value: unknown) => void;
|
|
23
|
-
/** Override
|
|
23
|
+
/** Override normal dirty-state copy; saving and failures retain their status. */
|
|
24
24
|
message?: string;
|
|
25
25
|
}
|
|
26
26
|
export declare function ContextualSaveBar({ forceVisible, discardDisabled, useBlocker, onSaved, message, }: ContextualSaveBarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ContextualSaveBar/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAExF,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ContextualSaveBar/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAExF,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuFD,wBAAgB,iBAAiB,CAAC,EAChC,YAAoB,EACpB,eAAuB,EACvB,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE,sBAAsB,2CA2MxB"}
|
|
@@ -19,6 +19,21 @@
|
|
|
19
19
|
* closes the panel
|
|
20
20
|
* - backdrop tap and the Android back button dismiss WITHOUT committing
|
|
21
21
|
*
|
|
22
|
+
* Entrance / driver notes (MPO-256):
|
|
23
|
+
* - The slide-in is driven by an EFFECT on `open`, not by `Modal.onShow`
|
|
24
|
+
* alone. `onShow` still fires it (it is the better moment when it arrives)
|
|
25
|
+
* but it is one of two triggers, guarded to run once per present. A sheet
|
|
26
|
+
* whose only path onto the screen is a native presentation callback is a
|
|
27
|
+
* sheet that is off-screen whenever that callback does not arrive.
|
|
28
|
+
* - Every animation inside the Modal uses the JS driver. On the New
|
|
29
|
+
* Architecture a native-driven Animated node inside a core RN `Modal`
|
|
30
|
+
* never advances: `setValue` still paints (the node is updated through the
|
|
31
|
+
* view's props), but `Animated.timing(...).start()` moves nothing. That
|
|
32
|
+
* left the sheet parked at `travel` — exactly one sheet-height BELOW its
|
|
33
|
+
* resting place, every row present in the a11y tree and none of them on
|
|
34
|
+
* screen. The drag path already used JS `setValue`, so this also stops the
|
|
35
|
+
* drag and the settle from fighting over two drivers.
|
|
36
|
+
*
|
|
22
37
|
* Hit-testing / open-race notes:
|
|
23
38
|
* - Fabric + Tamagui XGroup steal the responder without firing onPress, so
|
|
24
39
|
* this Pressable owns the open gesture and forces pointerEvents="none" on
|
|
@@ -27,7 +42,7 @@
|
|
|
27
42
|
* gesture, React batches setOpen(true) then setOpen(prev => !prev) → false
|
|
28
43
|
* and the sheet never appears. Fields should not also toggle open on native.
|
|
29
44
|
* - Opening a Modal under the same finger can synthesize a backdrop press;
|
|
30
|
-
* backdrop dismiss is armed
|
|
45
|
+
* backdrop dismiss is armed a short delay after the present begins.
|
|
31
46
|
*/
|
|
32
47
|
import type { FloatingPanelProps } from "./index";
|
|
33
48
|
export { useFloatingPanel, panelAnimationDuration, panelGrowDuration, panelTransition, panelViewportPadding, } from "./useFloatingPanel";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/index.native.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/index.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAmBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,uFAAuF;AACvF,wBAAgB,eAAe,YAE9B;AAoBD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,cAA0B,EAC1B,MAAM,EACN,eAAe,EACf,WAAW,EACX,SAAS,EACT,MAAgB,GACjB,EAAE,kBAAkB,2CA4WpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputParts/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,KAAK,IAAI,MAAM,EAWhB,MAAM,SAAS,CAAC;AACjB,OAAO,EAiBL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AA+BlC,eAAO,MAAM,YAAY;UACjB,cAAc;eACT,MAAM;YACT,WAAW,GAAG,MAAM;EACN,CAAC;AA2CzB,eAAO,MAAM,YAAY;uBACJ,OAAO;;EAE1B,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;;;;CAYvE,CAAC;AAuBF,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS;;;;;;;;cAiB1E;AAgCD,KAAK,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExC,wBAAgB,WAAW,CACzB,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,GAAG,QAAQ,GAAG,SAAS,CAGhC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAI1E;AAED,eAAO,MAAM,iBAAiB,i8CA8B5B,CAAC;AAIH,wBAAgB,yBAAyB,IAAI,IAAI,CAOhD;AA4BD,eAAO,MAAM,uBAAuB;;;;;;;;;;+BAzGT,GAAG;;;;;;2BANH,GAAG;;;;;;;;;;;;;;;;;;;+BAMH,GAAG;;;;;;2BANH,GAAG;;;;;;;;;CAkJpB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputParts/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Combobox/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA2BvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAS9C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Combobox/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Select/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,SAAS,EAAsB,MAAM,OAAO,CAAC;AAYtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Select/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,SAAS,EAAsB,MAAM,OAAO,CAAC;AAYtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAmCtD,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAS9E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,uFAAuF;IACvF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,+FAA+F;IAC/F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAw+CD,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,IAAI,EAAE,QAAQ,EACd,UAAU,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,MAAM,EACV,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAmC,EACnC,UAAU,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,QAAQ,EACR,OAAO,EACP,MAAM,EACN,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EACR,EAAE,WAAW,2CAqLb"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** LC-77 recipes own paint; LC-54 declares the remaining effective target. */
|
|
2
|
+
export declare function pickerTriggerContract(height: number): {
|
|
3
|
+
readonly minWidth: 44;
|
|
4
|
+
readonly "data-visual-height": string;
|
|
5
|
+
readonly "data-press-floor": "slop" | "box";
|
|
6
|
+
} | {
|
|
7
|
+
readonly "data-mp-press-slop": string;
|
|
8
|
+
readonly "data-mp-press-axis"?: "vertical";
|
|
9
|
+
readonly minWidth: 44;
|
|
10
|
+
readonly "data-visual-height": string;
|
|
11
|
+
readonly "data-press-floor": "slop" | "box";
|
|
12
|
+
} | {
|
|
13
|
+
readonly hitSlop: import("@multiplatform.one/theme").HitSlopInsets;
|
|
14
|
+
readonly minWidth: 44;
|
|
15
|
+
readonly "data-visual-height": string;
|
|
16
|
+
readonly "data-press-floor": "slop" | "box";
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=pickerTriggerContract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pickerTriggerContract.d.ts","sourceRoot":"","sources":["../../src/shared/pickerTriggerContract.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;EAQnD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type HitSlopInsets } from "@multiplatform.one/theme";
|
|
2
|
+
export declare function pressSlopProps(visualPx: number, enabled: boolean, axes?: "both" | "vertical"): {
|
|
3
|
+
"data-mp-press-slop": string;
|
|
4
|
+
"data-mp-press-axis"?: "vertical";
|
|
5
|
+
} | {
|
|
6
|
+
hitSlop: HitSlopInsets;
|
|
7
|
+
} | undefined;
|
|
8
|
+
//# sourceMappingURL=pressSlopProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pressSlopProps.d.ts","sourceRoot":"","sources":["../../src/shared/pressSlopProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA2BpG,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE,MAAM,GAAG,UAAmB,GAEhC;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,UAAU,CAAA;CAAE,GACnE;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,GAC1B,SAAS,CAiBZ"}
|