@multiplatform.one/forms 7.11.0 → 7.16.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/README.md +1 -1
- package/dist/cjs/AdaptivePopup/index.cjs +0 -10
- package/dist/cjs/AdaptivePopup/index.native.js +0 -10
- package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
- package/dist/cjs/Button/index.cjs +11 -4
- package/dist/cjs/Button/index.native.js +11 -4
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +5 -2
- package/dist/cjs/Chip/index.native.js +6 -7
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.cjs +2 -11
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +2 -11
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/index.cjs +12 -10
- package/dist/cjs/ContextualSaveBar/index.native.js +12 -19
- package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/index.cjs +24 -12
- package/dist/cjs/FieldDisplay/index.native.js +25 -13
- package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/PanelPortal.cjs +145 -0
- package/dist/cjs/FloatingPanel/PanelPortal.native.js +43 -0
- package/dist/cjs/FloatingPanel/PanelPortal.native.js.map +1 -0
- package/dist/cjs/FloatingPanel/index.cjs +117 -67
- package/dist/cjs/FloatingPanel/index.native.js +67 -12
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +16 -5
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +16 -5
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/cjs/Form/index.cjs +2 -1
- package/dist/cjs/Form/index.native.js +2 -1
- package/dist/cjs/Form/index.native.js.map +1 -1
- package/dist/cjs/Form/submissionController.cjs +74 -0
- package/dist/cjs/Form/submissionController.native.js +99 -0
- package/dist/cjs/Form/submissionController.native.js.map +1 -0
- package/dist/cjs/InputParts/index.cjs +66 -12
- package/dist/cjs/InputParts/index.native.js +72 -12
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/Skeleton/index.cjs +1 -3
- package/dist/cjs/Skeleton/index.native.js +3 -6
- package/dist/cjs/Skeleton/index.native.js.map +1 -1
- package/dist/cjs/Wheel/index.cjs +0 -2
- package/dist/cjs/Wheel/index.native.js +0 -2
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/fieldLayout.cjs +1 -1
- package/dist/cjs/fieldLayout.native.js +1 -1
- package/dist/cjs/fields/Barcode/BarcodePreview.cjs +18 -15
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js +21 -18
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/index.cjs +1 -1
- package/dist/cjs/fields/Barcode/index.native.js +1 -1
- package/dist/cjs/fields/Barcode/qr.native.js +34 -34
- package/dist/cjs/fields/Checkbox/Checkbox.cjs +1 -3
- package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -3
- package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxBox.cjs +2 -3
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js +2 -3
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/index.cjs +3 -1
- package/dist/cjs/fields/ColorPicker/index.native.js +3 -1
- package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/parts.cjs +2 -1
- package/dist/cjs/fields/ColorPicker/parts.native.js +2 -1
- package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +206 -200
- package/dist/cjs/fields/Combobox/index.native.js +214 -208
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.cjs +7 -7
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +7 -7
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MultiDatePicker.cjs +6 -4
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +6 -4
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.cjs +2 -1
- package/dist/cjs/fields/DatePicker/parts.native.js +2 -1
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Duration/index.cjs +6 -4
- package/dist/cjs/fields/Duration/index.native.js +6 -4
- package/dist/cjs/fields/Duration/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/index.cjs +10 -8
- package/dist/cjs/fields/FileUpload/index.native.js +10 -8
- package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/nativePickerLoader.cjs +7 -2
- package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js +7 -2
- package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/GeolocationMap.cjs +3 -0
- package/dist/cjs/fields/Geolocation/geocoderContext.cjs +71 -0
- package/dist/cjs/fields/Geolocation/geocoderContext.native.js +75 -0
- package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -0
- package/dist/cjs/fields/Geolocation/index.cjs +72 -82
- package/dist/cjs/fields/Geolocation/index.native.js +72 -82
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/photonGeocoder.cjs +138 -0
- package/dist/cjs/fields/Geolocation/photonGeocoder.native.js +179 -0
- package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -0
- package/dist/cjs/fields/Icon/index.cjs +1 -1
- package/dist/cjs/fields/Icon/index.native.js +1 -1
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.cjs +8 -6
- package/dist/cjs/fields/Input/index.native.js +8 -6
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.cjs +118 -112
- package/dist/cjs/fields/MentionInput/index.native.js +130 -124
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.cjs +11 -8
- package/dist/cjs/fields/OTPInput/index.native.js +11 -8
- package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.cjs +9 -6
- package/dist/cjs/fields/PhoneInput/index.native.js +9 -6
- package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/phone.cjs +6 -5
- package/dist/cjs/fields/PhoneInput/phone.native.js +7 -6
- package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/regionNames.cjs +274 -0
- package/dist/cjs/fields/PhoneInput/regionNames.native.js +277 -0
- package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -0
- package/dist/cjs/fields/RadioGroup/index.cjs +2 -6
- package/dist/cjs/fields/RadioGroup/index.native.js +2 -6
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/SearchInput/index.cjs +12 -10
- package/dist/cjs/fields/SearchInput/index.native.js +12 -10
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +20 -17
- package/dist/cjs/fields/Select/index.native.js +20 -17
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Signature/index.cjs +10 -9
- package/dist/cjs/fields/Signature/index.native.js +10 -9
- package/dist/cjs/fields/Signature/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +21 -15
- package/dist/cjs/fields/Slider/index.native.js +21 -17
- package/dist/cjs/fields/Slider/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/jumpMotion.cjs +2 -2
- package/dist/cjs/fields/Slider/jumpMotion.native.js +2 -1
- package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/index.cjs +25 -6
- package/dist/cjs/fields/Stepper/index.native.js +25 -6
- package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
- package/dist/cjs/fields/Switch/footprint.cjs +54 -0
- package/dist/cjs/fields/Switch/footprint.native.js +57 -0
- package/dist/cjs/fields/Switch/footprint.native.js.map +1 -0
- package/dist/cjs/fields/Switch/index.cjs +60 -43
- package/dist/cjs/fields/Switch/index.native.js +60 -50
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TextArea/index.cjs +9 -6
- package/dist/cjs/fields/TextArea/index.native.js +9 -6
- package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/catalog.cjs +1 -0
- package/dist/cjs/fields/TimePicker/catalog.native.js +1 -0
- package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/parts.cjs +6 -1
- package/dist/cjs/fields/TimePicker/parts.native.js +8 -1
- package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/cjs/index.cjs +12 -0
- package/dist/cjs/index.native.js +12 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/panelPortal.cjs +52 -0
- package/dist/cjs/shared/panelPortal.native.js +65 -0
- package/dist/cjs/shared/panelPortal.native.js.map +1 -0
- package/dist/cjs/shared/pressSlopProps.cjs +16 -11
- package/dist/cjs/shared/pressSlopProps.native.js +18 -12
- package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
- package/dist/cjs/shared/utils.cjs +2 -2
- package/dist/cjs/shared/utils.native.js +3 -2
- package/dist/cjs/shared/utils.native.js.map +1 -1
- package/dist/cjs/themedPrimitives.cjs +15 -2
- package/dist/cjs/themedPrimitives.native.js +16 -3
- package/dist/cjs/themedPrimitives.native.js.map +1 -1
- package/dist/esm/AdaptivePopup/index.mjs +0 -10
- package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
- package/dist/esm/AdaptivePopup/index.native.js +0 -10
- package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
- package/dist/esm/Button/index.mjs +11 -4
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +11 -4
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +6 -3
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +7 -8
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.mjs +3 -12
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -1
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js +3 -12
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/index.mjs +13 -11
- package/dist/esm/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/esm/ContextualSaveBar/index.native.js +13 -20
- package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/esm/FieldDisplay/index.mjs +24 -12
- package/dist/esm/FieldDisplay/index.mjs.map +1 -1
- package/dist/esm/FieldDisplay/index.native.js +25 -13
- package/dist/esm/FieldDisplay/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/PanelPortal.mjs +119 -0
- package/dist/esm/FloatingPanel/PanelPortal.mjs.map +1 -0
- package/dist/esm/FloatingPanel/PanelPortal.native.js +14 -0
- package/dist/esm/FloatingPanel/PanelPortal.native.js.map +1 -0
- package/dist/esm/FloatingPanel/index.mjs +119 -69
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +68 -13
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs +17 -6
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js +17 -6
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/Form/index.mjs +2 -1
- package/dist/esm/Form/index.mjs.map +1 -1
- package/dist/esm/Form/index.native.js +2 -1
- package/dist/esm/Form/index.native.js.map +1 -1
- package/dist/esm/Form/submissionController.mjs +49 -0
- package/dist/esm/Form/submissionController.mjs.map +1 -0
- package/dist/esm/Form/submissionController.native.js +71 -0
- package/dist/esm/Form/submissionController.native.js.map +1 -0
- package/dist/esm/InputParts/index.mjs +67 -13
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +73 -13
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Skeleton/index.mjs +1 -3
- package/dist/esm/Skeleton/index.mjs.map +1 -1
- package/dist/esm/Skeleton/index.native.js +3 -6
- package/dist/esm/Skeleton/index.native.js.map +1 -1
- package/dist/esm/Wheel/index.mjs +0 -2
- package/dist/esm/Wheel/index.mjs.map +1 -1
- package/dist/esm/Wheel/index.native.js +0 -2
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/fieldLayout.mjs +1 -1
- package/dist/esm/fieldLayout.mjs.map +1 -1
- package/dist/esm/fieldLayout.native.js +1 -1
- package/dist/esm/fieldLayout.native.js.map +1 -1
- package/dist/esm/fields/Barcode/BarcodePreview.mjs +19 -16
- package/dist/esm/fields/Barcode/BarcodePreview.mjs.map +1 -1
- package/dist/esm/fields/Barcode/BarcodePreview.native.js +22 -19
- package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/esm/fields/Barcode/index.mjs +1 -1
- package/dist/esm/fields/Barcode/index.mjs.map +1 -1
- package/dist/esm/fields/Barcode/index.native.js +1 -1
- package/dist/esm/fields/Barcode/index.native.js.map +1 -1
- package/dist/esm/fields/Barcode/qr.native.js +34 -34
- package/dist/esm/fields/Checkbox/Checkbox.mjs +2 -4
- package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.native.js +2 -4
- package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.mjs +3 -4
- package/dist/esm/fields/Checkbox/CheckboxBox.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js +3 -4
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/index.mjs +3 -1
- package/dist/esm/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/index.native.js +3 -1
- package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.mjs +2 -1
- package/dist/esm/fields/ColorPicker/parts.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.native.js +2 -1
- package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +197 -191
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +205 -199
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs +5 -5
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js +5 -5
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs +3 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js +3 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +2 -1
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +2 -1
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Duration/index.mjs +4 -2
- package/dist/esm/fields/Duration/index.mjs.map +1 -1
- package/dist/esm/fields/Duration/index.native.js +4 -2
- package/dist/esm/fields/Duration/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/index.mjs +5 -3
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +5 -3
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/nativePickerLoader.mjs +7 -3
- package/dist/esm/fields/FileUpload/nativePickerLoader.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/nativePickerLoader.native.js +7 -3
- package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/GeolocationMap.mjs +3 -0
- package/dist/esm/fields/Geolocation/GeolocationMap.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/geocoderContext.mjs +44 -0
- package/dist/esm/fields/Geolocation/geocoderContext.mjs.map +1 -0
- package/dist/esm/fields/Geolocation/geocoderContext.native.js +45 -0
- package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -0
- package/dist/esm/fields/Geolocation/index.mjs +73 -83
- package/dist/esm/fields/Geolocation/index.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js +73 -83
- package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/photonGeocoder.mjs +112 -0
- package/dist/esm/fields/Geolocation/photonGeocoder.mjs.map +1 -0
- package/dist/esm/fields/Geolocation/photonGeocoder.native.js +150 -0
- package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -0
- package/dist/esm/fields/Icon/index.mjs +1 -1
- package/dist/esm/fields/Icon/index.mjs.map +1 -1
- package/dist/esm/fields/Icon/index.native.js +1 -1
- package/dist/esm/fields/Icon/index.native.js.map +1 -1
- package/dist/esm/fields/Input/index.mjs +4 -2
- package/dist/esm/fields/Input/index.mjs.map +1 -1
- package/dist/esm/fields/Input/index.native.js +4 -2
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/MentionInput/index.mjs +115 -109
- package/dist/esm/fields/MentionInput/index.mjs.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js +127 -121
- package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/index.mjs +7 -4
- package/dist/esm/fields/OTPInput/index.mjs.map +1 -1
- package/dist/esm/fields/OTPInput/index.native.js +7 -4
- package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/index.mjs +6 -3
- package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/esm/fields/PhoneInput/index.native.js +6 -3
- package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/phone.mjs +6 -5
- package/dist/esm/fields/PhoneInput/phone.mjs.map +1 -1
- package/dist/esm/fields/PhoneInput/phone.native.js +7 -6
- package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/regionNames.mjs +249 -0
- package/dist/esm/fields/PhoneInput/regionNames.mjs.map +1 -0
- package/dist/esm/fields/PhoneInput/regionNames.native.js +249 -0
- package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -0
- package/dist/esm/fields/RadioGroup/index.mjs +3 -7
- package/dist/esm/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/esm/fields/RadioGroup/index.native.js +3 -7
- package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/esm/fields/SearchInput/index.mjs +7 -5
- package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
- package/dist/esm/fields/SearchInput/index.native.js +7 -5
- package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +10 -7
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +10 -7
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Signature/index.mjs +7 -6
- package/dist/esm/fields/Signature/index.mjs.map +1 -1
- package/dist/esm/fields/Signature/index.native.js +7 -6
- package/dist/esm/fields/Signature/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.mjs +10 -4
- package/dist/esm/fields/Slider/index.mjs.map +1 -1
- package/dist/esm/fields/Slider/index.native.js +10 -6
- package/dist/esm/fields/Slider/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/jumpMotion.mjs +2 -2
- package/dist/esm/fields/Slider/jumpMotion.mjs.map +1 -1
- package/dist/esm/fields/Slider/jumpMotion.native.js +2 -1
- package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/esm/fields/Stepper/index.mjs +24 -5
- package/dist/esm/fields/Stepper/index.mjs.map +1 -1
- package/dist/esm/fields/Stepper/index.native.js +24 -5
- package/dist/esm/fields/Stepper/index.native.js.map +1 -1
- package/dist/esm/fields/Switch/footprint.mjs +29 -0
- package/dist/esm/fields/Switch/footprint.mjs.map +1 -0
- package/dist/esm/fields/Switch/footprint.native.js +29 -0
- package/dist/esm/fields/Switch/footprint.native.js.map +1 -0
- package/dist/esm/fields/Switch/index.mjs +44 -27
- package/dist/esm/fields/Switch/index.mjs.map +1 -1
- package/dist/esm/fields/Switch/index.native.js +44 -34
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TextArea/index.mjs +9 -6
- package/dist/esm/fields/TextArea/index.mjs.map +1 -1
- package/dist/esm/fields/TextArea/index.native.js +9 -6
- package/dist/esm/fields/TextArea/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/catalog.mjs +1 -0
- package/dist/esm/fields/TimePicker/catalog.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/catalog.native.js +1 -0
- package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.mjs +6 -1
- package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/parts.native.js +8 -1
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/esm/index.mjs +6 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +6 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/shared/panelPortal.mjs +24 -0
- package/dist/esm/shared/panelPortal.mjs.map +1 -0
- package/dist/esm/shared/panelPortal.native.js +34 -0
- package/dist/esm/shared/panelPortal.native.js.map +1 -0
- package/dist/esm/shared/pressSlopProps.mjs +16 -12
- package/dist/esm/shared/pressSlopProps.mjs.map +1 -1
- package/dist/esm/shared/pressSlopProps.native.js +18 -13
- package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
- package/dist/esm/shared/utils.mjs +2 -2
- package/dist/esm/shared/utils.mjs.map +1 -1
- package/dist/esm/shared/utils.native.js +3 -2
- package/dist/esm/shared/utils.native.js.map +1 -1
- package/dist/esm/themedPrimitives.mjs +16 -3
- package/dist/esm/themedPrimitives.mjs.map +1 -1
- package/dist/esm/themedPrimitives.native.js +17 -4
- package/dist/esm/themedPrimitives.native.js.map +1 -1
- package/dist/jsx/AdaptivePopup/index.mjs +0 -10
- package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js +0 -10
- package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
- package/dist/jsx/Button/index.mjs +11 -4
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +11 -4
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +6 -3
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +6 -7
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.mjs +3 -12
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -1
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js +2 -11
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.mjs +13 -11
- package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.native.js +12 -19
- package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/jsx/FieldDisplay/index.mjs +24 -12
- package/dist/jsx/FieldDisplay/index.mjs.map +1 -1
- package/dist/jsx/FieldDisplay/index.native.js +25 -13
- package/dist/jsx/FieldDisplay/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/PanelPortal.mjs +119 -0
- package/dist/jsx/FloatingPanel/PanelPortal.mjs.map +1 -0
- package/dist/jsx/FloatingPanel/PanelPortal.native.js +43 -0
- package/dist/jsx/FloatingPanel/PanelPortal.native.js.map +1 -0
- package/dist/jsx/FloatingPanel/index.mjs +119 -69
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +67 -12
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +17 -6
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +16 -5
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/jsx/Form/index.mjs +2 -1
- package/dist/jsx/Form/index.mjs.map +1 -1
- package/dist/jsx/Form/index.native.js +2 -1
- package/dist/jsx/Form/index.native.js.map +1 -1
- package/dist/jsx/Form/submissionController.mjs +49 -0
- package/dist/jsx/Form/submissionController.mjs.map +1 -0
- package/dist/jsx/Form/submissionController.native.js +99 -0
- package/dist/jsx/Form/submissionController.native.js.map +1 -0
- package/dist/jsx/InputParts/index.mjs +67 -13
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +72 -12
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/Skeleton/index.mjs +1 -3
- package/dist/jsx/Skeleton/index.mjs.map +1 -1
- package/dist/jsx/Skeleton/index.native.js +3 -6
- package/dist/jsx/Skeleton/index.native.js.map +1 -1
- package/dist/jsx/Wheel/index.mjs +0 -2
- package/dist/jsx/Wheel/index.mjs.map +1 -1
- package/dist/jsx/Wheel/index.native.js +0 -2
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/fieldLayout.mjs +1 -1
- package/dist/jsx/fieldLayout.mjs.map +1 -1
- package/dist/jsx/fieldLayout.native.js +1 -1
- package/dist/jsx/fieldLayout.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodePreview.mjs +19 -16
- package/dist/jsx/fields/Barcode/BarcodePreview.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodePreview.native.js +21 -18
- package/dist/jsx/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/index.mjs +1 -1
- package/dist/jsx/fields/Barcode/index.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/index.native.js +1 -1
- package/dist/jsx/fields/Barcode/index.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/qr.native.js +34 -34
- package/dist/jsx/fields/Checkbox/Checkbox.mjs +2 -4
- package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.native.js +1 -3
- package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.mjs +3 -4
- package/dist/jsx/fields/Checkbox/CheckboxBox.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.native.js +2 -3
- package/dist/jsx/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.mjs +3 -1
- package/dist/jsx/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.native.js +3 -1
- package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/parts.mjs +2 -1
- package/dist/jsx/fields/ColorPicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/parts.native.js +2 -1
- package/dist/jsx/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +197 -191
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +214 -208
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs +5 -5
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +7 -7
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs +3 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +6 -4
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +2 -1
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +2 -1
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Duration/index.mjs +4 -2
- package/dist/jsx/fields/Duration/index.mjs.map +1 -1
- package/dist/jsx/fields/Duration/index.native.js +6 -4
- package/dist/jsx/fields/Duration/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/index.mjs +5 -3
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +10 -8
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/nativePickerLoader.mjs +7 -3
- package/dist/jsx/fields/FileUpload/nativePickerLoader.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js +7 -2
- package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/GeolocationMap.mjs +3 -0
- package/dist/jsx/fields/Geolocation/GeolocationMap.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/geocoderContext.mjs +44 -0
- package/dist/jsx/fields/Geolocation/geocoderContext.mjs.map +1 -0
- package/dist/jsx/fields/Geolocation/geocoderContext.native.js +75 -0
- package/dist/jsx/fields/Geolocation/geocoderContext.native.js.map +1 -0
- package/dist/jsx/fields/Geolocation/index.mjs +73 -83
- package/dist/jsx/fields/Geolocation/index.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/index.native.js +72 -82
- package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/photonGeocoder.mjs +112 -0
- package/dist/jsx/fields/Geolocation/photonGeocoder.mjs.map +1 -0
- package/dist/jsx/fields/Geolocation/photonGeocoder.native.js +179 -0
- package/dist/jsx/fields/Geolocation/photonGeocoder.native.js.map +1 -0
- package/dist/jsx/fields/Icon/index.mjs +1 -1
- package/dist/jsx/fields/Icon/index.mjs.map +1 -1
- package/dist/jsx/fields/Icon/index.native.js +1 -1
- package/dist/jsx/fields/Icon/index.native.js.map +1 -1
- package/dist/jsx/fields/Input/index.mjs +4 -2
- package/dist/jsx/fields/Input/index.mjs.map +1 -1
- package/dist/jsx/fields/Input/index.native.js +8 -6
- package/dist/jsx/fields/Input/index.native.js.map +1 -1
- package/dist/jsx/fields/MentionInput/index.mjs +115 -109
- package/dist/jsx/fields/MentionInput/index.mjs.map +1 -1
- package/dist/jsx/fields/MentionInput/index.native.js +130 -124
- package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
- package/dist/jsx/fields/OTPInput/index.mjs +7 -4
- package/dist/jsx/fields/OTPInput/index.mjs.map +1 -1
- package/dist/jsx/fields/OTPInput/index.native.js +11 -8
- package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.mjs +6 -3
- package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.native.js +9 -6
- package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/phone.mjs +6 -5
- package/dist/jsx/fields/PhoneInput/phone.mjs.map +1 -1
- package/dist/jsx/fields/PhoneInput/phone.native.js +7 -6
- package/dist/jsx/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/regionNames.mjs +249 -0
- package/dist/jsx/fields/PhoneInput/regionNames.mjs.map +1 -0
- package/dist/jsx/fields/PhoneInput/regionNames.native.js +277 -0
- package/dist/jsx/fields/PhoneInput/regionNames.native.js.map +1 -0
- package/dist/jsx/fields/RadioGroup/index.mjs +3 -7
- package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.native.js +2 -6
- package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/SearchInput/index.mjs +7 -5
- package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
- package/dist/jsx/fields/SearchInput/index.native.js +12 -10
- package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +10 -7
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +20 -17
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Signature/index.mjs +7 -6
- package/dist/jsx/fields/Signature/index.mjs.map +1 -1
- package/dist/jsx/fields/Signature/index.native.js +10 -9
- package/dist/jsx/fields/Signature/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/index.mjs +10 -4
- package/dist/jsx/fields/Slider/index.mjs.map +1 -1
- package/dist/jsx/fields/Slider/index.native.js +21 -17
- package/dist/jsx/fields/Slider/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/jumpMotion.mjs +2 -2
- package/dist/jsx/fields/Slider/jumpMotion.mjs.map +1 -1
- package/dist/jsx/fields/Slider/jumpMotion.native.js +2 -1
- package/dist/jsx/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/jsx/fields/Stepper/index.mjs +24 -5
- package/dist/jsx/fields/Stepper/index.mjs.map +1 -1
- package/dist/jsx/fields/Stepper/index.native.js +25 -6
- package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
- package/dist/jsx/fields/Switch/footprint.mjs +29 -0
- package/dist/jsx/fields/Switch/footprint.mjs.map +1 -0
- package/dist/jsx/fields/Switch/footprint.native.js +57 -0
- package/dist/jsx/fields/Switch/footprint.native.js.map +1 -0
- package/dist/jsx/fields/Switch/index.mjs +44 -27
- package/dist/jsx/fields/Switch/index.mjs.map +1 -1
- package/dist/jsx/fields/Switch/index.native.js +60 -50
- package/dist/jsx/fields/Switch/index.native.js.map +1 -1
- package/dist/jsx/fields/TextArea/index.mjs +9 -6
- package/dist/jsx/fields/TextArea/index.mjs.map +1 -1
- package/dist/jsx/fields/TextArea/index.native.js +9 -6
- package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/catalog.mjs +1 -0
- package/dist/jsx/fields/TimePicker/catalog.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/catalog.native.js +1 -0
- package/dist/jsx/fields/TimePicker/catalog.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.mjs +6 -1
- package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.native.js +8 -1
- package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/jsx/index.js +6 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +6 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +12 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/panelPortal.mjs +24 -0
- package/dist/jsx/shared/panelPortal.mjs.map +1 -0
- package/dist/jsx/shared/panelPortal.native.js +65 -0
- package/dist/jsx/shared/panelPortal.native.js.map +1 -0
- package/dist/jsx/shared/pressSlopProps.mjs +16 -12
- package/dist/jsx/shared/pressSlopProps.mjs.map +1 -1
- package/dist/jsx/shared/pressSlopProps.native.js +18 -12
- package/dist/jsx/shared/pressSlopProps.native.js.map +1 -1
- package/dist/jsx/shared/utils.mjs +2 -2
- package/dist/jsx/shared/utils.mjs.map +1 -1
- package/dist/jsx/shared/utils.native.js +3 -2
- package/dist/jsx/shared/utils.native.js.map +1 -1
- package/dist/jsx/themedPrimitives.mjs +16 -3
- package/dist/jsx/themedPrimitives.mjs.map +1 -1
- package/dist/jsx/themedPrimitives.native.js +16 -3
- package/dist/jsx/themedPrimitives.native.js.map +1 -1
- package/package.json +15 -11
- package/src/AdaptivePopup/AdaptivePopup.spec.tsx +2 -3
- package/src/AdaptivePopup/index.tsx +11 -10
- package/src/Button/Button.borderLadder.spec.tsx +82 -0
- package/src/Button/Button.labelInk.spec.tsx +4 -1
- package/src/Button/Button.lc71.spec.tsx +17 -0
- package/src/Button/Button.radiusLaw.spec.tsx +153 -0
- package/src/Button/index.tsx +11 -4
- package/src/Chip/Chip.spec.tsx +23 -0
- package/src/Chip/index.tsx +10 -6
- package/src/ContextualSaveBar/ContextualSaveBar.spec.tsx +24 -0
- package/src/ContextualSaveBar/ContextualSaveBar.stories.tsx +37 -1
- package/src/ContextualSaveBar/UnsavedChangesDialog.tsx +3 -11
- package/src/ContextualSaveBar/index.tsx +17 -11
- package/src/ErrorSummary.stories.tsx +20 -11
- package/src/FieldDisplay/FieldDisplay.spec.tsx +47 -2
- package/src/FieldDisplay/index.tsx +21 -13
- package/src/FloatingPanel/FloatingPanel.detentLayout.spec.tsx +148 -0
- package/src/FloatingPanel/FloatingPanel.spec.tsx +140 -1
- package/src/FloatingPanel/FloatingPanel.stories.tsx +86 -1
- package/src/FloatingPanel/PanelPortal.native.tsx +15 -0
- package/src/FloatingPanel/PanelPortal.tsx +149 -0
- package/src/FloatingPanel/index.native.tsx +96 -19
- package/src/FloatingPanel/index.tsx +180 -86
- package/src/FloatingPanel/panelPortal.spec.tsx +142 -0
- package/src/FloatingPanel/panelWidthContract.spec.ts +17 -5
- package/src/FloatingPanel/touchRecipeHydration.spec.tsx +82 -0
- package/src/FloatingPanel/useFloatingPanel.spec.tsx +81 -0
- package/src/FloatingPanel/useFloatingPanel.ts +39 -12
- package/src/FloatingPanel/viewportHydration.spec.tsx +118 -0
- package/src/Form/index.tsx +2 -1
- package/src/Form/submission.spec.tsx +148 -0
- package/src/Form/submissionController.spec.ts +73 -0
- package/src/Form/submissionController.ts +59 -0
- package/src/Form/submissionDiscard.spec.tsx +41 -0
- package/src/Form/submissionPaths.spec.tsx +214 -0
- package/src/InputParts/index.tsx +48 -12
- package/src/Label/Label.stories.tsx +27 -11
- package/src/Skeleton/Skeleton.radius.spec.tsx +30 -0
- package/src/Skeleton/index.tsx +4 -7
- package/src/Wheel/Wheel.spec.tsx +9 -2
- package/src/Wheel/index.tsx +0 -2
- package/src/errorTint.spec.tsx +70 -0
- package/src/fieldFamilyStories.radius.spec.tsx +48 -0
- package/src/fieldLayout.tsx +1 -1
- package/src/fields/Barcode/BarcodePreview.spec.tsx +32 -12
- package/src/fields/Barcode/BarcodePreview.stories.tsx +5 -4
- package/src/fields/Barcode/BarcodePreview.tsx +31 -25
- package/src/fields/Barcode/index.tsx +3 -3
- package/src/fields/Checkbox/Checkbox.native.spec.tsx +92 -0
- package/src/fields/Checkbox/Checkbox.stories.tsx +1 -0
- package/src/fields/Checkbox/Checkbox.tsx +2 -2
- package/src/fields/Checkbox/CheckboxBox.spec.tsx +13 -13
- package/src/fields/Checkbox/CheckboxBox.tsx +7 -1
- package/src/fields/ColorPicker/index.tsx +7 -2
- package/src/fields/ColorPicker/parts.tsx +2 -1
- package/src/fields/Combobox/Combobox.spec.tsx +85 -55
- package/src/fields/Combobox/index.tsx +259 -240
- package/src/fields/DatePicker/DateRangePicker.tsx +5 -3
- package/src/fields/DatePicker/MultiDatePicker.tsx +3 -1
- package/src/fields/DatePicker/parts.tsx +2 -1
- package/src/fields/Duration/index.tsx +4 -2
- package/src/fields/FileUpload/index.tsx +13 -3
- package/src/fields/FileUpload/nativePickerLoader.spec.ts +34 -0
- package/src/fields/FileUpload/nativePickerLoader.ts +11 -2
- package/src/fields/Geolocation/Geolocation.spec.tsx +165 -4
- package/src/fields/Geolocation/Geolocation.stories.tsx +110 -26
- package/src/fields/Geolocation/GeolocationMap.tsx +3 -0
- package/src/fields/Geolocation/geocoderContext.tsx +56 -0
- package/src/fields/Geolocation/index.tsx +75 -80
- package/src/fields/Geolocation/photonGeocoder.spec.ts +214 -0
- package/src/fields/Geolocation/photonGeocoder.ts +150 -0
- package/src/fields/Icon/index.tsx +1 -1
- package/src/fields/Input/index.tsx +4 -2
- package/src/fields/MentionInput/MentionInput.spec.tsx +41 -30
- package/src/fields/MentionInput/index.tsx +128 -119
- package/src/fields/OTPInput/index.tsx +7 -4
- package/src/fields/PhoneInput/PhoneInput.spec.tsx +63 -0
- package/src/fields/PhoneInput/index.tsx +13 -8
- package/src/fields/PhoneInput/phone.native.spec.ts +32 -0
- package/src/fields/PhoneInput/phone.ts +5 -2
- package/src/fields/PhoneInput/regionNames.ts +250 -0
- package/src/fields/RadioGroup/RadioGroup.stories.tsx +4 -3
- package/src/fields/RadioGroup/index.tsx +3 -2
- package/src/fields/Rating/StarInk.native.spec.tsx +1 -1
- package/src/fields/SearchInput/index.tsx +6 -5
- package/src/fields/Select/Select.spec.tsx +36 -29
- package/src/fields/Select/index.tsx +14 -5
- package/src/fields/Signature/index.tsx +7 -3
- package/src/fields/Slider/index.tsx +14 -4
- package/src/fields/Slider/jumpMotion.ts +6 -2
- package/src/fields/Stepper/Stepper.spec.tsx +30 -0
- package/src/fields/Stepper/index.tsx +34 -4
- package/src/fields/Switch/Switch.footprint.native.spec.tsx +58 -0
- package/src/fields/Switch/Switch.footprint.spec.tsx +79 -0
- package/src/fields/Switch/Switch.radius.spec.tsx +37 -6
- package/src/fields/Switch/footprint.ts +45 -0
- package/src/fields/Switch/index.tsx +46 -49
- package/src/fields/TextArea/TextArea.spec.tsx +30 -1
- package/src/fields/TextArea/index.tsx +9 -6
- package/src/fields/TimePicker/TimePicker.native.spec.tsx +48 -0
- package/src/fields/TimePicker/catalog.tsx +1 -0
- package/src/fields/TimePicker/parts.tsx +5 -1
- package/src/fields/ToggleGroup/ToggleGroup.spec.tsx +17 -8
- package/src/fields/pickerShellPadding.spec.tsx +54 -0
- package/src/index.ts +8 -0
- package/src/shared/panelPortal.ts +36 -0
- package/src/shared/pressSlopProps.spec.ts +27 -1
- package/src/shared/pressSlopProps.ts +26 -17
- package/src/shared/utils.ts +2 -2
- package/src/themedPrimitives.tsx +16 -3
- package/types/AdaptivePopup/index.d.ts.map +1 -1
- package/types/Button/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts.map +1 -1
- package/types/ContextualSaveBar/UnsavedChangesDialog.d.ts.map +1 -1
- package/types/ContextualSaveBar/index.d.ts.map +1 -1
- package/types/FieldDisplay/index.d.ts.map +1 -1
- package/types/FloatingPanel/PanelPortal.d.ts +24 -0
- package/types/FloatingPanel/PanelPortal.d.ts.map +1 -0
- package/types/FloatingPanel/PanelPortal.native.d.ts +9 -0
- package/types/FloatingPanel/PanelPortal.native.d.ts.map +1 -0
- package/types/FloatingPanel/index.d.ts +6 -5
- package/types/FloatingPanel/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/FloatingPanel/useFloatingPanel.d.ts +10 -4
- package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
- package/types/Form/index.d.ts.map +1 -1
- package/types/Form/submissionController.d.ts +21 -0
- package/types/Form/submissionController.d.ts.map +1 -0
- package/types/InputParts/index.d.ts +34 -2
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/Skeleton/index.d.ts.map +1 -1
- package/types/Wheel/index.d.ts.map +1 -1
- package/types/fields/Barcode/BarcodePreview.d.ts +7 -3
- package/types/fields/Barcode/BarcodePreview.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxBox.d.ts +5 -0
- package/types/fields/Checkbox/CheckboxBox.d.ts.map +1 -1
- package/types/fields/ColorPicker/index.d.ts.map +1 -1
- package/types/fields/ColorPicker/parts.d.ts +2 -0
- package/types/fields/ColorPicker/parts.d.ts.map +1 -1
- package/types/fields/Combobox/index.d.ts.map +1 -1
- package/types/fields/DatePicker/DateRangePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/MultiDatePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/Duration/index.d.ts.map +1 -1
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/FileUpload/nativePickerLoader.d.ts +8 -0
- package/types/fields/FileUpload/nativePickerLoader.d.ts.map +1 -1
- package/types/fields/Geolocation/GeolocationMap.d.ts.map +1 -1
- package/types/fields/Geolocation/geocoderContext.d.ts +24 -0
- package/types/fields/Geolocation/geocoderContext.d.ts.map +1 -0
- package/types/fields/Geolocation/index.d.ts +2 -1
- package/types/fields/Geolocation/index.d.ts.map +1 -1
- package/types/fields/Geolocation/photonGeocoder.d.ts +46 -0
- package/types/fields/Geolocation/photonGeocoder.d.ts.map +1 -0
- package/types/fields/Input/index.d.ts +19 -1
- package/types/fields/Input/index.d.ts.map +1 -1
- package/types/fields/MentionInput/index.d.ts.map +1 -1
- package/types/fields/OTPInput/index.d.ts +1 -1
- package/types/fields/OTPInput/index.d.ts.map +1 -1
- package/types/fields/PhoneInput/index.d.ts.map +1 -1
- package/types/fields/PhoneInput/phone.d.ts.map +1 -1
- package/types/fields/PhoneInput/regionNames.d.ts +2 -0
- package/types/fields/PhoneInput/regionNames.d.ts.map +1 -0
- package/types/fields/RadioGroup/index.d.ts.map +1 -1
- package/types/fields/SearchInput/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/Signature/index.d.ts.map +1 -1
- package/types/fields/Slider/index.d.ts.map +1 -1
- package/types/fields/Slider/jumpMotion.d.ts +1 -1
- package/types/fields/Slider/jumpMotion.d.ts.map +1 -1
- package/types/fields/Stepper/index.d.ts +6 -0
- package/types/fields/Stepper/index.d.ts.map +1 -1
- package/types/fields/Switch/footprint.d.ts +12 -0
- package/types/fields/Switch/footprint.d.ts.map +1 -0
- package/types/fields/Switch/index.d.ts.map +1 -1
- package/types/fields/TextArea/index.d.ts.map +1 -1
- package/types/fields/TimePicker/catalog.d.ts.map +1 -1
- package/types/fields/TimePicker/parts.d.ts.map +1 -1
- package/types/index.d.ts +8 -0
- package/types/index.d.ts.map +1 -1
- package/types/shared/panelPortal.d.ts +13 -0
- package/types/shared/panelPortal.d.ts.map +1 -0
- package/types/shared/pressSlopProps.d.ts +9 -2
- package/types/shared/pressSlopProps.d.ts.map +1 -1
- package/types/shared/utils.d.ts +1 -1
- package/types/shared/utils.d.ts.map +1 -1
- package/types/themedPrimitives.d.ts +48 -1
- package/types/themedPrimitives.d.ts.map +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useTouchSurface } from "@multiplatform.one/theme";
|
|
1
2
|
import type { ComponentProps, ReactElement, ReactNode } from "react";
|
|
2
3
|
import { useCallback, useRef } from "react";
|
|
3
4
|
import { writeToClipboard } from "@multiplatform.one/platform";
|
|
@@ -160,6 +161,7 @@ export function Input({
|
|
|
160
161
|
copy,
|
|
161
162
|
onCopyResult,
|
|
162
163
|
}: InputProps) {
|
|
164
|
+
const hydrationTouch = useTouchSurface();
|
|
163
165
|
const { resolvedForm, knobProps, control, id } = useFormField({
|
|
164
166
|
form: formProp,
|
|
165
167
|
id: idProp,
|
|
@@ -178,7 +180,7 @@ export function Input({
|
|
|
178
180
|
// density ≠ size: compact steps knobProps.sizeToken; an explicit `size`
|
|
179
181
|
// ejects only the painted box height and leaves density alone.
|
|
180
182
|
const resolvedSize = (size ?? knobProps.sizeToken) as SizeTokens;
|
|
181
|
-
const visualHeight = getFieldHeight(resolvedSize);
|
|
183
|
+
const visualHeight = getFieldHeight(resolvedSize, 1, hydrationTouch);
|
|
182
184
|
const belowFloor = visualHeight < MIN_PRESS_TARGET;
|
|
183
185
|
const visibleLabel = labelHidden ? undefined : label;
|
|
184
186
|
const resolvedAriaLabel =
|
|
@@ -267,7 +269,7 @@ export function Input({
|
|
|
267
269
|
|
|
268
270
|
if (children) {
|
|
269
271
|
return (
|
|
270
|
-
<InputParts size={resolvedSize} {...(error ? { theme: "
|
|
272
|
+
<InputParts size={resolvedSize} {...(error ? { theme: "error" } : undefined)}>
|
|
271
273
|
{children}
|
|
272
274
|
</InputParts>
|
|
273
275
|
);
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import { act, fireEvent, waitFor } from "@testing-library/react";
|
|
1
|
+
import { act, fireEvent, waitFor, within } from "@testing-library/react";
|
|
2
2
|
import { useForm } from "@tanstack/react-form";
|
|
3
3
|
import { describe, expect, it, vi } from "vitest";
|
|
4
4
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
5
5
|
import { Form } from "../../Form";
|
|
6
6
|
import { MentionInput, parseMentionValue } from "./index";
|
|
7
7
|
|
|
8
|
+
/** Web panels portal out to the page (MPO-335, LC-90), so panel text is read from the page. */
|
|
9
|
+
function findInPage(text: string): Element | undefined {
|
|
10
|
+
try {
|
|
11
|
+
return within(document.body).queryByText(text, { exact: false }) ?? undefined;
|
|
12
|
+
} catch {
|
|
13
|
+
return Array.from(document.body.querySelectorAll("*")).find((el) =>
|
|
14
|
+
el.textContent?.includes(text),
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
8
19
|
const userMentions = {
|
|
9
20
|
trigger: "@",
|
|
10
21
|
data: [
|
|
@@ -59,8 +70,8 @@ describe("MentionInput", () => {
|
|
|
59
70
|
/>,
|
|
60
71
|
);
|
|
61
72
|
|
|
62
|
-
expect(
|
|
63
|
-
const textArea = result.
|
|
73
|
+
expect(findInPage("Comment")).toBeDefined();
|
|
74
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
64
75
|
expect(textArea?.getAttribute("placeholder")).toBe("Type @ to mention");
|
|
65
76
|
});
|
|
66
77
|
|
|
@@ -82,7 +93,7 @@ describe("MentionInput", () => {
|
|
|
82
93
|
/>,
|
|
83
94
|
);
|
|
84
95
|
|
|
85
|
-
const textArea = result.
|
|
96
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
86
97
|
expect(textArea).toBeTruthy();
|
|
87
98
|
if (textArea) fireEvent.change(textArea, { target: { value: "hello" } });
|
|
88
99
|
|
|
@@ -96,7 +107,7 @@ describe("MentionInput", () => {
|
|
|
96
107
|
const result = renderWithProviders(
|
|
97
108
|
<MentionInput label="Comment" mentions={[userMentions]} defaultValue="hello there" />,
|
|
98
109
|
);
|
|
99
|
-
expect(result.
|
|
110
|
+
expect(result.baseElement.querySelector("textarea")?.value).toBe("hello there");
|
|
100
111
|
});
|
|
101
112
|
|
|
102
113
|
it("does not emit onChange on mount (LC-14: seed is not a user edit)", () => {
|
|
@@ -116,8 +127,8 @@ describe("MentionInput", () => {
|
|
|
116
127
|
const result = renderWithProviders(
|
|
117
128
|
<MentionInput label="Comment" name="comment" mentions={[userMentions]} skeleton />,
|
|
118
129
|
);
|
|
119
|
-
expect(
|
|
120
|
-
expect(result.
|
|
130
|
+
expect(findInPage("Comment")).toBeDefined();
|
|
131
|
+
expect(result.baseElement.querySelector("textarea")).toBeNull();
|
|
121
132
|
});
|
|
122
133
|
|
|
123
134
|
it("standalone controlled: a value arriving after mount displays without onChange", async () => {
|
|
@@ -126,7 +137,7 @@ describe("MentionInput", () => {
|
|
|
126
137
|
const result = renderWithProviders(
|
|
127
138
|
<MentionInput label="Comment" mentions={[userMentions]} value="" onChange={onChange} />,
|
|
128
139
|
);
|
|
129
|
-
expect(result.
|
|
140
|
+
expect(result.baseElement.querySelector("textarea")?.value).toBe("");
|
|
130
141
|
|
|
131
142
|
result.rerender(
|
|
132
143
|
<MentionInput
|
|
@@ -138,7 +149,7 @@ describe("MentionInput", () => {
|
|
|
138
149
|
/>,
|
|
139
150
|
);
|
|
140
151
|
await waitFor(() => {
|
|
141
|
-
expect(result.
|
|
152
|
+
expect(result.baseElement.querySelector("textarea")?.value).toBe("seeded");
|
|
142
153
|
});
|
|
143
154
|
expect(onChange).not.toHaveBeenCalled();
|
|
144
155
|
expect(onTextChange).not.toHaveBeenCalled();
|
|
@@ -169,7 +180,7 @@ describe("MentionInput", () => {
|
|
|
169
180
|
formApi?.setFieldValue("comment", { text: "seeded later", mentions: [] });
|
|
170
181
|
});
|
|
171
182
|
await waitFor(() => {
|
|
172
|
-
expect(result.
|
|
183
|
+
expect(result.baseElement.querySelector("textarea")?.value).toBe("seeded later");
|
|
173
184
|
});
|
|
174
185
|
expect(onChange).not.toHaveBeenCalled();
|
|
175
186
|
});
|
|
@@ -179,13 +190,13 @@ describe("MentionInput", () => {
|
|
|
179
190
|
<MentionInput label="Comment" name="comment" mentions={[userMentions]} />,
|
|
180
191
|
);
|
|
181
192
|
|
|
182
|
-
const textArea = result.
|
|
193
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
183
194
|
expect(textArea).toBeTruthy();
|
|
184
195
|
if (!textArea) return;
|
|
185
196
|
|
|
186
197
|
typeTrigger(textArea, "@");
|
|
187
198
|
|
|
188
|
-
const listbox = result.
|
|
199
|
+
const listbox = result.baseElement.ownerDocument.querySelector('[role="listbox"]');
|
|
189
200
|
expect(listbox).toBeTruthy();
|
|
190
201
|
if (!listbox) return;
|
|
191
202
|
|
|
@@ -198,11 +209,11 @@ describe("MentionInput", () => {
|
|
|
198
209
|
const options = listbox.querySelectorAll('[role="option"]');
|
|
199
210
|
expect(options.length).toBe(2);
|
|
200
211
|
// Both rows reserve a media slot when any item has an avatar (Bob has none).
|
|
201
|
-
expect(
|
|
202
|
-
expect(
|
|
203
|
-
expect(
|
|
204
|
-
expect(
|
|
205
|
-
expect(
|
|
212
|
+
expect(findInPage("Alice")).toBeDefined();
|
|
213
|
+
expect(findInPage("Bob")).toBeDefined();
|
|
214
|
+
expect(findInPage("Engineer")).toBeDefined();
|
|
215
|
+
expect(findInPage("Designer")).toBeDefined();
|
|
216
|
+
expect(findInPage("B")).toBeDefined(); // Bob initials fallback
|
|
206
217
|
// LC-73: overlay rows paint nestedControl (32px at medium), not a raw 28.
|
|
207
218
|
const slots = listbox.querySelectorAll("[data-media-slot]");
|
|
208
219
|
expect(slots.length).toBe(2);
|
|
@@ -220,13 +231,13 @@ describe("MentionInput", () => {
|
|
|
220
231
|
<MentionInput label="Comment" name="comment" mentions={[userMentions]} {...props} />,
|
|
221
232
|
);
|
|
222
233
|
|
|
223
|
-
const textArea = result.
|
|
234
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
224
235
|
expect(textArea).toBeTruthy();
|
|
225
236
|
if (!textArea) return;
|
|
226
237
|
|
|
227
238
|
typeTrigger(textArea, "@");
|
|
228
239
|
|
|
229
|
-
expect(result.
|
|
240
|
+
expect(result.baseElement.ownerDocument.querySelector('[role="listbox"]')).toBeNull();
|
|
230
241
|
});
|
|
231
242
|
|
|
232
243
|
it("does not reserve a media slot for all-text triggers (hashtags)", () => {
|
|
@@ -246,17 +257,17 @@ describe("MentionInput", () => {
|
|
|
246
257
|
/>,
|
|
247
258
|
);
|
|
248
259
|
|
|
249
|
-
const textArea = result.
|
|
260
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
250
261
|
expect(textArea).toBeTruthy();
|
|
251
262
|
if (!textArea) return;
|
|
252
263
|
|
|
253
264
|
typeTrigger(textArea, "#");
|
|
254
265
|
|
|
255
|
-
const listbox = result.
|
|
266
|
+
const listbox = result.baseElement.ownerDocument.querySelector('[role="listbox"]');
|
|
256
267
|
expect(listbox).toBeTruthy();
|
|
257
|
-
expect(
|
|
268
|
+
expect(findInPage("react")).toBeDefined();
|
|
258
269
|
// No avatar / initials glyphs for an all-text list.
|
|
259
|
-
expect(result.
|
|
270
|
+
expect(result.baseElement.ownerDocument.querySelector("img")).toBeNull();
|
|
260
271
|
expect(listbox?.querySelector("[data-media-slot]")).toBeNull();
|
|
261
272
|
});
|
|
262
273
|
|
|
@@ -265,16 +276,16 @@ describe("MentionInput", () => {
|
|
|
265
276
|
<MentionInput label="Comment" name="comment" mentions={[userMentions]} />,
|
|
266
277
|
);
|
|
267
278
|
|
|
268
|
-
const textArea = result.
|
|
279
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
269
280
|
expect(textArea).toBeTruthy();
|
|
270
281
|
if (!textArea) return;
|
|
271
282
|
|
|
272
283
|
typeTrigger(textArea, "@zzzz");
|
|
273
284
|
|
|
274
|
-
const listbox = result.
|
|
285
|
+
const listbox = result.baseElement.ownerDocument.querySelector('[role="listbox"]');
|
|
275
286
|
expect(listbox).toBeTruthy();
|
|
276
287
|
expect(listbox?.querySelectorAll('[role="option"]').length).toBe(0);
|
|
277
|
-
expect(
|
|
288
|
+
expect(findInPage("No matches")).toBeDefined();
|
|
278
289
|
});
|
|
279
290
|
|
|
280
291
|
it("inserts the active suggestion on Tab (GitHub/Slack)", () => {
|
|
@@ -283,7 +294,7 @@ describe("MentionInput", () => {
|
|
|
283
294
|
<MentionInput label="Comment" name="comment" mentions={[userMentions]} onChange={onChange} />,
|
|
284
295
|
);
|
|
285
296
|
|
|
286
|
-
const textArea = result.
|
|
297
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
287
298
|
expect(textArea).toBeTruthy();
|
|
288
299
|
if (!textArea) return;
|
|
289
300
|
|
|
@@ -309,13 +320,13 @@ describe("MentionInput", () => {
|
|
|
309
320
|
<MentionInput label="Comment" name="comment" mentions={[userMentions]} />,
|
|
310
321
|
);
|
|
311
322
|
|
|
312
|
-
const textArea = result.
|
|
323
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
313
324
|
expect(textArea).toBeTruthy();
|
|
314
325
|
if (!textArea) return;
|
|
315
326
|
|
|
316
327
|
typeTrigger(textArea, "@");
|
|
317
328
|
|
|
318
|
-
const options = result.
|
|
329
|
+
const options = result.baseElement.ownerDocument.querySelectorAll('[role="option"]');
|
|
319
330
|
expect(options.length).toBe(2);
|
|
320
331
|
expect(options[0]?.getAttribute("data-keyboard-ring")).toBe("true");
|
|
321
332
|
expect(options[1]?.getAttribute("data-keyboard-ring")).toBeNull();
|
|
@@ -331,7 +342,7 @@ describe("MentionInput", () => {
|
|
|
331
342
|
<MentionInput label="Comment" name="comment" mentions={[userMentions]} onChange={onChange} />,
|
|
332
343
|
);
|
|
333
344
|
|
|
334
|
-
const textArea = result.
|
|
345
|
+
const textArea = result.baseElement.querySelector("textarea");
|
|
335
346
|
expect(textArea).toBeTruthy();
|
|
336
347
|
if (!textArea) return;
|
|
337
348
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useTouchSurface } from "@multiplatform.one/theme";
|
|
1
2
|
import type { Validator } from "../../types";
|
|
2
3
|
|
|
3
4
|
import type { DeepKeys, DeepValue } from "@tanstack/form-core";
|
|
@@ -24,6 +25,7 @@ import { ScrollArrow } from "../../shared/floatingList";
|
|
|
24
25
|
import { Skeleton } from "../../Skeleton";
|
|
25
26
|
import { zIndex } from "../../shared/zIndex";
|
|
26
27
|
import { useFloatingPanel, panelTransition } from "../../FloatingPanel";
|
|
28
|
+
import { PanelPortal } from "../../FloatingPanel/PanelPortal";
|
|
27
29
|
import { Field, FieldLayout } from "../../fieldLayout";
|
|
28
30
|
import {
|
|
29
31
|
getFieldError,
|
|
@@ -240,6 +242,7 @@ export function MentionInput<
|
|
|
240
242
|
TFormValidator extends Validator<TParentData, unknown> | undefined = undefined,
|
|
241
243
|
TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,
|
|
242
244
|
>(props: MentionInputProps<TParentData, TName, TFieldValidator, TFormValidator, TData>) {
|
|
245
|
+
const hydrationTouch = useTouchSurface();
|
|
243
246
|
const {
|
|
244
247
|
defaultValue,
|
|
245
248
|
form,
|
|
@@ -274,8 +277,8 @@ export function MentionInput<
|
|
|
274
277
|
const { resolvedForm, knobProps, id } = useFormField({ form, id: idProp, compact });
|
|
275
278
|
const resolvedValidators = useResolvedValidators(required, validators, label, name);
|
|
276
279
|
const resolvedSizeToken = (size || knobProps.sizeToken) as SizeTokens;
|
|
277
|
-
const minHeight = minHeightProp ?? getFieldHeight(resolvedSizeToken, 3);
|
|
278
|
-
const maxHeight = maxHeightProp ?? getFieldHeight(resolvedSizeToken, 8);
|
|
280
|
+
const minHeight = minHeightProp ?? getFieldHeight(resolvedSizeToken, 3, hydrationTouch);
|
|
281
|
+
const maxHeight = maxHeightProp ?? getFieldHeight(resolvedSizeToken, 8, hydrationTouch);
|
|
279
282
|
const minRows = Math.max(1, Math.round(minHeight / 20));
|
|
280
283
|
const maxRows = Math.max(minRows, Math.round(maxHeight / 20));
|
|
281
284
|
|
|
@@ -798,126 +801,132 @@ export function MentionInput<
|
|
|
798
801
|
const { style: elevatedSurfaceStyle, ...elevatedSurfaceProps } = panel.knobProps.elevatedSurface;
|
|
799
802
|
|
|
800
803
|
const floatingDropdown = panel.mounted ? (
|
|
801
|
-
<
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
{
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
<
|
|
890
|
-
{secondary ? (
|
|
804
|
+
<PanelPortal anchor={panel.triggerRef.current}>
|
|
805
|
+
<YStack
|
|
806
|
+
{...getFloatingProps({
|
|
807
|
+
ref: panel.refs.setFloating,
|
|
808
|
+
style: {
|
|
809
|
+
...elevatedSurfaceStyle,
|
|
810
|
+
position: panel.strategy,
|
|
811
|
+
top: panel.y ?? 0,
|
|
812
|
+
left: panel.x ?? 0,
|
|
813
|
+
scrollbarWidth: "none" as any,
|
|
814
|
+
zIndex: zIndex.dropdown,
|
|
815
|
+
overflow: "auto",
|
|
816
|
+
opacity: panel.visible ? 1 : 0,
|
|
817
|
+
transform: panel.visible ? "scale(1)" : "scale(0.96)",
|
|
818
|
+
transition: panel.knobProps.transition ? panelTransition : "none",
|
|
819
|
+
transformOrigin: panel.placement.startsWith("top") ? "bottom left" : "top left",
|
|
820
|
+
},
|
|
821
|
+
onScroll: (e: any) => panel.updateArrows(e.target as HTMLElement),
|
|
822
|
+
})}
|
|
823
|
+
outlineWidth={0}
|
|
824
|
+
pointerEvents={panel.visible ? "auto" : "none"}
|
|
825
|
+
{...elevatedSurfaceProps}
|
|
826
|
+
borderRadius={panel.dropdownRadius}
|
|
827
|
+
padding={0}
|
|
828
|
+
maxHeight={suggestionsMaxHeight}
|
|
829
|
+
minWidth={suggestionsMinWidth}
|
|
830
|
+
role={"listbox" as "list"}
|
|
831
|
+
id={suggestionListId}
|
|
832
|
+
aria-label={t("Suggestions")}
|
|
833
|
+
>
|
|
834
|
+
<ScrollArrow
|
|
835
|
+
direction="up"
|
|
836
|
+
scrollRef={panel.refs.floating}
|
|
837
|
+
visible={panel.arrowUp}
|
|
838
|
+
arrowScrollDirRef={panel.arrowScrollDirRef}
|
|
839
|
+
/>
|
|
840
|
+
{/* LC-01: rows are direct children of the scroll container — no padded
|
|
841
|
+
wrapper, the container owns only its border. */}
|
|
842
|
+
{hasSuggestions
|
|
843
|
+
? suggestions.map((item, index) => {
|
|
844
|
+
const optionId = `${id}-option-${item.id}`;
|
|
845
|
+
const active = index === selectedIndex;
|
|
846
|
+
const keyboardRing = active && keyboardHighlight;
|
|
847
|
+
const secondary = mentionSecondary(item, currentTrigger ?? "");
|
|
848
|
+
return (
|
|
849
|
+
<MentionSuggestionItem
|
|
850
|
+
key={item.id}
|
|
851
|
+
ref={(node: any) => {
|
|
852
|
+
itemRefs.current[index] = node;
|
|
853
|
+
}}
|
|
854
|
+
selected={active}
|
|
855
|
+
onPress={() => handleSuggestionPress(item)}
|
|
856
|
+
onMouseEnter={() => {
|
|
857
|
+
setKeyboardHighlight(false);
|
|
858
|
+
setSelectedIndex(index);
|
|
859
|
+
}}
|
|
860
|
+
role="option"
|
|
861
|
+
id={optionId}
|
|
862
|
+
aria-selected={active}
|
|
863
|
+
data-keyboard-ring={keyboardRing ? "true" : undefined}
|
|
864
|
+
{...(keyboardRing ? keyboardFocusRingProps : undefined)}
|
|
865
|
+
>
|
|
866
|
+
{/* LC-08 MEDIA-SLOT-ROW: when any row in the list has media, every
|
|
867
|
+
row reserves the same fixed slot (initials fallback, centered)
|
|
868
|
+
so the text columns share one left edge. */}
|
|
869
|
+
{suggestionsHaveMedia && (
|
|
870
|
+
<YStack
|
|
871
|
+
width={mediaSlot}
|
|
872
|
+
height={mediaSlot}
|
|
873
|
+
alignItems="center"
|
|
874
|
+
justifyContent="center"
|
|
875
|
+
flexShrink={0}
|
|
876
|
+
data-media-slot={mediaSlot}
|
|
877
|
+
>
|
|
878
|
+
<Avatar size={mediaSlot} circular>
|
|
879
|
+
{item.avatar ? <Avatar.Image src={item.avatar} /> : null}
|
|
880
|
+
<Avatar.Fallback
|
|
881
|
+
backgroundColor={formInputColors.background.focus}
|
|
882
|
+
justifyContent="center"
|
|
883
|
+
alignItems="center"
|
|
884
|
+
>
|
|
885
|
+
<Text fontSize={helperFontSizeMap[knobProps.sizeToken as string] ?? "$2"}>
|
|
886
|
+
{item.display[0]}
|
|
887
|
+
</Text>
|
|
888
|
+
</Avatar.Fallback>
|
|
889
|
+
</Avatar>
|
|
890
|
+
</YStack>
|
|
891
|
+
)}
|
|
892
|
+
<YStack flex={1} minWidth={0}>
|
|
891
893
|
<MentionMatchText
|
|
892
|
-
text={
|
|
894
|
+
text={item.display}
|
|
893
895
|
query={searchQuery}
|
|
894
|
-
|
|
895
|
-
color={formCommonColors.muted}
|
|
896
|
-
{...knobProps.body}
|
|
896
|
+
{...knobProps.label}
|
|
897
897
|
/>
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
898
|
+
{secondary ? (
|
|
899
|
+
<MentionMatchText
|
|
900
|
+
text={secondary}
|
|
901
|
+
query={searchQuery}
|
|
902
|
+
fontSize={helperFontSizeMap[knobProps.sizeToken as string] ?? "$2"}
|
|
903
|
+
color={formCommonColors.muted}
|
|
904
|
+
{...knobProps.body}
|
|
905
|
+
/>
|
|
906
|
+
) : null}
|
|
907
|
+
</YStack>
|
|
908
|
+
</MentionSuggestionItem>
|
|
909
|
+
);
|
|
910
|
+
})
|
|
911
|
+
: triggerActive && (
|
|
912
|
+
<YStack paddingHorizontal="$3" paddingVertical="$2" role="status" aria-live="polite">
|
|
913
|
+
<Text
|
|
914
|
+
fontSize={helperFontSizeMap[knobProps.sizeToken as string] ?? "$2"}
|
|
915
|
+
color={formCommonColors.muted}
|
|
916
|
+
{...knobProps.body}
|
|
917
|
+
>
|
|
918
|
+
{t("No matches")}
|
|
919
|
+
</Text>
|
|
920
|
+
</YStack>
|
|
921
|
+
)}
|
|
922
|
+
<ScrollArrow
|
|
923
|
+
direction="down"
|
|
924
|
+
scrollRef={panel.refs.floating}
|
|
925
|
+
visible={panel.arrowDown}
|
|
926
|
+
arrowScrollDirRef={panel.arrowScrollDirRef}
|
|
927
|
+
/>
|
|
928
|
+
</YStack>
|
|
929
|
+
</PanelPortal>
|
|
921
930
|
) : null;
|
|
922
931
|
|
|
923
932
|
// ── TextArea ───────────────────────────────────────────────
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useTouchSurface } from "@multiplatform.one/theme";
|
|
1
2
|
import type { Validator } from "../../types";
|
|
2
3
|
|
|
3
4
|
import type { DeepKeys, DeepValue } from "@tanstack/form-core";
|
|
@@ -144,12 +145,12 @@ function digitFontSize(cellSize: string | number | undefined): string {
|
|
|
144
145
|
* exactly the defect MPO-56 killed, so the radius rides the painted token instead.
|
|
145
146
|
* Same source as the avatar square face (`avatarTokenPx`, components/Avatar).
|
|
146
147
|
*/
|
|
147
|
-
export function otpCellHeightPx(cellSize: string | number | undefined): number {
|
|
148
|
+
export function otpCellHeightPx(cellSize: string | number | undefined, touch?: boolean): number {
|
|
148
149
|
if (typeof cellSize === "number" && Number.isFinite(cellSize) && cellSize > 0) return cellSize;
|
|
149
150
|
const token = (cellSize ?? "$4") as SizeTokens;
|
|
150
151
|
const painted = getVariableValue(getSize(token));
|
|
151
152
|
if (typeof painted === "number" && Number.isFinite(painted) && painted > 0) return painted;
|
|
152
|
-
return getFieldHeight(token);
|
|
153
|
+
return getFieldHeight(token, 1, touch);
|
|
153
154
|
}
|
|
154
155
|
|
|
155
156
|
/**
|
|
@@ -220,6 +221,7 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
220
221
|
attachRef,
|
|
221
222
|
}: OTPDigitInputProps) {
|
|
222
223
|
const didFinishSSR = useDidFinishSSR();
|
|
224
|
+
const hydrationTouch = useTouchSurface();
|
|
223
225
|
const { knobProps, control } = useResolvedKnobs();
|
|
224
226
|
// Honor the size the field was given (InputParts root receives
|
|
225
227
|
// `fieldProps.size || knobProps.sizeToken`): table cells pass a compact
|
|
@@ -241,7 +243,7 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
241
243
|
|
|
242
244
|
const cellRadius = getOTPCellRadius(
|
|
243
245
|
knobProps.borderRadius.borderRadius,
|
|
244
|
-
otpCellHeightPx(cellSize),
|
|
246
|
+
otpCellHeightPx(cellSize, hydrationTouch),
|
|
245
247
|
);
|
|
246
248
|
const isNumeric = type === "numeric";
|
|
247
249
|
const cellBorder = hasError
|
|
@@ -734,6 +736,7 @@ export function OTPInput<
|
|
|
734
736
|
...fieldProps
|
|
735
737
|
} = useProps(props);
|
|
736
738
|
|
|
739
|
+
const hydrationTouch = useTouchSurface();
|
|
737
740
|
const { resolvedForm, knobProps, id } = useFormField({ form, id: idProp, compact });
|
|
738
741
|
const resolvedValidators = useResolvedValidators(
|
|
739
742
|
fieldProps.required,
|
|
@@ -896,7 +899,7 @@ export function OTPInput<
|
|
|
896
899
|
const cellSize = fieldProps.size || knobProps.sizeToken;
|
|
897
900
|
const cellRadius = getOTPCellRadius(
|
|
898
901
|
knobProps.borderRadius.borderRadius,
|
|
899
|
-
otpCellHeightPx(cellSize),
|
|
902
|
+
otpCellHeightPx(cellSize, hydrationTouch),
|
|
900
903
|
);
|
|
901
904
|
const cellGap = knobProps.gap.gap;
|
|
902
905
|
const groups = otpGroupSizes(length, separator);
|