@multiplatform.one/forms 7.83.1 → 7.84.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/Button/index.cjs +4 -3
- package/dist/cjs/Button/index.native.js +7 -6
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +2 -1
- package/dist/cjs/Chip/index.native.js +2 -1
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.cjs +7 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +7 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
- package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
- package/dist/esm/Button/IconButtonGroup.native.js.map +1 -1
- package/dist/esm/Button/circleGlyph.native.js.map +1 -1
- package/dist/esm/Button/iconButtonGroupContext.native.js.map +1 -1
- package/dist/esm/Button/index.mjs +4 -3
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +7 -6
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Button/webGlass.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +3 -3
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +3 -3
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
- package/dist/esm/ControlGroup/index.native.js.map +1 -1
- package/dist/esm/DescriptionList/index.native.js.map +1 -1
- package/dist/esm/ErrorSummary.native.js.map +1 -1
- package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
- package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
- package/dist/esm/FieldDisplay/index.native.js.map +1 -1
- package/dist/esm/FieldGroup.native.js.map +1 -1
- package/dist/esm/FloatingPanel/PanelHeader.native.js.map +1 -1
- package/dist/esm/FloatingPanel/RegularPanel.native.js.map +1 -1
- package/dist/esm/FloatingPanel/compactFace.native.js.map +1 -1
- package/dist/esm/FloatingPanel/containingBlock.native.js.map +1 -1
- package/dist/esm/FloatingPanel/coverRect.native.js.map +1 -1
- package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -1
- package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
- package/dist/esm/FloatingPanel/paintedBox.native.js.map +1 -1
- package/dist/esm/FloatingPanel/panelWidth.native.js.map +1 -1
- package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
- package/dist/esm/FloatingPanel/regularPlacement.native.js.map +1 -1
- package/dist/esm/FloatingPanel/trailingAction.native.js.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/Form/index.native.js.map +1 -1
- package/dist/esm/Form/submissionController.native.js.map +1 -1
- package/dist/esm/Form/validateOn.native.js.map +1 -1
- package/dist/esm/FormGrid.native.js.map +1 -1
- package/dist/esm/FormSection.native.js.map +1 -1
- package/dist/esm/InputParts/PasswordReveal.native.js.map +1 -1
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/InputParts/keyboardAppearance.native.js.map +1 -1
- package/dist/esm/Label/index.native.js.map +1 -1
- package/dist/esm/MediaPicker/base64.native.js.map +1 -1
- package/dist/esm/MediaPicker/payload.native.js.map +1 -1
- package/dist/esm/MediaPicker/types.native.js.map +1 -1
- package/dist/esm/MediaPicker/useMediaPicker.native.js.map +1 -1
- package/dist/esm/Skeleton/index.native.js.map +1 -1
- package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
- package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
- package/dist/esm/Table/index.native.js.map +1 -1
- package/dist/esm/Wheel/haptic.native.js.map +1 -1
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/Wheel/wheelShared.native.js.map +1 -1
- package/dist/esm/actionLabel.native.js.map +1 -1
- package/dist/esm/fieldDefaults.native.js.map +1 -1
- package/dist/esm/fieldLayout.native.js.map +1 -1
- package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
- package/dist/esm/fields/Barcode/index.native.js.map +1 -1
- package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
- package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/SystemColorField.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
- package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
- package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
- package/dist/esm/fields/Duration/durationWheelTypes.native.js.map +1 -1
- package/dist/esm/fields/Duration/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -1
- package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/esm/fields/Icon/index.native.js.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js.map +1 -1
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -1
- package/dist/esm/fields/Progress/index.native.js.map +1 -1
- package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
- package/dist/esm/fields/Rating/types.native.js.map +1 -1
- package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
- package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -1
- package/dist/esm/fields/Select/SheetPickerRow.native.js.map +1 -1
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -1
- package/dist/esm/fields/Signature/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/esm/fields/Stepper/index.native.js.map +1 -1
- package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
- package/dist/esm/fields/Switch/footprint.native.js.map +1 -1
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TextArea/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs +8 -2
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -1
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js +8 -2
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
- package/dist/esm/fields/nativeSelect.native.js.map +1 -1
- package/dist/esm/fields/selectedOrder.native.js.map +1 -1
- package/dist/esm/formSpacing.native.js.map +1 -1
- package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keyboard/chain.native.js.map +1 -1
- package/dist/esm/keyboard/index.native.js.map +1 -1
- package/dist/esm/keyboard/types.native.js.map +1 -1
- package/dist/esm/requiredMarking.native.js.map +1 -1
- package/dist/esm/shared/CheckGlyph.native.js.map +1 -1
- package/dist/esm/shared/TimeColumn.native.js.map +1 -1
- package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
- package/dist/esm/shared/checkedOnField.native.js.map +1 -1
- package/dist/esm/shared/choiceRowPress.native.js.map +1 -1
- package/dist/esm/shared/colorRamps.native.js.map +1 -1
- package/dist/esm/shared/devWarn.native.js.map +1 -1
- package/dist/esm/shared/fieldRowContext.native.js.map +1 -1
- package/dist/esm/shared/floatingList.native.js.map +1 -1
- package/dist/esm/shared/focusManagement.native.js.map +1 -1
- package/dist/esm/shared/groupContext.native.js.map +1 -1
- package/dist/esm/shared/i18n.native.js.map +1 -1
- package/dist/esm/shared/instantMotion.native.js.map +1 -1
- package/dist/esm/shared/nativeA11y.native.js.map +1 -1
- package/dist/esm/shared/nativeAutoFocus.native.js.map +1 -1
- package/dist/esm/shared/overlaySizeClass.native.js.map +1 -1
- package/dist/esm/shared/overlayStack.native.js.map +1 -1
- package/dist/esm/shared/panelPortal.native.js.map +1 -1
- package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -1
- package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
- package/dist/esm/shared/restoreRetries.native.js.map +1 -1
- package/dist/esm/shared/sheetNavigation.native.js.map +1 -1
- package/dist/esm/shared/systemControlModules.gnome.native.js.map +1 -1
- package/dist/esm/shared/systemControls.native.js.map +1 -1
- package/dist/esm/shared/t.native.js.map +1 -1
- package/dist/esm/shared/tableCellContext.native.js.map +1 -1
- package/dist/esm/shared/useDragScroll.native.js.map +1 -1
- package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/esm/shared/utils.native.js.map +1 -1
- package/dist/esm/shared/zIndex.native.js.map +1 -1
- package/dist/esm/standardActions.native.js.map +1 -1
- package/dist/esm/themedPrimitives.native.js.map +1 -1
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/utils/LinkCell.native.js.map +1 -1
- package/dist/jsx/Button/index.mjs +4 -3
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +7 -6
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +3 -3
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +2 -1
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs +8 -2
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -1
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js +7 -1
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
- package/package.json +8 -8
- package/src/Button/Button.accentInk.spec.tsx +8 -5
- package/src/Button/Button.controlTiers.spec.tsx +26 -3
- package/src/Button/Button.statePrecedence.spec.tsx +151 -0
- package/src/Button/index.tsx +16 -3
- package/src/Chip/Chip.spec.tsx +42 -1
- package/src/Chip/index.tsx +8 -5
- package/src/FloatingPanel/FloatingPanel.scrollThenSheet.spec.tsx +85 -0
- package/src/fields/nativeDateTime/OsDateTimeSheet.countdownValue.native.spec.tsx +94 -0
- package/src/fields/nativeDateTime/OsDateTimeSheet.tsx +11 -2
- package/types/Button/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts +5 -0
- package/types/Chip/index.d.ts.map +1 -1
- package/types/fields/nativeDateTime/OsDateTimeSheet.d.ts.map +1 -1
package/src/Button/index.tsx
CHANGED
|
@@ -879,8 +879,10 @@ export function Button({
|
|
|
879
879
|
// state in the glyph.
|
|
880
880
|
const selectedFill = Boolean(isSelected) && !unavailable && !mediaPlate && !fieldGlyph;
|
|
881
881
|
// A glyph alone holds 3:1; beside a label both take the label's AA tint.
|
|
882
|
+
// LC-40: a disabled frameless button is its enabled twin dimmed, so it
|
|
883
|
+
// keeps the bar tint (FZ-8044).
|
|
882
884
|
const barInk =
|
|
883
|
-
accentInk && chromeless && !selectedFill && !unavailable && !confirmPlate
|
|
885
|
+
accentInk && chromeless && !selectedFill && (!unavailable || frameless) && !confirmPlate
|
|
884
886
|
? labelled
|
|
885
887
|
? glyphTint.label
|
|
886
888
|
: glyphTint.glyph
|
|
@@ -1035,6 +1037,17 @@ export function Button({
|
|
|
1035
1037
|
: textColor
|
|
1036
1038
|
: outlinedInk) ??
|
|
1037
1039
|
"$color";
|
|
1040
|
+
// FZ-8577: on web the frame carries its ink in CSS `color`, and a glyph
|
|
1041
|
+
// with no colour of its own would fill with the theme's `var(--color)`.
|
|
1042
|
+
const webGlyphInk =
|
|
1043
|
+
isWeb &&
|
|
1044
|
+
(props.color ??
|
|
1045
|
+
(unavailable ? disabledText.color : undefined) ??
|
|
1046
|
+
barInk ??
|
|
1047
|
+
plateInk ??
|
|
1048
|
+
outlinedInk) != null
|
|
1049
|
+
? "currentColor"
|
|
1050
|
+
: undefined;
|
|
1038
1051
|
const iconElement = loading ? (
|
|
1039
1052
|
<View flexShrink={0} data-button-loading="" aria-hidden>
|
|
1040
1053
|
<Spinner px={iconSize} color={nativeIconColor as string} aria-hidden />
|
|
@@ -1042,7 +1055,7 @@ export function Button({
|
|
|
1042
1055
|
) : glyph ? (
|
|
1043
1056
|
<View flexShrink={0}>
|
|
1044
1057
|
{isWeb ? (
|
|
1045
|
-
normalizeButtonIcon(glyph, iconSize)
|
|
1058
|
+
normalizeButtonIcon(glyph, iconSize, webGlyphInk)
|
|
1046
1059
|
) : (
|
|
1047
1060
|
<NativeButtonIcon icon={glyph} size={iconSize} color={nativeIconColor} />
|
|
1048
1061
|
)}
|
|
@@ -1055,7 +1068,7 @@ export function Button({
|
|
|
1055
1068
|
const iconAfterElement = glyphAfter ? (
|
|
1056
1069
|
<View flexShrink={0}>
|
|
1057
1070
|
{isWeb ? (
|
|
1058
|
-
normalizeButtonIcon(glyphAfter, iconSize)
|
|
1071
|
+
normalizeButtonIcon(glyphAfter, iconSize, webGlyphInk)
|
|
1059
1072
|
) : (
|
|
1060
1073
|
<NativeButtonIcon icon={glyphAfter} size={iconSize} color={nativeIconColor} />
|
|
1061
1074
|
)}
|
package/src/Chip/Chip.spec.tsx
CHANGED
|
@@ -3,12 +3,20 @@ import { fireEvent } from "@testing-library/react";
|
|
|
3
3
|
import { describe, expect, it, vi } from "vitest";
|
|
4
4
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
5
5
|
import {
|
|
6
|
+
DEFAULT_SCALE_ID,
|
|
6
7
|
Preset,
|
|
8
|
+
applyThemeScale,
|
|
7
9
|
generateScale,
|
|
8
10
|
defaultScaleInputs,
|
|
9
11
|
createDefaultThemeConfig,
|
|
12
|
+
densePreset,
|
|
10
13
|
} from "@multiplatform.one/theme";
|
|
11
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
CHIP_DISMISS_MIN_TARGET_FINE,
|
|
16
|
+
Chip,
|
|
17
|
+
chipDismissFloorOutset,
|
|
18
|
+
chipFrameGeometry,
|
|
19
|
+
} from "./index";
|
|
12
20
|
|
|
13
21
|
describe("Chip", () => {
|
|
14
22
|
it("renders its label", () => {
|
|
@@ -248,6 +256,39 @@ describe("Chip", () => {
|
|
|
248
256
|
});
|
|
249
257
|
});
|
|
250
258
|
|
|
259
|
+
describe("Chip vertical inset on every preset's scale (lockstep with components Chip, FZ-8018)", () => {
|
|
260
|
+
const sizes = ["$2", "$3", "$4", "$5"] as const;
|
|
261
|
+
|
|
262
|
+
it("draws the default scale exactly as a quarter of padX", () => {
|
|
263
|
+
for (const size of sizes) {
|
|
264
|
+
const { paddingHorizontal, paddingVertical } = chipFrameGeometry(size);
|
|
265
|
+
expect(paddingVertical).toBe(Math.round(paddingHorizontal * 0.25));
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
it("paints a space token on the installed scale wherever the default does", () => {
|
|
270
|
+
const themeConfig = createDefaultThemeConfig({ presets: { dense: densePreset } });
|
|
271
|
+
const dense = themeConfig.scales?.dense;
|
|
272
|
+
const defaults = themeConfig.scales?.[DEFAULT_SCALE_ID];
|
|
273
|
+
if (!dense || !defaults) throw new Error("scales missing");
|
|
274
|
+
const onDefault = Object.fromEntries(
|
|
275
|
+
sizes.map((size) => [size, chipFrameGeometry(size).paddingVertical]),
|
|
276
|
+
);
|
|
277
|
+
const defaultSpace = new Set(Object.values(defaults.tokens.space));
|
|
278
|
+
const denseSpace = new Set(Object.values(dense.tokens.space));
|
|
279
|
+
expect(defaultSpace.has(onDefault.$3)).toBe(true);
|
|
280
|
+
try {
|
|
281
|
+
applyThemeScale(dense);
|
|
282
|
+
for (const size of sizes) {
|
|
283
|
+
if (!defaultSpace.has(onDefault[size])) continue;
|
|
284
|
+
expect(denseSpace.has(chipFrameGeometry(size).paddingVertical)).toBe(true);
|
|
285
|
+
}
|
|
286
|
+
} finally {
|
|
287
|
+
applyThemeScale(defaults);
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
|
|
251
292
|
describe("Chip label line height", () => {
|
|
252
293
|
for (const [size, key] of [
|
|
253
294
|
[undefined, "3"],
|
package/src/Chip/index.tsx
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
pressTargetHitSlop,
|
|
10
10
|
radiusStopFromToken,
|
|
11
11
|
resolveRadiusClass,
|
|
12
|
+
scaleSpaceFractionPx,
|
|
12
13
|
sizeRecipeForToken,
|
|
13
14
|
sizeKeyBelow,
|
|
14
15
|
stackRadiusProps,
|
|
@@ -138,18 +139,20 @@ function resolveVariant(variant: ChipVariantProp | undefined): ChipVariant {
|
|
|
138
139
|
* Chip geometry rides the GENERATED `chip` family (LC-75 / LC-80):
|
|
139
140
|
* padX / font / icon / inner gap come from the recipe table — no handwritten
|
|
140
141
|
* per-size px map. The pill has no recipe height: it hugs its label, and the
|
|
141
|
-
* vertical inset
|
|
142
|
-
*
|
|
143
|
-
*
|
|
142
|
+
* vertical inset is a quarter of the recipe padX (preserves the audited $3/$4
|
|
143
|
+
* pill height), painted as the installed scale's `$space` token where the
|
|
144
|
+
* default scale's quarter lands on one (`scaleSpaceFractionPx`). Module-eval
|
|
145
|
+
* objects so styled() can flatten (pilot pattern: InputParts spreads
|
|
146
|
+
* `recipeFamilies.control.boxVariants`).
|
|
144
147
|
*/
|
|
145
148
|
const CHIP_RECIPE_FAMILY = "chip" as const;
|
|
146
149
|
const CHIP_SIZE_TOKENS = ["$2", "$3", "$4", "$5"] as const;
|
|
147
150
|
|
|
148
151
|
function chipPadY(paddingHorizontal: number): number {
|
|
149
|
-
return
|
|
152
|
+
return scaleSpaceFractionPx(paddingHorizontal, 0.25);
|
|
150
153
|
}
|
|
151
154
|
|
|
152
|
-
function chipFrameGeometry(token: string) {
|
|
155
|
+
export function chipFrameGeometry(token: string) {
|
|
153
156
|
const recipe = sizeRecipeForToken(token, { family: CHIP_RECIPE_FAMILY });
|
|
154
157
|
return {
|
|
155
158
|
paddingHorizontal: recipe.paddingHorizontal,
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-219 SCROLL-THEN-SHEET on the floating panel's sheet face (FZ-8031), the
|
|
3
|
+
* twin of `SheetModal.scrollThenSheet.spec.tsx`: a drag on the panel's
|
|
4
|
+
* scrolling content scrolls it and leaves the sheet still, and only the
|
|
5
|
+
* grabber zone moves the sheet. The hand-off at the top of the scroll is the
|
|
6
|
+
* open half, the same as on SheetModal.
|
|
7
|
+
*/
|
|
8
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
9
|
+
import { cleanup } from "@testing-library/react";
|
|
10
|
+
import { PanResponder } from "react-native";
|
|
11
|
+
import { afterEach, expect, it, vi } from "vitest";
|
|
12
|
+
import { Text } from "tamagui";
|
|
13
|
+
import { FloatingPanel } from "./index.native";
|
|
14
|
+
|
|
15
|
+
const views = vi.hoisted(() => [] as Array<{ kind: string; props: Record<string, unknown> }>);
|
|
16
|
+
|
|
17
|
+
vi.mock("react-native-web", async (importOriginal) => {
|
|
18
|
+
const actual = await importOriginal<typeof import("react-native")>();
|
|
19
|
+
const React = await import("react");
|
|
20
|
+
const record = (kind: string, Base: unknown) =>
|
|
21
|
+
React.forwardRef((props: Record<string, unknown>, ref) => {
|
|
22
|
+
views.push({ kind, props });
|
|
23
|
+
return React.createElement(Base as never, { ...props, ref });
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
...actual,
|
|
27
|
+
ActionSheetIOS: undefined,
|
|
28
|
+
Modal: ({ children }: { children: import("react").ReactNode }) => children,
|
|
29
|
+
useWindowDimensions: () => ({ width: 390, height: 844, scale: 3, fontScale: 1 }),
|
|
30
|
+
View: record("View", actual.View),
|
|
31
|
+
ScrollView: record("ScrollView", actual.ScrollView),
|
|
32
|
+
Animated: { ...actual.Animated, View: record("View", actual.Animated.View) },
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
afterEach(() => {
|
|
37
|
+
cleanup();
|
|
38
|
+
views.length = 0;
|
|
39
|
+
vi.restoreAllMocks();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
function mountWithSheetPan() {
|
|
43
|
+
const move = vi.fn();
|
|
44
|
+
const claim = () => true;
|
|
45
|
+
vi.spyOn(PanResponder, "create").mockImplementation(
|
|
46
|
+
(config) =>
|
|
47
|
+
({
|
|
48
|
+
panHandlers: { onResponderMove: move, onMoveShouldSetResponder: claim },
|
|
49
|
+
config,
|
|
50
|
+
}) as never,
|
|
51
|
+
);
|
|
52
|
+
renderWithProviders(
|
|
53
|
+
<FloatingPanel open onOpenChange={() => {}} trigger={<Text>Author</Text>} scrollable>
|
|
54
|
+
{Array.from({ length: 40 }, (_, i) => (
|
|
55
|
+
<Text key={i}>{`row ${i + 1}`}</Text>
|
|
56
|
+
))}
|
|
57
|
+
</FloatingPanel>,
|
|
58
|
+
);
|
|
59
|
+
const latest = new Map<unknown, { kind: string; props: Record<string, unknown> }>();
|
|
60
|
+
for (const view of views) latest.set(view.props.testID ?? view, view);
|
|
61
|
+
return { move, claim, mounted: [...latest.values()] };
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
it("draws the sheet face at phone width, with a scrolling body", () => {
|
|
65
|
+
const { mounted } = mountWithSheetPan();
|
|
66
|
+
expect(mounted.some((v) => v.props.testID === "floating-panel-sheet")).toBe(true);
|
|
67
|
+
expect(mounted.some((v) => v.kind === "ScrollView")).toBe(true);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it("puts the sheet's pan on the grabber zone only", () => {
|
|
71
|
+
const { move, mounted } = mountWithSheetPan();
|
|
72
|
+
const holders = mounted.filter((v) => v.props.onResponderMove === move);
|
|
73
|
+
expect(holders.map((v) => v.props.testID)).toEqual(["floating-panel-grabber"]);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("leaves the sheet still for a pan on the scrolling content", () => {
|
|
77
|
+
const { move, claim, mounted } = mountWithSheetPan();
|
|
78
|
+
for (const scroll of mounted.filter((v) => v.kind === "ScrollView")) {
|
|
79
|
+
expect(scroll.props.onResponderMove).not.toBe(move);
|
|
80
|
+
expect(scroll.props.onMoveShouldSetResponder).not.toBe(claim);
|
|
81
|
+
}
|
|
82
|
+
expect(move).not.toHaveBeenCalled();
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it.todo("at scroll offset 0 a downward pan on the content moves the sheet in the same gesture");
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
2
|
+
import { useEffect, useLayoutEffect } from "react";
|
|
3
|
+
import { describe, expect, it, vi } from "vitest";
|
|
4
|
+
import { OsDateTimeSheet } from "./OsDateTimeSheet";
|
|
5
|
+
|
|
6
|
+
const wheel = vi.hoisted(() => ({
|
|
7
|
+
mode: undefined as string | undefined,
|
|
8
|
+
date: undefined as number | undefined,
|
|
9
|
+
minutes: undefined as number | undefined,
|
|
10
|
+
}));
|
|
11
|
+
|
|
12
|
+
vi.mock("react-native-web", async (importOriginal) => ({
|
|
13
|
+
...(await importOriginal<typeof import("react-native")>()),
|
|
14
|
+
useWindowDimensions: () => ({ width: 390, height: 844, scale: 3, fontScale: 1 }),
|
|
15
|
+
}));
|
|
16
|
+
|
|
17
|
+
vi.mock("@multiplatform.one/platform", async (importOriginal) => {
|
|
18
|
+
const actual = (await importOriginal()) as Record<string, unknown>;
|
|
19
|
+
const real = actual.platform as Record<string, unknown>;
|
|
20
|
+
return {
|
|
21
|
+
...actual,
|
|
22
|
+
platform: new Proxy(
|
|
23
|
+
{},
|
|
24
|
+
{
|
|
25
|
+
get(_target, prop) {
|
|
26
|
+
if (prop === "isIos") return true;
|
|
27
|
+
if (prop === "isAndroid") return false;
|
|
28
|
+
return real[prop as string];
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
),
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// RNDateTimePickerComponentView.updatePropsForPicker on each commit: a changed
|
|
36
|
+
// `date` is set before a changed `mode`, and UIDatePicker only turns a date
|
|
37
|
+
// into a countdown while it is already in countdown mode (its floor is 1 min).
|
|
38
|
+
vi.mock("./dateTimePickerLoader", () => {
|
|
39
|
+
function UIDatePicker(props: { value: Date; mode: string }) {
|
|
40
|
+
useLayoutEffect(() => {
|
|
41
|
+
const instant = props.value.getTime();
|
|
42
|
+
if (instant !== wheel.date) {
|
|
43
|
+
wheel.date = instant;
|
|
44
|
+
if (wheel.mode === "countdown")
|
|
45
|
+
wheel.minutes = props.value.getHours() * 60 + props.value.getMinutes();
|
|
46
|
+
}
|
|
47
|
+
if (props.mode !== wheel.mode) {
|
|
48
|
+
wheel.mode = props.mode;
|
|
49
|
+
if (props.mode === "countdown") wheel.minutes = 1;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
useEffect(
|
|
53
|
+
() => () => {
|
|
54
|
+
wheel.mode = undefined;
|
|
55
|
+
wheel.date = undefined;
|
|
56
|
+
wheel.minutes = undefined;
|
|
57
|
+
},
|
|
58
|
+
[],
|
|
59
|
+
);
|
|
60
|
+
return <div data-testid="os-picker" />;
|
|
61
|
+
}
|
|
62
|
+
return { loadDateTimePicker: () => UIDatePicker };
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const at = (h: number, m: number) => {
|
|
66
|
+
const d = new Date(2026, 10, 2);
|
|
67
|
+
d.setHours(h, m, 0, 0);
|
|
68
|
+
return d;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
describe("OsDateTimeSheet countdown opens at the field's value (FZ-8111)", () => {
|
|
72
|
+
it("rests the iOS wheel at 1 h 30 m, not the 1 min floor", () => {
|
|
73
|
+
renderWithProviders(
|
|
74
|
+
<OsDateTimeSheet
|
|
75
|
+
open
|
|
76
|
+
mode="countdown"
|
|
77
|
+
value={at(1, 30)}
|
|
78
|
+
onCancel={vi.fn()}
|
|
79
|
+
onConfirm={vi.fn()}
|
|
80
|
+
/>,
|
|
81
|
+
);
|
|
82
|
+
expect(wheel.mode).toBe("countdown");
|
|
83
|
+
expect(wheel.minutes).toBe(90);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("reaches the value again when the sheet reopens", () => {
|
|
87
|
+
const props = { mode: "countdown" as const, onCancel: vi.fn(), onConfirm: vi.fn() };
|
|
88
|
+
const result = renderWithProviders(<OsDateTimeSheet {...props} open value={at(2, 15)} />);
|
|
89
|
+
expect(wheel.minutes).toBe(135);
|
|
90
|
+
result.rerender(<OsDateTimeSheet {...props} open={false} value={at(0, 45)} />);
|
|
91
|
+
result.rerender(<OsDateTimeSheet {...props} open value={at(0, 45)} />);
|
|
92
|
+
expect(wheel.minutes).toBe(45);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* does a missing `@react-native-community/datetimepicker` (an optional peer,
|
|
11
11
|
* loaded through `loadDateTimePicker`).
|
|
12
12
|
*/
|
|
13
|
-
import { useCallback, useContext, useState } from "react";
|
|
13
|
+
import { useCallback, useContext, useEffect, useState } from "react";
|
|
14
14
|
import {
|
|
15
15
|
Modal,
|
|
16
16
|
Pressable,
|
|
@@ -88,13 +88,22 @@ export function OsDateTimeSheet({
|
|
|
88
88
|
}, [value]);
|
|
89
89
|
|
|
90
90
|
const [wasOpen, setWasOpen] = useState(false);
|
|
91
|
+
const [countdownPrimed, setCountdownPrimed] = useState(false);
|
|
91
92
|
if (open && !wasOpen) {
|
|
92
93
|
setWasOpen(true);
|
|
93
94
|
setTemp(value);
|
|
94
95
|
setShowTimePicker(false);
|
|
96
|
+
setCountdownPrimed(false);
|
|
95
97
|
} else if (!open && wasOpen) {
|
|
96
98
|
setWasOpen(false);
|
|
97
99
|
}
|
|
100
|
+
// The native picker applies `date` before `mode` on mount, so the countdown
|
|
101
|
+
// wheel drops the first value and rests at 0 h 1 m. A second, different
|
|
102
|
+
// instant after mount lands while the wheel is already in countdown mode.
|
|
103
|
+
const primeCountdown = open && isIOS && pickerMode === "countdown" && !countdownPrimed;
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (primeCountdown) setCountdownPrimed(true);
|
|
106
|
+
}, [primeCountdown]);
|
|
98
107
|
|
|
99
108
|
function handleAndroidChange(event: DateTimePickerEvent, selected?: Date) {
|
|
100
109
|
if (event.type === "dismissed") {
|
|
@@ -241,7 +250,7 @@ export function OsDateTimeSheet({
|
|
|
241
250
|
</XStack>
|
|
242
251
|
<YStack {...knobProps.panelPadding} flexShrink={1} minHeight={0}>
|
|
243
252
|
<DateTimePicker
|
|
244
|
-
value={temp}
|
|
253
|
+
value={primeCountdown ? new Date(temp.getTime() + 1) : temp}
|
|
245
254
|
mode={pickerMode}
|
|
246
255
|
display={iosDisplay}
|
|
247
256
|
themeVariant={themeVariant}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":"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"}
|
package/types/Chip/index.d.ts
CHANGED
|
@@ -22,6 +22,11 @@ export interface ChipProps {
|
|
|
22
22
|
groupPosition?: GroupPosition;
|
|
23
23
|
groupOrientation?: GroupOrientation;
|
|
24
24
|
}
|
|
25
|
+
export declare function chipFrameGeometry(token: string): {
|
|
26
|
+
paddingHorizontal: number;
|
|
27
|
+
paddingVertical: number;
|
|
28
|
+
gap: number;
|
|
29
|
+
};
|
|
25
30
|
/**
|
|
26
31
|
* Exported so chip-scale companions (e.g. the Tags "Add Tag" trigger) share
|
|
27
32
|
* the exact same size variants — padding/font stay in lockstep with Chip for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Chip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Chip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAaL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAA+B,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMrE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC3F,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oEAAoE;IACpE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AA0GD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM;;;;EAO9C;AAyBD;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;6CA+BpB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;6CAgBnB,CAAC;AAiBH,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AA2GD,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,EACJ,OAAO,EAAE,WAAsB,EAC/B,KAAc,EACd,SAAS,EACT,QAAQ,EACR,QAAgB,EAChB,OAAO,EACP,IAAI,EACJ,aAAa,EACb,gBAA+B,GAChC,EAAE,SAAS,2CA6NX;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OsDateTimeSheet.d.ts","sourceRoot":"","sources":["../../../src/fields/nativeDateTime/OsDateTimeSheet.tsx"],"names":[],"mappings":"AAmCA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAExE,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CAClC,CAAC;AASF,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"OsDateTimeSheet.d.ts","sourceRoot":"","sources":["../../../src/fields/nativeDateTime/OsDateTimeSheet.tsx"],"names":[],"mappings":"AAmCA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAExE,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CAClC,CAAC;AASF,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,kDA8MtB"}
|