@multiplatform.one/forms 6.7.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AdaptivePopup/index.cjs +179 -46
- package/dist/cjs/AdaptivePopup/index.native.js +184 -48
- package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
- package/dist/cjs/Button/index.cjs +238 -63
- package/dist/cjs/Button/index.native.js +291 -83
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +291 -74
- package/dist/cjs/Chip/index.native.js +306 -73
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/ControlGroup/index.cjs +144 -67
- package/dist/cjs/ControlGroup/index.native.js +141 -60
- package/dist/cjs/ControlGroup/index.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/index.cjs +437 -91
- package/dist/cjs/FieldDisplay/index.native.js +455 -95
- package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
- package/dist/cjs/FieldGroup.cjs +43 -40
- package/dist/cjs/FieldGroup.native.js +43 -40
- package/dist/cjs/FieldGroup.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.cjs +79 -9
- package/dist/cjs/FloatingPanel/index.native.js +9 -7
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +21 -5
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +21 -5
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/cjs/Form/index.cjs +49 -8
- package/dist/cjs/Form/index.native.js +50 -8
- package/dist/cjs/Form/index.native.js.map +1 -1
- package/dist/cjs/FormGrid.cjs +35 -6
- package/dist/cjs/FormGrid.native.js +35 -6
- package/dist/cjs/FormGrid.native.js.map +1 -1
- package/dist/cjs/FormSection.cjs +13 -6
- package/dist/cjs/FormSection.native.js +13 -6
- package/dist/cjs/FormSection.native.js.map +1 -1
- package/dist/cjs/InputParts/index.cjs +305 -77
- package/dist/cjs/InputParts/index.native.js +332 -84
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/Label/index.cjs +81 -4
- package/dist/cjs/Label/index.native.js +85 -4
- package/dist/cjs/Label/index.native.js.map +1 -1
- package/dist/cjs/Skeleton/index.cjs +14 -11
- package/dist/cjs/Skeleton/index.native.js +15 -12
- package/dist/cjs/Skeleton/index.native.js.map +1 -1
- package/dist/cjs/Spinner/SpinnerGlyph.cjs +75 -0
- package/dist/cjs/Spinner/SpinnerGlyph.native.js +81 -0
- package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -0
- package/dist/cjs/Spinner/index.cjs +26 -18
- package/dist/cjs/Spinner/index.native.js +53 -31
- package/dist/cjs/Spinner/index.native.js.map +1 -1
- package/dist/cjs/Spinner/spinnerSize.cjs +38 -0
- package/dist/cjs/Spinner/spinnerSize.native.js +41 -0
- package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -0
- package/dist/cjs/fieldLayout.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/BarcodeScanner.cjs +26 -8
- package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +9 -3
- package/dist/cjs/fields/Barcode/BarcodeScanner.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/index.cjs +90 -62
- package/dist/cjs/fields/Barcode/index.native.js +97 -62
- package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/scannerTypes.cjs +100 -1
- package/dist/cjs/fields/Barcode/scannerTypes.native.js +137 -0
- package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/Checkbox.cjs +35 -88
- package/dist/cjs/fields/Checkbox/Checkbox.native.js +36 -88
- package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxBox.cjs +134 -0
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js +145 -0
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -0
- package/dist/cjs/fields/Checkbox/CheckboxCard.cjs +2 -2
- package/dist/cjs/fields/Checkbox/CheckboxCard.native.js +2 -2
- package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.cjs +16 -36
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js +16 -36
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxGroup.cjs +3 -2
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +3 -2
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/index.cjs +50 -77
- package/dist/cjs/fields/Checkbox/index.native.js +52 -77
- package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/gradients.cjs +9 -4
- package/dist/cjs/fields/ColorPicker/gradients.native.js +37 -18
- package/dist/cjs/fields/ColorPicker/gradients.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/index.cjs +77 -50
- package/dist/cjs/fields/ColorPicker/index.native.js +104 -55
- package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/parts.cjs +425 -234
- package/dist/cjs/fields/ColorPicker/parts.native.js +447 -238
- package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +175 -45
- package/dist/cjs/fields/Combobox/index.native.js +180 -45
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/Calendar.cjs +67 -170
- package/dist/cjs/fields/DatePicker/Calendar.native.js +71 -194
- package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.cjs +48 -119
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +53 -123
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.cjs +67 -181
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +73 -195
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MonthPicker.cjs +59 -62
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js +66 -64
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MultiDatePicker.cjs +11 -77
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +20 -83
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/index.cjs +11 -79
- package/dist/cjs/fields/DatePicker/index.native.js +22 -83
- package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.cjs +547 -181
- package/dist/cjs/fields/DatePicker/parts.native.js +575 -178
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Duration/index.cjs +314 -159
- package/dist/cjs/fields/Duration/index.native.js +345 -182
- package/dist/cjs/fields/Duration/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/index.cjs +146 -27
- package/dist/cjs/fields/FileUpload/index.native.js +161 -32
- package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/GeolocationMap.cjs +115 -20
- package/dist/cjs/fields/Geolocation/GeolocationMap.native.js +11 -11
- package/dist/cjs/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/index.cjs +125 -76
- package/dist/cjs/fields/Geolocation/index.native.js +134 -91
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/mapMath.cjs +105 -0
- package/dist/cjs/fields/Geolocation/mapMath.native.js +108 -0
- package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -0
- package/dist/cjs/fields/ImageField/index.cjs +306 -168
- package/dist/cjs/fields/ImageField/index.native.js +323 -181
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.cjs +133 -121
- package/dist/cjs/fields/Input/index.native.js +133 -121
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.cjs +142 -27
- package/dist/cjs/fields/MentionInput/index.native.js +164 -39
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.cjs +188 -58
- package/dist/cjs/fields/OTPInput/index.native.js +197 -53
- package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/otpCellCss.cjs +84 -0
- package/dist/cjs/fields/OTPInput/otpCellCss.native.js +87 -0
- package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -0
- package/dist/cjs/fields/PhoneInput/index.cjs +200 -105
- package/dist/cjs/fields/PhoneInput/index.native.js +241 -143
- package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/phone.cjs +234 -0
- package/dist/cjs/fields/PhoneInput/phone.native.js +301 -0
- package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -0
- package/dist/cjs/fields/Progress/index.cjs +169 -52
- package/dist/cjs/fields/Progress/index.native.js +170 -50
- package/dist/cjs/fields/Progress/index.native.js.map +1 -1
- package/dist/cjs/fields/RadioGroup/index.cjs +138 -74
- package/dist/cjs/fields/RadioGroup/index.native.js +151 -82
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/StarInk.cjs +41 -0
- package/dist/cjs/fields/Rating/StarInk.native.js +77 -0
- package/dist/cjs/fields/Rating/StarInk.native.js.map +1 -0
- package/dist/cjs/fields/Rating/index.cjs +154 -53
- package/dist/cjs/fields/Rating/index.native.js +162 -56
- package/dist/cjs/fields/Rating/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/types.cjs +18 -0
- package/dist/cjs/fields/Rating/types.native.js +21 -0
- package/dist/cjs/fields/Rating/types.native.js.map +1 -0
- package/dist/cjs/fields/SearchInput/index.cjs +192 -54
- package/dist/cjs/fields/SearchInput/index.native.js +195 -54
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +152 -24
- package/dist/cjs/fields/Select/index.native.js +168 -24
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Signature/index.cjs +143 -49
- package/dist/cjs/fields/Signature/index.native.js +152 -53
- package/dist/cjs/fields/Signature/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +224 -153
- package/dist/cjs/fields/Slider/index.native.js +249 -166
- package/dist/cjs/fields/Slider/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/jumpMotion.cjs +5 -11
- package/dist/cjs/fields/Slider/jumpMotion.native.js +5 -11
- package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/index.cjs +272 -122
- package/dist/cjs/fields/Stepper/index.native.js +290 -125
- package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
- package/dist/cjs/fields/Switch/index.cjs +174 -54
- package/dist/cjs/fields/Switch/index.native.js +186 -56
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TextArea/index.cjs +67 -21
- package/dist/cjs/fields/TextArea/index.native.js +75 -22
- package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/index.cjs +57 -248
- package/dist/cjs/fields/TimePicker/index.native.js +66 -276
- package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/parts.cjs +648 -0
- package/dist/cjs/fields/TimePicker/parts.native.js +685 -0
- package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -0
- package/dist/cjs/fields/ToggleGroup/index.cjs +115 -106
- package/dist/cjs/fields/ToggleGroup/index.native.js +123 -116
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/formSpacing.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/devWarn.cjs +1 -0
- package/dist/cjs/shared/devWarn.native.js +1 -0
- package/dist/cjs/shared/devWarn.native.js.map +1 -1
- package/dist/cjs/shared/focusManagement.cjs +9 -2
- package/dist/cjs/shared/focusManagement.native.js +9 -2
- package/dist/cjs/shared/focusManagement.native.js.map +1 -1
- package/dist/cjs/shared/i18n.cjs +46 -0
- package/dist/cjs/shared/i18n.native.js +52 -0
- package/dist/cjs/shared/i18n.native.js.map +1 -0
- package/dist/cjs/shared/utils.cjs +3 -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 +12 -24
- package/dist/cjs/themedPrimitives.native.js +12 -24
- package/dist/cjs/themedPrimitives.native.js.map +1 -1
- package/dist/esm/AdaptivePopup/index.mjs +182 -49
- package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
- package/dist/esm/AdaptivePopup/index.native.js +187 -51
- package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
- package/dist/esm/Button/index.mjs +238 -68
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +291 -88
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +293 -78
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +308 -77
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/ControlGroup/index.mjs +145 -69
- package/dist/esm/ControlGroup/index.mjs.map +1 -1
- package/dist/esm/ControlGroup/index.native.js +143 -63
- package/dist/esm/ControlGroup/index.native.js.map +1 -1
- package/dist/esm/FieldDisplay/index.mjs +439 -93
- package/dist/esm/FieldDisplay/index.mjs.map +1 -1
- package/dist/esm/FieldDisplay/index.native.js +457 -97
- package/dist/esm/FieldDisplay/index.native.js.map +1 -1
- package/dist/esm/FieldGroup.mjs +43 -40
- package/dist/esm/FieldGroup.mjs.map +1 -1
- package/dist/esm/FieldGroup.native.js +43 -40
- package/dist/esm/FieldGroup.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.mjs +80 -10
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +10 -8
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs +22 -7
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js +22 -7
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/Form/index.mjs +51 -11
- package/dist/esm/Form/index.mjs.map +1 -1
- package/dist/esm/Form/index.native.js +52 -11
- package/dist/esm/Form/index.native.js.map +1 -1
- package/dist/esm/FormGrid.mjs +35 -6
- package/dist/esm/FormGrid.mjs.map +1 -1
- package/dist/esm/FormGrid.native.js +35 -6
- package/dist/esm/FormGrid.native.js.map +1 -1
- package/dist/esm/FormSection.mjs +13 -6
- package/dist/esm/FormSection.mjs.map +1 -1
- package/dist/esm/FormSection.native.js +13 -6
- package/dist/esm/FormSection.native.js.map +1 -1
- package/dist/esm/InputParts/index.mjs +304 -80
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +331 -87
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Label/index.mjs +83 -6
- package/dist/esm/Label/index.mjs.map +1 -1
- package/dist/esm/Label/index.native.js +87 -6
- package/dist/esm/Label/index.native.js.map +1 -1
- package/dist/esm/Skeleton/index.mjs +15 -12
- package/dist/esm/Skeleton/index.mjs.map +1 -1
- package/dist/esm/Skeleton/index.native.js +16 -13
- package/dist/esm/Skeleton/index.native.js.map +1 -1
- package/dist/esm/Spinner/SpinnerGlyph.mjs +49 -0
- package/dist/esm/Spinner/SpinnerGlyph.mjs.map +1 -0
- package/dist/esm/Spinner/SpinnerGlyph.native.js +52 -0
- package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -0
- package/dist/esm/Spinner/index.mjs +26 -18
- package/dist/esm/Spinner/index.mjs.map +1 -1
- package/dist/esm/Spinner/index.native.js +50 -28
- package/dist/esm/Spinner/index.native.js.map +1 -1
- package/dist/esm/Spinner/spinnerSize.mjs +12 -0
- package/dist/esm/Spinner/spinnerSize.mjs.map +1 -0
- package/dist/esm/Spinner/spinnerSize.native.js +12 -0
- package/dist/esm/Spinner/spinnerSize.native.js.map +1 -0
- package/dist/esm/fieldLayout.mjs.map +1 -1
- package/dist/esm/fieldLayout.native.js.map +1 -1
- package/dist/esm/fields/Barcode/BarcodeScanner.mjs +27 -9
- package/dist/esm/fields/Barcode/BarcodeScanner.mjs.map +1 -1
- package/dist/esm/fields/Barcode/BarcodeScanner.native.js +9 -3
- package/dist/esm/fields/Barcode/BarcodeScanner.native.js.map +1 -1
- package/dist/esm/fields/Barcode/index.mjs +93 -65
- package/dist/esm/fields/Barcode/index.mjs.map +1 -1
- package/dist/esm/fields/Barcode/index.native.js +100 -65
- package/dist/esm/fields/Barcode/index.native.js.map +1 -1
- package/dist/esm/fields/Barcode/scannerTypes.mjs +88 -1
- package/dist/esm/fields/Barcode/scannerTypes.mjs.map +1 -1
- package/dist/esm/fields/Barcode/scannerTypes.native.js +126 -1
- package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.mjs +38 -91
- package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.native.js +39 -91
- package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.mjs +103 -0
- package/dist/esm/fields/Checkbox/CheckboxBox.mjs.map +1 -0
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js +111 -0
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -0
- package/dist/esm/fields/Checkbox/CheckboxCard.mjs +2 -2
- package/dist/esm/fields/Checkbox/CheckboxCard.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxCard.native.js +2 -2
- package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.mjs +16 -36
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js +16 -36
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.mjs +3 -2
- package/dist/esm/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js +3 -2
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/index.mjs +54 -81
- package/dist/esm/fields/Checkbox/index.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/index.native.js +56 -81
- package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/gradients.mjs +9 -4
- package/dist/esm/fields/ColorPicker/gradients.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/gradients.native.js +37 -18
- package/dist/esm/fields/ColorPicker/gradients.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/index.mjs +81 -54
- package/dist/esm/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/index.native.js +108 -59
- package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.mjs +425 -237
- package/dist/esm/fields/ColorPicker/parts.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.native.js +447 -241
- package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +172 -42
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +177 -42
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.mjs +69 -172
- package/dist/esm/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js +73 -196
- package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs +52 -123
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js +57 -127
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.mjs +71 -185
- package/dist/esm/fields/DatePicker/DatetimePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js +77 -199
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.mjs +60 -63
- package/dist/esm/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.native.js +67 -65
- package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs +14 -80
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js +23 -86
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/index.mjs +13 -81
- package/dist/esm/fields/DatePicker/index.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/index.native.js +24 -85
- package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +542 -184
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +570 -181
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Duration/index.mjs +313 -162
- package/dist/esm/fields/Duration/index.mjs.map +1 -1
- package/dist/esm/fields/Duration/index.native.js +344 -185
- package/dist/esm/fields/Duration/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/index.mjs +146 -27
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +161 -32
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/GeolocationMap.mjs +116 -21
- package/dist/esm/fields/Geolocation/GeolocationMap.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/GeolocationMap.native.js +10 -10
- package/dist/esm/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/index.mjs +127 -78
- package/dist/esm/fields/Geolocation/index.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js +136 -93
- package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/mapMath.mjs +72 -0
- package/dist/esm/fields/Geolocation/mapMath.mjs.map +1 -0
- package/dist/esm/fields/Geolocation/mapMath.native.js +72 -0
- package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -0
- package/dist/esm/fields/ImageField/index.mjs +311 -173
- package/dist/esm/fields/ImageField/index.mjs.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js +328 -186
- package/dist/esm/fields/ImageField/index.native.js.map +1 -1
- package/dist/esm/fields/Input/index.mjs +136 -124
- package/dist/esm/fields/Input/index.mjs.map +1 -1
- package/dist/esm/fields/Input/index.native.js +136 -124
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/MentionInput/index.mjs +143 -28
- package/dist/esm/fields/MentionInput/index.mjs.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js +165 -40
- package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/index.mjs +187 -58
- package/dist/esm/fields/OTPInput/index.mjs.map +1 -1
- package/dist/esm/fields/OTPInput/index.native.js +196 -53
- package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/otpCellCss.mjs +59 -0
- package/dist/esm/fields/OTPInput/otpCellCss.mjs.map +1 -0
- package/dist/esm/fields/OTPInput/otpCellCss.native.js +59 -0
- package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -0
- package/dist/esm/fields/PhoneInput/index.mjs +208 -113
- package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/esm/fields/PhoneInput/index.native.js +249 -151
- package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/phone.mjs +196 -0
- package/dist/esm/fields/PhoneInput/phone.mjs.map +1 -0
- package/dist/esm/fields/PhoneInput/phone.native.js +260 -0
- package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -0
- package/dist/esm/fields/Progress/index.mjs +173 -56
- package/dist/esm/fields/Progress/index.mjs.map +1 -1
- package/dist/esm/fields/Progress/index.native.js +174 -54
- package/dist/esm/fields/Progress/index.native.js.map +1 -1
- package/dist/esm/fields/RadioGroup/index.mjs +138 -74
- package/dist/esm/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/esm/fields/RadioGroup/index.native.js +151 -82
- package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/StarInk.mjs +16 -0
- package/dist/esm/fields/Rating/StarInk.mjs.map +1 -0
- package/dist/esm/fields/Rating/StarInk.native.js +48 -0
- package/dist/esm/fields/Rating/StarInk.native.js.map +1 -0
- package/dist/esm/fields/Rating/index.mjs +157 -45
- package/dist/esm/fields/Rating/index.mjs.map +1 -1
- package/dist/esm/fields/Rating/index.native.js +165 -48
- package/dist/esm/fields/Rating/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/types.mjs +2 -0
- package/dist/esm/fields/Rating/types.mjs.map +1 -0
- package/dist/esm/fields/Rating/types.native.js +2 -0
- package/dist/esm/fields/Rating/types.native.js.map +1 -0
- package/dist/esm/fields/SearchInput/index.mjs +195 -57
- package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
- package/dist/esm/fields/SearchInput/index.native.js +198 -57
- package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +155 -27
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +171 -27
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Signature/index.mjs +145 -40
- package/dist/esm/fields/Signature/index.mjs.map +1 -1
- package/dist/esm/fields/Signature/index.native.js +154 -44
- package/dist/esm/fields/Signature/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.mjs +227 -156
- package/dist/esm/fields/Slider/index.mjs.map +1 -1
- package/dist/esm/fields/Slider/index.native.js +252 -169
- package/dist/esm/fields/Slider/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/jumpMotion.mjs +5 -11
- package/dist/esm/fields/Slider/jumpMotion.mjs.map +1 -1
- package/dist/esm/fields/Slider/jumpMotion.native.js +5 -11
- package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/esm/fields/Stepper/index.mjs +252 -102
- package/dist/esm/fields/Stepper/index.mjs.map +1 -1
- package/dist/esm/fields/Stepper/index.native.js +268 -103
- package/dist/esm/fields/Stepper/index.native.js.map +1 -1
- package/dist/esm/fields/Switch/index.mjs +176 -56
- package/dist/esm/fields/Switch/index.mjs.map +1 -1
- package/dist/esm/fields/Switch/index.native.js +188 -58
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TextArea/index.mjs +67 -21
- package/dist/esm/fields/TextArea/index.mjs.map +1 -1
- package/dist/esm/fields/TextArea/index.native.js +75 -22
- package/dist/esm/fields/TextArea/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/index.mjs +51 -246
- package/dist/esm/fields/TimePicker/index.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/index.native.js +60 -274
- package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.mjs +615 -0
- package/dist/esm/fields/TimePicker/parts.mjs.map +1 -0
- package/dist/esm/fields/TimePicker/parts.native.js +649 -0
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -0
- package/dist/esm/fields/ToggleGroup/index.mjs +119 -110
- package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js +127 -120
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/formSpacing.mjs.map +1 -1
- package/dist/esm/formSpacing.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/shared/devWarn.mjs +2 -2
- package/dist/esm/shared/devWarn.mjs.map +1 -1
- package/dist/esm/shared/devWarn.native.js +2 -2
- package/dist/esm/shared/devWarn.native.js.map +1 -1
- package/dist/esm/shared/focusManagement.mjs +9 -2
- package/dist/esm/shared/focusManagement.mjs.map +1 -1
- package/dist/esm/shared/focusManagement.native.js +9 -2
- package/dist/esm/shared/focusManagement.native.js.map +1 -1
- package/dist/esm/shared/i18n.mjs +10 -0
- package/dist/esm/shared/i18n.mjs.map +1 -0
- package/dist/esm/shared/i18n.native.js +13 -0
- package/dist/esm/shared/i18n.native.js.map +1 -0
- package/dist/esm/shared/utils.mjs +5 -4
- package/dist/esm/shared/utils.mjs.map +1 -1
- package/dist/esm/shared/utils.native.js +5 -4
- package/dist/esm/shared/utils.native.js.map +1 -1
- package/dist/esm/themedPrimitives.mjs +13 -25
- package/dist/esm/themedPrimitives.mjs.map +1 -1
- package/dist/esm/themedPrimitives.native.js +13 -25
- package/dist/esm/themedPrimitives.native.js.map +1 -1
- package/dist/jsx/AdaptivePopup/index.mjs +182 -49
- package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js +184 -48
- package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
- package/dist/jsx/Button/index.mjs +238 -68
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +291 -83
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +293 -78
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +306 -73
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/ControlGroup/index.mjs +145 -69
- package/dist/jsx/ControlGroup/index.mjs.map +1 -1
- package/dist/jsx/ControlGroup/index.native.js +141 -60
- package/dist/jsx/ControlGroup/index.native.js.map +1 -1
- package/dist/jsx/FieldDisplay/index.mjs +439 -93
- package/dist/jsx/FieldDisplay/index.mjs.map +1 -1
- package/dist/jsx/FieldDisplay/index.native.js +455 -95
- package/dist/jsx/FieldDisplay/index.native.js.map +1 -1
- package/dist/jsx/FieldGroup.mjs +43 -40
- package/dist/jsx/FieldGroup.mjs.map +1 -1
- package/dist/jsx/FieldGroup.native.js +43 -40
- package/dist/jsx/FieldGroup.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +80 -10
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +9 -7
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +22 -7
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +21 -5
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/jsx/Form/index.mjs +51 -11
- package/dist/jsx/Form/index.mjs.map +1 -1
- package/dist/jsx/Form/index.native.js +50 -8
- package/dist/jsx/Form/index.native.js.map +1 -1
- package/dist/jsx/FormGrid.mjs +35 -6
- package/dist/jsx/FormGrid.mjs.map +1 -1
- package/dist/jsx/FormGrid.native.js +35 -6
- package/dist/jsx/FormGrid.native.js.map +1 -1
- package/dist/jsx/FormSection.mjs +13 -6
- package/dist/jsx/FormSection.mjs.map +1 -1
- package/dist/jsx/FormSection.native.js +13 -6
- package/dist/jsx/FormSection.native.js.map +1 -1
- package/dist/jsx/InputParts/index.mjs +304 -80
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +332 -84
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/Label/index.mjs +83 -6
- package/dist/jsx/Label/index.mjs.map +1 -1
- package/dist/jsx/Label/index.native.js +85 -4
- package/dist/jsx/Label/index.native.js.map +1 -1
- package/dist/jsx/Skeleton/index.mjs +15 -12
- package/dist/jsx/Skeleton/index.mjs.map +1 -1
- package/dist/jsx/Skeleton/index.native.js +15 -12
- package/dist/jsx/Skeleton/index.native.js.map +1 -1
- package/dist/jsx/Spinner/SpinnerGlyph.mjs +49 -0
- package/dist/jsx/Spinner/SpinnerGlyph.mjs.map +1 -0
- package/dist/jsx/Spinner/SpinnerGlyph.native.js +81 -0
- package/dist/jsx/Spinner/SpinnerGlyph.native.js.map +1 -0
- package/dist/jsx/Spinner/index.mjs +26 -18
- package/dist/jsx/Spinner/index.mjs.map +1 -1
- package/dist/jsx/Spinner/index.native.js +53 -31
- package/dist/jsx/Spinner/index.native.js.map +1 -1
- package/dist/jsx/Spinner/spinnerSize.mjs +12 -0
- package/dist/jsx/Spinner/spinnerSize.mjs.map +1 -0
- package/dist/jsx/Spinner/spinnerSize.native.js +41 -0
- package/dist/jsx/Spinner/spinnerSize.native.js.map +1 -0
- package/dist/jsx/fieldLayout.mjs.map +1 -1
- package/dist/jsx/fieldLayout.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodeScanner.mjs +27 -9
- package/dist/jsx/fields/Barcode/BarcodeScanner.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodeScanner.native.js +9 -3
- package/dist/jsx/fields/Barcode/BarcodeScanner.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/index.mjs +93 -65
- package/dist/jsx/fields/Barcode/index.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/index.native.js +97 -62
- package/dist/jsx/fields/Barcode/index.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/scannerTypes.mjs +88 -1
- package/dist/jsx/fields/Barcode/scannerTypes.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/scannerTypes.native.js +137 -0
- package/dist/jsx/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.mjs +38 -91
- package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.native.js +36 -88
- package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.mjs +103 -0
- package/dist/jsx/fields/Checkbox/CheckboxBox.mjs.map +1 -0
- package/dist/jsx/fields/Checkbox/CheckboxBox.native.js +145 -0
- package/dist/jsx/fields/Checkbox/CheckboxBox.native.js.map +1 -0
- package/dist/jsx/fields/Checkbox/CheckboxCard.mjs +2 -2
- package/dist/jsx/fields/Checkbox/CheckboxCard.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxCard.native.js +2 -2
- package/dist/jsx/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs +16 -36
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js +16 -36
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs +3 -2
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js +3 -2
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/index.mjs +54 -81
- package/dist/jsx/fields/Checkbox/index.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/index.native.js +52 -77
- package/dist/jsx/fields/Checkbox/index.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/gradients.mjs +9 -4
- package/dist/jsx/fields/ColorPicker/gradients.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/gradients.native.js +37 -18
- package/dist/jsx/fields/ColorPicker/gradients.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.mjs +81 -54
- package/dist/jsx/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.native.js +104 -55
- package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/parts.mjs +425 -237
- package/dist/jsx/fields/ColorPicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/parts.native.js +447 -238
- package/dist/jsx/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +172 -42
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +180 -45
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.mjs +69 -172
- package/dist/jsx/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.native.js +71 -194
- package/dist/jsx/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs +52 -123
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +53 -123
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.mjs +71 -185
- package/dist/jsx/fields/DatePicker/DatetimePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +73 -195
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs +60 -63
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js +66 -64
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs +14 -80
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +20 -83
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/index.mjs +13 -81
- package/dist/jsx/fields/DatePicker/index.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/index.native.js +22 -83
- package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +542 -184
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +575 -178
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Duration/index.mjs +313 -162
- package/dist/jsx/fields/Duration/index.mjs.map +1 -1
- package/dist/jsx/fields/Duration/index.native.js +345 -182
- package/dist/jsx/fields/Duration/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/index.mjs +146 -27
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +161 -32
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/GeolocationMap.mjs +116 -21
- package/dist/jsx/fields/Geolocation/GeolocationMap.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/GeolocationMap.native.js +11 -11
- package/dist/jsx/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/index.mjs +127 -78
- package/dist/jsx/fields/Geolocation/index.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/index.native.js +134 -91
- package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/mapMath.mjs +72 -0
- package/dist/jsx/fields/Geolocation/mapMath.mjs.map +1 -0
- package/dist/jsx/fields/Geolocation/mapMath.native.js +108 -0
- package/dist/jsx/fields/Geolocation/mapMath.native.js.map +1 -0
- package/dist/jsx/fields/ImageField/index.mjs +311 -173
- package/dist/jsx/fields/ImageField/index.mjs.map +1 -1
- package/dist/jsx/fields/ImageField/index.native.js +323 -181
- package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
- package/dist/jsx/fields/Input/index.mjs +136 -124
- package/dist/jsx/fields/Input/index.mjs.map +1 -1
- package/dist/jsx/fields/Input/index.native.js +133 -121
- package/dist/jsx/fields/Input/index.native.js.map +1 -1
- package/dist/jsx/fields/MentionInput/index.mjs +143 -28
- package/dist/jsx/fields/MentionInput/index.mjs.map +1 -1
- package/dist/jsx/fields/MentionInput/index.native.js +164 -39
- package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
- package/dist/jsx/fields/OTPInput/index.mjs +187 -58
- package/dist/jsx/fields/OTPInput/index.mjs.map +1 -1
- package/dist/jsx/fields/OTPInput/index.native.js +197 -53
- package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
- package/dist/jsx/fields/OTPInput/otpCellCss.mjs +59 -0
- package/dist/jsx/fields/OTPInput/otpCellCss.mjs.map +1 -0
- package/dist/jsx/fields/OTPInput/otpCellCss.native.js +87 -0
- package/dist/jsx/fields/OTPInput/otpCellCss.native.js.map +1 -0
- package/dist/jsx/fields/PhoneInput/index.mjs +208 -113
- package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.native.js +241 -143
- package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/phone.mjs +196 -0
- package/dist/jsx/fields/PhoneInput/phone.mjs.map +1 -0
- package/dist/jsx/fields/PhoneInput/phone.native.js +301 -0
- package/dist/jsx/fields/PhoneInput/phone.native.js.map +1 -0
- package/dist/jsx/fields/Progress/index.mjs +173 -56
- package/dist/jsx/fields/Progress/index.mjs.map +1 -1
- package/dist/jsx/fields/Progress/index.native.js +170 -50
- package/dist/jsx/fields/Progress/index.native.js.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.mjs +138 -74
- package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.native.js +151 -82
- package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/Rating/StarInk.mjs +16 -0
- package/dist/jsx/fields/Rating/StarInk.mjs.map +1 -0
- package/dist/jsx/fields/Rating/StarInk.native.js +77 -0
- package/dist/jsx/fields/Rating/StarInk.native.js.map +1 -0
- package/dist/jsx/fields/Rating/index.mjs +157 -45
- package/dist/jsx/fields/Rating/index.mjs.map +1 -1
- package/dist/jsx/fields/Rating/index.native.js +162 -56
- package/dist/jsx/fields/Rating/index.native.js.map +1 -1
- package/dist/jsx/fields/Rating/types.mjs +2 -0
- package/dist/jsx/fields/Rating/types.mjs.map +1 -0
- package/dist/jsx/fields/Rating/types.native.js +21 -0
- package/dist/jsx/fields/Rating/types.native.js.map +1 -0
- package/dist/jsx/fields/SearchInput/index.mjs +195 -57
- package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
- package/dist/jsx/fields/SearchInput/index.native.js +195 -54
- package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +155 -27
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +168 -24
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Signature/index.mjs +145 -40
- package/dist/jsx/fields/Signature/index.mjs.map +1 -1
- package/dist/jsx/fields/Signature/index.native.js +152 -53
- package/dist/jsx/fields/Signature/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/index.mjs +227 -156
- package/dist/jsx/fields/Slider/index.mjs.map +1 -1
- package/dist/jsx/fields/Slider/index.native.js +249 -166
- package/dist/jsx/fields/Slider/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/jumpMotion.mjs +5 -11
- package/dist/jsx/fields/Slider/jumpMotion.mjs.map +1 -1
- package/dist/jsx/fields/Slider/jumpMotion.native.js +5 -11
- package/dist/jsx/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/jsx/fields/Stepper/index.mjs +252 -102
- package/dist/jsx/fields/Stepper/index.mjs.map +1 -1
- package/dist/jsx/fields/Stepper/index.native.js +290 -125
- package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
- package/dist/jsx/fields/Switch/index.mjs +176 -56
- package/dist/jsx/fields/Switch/index.mjs.map +1 -1
- package/dist/jsx/fields/Switch/index.native.js +186 -56
- package/dist/jsx/fields/Switch/index.native.js.map +1 -1
- package/dist/jsx/fields/TextArea/index.mjs +67 -21
- package/dist/jsx/fields/TextArea/index.mjs.map +1 -1
- package/dist/jsx/fields/TextArea/index.native.js +75 -22
- package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/index.mjs +51 -246
- package/dist/jsx/fields/TimePicker/index.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/index.native.js +66 -276
- package/dist/jsx/fields/TimePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.mjs +615 -0
- package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -0
- package/dist/jsx/fields/TimePicker/parts.native.js +685 -0
- package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -0
- package/dist/jsx/fields/ToggleGroup/index.mjs +119 -110
- package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js +123 -116
- package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/jsx/formSpacing.mjs.map +1 -1
- package/dist/jsx/formSpacing.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +1 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/devWarn.mjs +2 -2
- package/dist/jsx/shared/devWarn.mjs.map +1 -1
- package/dist/jsx/shared/devWarn.native.js +1 -0
- package/dist/jsx/shared/devWarn.native.js.map +1 -1
- package/dist/jsx/shared/focusManagement.mjs +9 -2
- package/dist/jsx/shared/focusManagement.mjs.map +1 -1
- package/dist/jsx/shared/focusManagement.native.js +9 -2
- package/dist/jsx/shared/focusManagement.native.js.map +1 -1
- package/dist/jsx/shared/i18n.mjs +10 -0
- package/dist/jsx/shared/i18n.mjs.map +1 -0
- package/dist/jsx/shared/i18n.native.js +52 -0
- package/dist/jsx/shared/i18n.native.js.map +1 -0
- package/dist/jsx/shared/utils.mjs +5 -4
- 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 +13 -25
- package/dist/jsx/themedPrimitives.mjs.map +1 -1
- package/dist/jsx/themedPrimitives.native.js +12 -24
- package/dist/jsx/themedPrimitives.native.js.map +1 -1
- package/package.json +16 -16
- package/src/AdaptivePopup/AdaptivePopup.spec.tsx +210 -0
- package/src/AdaptivePopup/index.tsx +187 -52
- package/src/Button/Button.lc18.spec.tsx +134 -0
- package/src/Button/Button.lc50.spec.tsx +73 -0
- package/src/Button/Button.lc71.spec.tsx +109 -0
- package/src/Button/Button.spec.tsx +128 -0
- package/src/Button/Button.stories.tsx +40 -0
- package/src/Button/index.tsx +355 -73
- package/src/Chip/Chip.spec.tsx +173 -1
- package/src/Chip/index.tsx +425 -64
- package/src/ControlGroup/ControlGroup.stories.tsx +46 -3
- package/src/ControlGroup/index.tsx +179 -74
- package/src/FieldDisplay/FieldDisplay.spec.tsx +121 -0
- package/src/FieldDisplay/FieldDisplay.stories.tsx +16 -5
- package/src/FieldDisplay/index.tsx +416 -102
- package/src/FieldGroup.tsx +46 -42
- package/src/FloatingPanel/FloatingPanel.spec.tsx +263 -0
- package/src/FloatingPanel/FloatingPanel.stories.tsx +10 -39
- package/src/FloatingPanel/index.native.tsx +9 -8
- package/src/FloatingPanel/index.tsx +139 -11
- package/src/FloatingPanel/useFloatingPanel.spec.tsx +59 -0
- package/src/FloatingPanel/useFloatingPanel.ts +58 -7
- package/src/Form/Form.stories.tsx +181 -130
- package/src/Form/form.spec.tsx +43 -1
- package/src/Form/index.tsx +67 -12
- package/src/FormGrid.spec.tsx +41 -0
- package/src/FormGrid.stories.tsx +3 -4
- package/src/FormGrid.tsx +55 -15
- package/src/FormSection.tsx +14 -7
- package/src/InputParts/index.spec.tsx +62 -1
- package/src/InputParts/index.tsx +375 -72
- package/src/Label/Label.spec.tsx +65 -0
- package/src/Label/Label.stories.tsx +75 -5
- package/src/Label/index.tsx +101 -6
- package/src/Skeleton/index.tsx +18 -8
- package/src/Spinner/Spinner.spec.tsx +66 -0
- package/src/Spinner/Spinner.stories.tsx +43 -14
- package/src/Spinner/SpinnerGlyph.tsx +38 -0
- package/src/Spinner/index.native.tsx +64 -0
- package/src/Spinner/index.tsx +30 -37
- package/src/Spinner/spinnerSize.ts +27 -0
- package/src/fieldLayout.tsx +6 -0
- package/src/fields/Barcode/Barcode.spec.tsx +91 -1
- package/src/fields/Barcode/Barcode.stories.tsx +13 -0
- package/src/fields/Barcode/BarcodeScanner.native.tsx +6 -17
- package/src/fields/Barcode/BarcodeScanner.tsx +37 -6
- package/src/fields/Barcode/index.tsx +111 -66
- package/src/fields/Barcode/scannerTypes.ts +130 -0
- package/src/fields/Checkbox/Checkbox.spec.tsx +84 -3
- package/src/fields/Checkbox/Checkbox.tsx +52 -99
- package/src/fields/Checkbox/CheckboxBox.tsx +139 -0
- package/src/fields/Checkbox/CheckboxCard.tsx +1 -1
- package/src/fields/Checkbox/CheckboxFieldFrame.tsx +14 -30
- package/src/fields/Checkbox/CheckboxGroup.tsx +8 -2
- package/src/fields/Checkbox/index.tsx +49 -82
- package/src/fields/ColorPicker/ColorPicker.spec.tsx +84 -2
- package/src/fields/ColorPicker/ColorPicker.stories.tsx +1 -1
- package/src/fields/ColorPicker/gradients.native.tsx +23 -5
- package/src/fields/ColorPicker/gradients.tsx +20 -5
- package/src/fields/ColorPicker/index.tsx +95 -71
- package/src/fields/ColorPicker/parts.tsx +498 -229
- package/src/fields/Combobox/Combobox.spec.tsx +33 -1
- package/src/fields/Combobox/index.tsx +219 -59
- package/src/fields/DatePicker/Calendar.spec.tsx +34 -0
- package/src/fields/DatePicker/Calendar.tsx +70 -200
- package/src/fields/DatePicker/DatePicker.spec.tsx +28 -1
- package/src/fields/DatePicker/DatePicker.stories.tsx +1 -1
- package/src/fields/DatePicker/DateRangePicker.spec.tsx +22 -1
- package/src/fields/DatePicker/DateRangePicker.stories.tsx +1 -1
- package/src/fields/DatePicker/DateRangePicker.tsx +55 -128
- package/src/fields/DatePicker/DatetimePicker.spec.tsx +14 -0
- package/src/fields/DatePicker/DatetimePicker.stories.tsx +1 -1
- package/src/fields/DatePicker/DatetimePicker.tsx +86 -224
- package/src/fields/DatePicker/MonthPicker.spec.tsx +44 -0
- package/src/fields/DatePicker/MonthPicker.stories.tsx +1 -1
- package/src/fields/DatePicker/MonthPicker.tsx +69 -62
- package/src/fields/DatePicker/MultiDatePicker.spec.tsx +22 -1
- package/src/fields/DatePicker/MultiDatePicker.stories.tsx +1 -1
- package/src/fields/DatePicker/MultiDatePicker.tsx +20 -90
- package/src/fields/DatePicker/index.tsx +23 -95
- package/src/fields/DatePicker/parts.tsx +583 -241
- package/src/fields/Duration/Duration.spec.tsx +58 -3
- package/src/fields/Duration/Duration.stories.tsx +20 -44
- package/src/fields/Duration/index.tsx +381 -183
- package/src/fields/FileUpload/FileUpload.spec.tsx +63 -1
- package/src/fields/FileUpload/index.tsx +163 -27
- package/src/fields/Geolocation/Geolocation.spec.tsx +144 -0
- package/src/fields/Geolocation/Geolocation.stories.tsx +11 -6
- package/src/fields/Geolocation/GeolocationMap.native.spec.tsx +7 -0
- package/src/fields/Geolocation/GeolocationMap.native.tsx +24 -19
- package/src/fields/Geolocation/GeolocationMap.tsx +134 -18
- package/src/fields/Geolocation/index.tsx +171 -120
- package/src/fields/Geolocation/mapMath.spec.ts +59 -0
- package/src/fields/Geolocation/mapMath.ts +91 -0
- package/src/fields/Geolocation/mapTypes.ts +7 -2
- package/src/fields/ImageField/ImageField.spec.tsx +68 -0
- package/src/fields/ImageField/ImageField.stories.tsx +40 -24
- package/src/fields/ImageField/index.tsx +381 -214
- package/src/fields/Input/Input.spec.tsx +111 -0
- package/src/fields/Input/Input.stories.tsx +37 -4
- package/src/fields/Input/index.tsx +139 -108
- package/src/fields/MentionInput/MentionInput.spec.tsx +115 -0
- package/src/fields/MentionInput/MentionInput.stories.tsx +1 -1
- package/src/fields/MentionInput/index.tsx +220 -69
- package/src/fields/OTPInput/OtpInput.spec.tsx +58 -1
- package/src/fields/OTPInput/OtpInput.stories.tsx +14 -18
- package/src/fields/OTPInput/index.tsx +220 -72
- package/src/fields/OTPInput/otpCellCss.ts +68 -0
- package/src/fields/PhoneInput/PhoneInput.spec.tsx +61 -8
- package/src/fields/PhoneInput/PhoneInput.stories.tsx +0 -2
- package/src/fields/PhoneInput/index.tsx +253 -140
- package/src/fields/PhoneInput/phone.spec.ts +85 -0
- package/src/fields/PhoneInput/phone.ts +268 -0
- package/src/fields/Progress/Progress.spec.tsx +53 -0
- package/src/fields/Progress/Progress.stories.tsx +7 -2
- package/src/fields/Progress/index.tsx +202 -64
- package/src/fields/RadioGroup/RadioGroup.spec.tsx +31 -4
- package/src/fields/RadioGroup/index.tsx +183 -93
- package/src/fields/Rating/Rating.spec.tsx +103 -0
- package/src/fields/Rating/Rating.stories.tsx +2 -1
- package/src/fields/Rating/StarInk.native.spec.tsx +175 -0
- package/src/fields/Rating/StarInk.native.tsx +77 -0
- package/src/fields/Rating/StarInk.tsx +23 -0
- package/src/fields/Rating/index.tsx +196 -46
- package/src/fields/Rating/types.ts +28 -0
- package/src/fields/SearchInput/SearchInput.spec.tsx +30 -0
- package/src/fields/SearchInput/SearchInput.stories.tsx +10 -1
- package/src/fields/SearchInput/index.tsx +207 -68
- package/src/fields/Select/Select.spec.tsx +55 -1
- package/src/fields/Select/index.tsx +172 -22
- package/src/fields/Signature/Signature.spec.tsx +122 -3
- package/src/fields/Signature/index.tsx +170 -54
- package/src/fields/Slider/Slider.spec.tsx +63 -21
- package/src/fields/Slider/index.tsx +282 -184
- package/src/fields/Slider/jumpMotion.ts +9 -25
- package/src/fields/Stepper/Stepper.spec.tsx +96 -0
- package/src/fields/Stepper/Stepper.stories.tsx +4 -6
- package/src/fields/Stepper/index.tsx +321 -129
- package/src/fields/Switch/Switch.spec.tsx +52 -3
- package/src/fields/Switch/Switch.stories.tsx +34 -0
- package/src/fields/Switch/index.tsx +234 -57
- package/src/fields/TextArea/TextArea.spec.tsx +38 -0
- package/src/fields/TextArea/TextArea.stories.tsx +11 -1
- package/src/fields/TextArea/index.tsx +79 -20
- package/src/fields/TimePicker/TimePicker.spec.tsx +66 -0
- package/src/fields/TimePicker/TimePicker.stories.tsx +8 -37
- package/src/fields/TimePicker/index.tsx +86 -292
- package/src/fields/TimePicker/parts.tsx +714 -0
- package/src/fields/ToggleGroup/ToggleGroup.spec.tsx +27 -0
- package/src/fields/ToggleGroup/ToggleGroup.stories.tsx +15 -0
- package/src/fields/ToggleGroup/index.tsx +144 -153
- package/src/formSpacing.ts +3 -8
- package/src/index.ts +2 -0
- package/src/shared/devWarn.ts +1 -0
- package/src/shared/focusManagement.ts +8 -2
- package/src/shared/i18n.ts +25 -0
- package/src/shared/utils.ts +5 -6
- package/src/themedPrimitives.tsx +14 -17
- package/types/AdaptivePopup/index.d.ts.map +1 -1
- package/types/Button/index.d.ts +51 -1
- package/types/Button/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts +31 -7
- package/types/Chip/index.d.ts.map +1 -1
- package/types/ControlGroup/index.d.ts +14 -1
- package/types/ControlGroup/index.d.ts.map +1 -1
- package/types/FieldDisplay/index.d.ts +10 -12
- package/types/FieldDisplay/index.d.ts.map +1 -1
- package/types/FieldGroup.d.ts +10 -4
- package/types/FieldGroup.d.ts.map +1 -1
- 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 -1
- package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
- package/types/Form/index.d.ts +18 -1
- package/types/Form/index.d.ts.map +1 -1
- package/types/FormGrid.d.ts +8 -3
- package/types/FormGrid.d.ts.map +1 -1
- package/types/FormSection.d.ts +3 -1
- package/types/FormSection.d.ts.map +1 -1
- package/types/InputParts/index.d.ts +61 -13
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/Label/index.d.ts +16 -4
- package/types/Label/index.d.ts.map +1 -1
- package/types/Skeleton/index.d.ts.map +1 -1
- package/types/Spinner/SpinnerGlyph.d.ts +7 -0
- package/types/Spinner/SpinnerGlyph.d.ts.map +1 -0
- package/types/Spinner/index.d.ts +3 -6
- package/types/Spinner/index.d.ts.map +1 -1
- package/types/Spinner/index.native.d.ts +5 -0
- package/types/Spinner/index.native.d.ts.map +1 -0
- package/types/Spinner/spinnerSize.d.ts +16 -0
- package/types/Spinner/spinnerSize.d.ts.map +1 -0
- package/types/fieldLayout.d.ts.map +1 -1
- package/types/fields/Barcode/BarcodeScanner.d.ts +1 -1
- package/types/fields/Barcode/BarcodeScanner.d.ts.map +1 -1
- package/types/fields/Barcode/BarcodeScanner.native.d.ts +1 -1
- package/types/fields/Barcode/BarcodeScanner.native.d.ts.map +1 -1
- package/types/fields/Barcode/index.d.ts +2 -2
- package/types/fields/Barcode/index.d.ts.map +1 -1
- package/types/fields/Barcode/scannerTypes.d.ts +21 -0
- package/types/fields/Barcode/scannerTypes.d.ts.map +1 -1
- package/types/fields/Checkbox/Checkbox.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxBox.d.ts +71 -0
- package/types/fields/Checkbox/CheckboxBox.d.ts.map +1 -0
- package/types/fields/Checkbox/CheckboxFieldFrame.d.ts +2 -2
- package/types/fields/Checkbox/CheckboxFieldFrame.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxGroup.d.ts +1 -1
- package/types/fields/Checkbox/CheckboxGroup.d.ts.map +1 -1
- package/types/fields/Checkbox/index.d.ts +4 -4
- package/types/fields/Checkbox/index.d.ts.map +1 -1
- package/types/fields/ColorPicker/gradients.d.ts +4 -2
- package/types/fields/ColorPicker/gradients.d.ts.map +1 -1
- package/types/fields/ColorPicker/gradients.native.d.ts +4 -2
- package/types/fields/ColorPicker/gradients.native.d.ts.map +1 -1
- package/types/fields/ColorPicker/index.d.ts +1 -1
- package/types/fields/ColorPicker/index.d.ts.map +1 -1
- package/types/fields/ColorPicker/parts.d.ts +19 -4
- package/types/fields/ColorPicker/parts.d.ts.map +1 -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 +1 -1
- package/types/fields/DatePicker/DateRangePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.d.ts +1 -1
- package/types/fields/DatePicker/DatetimePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/MonthPicker.d.ts +1 -1
- package/types/fields/DatePicker/MonthPicker.d.ts.map +1 -1
- package/types/fields/DatePicker/MultiDatePicker.d.ts +1 -1
- package/types/fields/DatePicker/MultiDatePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/index.d.ts +1 -1
- package/types/fields/DatePicker/index.d.ts.map +1 -1
- package/types/fields/DatePicker/parts.d.ts +52 -118
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/Duration/index.d.ts +25 -6
- package/types/fields/Duration/index.d.ts.map +1 -1
- package/types/fields/FileUpload/index.d.ts +1 -1
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/Geolocation/GeolocationMap.d.ts +5 -5
- package/types/fields/Geolocation/GeolocationMap.d.ts.map +1 -1
- package/types/fields/Geolocation/GeolocationMap.native.d.ts +1 -1
- package/types/fields/Geolocation/GeolocationMap.native.d.ts.map +1 -1
- package/types/fields/Geolocation/index.d.ts +1 -1
- package/types/fields/Geolocation/index.d.ts.map +1 -1
- package/types/fields/Geolocation/mapMath.d.ts +41 -0
- package/types/fields/Geolocation/mapMath.d.ts.map +1 -0
- package/types/fields/Geolocation/mapTypes.d.ts +7 -2
- package/types/fields/Geolocation/mapTypes.d.ts.map +1 -1
- package/types/fields/ImageField/index.d.ts +9 -8
- package/types/fields/ImageField/index.d.ts.map +1 -1
- package/types/fields/Input/index.d.ts +38 -9
- package/types/fields/Input/index.d.ts.map +1 -1
- package/types/fields/MentionInput/index.d.ts +1 -1
- package/types/fields/MentionInput/index.d.ts.map +1 -1
- package/types/fields/OTPInput/index.d.ts +6 -0
- package/types/fields/OTPInput/index.d.ts.map +1 -1
- package/types/fields/OTPInput/otpCellCss.d.ts +3 -0
- package/types/fields/OTPInput/otpCellCss.d.ts.map +1 -0
- package/types/fields/PhoneInput/index.d.ts +1 -3
- package/types/fields/PhoneInput/index.d.ts.map +1 -1
- package/types/fields/PhoneInput/phone.d.ts +25 -0
- package/types/fields/PhoneInput/phone.d.ts.map +1 -0
- package/types/fields/Progress/index.d.ts +7 -2
- package/types/fields/Progress/index.d.ts.map +1 -1
- package/types/fields/RadioGroup/index.d.ts +2 -2
- package/types/fields/RadioGroup/index.d.ts.map +1 -1
- package/types/fields/Rating/StarInk.d.ts +15 -0
- package/types/fields/Rating/StarInk.d.ts.map +1 -0
- package/types/fields/Rating/StarInk.native.d.ts +49 -0
- package/types/fields/Rating/StarInk.native.d.ts.map +1 -0
- package/types/fields/Rating/index.d.ts +1 -1
- package/types/fields/Rating/index.d.ts.map +1 -1
- package/types/fields/Rating/types.d.ts +27 -0
- package/types/fields/Rating/types.d.ts.map +1 -0
- package/types/fields/SearchInput/index.d.ts +5 -3
- 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 +1 -1
- package/types/fields/Signature/index.d.ts.map +1 -1
- package/types/fields/Slider/index.d.ts +1 -1
- package/types/fields/Slider/index.d.ts.map +1 -1
- package/types/fields/Slider/jumpMotion.d.ts +7 -17
- package/types/fields/Slider/jumpMotion.d.ts.map +1 -1
- package/types/fields/Stepper/index.d.ts +8 -1
- package/types/fields/Stepper/index.d.ts.map +1 -1
- package/types/fields/Switch/index.d.ts +9 -1
- package/types/fields/Switch/index.d.ts.map +1 -1
- package/types/fields/TextArea/index.d.ts +1 -1
- package/types/fields/TextArea/index.d.ts.map +1 -1
- package/types/fields/TimePicker/index.d.ts +4 -3
- package/types/fields/TimePicker/index.d.ts.map +1 -1
- package/types/fields/TimePicker/parts.d.ts +51 -0
- package/types/fields/TimePicker/parts.d.ts.map +1 -0
- package/types/fields/ToggleGroup/index.d.ts +1 -1
- package/types/fields/ToggleGroup/index.d.ts.map +1 -1
- package/types/formSpacing.d.ts +3 -8
- package/types/formSpacing.d.ts.map +1 -1
- package/types/index.d.ts +2 -2
- package/types/index.d.ts.map +1 -1
- package/types/shared/devWarn.d.ts +1 -1
- package/types/shared/devWarn.d.ts.map +1 -1
- package/types/shared/focusManagement.d.ts.map +1 -1
- package/types/shared/i18n.d.ts +13 -0
- package/types/shared/i18n.d.ts.map +1 -0
- package/types/shared/utils.d.ts +2 -2
- package/types/shared/utils.d.ts.map +1 -1
- package/types/themedPrimitives.d.ts +1 -1
- package/types/themedPrimitives.d.ts.map +1 -1
|
@@ -27,8 +27,10 @@ import {
|
|
|
27
27
|
import type { FormFieldProps } from "../../fieldLayout";
|
|
28
28
|
import { FocusContext, Input as InputParts, InputContext } from "../../InputParts";
|
|
29
29
|
import { Skeleton } from "../../Skeleton";
|
|
30
|
+
import { formCommonColors, formControlColors, formInputColors } from "../../shared/colorRamps";
|
|
30
31
|
import { t } from "../../shared/t";
|
|
31
32
|
import type { FieldComponentProps } from "../../types";
|
|
33
|
+
import { ensureOtpCellCss } from "./otpCellCss";
|
|
32
34
|
|
|
33
35
|
export type OTPInputProps<
|
|
34
36
|
TParentData extends Record<string, unknown> = Record<string, unknown>,
|
|
@@ -96,7 +98,38 @@ const valueToDigits = (value: string, inputType: string, length: number): string
|
|
|
96
98
|
.concat(Array(length).fill(""))
|
|
97
99
|
.slice(0, length);
|
|
98
100
|
|
|
99
|
-
const navigationKeys = ["Backspace", "ArrowLeft", "ArrowRight", "Home", "End"];
|
|
101
|
+
const navigationKeys = ["Backspace", "Delete", "ArrowLeft", "ArrowRight", "Home", "End"];
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Pull a one-time code out of clipboard / SMS bodies (Apple AutoFill + Stripe).
|
|
105
|
+
* Prefers an exact-length run so a date like 20260814 does not steal a 6-digit
|
|
106
|
+
* prefix from "code 123456" at the end of the same message.
|
|
107
|
+
*/
|
|
108
|
+
export function extractOtpCode(text: string, inputType: string, length: number): string {
|
|
109
|
+
if (!text || length <= 0) return "";
|
|
110
|
+
const stripped = text.replace(getValidationPattern(inputType), "");
|
|
111
|
+
if (stripped.length === length) return stripped;
|
|
112
|
+
const splitter = inputType === "alphanumeric" ? /[^a-zA-Z0-9]+/ : /\D+/;
|
|
113
|
+
if (inputType === "numeric" || inputType === "alphanumeric") {
|
|
114
|
+
const tokens = text.split(splitter).filter((token) => token.length === length);
|
|
115
|
+
if (tokens.length) return tokens[tokens.length - 1];
|
|
116
|
+
}
|
|
117
|
+
return stripped.slice(0, length);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** Apple / Stripe 6-digit codes group 3+3; even lengths ≥4 split at the midpoint. */
|
|
121
|
+
function otpGroupSizes(length: number, separator?: string): number[] | null {
|
|
122
|
+
if (separator || length < 4 || length % 2 !== 0) return null;
|
|
123
|
+
const half = length / 2;
|
|
124
|
+
return [half, half];
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function digitFontSize(cellSize: string | number | undefined): string {
|
|
128
|
+
const key = String(cellSize ?? "$true");
|
|
129
|
+
if (key === "$2" || key === "28") return "$5";
|
|
130
|
+
if (key === "$4" || key === "$true" || key === "44") return "$7";
|
|
131
|
+
return "$6";
|
|
132
|
+
}
|
|
100
133
|
|
|
101
134
|
/**
|
|
102
135
|
* Digit cells own their focus ring (DG-A11Y-01): the ring must be CSS-driven
|
|
@@ -172,11 +205,12 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
172
205
|
// token, and default-size 44pt digit squares overflow the ~$8-wide cell.
|
|
173
206
|
const { size: contextSize } = InputContext.useStyledContext();
|
|
174
207
|
const cellSize = contextSize ?? knobProps.sizeToken;
|
|
175
|
-
//
|
|
208
|
+
// LC-71 carve-out: inset (−2) on the focused cell so neighbors don't clip it.
|
|
176
209
|
const cellFocusRing = ensureFocusVisibleRing({
|
|
177
210
|
...control.focusVisibleKnobProps,
|
|
178
211
|
outlineOffset: -2,
|
|
179
212
|
});
|
|
213
|
+
if (isWeb) ensureOtpCellCss();
|
|
180
214
|
|
|
181
215
|
useEffect(() => {
|
|
182
216
|
if (autoFocus && didFinishSSR && inputRef.current) {
|
|
@@ -185,6 +219,13 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
185
219
|
}, [autoFocus, didFinishSSR, inputRef]);
|
|
186
220
|
|
|
187
221
|
const cellRadius = getOTPCellRadius(knobProps.borderRadius.borderRadius);
|
|
222
|
+
const isNumeric = type === "numeric";
|
|
223
|
+
const cellBorder = hasError
|
|
224
|
+
? formCommonColors.error
|
|
225
|
+
: value
|
|
226
|
+
? formControlColors.boundary
|
|
227
|
+
: formInputColors.border.base;
|
|
228
|
+
const firstCell = digitIndex === 0;
|
|
188
229
|
|
|
189
230
|
return (
|
|
190
231
|
<InputParts.Box
|
|
@@ -198,11 +239,26 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
198
239
|
flexShrink={0}
|
|
199
240
|
flexBasis="auto"
|
|
200
241
|
borderRadius={cellRadius}
|
|
242
|
+
justifyContent="center"
|
|
243
|
+
alignItems="center"
|
|
244
|
+
// Apple / Stripe slots are flat squares — Input.Box elevation would
|
|
245
|
+
// lift each cell off the page.
|
|
246
|
+
elevation={0}
|
|
247
|
+
shadowOpacity={0}
|
|
248
|
+
borderColor={cellBorder}
|
|
249
|
+
hoverStyle={{ borderColor: hasError ? formCommonColors.error : formInputColors.border.hover }}
|
|
250
|
+
focusStyle={{ borderColor: hasError ? formCommonColors.error : formInputColors.border.focus }}
|
|
201
251
|
// LC-40: forward `disabled` so each cell renders the washed chrome.
|
|
202
252
|
disabled={disabled}
|
|
203
253
|
// Web only: keep the Box out of the tab order. The focus handlers live
|
|
204
254
|
// on the Area itself (native RN Views neither focus nor bubble focus).
|
|
205
|
-
{...(isWeb
|
|
255
|
+
{...(isWeb
|
|
256
|
+
? {
|
|
257
|
+
tabIndex: -1,
|
|
258
|
+
className: knobProps.transition ? "mp-otp-cell" : "mp-otp-cell mp-otp-motion-none",
|
|
259
|
+
style: { boxShadow: "none" },
|
|
260
|
+
}
|
|
261
|
+
: {})}
|
|
206
262
|
>
|
|
207
263
|
<FocusContext.Provider {...suppressBoxFocusRing}>
|
|
208
264
|
<InputParts.Area
|
|
@@ -210,15 +266,18 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
210
266
|
value={value}
|
|
211
267
|
focusStyle={cellFocusRing}
|
|
212
268
|
focusVisibleStyle={cellFocusRing}
|
|
213
|
-
keyboardType="number-pad"
|
|
214
|
-
textContentType="oneTimeCode"
|
|
215
|
-
autoComplete="one-time-code"
|
|
269
|
+
keyboardType={isNumeric ? "number-pad" : "default"}
|
|
270
|
+
textContentType={firstCell ? "oneTimeCode" : "none"}
|
|
271
|
+
autoComplete={firstCell ? "one-time-code" : "off"}
|
|
272
|
+
autoCorrect={false}
|
|
216
273
|
secureTextEntry={secureTextEntry}
|
|
217
274
|
textAlign="center"
|
|
218
275
|
padding={0}
|
|
276
|
+
fontWeight="600"
|
|
277
|
+
fontSize={digitFontSize(cellSize)}
|
|
219
278
|
disabled={disabled}
|
|
220
279
|
readOnly={!!readOnly}
|
|
221
|
-
id={
|
|
280
|
+
id={firstCell ? fieldId : undefined}
|
|
222
281
|
aria-label={
|
|
223
282
|
hasLabel
|
|
224
283
|
? `Digit ${digitIndex + 1} of ${digitCount}`
|
|
@@ -227,6 +286,7 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
227
286
|
aria-required={required || undefined}
|
|
228
287
|
aria-invalid={hasError || undefined}
|
|
229
288
|
aria-readonly={readOnly || undefined}
|
|
289
|
+
placeholder=" "
|
|
230
290
|
onFocus={() => {
|
|
231
291
|
onFocus();
|
|
232
292
|
if (isWeb && inputRef.current) {
|
|
@@ -240,11 +300,12 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
240
300
|
const pattern = getValidationPattern(type);
|
|
241
301
|
const filtered = text.replace(pattern, "");
|
|
242
302
|
if (!filtered) return;
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
303
|
+
// SMS AutoFill / OS paste often dumps the whole code into one cell.
|
|
304
|
+
if (filtered.length > 1) {
|
|
305
|
+
onPaste(filtered);
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
onChange(filtered[0]);
|
|
248
309
|
}}
|
|
249
310
|
onKeyPress={
|
|
250
311
|
isWeb
|
|
@@ -256,6 +317,12 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
256
317
|
}
|
|
257
318
|
{...(isWeb
|
|
258
319
|
? {
|
|
320
|
+
className: "mp-otp-area",
|
|
321
|
+
inputMode: isNumeric ? "numeric" : "text",
|
|
322
|
+
pattern: isNumeric ? "[0-9]*" : undefined,
|
|
323
|
+
autoCapitalize: isNumeric ? "none" : "characters",
|
|
324
|
+
spellCheck: false,
|
|
325
|
+
enterKeyHint: digitIndex === digitCount - 1 ? "done" : "next",
|
|
259
326
|
// react-native-web never fires onKeyPress reliably, so drive
|
|
260
327
|
// navigation/deletion from the DOM keydown event instead
|
|
261
328
|
onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => {
|
|
@@ -370,50 +437,91 @@ function OTPCellsRow({
|
|
|
370
437
|
return cell;
|
|
371
438
|
};
|
|
372
439
|
|
|
440
|
+
const renderDigit = (index: number) => {
|
|
441
|
+
const cell = cellAt(index);
|
|
442
|
+
return (
|
|
443
|
+
<OTPDigitInput
|
|
444
|
+
key={`digit-${index}`}
|
|
445
|
+
value={digits[index]}
|
|
446
|
+
type={type}
|
|
447
|
+
onChange={cell.onChange}
|
|
448
|
+
onKeyPress={cell.onKeyPress}
|
|
449
|
+
onPaste={cell.onPaste}
|
|
450
|
+
onFocus={cell.onFocus}
|
|
451
|
+
onBlur={cell.onBlur}
|
|
452
|
+
autoFocus={autoFocus && index === 0}
|
|
453
|
+
secureTextEntry={getSecureTextEntry(type, secureTextEntry)}
|
|
454
|
+
disabled={disabled}
|
|
455
|
+
readOnly={readOnly}
|
|
456
|
+
required={required}
|
|
457
|
+
hasError={hasError}
|
|
458
|
+
digitIndex={index}
|
|
459
|
+
digitCount={length}
|
|
460
|
+
fieldId={fieldId}
|
|
461
|
+
hasLabel={hasLabel}
|
|
462
|
+
inputProps={inputProps}
|
|
463
|
+
inputRef={cell.inputRef}
|
|
464
|
+
attachRef={cell.attachRef}
|
|
465
|
+
/>
|
|
466
|
+
);
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
const groups = otpGroupSizes(length, separator);
|
|
470
|
+
const cellGap = knobProps.gap.gap;
|
|
471
|
+
// Stripe / Apple 3+3: group gap is a clear pause, not one more cell-gap.
|
|
472
|
+
const groupGap = "$8";
|
|
473
|
+
const hasValue = digits.some(Boolean);
|
|
474
|
+
const clearButton =
|
|
475
|
+
clearable && !readOnly && hasValue ? (
|
|
476
|
+
<Button
|
|
477
|
+
chromeless
|
|
478
|
+
circular
|
|
479
|
+
size="$2"
|
|
480
|
+
onPress={onClear}
|
|
481
|
+
disabled={disabled}
|
|
482
|
+
marginInlineStart="$2"
|
|
483
|
+
aria-label={t("Clear")}
|
|
484
|
+
tabIndex={-1}
|
|
485
|
+
>
|
|
486
|
+
×
|
|
487
|
+
</Button>
|
|
488
|
+
) : null;
|
|
489
|
+
|
|
490
|
+
const rowA11y = isWeb
|
|
491
|
+
? { role: "group" as const, ...(hasLabel ? {} : { "aria-label": t("One-time code") }) }
|
|
492
|
+
: {};
|
|
493
|
+
|
|
494
|
+
if (groups) {
|
|
495
|
+
let offset = 0;
|
|
496
|
+
return (
|
|
497
|
+
<XStack gap={groupGap} alignItems="center" {...rowA11y}>
|
|
498
|
+
{groups.map((size, gi) => {
|
|
499
|
+
const start = offset;
|
|
500
|
+
offset += size;
|
|
501
|
+
return (
|
|
502
|
+
<XStack key={`otp-group-${gi}`} gap={cellGap} alignItems="center">
|
|
503
|
+
{Array.from({ length: size }, (_, j) => renderDigit(start + j))}
|
|
504
|
+
</XStack>
|
|
505
|
+
);
|
|
506
|
+
})}
|
|
507
|
+
{clearButton}
|
|
508
|
+
</XStack>
|
|
509
|
+
);
|
|
510
|
+
}
|
|
511
|
+
|
|
373
512
|
return (
|
|
374
|
-
<XStack gap={
|
|
375
|
-
{Array.from({ length }, (_, index) =>
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
<
|
|
379
|
-
<
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
onBlur={cell.onBlur}
|
|
387
|
-
autoFocus={autoFocus && index === 0}
|
|
388
|
-
secureTextEntry={getSecureTextEntry(type, secureTextEntry)}
|
|
389
|
-
disabled={disabled}
|
|
390
|
-
readOnly={readOnly}
|
|
391
|
-
required={required}
|
|
392
|
-
hasError={hasError}
|
|
393
|
-
digitIndex={index}
|
|
394
|
-
digitCount={length}
|
|
395
|
-
fieldId={fieldId}
|
|
396
|
-
hasLabel={hasLabel}
|
|
397
|
-
inputProps={inputProps}
|
|
398
|
-
inputRef={cell.inputRef}
|
|
399
|
-
attachRef={cell.attachRef}
|
|
400
|
-
/>
|
|
401
|
-
{separator && index < length - 1 && <Text>{separator}</Text>}
|
|
402
|
-
</Fragment>
|
|
403
|
-
);
|
|
404
|
-
})}
|
|
405
|
-
{clearable && !readOnly && (
|
|
406
|
-
<Button
|
|
407
|
-
circular
|
|
408
|
-
onPress={onClear}
|
|
409
|
-
disabled={disabled}
|
|
410
|
-
marginInlineStart="$2"
|
|
411
|
-
aria-label={t("Clear")}
|
|
412
|
-
tabIndex={-1}
|
|
413
|
-
>
|
|
414
|
-
×
|
|
415
|
-
</Button>
|
|
416
|
-
)}
|
|
513
|
+
<XStack gap={cellGap} alignItems="center" {...rowA11y}>
|
|
514
|
+
{Array.from({ length }, (_, index) => (
|
|
515
|
+
<Fragment key={`digit-${index}`}>
|
|
516
|
+
{renderDigit(index)}
|
|
517
|
+
{separator && index < length - 1 && (
|
|
518
|
+
<Text {...knobProps.body} color={formCommonColors.muted}>
|
|
519
|
+
{separator}
|
|
520
|
+
</Text>
|
|
521
|
+
)}
|
|
522
|
+
</Fragment>
|
|
523
|
+
))}
|
|
524
|
+
{clearButton}
|
|
417
525
|
</XStack>
|
|
418
526
|
);
|
|
419
527
|
}
|
|
@@ -682,7 +790,7 @@ export function OTPInput<
|
|
|
682
790
|
|
|
683
791
|
const handleKeyPress = useCallback(
|
|
684
792
|
(index: number, key: string) => {
|
|
685
|
-
if (key === "Backspace") {
|
|
793
|
+
if (key === "Backspace" || key === "Delete") {
|
|
686
794
|
const wasEmpty = !digitsRef.current[index];
|
|
687
795
|
setDigits((prev) => {
|
|
688
796
|
const next = [...prev];
|
|
@@ -716,10 +824,7 @@ export function OTPInput<
|
|
|
716
824
|
|
|
717
825
|
const handlePaste = useCallback(
|
|
718
826
|
(pastedText: string) => {
|
|
719
|
-
const pastedChars = pastedText
|
|
720
|
-
.replace(getValidationPattern(type), "")
|
|
721
|
-
.slice(0, length)
|
|
722
|
-
.split("");
|
|
827
|
+
const pastedChars = extractOtpCode(pastedText, type, length).split("");
|
|
723
828
|
if (!pastedChars.length) return;
|
|
724
829
|
const newDigits = pastedChars.concat(Array(length).fill("")).slice(0, length);
|
|
725
830
|
setDigits(newDigits);
|
|
@@ -730,6 +835,27 @@ export function OTPInput<
|
|
|
730
835
|
[length, type],
|
|
731
836
|
);
|
|
732
837
|
|
|
838
|
+
useEffect(() => {
|
|
839
|
+
if (!isWeb || type !== "numeric" || disabled || readOnly) return;
|
|
840
|
+
if (typeof window === "undefined" || !("OTPCredential" in window)) return;
|
|
841
|
+
const credentials = navigator.credentials;
|
|
842
|
+
if (!credentials?.get) return;
|
|
843
|
+
const ac = new AbortController();
|
|
844
|
+
void credentials
|
|
845
|
+
.get({
|
|
846
|
+
otp: { transport: ["sms"] },
|
|
847
|
+
signal: ac.signal,
|
|
848
|
+
} as CredentialRequestOptions)
|
|
849
|
+
.then((cred) => {
|
|
850
|
+
const code = (cred as { code?: string } | null)?.code;
|
|
851
|
+
if (code) handlePaste(code);
|
|
852
|
+
})
|
|
853
|
+
.catch(() => {
|
|
854
|
+
/* dismissed or unsupported */
|
|
855
|
+
});
|
|
856
|
+
return () => ac.abort();
|
|
857
|
+
}, [type, disabled, readOnly, handlePaste]);
|
|
858
|
+
|
|
733
859
|
const handleClearStandalone = () => {
|
|
734
860
|
setDigits(Array(length).fill(""));
|
|
735
861
|
if (inputRefs.current[0]) {
|
|
@@ -744,20 +870,42 @@ export function OTPInput<
|
|
|
744
870
|
// stack. Cell size + radius match live OTPDigitInput (getOTPCellRadius).
|
|
745
871
|
const cellSize = fieldProps.size || knobProps.sizeToken;
|
|
746
872
|
const cellRadius = getOTPCellRadius(knobProps.borderRadius.borderRadius);
|
|
873
|
+
const cellGap = knobProps.gap.gap;
|
|
874
|
+
const groups = otpGroupSizes(length, separator);
|
|
875
|
+
const groupGap = "$8";
|
|
876
|
+
// knobProps.body carries only fontFamily/fontWeight/color (no lineHeight),
|
|
877
|
+
// so the skeleton label mirrors the live label's deterministic px height.
|
|
878
|
+
const labelHeight = 16;
|
|
879
|
+
const skeletonCell = (i: number) => (
|
|
880
|
+
<Skeleton
|
|
881
|
+
key={i}
|
|
882
|
+
variant="rounded"
|
|
883
|
+
width={cellSize}
|
|
884
|
+
height={cellSize}
|
|
885
|
+
borderRadius={cellRadius}
|
|
886
|
+
/>
|
|
887
|
+
);
|
|
888
|
+
let groupOffset = 0;
|
|
747
889
|
return (
|
|
748
890
|
<InputParts size={cellSize}>
|
|
749
|
-
{fieldProps.label && <Skeleton variant="text" width={96} height={
|
|
750
|
-
|
|
751
|
-
{
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
891
|
+
{fieldProps.label && <Skeleton variant="text" width={96} height={labelHeight} />}
|
|
892
|
+
{groups ? (
|
|
893
|
+
<XStack gap={groupGap} alignItems="center">
|
|
894
|
+
{groups.map((size, gi) => {
|
|
895
|
+
const start = groupOffset;
|
|
896
|
+
groupOffset += size;
|
|
897
|
+
return (
|
|
898
|
+
<XStack key={`otp-skel-${gi}`} gap={cellGap} alignItems="center">
|
|
899
|
+
{Array.from({ length: size }, (_, j) => skeletonCell(start + j))}
|
|
900
|
+
</XStack>
|
|
901
|
+
);
|
|
902
|
+
})}
|
|
903
|
+
</XStack>
|
|
904
|
+
) : (
|
|
905
|
+
<XStack gap={cellGap} alignItems="center">
|
|
906
|
+
{Array.from({ length }, (_, i) => skeletonCell(i))}
|
|
907
|
+
</XStack>
|
|
908
|
+
)}
|
|
761
909
|
</InputParts>
|
|
762
910
|
);
|
|
763
911
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { isWeb } from "tamagui";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* LC-71 carve-out: OTP rings the focused *cell*, inset, never the row.
|
|
5
|
+
* InputParts paints a Box composite ring (`mp-composite-ring`); that would
|
|
6
|
+
* double-paint next to the per-cell Area ring, so the Box ring is killed
|
|
7
|
+
* here and the Area keeps the ≥2px inset outline (neighbors clip an outer
|
|
8
|
+
* ring). Caret is hidden — Stripe/Apple slots use a fake bar when empty.
|
|
9
|
+
*/
|
|
10
|
+
const OTP_CELL_STYLE_ID = "mp-otp-cell-ring";
|
|
11
|
+
|
|
12
|
+
const otpCellCss = `/* LC-71 OTP carve-out: each cell Box is the perceived control (not the row).
|
|
13
|
+
InputParts already paints an inset composite ring on .mp-composite-ring;
|
|
14
|
+
do not also outline the inner Area. */
|
|
15
|
+
.mp-otp-cell {
|
|
16
|
+
position: relative;
|
|
17
|
+
}
|
|
18
|
+
.mp-otp-cell .mp-otp-area,
|
|
19
|
+
.mp-otp-cell .mp-otp-area:focus,
|
|
20
|
+
.mp-otp-cell .mp-otp-area:focus-visible,
|
|
21
|
+
.mp-otp-cell .mp-input-area,
|
|
22
|
+
.mp-otp-cell .mp-input-area:focus,
|
|
23
|
+
.mp-otp-cell .mp-input-area:focus-visible {
|
|
24
|
+
caret-color: transparent;
|
|
25
|
+
font-variant-numeric: tabular-nums;
|
|
26
|
+
font-feature-settings: "tnum" 1;
|
|
27
|
+
font-weight: 600;
|
|
28
|
+
font-size: 1.45em;
|
|
29
|
+
letter-spacing: 0.02em;
|
|
30
|
+
text-align: center;
|
|
31
|
+
outline: none !important;
|
|
32
|
+
}
|
|
33
|
+
.mp-otp-cell:focus-within:has(input:placeholder-shown)::after {
|
|
34
|
+
content: "";
|
|
35
|
+
position: absolute;
|
|
36
|
+
left: 50%;
|
|
37
|
+
top: 50%;
|
|
38
|
+
width: 2px;
|
|
39
|
+
height: 42%;
|
|
40
|
+
transform: translate(-50%, -50%);
|
|
41
|
+
background: var(--color12, var(--c-color12, CanvasText));
|
|
42
|
+
pointer-events: none;
|
|
43
|
+
border-radius: 1px;
|
|
44
|
+
animation: mp-otp-caret-blink 1.05s steps(1) infinite;
|
|
45
|
+
}
|
|
46
|
+
@keyframes mp-otp-caret-blink {
|
|
47
|
+
50% { opacity: 0; }
|
|
48
|
+
}
|
|
49
|
+
@media (prefers-reduced-motion: reduce) {
|
|
50
|
+
.mp-otp-cell:focus-within:has(input:placeholder-shown)::after {
|
|
51
|
+
animation: none;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
.mp-otp-cell.mp-otp-motion-none:focus-within:has(input:placeholder-shown)::after {
|
|
55
|
+
animation: none;
|
|
56
|
+
}`;
|
|
57
|
+
|
|
58
|
+
/** Mount OTP cell caret / tabular-num styles. Refreshes if the CSS changed (HMR). */
|
|
59
|
+
export function ensureOtpCellCss(): void {
|
|
60
|
+
if (!isWeb || typeof document === "undefined") return;
|
|
61
|
+
let tag = document.getElementById(OTP_CELL_STYLE_ID) as HTMLStyleElement | null;
|
|
62
|
+
if (!tag) {
|
|
63
|
+
tag = document.createElement("style");
|
|
64
|
+
tag.id = OTP_CELL_STYLE_ID;
|
|
65
|
+
document.head.appendChild(tag);
|
|
66
|
+
}
|
|
67
|
+
if (tag.textContent !== otpCellCss) tag.textContent = otpCellCss;
|
|
68
|
+
}
|
|
@@ -33,29 +33,70 @@ describe("PhoneInput", () => {
|
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
-
it("forgiving paste normalization:
|
|
36
|
+
it("forgiving paste normalization: international paste formats NANP", async () => {
|
|
37
37
|
const result = renderWithProviders(<PhoneInput label="Pasted Phone" name="pasted" />);
|
|
38
38
|
const input = result.container.querySelector("input") as HTMLInputElement;
|
|
39
|
-
// Simulate pasting a dotted-format number (change event carries the paste).
|
|
40
39
|
await act(async () => {
|
|
41
40
|
fireEvent.change(input, { target: { value: "+1 512.400.9021" } });
|
|
42
41
|
});
|
|
43
|
-
expect(input.value).toBe("
|
|
42
|
+
expect(input.value).toBe("(512) 400-9021");
|
|
44
43
|
|
|
45
|
-
// Vanity letters are dropped; dashes/parens/spaces are preserved.
|
|
46
44
|
await act(async () => {
|
|
47
45
|
fireEvent.change(input, { target: { value: "(800) FLO-9021" } });
|
|
48
46
|
});
|
|
49
|
-
expect(input.value).toBe("(800) -
|
|
47
|
+
expect(input.value).toBe("(800) 902-1");
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it("formats national digits as you type", async () => {
|
|
51
|
+
const onChange = vi.fn();
|
|
52
|
+
const result = renderWithProviders(
|
|
53
|
+
<PhoneInput label="Typed Phone" defaultCountry="US" onChange={onChange} />,
|
|
54
|
+
);
|
|
55
|
+
const input = result.container.querySelector("input") as HTMLInputElement;
|
|
56
|
+
await act(async () => {
|
|
57
|
+
fireEvent.change(input, { target: { value: "5125551234" } });
|
|
58
|
+
});
|
|
59
|
+
expect(input.value).toBe("(512) 555-1234");
|
|
60
|
+
expect(onChange).toHaveBeenCalledWith("+15125551234");
|
|
50
61
|
});
|
|
51
62
|
});
|
|
52
63
|
|
|
53
64
|
describe("country selection", () => {
|
|
54
|
-
it("should render default country dial code", () => {
|
|
65
|
+
it("should render default country dial code next to the flag", () => {
|
|
55
66
|
const result = renderWithProviders(<PhoneInput label="Country" name="country" />);
|
|
56
|
-
|
|
67
|
+
expect(result.container.textContent).toContain("+1");
|
|
57
68
|
const input = result.container.querySelector("input") as HTMLInputElement;
|
|
58
|
-
expect(input
|
|
69
|
+
expect(input.value).toBe("");
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it("keeps the national number when the country changes (SB-M-214)", async () => {
|
|
73
|
+
const onChange = vi.fn();
|
|
74
|
+
const result = renderWithProviders(
|
|
75
|
+
<PhoneInput label="Rebase" defaultCountry="US" onChange={onChange} />,
|
|
76
|
+
);
|
|
77
|
+
const input = result.container.querySelector("input") as HTMLInputElement;
|
|
78
|
+
await act(async () => {
|
|
79
|
+
fireEvent.change(input, { target: { value: "5125551234" } });
|
|
80
|
+
});
|
|
81
|
+
expect(onChange).toHaveBeenLastCalledWith("+15125551234");
|
|
82
|
+
|
|
83
|
+
const trigger = result.container.querySelector(
|
|
84
|
+
'[data-testid="combobox-trigger"]',
|
|
85
|
+
) as HTMLElement;
|
|
86
|
+
expect(trigger).toBeTruthy();
|
|
87
|
+
await act(async () => {
|
|
88
|
+
fireEvent.click(trigger);
|
|
89
|
+
});
|
|
90
|
+
const gb = Array.from(result.container.querySelectorAll('[role="option"]')).find((el) =>
|
|
91
|
+
el.textContent?.includes("United Kingdom"),
|
|
92
|
+
) as HTMLElement | undefined;
|
|
93
|
+
if (gb) {
|
|
94
|
+
await act(async () => {
|
|
95
|
+
fireEvent.click(gb);
|
|
96
|
+
});
|
|
97
|
+
expect(onChange).toHaveBeenLastCalledWith("+445125551234");
|
|
98
|
+
expect(input.value).not.toBe("");
|
|
99
|
+
}
|
|
59
100
|
});
|
|
60
101
|
});
|
|
61
102
|
|
|
@@ -246,6 +287,18 @@ describe("PhoneInput", () => {
|
|
|
246
287
|
expect(input).toBeDefined();
|
|
247
288
|
expect(input?.getAttribute("aria-disabled")).not.toBe("true");
|
|
248
289
|
});
|
|
290
|
+
|
|
291
|
+
it("puts the LC-71 ring on the box that includes the flag", () => {
|
|
292
|
+
const result = renderWithProviders(<PhoneInput label="Ring Phone" />);
|
|
293
|
+
const box = result.container.querySelector('[data-testid="phone-box"]');
|
|
294
|
+
expect(box?.className).toContain("mp-composite-ring");
|
|
295
|
+
expect(box?.className).toContain("mp-composite-ring-deep");
|
|
296
|
+
expect(box?.className).toContain("mp-phone-input");
|
|
297
|
+
const flag = result.container.querySelector('[data-testid="combobox-trigger"]');
|
|
298
|
+
expect(box?.contains(flag)).toBe(true);
|
|
299
|
+
const input = result.container.querySelector("input");
|
|
300
|
+
expect(box?.contains(input)).toBe(true);
|
|
301
|
+
});
|
|
249
302
|
});
|
|
250
303
|
|
|
251
304
|
describe("edge cases", () => {
|
|
@@ -101,7 +101,6 @@ export const Main: Story = {
|
|
|
101
101
|
export const Standalone: Story = {
|
|
102
102
|
args: {
|
|
103
103
|
label: "Phone Number",
|
|
104
|
-
placeholder: "Enter phone number",
|
|
105
104
|
helperText: "Include country code",
|
|
106
105
|
defaultCountry: "US",
|
|
107
106
|
},
|
|
@@ -150,7 +149,6 @@ export const Interactive: Story = {
|
|
|
150
149
|
const [value, setValue] = useState("");
|
|
151
150
|
return (
|
|
152
151
|
<YStack gap="$4" maxWidth={400}>
|
|
153
|
-
{/* @ts-expect-error controlled mode typing mismatch */}
|
|
154
152
|
<PhoneInput label="Phone Number" defaultCountry="US" value={value} onChange={setValue} />
|
|
155
153
|
<Text>Current value: {value || "Empty"}</Text>
|
|
156
154
|
</YStack>
|