@multiplatform.one/forms 7.7.4 → 7.8.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 +3 -36
- package/dist/cjs/Button/index.native.js +3 -36
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +1 -1
- package/dist/cjs/Chip/index.native.js +1 -1
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/index.cjs +17 -10
- package/dist/cjs/ContextualSaveBar/index.native.js +18 -10
- package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.cjs +59 -14
- package/dist/cjs/FloatingPanel/index.native.js +16 -7
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/nestedAction.cjs +37 -0
- package/dist/cjs/FloatingPanel/nestedAction.native.js +42 -0
- package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -0
- package/dist/cjs/InputParts/index.cjs +11 -7
- package/dist/cjs/InputParts/index.native.js +12 -10
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/Wheel/index.cjs +3 -3
- package/dist/cjs/Wheel/index.native.js +3 -3
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/fieldLayout.cjs +3 -3
- package/dist/cjs/fieldLayout.native.js +3 -3
- package/dist/cjs/fieldLayout.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.cjs +9 -2
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js +10 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +74 -76
- package/dist/cjs/fields/Combobox/index.native.js +78 -86
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/Calendar.cjs +6 -1
- package/dist/cjs/fields/DatePicker/Calendar.native.js +6 -1
- package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.cjs +2 -2
- 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.cjs +15 -12
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +16 -12
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +39 -14
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MonthPicker.cjs +10 -3
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js +10 -3
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MultiDatePicker.cjs +2 -2
- 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/index.native.js +3 -0
- package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.cjs +26 -14
- package/dist/cjs/fields/DatePicker/parts.native.js +28 -14
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/geocoder.cjs +63 -0
- package/dist/cjs/fields/Geolocation/geocoder.native.js +68 -0
- package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -0
- package/dist/cjs/fields/Geolocation/index.cjs +801 -152
- package/dist/cjs/fields/Geolocation/index.native.js +856 -167
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/nativeSearchFocus.cjs +44 -0
- package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js +47 -0
- package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -0
- package/dist/cjs/fields/Icon/drawnSet.cjs +14 -3
- package/dist/cjs/fields/Icon/drawnSet.native.js +18 -3
- package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/cjs/fields/Icon/index.cjs +102 -27
- package/dist/cjs/fields/Icon/index.native.js +115 -31
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.cjs +5 -12
- package/dist/cjs/fields/Input/index.native.js +5 -13
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.cjs +2 -2
- package/dist/cjs/fields/PhoneInput/index.native.js +2 -2
- package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/cjs/fields/SearchInput/index.cjs +8 -9
- package/dist/cjs/fields/SearchInput/index.native.js +8 -9
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +53 -18
- package/dist/cjs/fields/Select/index.native.js +63 -37
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/index.cjs +144 -31
- package/dist/cjs/fields/Stepper/index.native.js +151 -31
- package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/focusManagement.cjs +24 -11
- package/dist/cjs/shared/focusManagement.native.js +24 -11
- package/dist/cjs/shared/focusManagement.native.js.map +1 -1
- package/dist/cjs/shared/pickerTriggerContract.cjs +38 -0
- package/dist/cjs/shared/pickerTriggerContract.native.js +41 -0
- package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -0
- package/dist/cjs/shared/pressSlopProps.cjs +68 -0
- package/dist/cjs/shared/pressSlopProps.native.js +72 -0
- package/dist/cjs/shared/pressSlopProps.native.js.map +1 -0
- package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
- package/dist/esm/Button/index.mjs +1 -34
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +1 -34
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +1 -1
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +1 -1
- 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.mjs +17 -10
- package/dist/esm/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/esm/ContextualSaveBar/index.native.js +18 -10
- package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/esm/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/index.mjs +58 -15
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +15 -8
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/nestedAction.mjs +11 -0
- package/dist/esm/FloatingPanel/nestedAction.mjs.map +1 -0
- package/dist/esm/FloatingPanel/nestedAction.native.js +13 -0
- package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -0
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/Form/index.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/index.mjs +12 -8
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +13 -11
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Label/index.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.mjs +3 -3
- package/dist/esm/Wheel/index.mjs.map +1 -1
- package/dist/esm/Wheel/index.native.js +3 -3
- package/dist/esm/Wheel/index.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.mjs +3 -3
- package/dist/esm/fieldLayout.mjs.map +1 -1
- package/dist/esm/fieldLayout.native.js +3 -3
- 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.mjs +8 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js +10 -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/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +74 -76
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +78 -86
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.mjs +6 -1
- package/dist/esm/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js +6 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs +2 -2
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs +15 -12
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js +16 -12
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js +39 -14
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.mjs +10 -3
- package/dist/esm/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.native.js +10 -3
- package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs +2 -2
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js +2 -2
- 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/index.native.js +3 -0
- package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +28 -16
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +30 -16
- 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/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/GeolocationMap.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/GeolocationMap.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.mjs +33 -0
- package/dist/esm/fields/Geolocation/geocoder.mjs.map +1 -0
- package/dist/esm/fields/Geolocation/geocoder.native.js +35 -0
- package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -0
- package/dist/esm/fields/Geolocation/index.mjs +792 -149
- package/dist/esm/fields/Geolocation/index.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js +847 -164
- 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.mjs +19 -0
- package/dist/esm/fields/Geolocation/nativeSearchFocus.mjs.map +1 -0
- package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js +19 -0
- package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -0
- package/dist/esm/fields/Icon/drawnSet.mjs +14 -3
- package/dist/esm/fields/Icon/drawnSet.mjs.map +1 -1
- package/dist/esm/fields/Icon/drawnSet.native.js +18 -3
- package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/esm/fields/Icon/index.mjs +93 -18
- package/dist/esm/fields/Icon/index.mjs.map +1 -1
- package/dist/esm/fields/Icon/index.native.js +106 -22
- 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.mjs +5 -12
- package/dist/esm/fields/Input/index.mjs.map +1 -1
- package/dist/esm/fields/Input/index.native.js +5 -13
- 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.mjs +2 -2
- package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/esm/fields/PhoneInput/index.native.js +2 -2
- 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/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.mjs +9 -10
- package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
- package/dist/esm/fields/SearchInput/index.native.js +9 -10
- package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +54 -19
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +64 -38
- package/dist/esm/fields/Select/index.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.mjs +145 -32
- package/dist/esm/fields/Stepper/index.mjs.map +1 -1
- package/dist/esm/fields/Stepper/index.native.js +152 -32
- 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/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.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.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.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/requiredMarking.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/colorRamps.native.js.map +1 -1
- package/dist/esm/shared/devWarn.native.js.map +1 -1
- package/dist/esm/shared/floatingList.native.js.map +1 -1
- package/dist/esm/shared/focusManagement.mjs +24 -11
- package/dist/esm/shared/focusManagement.mjs.map +1 -1
- package/dist/esm/shared/focusManagement.native.js +24 -11
- 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/pickerTriggerContract.mjs +13 -0
- package/dist/esm/shared/pickerTriggerContract.mjs.map +1 -0
- package/dist/esm/shared/pickerTriggerContract.native.js +13 -0
- package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -0
- package/dist/esm/shared/pressSlopProps.mjs +43 -0
- package/dist/esm/shared/pressSlopProps.mjs.map +1 -0
- package/dist/esm/shared/pressSlopProps.native.js +44 -0
- package/dist/esm/shared/pressSlopProps.native.js.map +1 -0
- package/dist/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/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 +1 -34
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +3 -36
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +1 -1
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +1 -1
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.mjs +17 -10
- package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.native.js +18 -10
- package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +58 -15
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +16 -7
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/nestedAction.mjs +11 -0
- package/dist/jsx/FloatingPanel/nestedAction.mjs.map +1 -0
- package/dist/jsx/FloatingPanel/nestedAction.native.js +42 -0
- package/dist/jsx/FloatingPanel/nestedAction.native.js.map +1 -0
- package/dist/jsx/InputParts/index.mjs +12 -8
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +12 -10
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/Wheel/index.mjs +3 -3
- package/dist/jsx/Wheel/index.mjs.map +1 -1
- package/dist/jsx/Wheel/index.native.js +3 -3
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/fieldLayout.mjs +3 -3
- package/dist/jsx/fieldLayout.mjs.map +1 -1
- package/dist/jsx/fieldLayout.native.js +3 -3
- package/dist/jsx/fieldLayout.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs +8 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js +10 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +74 -76
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +78 -86
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.mjs +6 -1
- package/dist/jsx/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.native.js +6 -1
- package/dist/jsx/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs +2 -2
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs +15 -12
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js +16 -12
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +39 -14
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs +10 -3
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js +10 -3
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs +2 -2
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +2 -2
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/index.native.js +3 -0
- package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +28 -16
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +28 -14
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/GeolocationMap.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/geocoder.mjs +33 -0
- package/dist/jsx/fields/Geolocation/geocoder.mjs.map +1 -0
- package/dist/jsx/fields/Geolocation/geocoder.native.js +68 -0
- package/dist/jsx/fields/Geolocation/geocoder.native.js.map +1 -0
- package/dist/jsx/fields/Geolocation/index.mjs +792 -149
- package/dist/jsx/fields/Geolocation/index.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/index.native.js +856 -167
- package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.mjs +19 -0
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.mjs.map +1 -0
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.native.js +47 -0
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.native.js.map +1 -0
- package/dist/jsx/fields/Icon/drawnSet.mjs +14 -3
- package/dist/jsx/fields/Icon/drawnSet.mjs.map +1 -1
- package/dist/jsx/fields/Icon/drawnSet.native.js +18 -3
- package/dist/jsx/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/jsx/fields/Icon/index.mjs +93 -18
- package/dist/jsx/fields/Icon/index.mjs.map +1 -1
- package/dist/jsx/fields/Icon/index.native.js +115 -31
- package/dist/jsx/fields/Icon/index.native.js.map +1 -1
- package/dist/jsx/fields/Input/index.mjs +5 -12
- package/dist/jsx/fields/Input/index.mjs.map +1 -1
- package/dist/jsx/fields/Input/index.native.js +5 -13
- package/dist/jsx/fields/Input/index.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.mjs +2 -2
- package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.native.js +2 -2
- package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/jsx/fields/SearchInput/index.mjs +9 -10
- package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
- package/dist/jsx/fields/SearchInput/index.native.js +8 -9
- package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +54 -19
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +63 -37
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Stepper/index.mjs +145 -32
- package/dist/jsx/fields/Stepper/index.mjs.map +1 -1
- package/dist/jsx/fields/Stepper/index.native.js +151 -31
- package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
- package/dist/jsx/index.js +2 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +2 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/focusManagement.mjs +24 -11
- package/dist/jsx/shared/focusManagement.mjs.map +1 -1
- package/dist/jsx/shared/focusManagement.native.js +24 -11
- package/dist/jsx/shared/focusManagement.native.js.map +1 -1
- package/dist/jsx/shared/pickerTriggerContract.mjs +13 -0
- package/dist/jsx/shared/pickerTriggerContract.mjs.map +1 -0
- package/dist/jsx/shared/pickerTriggerContract.native.js +41 -0
- package/dist/jsx/shared/pickerTriggerContract.native.js.map +1 -0
- package/dist/jsx/shared/pressSlopProps.mjs +43 -0
- package/dist/jsx/shared/pressSlopProps.mjs.map +1 -0
- package/dist/jsx/shared/pressSlopProps.native.js +72 -0
- package/dist/jsx/shared/pressSlopProps.native.js.map +1 -0
- package/package.json +8 -7
- package/src/Button/Button.labelInk.spec.tsx +21 -18
- package/src/Button/Button.outlinedChannel.spec.tsx +46 -0
- package/src/Button/Button.sizeLadder.spec.tsx +4 -3
- package/src/Button/Button.stories.tsx +20 -0
- package/src/Button/index.tsx +26 -39
- package/src/Chip/Chip.spec.tsx +3 -1
- package/src/Chip/index.tsx +1 -5
- package/src/ContextualSaveBar/ContextualSaveBar.spec.tsx +33 -0
- package/src/ContextualSaveBar/ContextualSaveBar.stories.tsx +19 -0
- package/src/ContextualSaveBar/index.tsx +12 -8
- package/src/ContextualSaveBar/nativeFlow.spec.tsx +20 -0
- package/src/FieldLayout.stories.tsx +41 -0
- package/src/FloatingPanel/FloatingPanel.native.spec.tsx +54 -0
- package/src/FloatingPanel/FloatingPanel.spec.tsx +109 -0
- package/src/FloatingPanel/index.native.tsx +24 -7
- package/src/FloatingPanel/index.tsx +80 -13
- package/src/FloatingPanel/nestedAction.spec.ts +36 -0
- package/src/FloatingPanel/nestedAction.ts +15 -0
- package/src/FloatingPanel/panelWidthContract.spec.ts +12 -15
- package/src/FormsIntegration.stories.tsx +2 -6
- package/src/InputParts/index.tsx +20 -6
- package/src/InputParts/layoutGap.spec.tsx +43 -0
- package/src/Wheel/Wheel.spec.tsx +16 -0
- package/src/Wheel/index.tsx +3 -3
- package/src/fieldLayout.spec.tsx +42 -1
- package/src/fieldLayout.tsx +9 -9
- package/src/fields/Checkbox/CheckboxFieldFrame.spec.tsx +18 -0
- package/src/fields/Checkbox/CheckboxFieldFrame.tsx +6 -1
- package/src/fields/Combobox/Combobox.spec.tsx +48 -1
- package/src/fields/Combobox/index.tsx +90 -80
- package/src/fields/DatePicker/Calendar.tsx +4 -1
- package/src/fields/DatePicker/DatePicker.stories.tsx +22 -1
- package/src/fields/DatePicker/DateRangePicker.tsx +4 -2
- package/src/fields/DatePicker/DatetimePicker.catalog.tsx +21 -19
- package/src/fields/DatePicker/DatetimePicker.native.spec.tsx +144 -0
- package/src/fields/DatePicker/DatetimePicker.native.tsx +57 -32
- package/src/fields/DatePicker/DatetimePicker.stories.tsx +22 -0
- package/src/fields/DatePicker/MonthPicker.tsx +8 -3
- package/src/fields/DatePicker/MultiDatePicker.tsx +4 -2
- package/src/fields/DatePicker/index.native.tsx +1 -0
- package/src/fields/DatePicker/parts.spec.tsx +56 -0
- package/src/fields/DatePicker/parts.tsx +33 -12
- package/src/fields/Geolocation/Geolocation.spec.tsx +287 -35
- package/src/fields/Geolocation/Geolocation.stories.tsx +141 -7
- package/src/fields/Geolocation/GeolocationMap.native.tsx +3 -0
- package/src/fields/Geolocation/GeolocationMap.tsx +4 -0
- package/src/fields/Geolocation/geocoder.spec.ts +59 -0
- package/src/fields/Geolocation/geocoder.ts +84 -0
- package/src/fields/Geolocation/geocoderSeam.spec.tsx +203 -0
- package/src/fields/Geolocation/index.tsx +912 -180
- package/src/fields/Geolocation/nativeSearchFocus.spec.ts +34 -0
- package/src/fields/Geolocation/nativeSearchFocus.ts +19 -0
- package/src/fields/Geolocation/salvage.spec.tsx +398 -0
- package/src/fields/Geolocation/storyProviders.spec.tsx +44 -0
- package/src/fields/Icon/Icon.spec.tsx +215 -1
- package/src/fields/Icon/Icon.stories.tsx +9 -1
- package/src/fields/Icon/drawnSet.tsx +39 -4
- package/src/fields/Icon/index.tsx +118 -18
- package/src/fields/Input/Input.copy.spec.tsx +1 -0
- package/src/fields/Input/Input.spec.tsx +50 -0
- package/src/fields/Input/Input.stories.tsx +1 -1
- package/src/fields/Input/index.tsx +7 -13
- package/src/fields/PhoneInput/index.tsx +2 -2
- package/src/fields/SearchInput/SearchInput.spec.tsx +14 -0
- package/src/fields/SearchInput/index.tsx +5 -6
- package/src/fields/Select/Select.spec.tsx +54 -0
- package/src/fields/Select/index.tsx +63 -33
- package/src/fields/Stepper/Stepper.spec.tsx +34 -1
- package/src/fields/Stepper/index.tsx +193 -33
- package/src/fields/pickerActivation.spec.tsx +105 -0
- package/src/fields/pickerDensity.spec.tsx +86 -0
- package/src/fields/pickerRows.spec.tsx +66 -0
- package/src/index.ts +9 -0
- package/src/shared/focusManagement.spec.tsx +68 -0
- package/src/shared/focusManagement.ts +20 -10
- package/src/shared/pickerTriggerContract.ts +13 -0
- package/src/shared/pressSlopProps.spec.ts +39 -0
- package/src/shared/pressSlopProps.ts +52 -0
- package/types/Button/index.d.ts +22 -3
- package/types/Button/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts.map +1 -1
- package/types/ContextualSaveBar/index.d.ts +1 -1
- package/types/ContextualSaveBar/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.d.ts +11 -1
- package/types/FloatingPanel/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts +2 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/FloatingPanel/nestedAction.d.ts +13 -0
- package/types/FloatingPanel/nestedAction.d.ts.map +1 -0
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxFieldFrame.d.ts +46 -2
- package/types/fields/Checkbox/CheckboxFieldFrame.d.ts.map +1 -1
- package/types/fields/Checkbox/index.d.ts +3 -3
- package/types/fields/Combobox/index.d.ts +3 -1
- package/types/fields/Combobox/index.d.ts.map +1 -1
- package/types/fields/DatePicker/Calendar.d.ts.map +1 -1
- package/types/fields/DatePicker/DateRangePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.catalog.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.native.d.ts.map +1 -1
- package/types/fields/DatePicker/MonthPicker.d.ts.map +1 -1
- package/types/fields/DatePicker/MultiDatePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/index.native.d.ts.map +1 -1
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/Geolocation/GeolocationMap.d.ts +4 -0
- package/types/fields/Geolocation/GeolocationMap.d.ts.map +1 -1
- package/types/fields/Geolocation/GeolocationMap.native.d.ts +3 -0
- package/types/fields/Geolocation/GeolocationMap.native.d.ts.map +1 -1
- package/types/fields/Geolocation/geocoder.d.ts +53 -0
- package/types/fields/Geolocation/geocoder.d.ts.map +1 -0
- package/types/fields/Geolocation/index.d.ts +18 -2
- package/types/fields/Geolocation/index.d.ts.map +1 -1
- package/types/fields/Geolocation/nativeSearchFocus.d.ts +8 -0
- package/types/fields/Geolocation/nativeSearchFocus.d.ts.map +1 -0
- package/types/fields/Icon/drawnSet.d.ts.map +1 -1
- package/types/fields/Icon/index.d.ts.map +1 -1
- package/types/fields/Input/index.d.ts.map +1 -1
- package/types/fields/PhoneInput/index.d.ts.map +1 -1
- package/types/fields/RadioGroup/index.d.ts +2 -2
- package/types/fields/SearchInput/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/Stepper/index.d.ts.map +1 -1
- package/types/fields/ToggleGroup/index.d.ts +1 -1
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/shared/focusManagement.d.ts +2 -2
- package/types/shared/focusManagement.d.ts.map +1 -1
- package/types/shared/pickerTriggerContract.d.ts +18 -0
- package/types/shared/pickerTriggerContract.d.ts.map +1 -0
- package/types/shared/pressSlopProps.d.ts +8 -0
- package/types/shared/pressSlopProps.d.ts.map +1 -0
- package/src/router.d.ts +0 -16
|
@@ -12,17 +12,24 @@ function focusIsDropped(insideEl) {
|
|
|
12
12
|
function useCaptureOnOpen(open) {
|
|
13
13
|
const prevRef = useRef(null);
|
|
14
14
|
const wasOpenRef = useRef(false);
|
|
15
|
+
const generationRef = useRef(0);
|
|
15
16
|
if (canUseDom()) {
|
|
17
|
+
if (open !== wasOpenRef.current) generationRef.current += 1;
|
|
16
18
|
if (open && !wasOpenRef.current) {
|
|
17
19
|
prevRef.current = document.activeElement;
|
|
18
20
|
}
|
|
19
21
|
wasOpenRef.current = open;
|
|
20
22
|
}
|
|
21
|
-
return
|
|
23
|
+
return {
|
|
24
|
+
prevRef,
|
|
25
|
+
generationRef
|
|
26
|
+
};
|
|
22
27
|
}
|
|
23
|
-
function restoreLater(prevRef, insideRef) {
|
|
28
|
+
function restoreLater(prevRef, generationRef, insideRef, skipReturnFocusRef) {
|
|
29
|
+
const generation = generationRef.current;
|
|
24
30
|
const restore = () => {
|
|
25
31
|
if (!canUseDom()) return;
|
|
32
|
+
if (skipReturnFocusRef?.current || generationRef.current !== generation) return;
|
|
26
33
|
const target = prevRef.current;
|
|
27
34
|
if (!target || !target.isConnected) return;
|
|
28
35
|
if (focusIsDropped(insideRef?.current ?? null)) {
|
|
@@ -35,20 +42,26 @@ function restoreLater(prevRef, insideRef) {
|
|
|
35
42
|
requestAnimationFrame(() => requestAnimationFrame(restore));
|
|
36
43
|
setTimeout(restore, 320);
|
|
37
44
|
}
|
|
38
|
-
function useReturnFocusOnClose(open) {
|
|
39
|
-
const
|
|
45
|
+
function useReturnFocusOnClose(open, skipReturnFocusRef) {
|
|
46
|
+
const {
|
|
47
|
+
prevRef,
|
|
48
|
+
generationRef
|
|
49
|
+
} = useCaptureOnOpen(open);
|
|
40
50
|
useEffect(() => {
|
|
41
51
|
if (!canUseDom() || !open) return;
|
|
42
|
-
return () => restoreLater(prevRef);
|
|
43
|
-
}, [open, prevRef]);
|
|
52
|
+
return () => restoreLater(prevRef, generationRef, void 0, skipReturnFocusRef);
|
|
53
|
+
}, [open, prevRef, generationRef, skipReturnFocusRef]);
|
|
44
54
|
}
|
|
45
|
-
function useSheetModalFocus(open, frameRef) {
|
|
46
|
-
const
|
|
55
|
+
function useSheetModalFocus(open, frameRef, skipReturnFocusRef) {
|
|
56
|
+
const {
|
|
57
|
+
prevRef,
|
|
58
|
+
generationRef
|
|
59
|
+
} = useCaptureOnOpen(open);
|
|
47
60
|
useEffect(() => {
|
|
48
61
|
if (!canUseDom() || !open) return;
|
|
49
62
|
const frame = frameRef.current;
|
|
50
63
|
if (!frame || typeof frame.addEventListener !== "function") {
|
|
51
|
-
return () => restoreLater(prevRef, frameRef);
|
|
64
|
+
return () => restoreLater(prevRef, generationRef, frameRef, skipReturnFocusRef);
|
|
52
65
|
}
|
|
53
66
|
const focusIn = () => {
|
|
54
67
|
if (!canUseDom()) return;
|
|
@@ -86,9 +99,9 @@ function useSheetModalFocus(open, frameRef) {
|
|
|
86
99
|
cancelAnimationFrame(raf);
|
|
87
100
|
cancelAnimationFrame(innerRaf);
|
|
88
101
|
frame.removeEventListener("keydown", onKeyDown);
|
|
89
|
-
restoreLater(prevRef, frameRef);
|
|
102
|
+
restoreLater(prevRef, generationRef, frameRef, skipReturnFocusRef);
|
|
90
103
|
};
|
|
91
|
-
}, [open, frameRef, prevRef]);
|
|
104
|
+
}, [open, frameRef, prevRef, generationRef, skipReturnFocusRef]);
|
|
92
105
|
}
|
|
93
106
|
export { useReturnFocusOnClose, useSheetModalFocus };
|
|
94
107
|
//# sourceMappingURL=focusManagement.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","isWeb","wasKeyboardFocus","FOCUSABLE","canUseDom","document","focusIsDropped","insideEl","ae","activeElement","body","documentElement","contains","useCaptureOnOpen","open","prevRef","wasOpenRef","current","restoreLater","insideRef","restore","target","isConnected","focus","preventScroll","focusVisible","requestAnimationFrame","setTimeout","useReturnFocusOnClose","useSheetModalFocus","frameRef","frame","addEventListener","focusIn","first","querySelector","innerRaf","raf","onKeyDown","e","key","focusables","Array","from","querySelectorAll","filter","el","offsetWidth","offsetHeight","length","preventDefault","last","shiftKey","cancelAnimationFrame","removeEventListener"],"sources":["../../../src/shared/focusManagement.ts"],"sourcesContent":[null],"mappings":"AAiCA,SAASA,SAAA,EAAWC,MAAA,QAA8B;AAClD,SAASC,KAAA,QAAa;AACtB,SAASC,gBAAA,QAAwB;AAEjC,MAAMC,SAAA,GACJ;AAEF,MAAMC,SAAA,GAAYA,CAAA,KAAMH,KAAA,IAAS,OAAOI,QAAA,KAAa;AAErD,SAASC,eAAeC,QAAA,EAAwC;EAC9D,MAAMC,EAAA,GAAKH,QAAA,CAASI,aAAA;EACpB,IAAI,CAACD,EAAA,IAAMA,EAAA,KAAOH,QAAA,CAASK,IAAA,IAAQF,EAAA,KAAOH,QAAA,CAASM,eAAA,EAAiB,OAAO;EAG3E,IAAIJ,QAAA,EAAUK,QAAA,CAASJ,EAAE,GAAG,OAAO;EACnC,OAAO;AACT;AAGA,SAASK,iBAAiBC,IAAA,EAAe;EACvC,MAAMC,OAAA,GAAUf,MAAA,CAA2B,IAAI;EAC/C,MAAMgB,UAAA,GAAahB,MAAA,CAAO,KAAK;EAC/B,IAAII,SAAA,CAAU,GAAG;IACf,IAAIU,IAAA,IAAQ,CAACE,UAAA,
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","isWeb","wasKeyboardFocus","FOCUSABLE","canUseDom","document","focusIsDropped","insideEl","ae","activeElement","body","documentElement","contains","useCaptureOnOpen","open","prevRef","wasOpenRef","generationRef","current","restoreLater","insideRef","skipReturnFocusRef","generation","restore","target","isConnected","focus","preventScroll","focusVisible","requestAnimationFrame","setTimeout","useReturnFocusOnClose","useSheetModalFocus","frameRef","frame","addEventListener","focusIn","first","querySelector","innerRaf","raf","onKeyDown","e","key","focusables","Array","from","querySelectorAll","filter","el","offsetWidth","offsetHeight","length","preventDefault","last","shiftKey","cancelAnimationFrame","removeEventListener"],"sources":["../../../src/shared/focusManagement.ts"],"sourcesContent":[null],"mappings":"AAiCA,SAASA,SAAA,EAAWC,MAAA,QAA8B;AAClD,SAASC,KAAA,QAAa;AACtB,SAASC,gBAAA,QAAwB;AAEjC,MAAMC,SAAA,GACJ;AAEF,MAAMC,SAAA,GAAYA,CAAA,KAAMH,KAAA,IAAS,OAAOI,QAAA,KAAa;AAErD,SAASC,eAAeC,QAAA,EAAwC;EAC9D,MAAMC,EAAA,GAAKH,QAAA,CAASI,aAAA;EACpB,IAAI,CAACD,EAAA,IAAMA,EAAA,KAAOH,QAAA,CAASK,IAAA,IAAQF,EAAA,KAAOH,QAAA,CAASM,eAAA,EAAiB,OAAO;EAG3E,IAAIJ,QAAA,EAAUK,QAAA,CAASJ,EAAE,GAAG,OAAO;EACnC,OAAO;AACT;AAGA,SAASK,iBAAiBC,IAAA,EAAe;EACvC,MAAMC,OAAA,GAAUf,MAAA,CAA2B,IAAI;EAC/C,MAAMgB,UAAA,GAAahB,MAAA,CAAO,KAAK;EAC/B,MAAMiB,aAAA,GAAgBjB,MAAA,CAAO,CAAC;EAC9B,IAAII,SAAA,CAAU,GAAG;IACf,IAAIU,IAAA,KAASE,UAAA,CAAWE,OAAA,EAASD,aAAA,CAAcC,OAAA,IAAW;IAC1D,IAAIJ,IAAA,IAAQ,CAACE,UAAA,CAAWE,OAAA,EAAS;MAC/BH,OAAA,CAAQG,OAAA,GAAUb,QAAA,CAASI,aAAA;IAC7B;IACAO,UAAA,CAAWE,OAAA,GAAUJ,IAAA;EACvB;EACA,OAAO;IAAEC,OAAA;IAASE;EAAc;AAClC;AAEA,SAASE,aACPJ,OAAA,EACAE,aAAA,EACAG,SAAA,EACAC,kBAAA,EACA;EACA,MAAMC,UAAA,GAAaL,aAAA,CAAcC,OAAA;EACjC,MAAMK,OAAA,GAAUA,CAAA,KAAM;IAIpB,IAAI,CAACnB,SAAA,CAAU,GAAG;IAClB,IAAIiB,kBAAA,EAAoBH,OAAA,IAAWD,aAAA,CAAcC,OAAA,KAAYI,UAAA,EAAY;IACzE,MAAME,MAAA,GAAST,OAAA,CAAQG,OAAA;IACvB,IAAI,CAACM,MAAA,IAAU,CAACA,MAAA,CAAOC,WAAA,EAAa;IACpC,IAAInB,cAAA,CAAec,SAAA,EAAWF,OAAA,IAAW,IAAI,GAAG;MAC9CM,MAAA,CAAOE,KAAA,CAAM;QACXC,aAAA,EAAe;QACfC,YAAA,EAAc1B,gBAAA,CAAiB;MACjC,CAAiB;IACnB;EACF;EAGA2B,qBAAA,CAAsB,MAAMA,qBAAA,CAAsBN,OAAO,CAAC;EAC1DO,UAAA,CAAWP,OAAA,EAAS,GAAG;AACzB;AAGO,SAASQ,sBAAsBjB,IAAA,EAAeO,kBAAA,EAAyC;EAC5F,MAAM;IAAEN,OAAA;IAASE;EAAc,IAAIJ,gBAAA,CAAiBC,IAAI;EACxDf,SAAA,CAAU,MAAM;IACd,IAAI,CAACK,SAAA,CAAU,KAAK,CAACU,IAAA,EAAM;IAC3B,OAAO,MAAMK,YAAA,CAAaJ,OAAA,EAASE,aAAA,EAAe,QAAWI,kBAAkB;EACjF,GAAG,CAACP,IAAA,EAAMC,OAAA,EAASE,aAAA,EAAeI,kBAAkB,CAAC;AACvD;AAQO,SAASW,mBACdlB,IAAA,EACAmB,QAAA,EACAZ,kBAAA,EACA;EACA,MAAM;IAAEN,OAAA;IAASE;EAAc,IAAIJ,gBAAA,CAAiBC,IAAI;EACxDf,SAAA,CAAU,MAAM;IACd,IAAI,CAACK,SAAA,CAAU,KAAK,CAACU,IAAA,EAAM;IAC3B,MAAMoB,KAAA,GAAQD,QAAA,CAASf,OAAA;IACvB,IAAI,CAACgB,KAAA,IAAS,OAAOA,KAAA,CAAMC,gBAAA,KAAqB,YAAY;MAC1D,OAAO,MAAMhB,YAAA,CAAaJ,OAAA,EAASE,aAAA,EAAegB,QAAA,EAAUZ,kBAAkB;IAChF;IAGA,MAAMe,OAAA,GAAUA,CAAA,KAAM;MACpB,IAAI,CAAChC,SAAA,CAAU,GAAG;MAClB,IAAI8B,KAAA,CAAMtB,QAAA,CAASP,QAAA,CAASI,aAAa,GAAG;MAC5C,MAAM4B,KAAA,GAAQH,KAAA,CAAMI,aAAA,CAA2BnC,SAAS;MACxD,CAACkC,KAAA,IAASH,KAAA,EAAOR,KAAA,CAAM;QAAEC,aAAA,EAAe;QAAMC,YAAA,EAAc;MAAM,CAAiB;IACrF;IAGA,IAAIW,QAAA,GAAW;IACf,MAAMC,GAAA,GAAMX,qBAAA,CAAsB,MAAM;MACtCU,QAAA,GAAWV,qBAAA,CAAsBO,OAAO;IAC1C,CAAC;IAGD,MAAMK,SAAA,GAAaC,CAAA,IAAqB;MACtC,IAAIA,CAAA,CAAEC,GAAA,KAAQ,OAAO;MACrB,MAAMC,UAAA,GAAaC,KAAA,CAAMC,IAAA,CAAKZ,KAAA,CAAMa,gBAAA,CAA8B5C,SAAS,CAAC,EAAE6C,MAAA,CAC3EC,EAAA,IAAOA,EAAA,CAAGC,WAAA,GAAc,KAAKD,EAAA,CAAGE,YAAA,GAAe,CAClD;MACA,IAAI,CAACP,UAAA,CAAWQ,MAAA,EAAQ;QACtBV,CAAA,CAAEW,cAAA,CAAe;QACjB;MACF;MACA,MAAMhB,KAAA,GAAQO,UAAA,CAAW,CAAC;MAC1B,MAAMU,IAAA,GAAOV,UAAA,CAAWA,UAAA,CAAWQ,MAAA,GAAS,CAAC;MAC7C,MAAMlC,OAAA,GAAUb,QAAA,CAASI,aAAA;MACzB,IAAIiC,CAAA,CAAEa,QAAA,KAAarC,OAAA,KAAYmB,KAAA,IAASnB,OAAA,KAAYgB,KAAA,GAAQ;QAC1DQ,CAAA,CAAEW,cAAA,CAAe;QACjBC,IAAA,CAAK5B,KAAA,CAAM;MACb,WAAW,CAACgB,CAAA,CAAEa,QAAA,IAAYrC,OAAA,KAAYoC,IAAA,EAAM;QAC1CZ,CAAA,CAAEW,cAAA,CAAe;QACjBhB,KAAA,CAAMX,KAAA,CAAM;MACd;IACF;IACAQ,KAAA,CAAMC,gBAAA,CAAiB,WAAWM,SAAS;IAC3C,OAAO,MAAM;MACXe,oBAAA,CAAqBhB,GAAG;MACxBgB,oBAAA,CAAqBjB,QAAQ;MAC7BL,KAAA,CAAMuB,mBAAA,CAAoB,WAAWhB,SAAS;MAC9CtB,YAAA,CAAaJ,OAAA,EAASE,aAAA,EAAegB,QAAA,EAAUZ,kBAAkB;IACnE;EACF,GAAG,CAACP,IAAA,EAAMmB,QAAA,EAAUlB,OAAA,EAASE,aAAA,EAAeI,kBAAkB,CAAC;AACjE","ignoreList":[]}
|
|
@@ -44,18 +44,25 @@ function focusIsDropped(insideEl) {
|
|
|
44
44
|
function useCaptureOnOpen(open) {
|
|
45
45
|
var prevRef = (0, import_react.useRef)(null);
|
|
46
46
|
var wasOpenRef = (0, import_react.useRef)(false);
|
|
47
|
+
var generationRef = (0, import_react.useRef)(0);
|
|
47
48
|
if (canUseDom()) {
|
|
49
|
+
if (open !== wasOpenRef.current) generationRef.current += 1;
|
|
48
50
|
if (open && !wasOpenRef.current) {
|
|
49
51
|
prevRef.current = document.activeElement;
|
|
50
52
|
}
|
|
51
53
|
wasOpenRef.current = open;
|
|
52
54
|
}
|
|
53
|
-
return
|
|
55
|
+
return {
|
|
56
|
+
prevRef,
|
|
57
|
+
generationRef
|
|
58
|
+
};
|
|
54
59
|
}
|
|
55
|
-
function restoreLater(prevRef, insideRef) {
|
|
60
|
+
function restoreLater(prevRef, generationRef, insideRef, skipReturnFocusRef) {
|
|
61
|
+
var generation = generationRef.current;
|
|
56
62
|
var restore = function restore2() {
|
|
57
63
|
var _ref;
|
|
58
64
|
if (!canUseDom()) return;
|
|
65
|
+
if ((skipReturnFocusRef === null || skipReturnFocusRef === void 0 ? void 0 : skipReturnFocusRef.current) || generationRef.current !== generation) return;
|
|
59
66
|
var target = prevRef.current;
|
|
60
67
|
if (!target || !target.isConnected) return;
|
|
61
68
|
if (focusIsDropped((_ref = insideRef === null || insideRef === void 0 ? void 0 : insideRef.current) !== null && _ref !== void 0 ? _ref : null)) {
|
|
@@ -70,23 +77,29 @@ function restoreLater(prevRef, insideRef) {
|
|
|
70
77
|
});
|
|
71
78
|
setTimeout(restore, 320);
|
|
72
79
|
}
|
|
73
|
-
function useReturnFocusOnClose(open) {
|
|
74
|
-
var
|
|
80
|
+
function useReturnFocusOnClose(open, skipReturnFocusRef) {
|
|
81
|
+
var {
|
|
82
|
+
prevRef,
|
|
83
|
+
generationRef
|
|
84
|
+
} = useCaptureOnOpen(open);
|
|
75
85
|
(0, import_react.useEffect)(function () {
|
|
76
86
|
if (!canUseDom() || !open) return;
|
|
77
87
|
return function () {
|
|
78
|
-
return restoreLater(prevRef);
|
|
88
|
+
return restoreLater(prevRef, generationRef, void 0, skipReturnFocusRef);
|
|
79
89
|
};
|
|
80
|
-
}, [open, prevRef]);
|
|
90
|
+
}, [open, prevRef, generationRef, skipReturnFocusRef]);
|
|
81
91
|
}
|
|
82
|
-
function useSheetModalFocus(open, frameRef) {
|
|
83
|
-
var
|
|
92
|
+
function useSheetModalFocus(open, frameRef, skipReturnFocusRef) {
|
|
93
|
+
var {
|
|
94
|
+
prevRef,
|
|
95
|
+
generationRef
|
|
96
|
+
} = useCaptureOnOpen(open);
|
|
84
97
|
(0, import_react.useEffect)(function () {
|
|
85
98
|
if (!canUseDom() || !open) return;
|
|
86
99
|
var frame = frameRef.current;
|
|
87
100
|
if (!frame || typeof frame.addEventListener !== "function") {
|
|
88
101
|
return function () {
|
|
89
|
-
return restoreLater(prevRef, frameRef);
|
|
102
|
+
return restoreLater(prevRef, generationRef, frameRef, skipReturnFocusRef);
|
|
90
103
|
};
|
|
91
104
|
}
|
|
92
105
|
var focusIn = function focusIn2() {
|
|
@@ -127,8 +140,8 @@ function useSheetModalFocus(open, frameRef) {
|
|
|
127
140
|
cancelAnimationFrame(raf);
|
|
128
141
|
cancelAnimationFrame(innerRaf);
|
|
129
142
|
frame.removeEventListener("keydown", onKeyDown);
|
|
130
|
-
restoreLater(prevRef, frameRef);
|
|
143
|
+
restoreLater(prevRef, generationRef, frameRef, skipReturnFocusRef);
|
|
131
144
|
};
|
|
132
|
-
}, [open, frameRef, prevRef]);
|
|
145
|
+
}, [open, frameRef, prevRef, generationRef, skipReturnFocusRef]);
|
|
133
146
|
}
|
|
134
147
|
//# sourceMappingURL=focusManagement.native.js.map
|
|
@@ -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","key","call","__toCommonJS","mod","value","focusManagement_exports","useReturnFocusOnClose","useSheetModalFocus","module","exports","import_react","require","import_tamagui","import_theme","FOCUSABLE","canUseDom","canUseDom2","isWeb","document","focusIsDropped","insideEl","ae","activeElement","body","documentElement","contains","useCaptureOnOpen","open","prevRef","useRef","wasOpenRef","current","restoreLater","insideRef","restore","restore2","_ref","isConnected","focus","preventScroll","focusVisible","wasKeyboardFocus","requestAnimationFrame","setTimeout","useEffect","frameRef","frame","addEventListener"
|
|
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","focusManagement_exports","useReturnFocusOnClose","useSheetModalFocus","module","exports","import_react","require","import_tamagui","import_theme","FOCUSABLE","canUseDom","canUseDom2","isWeb","document","focusIsDropped","insideEl","ae","activeElement","body","documentElement","contains","useCaptureOnOpen","open","prevRef","useRef","wasOpenRef","generationRef","current","restoreLater","insideRef","skipReturnFocusRef","generation","restore","restore2","_ref","isConnected","focus","preventScroll","focusVisible","wasKeyboardFocus","requestAnimationFrame","setTimeout","useEffect","frameRef","frame","addEventListener"],"sources":["../../../src/shared/focusManagement.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MIN_PRESS_TARGET } from "@multiplatform.one/theme";
|
|
2
|
+
import { pressSlopProps } from "./pressSlopProps.mjs";
|
|
3
|
+
function pickerTriggerContract(height) {
|
|
4
|
+
const belowFloor = height < MIN_PRESS_TARGET;
|
|
5
|
+
return {
|
|
6
|
+
minWidth: MIN_PRESS_TARGET,
|
|
7
|
+
"data-visual-height": String(height),
|
|
8
|
+
"data-press-floor": belowFloor ? "slop" : "box",
|
|
9
|
+
...pressSlopProps(height, belowFloor, "vertical")
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export { pickerTriggerContract };
|
|
13
|
+
//# sourceMappingURL=pickerTriggerContract.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MIN_PRESS_TARGET","pressSlopProps","pickerTriggerContract","height","belowFloor","minWidth","String"],"sources":["../../../src/shared/pickerTriggerContract.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAA,QAAwB;AACjC,SAASC,cAAA,QAAsB;AAGxB,SAASC,sBAAsBC,MAAA,EAAgB;EACpD,MAAMC,UAAA,GAAaD,MAAA,GAASH,gBAAA;EAC5B,OAAO;IACLK,QAAA,EAAUL,gBAAA;IACV,sBAAsBM,MAAA,CAAOH,MAAM;IACnC,oBAAoBC,UAAA,GAAa,SAAS;IAC1C,GAAGH,cAAA,CAAeE,MAAA,EAAQC,UAAA,EAAY,UAAU;EAClD;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
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 pickerTriggerContract_exports = {};
|
|
26
|
+
__export(pickerTriggerContract_exports, {
|
|
27
|
+
pickerTriggerContract: () => pickerTriggerContract
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(pickerTriggerContract_exports);
|
|
30
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
31
|
+
var import_pressSlopProps = require("./pressSlopProps.native.js");
|
|
32
|
+
function pickerTriggerContract(height) {
|
|
33
|
+
var belowFloor = height < import_theme.MIN_PRESS_TARGET;
|
|
34
|
+
return {
|
|
35
|
+
minWidth: import_theme.MIN_PRESS_TARGET,
|
|
36
|
+
"data-visual-height": String(height),
|
|
37
|
+
"data-press-floor": belowFloor ? "slop" : "box",
|
|
38
|
+
...(0, import_pressSlopProps.pressSlopProps)(height, belowFloor, "vertical")
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=pickerTriggerContract.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"],"sources":["../../../src/shared/pickerTriggerContract.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAsB;AAGxB,IAAAC,gBAAS,GAAAF,MAAA,CAAAG,wBAAsC;AACpD,IAAAC,iBAAmB,GAAAJ,MAAS,CAAAK,mBAAA;AAC5B,IAAAC,YAAO,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACLC,QAAA,GAAUA,CAAAC,MAAA,EAAAC,GAAA;EAAA,KACV,IAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAoB;IAAAC,GAAA,EAAAF,GAAa,CAAAC,IAAA;IAASE,UAAA;EAAA;AAAA;AACM,IAClDC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACF,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { MIN_PRESS_TARGET, pressTargetHitSlop } from "@multiplatform.one/theme";
|
|
2
|
+
import { isWeb } from "tamagui";
|
|
3
|
+
const PRESS_SLOP_STYLE_ID = "mp-button-press-slop";
|
|
4
|
+
function pressSlopStylesheet() {
|
|
5
|
+
const rules = ["[data-mp-press-slop]{position:relative;isolation:isolate}"];
|
|
6
|
+
for (let n = 1; n <= 16; n++) {
|
|
7
|
+
rules.push(`[data-mp-press-slop="${n}"]::after{content:"";position:absolute;inset:-${n}px;z-index:-1}`);
|
|
8
|
+
rules.push(`[data-mp-press-slop="${n}"][data-mp-press-axis="vertical"]::after{inset:-${n}px 0}`);
|
|
9
|
+
}
|
|
10
|
+
return rules.join("");
|
|
11
|
+
}
|
|
12
|
+
function ensureButtonPressSlop() {
|
|
13
|
+
if (!isWeb || typeof document === "undefined") return;
|
|
14
|
+
if (document.getElementById(PRESS_SLOP_STYLE_ID)) return;
|
|
15
|
+
const tag = document.createElement("style");
|
|
16
|
+
tag.id = PRESS_SLOP_STYLE_ID;
|
|
17
|
+
tag.textContent = pressSlopStylesheet();
|
|
18
|
+
document.head.appendChild(tag);
|
|
19
|
+
}
|
|
20
|
+
function pressSlopProps(visualPx, enabled, axes = "both") {
|
|
21
|
+
if (!enabled || visualPx >= MIN_PRESS_TARGET) return void 0;
|
|
22
|
+
const hitSlop = pressTargetHitSlop(visualPx);
|
|
23
|
+
if (axes === "vertical") {
|
|
24
|
+
hitSlop.left = 0;
|
|
25
|
+
hitSlop.right = 0;
|
|
26
|
+
}
|
|
27
|
+
const outset = hitSlop.top;
|
|
28
|
+
if (outset <= 0) return void 0;
|
|
29
|
+
if (isWeb) {
|
|
30
|
+
ensureButtonPressSlop();
|
|
31
|
+
return {
|
|
32
|
+
"data-mp-press-slop": String(outset),
|
|
33
|
+
...(axes === "vertical" ? {
|
|
34
|
+
"data-mp-press-axis": "vertical"
|
|
35
|
+
} : void 0)
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
hitSlop
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export { pressSlopProps };
|
|
43
|
+
//# sourceMappingURL=pressSlopProps.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MIN_PRESS_TARGET","pressTargetHitSlop","isWeb","PRESS_SLOP_STYLE_ID","pressSlopStylesheet","rules","n","push","join","ensureButtonPressSlop","document","getElementById","tag","createElement","id","textContent","head","appendChild","pressSlopProps","visualPx","enabled","axes","hitSlop","left","right","outset","top","String"],"sources":["../../../src/shared/pressSlopProps.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAA,EAAkBC,kBAAA,QAA8C;AACzE,SAASC,KAAA,QAAa;AAEtB,MAAMC,mBAAA,GAAsB;AAE5B,SAASC,oBAAA,EAA8B;EACrC,MAAMC,KAAA,GAAQ,CAAC,2DAA2D;EAC1E,SAASC,CAAA,GAAI,GAAGA,CAAA,IAAK,IAAIA,CAAA,IAAK;IAC5BD,KAAA,CAAME,IAAA,CACJ,wBAAwBD,CAAC,iDAAiDA,CAAC,gBAC7E;IACAD,KAAA,CAAME,IAAA,CACJ,wBAAwBD,CAAC,mDAAmDA,CAAC,OAC/E;EACF;EACA,OAAOD,KAAA,CAAMG,IAAA,CAAK,EAAE;AACtB;AAEA,SAASC,sBAAA,EAA8B;EACrC,IAAI,CAACP,KAAA,IAAS,OAAOQ,QAAA,KAAa,aAAa;EAC/C,IAAIA,QAAA,CAASC,cAAA,CAAeR,mBAAmB,GAAG;EAClD,MAAMS,GAAA,GAAMF,QAAA,CAASG,aAAA,CAAc,OAAO;EAC1CD,GAAA,CAAIE,EAAA,GAAKX,mBAAA;EACTS,GAAA,CAAIG,WAAA,GAAcX,mBAAA,CAAoB;EACtCM,QAAA,CAASM,IAAA,CAAKC,WAAA,CAAYL,GAAG;AAC/B;AAEO,SAASM,eACdC,QAAA,EACAC,OAAA,EACAC,IAAA,GAA4B,QAIhB;EACZ,IAAI,CAACD,OAAA,IAAWD,QAAA,IAAYnB,gBAAA,EAAkB,OAAO;EACrD,MAAMsB,OAAA,GAAUrB,kBAAA,CAAmBkB,QAAQ;EAC3C,IAAIE,IAAA,KAAS,YAAY;IACvBC,OAAA,CAAQC,IAAA,GAAO;IACfD,OAAA,CAAQE,KAAA,GAAQ;EAClB;EACA,MAAMC,MAAA,GAASH,OAAA,CAAQI,GAAA;EACvB,IAAID,MAAA,IAAU,GAAG,OAAO;EACxB,IAAIvB,KAAA,EAAO;IACTO,qBAAA,CAAsB;IACtB,OAAO;MACL,sBAAsBkB,MAAA,CAAOF,MAAM;MACnC,IAAIJ,IAAA,KAAS,aAAa;QAAE,sBAAsB;MAAoB,IAAI;IAC5E;EACF;EACA,OAAO;IAAEC;EAAQ;AACnB","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
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 pressSlopProps_exports = {};
|
|
26
|
+
__export(pressSlopProps_exports, {
|
|
27
|
+
pressSlopProps: () => pressSlopProps
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(pressSlopProps_exports);
|
|
30
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
31
|
+
var import_tamagui = require("tamagui");
|
|
32
|
+
var PRESS_SLOP_STYLE_ID = "mp-button-press-slop";
|
|
33
|
+
function pressSlopStylesheet() {
|
|
34
|
+
var rules = ["[data-mp-press-slop]{position:relative;isolation:isolate}"];
|
|
35
|
+
for (var n = 1; n <= 16; n++) {
|
|
36
|
+
rules.push(`[data-mp-press-slop="${n}"]::after{content:"";position:absolute;inset:-${n}px;z-index:-1}`);
|
|
37
|
+
rules.push(`[data-mp-press-slop="${n}"][data-mp-press-axis="vertical"]::after{inset:-${n}px 0}`);
|
|
38
|
+
}
|
|
39
|
+
return rules.join("");
|
|
40
|
+
}
|
|
41
|
+
function ensureButtonPressSlop() {
|
|
42
|
+
if (!import_tamagui.isWeb || typeof document === "undefined") return;
|
|
43
|
+
if (document.getElementById(PRESS_SLOP_STYLE_ID)) return;
|
|
44
|
+
var tag = document.createElement("style");
|
|
45
|
+
tag.id = PRESS_SLOP_STYLE_ID;
|
|
46
|
+
tag.textContent = pressSlopStylesheet();
|
|
47
|
+
document.head.appendChild(tag);
|
|
48
|
+
}
|
|
49
|
+
function pressSlopProps(visualPx, enabled) {
|
|
50
|
+
var axes = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "both";
|
|
51
|
+
if (!enabled || visualPx >= import_theme.MIN_PRESS_TARGET) return void 0;
|
|
52
|
+
var hitSlop = (0, import_theme.pressTargetHitSlop)(visualPx);
|
|
53
|
+
if (axes === "vertical") {
|
|
54
|
+
hitSlop.left = 0;
|
|
55
|
+
hitSlop.right = 0;
|
|
56
|
+
}
|
|
57
|
+
var outset = hitSlop.top;
|
|
58
|
+
if (outset <= 0) return void 0;
|
|
59
|
+
if (import_tamagui.isWeb) {
|
|
60
|
+
ensureButtonPressSlop();
|
|
61
|
+
return {
|
|
62
|
+
"data-mp-press-slop": String(outset),
|
|
63
|
+
...(axes === "vertical" ? {
|
|
64
|
+
"data-mp-press-axis": "vertical"
|
|
65
|
+
} : void 0)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
hitSlop
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=pressSlopProps.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","pressSlopProps_exports","pressSlopProps","module","exports","import_theme","require","import_tamagui","PRESS_SLOP_STYLE_ID","pressSlopStylesheet","rules","n","push","join","ensureButtonPressSlop","isWeb","document","getElementById","tag","createElement","id"],"sources":["../../../src/shared/pressSlopProps.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAa,CAAAC,cAAA;AAEtB,IAAAC,gBAAM,GAAAF,MAAsB,CAAAG,wBAAA;AAE5B,IAAAC,iBAAS,GAAAJ,MAAA,CAA8BK,mBAAA;AACrC,IAAAC,YAAc,GAACN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AACf,IAAAC,QAAS,GAAIA,CAAAC,MAAG,EAAKC,GAAI,KAAK;EAC5B,SAAMC,IAAA,IAAAD,GAAA,EAAAZ,SACJ,CAAAW,MAAA,EAAAE,IAAA;IAAwBC,GAAC,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAkD;AAE7E,IAAAC,WAAM,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAAA,IACJF,IAAA,WAAAA,IAAA,KAAwB,QAAC,WAAAA,IAAA;IAC3B,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACF,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAa,CAAAiB,EAAK,EAAEI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACtB;EAEA,OAASE,EAAA;AACP;AACA,IAAAM,YAAa,GAAAC,GAAA,IAAAR,WAAe,CAAAhB,SAAmB,EAAG;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAClD,IAAAE,sBAAqB;AACrBhB,QAAI,CAAAgB,sBAAK;EACTC,cAAI,EAAAA,CAAA,KAAcA;AAClB;AACFC,MAAA,CAAAC,OAAA,GAAAN,YAAA,CAAAG,sBAAA;AAEO,IAAAI,YAAS,GAAAC,OACd,2BAE4B;AAK5B,IAAAC,cAAgB,GAAAD,OAAA,UAAY;AAC5B,IAAAE,mBAAgB,yBAA2B;AAC3C,SAAIC,mBAAqBA,CAAA;EACvB,IAAAC,KAAA,GAAQ,CACR,2DAAgB,CAClB;EACA,SAAMC,CAAA,MAASA,CAAA,MAAQ,EAAAA,CAAA;IACvBD,KAAI,CAAAE,IAAA,yBAAoBD,CAAA,iDAAAA,CAAA;IACxBD,KAAI,CAAAE,IAAO,yBAAAD,CAAA,mDAAAA,CAAA;EACT;EACA,OAAAD,KAAO,CAAAG,IAAA;AAAA;AAC8B,SAC/BC,qBAASA,CAAA,EAAe;EAA8C,IAC5E,CAAAP,cAAA,CAAAQ,KAAA,WAAAC,QAAA;EACF,IAAAA,QAAA,CAAAC,cAAA,CAAAT,mBAAA;EACA,IAAAU,GAAO,GAAEF,QAAQ,CAAAG,aAAA;EACnBD,GAAA,CAAAE,EAAA,GAAAZ,mBAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/forms",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.8.0",
|
|
4
4
|
"description": "Cross-platform form components with URL state management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -70,9 +70,10 @@
|
|
|
70
70
|
"perfect-freehand": "^1.2.3",
|
|
71
71
|
"react-native-svg": "15.15.4",
|
|
72
72
|
"tamagui": "2.7.6",
|
|
73
|
-
"@multiplatform.one/
|
|
74
|
-
"@multiplatform.one/
|
|
75
|
-
"@multiplatform.one/
|
|
73
|
+
"@multiplatform.one/platform": "7.8.0",
|
|
74
|
+
"@multiplatform.one/router": "7.8.0",
|
|
75
|
+
"@multiplatform.one/table-primitives": "7.8.0",
|
|
76
|
+
"@multiplatform.one/theme": "7.8.0"
|
|
76
77
|
},
|
|
77
78
|
"devDependencies": {
|
|
78
79
|
"@tamagui/build": "2.7.6",
|
|
@@ -94,9 +95,9 @@
|
|
|
94
95
|
"react-i18next": "^16.6.6",
|
|
95
96
|
"react-native-web": "^0.21.2",
|
|
96
97
|
"vitest": "^4.1.5",
|
|
97
|
-
"@multiplatform.one/
|
|
98
|
-
"@multiplatform.one/storybook": "7.
|
|
99
|
-
"@multiplatform.one/
|
|
98
|
+
"@multiplatform.one/test-utils": "7.8.0",
|
|
99
|
+
"@multiplatform.one/storybook": "7.8.0",
|
|
100
|
+
"@multiplatform.one/config": "7.8.0"
|
|
100
101
|
},
|
|
101
102
|
"peerDependencies": {
|
|
102
103
|
"@react-native-community/datetimepicker": ">=8.0.1",
|
|
@@ -62,9 +62,8 @@ function labelNode(text: string): HTMLElement {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* failure prints is the number the verdict used.
|
|
65
|
+
* Use the canonical unrounded measurement so a below-floor pair cannot
|
|
66
|
+
* pass through display rounding.
|
|
68
67
|
*/
|
|
69
68
|
function pageRatio(ink: string, ground: string, label: string): number {
|
|
70
69
|
return measureContrast({ foreground: ink, background: ground, label }).ratio;
|
|
@@ -159,21 +158,22 @@ describe("Button MPO-40 outlined intent label ink", () => {
|
|
|
159
158
|
}
|
|
160
159
|
});
|
|
161
160
|
|
|
162
|
-
//
|
|
161
|
+
// CLOSED — MPO-40's secondary finding, fixed by the palette step.
|
|
163
162
|
//
|
|
164
163
|
// Fixing the plumbing (the arm above) was necessary, not sufficient. On
|
|
165
164
|
// $color2 — the surface every gallery board is shot on — light warning
|
|
166
|
-
// and success $color11
|
|
167
|
-
// the numbers button-anatomy
|
|
168
|
-
//
|
|
169
|
-
//
|
|
170
|
-
// the Button. colorRules.ts pins the same warning miss on the intent's
|
|
171
|
-
// own color1 (#fcfcf7, 4.44:1); this pins it on the page ground.
|
|
165
|
+
// and success $color11 sat UNDER mpo's own floor at 4.34 and 4.48, and
|
|
166
|
+
// those were exactly the numbers button-anatomy printed for its CONTRACT
|
|
167
|
+
// row. This block used to assert the miss, and said in as many words that
|
|
168
|
+
// stepping the palette should break it rather than be re-baselined away.
|
|
172
169
|
//
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
//
|
|
176
|
-
|
|
170
|
+
// The palette stepped: `intentInkFloor` in theme/createThemes.ts darkens
|
|
171
|
+
// light yellow-11 (#9e6c00 -> #996900) and green-11 (#218358 -> #1c8257)
|
|
172
|
+
// by the smallest hue-holding amount that clears the floor here. So the
|
|
173
|
+
// assertion is inverted rather than deleted — the ground and the exact
|
|
174
|
+
// ratios stay pinned, because $color2 is the STRICTEST base surface and a
|
|
175
|
+
// future re-lightening has to fail somewhere loud.
|
|
176
|
+
it("light warning/success $color11 now clear 4.5:1 on the $color2 page surface", () => {
|
|
177
177
|
const ground = houseThemes.light.color2;
|
|
178
178
|
const measured = Object.fromEntries(
|
|
179
179
|
INTENTS.map((intent): [string, number] => [
|
|
@@ -187,10 +187,13 @@ describe("Button MPO-40 outlined intent label ink", () => {
|
|
|
187
187
|
);
|
|
188
188
|
expect(measured, `light.color2 is ${ground}`).toEqual({
|
|
189
189
|
error: 4.95,
|
|
190
|
-
warning: 4.
|
|
191
|
-
success: 4.
|
|
190
|
+
warning: 4.56,
|
|
191
|
+
success: 4.55,
|
|
192
192
|
});
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
for (const intent of INTENTS) {
|
|
194
|
+
expect(measured[intent], `light_${intent} on light.color2`).toBeGreaterThanOrEqual(
|
|
195
|
+
aaTextContrastRatio,
|
|
196
|
+
);
|
|
197
|
+
}
|
|
195
198
|
});
|
|
196
199
|
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @vitest-environment jsdom
|
|
3
|
+
*
|
|
4
|
+
* MPO-91: the forms Button's outlined chrome cannot be requested through a
|
|
5
|
+
* channel the component ignores.
|
|
6
|
+
*
|
|
7
|
+
* `ButtonFrame` is `styled(View)` and declares only an `outlined` BOOLEAN.
|
|
8
|
+
* `variant="outlined"` was never read, but `ButtonProps` inherited it from
|
|
9
|
+
* `TamaguiButtonProps`, so 75 call sites across 29 files typechecked, rendered
|
|
10
|
+
* FILLED, and said nothing. The type now Omits `variant`, and this spec pins
|
|
11
|
+
* both halves of that: the type refuses it (checked by `tsgo --noEmit`), and
|
|
12
|
+
* the runtime genuinely ignores it, so the refusal is honest rather than
|
|
13
|
+
* cosmetic.
|
|
14
|
+
*
|
|
15
|
+
* jsdom cannot cascade Tamagui CSS — assertions read the atomic border-color
|
|
16
|
+
* classes the FRAME emits, the same idiom as Button.filledBorder.spec.tsx.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
20
|
+
import { cleanup, screen } from "@testing-library/react";
|
|
21
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
22
|
+
import { Button } from "./index";
|
|
23
|
+
|
|
24
|
+
afterEach(cleanup);
|
|
25
|
+
|
|
26
|
+
function frame(): HTMLElement {
|
|
27
|
+
return screen.getByRole("button");
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
describe("Button outlined channel (MPO-91)", () => {
|
|
31
|
+
it("the outlined boolean is the channel, and it paints $borderColor", () => {
|
|
32
|
+
renderWithProviders(<Button outlined>Outlined</Button>);
|
|
33
|
+
expect(frame().className).toMatch(/_btc-borderColor\b/);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("the type refuses variant, so a dead pass cannot come back silently", () => {
|
|
37
|
+
// THE GUARD. If someone re-adds `variant` to ButtonProps this stops being
|
|
38
|
+
// an error and `tsgo --noEmit` fails on the unused directive — which is
|
|
39
|
+
// the point: the failure is loud either way.
|
|
40
|
+
// @ts-expect-error MPO-91: `variant` is Omitted from ButtonProps on purpose.
|
|
41
|
+
renderWithProviders(<Button variant="outlined">Refused</Button>);
|
|
42
|
+
// ...and the refusal is honest: it really does render filled.
|
|
43
|
+
expect(frame().className).toMatch(/_btc-transparent\b/);
|
|
44
|
+
expect(frame().className).not.toMatch(/_btc-borderColor\b/);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* MPO-46 AC-1: the painted Button, not the recipe source, matches the
|
|
5
5
|
* measured Tamagui v5 table at $2/$3/$4/$6. Radius used to sit on the
|
|
6
6
|
* borderRadius knob (flat 9px); it must step with the size token, and
|
|
7
|
-
* gap
|
|
7
|
+
* default gap matches that table. Corner shape overrides preserve the
|
|
8
|
+
* internal spacing rather than jamming or separating the icon and label.
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
@@ -106,7 +107,7 @@ describe("MPO-46 painted Button size ladder", () => {
|
|
|
106
107
|
}
|
|
107
108
|
});
|
|
108
109
|
|
|
109
|
-
it("
|
|
110
|
+
it("corner overrides preserve the measured internal gap", () => {
|
|
110
111
|
for (const [stop, px] of Object.entries(KNOB_STOPS) as [keyof typeof KNOB_STOPS, number][]) {
|
|
111
112
|
renderWithProviders(
|
|
112
113
|
<Preset overrides={{ borderRadius: stop }}>
|
|
@@ -117,7 +118,7 @@ describe("MPO-46 painted Button size ladder", () => {
|
|
|
117
118
|
);
|
|
118
119
|
const frame = screen.getByRole("button");
|
|
119
120
|
expect(radiusPx(frame), `${stop} radius`).toBe(px);
|
|
120
|
-
expect(gapPx(frame), `${stop} gap`).toBe(
|
|
121
|
+
expect(gapPx(frame), `${stop} gap`).toBe(MEASURED.$4.radius);
|
|
121
122
|
cleanup();
|
|
122
123
|
}
|
|
123
124
|
});
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
} from "@multiplatform.one/theme";
|
|
9
9
|
import { Button as TamaguiButton, Paragraph, XStack, YStack, useTheme } from "tamagui";
|
|
10
10
|
import { Button } from "./index";
|
|
11
|
+
import { useState } from "react";
|
|
11
12
|
|
|
12
13
|
const pressed = (name: string) => () => action(name)();
|
|
13
14
|
|
|
@@ -44,6 +45,25 @@ const meta: Meta<typeof Button> = {
|
|
|
44
45
|
export default meta;
|
|
45
46
|
type Story = StoryObj<typeof Button>;
|
|
46
47
|
|
|
48
|
+
function DestructiveContrastExample({ disabled = false }: { disabled?: boolean }) {
|
|
49
|
+
const [presses, setPresses] = useState(0);
|
|
50
|
+
return (
|
|
51
|
+
<YStack data-lc-clicks={presses}>
|
|
52
|
+
<Button error disabled={disabled} onPress={() => setPresses((value) => value + 1)}>
|
|
53
|
+
Delete
|
|
54
|
+
</Button>
|
|
55
|
+
</YStack>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export const DestructiveEnabled: Story = {
|
|
60
|
+
render: () => <DestructiveContrastExample />,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export const DestructiveDisabled: Story = {
|
|
64
|
+
render: () => <DestructiveContrastExample disabled />,
|
|
65
|
+
};
|
|
66
|
+
|
|
47
67
|
export const Basic: Story = {
|
|
48
68
|
name: "Main",
|
|
49
69
|
args: {
|