@multiplatform.one/forms 6.6.0 → 7.0.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 +17 -17
- 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
|
@@ -11,14 +11,22 @@ import {
|
|
|
11
11
|
FloatingFocusManager,
|
|
12
12
|
} from "@floating-ui/react";
|
|
13
13
|
import type { AnyFormApi } from "../../types";
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
MIN_PRESS_TARGET,
|
|
16
|
+
ensureKeyboardModalityTracking,
|
|
17
|
+
keyboardFocusRingProps,
|
|
18
|
+
menuRowFrame,
|
|
19
|
+
sizeRecipeForToken,
|
|
20
|
+
useResolvedKnobs,
|
|
21
|
+
wasKeyboardFocus,
|
|
22
|
+
} from "@multiplatform.one/theme";
|
|
15
23
|
import type { LabelProps, SizeTokens } from "tamagui";
|
|
16
24
|
import { Pressable as RNPressable } from "react-native";
|
|
17
25
|
import { Paragraph, Text, View, YStack, isWeb, styled } from "tamagui";
|
|
18
26
|
import { Chip, type ChipProps } from "../../Chip";
|
|
19
27
|
import { Skeleton } from "../../Skeleton";
|
|
20
28
|
import { Field, FieldLayout, useFieldA11y, useFieldDescribedBy } from "../../fieldLayout";
|
|
21
|
-
import { Input as InputParts } from "../../InputParts";
|
|
29
|
+
import { Input as InputParts, FocusContext } from "../../InputParts";
|
|
22
30
|
import { formCommonColors, formInputColors } from "../../shared/colorRamps";
|
|
23
31
|
import { warnSelectTooFewOptions } from "../../shared/devWarn";
|
|
24
32
|
import {
|
|
@@ -28,7 +36,7 @@ import {
|
|
|
28
36
|
useFormField,
|
|
29
37
|
useResolvedValidators,
|
|
30
38
|
} from "../../shared/utils";
|
|
31
|
-
import {
|
|
39
|
+
import { ScrollArrow } from "../../shared/floatingList";
|
|
32
40
|
import {
|
|
33
41
|
FloatingPanel,
|
|
34
42
|
useFloatingPanel,
|
|
@@ -91,21 +99,35 @@ export interface SelectProps {
|
|
|
91
99
|
// same frame DropdownMenu items and MentionInput suggestions use. Listbox
|
|
92
100
|
// concerns stay local: `default` cursor, gap, and the form-input color ramp.
|
|
93
101
|
|
|
102
|
+
// LC-71: Tamagui maps `focusVisibleStyle` onto mouse/:focus, so the ring is
|
|
103
|
+
// painted from `wasKeyboardFocus()` (inset — overlay overflow clips it).
|
|
104
|
+
// LC-72 CONTAINER-CLIP: rows stay square; the panel radius cuts the corners.
|
|
105
|
+
const selectRowOutlineRest = {
|
|
106
|
+
outlineWidth: 0,
|
|
107
|
+
outlineStyle: "solid" as const,
|
|
108
|
+
outlineColor: "transparent",
|
|
109
|
+
borderRadius: 0,
|
|
110
|
+
};
|
|
111
|
+
|
|
94
112
|
const SelectRow = styled(View, {
|
|
95
113
|
name: "SelectRow",
|
|
96
114
|
...menuRowFrame,
|
|
115
|
+
...selectRowOutlineRest,
|
|
97
116
|
gap: "$2",
|
|
98
117
|
cursor: "default",
|
|
99
|
-
hoverStyle: {
|
|
100
|
-
|
|
101
|
-
|
|
118
|
+
hoverStyle: {
|
|
119
|
+
backgroundColor: formInputColors.background.focus,
|
|
120
|
+
borderRadius: 0,
|
|
121
|
+
},
|
|
122
|
+
// Do not put outlineWidth here — Tamagui maps these onto mouse :focus and
|
|
123
|
+
// they beat instance ring props. Rows paint the ring via selectItemRingProps.
|
|
102
124
|
variants: {
|
|
103
125
|
selected: {
|
|
104
|
-
true: { backgroundColor: formInputColors.background.base },
|
|
126
|
+
true: { backgroundColor: formInputColors.background.base, borderRadius: 0 },
|
|
105
127
|
false: { backgroundColor: "transparent" },
|
|
106
128
|
},
|
|
107
129
|
active: {
|
|
108
|
-
true: { backgroundColor: formInputColors.background.focus },
|
|
130
|
+
true: { backgroundColor: formInputColors.background.focus, borderRadius: 0 },
|
|
109
131
|
false: {},
|
|
110
132
|
},
|
|
111
133
|
size: {
|
|
@@ -194,6 +216,61 @@ function groupOptions(options: SelectOption[]): {
|
|
|
194
216
|
return { items, flatOptions };
|
|
195
217
|
}
|
|
196
218
|
|
|
219
|
+
/** LC-71: trigger rings on keyboard-origin only; list rows inherit that modality. */
|
|
220
|
+
function useSelectKeyboardRing() {
|
|
221
|
+
const [kbTrigger, setKbTrigger] = useState(false);
|
|
222
|
+
const [kbNav, setKbNav] = useState(false);
|
|
223
|
+
if (isWeb) ensureKeyboardModalityTracking();
|
|
224
|
+
const onTriggerFocus = useCallback(() => {
|
|
225
|
+
if (wasKeyboardFocus()) setKbTrigger(true);
|
|
226
|
+
}, []);
|
|
227
|
+
const onTriggerBlur = useCallback(() => setKbTrigger(false), []);
|
|
228
|
+
const onTriggerPointerDown = useCallback(() => {
|
|
229
|
+
setKbTrigger(false);
|
|
230
|
+
setKbNav(false);
|
|
231
|
+
}, []);
|
|
232
|
+
return {
|
|
233
|
+
kbTrigger,
|
|
234
|
+
kbNav,
|
|
235
|
+
setKbNav,
|
|
236
|
+
onTriggerFocus,
|
|
237
|
+
onTriggerBlur,
|
|
238
|
+
onTriggerPointerDown,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function selectTriggerRingProps(kbTrigger: boolean, open: boolean) {
|
|
243
|
+
if (kbTrigger && !open) {
|
|
244
|
+
return { ...keyboardFocusRingProps, "data-kb-ring": "true" as const };
|
|
245
|
+
}
|
|
246
|
+
return { ...selectRowOutlineRest, "data-kb-ring": undefined };
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
function selectItemRingProps(isActive: boolean, kbNav: boolean) {
|
|
250
|
+
if (isActive && kbNav) {
|
|
251
|
+
return {
|
|
252
|
+
...keyboardFocusRingProps,
|
|
253
|
+
"data-kb-ring": "true" as const,
|
|
254
|
+
// Inline beats Tamagui :focus/:focus-visible classes that otherwise
|
|
255
|
+
// clamp outlineWidth back to 0 (same trap as LC-71 on Tabs).
|
|
256
|
+
style: {
|
|
257
|
+
outline: "2px solid var(--outlineColor, var(--c-outlineColor, CanvasText))",
|
|
258
|
+
outlineOffset: "-2px",
|
|
259
|
+
},
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
return { ...selectRowOutlineRest, "data-kb-ring": undefined };
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/** Paints the Input.Box ring via FocusContext — keyboard-origin only (LC-71). */
|
|
266
|
+
function SyncKeyboardFocusToBox({ active }: { active: boolean }) {
|
|
267
|
+
const { setFocused } = FocusContext.useStyledContext();
|
|
268
|
+
useEffect(() => {
|
|
269
|
+
setFocused(active);
|
|
270
|
+
}, [active, setFocused]);
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
|
|
197
274
|
interface SelectItemHandlers {
|
|
198
275
|
getItemProps: any;
|
|
199
276
|
handleSelect: (index: number, event?: MouseEvent) => void;
|
|
@@ -206,6 +283,8 @@ interface SelectItemHandlers {
|
|
|
206
283
|
isTypingRef: { current: { isTyping: boolean } };
|
|
207
284
|
listItemsRef: RefObject<Array<HTMLElement | null>>;
|
|
208
285
|
multiple?: boolean;
|
|
286
|
+
kbNav: boolean;
|
|
287
|
+
setKbNav: (next: boolean) => void;
|
|
209
288
|
}
|
|
210
289
|
|
|
211
290
|
// ── Memoized option row ──────────────────────────────────────
|
|
@@ -250,6 +329,7 @@ const SelectItem = memo(function SelectItem({
|
|
|
250
329
|
} else if (isDown(event.key) || isUp(event.key)) {
|
|
251
330
|
event.preventDefault();
|
|
252
331
|
event.stopPropagation();
|
|
332
|
+
ctx.setKbNav(true);
|
|
253
333
|
if (optionCount === 0) return;
|
|
254
334
|
const nextIndex = isDown(event.key)
|
|
255
335
|
? index + 1 >= optionCount
|
|
@@ -265,6 +345,12 @@ const SelectItem = memo(function SelectItem({
|
|
|
265
345
|
onClick(event: MouseEvent) {
|
|
266
346
|
if (ctx.allowSelectRef.current) ctx.handleSelect(index, event);
|
|
267
347
|
},
|
|
348
|
+
onFocus() {
|
|
349
|
+
ctx.setKbNav(wasKeyboardFocus());
|
|
350
|
+
},
|
|
351
|
+
onPointerDown() {
|
|
352
|
+
ctx.setKbNav(false);
|
|
353
|
+
},
|
|
268
354
|
onMouseUp() {
|
|
269
355
|
if (!ctx.allowMouseUpRef.current) {
|
|
270
356
|
ctx.allowMouseUpRef.current = true;
|
|
@@ -280,6 +366,7 @@ const SelectItem = memo(function SelectItem({
|
|
|
280
366
|
});
|
|
281
367
|
},
|
|
282
368
|
})}
|
|
369
|
+
{...selectItemRingProps(Boolean(isActive), ctx.kbNav)}
|
|
283
370
|
role="option"
|
|
284
371
|
tabIndex={-1}
|
|
285
372
|
selected={isSelected}
|
|
@@ -365,6 +452,8 @@ function FloatingSelectCore({
|
|
|
365
452
|
const [open, setOpen] = useState(false);
|
|
366
453
|
const [activeIndex, setActiveIndex] = useState<number | null>(null);
|
|
367
454
|
const [controlledScrolling, setControlledScrolling] = useState(false);
|
|
455
|
+
const { kbTrigger, kbNav, setKbNav, onTriggerFocus, onTriggerBlur, onTriggerPointerDown } =
|
|
456
|
+
useSelectKeyboardRing();
|
|
368
457
|
|
|
369
458
|
const labelCacheRef = useRef<Map<string, string>>(new Map());
|
|
370
459
|
for (const o of options) labelCacheRef.current.set(o.value, o.label);
|
|
@@ -507,13 +596,19 @@ function FloatingSelectCore({
|
|
|
507
596
|
const scrollContentHeight = dropdownElement.scrollHeight;
|
|
508
597
|
const totalContentHeight = scrollContentHeight + totalBorderWidth;
|
|
509
598
|
|
|
599
|
+
// Cover-alignment (OVERLAY_ANCHOR_GAP rule): the panel's border-box top
|
|
600
|
+
// coincides with the trigger's border-box top EXACTLY, so frame, corner
|
|
601
|
+
// arc and row text all line up (panel border draws over trigger border;
|
|
602
|
+
// row content = panel.top + border + offsetTop lands on the trigger's
|
|
603
|
+
// content edge). Subtracting the border here shifted the whole panel 1px
|
|
604
|
+
// up and made the corner arcs visibly diverge from the trigger's.
|
|
510
605
|
let idealTop: number;
|
|
511
606
|
if (selectedIndex >= 0) {
|
|
512
|
-
idealTop = triggerBounds.top -
|
|
607
|
+
idealTop = triggerBounds.top - selectedItem.offsetTop;
|
|
513
608
|
} else if (panel.placement.startsWith("top")) {
|
|
514
609
|
idealTop = triggerBounds.bottom - totalContentHeight;
|
|
515
610
|
} else {
|
|
516
|
-
idealTop = triggerBounds.top -
|
|
611
|
+
idealTop = triggerBounds.top - (selectedItem.offsetTop ?? 0);
|
|
517
612
|
}
|
|
518
613
|
const idealBottom = idealTop + totalContentHeight;
|
|
519
614
|
const pinnedTop = Math.max(panelViewportPadding, idealTop);
|
|
@@ -580,7 +675,9 @@ function FloatingSelectCore({
|
|
|
580
675
|
if (!grownRef.current && !growUpOnlyRef.current && !growDownOnlyRef.current) {
|
|
581
676
|
const maxScrollTop = dropdownElement.scrollHeight - dropdownElement.clientHeight;
|
|
582
677
|
if (selectedIndex >= 0) {
|
|
583
|
-
|
|
678
|
+
// Row-over-trigger: row y (top + border + offsetTop − scroll) must
|
|
679
|
+
// land on the trigger's content edge (trigger.top + border).
|
|
680
|
+
const neededScroll = top + selectedItem.offsetTop - triggerBounds.top;
|
|
584
681
|
const clampedScrollTop = Math.max(0, Math.min(neededScroll, maxScrollTop));
|
|
585
682
|
if (Math.abs(dropdownElement.scrollTop - clampedScrollTop) > 0.5) {
|
|
586
683
|
programmaticScrollRef.current++;
|
|
@@ -758,6 +855,8 @@ function FloatingSelectCore({
|
|
|
758
855
|
isTypingRef: stateRef,
|
|
759
856
|
listItemsRef,
|
|
760
857
|
multiple,
|
|
858
|
+
kbNav,
|
|
859
|
+
setKbNav,
|
|
761
860
|
};
|
|
762
861
|
|
|
763
862
|
const referenceProps = getReferenceProps({
|
|
@@ -773,6 +872,7 @@ function FloatingSelectCore({
|
|
|
773
872
|
event.key === "k"
|
|
774
873
|
) {
|
|
775
874
|
event.preventDefault();
|
|
875
|
+
setKbNav(true);
|
|
776
876
|
setOpen(true);
|
|
777
877
|
setActiveIndex(selectedIndex >= 0 ? selectedIndex : 0);
|
|
778
878
|
}
|
|
@@ -795,9 +895,10 @@ function FloatingSelectCore({
|
|
|
795
895
|
boxEventProps["aria-autocomplete"] = "none";
|
|
796
896
|
if (id) boxEventProps.id = id;
|
|
797
897
|
if (ariaLabel) boxEventProps["aria-label"] = ariaLabel;
|
|
798
|
-
|
|
799
|
-
//
|
|
800
|
-
|
|
898
|
+
// A labelled trigger is already named: the sibling Label wires
|
|
899
|
+
// `aria-labelledby` onto this id itself, so naming it again here doubles the
|
|
900
|
+
// spoken name. Standalone triggers (no label) still need one (axe button-name).
|
|
901
|
+
else if (!(hasLabel && id) && placeholder) boxEventProps["aria-label"] = placeholder;
|
|
801
902
|
if (describedBy) boxEventProps["aria-describedby"] = describedBy;
|
|
802
903
|
|
|
803
904
|
const handleScroll = useCallback(
|
|
@@ -835,15 +936,35 @@ function FloatingSelectCore({
|
|
|
835
936
|
<>
|
|
836
937
|
<InputParts.Box
|
|
837
938
|
{...boxEventProps}
|
|
939
|
+
{...selectTriggerRingProps(kbTrigger, open)}
|
|
940
|
+
onFocus={(e: any) => {
|
|
941
|
+
boxEventProps.onFocus?.(e);
|
|
942
|
+
onTriggerFocus();
|
|
943
|
+
}}
|
|
944
|
+
// XGroup types omit capture-phase handlers; forwarded to the DOM node at
|
|
945
|
+
// runtime (same pattern as AdaptivePopup/FloatingPanel onClickCapture).
|
|
946
|
+
{...({ onFocusCapture: onTriggerFocus } as Record<string, unknown>)}
|
|
947
|
+
onBlur={(e: any) => {
|
|
948
|
+
boxEventProps.onBlur?.(e);
|
|
949
|
+
onTriggerBlur();
|
|
950
|
+
}}
|
|
951
|
+
onPointerDown={(e: any) => {
|
|
952
|
+
boxEventProps.onPointerDown?.(e);
|
|
953
|
+
onTriggerPointerDown();
|
|
954
|
+
}}
|
|
838
955
|
data-testid="select-trigger"
|
|
839
956
|
cursor="pointer"
|
|
840
957
|
disabled={disabled}
|
|
958
|
+
// One surface owner (OVERLAY_ANCHOR_GAP rule): the open listbox
|
|
959
|
+
// covers this trigger exactly, so the trigger's outer focus ring
|
|
960
|
+
// must not paint — it would ghost around the panel's corners.
|
|
961
|
+
suppressFocusRing={open}
|
|
841
962
|
size={knobProps.sizeToken}
|
|
842
963
|
// LC-54 PRESS-FLOOR: the size knob may shrink chrome (compact → $3
|
|
843
964
|
// = 36px) but the trigger's press target never drops below 44 —
|
|
844
965
|
// same minHeight floor the house Button holds. Without it a compact
|
|
845
966
|
// Select sat 36px beside 44px Inputs/Buttons in one control row.
|
|
846
|
-
minHeight={
|
|
967
|
+
minHeight={MIN_PRESS_TARGET}
|
|
847
968
|
{...(inTableCell
|
|
848
969
|
? // Chromeless in cells (the floor above still applies).
|
|
849
970
|
{}
|
|
@@ -852,7 +973,7 @@ function FloatingSelectCore({
|
|
|
852
973
|
borderWidth: knobProps.borderRadius.borderWidth,
|
|
853
974
|
})}
|
|
854
975
|
>
|
|
855
|
-
<
|
|
976
|
+
<SyncKeyboardFocusToBox active={kbTrigger && !open} />
|
|
856
977
|
<View
|
|
857
978
|
flex={1}
|
|
858
979
|
// LC-18 (UX-021): trigger inset rides the space knob so trigger text
|
|
@@ -937,10 +1058,12 @@ function FloatingSelectCore({
|
|
|
937
1058
|
if (isDown) {
|
|
938
1059
|
e.preventDefault();
|
|
939
1060
|
e.stopPropagation();
|
|
1061
|
+
setKbNav(true);
|
|
940
1062
|
setActiveIndex((prev) => (prev == null ? 0 : prev + 1 >= count ? 0 : prev + 1));
|
|
941
1063
|
} else if (isUp) {
|
|
942
1064
|
e.preventDefault();
|
|
943
1065
|
e.stopPropagation();
|
|
1066
|
+
setKbNav(true);
|
|
944
1067
|
setActiveIndex((prev) =>
|
|
945
1068
|
prev == null ? count - 1 : prev - 1 < 0 ? count - 1 : prev - 1,
|
|
946
1069
|
);
|
|
@@ -1053,6 +1176,8 @@ function NativeSelectCore({
|
|
|
1053
1176
|
const [open, setOpen] = useState(false);
|
|
1054
1177
|
const [activeIndex, setActiveIndex] = useState<number | null>(0);
|
|
1055
1178
|
const listRef = useRef<HTMLElement | null>(null);
|
|
1179
|
+
const { kbTrigger, kbNav, setKbNav, onTriggerFocus, onTriggerBlur, onTriggerPointerDown } =
|
|
1180
|
+
useSelectKeyboardRing();
|
|
1056
1181
|
|
|
1057
1182
|
const labelCacheRef = useRef<Map<string, string>>(new Map());
|
|
1058
1183
|
for (const o of options) labelCacheRef.current.set(o.value, o.label);
|
|
@@ -1122,12 +1247,14 @@ function NativeSelectCore({
|
|
|
1122
1247
|
const isUp = e.key === "ArrowUp" || e.key === "k";
|
|
1123
1248
|
if (isDown) {
|
|
1124
1249
|
e.preventDefault();
|
|
1250
|
+
setKbNav(true);
|
|
1125
1251
|
setActiveIndex((prev) => {
|
|
1126
1252
|
const next = prev == null ? 0 : prev + 1;
|
|
1127
1253
|
return next >= count ? 0 : next;
|
|
1128
1254
|
});
|
|
1129
1255
|
} else if (isUp) {
|
|
1130
1256
|
e.preventDefault();
|
|
1257
|
+
setKbNav(true);
|
|
1131
1258
|
setActiveIndex((prev) => {
|
|
1132
1259
|
const next = prev == null ? count - 1 : prev - 1;
|
|
1133
1260
|
return next < 0 ? count - 1 : next;
|
|
@@ -1141,7 +1268,7 @@ function NativeSelectCore({
|
|
|
1141
1268
|
}
|
|
1142
1269
|
}
|
|
1143
1270
|
},
|
|
1144
|
-
[options, activeIndex, handleSelect],
|
|
1271
|
+
[options, activeIndex, handleSelect, setKbNav],
|
|
1145
1272
|
);
|
|
1146
1273
|
|
|
1147
1274
|
const listContent = (
|
|
@@ -1153,7 +1280,13 @@ function NativeSelectCore({
|
|
|
1153
1280
|
// VoiceOver blob.
|
|
1154
1281
|
<View
|
|
1155
1282
|
ref={listRef as any}
|
|
1156
|
-
{...(isWeb
|
|
1283
|
+
{...(isWeb
|
|
1284
|
+
? {
|
|
1285
|
+
tabIndex: 0,
|
|
1286
|
+
onKeyDown: handleListKeyDown,
|
|
1287
|
+
onFocus: () => setKbNav(wasKeyboardFocus()),
|
|
1288
|
+
}
|
|
1289
|
+
: undefined)}
|
|
1157
1290
|
outlineStyle="none"
|
|
1158
1291
|
>
|
|
1159
1292
|
{groupLabel && (
|
|
@@ -1177,6 +1310,7 @@ function NativeSelectCore({
|
|
|
1177
1310
|
key={isWeb ? option.value : undefined}
|
|
1178
1311
|
flexDirection="row"
|
|
1179
1312
|
alignItems="center"
|
|
1313
|
+
borderRadius={0}
|
|
1180
1314
|
// LC-18 (UX-021): sheet rows ride the space knob like the floating
|
|
1181
1315
|
// menu rows — panelPadding inset + gap fragment.
|
|
1182
1316
|
{...knobProps.gap}
|
|
@@ -1184,6 +1318,8 @@ function NativeSelectCore({
|
|
|
1184
1318
|
height={knobProps.sizeToken}
|
|
1185
1319
|
onPress={isWeb ? () => handleSelect(option.value) : undefined}
|
|
1186
1320
|
onMouseEnter={() => setActiveIndex(i)}
|
|
1321
|
+
onPointerDown={isWeb ? () => setKbNav(false) : undefined}
|
|
1322
|
+
{...(isWeb ? selectItemRingProps(active, kbNav) : undefined)}
|
|
1187
1323
|
hoverStyle={
|
|
1188
1324
|
activeIndex != null
|
|
1189
1325
|
? {
|
|
@@ -1264,13 +1400,14 @@ function NativeSelectCore({
|
|
|
1264
1400
|
size={knobProps.sizeToken}
|
|
1265
1401
|
// LC-54 PRESS-FLOOR: ≥44px trigger target at every size (matches
|
|
1266
1402
|
// the web trigger branch above).
|
|
1267
|
-
minHeight={
|
|
1403
|
+
minHeight={MIN_PRESS_TARGET}
|
|
1268
1404
|
{...(inTableCell
|
|
1269
1405
|
? {}
|
|
1270
1406
|
: {
|
|
1271
1407
|
borderRadius: knobProps.borderRadius.borderRadius,
|
|
1272
1408
|
borderWidth: knobProps.borderRadius.borderWidth,
|
|
1273
1409
|
})}
|
|
1410
|
+
{...(isWeb ? selectTriggerRingProps(kbTrigger, open) : undefined)}
|
|
1274
1411
|
data-testid="select-trigger"
|
|
1275
1412
|
id={id}
|
|
1276
1413
|
// Web: the box is the combobox control (ARIA + keyboard). Native:
|
|
@@ -1285,9 +1422,10 @@ function NativeSelectCore({
|
|
|
1285
1422
|
"aria-expanded": open,
|
|
1286
1423
|
"aria-autocomplete": "none",
|
|
1287
1424
|
// Standalone (no label): fall back to placeholder so the
|
|
1288
|
-
// trigger still has a name (axe button-name)
|
|
1425
|
+
// trigger still has a name (axe button-name). Labelled: the
|
|
1426
|
+
// sibling Label wires `aria-labelledby` onto this id itself —
|
|
1427
|
+
// naming it here too doubles the spoken name.
|
|
1289
1428
|
"aria-label": ariaLabel ?? (!hasLabel ? placeholder : undefined),
|
|
1290
|
-
"aria-labelledby": !ariaLabel && hasLabel && id ? `${id}-label` : undefined,
|
|
1291
1429
|
"aria-describedby": describedBy,
|
|
1292
1430
|
tabIndex: disabled ? -1 : 0,
|
|
1293
1431
|
}
|
|
@@ -1297,16 +1435,21 @@ function NativeSelectCore({
|
|
|
1297
1435
|
// setOpen(prev => !prev) here double-toggles and the sheet never
|
|
1298
1436
|
// appears (batched true then !prev → false).
|
|
1299
1437
|
onPress={isWeb && !disabled ? () => setOpen((prev) => !prev) : undefined}
|
|
1438
|
+
onFocus={isWeb ? onTriggerFocus : undefined}
|
|
1439
|
+
onBlur={isWeb ? onTriggerBlur : undefined}
|
|
1440
|
+
onPointerDown={isWeb ? onTriggerPointerDown : undefined}
|
|
1300
1441
|
onKeyDown={(e: KeyboardEvent) => {
|
|
1301
1442
|
if (
|
|
1302
1443
|
["Enter", " ", "ArrowDown", "ArrowUp", "j", "k"].includes(e.key) ||
|
|
1303
1444
|
e.code === "Space"
|
|
1304
1445
|
) {
|
|
1305
1446
|
e.preventDefault();
|
|
1447
|
+
setKbNav(true);
|
|
1306
1448
|
if (!open) setOpen(true);
|
|
1307
1449
|
}
|
|
1308
1450
|
}}
|
|
1309
1451
|
>
|
|
1452
|
+
<SyncKeyboardFocusToBox active={kbTrigger && !open} />
|
|
1310
1453
|
<View
|
|
1311
1454
|
flex={1}
|
|
1312
1455
|
// LC-18 (UX-021): trigger inset rides the space knob (matches the
|
|
@@ -1428,7 +1571,14 @@ export function Select({
|
|
|
1428
1571
|
if (skeleton) {
|
|
1429
1572
|
return (
|
|
1430
1573
|
<InputParts size={sizeProp || knobProps.sizeToken}>
|
|
1431
|
-
{label &&
|
|
1574
|
+
{label && (
|
|
1575
|
+
<Skeleton
|
|
1576
|
+
variant="text"
|
|
1577
|
+
width="30%"
|
|
1578
|
+
// Label bone tracks the recipe type channel (LC-20 mirrors anatomy).
|
|
1579
|
+
height={sizeRecipeForToken(String(sizeProp || knobProps.sizeToken)).fontSize}
|
|
1580
|
+
/>
|
|
1581
|
+
)}
|
|
1432
1582
|
<Skeleton variant="rounded" width="100%" height={knobProps.sizeToken} />
|
|
1433
1583
|
</InputParts>
|
|
1434
1584
|
);
|
|
@@ -1,11 +1,32 @@
|
|
|
1
|
+
import { fireEvent } from "@testing-library/react";
|
|
1
2
|
import { beforeAll, describe, expect, it, vi } from "vitest";
|
|
2
3
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
3
4
|
import { Form } from "../../Form";
|
|
4
|
-
import { Signature } from "./index";
|
|
5
|
+
import { Signature, signatureValueToSvg } from "./index";
|
|
5
6
|
|
|
6
7
|
const clearIcon = <span data-testid="clear-icon" />;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
function encodeSignature(strokes: number[][][]): string {
|
|
10
|
+
const json = JSON.stringify({ v: 2, s: strokes });
|
|
11
|
+
return `data:application/json;base64,${btoa(json)}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const inkedValue = encodeSignature([
|
|
15
|
+
[
|
|
16
|
+
[0.1, 0.2, 0.5],
|
|
17
|
+
[0.4, 0.3, 0.5],
|
|
18
|
+
[0.7, 0.25, 0.5],
|
|
19
|
+
],
|
|
20
|
+
]);
|
|
21
|
+
|
|
22
|
+
function getPad(container: HTMLElement): HTMLElement {
|
|
23
|
+
const label = container.querySelector("label[for]") as HTMLLabelElement | null;
|
|
24
|
+
const id = label?.htmlFor;
|
|
25
|
+
const pad = id ? (container.querySelector(`#${CSS.escape(id)}`) as HTMLElement | null) : null;
|
|
26
|
+
if (!pad) throw new Error("signature pad not found");
|
|
27
|
+
return pad;
|
|
28
|
+
}
|
|
29
|
+
|
|
9
30
|
beforeAll(() => {
|
|
10
31
|
HTMLCanvasElement.prototype.getContext = vi.fn(() => ({
|
|
11
32
|
clearRect: vi.fn(),
|
|
@@ -46,7 +67,7 @@ describe("Signature", () => {
|
|
|
46
67
|
const result = renderWithProviders(
|
|
47
68
|
<Signature label="Loading" name="l" clearIcon={clearIcon} skeleton />,
|
|
48
69
|
);
|
|
49
|
-
expect(result.container.querySelector("
|
|
70
|
+
expect(result.container.querySelector("svg")).toBeNull();
|
|
50
71
|
});
|
|
51
72
|
|
|
52
73
|
it("renders disabled state", () => {
|
|
@@ -54,6 +75,7 @@ describe("Signature", () => {
|
|
|
54
75
|
<Signature label="Disabled" name="d" clearIcon={clearIcon} disabled />,
|
|
55
76
|
);
|
|
56
77
|
expect(result.findTextElement("Disabled")).toBeDefined();
|
|
78
|
+
expect(getPad(result.container).getAttribute("tabindex")).toBe("-1");
|
|
57
79
|
});
|
|
58
80
|
});
|
|
59
81
|
|
|
@@ -67,4 +89,101 @@ describe("Signature", () => {
|
|
|
67
89
|
expect(result.findTextElement("Signature")).toBeDefined();
|
|
68
90
|
});
|
|
69
91
|
});
|
|
92
|
+
|
|
93
|
+
describe("pad anatomy", () => {
|
|
94
|
+
it("associates the label with the pad (htmlFor resolves)", () => {
|
|
95
|
+
const result = renderWithProviders(
|
|
96
|
+
<Signature label="Your Signature" name="sig" clearIcon={clearIcon} />,
|
|
97
|
+
);
|
|
98
|
+
const pad = getPad(result.container);
|
|
99
|
+
expect(pad.getAttribute("tabindex")).toBe("0");
|
|
100
|
+
expect(result.container.textContent).toContain("X");
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("keeps an aria-label fallback when no label is given", () => {
|
|
104
|
+
const result = renderWithProviders(<Signature name="sig" clearIcon={clearIcon} />);
|
|
105
|
+
const pad = result.container.querySelector('[aria-label^="Signature"]') as HTMLElement | null;
|
|
106
|
+
expect(pad).toBeTruthy();
|
|
107
|
+
expect(pad?.getAttribute("tabindex")).toBe("0");
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
describe("LC-71 RING-ANATOMY", () => {
|
|
112
|
+
it("is a keyboard tab stop whose pointer focus paints no ring", () => {
|
|
113
|
+
const result = renderWithProviders(
|
|
114
|
+
<Signature label="Signature" name="sig" clearIcon={clearIcon} />,
|
|
115
|
+
);
|
|
116
|
+
const pad = getPad(result.container);
|
|
117
|
+
expect(pad.getAttribute("tabindex")).toBe("0");
|
|
118
|
+
|
|
119
|
+
fireEvent.pointerDown(document);
|
|
120
|
+
fireEvent.focus(pad);
|
|
121
|
+
expect(pad.getAttribute("data-keyboard-ring")).toBeNull();
|
|
122
|
+
|
|
123
|
+
const svg = result.container.querySelector("svg") as SVGSVGElement | null;
|
|
124
|
+
expect(svg).toBeTruthy();
|
|
125
|
+
expect(svg?.style.outline).toContain("none");
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
describe("clear", () => {
|
|
130
|
+
it("clears from the pad via Delete when keyboard-focused", () => {
|
|
131
|
+
const onChange = vi.fn();
|
|
132
|
+
const result = renderWithProviders(
|
|
133
|
+
<Signature
|
|
134
|
+
label="Signature"
|
|
135
|
+
name="sig"
|
|
136
|
+
value={inkedValue}
|
|
137
|
+
onChange={onChange}
|
|
138
|
+
clearIcon={clearIcon}
|
|
139
|
+
/>,
|
|
140
|
+
);
|
|
141
|
+
const pad = getPad(result.container);
|
|
142
|
+
expect(pad.getAttribute("data-signed")).toBe("true");
|
|
143
|
+
|
|
144
|
+
fireEvent.keyDown(document, { key: "Tab" });
|
|
145
|
+
fireEvent.focus(pad);
|
|
146
|
+
fireEvent.keyDown(pad, { key: "Delete" });
|
|
147
|
+
expect(onChange).toHaveBeenCalledWith("");
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it("does not recommit an in-progress stroke after Clear (SB-M-808)", () => {
|
|
151
|
+
const onChange = vi.fn();
|
|
152
|
+
const result = renderWithProviders(
|
|
153
|
+
<Signature
|
|
154
|
+
label="Signature"
|
|
155
|
+
name="sig"
|
|
156
|
+
value={inkedValue}
|
|
157
|
+
onChange={onChange}
|
|
158
|
+
clearIcon={clearIcon}
|
|
159
|
+
/>,
|
|
160
|
+
);
|
|
161
|
+
const svg = result.container.querySelector("svg") as SVGSVGElement | null;
|
|
162
|
+
expect(svg).toBeTruthy();
|
|
163
|
+
const clear = result.findTextElement("Clear");
|
|
164
|
+
expect(clear).toBeDefined();
|
|
165
|
+
|
|
166
|
+
fireEvent.pointerDown(svg!, { pointerId: 1, clientX: 20, clientY: 20, isPrimary: true });
|
|
167
|
+
fireEvent.pointerMove(svg!, { pointerId: 1, clientX: 40, clientY: 30, isPrimary: true });
|
|
168
|
+
fireEvent.click(clear as Element);
|
|
169
|
+
fireEvent.pointerUp(svg!, { pointerId: 1, clientX: 40, clientY: 30, isPrimary: true });
|
|
170
|
+
fireEvent.lostPointerCapture(svg!, { pointerId: 1 });
|
|
171
|
+
|
|
172
|
+
expect(onChange).toHaveBeenCalledWith("");
|
|
173
|
+
expect(onChange.mock.calls.at(-1)?.[0]).toBe("");
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
describe("signatureValueToSvg", () => {
|
|
179
|
+
it("returns empty for an empty value", () => {
|
|
180
|
+
expect(signatureValueToSvg("")).toBe("");
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
it("emits filled paths for v2 strokes", () => {
|
|
184
|
+
const svg = signatureValueToSvg(inkedValue, 200, 80, "#111");
|
|
185
|
+
expect(svg).toContain("<svg");
|
|
186
|
+
expect(svg).toContain("<path");
|
|
187
|
+
expect(svg).toContain('fill="#111"');
|
|
188
|
+
});
|
|
70
189
|
});
|