@multiplatform.one/forms 8.3.0 → 8.5.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/AdaptivePopup/index.native.js +2 -2
- package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
- package/dist/cjs/Button/IconButtonGroup.native.js.map +1 -1
- package/dist/cjs/Button/circleGlyph.native.js.map +1 -1
- package/dist/cjs/Button/iconButtonGroupContext.native.js.map +1 -1
- package/dist/cjs/Button/index.native.js +2 -2
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Button/webGlass.native.js.map +1 -1
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/Composer/index.cjs +10 -4
- package/dist/cjs/Composer/index.native.js +15 -9
- package/dist/cjs/Composer/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/index.native.js +3 -3
- package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
- package/dist/cjs/ControlGroup/index.cjs +2 -1
- package/dist/cjs/ControlGroup/index.native.js +3 -2
- package/dist/cjs/ControlGroup/index.native.js.map +1 -1
- package/dist/cjs/DescriptionList/index.native.js +2 -2
- package/dist/cjs/DescriptionList/index.native.js.map +1 -1
- package/dist/cjs/ErrorSummary.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/index.native.js +1 -1
- package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
- package/dist/cjs/FieldGroup.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/PanelHeader.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/RegularPanel.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/compactFace.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/containingBlock.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/coverRect.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/echoContext.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.cjs +11 -2
- package/dist/cjs/FloatingPanel/index.native.js +32 -17
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/paintedBox.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/panelWidth.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/regularPlacement.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/trailingAction.native.js +1 -1
- package/dist/cjs/FloatingPanel/trailingAction.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/cjs/Form/index.native.js +1 -1
- package/dist/cjs/Form/index.native.js.map +1 -1
- package/dist/cjs/Form/submissionController.native.js.map +1 -1
- package/dist/cjs/Form/validateOn.native.js.map +1 -1
- package/dist/cjs/FormGrid.native.js.map +1 -1
- package/dist/cjs/FormSection.native.js.map +1 -1
- package/dist/cjs/InputParts/PasswordReveal.native.js.map +1 -1
- package/dist/cjs/InputParts/index.cjs +1 -0
- package/dist/cjs/InputParts/index.native.js +1 -0
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/InputParts/keyboardAppearance.native.js.map +1 -1
- package/dist/cjs/Label/index.native.js.map +1 -1
- package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
- package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
- package/dist/cjs/MediaPicker/types.native.js.map +1 -1
- package/dist/cjs/MediaPicker/useMediaPicker.native.js.map +1 -1
- package/dist/cjs/Skeleton/index.native.js.map +1 -1
- package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
- package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
- package/dist/cjs/Table/index.native.js.map +1 -1
- package/dist/cjs/Wheel/haptic.native.js.map +1 -1
- package/dist/cjs/Wheel/index.cjs +22 -6
- package/dist/cjs/Wheel/index.native.js +26 -8
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
- package/dist/cjs/actionLabel.native.js.map +1 -1
- package/dist/cjs/fieldDefaults.native.js.map +1 -1
- package/dist/cjs/fieldLayout.native.js +1 -1
- package/dist/cjs/fieldLayout.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
- package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/index.native.js +2 -2
- package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -1
- package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/SystemColorField.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/index.native.js +2 -2
- package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
- package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.native.js +5 -5
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +3 -3
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/catalog.native.js +2 -2
- package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/index.native.js +2 -2
- package/dist/cjs/fields/DatePicker/parts.cjs +33 -30
- package/dist/cjs/fields/DatePicker/parts.native.js +36 -32
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
- package/dist/cjs/fields/Duration/DurationWheel.native.js +1 -1
- package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
- package/dist/cjs/fields/Duration/durationWheelTypes.native.js.map +1 -1
- package/dist/cjs/fields/Duration/index.native.js +3 -3
- package/dist/cjs/fields/Duration/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/index.cjs +32 -15
- package/dist/cjs/fields/FileUpload/index.native.js +42 -21
- package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/index.native.js +5 -5
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
- package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/cjs/fields/Icon/index.native.js +3 -3
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/ImageField/index.cjs +35 -20
- package/dist/cjs/fields/ImageField/index.native.js +39 -22
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.native.js +3 -3
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.native.js +3 -3
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.native.js +3 -3
- package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/otpCellEdge.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.native.js +3 -3
- package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -1
- package/dist/cjs/fields/Progress/index.cjs +5 -0
- package/dist/cjs/fields/Progress/index.native.js +6 -1
- package/dist/cjs/fields/Progress/index.native.js.map +1 -1
- package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/index.native.js +1 -1
- package/dist/cjs/fields/Rating/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
- package/dist/cjs/fields/Rating/types.native.js.map +1 -1
- package/dist/cjs/fields/SearchInput/index.native.js +2 -2
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/InlineChoices.native.js.map +1 -1
- package/dist/cjs/fields/Select/SheetPickerRow.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.native.js +4 -4
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -1
- package/dist/cjs/fields/Signature/index.native.js +2 -2
- package/dist/cjs/fields/Signature/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +38 -12
- package/dist/cjs/fields/Slider/index.native.js +40 -12
- package/dist/cjs/fields/Slider/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/index.native.js +2 -2
- package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
- package/dist/cjs/fields/Switch/footprint.native.js.map +1 -1
- package/dist/cjs/fields/Switch/index.cjs +10 -6
- package/dist/cjs/fields/Switch/index.native.js +12 -8
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TextArea/index.native.js +2 -2
- package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/catalog.native.js +3 -3
- package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/index.native.js +2 -2
- package/dist/cjs/fields/TimePicker/parts.cjs +9 -10
- package/dist/cjs/fields/TimePicker/parts.native.js +10 -11
- package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
- package/dist/cjs/fields/ToggleGroup/index.cjs +1 -0
- package/dist/cjs/fields/ToggleGroup/index.native.js +2 -1
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +1 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
- package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
- package/dist/cjs/fields/pickerHandle.cjs +18 -0
- package/dist/cjs/fields/pickerHandle.native.js +21 -0
- package/dist/cjs/fields/pickerHandle.native.js.map +1 -0
- package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
- package/dist/cjs/formSpacing.native.js.map +1 -1
- package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
- package/dist/cjs/hooks/useHoldCue.cjs +54 -0
- package/dist/cjs/hooks/useHoldCue.native.js +62 -0
- package/dist/cjs/hooks/useHoldCue.native.js.map +1 -0
- package/dist/cjs/index.cjs +15 -0
- package/dist/cjs/index.gnome.cjs +15 -0
- package/dist/cjs/index.gnome.native.js +52 -37
- package/dist/cjs/index.gnome.native.js.map +1 -1
- package/dist/cjs/index.native.js +61 -46
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
- package/dist/cjs/keyboard/chain.native.js.map +1 -1
- package/dist/cjs/keyboard/index.native.js.map +1 -1
- package/dist/cjs/keyboard/types.native.js.map +1 -1
- package/dist/cjs/nativeTwins.native.js.map +1 -1
- package/dist/cjs/requiredMarking.native.js.map +1 -1
- package/dist/cjs/shared/CheckGlyph.native.js.map +1 -1
- package/dist/cjs/shared/TimeColumn.native.js +1 -1
- package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
- package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
- package/dist/cjs/shared/checkedOnField.native.js.map +1 -1
- package/dist/cjs/shared/choiceRowPress.native.js.map +1 -1
- package/dist/cjs/shared/colorRamps.cjs +9 -7
- package/dist/cjs/shared/colorRamps.native.js +9 -7
- package/dist/cjs/shared/colorRamps.native.js.map +1 -1
- package/dist/cjs/shared/controlTrack.cjs +32 -0
- package/dist/cjs/shared/controlTrack.native.js +35 -0
- package/dist/cjs/shared/controlTrack.native.js.map +1 -0
- package/dist/cjs/shared/devWarn.native.js.map +1 -1
- package/dist/cjs/shared/fieldRowContext.native.js.map +1 -1
- package/dist/cjs/shared/floatingList.native.js +1 -1
- package/dist/cjs/shared/floatingList.native.js.map +1 -1
- package/dist/cjs/shared/focusManagement.native.js.map +1 -1
- package/dist/cjs/shared/groupContext.native.js.map +1 -1
- package/dist/cjs/shared/i18n.native.js.map +1 -1
- package/dist/cjs/shared/instantMotion.native.js.map +1 -1
- package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
- package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -1
- package/dist/cjs/shared/nativeOverlayWindow.native.js.map +1 -1
- package/dist/cjs/shared/overlaySizeClass.native.js.map +1 -1
- package/dist/cjs/shared/overlayStack.native.js.map +1 -1
- package/dist/cjs/shared/panelPortal.native.js.map +1 -1
- package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
- package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
- package/dist/cjs/shared/restoreRetries.native.js.map +1 -1
- package/dist/cjs/shared/sheetDetents.cjs +109 -0
- package/dist/cjs/shared/sheetDetents.native.js +125 -0
- package/dist/cjs/shared/sheetDetents.native.js.map +1 -0
- package/dist/cjs/shared/sheetNavigation.native.js.map +1 -1
- package/dist/cjs/shared/systemControlModules.gnome.native.js.map +1 -1
- package/dist/cjs/shared/systemControls.native.js.map +1 -1
- package/dist/cjs/shared/t.native.js.map +1 -1
- package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
- package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
- package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/cjs/shared/utils.native.js +1 -1
- package/dist/cjs/shared/utils.native.js.map +1 -1
- package/dist/cjs/shared/zIndex.native.js.map +1 -1
- package/dist/cjs/standardActions.native.js.map +1 -1
- package/dist/cjs/themedPrimitives.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/utils/LinkCell.native.js.map +1 -1
- package/dist/esm/Composer/index.mjs +10 -4
- package/dist/esm/Composer/index.mjs.map +1 -1
- package/dist/esm/Composer/index.native.js +14 -8
- package/dist/esm/Composer/index.native.js.map +1 -1
- package/dist/esm/ControlGroup/index.mjs +2 -1
- package/dist/esm/ControlGroup/index.mjs.map +1 -1
- package/dist/esm/ControlGroup/index.native.js +2 -1
- package/dist/esm/ControlGroup/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.mjs +12 -3
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +31 -16
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/InputParts/index.mjs +1 -0
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +1 -0
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Wheel/index.mjs +23 -7
- package/dist/esm/Wheel/index.mjs.map +1 -1
- package/dist/esm/Wheel/index.native.js +27 -9
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +35 -32
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +36 -32
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/index.mjs +33 -16
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +41 -20
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/ImageField/index.mjs +36 -21
- package/dist/esm/fields/ImageField/index.mjs.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js +38 -21
- package/dist/esm/fields/ImageField/index.native.js.map +1 -1
- package/dist/esm/fields/Progress/index.mjs +5 -0
- package/dist/esm/fields/Progress/index.mjs.map +1 -1
- package/dist/esm/fields/Progress/index.native.js +5 -0
- package/dist/esm/fields/Progress/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.mjs +38 -12
- package/dist/esm/fields/Slider/index.mjs.map +1 -1
- package/dist/esm/fields/Slider/index.native.js +39 -11
- package/dist/esm/fields/Slider/index.native.js.map +1 -1
- package/dist/esm/fields/Switch/index.mjs +10 -6
- package/dist/esm/fields/Switch/index.mjs.map +1 -1
- package/dist/esm/fields/Switch/index.native.js +10 -6
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.mjs +9 -10
- package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/parts.native.js +9 -10
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.mjs +2 -1
- package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js +2 -1
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/fields/pickerHandle.mjs +2 -0
- package/dist/esm/fields/pickerHandle.mjs.map +1 -0
- package/dist/esm/fields/pickerHandle.native.js +2 -0
- package/dist/esm/fields/pickerHandle.native.js.map +1 -0
- package/dist/esm/hooks/useHoldCue.mjs +27 -0
- package/dist/esm/hooks/useHoldCue.mjs.map +1 -0
- package/dist/esm/hooks/useHoldCue.native.js +32 -0
- package/dist/esm/hooks/useHoldCue.native.js.map +1 -0
- package/dist/esm/index.gnome.mjs +3 -1
- package/dist/esm/index.gnome.mjs.map +1 -1
- package/dist/esm/index.gnome.native.js +3 -1
- package/dist/esm/index.gnome.native.js.map +1 -1
- package/dist/esm/index.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/shared/colorRamps.mjs +9 -7
- package/dist/esm/shared/colorRamps.mjs.map +1 -1
- package/dist/esm/shared/colorRamps.native.js +9 -7
- package/dist/esm/shared/colorRamps.native.js.map +1 -1
- package/dist/esm/shared/controlTrack.mjs +7 -0
- package/dist/esm/shared/controlTrack.mjs.map +1 -0
- package/dist/esm/shared/controlTrack.native.js +7 -0
- package/dist/esm/shared/controlTrack.native.js.map +1 -0
- package/dist/esm/shared/nativeOverlayWindow.mjs.map +1 -1
- package/dist/esm/shared/sheetDetents.mjs +75 -0
- package/dist/esm/shared/sheetDetents.mjs.map +1 -0
- package/dist/esm/shared/sheetDetents.native.js +88 -0
- package/dist/esm/shared/sheetDetents.native.js.map +1 -0
- package/dist/esm/shared/systemControls.mjs.map +1 -1
- package/dist/esm/shared/systemControls.native.js.map +1 -1
- package/dist/jsx/Composer/index.mjs +10 -4
- package/dist/jsx/Composer/index.mjs.map +1 -1
- package/dist/jsx/Composer/index.native.js +14 -8
- package/dist/jsx/Composer/index.native.js.map +1 -1
- package/dist/jsx/ControlGroup/index.mjs +2 -1
- package/dist/jsx/ControlGroup/index.mjs.map +1 -1
- package/dist/jsx/ControlGroup/index.native.js +2 -1
- package/dist/jsx/ControlGroup/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +12 -3
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +32 -17
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/InputParts/index.mjs +1 -0
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +1 -0
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/Wheel/index.mjs +23 -7
- package/dist/jsx/Wheel/index.mjs.map +1 -1
- package/dist/jsx/Wheel/index.native.js +26 -8
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +35 -32
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +34 -30
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/index.mjs +33 -16
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +40 -19
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/ImageField/index.mjs +36 -21
- package/dist/jsx/fields/ImageField/index.mjs.map +1 -1
- package/dist/jsx/fields/ImageField/index.native.js +37 -20
- package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
- package/dist/jsx/fields/Progress/index.mjs +5 -0
- package/dist/jsx/fields/Progress/index.mjs.map +1 -1
- package/dist/jsx/fields/Progress/index.native.js +5 -0
- package/dist/jsx/fields/Progress/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/index.mjs +38 -12
- package/dist/jsx/fields/Slider/index.mjs.map +1 -1
- package/dist/jsx/fields/Slider/index.native.js +39 -11
- package/dist/jsx/fields/Slider/index.native.js.map +1 -1
- package/dist/jsx/fields/Switch/index.mjs +10 -6
- package/dist/jsx/fields/Switch/index.mjs.map +1 -1
- package/dist/jsx/fields/Switch/index.native.js +10 -6
- package/dist/jsx/fields/Switch/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.mjs +9 -10
- package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.native.js +9 -10
- package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.mjs +2 -1
- package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js +1 -0
- package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/pickerHandle.mjs +2 -0
- package/dist/jsx/fields/pickerHandle.mjs.map +1 -0
- package/dist/jsx/fields/pickerHandle.native.js +21 -0
- package/dist/jsx/fields/pickerHandle.native.js.map +1 -0
- package/dist/jsx/hooks/useHoldCue.mjs +27 -0
- package/dist/jsx/hooks/useHoldCue.mjs.map +1 -0
- package/dist/jsx/hooks/useHoldCue.native.js +62 -0
- package/dist/jsx/hooks/useHoldCue.native.js.map +1 -0
- package/dist/jsx/index.gnome.mjs +3 -1
- package/dist/jsx/index.gnome.mjs.map +1 -1
- package/dist/jsx/index.gnome.native.js +15 -0
- package/dist/jsx/index.gnome.native.js.map +1 -1
- package/dist/jsx/index.js +3 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +3 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +15 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/colorRamps.mjs +9 -7
- package/dist/jsx/shared/colorRamps.mjs.map +1 -1
- package/dist/jsx/shared/colorRamps.native.js +9 -7
- package/dist/jsx/shared/colorRamps.native.js.map +1 -1
- package/dist/jsx/shared/controlTrack.mjs +7 -0
- package/dist/jsx/shared/controlTrack.mjs.map +1 -0
- package/dist/jsx/shared/controlTrack.native.js +35 -0
- package/dist/jsx/shared/controlTrack.native.js.map +1 -0
- package/dist/jsx/shared/nativeOverlayWindow.mjs.map +1 -1
- package/dist/jsx/shared/nativeOverlayWindow.native.js.map +1 -1
- package/dist/jsx/shared/sheetDetents.mjs +75 -0
- package/dist/jsx/shared/sheetDetents.mjs.map +1 -0
- package/dist/jsx/shared/sheetDetents.native.js +125 -0
- package/dist/jsx/shared/sheetDetents.native.js.map +1 -0
- package/dist/jsx/shared/systemControls.mjs.map +1 -1
- package/package.json +11 -10
- package/src/Button/Button.controlTiers.spec.tsx +2 -2
- package/src/Composer/Composer.glass.spec.tsx +106 -0
- package/src/Composer/Composer.spec.tsx +11 -2
- package/src/Composer/index.tsx +11 -8
- package/src/ControlGroup/index.tsx +2 -1
- package/src/FloatingPanel/FloatingPanel.holdCue.native.spec.tsx +72 -0
- package/src/FloatingPanel/index.native.tsx +18 -19
- package/src/FloatingPanel/index.tsx +24 -2
- package/src/InputParts/index.tsx +1 -0
- package/src/Wheel/Wheel.edgeFade.spec.tsx +74 -0
- package/src/Wheel/index.tsx +25 -11
- package/src/fields/DatePicker/dateFieldMarks.spec.tsx +154 -0
- package/src/fields/DatePicker/parts.tsx +33 -30
- package/src/fields/FileUpload/index.tsx +45 -16
- package/src/fields/ImageField/index.tsx +42 -19
- package/src/fields/Progress/index.tsx +3 -0
- package/src/fields/Slider/Slider.system.native.spec.tsx +44 -0
- package/src/fields/Slider/index.tsx +40 -12
- package/src/fields/Stepper/Stepper.stories.tsx +42 -0
- package/src/fields/Switch/Switch.spec.tsx +14 -10
- package/src/fields/Switch/index.tsx +11 -7
- package/src/fields/TimePicker/parts.tsx +8 -8
- package/src/fields/ToggleGroup/index.tsx +7 -1
- package/src/fields/fieldTriggerSlot.spec.tsx +89 -0
- package/src/fields/pickerHandle.ts +13 -0
- package/src/hooks/useHoldCue.ts +26 -0
- package/src/index.gnome.ts +19 -0
- package/src/index.ts +20 -0
- package/src/overlayGround.spec.ts +5 -3
- package/src/shared/OverlayWindow.tsx +2 -2
- package/src/shared/colorRamps.ts +9 -6
- package/src/shared/controlTrack.ts +7 -0
- package/src/shared/nativeOverlayWindow.tsx +1 -1
- package/src/shared/sheetDetents.spec.ts +117 -0
- package/src/shared/sheetDetents.ts +183 -0
- package/src/shared/systemControls.ts +10 -2
- package/types/Composer/index.d.ts.map +1 -1
- package/types/ControlGroup/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.d.ts +9 -0
- package/types/FloatingPanel/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts +1 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/InputParts/index.d.ts +4 -4
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/Wheel/index.d.ts.map +1 -1
- package/types/fields/DatePicker/parts.d.ts +4 -3
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/FileUpload/index.d.ts +6 -1
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/ImageField/index.d.ts +7 -2
- package/types/fields/ImageField/index.d.ts.map +1 -1
- package/types/fields/Progress/index.d.ts.map +1 -1
- package/types/fields/Slider/index.d.ts.map +1 -1
- package/types/fields/Switch/index.d.ts.map +1 -1
- package/types/fields/ToggleGroup/index.d.ts.map +1 -1
- package/types/fields/pickerHandle.d.ts +12 -0
- package/types/fields/pickerHandle.d.ts.map +1 -0
- package/types/hooks/useHoldCue.d.ts +10 -0
- package/types/hooks/useHoldCue.d.ts.map +1 -0
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +1 -1
- package/types/index.gnome.d.ts +3 -0
- package/types/index.gnome.d.ts.map +1 -1
- package/types/shared/OverlayWindow.d.ts +2 -2
- package/types/shared/OverlayWindow.d.ts.map +1 -1
- package/types/shared/colorRamps.d.ts +8 -6
- package/types/shared/colorRamps.d.ts.map +1 -1
- package/types/shared/controlTrack.d.ts +3 -0
- package/types/shared/controlTrack.d.ts.map +1 -0
- package/types/shared/nativeOverlayWindow.d.ts +1 -1
- package/types/shared/nativeOverlayWindow.d.ts.map +1 -1
- package/types/shared/sheetDetents.d.ts +122 -0
- package/types/shared/sheetDetents.d.ts.map +1 -0
- package/types/shared/systemControls.d.ts +2 -1
- package/types/shared/systemControls.d.ts.map +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var controlTrack_exports = {};
|
|
26
|
+
__export(controlTrack_exports, {
|
|
27
|
+
useControlTrackFill: () => useControlTrackFill
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(controlTrack_exports);
|
|
30
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
31
|
+
var import_tamagui = require("tamagui");
|
|
32
|
+
function useControlTrackFill() {
|
|
33
|
+
return (0, import_theme.controlTrackFill)((0, import_theme.isDarkThemeName)((0, import_tamagui.useThemeName)()), (0, import_theme.useElevatedSurface)());
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=controlTrack.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty"],"sources":["../../../src/shared/controlTrack.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAoB;AAGtB,IAAAC,gBAAS,GAAAF,MAAA,CAAAG,wBAA8B;AAC5C,IAAAC,iBAAO,GAAAJ,MAAiB,CAAAK,mBAAgB;AAC1C,IAAAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","View","RNView","PortalHost","PortalProvider","OverlayStackProvider","jsx","jsxs","OverlayWindow","zIndex","children","shouldAddRootHost","pointerEvents","style","absoluteFill","testID","name"],"sources":["../../../src/shared/nativeOverlayWindow.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,IAAA,IAAQC,MAAA,QAAc;AAC3C,SAASC,UAAA,EAAYC,cAAA,QAAsB;AAC3C,SAASC,oBAAA,QAA4B;AAkBjC,SACEC,GAAA,EADFC,IAAA;AAFG,SAASC,cAAc;EAAEC,MAAA;EAAQC;AAAS,
|
|
1
|
+
{"version":3,"names":["StyleSheet","View","RNView","PortalHost","PortalProvider","OverlayStackProvider","jsx","jsxs","OverlayWindow","zIndex","children","shouldAddRootHost","pointerEvents","style","absoluteFill","testID","name"],"sources":["../../../src/shared/nativeOverlayWindow.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,IAAA,IAAQC,MAAA,QAAc;AAC3C,SAASC,UAAA,EAAYC,cAAA,QAAsB;AAC3C,SAASC,oBAAA,QAA4B;AAkBjC,SACEC,GAAA,EADFC,IAAA;AAFG,SAASC,cAAc;EAAEC,MAAA;EAAQC;AAAS,GAAiC;EAChF,OACE,eAAAH,IAAA,CAACH,cAAA;IAAeO,iBAAA,EAAmB;IACjCD,QAAA,kBAAAJ,GAAA,CAACD,oBAAA;MAAqBI,MAAA;MAAiBC;IAAA,CAAS,GAChD,eAAAJ,GAAA,CAACJ,MAAA;MAAOU,aAAA,EAAc;MAAWC,KAAA,EAAOb,UAAA,CAAWc,YAAA;MAAcC,MAAA,EAAO;MACtEL,QAAA,iBAAAJ,GAAA,CAACH,UAAA;QAAWa,IAAA,EAAK;MAAA,CAAO;IAAA,CAC1B;EAAA,CACF;AAEJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc"],"sources":["../../../src/shared/nativeOverlayWindow.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAY,CAAAC,cAAA;AACrB,IAAAC,gBAAS,GAAAF,MAAA,CAAAG,wBAA4B;AAkBjC,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAFG,IAAAC,YAAS,GAAAN,MAAgB,CAAAO,SAAQ,CAAAC,
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc"],"sources":["../../../src/shared/nativeOverlayWindow.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAY,CAAAC,cAAA;AACrB,IAAAC,gBAAS,GAAAF,MAAA,CAAAG,wBAA4B;AAkBjC,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAFG,IAAAC,YAAS,GAAAN,MAAgB,CAAAO,SAAQ,CAAAC,cAA0C;AAChF,IAAAC,QACE,GAAAA,CAAAC,MAAA,EAAAC,GAAA,KAAC;EACC,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAC;IAAAC,GAAA,EAAOF,GAAA,CAAAC,IAAA;IAAAE,UAAc;EAAW;AAEjC;AAGN,IAAAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA","ignoreList":[]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
const minSheetHeight = 180;
|
|
2
|
+
const largeDetentRatio = 0.85;
|
|
3
|
+
const fillSnapPoint = 60;
|
|
4
|
+
const sheetDismissThreshold = 56;
|
|
5
|
+
const sheetDetent = {
|
|
6
|
+
/** `.medium()` — half-open, for a sheet that owns a scrollport. */
|
|
7
|
+
medium: 55,
|
|
8
|
+
/** `.large()` — the sheet's full height. */
|
|
9
|
+
large: 100
|
|
10
|
+
};
|
|
11
|
+
const mediumDetent = sheetDetent.medium / 100;
|
|
12
|
+
function percent(value) {
|
|
13
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return null;
|
|
14
|
+
return Math.min(value, sheetDetent.large);
|
|
15
|
+
}
|
|
16
|
+
function descending(values) {
|
|
17
|
+
return Array.from(new Set(values)).sort((a, b) => b - a);
|
|
18
|
+
}
|
|
19
|
+
function resolveDetentPercents({
|
|
20
|
+
detents,
|
|
21
|
+
snapPoint,
|
|
22
|
+
scrollable
|
|
23
|
+
}) {
|
|
24
|
+
const declared = (detents ?? []).map(percent).filter(p => p !== null);
|
|
25
|
+
if (declared.length > 0) return descending(declared);
|
|
26
|
+
const points = [sheetDetent.large];
|
|
27
|
+
if (scrollable) points.push(sheetDetent.medium);
|
|
28
|
+
const single = percent(snapPoint);
|
|
29
|
+
if (single !== null) points.push(single);
|
|
30
|
+
return descending(points);
|
|
31
|
+
}
|
|
32
|
+
function openingDetentIndex(points, snapPoint) {
|
|
33
|
+
const single = percent(snapPoint);
|
|
34
|
+
if (single === null) return 0;
|
|
35
|
+
const index = points.indexOf(single);
|
|
36
|
+
return index === -1 ? 0 : index;
|
|
37
|
+
}
|
|
38
|
+
function resolveSheetDetents({
|
|
39
|
+
travel,
|
|
40
|
+
detents,
|
|
41
|
+
scrollable,
|
|
42
|
+
snapPoint
|
|
43
|
+
}) {
|
|
44
|
+
const points = resolveDetentPercents({
|
|
45
|
+
detents,
|
|
46
|
+
snapPoint,
|
|
47
|
+
scrollable
|
|
48
|
+
}).map(p => Math.round(travel * (p / 100)));
|
|
49
|
+
const floor = Math.min(minSheetHeight, travel);
|
|
50
|
+
return descending(points.filter(h => h >= floor));
|
|
51
|
+
}
|
|
52
|
+
function resolveWebSnap({
|
|
53
|
+
detents,
|
|
54
|
+
snapPoint,
|
|
55
|
+
scrollable,
|
|
56
|
+
fill
|
|
57
|
+
}) {
|
|
58
|
+
const declared = (detents ?? []).map(percent).filter(p => p !== null);
|
|
59
|
+
if (declared.length === 0 && snapPoint === void 0 && !fill) return {
|
|
60
|
+
snapPointsMode: "fit"
|
|
61
|
+
};
|
|
62
|
+
const opensAt = snapPoint ?? (declared.length === 0 ? fillSnapPoint : void 0);
|
|
63
|
+
const snapPoints = resolveDetentPercents({
|
|
64
|
+
detents,
|
|
65
|
+
snapPoint: opensAt,
|
|
66
|
+
scrollable
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
snapPointsMode: "percent",
|
|
70
|
+
snapPoints,
|
|
71
|
+
defaultPosition: openingDetentIndex(snapPoints, opensAt)
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export { fillSnapPoint, largeDetentRatio, mediumDetent, minSheetHeight, openingDetentIndex, resolveDetentPercents, resolveSheetDetents, resolveWebSnap, sheetDetent, sheetDismissThreshold };
|
|
75
|
+
//# sourceMappingURL=sheetDetents.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["minSheetHeight","largeDetentRatio","fillSnapPoint","sheetDismissThreshold","sheetDetent","medium","large","mediumDetent","percent","value","Number","isFinite","Math","min","descending","values","Array","from","Set","sort","a","b","resolveDetentPercents","detents","snapPoint","scrollable","declared","map","filter","p","length","points","push","single","openingDetentIndex","index","indexOf","resolveSheetDetents","travel","round","floor","h","resolveWebSnap","fill","snapPointsMode","opensAt","snapPoints","defaultPosition"],"sources":["../../../src/shared/sheetDetents.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var sheetDetents_exports = {};
|
|
26
|
+
__export(sheetDetents_exports, {
|
|
27
|
+
fillSnapPoint: () => fillSnapPoint,
|
|
28
|
+
largeDetentRatio: () => largeDetentRatio,
|
|
29
|
+
mediumDetent: () => mediumDetent,
|
|
30
|
+
minSheetHeight: () => minSheetHeight,
|
|
31
|
+
openingDetentIndex: () => openingDetentIndex,
|
|
32
|
+
resolveDetentPercents: () => resolveDetentPercents,
|
|
33
|
+
resolveSheetDetents: () => resolveSheetDetents,
|
|
34
|
+
resolveWebSnap: () => resolveWebSnap,
|
|
35
|
+
sheetDetent: () => sheetDetent,
|
|
36
|
+
sheetDismissThreshold: () => sheetDismissThreshold
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(sheetDetents_exports);
|
|
39
|
+
var minSheetHeight = 180;
|
|
40
|
+
var largeDetentRatio = 0.85;
|
|
41
|
+
var fillSnapPoint = 60;
|
|
42
|
+
var sheetDismissThreshold = 56;
|
|
43
|
+
var sheetDetent = {
|
|
44
|
+
/** `.medium()` — half-open, for a sheet that owns a scrollport. */
|
|
45
|
+
medium: 55,
|
|
46
|
+
/** `.large()` — the sheet's full height. */
|
|
47
|
+
large: 100
|
|
48
|
+
};
|
|
49
|
+
var mediumDetent = sheetDetent.medium / 100;
|
|
50
|
+
function percent(value) {
|
|
51
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return null;
|
|
52
|
+
return Math.min(value, sheetDetent.large);
|
|
53
|
+
}
|
|
54
|
+
function descending(values) {
|
|
55
|
+
return Array.from(new Set(values)).sort(function (a, b) {
|
|
56
|
+
return b - a;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function resolveDetentPercents(param) {
|
|
60
|
+
var {
|
|
61
|
+
detents,
|
|
62
|
+
snapPoint,
|
|
63
|
+
scrollable
|
|
64
|
+
} = param;
|
|
65
|
+
var declared = (detents !== null && detents !== void 0 ? detents : []).map(percent).filter(function (p) {
|
|
66
|
+
return p !== null;
|
|
67
|
+
});
|
|
68
|
+
if (declared.length > 0) return descending(declared);
|
|
69
|
+
var points = [sheetDetent.large];
|
|
70
|
+
if (scrollable) points.push(sheetDetent.medium);
|
|
71
|
+
var single = percent(snapPoint);
|
|
72
|
+
if (single !== null) points.push(single);
|
|
73
|
+
return descending(points);
|
|
74
|
+
}
|
|
75
|
+
function openingDetentIndex(points, snapPoint) {
|
|
76
|
+
var single = percent(snapPoint);
|
|
77
|
+
if (single === null) return 0;
|
|
78
|
+
var index = points.indexOf(single);
|
|
79
|
+
return index === -1 ? 0 : index;
|
|
80
|
+
}
|
|
81
|
+
function resolveSheetDetents(param) {
|
|
82
|
+
var {
|
|
83
|
+
travel,
|
|
84
|
+
detents,
|
|
85
|
+
scrollable,
|
|
86
|
+
snapPoint
|
|
87
|
+
} = param;
|
|
88
|
+
var points = resolveDetentPercents({
|
|
89
|
+
detents,
|
|
90
|
+
snapPoint,
|
|
91
|
+
scrollable
|
|
92
|
+
}).map(function (p) {
|
|
93
|
+
return Math.round(travel * (p / 100));
|
|
94
|
+
});
|
|
95
|
+
var floor = Math.min(minSheetHeight, travel);
|
|
96
|
+
return descending(points.filter(function (h) {
|
|
97
|
+
return h >= floor;
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
function resolveWebSnap(param) {
|
|
101
|
+
var {
|
|
102
|
+
detents,
|
|
103
|
+
snapPoint,
|
|
104
|
+
scrollable,
|
|
105
|
+
fill
|
|
106
|
+
} = param;
|
|
107
|
+
var declared = (detents !== null && detents !== void 0 ? detents : []).map(percent).filter(function (p) {
|
|
108
|
+
return p !== null;
|
|
109
|
+
});
|
|
110
|
+
if (declared.length === 0 && snapPoint === void 0 && !fill) return {
|
|
111
|
+
snapPointsMode: "fit"
|
|
112
|
+
};
|
|
113
|
+
var opensAt = snapPoint !== null && snapPoint !== void 0 ? snapPoint : declared.length === 0 ? fillSnapPoint : void 0;
|
|
114
|
+
var snapPoints = resolveDetentPercents({
|
|
115
|
+
detents,
|
|
116
|
+
snapPoint: opensAt,
|
|
117
|
+
scrollable
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
snapPointsMode: "percent",
|
|
121
|
+
snapPoints,
|
|
122
|
+
defaultPosition: openingDetentIndex(snapPoints, opensAt)
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=sheetDetents.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","sheetDetents_exports","fillSnapPoint","largeDetentRatio","mediumDetent","minSheetHeight","openingDetentIndex","resolveDetentPercents","resolveSheetDetents","resolveWebSnap","sheetDetent","sheetDismissThreshold","module","exports","medium","large","percent","Number","isFinite","Math","min","descending","values","Array","Set","sort","a","b","param","detents","snapPoint","scrollable","declared","map","filter","p","length","points","push","single"],"sources":["../../../src/shared/sheetDetents.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","isDarkThemeName","useTheme","useThemeName","Switch","systemControlPlatform","OS","useThemeLiteral","theme","token","value","startsWith","slice","val","useSystemControlScheme"],"sources":["../../../src/shared/systemControls.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,QAAA,
|
|
1
|
+
{"version":3,"names":["Platform","isDarkThemeName","useTheme","useThemeName","Switch","systemControlPlatform","OS","useThemeLiteral","theme","token","value","startsWith","slice","val","useSystemControlScheme"],"sources":["../../../src/shared/systemControls.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,QAAA,QAAyC;AAClD,SAASC,eAAA,QAAuB;AAChC,SAASC,QAAA,EAAUC,YAAA,QAAoB;AASvC,SAAmBC,MAAA,QAAwB;AAEpC,SAASC,sBAAA,EAA+C;EAC7D,OAAOL,QAAA,CAASM,EAAA,KAAO,SAASN,QAAA,CAASM,EAAA,KAAO,YAAYN,QAAA,CAASM,EAAA,GAAK;AAC5E;AAGO,SAASC,gBAAA,EAAyD;EACvE,MAAMC,KAAA,GAAQN,QAAA,CAAS;EACvB,OAAQO,KAAA,IAAU;IAChB,MAAMC,KAAA,GAAQF,KAAA,CAAMC,KAAA,CAAME,UAAA,CAAW,GAAG,IAAIF,KAAA,CAAMG,KAAA,CAAM,CAAC,IAAIH,KAAK,GAAGI,GAAA;IACrE,OAAO,OAAOH,KAAA,KAAU,WAAWA,KAAA,GAAQ;EAC7C;AACF;AAGO,SAASI,uBAAA,EAA2C;EACzD,OAAOb,eAAA,CAAgBE,YAAA,CAAa,CAAC,IAAI,SAAS;AACpD","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/forms",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.0",
|
|
4
4
|
"description": "Cross-platform form components with URL state management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@floating-ui/react": "^0.27.20",
|
|
73
|
-
"@multiplatform.one/platform": "^8.
|
|
74
|
-
"@multiplatform.one/router": "^8.
|
|
75
|
-
"@multiplatform.one/table-primitives": "^8.
|
|
76
|
-
"@multiplatform.one/theme": "^8.
|
|
73
|
+
"@multiplatform.one/platform": "^8.5.0",
|
|
74
|
+
"@multiplatform.one/router": "^8.5.0",
|
|
75
|
+
"@multiplatform.one/table-primitives": "^8.5.0",
|
|
76
|
+
"@multiplatform.one/theme": "^8.5.0",
|
|
77
77
|
"@phosphor-icons/react": "^2.1.10",
|
|
78
78
|
"@tamagui/get-font-sized": "2.7.6",
|
|
79
79
|
"@tamagui/get-token": "2.7.6",
|
|
@@ -88,14 +88,13 @@
|
|
|
88
88
|
"expo-linear-gradient": "~55.0.13",
|
|
89
89
|
"html5-qrcode": "^2.3.8",
|
|
90
90
|
"perfect-freehand": "^1.2.3",
|
|
91
|
-
"react-native-svg": "15.15.4",
|
|
92
91
|
"tamagui": "2.7.6"
|
|
93
92
|
},
|
|
94
93
|
"devDependencies": {
|
|
95
94
|
"@expo/ui": "~55.0.17",
|
|
96
|
-
"@multiplatform.one/config": "8.
|
|
97
|
-
"@multiplatform.one/storybook": "8.
|
|
98
|
-
"@multiplatform.one/test-utils": "8.
|
|
95
|
+
"@multiplatform.one/config": "8.5.0",
|
|
96
|
+
"@multiplatform.one/storybook": "8.5.0",
|
|
97
|
+
"@multiplatform.one/test-utils": "8.5.0",
|
|
99
98
|
"@tamagui/build": "2.7.6",
|
|
100
99
|
"@tamagui/config": "2.7.6",
|
|
101
100
|
"@tamagui/vite-plugin": "2.7.6",
|
|
@@ -113,6 +112,7 @@
|
|
|
113
112
|
"react": "19.2.5",
|
|
114
113
|
"react-dom": "19.2.5",
|
|
115
114
|
"react-i18next": "^16.6.6",
|
|
115
|
+
"react-native-svg": "15.15.4",
|
|
116
116
|
"react-native-web": "^0.21.2",
|
|
117
117
|
"vitest": "^4.1.12"
|
|
118
118
|
},
|
|
@@ -132,7 +132,8 @@
|
|
|
132
132
|
"react-dom": "^19.1.0",
|
|
133
133
|
"react-i18next": ">=14",
|
|
134
134
|
"react-native": ">=0.83.0",
|
|
135
|
-
"react-native-safe-area-context": "*"
|
|
135
|
+
"react-native-safe-area-context": "*",
|
|
136
|
+
"react-native-svg": "^15.15.0"
|
|
136
137
|
},
|
|
137
138
|
"peerDependenciesMeta": {
|
|
138
139
|
"@expo/ui": {
|
|
@@ -37,9 +37,9 @@ const SCHEMES = ["light", "dark"] as const;
|
|
|
37
37
|
type Scheme = (typeof SCHEMES)[number];
|
|
38
38
|
const WASH: Record<Scheme, { rest: string; hover: string; press: string }> = {
|
|
39
39
|
light: { rest: "color3", hover: "color4", press: "color5" },
|
|
40
|
-
dark: { rest: "
|
|
40
|
+
dark: { rest: "color5", hover: "color6", press: "color7" },
|
|
41
41
|
};
|
|
42
|
-
const ELEVATED_DARK_WASH = { rest: "
|
|
42
|
+
const ELEVATED_DARK_WASH = { rest: "color6", hover: "color7", press: "color8" };
|
|
43
43
|
|
|
44
44
|
function houseRender(ui: ReactElement, scheme: Scheme = "light", knobs?: object) {
|
|
45
45
|
return render(
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @vitest-environment jsdom
|
|
3
|
+
*
|
|
4
|
+
* LC-268 GLASS-SURFACE (FZ-10734). A composer is a bar: iOS 26 draws Messages'
|
|
5
|
+
* compose field and the buttons beside it on one material, so the composer's
|
|
6
|
+
* field and its tool buttons sit on the system's Liquid Glass. FZ-10606
|
|
7
|
+
* approved that for "the composer's field"; FZ-10608's rewrite wrapped the
|
|
8
|
+
* field and tools in `Surface painted elevated`, which resets the bar flag, so
|
|
9
|
+
* neither drew glass. The witnesses are the ones the components already
|
|
10
|
+
* publish: `data-mp-field-glass` on the field's box and `data-mp-icon-button`
|
|
11
|
+
* on the tool buttons.
|
|
12
|
+
*
|
|
13
|
+
* Off an iPhone nothing loads, and LC-268 says what the bar draws instead: the
|
|
14
|
+
* plain field and the bare tinted glyph ("glyph"), never the content-tier
|
|
15
|
+
* neutral glyph.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
19
|
+
import { useBarSurface } from "@multiplatform.one/theme";
|
|
20
|
+
import { MicrophoneIcon } from "@phosphor-icons/react";
|
|
21
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
22
|
+
import { IconButton } from "../Button";
|
|
23
|
+
import { Composer } from "./index";
|
|
24
|
+
|
|
25
|
+
const glass = vi.hoisted(() => ({ system: false }));
|
|
26
|
+
|
|
27
|
+
vi.mock("../Button/glass", async (importOriginal) => {
|
|
28
|
+
const real = await importOriginal<typeof import("../Button/glass")>();
|
|
29
|
+
function FakeSystemGlass({
|
|
30
|
+
glassEffectStyle,
|
|
31
|
+
isInteractive,
|
|
32
|
+
style: _style,
|
|
33
|
+
children,
|
|
34
|
+
}: Record<string, unknown>) {
|
|
35
|
+
return (
|
|
36
|
+
<div
|
|
37
|
+
data-glass="system"
|
|
38
|
+
data-effect={glassEffectStyle as string}
|
|
39
|
+
data-interactive={String(isInteractive)}
|
|
40
|
+
>
|
|
41
|
+
{children as never}
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
...real,
|
|
47
|
+
loadGlassView: () => (glass.system ? FakeSystemGlass : null),
|
|
48
|
+
loadFieldGlassView: () => (glass.system ? FakeSystemGlass : null),
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
afterEach(() => {
|
|
53
|
+
glass.system = false;
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
function BarProbe() {
|
|
57
|
+
return <span data-probe="tool" data-bar={String(useBarSurface())} />;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function composer() {
|
|
61
|
+
return (
|
|
62
|
+
<Composer
|
|
63
|
+
placeholder="Type a message"
|
|
64
|
+
tools={<IconButton icon={MicrophoneIcon} aria-label="Dictate" />}
|
|
65
|
+
/>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
describe("LC-268: the composer is a bar, so its field and tools take the glass", () => {
|
|
70
|
+
it("puts the field and the tool row on a bar surface", () => {
|
|
71
|
+
const result = renderWithProviders(<Composer placeholder="Ask" tools={<BarProbe />} />);
|
|
72
|
+
const probe = result.container.querySelector("[data-probe='tool']")!;
|
|
73
|
+
expect(probe.getAttribute("data-bar")).toBe("true");
|
|
74
|
+
expect(probe.closest("[data-composer-tools]")).not.toBeNull();
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it("on iOS 26 the field's ground is the system's glass", () => {
|
|
78
|
+
glass.system = true;
|
|
79
|
+
const { container } = renderWithProviders(composer());
|
|
80
|
+
const box = container.querySelector("[data-mp-field-glass]");
|
|
81
|
+
expect(box).not.toBeNull();
|
|
82
|
+
const layer = box!.querySelector("[data-glass='system']")!;
|
|
83
|
+
expect(layer.getAttribute("data-effect")).toBe("regular");
|
|
84
|
+
expect(layer.getAttribute("data-interactive")).toBe("false");
|
|
85
|
+
expect(box!.contains(container.querySelector("textarea, input"))).toBe(true);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it("on iOS 26 a tool button sits in system glass", () => {
|
|
89
|
+
glass.system = true;
|
|
90
|
+
const { container } = renderWithProviders(composer());
|
|
91
|
+
const tools = container.querySelector("[data-composer-tools]")!;
|
|
92
|
+
expect(tools.querySelector("[data-mp-icon-button]")!.getAttribute("data-mp-icon-button")).toBe(
|
|
93
|
+
"glass",
|
|
94
|
+
);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it("off an iPhone the field stays plain and a tool is the bare tinted glyph", () => {
|
|
98
|
+
const { container } = renderWithProviders(composer());
|
|
99
|
+
expect(container.querySelector("[data-mp-field-glass]")).toBeNull();
|
|
100
|
+
expect(container.querySelector("[data-glass]")).toBeNull();
|
|
101
|
+
const tools = container.querySelector("[data-composer-tools]")!;
|
|
102
|
+
expect(tools.querySelector("[data-mp-icon-button]")!.getAttribute("data-mp-icon-button")).toBe(
|
|
103
|
+
"glyph",
|
|
104
|
+
);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
@@ -25,7 +25,7 @@ describe("Composer", () => {
|
|
|
25
25
|
expect(onChange).toHaveBeenCalledWith("hello");
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
it("lays the tools out as one row inside the card,
|
|
28
|
+
it("lays the tools out as one row inside the card, on the composer's bar surface", () => {
|
|
29
29
|
const result = renderWithProviders(
|
|
30
30
|
<Composer
|
|
31
31
|
placeholder="Type a message"
|
|
@@ -40,7 +40,16 @@ describe("Composer", () => {
|
|
|
40
40
|
const row = result.container.querySelector("[data-composer-tools]") as HTMLElement;
|
|
41
41
|
expect(row.closest("[data-composer-card]")).not.toBeNull();
|
|
42
42
|
expect(row.querySelectorAll("[data-probe]")).toHaveLength(2);
|
|
43
|
-
expect(row.querySelector('[data-probe="first"]')!.getAttribute("data-bar")).toBe("
|
|
43
|
+
expect(row.querySelector('[data-probe="first"]')!.getAttribute("data-bar")).toBe("true");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("puts testID on the text field and a derived id on the outer stack (FZ-10735)", () => {
|
|
47
|
+
const result = renderWithProviders(<Composer placeholder="Ask" testID="chat-input" />);
|
|
48
|
+
const input = result.container.querySelector("input, textarea") as HTMLElement;
|
|
49
|
+
expect(input.getAttribute("data-testid")).toBe("chat-input");
|
|
50
|
+
const stack = result.container.querySelector("[data-composer]")!;
|
|
51
|
+
expect(stack.getAttribute("data-testid")).toBe("chat-input-root");
|
|
52
|
+
expect(stack.querySelector("[data-testid='chat-input']")).toBe(input);
|
|
44
53
|
});
|
|
45
54
|
|
|
46
55
|
it("draws the tool row inside the card and the footer under it", () => {
|
package/src/Composer/index.tsx
CHANGED
|
@@ -42,7 +42,7 @@ export function Composer({
|
|
|
42
42
|
}: ComposerProps) {
|
|
43
43
|
const { knobProps } = useResolvedKnobs({ component: "Card" });
|
|
44
44
|
return (
|
|
45
|
-
<YStack data-composer="" testID={testID} {...knobProps.gapSm}>
|
|
45
|
+
<YStack data-composer="" testID={testID ? `${testID}-root` : undefined} {...knobProps.gapSm}>
|
|
46
46
|
<YStack
|
|
47
47
|
data-composer-card=""
|
|
48
48
|
{...knobProps.panelPadding}
|
|
@@ -50,7 +50,7 @@ export function Composer({
|
|
|
50
50
|
{...knobProps.containerRadius}
|
|
51
51
|
{...knobProps.gapSm}
|
|
52
52
|
>
|
|
53
|
-
<Surface painted elevated>
|
|
53
|
+
<Surface painted elevated bar>
|
|
54
54
|
<Input
|
|
55
55
|
placeholder={placeholder}
|
|
56
56
|
label={placeholder}
|
|
@@ -61,12 +61,15 @@ export function Composer({
|
|
|
61
61
|
defaultValue={defaultValue}
|
|
62
62
|
onChangeText={(text: string) => onChange?.(text)}
|
|
63
63
|
inputProps={
|
|
64
|
-
|
|
65
|
-
?
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
{
|
|
65
|
+
...(testID ? { testID } : undefined),
|
|
66
|
+
...(onSubmit
|
|
67
|
+
? {
|
|
68
|
+
onSubmitEditing: (event: { nativeEvent?: { text?: string } }) =>
|
|
69
|
+
onSubmit(event?.nativeEvent?.text ?? value ?? ""),
|
|
70
|
+
}
|
|
71
|
+
: undefined),
|
|
72
|
+
} as never
|
|
70
73
|
}
|
|
71
74
|
/>
|
|
72
75
|
{tools ? (
|
|
@@ -186,7 +186,7 @@ function ControlGroupImpl({ children, orientation = "horizontal", ...props }: Co
|
|
|
186
186
|
<View
|
|
187
187
|
key={`seam-${index}`}
|
|
188
188
|
{...(isVertical ? hairline.line : hairline.vline)}
|
|
189
|
-
backgroundColor={
|
|
189
|
+
backgroundColor={formCommonColors.divider}
|
|
190
190
|
flexGrow={0}
|
|
191
191
|
flexShrink={0}
|
|
192
192
|
alignSelf="stretch"
|
|
@@ -235,6 +235,7 @@ function ControlGroupImpl({ children, orientation = "horizontal", ...props }: Co
|
|
|
235
235
|
backgroundColor={knobProps.outlined ? "transparent" : formInputColors.background.base}
|
|
236
236
|
{...knobProps.inputSurface}
|
|
237
237
|
{...knobProps.borderRadius}
|
|
238
|
+
borderColor={formInputColors.border.base}
|
|
238
239
|
{...elevationWrapperProps}
|
|
239
240
|
{...transitionProps(knobProps.motion.control, [
|
|
240
241
|
"borderRadius",
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
2
|
+
import { act, screen } from "@testing-library/react";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { Text } from "tamagui";
|
|
6
|
+
import { holdCueStartMs } from "../hooks/useHoldCue";
|
|
7
|
+
import { FloatingPanel } from "./index.native";
|
|
8
|
+
|
|
9
|
+
vi.mock("react-native-web", async (importOriginal) => {
|
|
10
|
+
const actual = await importOriginal<typeof import("react-native")>();
|
|
11
|
+
return {
|
|
12
|
+
...actual,
|
|
13
|
+
ActionSheetIOS: undefined,
|
|
14
|
+
Modal: ({ children, visible }: { children: import("react").ReactNode; visible: boolean }) =>
|
|
15
|
+
visible ? children : null,
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
vi.useFakeTimers();
|
|
21
|
+
});
|
|
22
|
+
afterEach(() => {
|
|
23
|
+
vi.useRealTimers();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
function ContextPanel() {
|
|
27
|
+
const [open, setOpen] = useState(false);
|
|
28
|
+
return (
|
|
29
|
+
<FloatingPanel
|
|
30
|
+
open={open}
|
|
31
|
+
onOpenChange={setOpen}
|
|
32
|
+
openOn="contextmenu"
|
|
33
|
+
trigger={<Text>Row</Text>}
|
|
34
|
+
triggerA11y={{ label: "Row" }}
|
|
35
|
+
>
|
|
36
|
+
<Text>Copy</Text>
|
|
37
|
+
</FloatingPanel>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function press(target: Element, type: "mousedown" | "mouseup") {
|
|
42
|
+
act(() => {
|
|
43
|
+
target.dispatchEvent(new MouseEvent(type, { bubbles: true, cancelable: true, button: 0 }));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
describe("FloatingPanel native context trigger hold cue (LC-197, FZ-8902)", () => {
|
|
48
|
+
it("shows the cue partway to the 500ms hold and clears it on release", () => {
|
|
49
|
+
renderWithProviders(<ContextPanel />);
|
|
50
|
+
const trigger = screen.getByRole("button", { name: "Row" });
|
|
51
|
+
press(trigger, "mousedown");
|
|
52
|
+
expect(trigger).not.toHaveAttribute("data-hold");
|
|
53
|
+
act(() => {
|
|
54
|
+
vi.advanceTimersByTime(holdCueStartMs);
|
|
55
|
+
});
|
|
56
|
+
expect(trigger).toHaveAttribute("data-hold", "progress");
|
|
57
|
+
expect(screen.queryByText("Copy")).toBeNull();
|
|
58
|
+
press(trigger, "mouseup");
|
|
59
|
+
expect(trigger).not.toHaveAttribute("data-hold");
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it("drops the cue when the hold opens the menu", () => {
|
|
63
|
+
renderWithProviders(<ContextPanel />);
|
|
64
|
+
const trigger = screen.getByRole("button", { name: "Row" });
|
|
65
|
+
press(trigger, "mousedown");
|
|
66
|
+
act(() => {
|
|
67
|
+
vi.advanceTimersByTime(600);
|
|
68
|
+
});
|
|
69
|
+
expect(screen.getByText("Copy")).toBeTruthy();
|
|
70
|
+
expect(trigger).not.toHaveAttribute("data-hold");
|
|
71
|
+
});
|
|
72
|
+
});
|