@multiplatform.one/forms 7.4.0 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AdaptivePopup/index.cjs +139 -20
- package/dist/cjs/AdaptivePopup/index.native.js +139 -21
- package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
- package/dist/cjs/Button/index.cjs +14 -5
- package/dist/cjs/Button/index.native.js +20 -5
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +7 -3
- package/dist/cjs/Chip/index.native.js +7 -3
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.cjs +143 -0
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +151 -0
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -0
- package/dist/cjs/ContextualSaveBar/clientKnownIdentity.cjs +37 -0
- package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js +40 -0
- package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -0
- package/dist/cjs/ContextualSaveBar/commitImmediateField.cjs +50 -0
- package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js +55 -0
- package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -0
- package/dist/cjs/ContextualSaveBar/index.cjs +301 -0
- package/dist/cjs/ContextualSaveBar/index.native.js +325 -0
- package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -0
- package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.cjs +49 -0
- package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js +55 -0
- package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -0
- package/dist/cjs/ControlGroup/index.cjs +10 -9
- package/dist/cjs/ControlGroup/index.native.js +10 -10
- package/dist/cjs/ControlGroup/index.native.js.map +1 -1
- package/dist/cjs/DescriptionList/index.cjs +416 -0
- package/dist/cjs/DescriptionList/index.native.js +441 -0
- package/dist/cjs/DescriptionList/index.native.js.map +1 -0
- package/dist/cjs/FieldDisplay/index.cjs +103 -43
- package/dist/cjs/FieldDisplay/index.native.js +107 -44
- package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
- package/dist/cjs/FieldGroup.cjs +13 -3
- package/dist/cjs/FieldGroup.native.js +13 -3
- package/dist/cjs/FieldGroup.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.cjs +32 -8
- package/dist/cjs/FloatingPanel/index.native.js +229 -46
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +26 -9
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +26 -9
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/cjs/Form/index.cjs +51 -28
- package/dist/cjs/Form/index.native.js +56 -28
- package/dist/cjs/Form/index.native.js.map +1 -1
- package/dist/cjs/FormGrid.cjs +11 -4
- package/dist/cjs/FormGrid.native.js +11 -4
- package/dist/cjs/FormGrid.native.js.map +1 -1
- package/dist/cjs/FormSection.cjs +10 -3
- package/dist/cjs/FormSection.native.js +10 -3
- package/dist/cjs/FormSection.native.js.map +1 -1
- package/dist/cjs/InputParts/index.cjs +77 -58
- package/dist/cjs/InputParts/index.native.js +77 -61
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/Label/index.cjs +1 -0
- package/dist/cjs/Label/index.native.js +1 -0
- package/dist/cjs/Label/index.native.js.map +1 -1
- package/dist/cjs/Spinner/index.cjs +1 -0
- package/dist/cjs/Spinner/index.native.js +14 -1
- package/dist/cjs/Spinner/index.native.js.map +1 -1
- package/dist/cjs/Wheel/WheelEdgeFade.cjs +30 -0
- package/dist/cjs/Wheel/WheelEdgeFade.native.js +116 -0
- package/dist/cjs/Wheel/WheelEdgeFade.native.js.map +1 -0
- package/dist/cjs/Wheel/haptic.cjs +35 -0
- package/dist/cjs/Wheel/haptic.native.js +39 -0
- package/dist/cjs/Wheel/haptic.native.js.map +1 -0
- package/dist/cjs/Wheel/index.cjs +293 -109
- package/dist/cjs/Wheel/index.native.js +311 -112
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/fieldDefaults.cjs +4 -0
- package/dist/cjs/fieldDefaults.native.js +6 -0
- package/dist/cjs/fieldDefaults.native.js.map +1 -1
- package/dist/cjs/fieldLayout.cjs +11 -7
- package/dist/cjs/fieldLayout.native.js +11 -7
- package/dist/cjs/fieldLayout.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/BarcodePreview.cjs +80 -18
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js +86 -18
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/index.cjs +8 -2
- package/dist/cjs/fields/Barcode/index.native.js +8 -2
- package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/qr.cjs +406 -0
- package/dist/cjs/fields/Barcode/qr.native.js +637 -0
- package/dist/cjs/fields/Barcode/qr.native.js.map +1 -0
- package/dist/cjs/fields/Barcode/scannerTypes.cjs +6 -1
- package/dist/cjs/fields/Barcode/scannerTypes.native.js +6 -1
- package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/Checkbox.cjs +12 -6
- package/dist/cjs/fields/Checkbox/Checkbox.native.js +14 -6
- package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxBox.cjs +18 -1
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js +21 -1
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxCard.cjs +0 -1
- package/dist/cjs/fields/Checkbox/CheckboxCard.native.js +0 -1
- package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.cjs +1 -0
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js +1 -0
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxGroup.cjs +6 -3
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +7 -4
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/index.cjs +11 -3
- package/dist/cjs/fields/Checkbox/index.native.js +11 -3
- package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/index.cjs +13 -10
- package/dist/cjs/fields/ColorPicker/index.native.js +15 -11
- package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/parts.cjs +10 -6
- package/dist/cjs/fields/ColorPicker/parts.native.js +10 -6
- package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +58 -53
- package/dist/cjs/fields/Combobox/index.native.js +69 -73
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/Calendar.cjs +12 -4
- package/dist/cjs/fields/DatePicker/Calendar.native.js +12 -4
- package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.cjs +19 -5
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +21 -5
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.cjs +22 -136
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +24 -150
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MonthPicker.cjs +2 -0
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js +4 -0
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MultiDatePicker.cjs +26 -9
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +28 -9
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/index.cjs +2 -0
- package/dist/cjs/fields/DatePicker/index.native.js +4 -0
- package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.cjs +65 -38
- package/dist/cjs/fields/DatePicker/parts.native.js +72 -38
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Duration/durationMath.cjs +93 -0
- package/dist/cjs/fields/Duration/durationMath.native.js +115 -0
- package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -0
- package/dist/cjs/fields/Duration/index.cjs +80 -111
- package/dist/cjs/fields/Duration/index.native.js +87 -118
- package/dist/cjs/fields/Duration/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/filePickerTypes.cjs +18 -0
- package/dist/cjs/fields/FileUpload/filePickerTypes.native.js +21 -0
- package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -0
- package/dist/cjs/fields/FileUpload/index.cjs +346 -154
- package/dist/cjs/fields/FileUpload/index.native.js +435 -164
- package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/nativeFilePicker.cjs +37 -0
- package/dist/cjs/fields/FileUpload/nativeFilePicker.native.js +174 -0
- package/dist/cjs/fields/FileUpload/nativeFilePicker.native.js.map +1 -0
- package/dist/cjs/fields/FileUpload/nativePickerLoader.cjs +62 -0
- package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js +65 -0
- package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -0
- package/dist/cjs/fields/Icon/drawnSet.cjs +388 -0
- package/dist/cjs/fields/Icon/drawnSet.native.js +398 -0
- package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -0
- package/dist/cjs/fields/Icon/index.cjs +380 -0
- package/dist/cjs/fields/Icon/index.native.js +398 -0
- package/dist/cjs/fields/Icon/index.native.js.map +1 -0
- package/dist/cjs/fields/ImageField/index.cjs +18 -25
- package/dist/cjs/fields/ImageField/index.native.js +18 -26
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.cjs +5 -1
- package/dist/cjs/fields/Input/index.native.js +5 -1
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.cjs +127 -57
- package/dist/cjs/fields/MentionInput/index.native.js +152 -80
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.cjs +9 -3
- package/dist/cjs/fields/OTPInput/index.native.js +9 -3
- package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.cjs +4 -2
- package/dist/cjs/fields/PhoneInput/index.native.js +4 -2
- package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Progress/index.cjs +29 -19
- package/dist/cjs/fields/Progress/index.native.js +31 -19
- package/dist/cjs/fields/Progress/index.native.js.map +1 -1
- package/dist/cjs/fields/RadioGroup/index.cjs +15 -14
- package/dist/cjs/fields/RadioGroup/index.native.js +15 -14
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/index.cjs +31 -23
- package/dist/cjs/fields/Rating/index.native.js +33 -25
- package/dist/cjs/fields/Rating/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/ratingMath.cjs +36 -0
- package/dist/cjs/fields/Rating/ratingMath.native.js +39 -0
- package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -0
- package/dist/cjs/fields/SearchInput/index.cjs +216 -151
- package/dist/cjs/fields/SearchInput/index.native.js +225 -155
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +36 -19
- package/dist/cjs/fields/Select/index.native.js +38 -25
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Signature/index.cjs +26 -18
- package/dist/cjs/fields/Signature/index.native.js +26 -18
- package/dist/cjs/fields/Signature/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +39 -11
- package/dist/cjs/fields/Slider/index.native.js +60 -14
- package/dist/cjs/fields/Slider/index.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/index.cjs +17 -7
- package/dist/cjs/fields/Stepper/index.native.js +17 -7
- package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/resolveStepperPlacement.cjs +32 -0
- package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js +35 -0
- package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -0
- package/dist/cjs/fields/Switch/index.cjs +134 -46
- package/dist/cjs/fields/Switch/index.native.js +154 -47
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TextArea/index.cjs +33 -35
- package/dist/cjs/fields/TextArea/index.native.js +33 -38
- package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/index.cjs +6 -2
- package/dist/cjs/fields/TimePicker/index.native.js +8 -2
- package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/parts.cjs +54 -495
- package/dist/cjs/fields/TimePicker/parts.native.js +59 -526
- package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/TimeRangeScrubber/geometry.cjs +288 -0
- package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js +352 -0
- package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -0
- package/dist/cjs/fields/TimeRangeScrubber/index.cjs +855 -0
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js +936 -0
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -0
- package/dist/cjs/fields/ToggleGroup/index.cjs +56 -46
- package/dist/cjs/fields/ToggleGroup/index.native.js +59 -51
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/selectedOrder.cjs +36 -0
- package/dist/cjs/fields/selectedOrder.native.js +46 -0
- package/dist/cjs/fields/selectedOrder.native.js.map +1 -0
- package/dist/cjs/index.cjs +47 -11
- package/dist/cjs/index.native.js +47 -11
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/TimeColumn.cjs +122 -80
- package/dist/cjs/shared/TimeColumn.native.js +146 -88
- package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
- package/dist/cjs/shared/colorRamps.cjs +23 -1
- package/dist/cjs/shared/colorRamps.native.js +23 -1
- package/dist/cjs/shared/colorRamps.native.js.map +1 -1
- package/dist/cjs/shared/floatingList.cjs +17 -4
- package/dist/cjs/shared/floatingList.native.js +17 -4
- package/dist/cjs/shared/floatingList.native.js.map +1 -1
- package/dist/cjs/shared/useKeyboardInset.cjs +48 -0
- package/dist/cjs/shared/useKeyboardInset.native.js +53 -0
- package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -0
- package/dist/cjs/shared/utils.cjs +79 -73
- package/dist/cjs/shared/utils.native.js +127 -75
- package/dist/cjs/shared/utils.native.js.map +1 -1
- package/dist/cjs/themedPrimitives.cjs +4 -2
- package/dist/cjs/themedPrimitives.native.js +4 -2
- package/dist/cjs/themedPrimitives.native.js.map +1 -1
- package/dist/esm/AdaptivePopup/index.mjs +138 -20
- package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
- package/dist/esm/AdaptivePopup/index.native.js +138 -21
- package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
- package/dist/esm/Button/index.mjs +14 -5
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +20 -5
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +7 -3
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +7 -3
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.mjs +118 -0
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -0
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js +123 -0
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -0
- package/dist/esm/ContextualSaveBar/clientKnownIdentity.mjs +12 -0
- package/dist/esm/ContextualSaveBar/clientKnownIdentity.mjs.map +1 -0
- package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js +12 -0
- package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -0
- package/dist/esm/ContextualSaveBar/commitImmediateField.mjs +25 -0
- package/dist/esm/ContextualSaveBar/commitImmediateField.mjs.map +1 -0
- package/dist/esm/ContextualSaveBar/commitImmediateField.native.js +27 -0
- package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -0
- package/dist/esm/ContextualSaveBar/index.mjs +274 -0
- package/dist/esm/ContextualSaveBar/index.mjs.map +1 -0
- package/dist/esm/ContextualSaveBar/index.native.js +295 -0
- package/dist/esm/ContextualSaveBar/index.native.js.map +1 -0
- package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.mjs +24 -0
- package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.mjs.map +1 -0
- package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js +27 -0
- package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -0
- package/dist/esm/ControlGroup/index.mjs +11 -10
- package/dist/esm/ControlGroup/index.mjs.map +1 -1
- package/dist/esm/ControlGroup/index.native.js +11 -11
- package/dist/esm/ControlGroup/index.native.js.map +1 -1
- package/dist/esm/DescriptionList/index.mjs +389 -0
- package/dist/esm/DescriptionList/index.mjs.map +1 -0
- package/dist/esm/DescriptionList/index.native.js +411 -0
- package/dist/esm/DescriptionList/index.native.js.map +1 -0
- package/dist/esm/ErrorSummary.native.js.map +1 -1
- package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
- package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
- package/dist/esm/FieldDisplay/index.mjs +103 -45
- package/dist/esm/FieldDisplay/index.mjs.map +1 -1
- package/dist/esm/FieldDisplay/index.native.js +107 -46
- package/dist/esm/FieldDisplay/index.native.js.map +1 -1
- package/dist/esm/FieldGroup.mjs +14 -4
- package/dist/esm/FieldGroup.mjs.map +1 -1
- package/dist/esm/FieldGroup.native.js +14 -4
- package/dist/esm/FieldGroup.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.mjs +33 -11
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +231 -48
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs +27 -11
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js +27 -11
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/Form/index.mjs +50 -29
- package/dist/esm/Form/index.mjs.map +1 -1
- package/dist/esm/Form/index.native.js +55 -29
- package/dist/esm/Form/index.native.js.map +1 -1
- package/dist/esm/Form/validateOn.native.js.map +1 -1
- package/dist/esm/FormGrid.mjs +11 -4
- package/dist/esm/FormGrid.mjs.map +1 -1
- package/dist/esm/FormGrid.native.js +11 -4
- package/dist/esm/FormGrid.native.js.map +1 -1
- package/dist/esm/FormSection.mjs +10 -3
- package/dist/esm/FormSection.mjs.map +1 -1
- package/dist/esm/FormSection.native.js +10 -3
- package/dist/esm/FormSection.native.js.map +1 -1
- package/dist/esm/InputParts/index.mjs +75 -60
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +75 -63
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Label/index.mjs +1 -0
- package/dist/esm/Label/index.mjs.map +1 -1
- package/dist/esm/Label/index.native.js +1 -0
- package/dist/esm/Label/index.native.js.map +1 -1
- package/dist/esm/Skeleton/index.native.js.map +1 -1
- package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
- package/dist/esm/Spinner/index.mjs +1 -0
- package/dist/esm/Spinner/index.mjs.map +1 -1
- package/dist/esm/Spinner/index.native.js +16 -3
- package/dist/esm/Spinner/index.native.js.map +1 -1
- package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
- package/dist/esm/Table/index.native.js.map +1 -1
- package/dist/esm/Wheel/WheelEdgeFade.mjs +5 -0
- package/dist/esm/Wheel/WheelEdgeFade.mjs.map +1 -0
- package/dist/esm/Wheel/WheelEdgeFade.native.js +88 -0
- package/dist/esm/Wheel/WheelEdgeFade.native.js.map +1 -0
- package/dist/esm/Wheel/haptic.mjs +10 -0
- package/dist/esm/Wheel/haptic.mjs.map +1 -0
- package/dist/esm/Wheel/haptic.native.js +11 -0
- package/dist/esm/Wheel/haptic.native.js.map +1 -0
- package/dist/esm/Wheel/index.mjs +294 -110
- package/dist/esm/Wheel/index.mjs.map +1 -1
- package/dist/esm/Wheel/index.native.js +312 -113
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/actionLabel.native.js.map +1 -1
- package/dist/esm/fieldDefaults.mjs +3 -1
- package/dist/esm/fieldDefaults.mjs.map +1 -1
- package/dist/esm/fieldDefaults.native.js +5 -1
- package/dist/esm/fieldDefaults.native.js.map +1 -1
- package/dist/esm/fieldLayout.mjs +12 -8
- package/dist/esm/fieldLayout.mjs.map +1 -1
- package/dist/esm/fieldLayout.native.js +12 -8
- package/dist/esm/fieldLayout.native.js.map +1 -1
- package/dist/esm/fields/Barcode/BarcodePreview.mjs +80 -19
- package/dist/esm/fields/Barcode/BarcodePreview.mjs.map +1 -1
- package/dist/esm/fields/Barcode/BarcodePreview.native.js +86 -19
- package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
- package/dist/esm/fields/Barcode/index.mjs +8 -2
- package/dist/esm/fields/Barcode/index.mjs.map +1 -1
- package/dist/esm/fields/Barcode/index.native.js +8 -2
- package/dist/esm/fields/Barcode/index.native.js.map +1 -1
- package/dist/esm/fields/Barcode/qr.mjs +379 -0
- package/dist/esm/fields/Barcode/qr.mjs.map +1 -0
- package/dist/esm/fields/Barcode/qr.native.js +607 -0
- package/dist/esm/fields/Barcode/qr.native.js.map +1 -0
- package/dist/esm/fields/Barcode/scannerTypes.mjs +6 -2
- package/dist/esm/fields/Barcode/scannerTypes.mjs.map +1 -1
- package/dist/esm/fields/Barcode/scannerTypes.native.js +6 -2
- package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.mjs +14 -8
- package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.native.js +16 -8
- package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.mjs +15 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js +18 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxCard.mjs +0 -1
- package/dist/esm/fields/Checkbox/CheckboxCard.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxCard.native.js +0 -1
- package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.mjs +1 -0
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js +1 -0
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.mjs +8 -5
- package/dist/esm/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js +9 -6
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/index.mjs +8 -4
- package/dist/esm/fields/Checkbox/index.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/index.native.js +8 -4
- package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/index.mjs +13 -10
- package/dist/esm/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/index.native.js +15 -11
- package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.mjs +8 -7
- package/dist/esm/fields/ColorPicker/parts.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.native.js +8 -7
- package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +60 -55
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +71 -75
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.mjs +12 -4
- package/dist/esm/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js +12 -4
- package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs +20 -6
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js +22 -6
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.mjs +25 -139
- package/dist/esm/fields/DatePicker/DatetimePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js +27 -153
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.mjs +2 -0
- package/dist/esm/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.native.js +4 -0
- package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs +27 -10
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js +29 -10
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/index.mjs +2 -0
- package/dist/esm/fields/DatePicker/index.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/index.native.js +4 -0
- package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +52 -26
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +59 -26
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
- package/dist/esm/fields/Duration/durationMath.mjs +64 -0
- package/dist/esm/fields/Duration/durationMath.mjs.map +1 -0
- package/dist/esm/fields/Duration/durationMath.native.js +83 -0
- package/dist/esm/fields/Duration/durationMath.native.js.map +1 -0
- package/dist/esm/fields/Duration/index.mjs +70 -102
- package/dist/esm/fields/Duration/index.mjs.map +1 -1
- package/dist/esm/fields/Duration/index.native.js +77 -109
- package/dist/esm/fields/Duration/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/filePickerTypes.mjs +2 -0
- package/dist/esm/fields/FileUpload/filePickerTypes.mjs.map +1 -0
- package/dist/esm/fields/FileUpload/filePickerTypes.native.js +2 -0
- package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -0
- package/dist/esm/fields/FileUpload/index.mjs +349 -157
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +438 -167
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/nativeFilePicker.mjs +11 -0
- package/dist/esm/fields/FileUpload/nativeFilePicker.mjs.map +1 -0
- package/dist/esm/fields/FileUpload/nativeFilePicker.native.js +143 -0
- package/dist/esm/fields/FileUpload/nativeFilePicker.native.js.map +1 -0
- package/dist/esm/fields/FileUpload/nativePickerLoader.mjs +35 -0
- package/dist/esm/fields/FileUpload/nativePickerLoader.mjs.map +1 -0
- package/dist/esm/fields/FileUpload/nativePickerLoader.native.js +35 -0
- package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -0
- package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
- package/dist/esm/fields/Icon/drawnSet.mjs +358 -0
- package/dist/esm/fields/Icon/drawnSet.mjs.map +1 -0
- package/dist/esm/fields/Icon/drawnSet.native.js +365 -0
- package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -0
- package/dist/esm/fields/Icon/index.mjs +349 -0
- package/dist/esm/fields/Icon/index.mjs.map +1 -0
- package/dist/esm/fields/Icon/index.native.js +364 -0
- package/dist/esm/fields/Icon/index.native.js.map +1 -0
- package/dist/esm/fields/ImageField/index.mjs +20 -27
- package/dist/esm/fields/ImageField/index.mjs.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js +20 -28
- package/dist/esm/fields/ImageField/index.native.js.map +1 -1
- package/dist/esm/fields/Input/index.mjs +5 -1
- package/dist/esm/fields/Input/index.mjs.map +1 -1
- package/dist/esm/fields/Input/index.native.js +5 -1
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/MentionInput/index.mjs +127 -58
- package/dist/esm/fields/MentionInput/index.mjs.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js +152 -81
- package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/index.mjs +10 -4
- package/dist/esm/fields/OTPInput/index.mjs.map +1 -1
- package/dist/esm/fields/OTPInput/index.native.js +10 -4
- package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/index.mjs +5 -3
- package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/esm/fields/PhoneInput/index.native.js +5 -3
- package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/esm/fields/Progress/index.mjs +29 -19
- package/dist/esm/fields/Progress/index.mjs.map +1 -1
- package/dist/esm/fields/Progress/index.native.js +31 -19
- package/dist/esm/fields/Progress/index.native.js.map +1 -1
- package/dist/esm/fields/RadioGroup/index.mjs +16 -15
- package/dist/esm/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/esm/fields/RadioGroup/index.native.js +16 -15
- package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/index.mjs +29 -22
- package/dist/esm/fields/Rating/index.mjs.map +1 -1
- package/dist/esm/fields/Rating/index.native.js +31 -24
- package/dist/esm/fields/Rating/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/ratingMath.mjs +11 -0
- package/dist/esm/fields/Rating/ratingMath.mjs.map +1 -0
- package/dist/esm/fields/Rating/ratingMath.native.js +11 -0
- package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -0
- package/dist/esm/fields/Rating/types.native.js.map +1 -1
- package/dist/esm/fields/SearchInput/index.mjs +220 -155
- package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
- package/dist/esm/fields/SearchInput/index.native.js +229 -159
- package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +39 -22
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +41 -28
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Signature/index.mjs +26 -18
- package/dist/esm/fields/Signature/index.mjs.map +1 -1
- package/dist/esm/fields/Signature/index.native.js +26 -18
- package/dist/esm/fields/Signature/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.mjs +40 -12
- package/dist/esm/fields/Slider/index.mjs.map +1 -1
- package/dist/esm/fields/Slider/index.native.js +61 -15
- package/dist/esm/fields/Slider/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/esm/fields/Stepper/index.mjs +17 -8
- package/dist/esm/fields/Stepper/index.mjs.map +1 -1
- package/dist/esm/fields/Stepper/index.native.js +17 -8
- package/dist/esm/fields/Stepper/index.native.js.map +1 -1
- package/dist/esm/fields/Stepper/resolveStepperPlacement.mjs +7 -0
- package/dist/esm/fields/Stepper/resolveStepperPlacement.mjs.map +1 -0
- package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js +7 -0
- package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -0
- package/dist/esm/fields/Switch/index.mjs +135 -47
- package/dist/esm/fields/Switch/index.mjs.map +1 -1
- package/dist/esm/fields/Switch/index.native.js +155 -48
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TextArea/index.mjs +34 -36
- package/dist/esm/fields/TextArea/index.mjs.map +1 -1
- package/dist/esm/fields/TextArea/index.native.js +34 -39
- package/dist/esm/fields/TextArea/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/index.mjs +7 -3
- package/dist/esm/fields/TimePicker/index.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/index.native.js +9 -3
- package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.mjs +58 -499
- package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/parts.native.js +63 -530
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/geometry.mjs +229 -0
- package/dist/esm/fields/TimeRangeScrubber/geometry.mjs.map +1 -0
- package/dist/esm/fields/TimeRangeScrubber/geometry.native.js +290 -0
- package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -0
- package/dist/esm/fields/TimeRangeScrubber/index.mjs +822 -0
- package/dist/esm/fields/TimeRangeScrubber/index.mjs.map +1 -0
- package/dist/esm/fields/TimeRangeScrubber/index.native.js +900 -0
- package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -0
- package/dist/esm/fields/ToggleGroup/index.mjs +58 -48
- package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js +61 -53
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/fields/selectedOrder.mjs +11 -0
- package/dist/esm/fields/selectedOrder.mjs.map +1 -0
- package/dist/esm/fields/selectedOrder.native.js +18 -0
- package/dist/esm/fields/selectedOrder.native.js.map +1 -0
- package/dist/esm/formSpacing.native.js.map +1 -1
- package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
- package/dist/esm/index.mjs +15 -8
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +15 -8
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/requiredMarking.native.js.map +1 -1
- package/dist/esm/shared/TimeColumn.mjs +123 -80
- package/dist/esm/shared/TimeColumn.mjs.map +1 -1
- package/dist/esm/shared/TimeColumn.native.js +147 -88
- package/dist/esm/shared/TimeColumn.native.js.map +1 -1
- package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
- package/dist/esm/shared/colorRamps.mjs +23 -2
- package/dist/esm/shared/colorRamps.mjs.map +1 -1
- package/dist/esm/shared/colorRamps.native.js +23 -2
- package/dist/esm/shared/colorRamps.native.js.map +1 -1
- package/dist/esm/shared/devWarn.native.js.map +1 -1
- package/dist/esm/shared/floatingList.mjs +18 -5
- package/dist/esm/shared/floatingList.mjs.map +1 -1
- package/dist/esm/shared/floatingList.native.js +18 -5
- package/dist/esm/shared/floatingList.native.js.map +1 -1
- package/dist/esm/shared/focusManagement.native.js.map +1 -1
- package/dist/esm/shared/groupContext.native.js.map +1 -1
- package/dist/esm/shared/i18n.native.js.map +1 -1
- package/dist/esm/shared/t.native.js.map +1 -1
- package/dist/esm/shared/tableCellContext.native.js.map +1 -1
- package/dist/esm/shared/useDragScroll.native.js.map +1 -1
- package/dist/esm/shared/useKeyboardInset.mjs +23 -0
- package/dist/esm/shared/useKeyboardInset.mjs.map +1 -0
- package/dist/esm/shared/useKeyboardInset.native.js +25 -0
- package/dist/esm/shared/useKeyboardInset.native.js.map +1 -0
- package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/esm/shared/utils.mjs +80 -74
- package/dist/esm/shared/utils.mjs.map +1 -1
- package/dist/esm/shared/utils.native.js +128 -76
- package/dist/esm/shared/utils.native.js.map +1 -1
- package/dist/esm/shared/zIndex.native.js.map +1 -1
- package/dist/esm/themedPrimitives.mjs +5 -3
- package/dist/esm/themedPrimitives.mjs.map +1 -1
- package/dist/esm/themedPrimitives.native.js +5 -3
- package/dist/esm/themedPrimitives.native.js.map +1 -1
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/utils/LinkCell.native.js.map +1 -1
- package/dist/jsx/AdaptivePopup/index.mjs +138 -20
- package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js +139 -21
- package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
- package/dist/jsx/Button/index.mjs +14 -5
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +20 -5
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +7 -3
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +7 -3
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.mjs +118 -0
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -0
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js +151 -0
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -0
- package/dist/jsx/ContextualSaveBar/clientKnownIdentity.mjs +12 -0
- package/dist/jsx/ContextualSaveBar/clientKnownIdentity.mjs.map +1 -0
- package/dist/jsx/ContextualSaveBar/clientKnownIdentity.native.js +40 -0
- package/dist/jsx/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -0
- package/dist/jsx/ContextualSaveBar/commitImmediateField.mjs +25 -0
- package/dist/jsx/ContextualSaveBar/commitImmediateField.mjs.map +1 -0
- package/dist/jsx/ContextualSaveBar/commitImmediateField.native.js +55 -0
- package/dist/jsx/ContextualSaveBar/commitImmediateField.native.js.map +1 -0
- package/dist/jsx/ContextualSaveBar/index.mjs +274 -0
- package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -0
- package/dist/jsx/ContextualSaveBar/index.native.js +325 -0
- package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -0
- package/dist/jsx/ContextualSaveBar/useUnsavedChangesGuard.mjs +24 -0
- package/dist/jsx/ContextualSaveBar/useUnsavedChangesGuard.mjs.map +1 -0
- package/dist/jsx/ContextualSaveBar/useUnsavedChangesGuard.native.js +55 -0
- package/dist/jsx/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -0
- package/dist/jsx/ControlGroup/index.mjs +11 -10
- package/dist/jsx/ControlGroup/index.mjs.map +1 -1
- package/dist/jsx/ControlGroup/index.native.js +10 -10
- package/dist/jsx/ControlGroup/index.native.js.map +1 -1
- package/dist/jsx/DescriptionList/index.mjs +389 -0
- package/dist/jsx/DescriptionList/index.mjs.map +1 -0
- package/dist/jsx/DescriptionList/index.native.js +441 -0
- package/dist/jsx/DescriptionList/index.native.js.map +1 -0
- package/dist/jsx/FieldDisplay/index.mjs +103 -45
- package/dist/jsx/FieldDisplay/index.mjs.map +1 -1
- package/dist/jsx/FieldDisplay/index.native.js +107 -44
- package/dist/jsx/FieldDisplay/index.native.js.map +1 -1
- package/dist/jsx/FieldGroup.mjs +14 -4
- package/dist/jsx/FieldGroup.mjs.map +1 -1
- package/dist/jsx/FieldGroup.native.js +13 -3
- package/dist/jsx/FieldGroup.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +33 -11
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +229 -46
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +27 -11
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +26 -9
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/jsx/Form/index.mjs +50 -29
- package/dist/jsx/Form/index.mjs.map +1 -1
- package/dist/jsx/Form/index.native.js +56 -28
- package/dist/jsx/Form/index.native.js.map +1 -1
- package/dist/jsx/FormGrid.mjs +11 -4
- package/dist/jsx/FormGrid.mjs.map +1 -1
- package/dist/jsx/FormGrid.native.js +11 -4
- package/dist/jsx/FormGrid.native.js.map +1 -1
- package/dist/jsx/FormSection.mjs +10 -3
- package/dist/jsx/FormSection.mjs.map +1 -1
- package/dist/jsx/FormSection.native.js +10 -3
- package/dist/jsx/FormSection.native.js.map +1 -1
- package/dist/jsx/InputParts/index.mjs +75 -60
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +77 -61
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/Label/index.mjs +1 -0
- package/dist/jsx/Label/index.mjs.map +1 -1
- package/dist/jsx/Label/index.native.js +1 -0
- package/dist/jsx/Label/index.native.js.map +1 -1
- package/dist/jsx/Spinner/index.mjs +1 -0
- package/dist/jsx/Spinner/index.mjs.map +1 -1
- package/dist/jsx/Spinner/index.native.js +14 -1
- package/dist/jsx/Spinner/index.native.js.map +1 -1
- package/dist/jsx/Wheel/WheelEdgeFade.mjs +5 -0
- package/dist/jsx/Wheel/WheelEdgeFade.mjs.map +1 -0
- package/dist/jsx/Wheel/WheelEdgeFade.native.js +116 -0
- package/dist/jsx/Wheel/WheelEdgeFade.native.js.map +1 -0
- package/dist/jsx/Wheel/haptic.mjs +10 -0
- package/dist/jsx/Wheel/haptic.mjs.map +1 -0
- package/dist/jsx/Wheel/haptic.native.js +39 -0
- package/dist/jsx/Wheel/haptic.native.js.map +1 -0
- package/dist/jsx/Wheel/index.mjs +294 -110
- package/dist/jsx/Wheel/index.mjs.map +1 -1
- package/dist/jsx/Wheel/index.native.js +311 -112
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/fieldDefaults.mjs +3 -1
- package/dist/jsx/fieldDefaults.mjs.map +1 -1
- package/dist/jsx/fieldDefaults.native.js +6 -0
- package/dist/jsx/fieldDefaults.native.js.map +1 -1
- package/dist/jsx/fieldLayout.mjs +12 -8
- package/dist/jsx/fieldLayout.mjs.map +1 -1
- package/dist/jsx/fieldLayout.native.js +11 -7
- package/dist/jsx/fieldLayout.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodePreview.mjs +80 -19
- package/dist/jsx/fields/Barcode/BarcodePreview.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodePreview.native.js +86 -18
- package/dist/jsx/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/index.mjs +8 -2
- package/dist/jsx/fields/Barcode/index.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/index.native.js +8 -2
- package/dist/jsx/fields/Barcode/index.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/qr.mjs +379 -0
- package/dist/jsx/fields/Barcode/qr.mjs.map +1 -0
- package/dist/jsx/fields/Barcode/qr.native.js +637 -0
- package/dist/jsx/fields/Barcode/qr.native.js.map +1 -0
- package/dist/jsx/fields/Barcode/scannerTypes.mjs +6 -2
- package/dist/jsx/fields/Barcode/scannerTypes.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/scannerTypes.native.js +6 -1
- package/dist/jsx/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.mjs +14 -8
- package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.native.js +14 -6
- package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.mjs +15 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.native.js +21 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxCard.mjs +0 -1
- package/dist/jsx/fields/Checkbox/CheckboxCard.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxCard.native.js +0 -1
- package/dist/jsx/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs +1 -0
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js +1 -0
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs +8 -5
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js +7 -4
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/index.mjs +8 -4
- package/dist/jsx/fields/Checkbox/index.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/index.native.js +11 -3
- package/dist/jsx/fields/Checkbox/index.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.mjs +13 -10
- package/dist/jsx/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.native.js +15 -11
- package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/parts.mjs +8 -7
- package/dist/jsx/fields/ColorPicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/parts.native.js +10 -6
- package/dist/jsx/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +60 -55
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +69 -73
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.mjs +12 -4
- package/dist/jsx/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.native.js +12 -4
- package/dist/jsx/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs +20 -6
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +21 -5
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.mjs +25 -139
- package/dist/jsx/fields/DatePicker/DatetimePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +24 -150
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs +2 -0
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js +4 -0
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs +27 -10
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +28 -9
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/index.mjs +2 -0
- package/dist/jsx/fields/DatePicker/index.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/index.native.js +4 -0
- package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +52 -26
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +72 -38
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Duration/durationMath.mjs +64 -0
- package/dist/jsx/fields/Duration/durationMath.mjs.map +1 -0
- package/dist/jsx/fields/Duration/durationMath.native.js +115 -0
- package/dist/jsx/fields/Duration/durationMath.native.js.map +1 -0
- package/dist/jsx/fields/Duration/index.mjs +70 -102
- package/dist/jsx/fields/Duration/index.mjs.map +1 -1
- package/dist/jsx/fields/Duration/index.native.js +87 -118
- package/dist/jsx/fields/Duration/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/filePickerTypes.mjs +2 -0
- package/dist/jsx/fields/FileUpload/filePickerTypes.mjs.map +1 -0
- package/dist/jsx/fields/FileUpload/filePickerTypes.native.js +21 -0
- package/dist/jsx/fields/FileUpload/filePickerTypes.native.js.map +1 -0
- package/dist/jsx/fields/FileUpload/index.mjs +349 -157
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +435 -164
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/nativeFilePicker.mjs +11 -0
- package/dist/jsx/fields/FileUpload/nativeFilePicker.mjs.map +1 -0
- package/dist/jsx/fields/FileUpload/nativeFilePicker.native.js +174 -0
- package/dist/jsx/fields/FileUpload/nativeFilePicker.native.js.map +1 -0
- package/dist/jsx/fields/FileUpload/nativePickerLoader.mjs +35 -0
- package/dist/jsx/fields/FileUpload/nativePickerLoader.mjs.map +1 -0
- package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js +65 -0
- package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js.map +1 -0
- package/dist/jsx/fields/Icon/drawnSet.mjs +358 -0
- package/dist/jsx/fields/Icon/drawnSet.mjs.map +1 -0
- package/dist/jsx/fields/Icon/drawnSet.native.js +398 -0
- package/dist/jsx/fields/Icon/drawnSet.native.js.map +1 -0
- package/dist/jsx/fields/Icon/index.mjs +349 -0
- package/dist/jsx/fields/Icon/index.mjs.map +1 -0
- package/dist/jsx/fields/Icon/index.native.js +398 -0
- package/dist/jsx/fields/Icon/index.native.js.map +1 -0
- package/dist/jsx/fields/ImageField/index.mjs +20 -27
- package/dist/jsx/fields/ImageField/index.mjs.map +1 -1
- package/dist/jsx/fields/ImageField/index.native.js +18 -26
- package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
- package/dist/jsx/fields/Input/index.mjs +5 -1
- package/dist/jsx/fields/Input/index.mjs.map +1 -1
- package/dist/jsx/fields/Input/index.native.js +5 -1
- package/dist/jsx/fields/Input/index.native.js.map +1 -1
- package/dist/jsx/fields/MentionInput/index.mjs +127 -58
- package/dist/jsx/fields/MentionInput/index.mjs.map +1 -1
- package/dist/jsx/fields/MentionInput/index.native.js +152 -80
- package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
- package/dist/jsx/fields/OTPInput/index.mjs +10 -4
- package/dist/jsx/fields/OTPInput/index.mjs.map +1 -1
- package/dist/jsx/fields/OTPInput/index.native.js +9 -3
- package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.mjs +5 -3
- package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.native.js +4 -2
- package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/jsx/fields/Progress/index.mjs +29 -19
- package/dist/jsx/fields/Progress/index.mjs.map +1 -1
- package/dist/jsx/fields/Progress/index.native.js +31 -19
- package/dist/jsx/fields/Progress/index.native.js.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.mjs +16 -15
- package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.native.js +15 -14
- package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/Rating/index.mjs +29 -22
- package/dist/jsx/fields/Rating/index.mjs.map +1 -1
- package/dist/jsx/fields/Rating/index.native.js +33 -25
- package/dist/jsx/fields/Rating/index.native.js.map +1 -1
- package/dist/jsx/fields/Rating/ratingMath.mjs +11 -0
- package/dist/jsx/fields/Rating/ratingMath.mjs.map +1 -0
- package/dist/jsx/fields/Rating/ratingMath.native.js +39 -0
- package/dist/jsx/fields/Rating/ratingMath.native.js.map +1 -0
- package/dist/jsx/fields/SearchInput/index.mjs +220 -155
- package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
- package/dist/jsx/fields/SearchInput/index.native.js +225 -155
- package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +39 -22
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +38 -25
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Signature/index.mjs +26 -18
- package/dist/jsx/fields/Signature/index.mjs.map +1 -1
- package/dist/jsx/fields/Signature/index.native.js +26 -18
- package/dist/jsx/fields/Signature/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/index.mjs +40 -12
- package/dist/jsx/fields/Slider/index.mjs.map +1 -1
- package/dist/jsx/fields/Slider/index.native.js +60 -14
- package/dist/jsx/fields/Slider/index.native.js.map +1 -1
- package/dist/jsx/fields/Stepper/index.mjs +17 -8
- package/dist/jsx/fields/Stepper/index.mjs.map +1 -1
- package/dist/jsx/fields/Stepper/index.native.js +17 -7
- package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
- package/dist/jsx/fields/Stepper/resolveStepperPlacement.mjs +7 -0
- package/dist/jsx/fields/Stepper/resolveStepperPlacement.mjs.map +1 -0
- package/dist/jsx/fields/Stepper/resolveStepperPlacement.native.js +35 -0
- package/dist/jsx/fields/Stepper/resolveStepperPlacement.native.js.map +1 -0
- package/dist/jsx/fields/Switch/index.mjs +135 -47
- package/dist/jsx/fields/Switch/index.mjs.map +1 -1
- package/dist/jsx/fields/Switch/index.native.js +154 -47
- package/dist/jsx/fields/Switch/index.native.js.map +1 -1
- package/dist/jsx/fields/TextArea/index.mjs +34 -36
- package/dist/jsx/fields/TextArea/index.mjs.map +1 -1
- package/dist/jsx/fields/TextArea/index.native.js +33 -38
- package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/index.mjs +7 -3
- package/dist/jsx/fields/TimePicker/index.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/index.native.js +8 -2
- package/dist/jsx/fields/TimePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.mjs +58 -499
- package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.native.js +59 -526
- package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/TimeRangeScrubber/geometry.mjs +229 -0
- package/dist/jsx/fields/TimeRangeScrubber/geometry.mjs.map +1 -0
- package/dist/jsx/fields/TimeRangeScrubber/geometry.native.js +352 -0
- package/dist/jsx/fields/TimeRangeScrubber/geometry.native.js.map +1 -0
- package/dist/jsx/fields/TimeRangeScrubber/index.mjs +822 -0
- package/dist/jsx/fields/TimeRangeScrubber/index.mjs.map +1 -0
- package/dist/jsx/fields/TimeRangeScrubber/index.native.js +936 -0
- package/dist/jsx/fields/TimeRangeScrubber/index.native.js.map +1 -0
- package/dist/jsx/fields/ToggleGroup/index.mjs +58 -48
- package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js +59 -51
- package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/selectedOrder.mjs +11 -0
- package/dist/jsx/fields/selectedOrder.mjs.map +1 -0
- package/dist/jsx/fields/selectedOrder.native.js +46 -0
- package/dist/jsx/fields/selectedOrder.native.js.map +1 -0
- package/dist/jsx/index.js +15 -8
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +15 -8
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +47 -11
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/TimeColumn.mjs +123 -80
- package/dist/jsx/shared/TimeColumn.mjs.map +1 -1
- package/dist/jsx/shared/TimeColumn.native.js +146 -88
- package/dist/jsx/shared/TimeColumn.native.js.map +1 -1
- package/dist/jsx/shared/colorRamps.mjs +23 -2
- package/dist/jsx/shared/colorRamps.mjs.map +1 -1
- package/dist/jsx/shared/colorRamps.native.js +23 -1
- package/dist/jsx/shared/colorRamps.native.js.map +1 -1
- package/dist/jsx/shared/floatingList.mjs +18 -5
- package/dist/jsx/shared/floatingList.mjs.map +1 -1
- package/dist/jsx/shared/floatingList.native.js +17 -4
- package/dist/jsx/shared/floatingList.native.js.map +1 -1
- package/dist/jsx/shared/useKeyboardInset.mjs +23 -0
- package/dist/jsx/shared/useKeyboardInset.mjs.map +1 -0
- package/dist/jsx/shared/useKeyboardInset.native.js +53 -0
- package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -0
- package/dist/jsx/shared/utils.mjs +80 -74
- package/dist/jsx/shared/utils.mjs.map +1 -1
- package/dist/jsx/shared/utils.native.js +127 -75
- package/dist/jsx/shared/utils.native.js.map +1 -1
- package/dist/jsx/themedPrimitives.mjs +5 -3
- package/dist/jsx/themedPrimitives.mjs.map +1 -1
- package/dist/jsx/themedPrimitives.native.js +4 -2
- package/dist/jsx/themedPrimitives.native.js.map +1 -1
- package/package.json +21 -7
- package/src/AdaptivePopup/AdaptivePopup.spec.tsx +213 -2
- package/src/AdaptivePopup/AdaptivePopup.stories.tsx +42 -1
- package/src/AdaptivePopup/index.tsx +162 -24
- package/src/Button/Button.density.spec.tsx +78 -0
- package/src/Button/Button.filledBorder.spec.tsx +74 -0
- package/src/Button/Button.labelInk.spec.tsx +143 -0
- package/src/Button/Button.stories.tsx +33 -15
- package/src/Button/index.tsx +31 -9
- package/src/Chip/index.tsx +7 -3
- package/src/ContextualSaveBar/ContextualSaveBar.spec.tsx +269 -0
- package/src/ContextualSaveBar/ContextualSaveBar.stories.tsx +72 -0
- package/src/ContextualSaveBar/UnsavedChangesDialog.tsx +119 -0
- package/src/ContextualSaveBar/clientKnownIdentity.ts +15 -0
- package/src/ContextualSaveBar/commitImmediateField.ts +31 -0
- package/src/ContextualSaveBar/index.tsx +327 -0
- package/src/ContextualSaveBar/useUnsavedChangesGuard.ts +38 -0
- package/src/ControlGroup/ControlGroup.spec.tsx +86 -0
- package/src/ControlGroup/index.tsx +16 -8
- package/src/DescriptionList/DescriptionList.spec.tsx +254 -0
- package/src/DescriptionList/DescriptionList.stories.tsx +244 -0
- package/src/DescriptionList/index.tsx +503 -0
- package/src/FieldDisplay/FieldDisplay.spec.tsx +8 -0
- package/src/FieldDisplay/index.tsx +150 -41
- package/src/FieldGroup.spec.tsx +63 -0
- package/src/FieldGroup.tsx +17 -4
- package/src/Fieldset.spec.tsx +39 -0
- package/src/FloatingPanel/index.native.tsx +253 -46
- package/src/FloatingPanel/index.tsx +71 -11
- package/src/FloatingPanel/panelWidthContract.spec.ts +57 -0
- package/src/FloatingPanel/useFloatingPanel.spec.tsx +127 -18
- package/src/FloatingPanel/useFloatingPanel.ts +62 -18
- package/src/Form/Form.stories.tsx +19 -0
- package/src/Form/form.spec.tsx +4 -2
- package/src/Form/index.tsx +66 -28
- package/src/FormGrid.spec.tsx +13 -1
- package/src/FormGrid.tsx +11 -4
- package/src/FormSection.tsx +14 -4
- package/src/FormsIntegration.stories.tsx +329 -344
- package/src/InputParts/InputButton.spec.tsx +60 -0
- package/src/InputParts/index.spec.tsx +41 -1
- package/src/InputParts/index.tsx +123 -60
- package/src/Label/Label.spec.tsx +8 -0
- package/src/Label/index.tsx +1 -0
- package/src/Spinner/Spinner.spec.tsx +14 -0
- package/src/Spinner/index.native.tsx +16 -3
- package/src/Spinner/index.tsx +1 -0
- package/src/Wheel/Wheel.spec.tsx +292 -0
- package/src/Wheel/WheelEdgeFade.native.tsx +67 -0
- package/src/Wheel/WheelEdgeFade.tsx +7 -0
- package/src/Wheel/haptic.ts +15 -0
- package/src/Wheel/index.tsx +389 -146
- package/src/fieldDefaults.spec.ts +7 -0
- package/src/fieldDefaults.ts +13 -0
- package/src/fieldLayout.spec.tsx +39 -0
- package/src/fieldLayout.tsx +17 -7
- package/src/fields/Barcode/Barcode.spec.tsx +30 -0
- package/src/fields/Barcode/Barcode.stories.tsx +18 -0
- package/src/fields/Barcode/BarcodePreview.spec.tsx +76 -1
- package/src/fields/Barcode/BarcodePreview.tsx +114 -20
- package/src/fields/Barcode/index.tsx +9 -1
- package/src/fields/Barcode/qr.spec.ts +332 -0
- package/src/fields/Barcode/qr.ts +590 -0
- package/src/fields/Barcode/scannerTypes.ts +12 -1
- package/src/fields/Checkbox/Checkbox.spec.tsx +101 -2
- package/src/fields/Checkbox/Checkbox.stories.tsx +23 -0
- package/src/fields/Checkbox/Checkbox.tsx +25 -6
- package/src/fields/Checkbox/CheckboxBox.tsx +33 -0
- package/src/fields/Checkbox/CheckboxCard.tsx +0 -1
- package/src/fields/Checkbox/CheckboxFieldFrame.tsx +1 -0
- package/src/fields/Checkbox/CheckboxGroup.tsx +12 -5
- package/src/fields/Checkbox/index.tsx +16 -4
- package/src/fields/ColorPicker/ColorPicker.spec.tsx +93 -2
- package/src/fields/ColorPicker/ColorPicker.stories.tsx +29 -0
- package/src/fields/ColorPicker/index.tsx +15 -19
- package/src/fields/ColorPicker/parts.tsx +13 -13
- package/src/fields/Combobox/Combobox.spec.tsx +129 -0
- package/src/fields/Combobox/Combobox.stories.tsx +46 -0
- package/src/fields/Combobox/index.tsx +139 -93
- package/src/fields/DatePicker/Calendar.spec.tsx +157 -2
- package/src/fields/DatePicker/Calendar.tsx +11 -1
- package/src/fields/DatePicker/DatePicker.stories.tsx +28 -0
- package/src/fields/DatePicker/DateRangePicker.spec.tsx +53 -0
- package/src/fields/DatePicker/DateRangePicker.stories.tsx +41 -0
- package/src/fields/DatePicker/DateRangePicker.tsx +17 -3
- package/src/fields/DatePicker/DatetimePicker.spec.tsx +17 -0
- package/src/fields/DatePicker/DatetimePicker.stories.tsx +29 -1
- package/src/fields/DatePicker/DatetimePicker.tsx +42 -147
- package/src/fields/DatePicker/MonthPicker.tsx +3 -6
- package/src/fields/DatePicker/MultiDatePicker.spec.tsx +29 -0
- package/src/fields/DatePicker/MultiDatePicker.stories.tsx +33 -0
- package/src/fields/DatePicker/MultiDatePicker.tsx +26 -2
- package/src/fields/DatePicker/index.tsx +2 -0
- package/src/fields/DatePicker/parts.tsx +79 -40
- package/src/fields/Duration/Duration.spec.tsx +135 -6
- package/src/fields/Duration/Duration.stories.tsx +30 -1
- package/src/fields/Duration/durationMath.spec.ts +67 -0
- package/src/fields/Duration/durationMath.ts +78 -0
- package/src/fields/Duration/index.tsx +89 -112
- package/src/fields/FileUpload/FileUpload.spec.tsx +320 -1
- package/src/fields/FileUpload/FileUpload.stories.tsx +71 -1
- package/src/fields/FileUpload/filePickerTypes.ts +42 -0
- package/src/fields/FileUpload/index.tsx +508 -182
- package/src/fields/FileUpload/nativeFilePicker.native.spec.ts +168 -0
- package/src/fields/FileUpload/nativeFilePicker.native.ts +150 -0
- package/src/fields/FileUpload/nativeFilePicker.ts +21 -0
- package/src/fields/FileUpload/nativePickerLoader.ts +65 -0
- package/src/fields/Geolocation/Geolocation.stories.tsx +29 -0
- package/src/fields/Icon/Icon.spec.tsx +67 -0
- package/src/fields/Icon/Icon.stories.tsx +59 -0
- package/src/fields/Icon/drawnSet.spec.ts +47 -0
- package/src/fields/Icon/drawnSet.tsx +288 -0
- package/src/fields/Icon/index.tsx +465 -0
- package/src/fields/ImageField/ImageField.spec.tsx +84 -2
- package/src/fields/ImageField/ImageField.stories.tsx +30 -1
- package/src/fields/ImageField/index.tsx +35 -31
- package/src/fields/Input/Input.copy.spec.tsx +113 -0
- package/src/fields/Input/Input.spec.tsx +57 -0
- package/src/fields/Input/Input.stories.tsx +39 -0
- package/src/fields/Input/index.tsx +10 -4
- package/src/fields/MentionInput/MentionInput.spec.tsx +140 -38
- package/src/fields/MentionInput/MentionInput.stories.tsx +39 -2
- package/src/fields/MentionInput/index.tsx +157 -81
- package/src/fields/OTPInput/OtpInput.spec.tsx +66 -3
- package/src/fields/OTPInput/OtpInput.stories.tsx +28 -0
- package/src/fields/OTPInput/index.tsx +17 -4
- package/src/fields/PhoneInput/PhoneInput.spec.tsx +109 -0
- package/src/fields/PhoneInput/PhoneInput.stories.tsx +28 -0
- package/src/fields/PhoneInput/index.tsx +4 -3
- package/src/fields/Progress/Progress.spec.tsx +132 -18
- package/src/fields/Progress/Progress.stories.tsx +32 -3
- package/src/fields/Progress/index.tsx +38 -15
- package/src/fields/RadioGroup/RadioGroup.spec.tsx +58 -0
- package/src/fields/RadioGroup/RadioGroup.stories.tsx +42 -7
- package/src/fields/RadioGroup/index.tsx +26 -18
- package/src/fields/Rating/Rating.spec.tsx +71 -1
- package/src/fields/Rating/Rating.stories.tsx +28 -0
- package/src/fields/Rating/index.tsx +39 -25
- package/src/fields/Rating/ratingMath.spec.ts +24 -0
- package/src/fields/Rating/ratingMath.ts +14 -0
- package/src/fields/SearchInput/SearchInput.spec.tsx +86 -0
- package/src/fields/SearchInput/SearchInput.stories.tsx +14 -0
- package/src/fields/SearchInput/index.tsx +255 -154
- package/src/fields/Select/Select.stories.tsx +91 -42
- package/src/fields/Select/index.tsx +62 -23
- package/src/fields/Signature/Signature.spec.tsx +70 -0
- package/src/fields/Signature/Signature.stories.tsx +29 -0
- package/src/fields/Signature/index.tsx +27 -20
- package/src/fields/Slider/Slider.spec.tsx +57 -0
- package/src/fields/Slider/Slider.stories.tsx +28 -0
- package/src/fields/Slider/index.tsx +38 -15
- package/src/fields/Stepper/Stepper.spec.tsx +8 -0
- package/src/fields/Stepper/Stepper.stories.tsx +28 -0
- package/src/fields/Stepper/index.tsx +28 -18
- package/src/fields/Stepper/resolveStepperPlacement.spec.ts +21 -0
- package/src/fields/Stepper/resolveStepperPlacement.ts +14 -0
- package/src/fields/Switch/Switch.radius.spec.tsx +114 -0
- package/src/fields/Switch/Switch.stories.tsx +23 -0
- package/src/fields/Switch/index.tsx +157 -52
- package/src/fields/TextArea/TextArea.spec.tsx +103 -0
- package/src/fields/TextArea/TextArea.stories.tsx +28 -0
- package/src/fields/TextArea/index.tsx +36 -42
- package/src/fields/TimePicker/TimePicker.spec.tsx +73 -11
- package/src/fields/TimePicker/TimePicker.stories.tsx +29 -1
- package/src/fields/TimePicker/index.tsx +8 -2
- package/src/fields/TimePicker/parts.tsx +74 -584
- package/src/fields/TimeRangeScrubber/TimeRangeScrubber.spec.tsx +483 -0
- package/src/fields/TimeRangeScrubber/TimeRangeScrubber.stories.tsx +151 -0
- package/src/fields/TimeRangeScrubber/geometry.ts +285 -0
- package/src/fields/TimeRangeScrubber/index.tsx +1049 -0
- package/src/fields/ToggleGroup/ToggleGroup.spec.tsx +118 -2
- package/src/fields/ToggleGroup/ToggleGroup.stories.tsx +41 -0
- package/src/fields/ToggleGroup/index.tsx +70 -67
- package/src/fields/selectedOrder.spec.ts +29 -0
- package/src/fields/selectedOrder.ts +26 -0
- package/src/index.ts +71 -8
- package/src/shared/TimeColumn.tsx +135 -87
- package/src/shared/TimeWheels.spec.tsx +39 -0
- package/src/shared/colorRamps.ts +35 -1
- package/src/shared/floatingList.spec.tsx +65 -0
- package/src/shared/floatingList.tsx +18 -5
- package/src/shared/useKeyboardInset.ts +43 -0
- package/src/shared/utils.spec.ts +75 -8
- package/src/shared/utils.ts +146 -71
- package/src/themedPrimitives.tsx +5 -3
- package/types/AdaptivePopup/index.d.ts +19 -1
- package/types/AdaptivePopup/index.d.ts.map +1 -1
- package/types/Button/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts +1 -1
- package/types/Chip/index.d.ts.map +1 -1
- package/types/ContextualSaveBar/UnsavedChangesDialog.d.ts +13 -0
- package/types/ContextualSaveBar/UnsavedChangesDialog.d.ts.map +1 -0
- package/types/ContextualSaveBar/clientKnownIdentity.d.ts +7 -0
- package/types/ContextualSaveBar/clientKnownIdentity.d.ts.map +1 -0
- package/types/ContextualSaveBar/commitImmediateField.d.ts +8 -0
- package/types/ContextualSaveBar/commitImmediateField.d.ts.map +1 -0
- package/types/ContextualSaveBar/index.d.ts +27 -0
- package/types/ContextualSaveBar/index.d.ts.map +1 -0
- package/types/ContextualSaveBar/useUnsavedChangesGuard.d.ts +9 -0
- package/types/ContextualSaveBar/useUnsavedChangesGuard.d.ts.map +1 -0
- package/types/ControlGroup/index.d.ts.map +1 -1
- package/types/DescriptionList/index.d.ts +69 -0
- package/types/DescriptionList/index.d.ts.map +1 -0
- package/types/FieldDisplay/index.d.ts +26 -5
- package/types/FieldDisplay/index.d.ts.map +1 -1
- package/types/FieldGroup.d.ts +2 -0
- package/types/FieldGroup.d.ts.map +1 -1
- package/types/FloatingPanel/index.d.ts +30 -5
- package/types/FloatingPanel/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts +1 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/FloatingPanel/useFloatingPanel.d.ts +30 -7
- package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
- package/types/Form/index.d.ts +19 -3
- package/types/Form/index.d.ts.map +1 -1
- package/types/FormGrid.d.ts.map +1 -1
- package/types/FormSection.d.ts +2 -2
- package/types/FormSection.d.ts.map +1 -1
- package/types/InputParts/index.d.ts +42 -12
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/Label/index.d.ts.map +1 -1
- package/types/Spinner/index.d.ts.map +1 -1
- package/types/Spinner/index.native.d.ts.map +1 -1
- package/types/Wheel/WheelEdgeFade.d.ts +8 -0
- package/types/Wheel/WheelEdgeFade.d.ts.map +1 -0
- package/types/Wheel/WheelEdgeFade.native.d.ts +8 -0
- package/types/Wheel/WheelEdgeFade.native.d.ts.map +1 -0
- package/types/Wheel/haptic.d.ts +6 -0
- package/types/Wheel/haptic.d.ts.map +1 -0
- package/types/Wheel/index.d.ts +19 -1
- package/types/Wheel/index.d.ts.map +1 -1
- package/types/fieldDefaults.d.ts +7 -0
- package/types/fieldDefaults.d.ts.map +1 -1
- package/types/fieldLayout.d.ts.map +1 -1
- package/types/fields/Barcode/BarcodePreview.d.ts +34 -10
- package/types/fields/Barcode/BarcodePreview.d.ts.map +1 -1
- package/types/fields/Barcode/index.d.ts.map +1 -1
- package/types/fields/Barcode/qr.d.ts +53 -0
- package/types/fields/Barcode/qr.d.ts.map +1 -0
- package/types/fields/Barcode/scannerTypes.d.ts +7 -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 +16 -0
- package/types/fields/Checkbox/CheckboxBox.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxCard.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxFieldFrame.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxGroup.d.ts.map +1 -1
- package/types/fields/Checkbox/index.d.ts +5 -4
- package/types/fields/Checkbox/index.d.ts.map +1 -1
- package/types/fields/ColorPicker/index.d.ts.map +1 -1
- package/types/fields/ColorPicker/parts.d.ts +9 -6
- package/types/fields/ColorPicker/parts.d.ts.map +1 -1
- package/types/fields/Combobox/index.d.ts +7 -1
- package/types/fields/Combobox/index.d.ts.map +1 -1
- package/types/fields/DatePicker/Calendar.d.ts.map +1 -1
- package/types/fields/DatePicker/DateRangePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/MonthPicker.d.ts.map +1 -1
- package/types/fields/DatePicker/MultiDatePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/index.d.ts.map +1 -1
- package/types/fields/DatePicker/parts.d.ts +15 -3
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/Duration/durationMath.d.ts +17 -0
- package/types/fields/Duration/durationMath.d.ts.map +1 -0
- package/types/fields/Duration/index.d.ts +3 -11
- package/types/fields/Duration/index.d.ts.map +1 -1
- package/types/fields/FileUpload/filePickerTypes.d.ts +39 -0
- package/types/fields/FileUpload/filePickerTypes.d.ts.map +1 -0
- package/types/fields/FileUpload/index.d.ts +38 -0
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/FileUpload/nativeFilePicker.d.ts +10 -0
- package/types/fields/FileUpload/nativeFilePicker.d.ts.map +1 -0
- package/types/fields/FileUpload/nativeFilePicker.native.d.ts +23 -0
- package/types/fields/FileUpload/nativeFilePicker.native.d.ts.map +1 -0
- package/types/fields/FileUpload/nativePickerLoader.d.ts +15 -0
- package/types/fields/FileUpload/nativePickerLoader.d.ts.map +1 -0
- package/types/fields/Icon/drawnSet.d.ts +17 -0
- package/types/fields/Icon/drawnSet.d.ts.map +1 -0
- package/types/fields/Icon/index.d.ts +20 -0
- package/types/fields/Icon/index.d.ts.map +1 -0
- package/types/fields/ImageField/index.d.ts +5 -0
- package/types/fields/ImageField/index.d.ts.map +1 -1
- package/types/fields/Input/index.d.ts +11 -11
- package/types/fields/Input/index.d.ts.map +1 -1
- package/types/fields/MentionInput/index.d.ts +11 -4
- package/types/fields/MentionInput/index.d.ts.map +1 -1
- package/types/fields/OTPInput/index.d.ts.map +1 -1
- package/types/fields/PhoneInput/index.d.ts.map +1 -1
- package/types/fields/Progress/index.d.ts +9 -2
- package/types/fields/Progress/index.d.ts.map +1 -1
- package/types/fields/RadioGroup/index.d.ts +5 -2
- package/types/fields/RadioGroup/index.d.ts.map +1 -1
- package/types/fields/Rating/index.d.ts +1 -0
- package/types/fields/Rating/index.d.ts.map +1 -1
- package/types/fields/Rating/ratingMath.d.ts +7 -0
- package/types/fields/Rating/ratingMath.d.ts.map +1 -0
- package/types/fields/SearchInput/index.d.ts +15 -3
- package/types/fields/SearchInput/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts +7 -1
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/Signature/index.d.ts +3 -3
- package/types/fields/Signature/index.d.ts.map +1 -1
- package/types/fields/Slider/index.d.ts.map +1 -1
- package/types/fields/Stepper/index.d.ts +4 -4
- package/types/fields/Stepper/index.d.ts.map +1 -1
- package/types/fields/Stepper/resolveStepperPlacement.d.ts +7 -0
- package/types/fields/Stepper/resolveStepperPlacement.d.ts.map +1 -0
- package/types/fields/Switch/index.d.ts.map +1 -1
- package/types/fields/TextArea/index.d.ts +3 -1
- package/types/fields/TextArea/index.d.ts.map +1 -1
- package/types/fields/TimePicker/index.d.ts.map +1 -1
- package/types/fields/TimePicker/parts.d.ts +5 -13
- package/types/fields/TimePicker/parts.d.ts.map +1 -1
- package/types/fields/TimeRangeScrubber/geometry.d.ts +87 -0
- package/types/fields/TimeRangeScrubber/geometry.d.ts.map +1 -0
- package/types/fields/TimeRangeScrubber/index.d.ts +51 -0
- package/types/fields/TimeRangeScrubber/index.d.ts.map +1 -0
- package/types/fields/ToggleGroup/index.d.ts.map +1 -1
- package/types/fields/selectedOrder.d.ts +15 -0
- package/types/fields/selectedOrder.d.ts.map +1 -0
- package/types/index.d.ts +26 -13
- package/types/index.d.ts.map +1 -1
- package/types/shared/TimeColumn.d.ts +15 -13
- package/types/shared/TimeColumn.d.ts.map +1 -1
- package/types/shared/colorRamps.d.ts +28 -1
- package/types/shared/colorRamps.d.ts.map +1 -1
- package/types/shared/floatingList.d.ts.map +1 -1
- package/types/shared/useKeyboardInset.d.ts +16 -0
- package/types/shared/useKeyboardInset.d.ts.map +1 -0
- package/types/shared/utils.d.ts +36 -6
- package/types/shared/utils.d.ts.map +1 -1
- package/types/themedPrimitives.d.ts +1 -1
- package/types/themedPrimitives.d.ts.map +1 -1
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import type { Validator } from "../../types";
|
|
2
2
|
|
|
3
3
|
import type { DeepKeys, DeepValue } from "@tanstack/form-core";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
useCallback,
|
|
6
|
+
useEffect,
|
|
7
|
+
useLayoutEffect,
|
|
8
|
+
useMemo,
|
|
9
|
+
useRef,
|
|
10
|
+
useState,
|
|
11
|
+
type ReactNode,
|
|
12
|
+
} from "react";
|
|
5
13
|
import { useProps, type GetProps, type SizeTokens } from "tamagui";
|
|
6
14
|
import { Avatar, Text, XStack, YStack, isWeb, styled } from "tamagui";
|
|
7
15
|
import { useDismiss, useInteractions } from "@floating-ui/react";
|
|
@@ -16,7 +24,7 @@ import { ScrollArrow } from "../../shared/floatingList";
|
|
|
16
24
|
import { Skeleton } from "../../Skeleton";
|
|
17
25
|
import { zIndex } from "../../shared/zIndex";
|
|
18
26
|
import { useFloatingPanel, panelTransition } from "../../FloatingPanel";
|
|
19
|
-
import { Field } from "../../fieldLayout";
|
|
27
|
+
import { Field, FieldLayout } from "../../fieldLayout";
|
|
20
28
|
import {
|
|
21
29
|
getFieldError,
|
|
22
30
|
getFieldHeight,
|
|
@@ -27,7 +35,6 @@ import {
|
|
|
27
35
|
import type { FormFieldProps } from "../../fieldLayout";
|
|
28
36
|
import { t } from "../../shared/t";
|
|
29
37
|
import type { FieldComponentProps } from "../../types";
|
|
30
|
-
import { Input as InputParts } from "../../InputParts";
|
|
31
38
|
import { TextArea } from "../TextArea";
|
|
32
39
|
|
|
33
40
|
export interface MentionItem {
|
|
@@ -60,6 +67,45 @@ export interface MentionValue {
|
|
|
60
67
|
mentions: MentionData[];
|
|
61
68
|
}
|
|
62
69
|
|
|
70
|
+
/** Normalize string / object / empty seeds into the field value (LC-14). */
|
|
71
|
+
export function parseMentionValue(raw: unknown): MentionValue {
|
|
72
|
+
if (typeof raw === "string") return { text: raw, mentions: [] };
|
|
73
|
+
if (raw && typeof raw === "object" && !Array.isArray(raw)) {
|
|
74
|
+
const o = raw as { text?: unknown; mentions?: unknown };
|
|
75
|
+
return {
|
|
76
|
+
text: typeof o.text === "string" ? o.text : "",
|
|
77
|
+
mentions: Array.isArray(o.mentions) ? (o.mentions as MentionData[]) : [],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return { text: "", mentions: [] };
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function mentionValuesEqual(a: MentionValue, b: MentionValue): boolean {
|
|
84
|
+
return a.text === b.text && JSON.stringify(a.mentions) === JSON.stringify(b.mentions);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function MentionFieldSync({
|
|
88
|
+
fieldValue,
|
|
89
|
+
current,
|
|
90
|
+
disabled,
|
|
91
|
+
onAdopt,
|
|
92
|
+
children,
|
|
93
|
+
}: {
|
|
94
|
+
fieldValue: unknown;
|
|
95
|
+
current: MentionValue;
|
|
96
|
+
disabled: boolean;
|
|
97
|
+
onAdopt: (next: MentionValue) => void;
|
|
98
|
+
children: ReactNode;
|
|
99
|
+
}) {
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
if (disabled || fieldValue === undefined) return;
|
|
102
|
+
const next = parseMentionValue(fieldValue);
|
|
103
|
+
if (mentionValuesEqual(next, current)) return;
|
|
104
|
+
onAdopt(next);
|
|
105
|
+
}, [fieldValue, disabled]);
|
|
106
|
+
return children;
|
|
107
|
+
}
|
|
108
|
+
|
|
63
109
|
export type MentionInputProps<
|
|
64
110
|
TParentData = any,
|
|
65
111
|
TName extends DeepKeys<TParentData> = any,
|
|
@@ -86,12 +132,17 @@ export type MentionInputProps<
|
|
|
86
132
|
autoResize?: boolean;
|
|
87
133
|
onMentionSelect?: (mention: MentionItem, trigger: string) => void;
|
|
88
134
|
/**
|
|
89
|
-
* Canonical change handler
|
|
90
|
-
*
|
|
135
|
+
* Canonical change handler. Fires the field value `{ text, mentions }` on
|
|
136
|
+
* every user edit (LC-14). String seeds still parse via {@link parseMentionValue}.
|
|
91
137
|
*/
|
|
92
|
-
onChange?: (
|
|
93
|
-
/** @deprecated Use `onChange` instead. */
|
|
138
|
+
onChange?: (value: MentionValue) => void;
|
|
139
|
+
/** @deprecated Use `onChange` instead. Fires the raw text from the same emit. */
|
|
94
140
|
onTextChange?: (text: string) => void;
|
|
141
|
+
/**
|
|
142
|
+
* Controlled value. String or {@link MentionValue}. A value arriving after
|
|
143
|
+
* mount must display without emitting onChange (create-mode seeding).
|
|
144
|
+
*/
|
|
145
|
+
value?: string | MentionValue;
|
|
95
146
|
textAreaProps?: Record<string, any>;
|
|
96
147
|
/** When true, renders a skeleton placeholder instead of the mention input */
|
|
97
148
|
skeleton?: boolean;
|
|
@@ -131,9 +182,8 @@ const MentionSuggestionItem = styled(XStack, {
|
|
|
131
182
|
} as const,
|
|
132
183
|
});
|
|
133
184
|
|
|
134
|
-
// LC-08
|
|
135
|
-
|
|
136
|
-
const MEDIA_SLOT = 28;
|
|
185
|
+
// LC-08 fallback if nestedControl is missing. Live rows use nestedControl.px (LC-73).
|
|
186
|
+
const MEDIA_SLOT_FALLBACK = 32;
|
|
137
187
|
|
|
138
188
|
const SLUG_ID = /^[A-Za-z][\w.-]*$/;
|
|
139
189
|
|
|
@@ -218,6 +268,7 @@ export function MentionInput<
|
|
|
218
268
|
skeleton,
|
|
219
269
|
compact,
|
|
220
270
|
id: idProp,
|
|
271
|
+
value: valueProp,
|
|
221
272
|
} = useProps(props);
|
|
222
273
|
|
|
223
274
|
const { resolvedForm, knobProps, id } = useFormField({ form, id: idProp, compact });
|
|
@@ -228,8 +279,9 @@ export function MentionInput<
|
|
|
228
279
|
const minRows = Math.max(1, Math.round(minHeight / 20));
|
|
229
280
|
const maxRows = Math.max(minRows, Math.round(maxHeight / 20));
|
|
230
281
|
|
|
231
|
-
const
|
|
232
|
-
const [
|
|
282
|
+
const initialValue = parseMentionValue(valueProp !== undefined ? valueProp : defaultValue);
|
|
283
|
+
const [text, setText] = useState(initialValue.text);
|
|
284
|
+
const [mentionList, setMentionList] = useState<MentionData[]>(initialValue.mentions);
|
|
233
285
|
const [showSuggestions, setShowSuggestions] = useState(false);
|
|
234
286
|
const [currentTrigger, setCurrentTrigger] = useState<string | null>(null);
|
|
235
287
|
const [searchQuery, setSearchQuery] = useState("");
|
|
@@ -244,6 +296,30 @@ export function MentionInput<
|
|
|
244
296
|
const prevQueryRef = useRef("");
|
|
245
297
|
const blurTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
246
298
|
const fieldRef = useRef<{ handleChange: (value: any) => void } | null>(null);
|
|
299
|
+
const isControlled = valueProp !== undefined;
|
|
300
|
+
const displayed = isControlled ? parseMentionValue(valueProp) : { text, mentions: mentionList };
|
|
301
|
+
const mediaSlot = knobProps.nestedControl.px ?? MEDIA_SLOT_FALLBACK;
|
|
302
|
+
|
|
303
|
+
const adoptValue = useCallback((next: MentionValue) => {
|
|
304
|
+
setText(next.text);
|
|
305
|
+
setMentionList(next.mentions);
|
|
306
|
+
}, []);
|
|
307
|
+
|
|
308
|
+
const emit = useCallback(
|
|
309
|
+
(next: MentionValue) => {
|
|
310
|
+
if (!isControlled) adoptValue(next);
|
|
311
|
+
onChange?.(next);
|
|
312
|
+
onTextChange?.(next.text);
|
|
313
|
+
fieldRef.current?.handleChange(next);
|
|
314
|
+
},
|
|
315
|
+
[adoptValue, isControlled, onChange, onTextChange],
|
|
316
|
+
);
|
|
317
|
+
|
|
318
|
+
useEffect(() => {
|
|
319
|
+
if (valueProp === undefined) return;
|
|
320
|
+
const next = parseMentionValue(valueProp);
|
|
321
|
+
adoptValue(next);
|
|
322
|
+
}, [valueProp, adoptValue]);
|
|
247
323
|
|
|
248
324
|
const triggerMap = useMemo(() => {
|
|
249
325
|
const map = new Map<string, MentionConfig>();
|
|
@@ -323,10 +399,6 @@ export function MentionInput<
|
|
|
323
399
|
});
|
|
324
400
|
const { getFloatingProps } = useInteractions([dismiss]);
|
|
325
401
|
|
|
326
|
-
useEffect(() => {
|
|
327
|
-
fieldRef.current?.handleChange({ text, mentions: mentionList } as any);
|
|
328
|
-
}, [text, mentionList]);
|
|
329
|
-
|
|
330
402
|
useEffect(() => {
|
|
331
403
|
return () => {
|
|
332
404
|
if (blurTimeoutRef.current) clearTimeout(blurTimeoutRef.current);
|
|
@@ -380,7 +452,7 @@ export function MentionInput<
|
|
|
380
452
|
|
|
381
453
|
const handleTextChange = useCallback(
|
|
382
454
|
(newText: string) => {
|
|
383
|
-
const oldText = text;
|
|
455
|
+
const oldText = displayed.text;
|
|
384
456
|
const lengthDiff = newText.length - oldText.length;
|
|
385
457
|
// On web the RN onSelectionChange callback never fires, so read the
|
|
386
458
|
// caret straight off the DOM textarea (already updated by input time)
|
|
@@ -392,28 +464,24 @@ export function MentionInput<
|
|
|
392
464
|
const editPosition =
|
|
393
465
|
domCaret !== null ? Math.max(0, domCaret - Math.max(0, lengthDiff)) : prevCursorRef.current;
|
|
394
466
|
|
|
467
|
+
let nextMentions = displayed.mentions;
|
|
395
468
|
if (lengthDiff !== 0) {
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
.
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
return actualText === expectedText;
|
|
410
|
-
}
|
|
411
|
-
return false;
|
|
412
|
-
}),
|
|
413
|
-
);
|
|
469
|
+
nextMentions = displayed.mentions
|
|
470
|
+
.map((m) => ({ ...m }))
|
|
471
|
+
.filter((mention) => {
|
|
472
|
+
const mentionEnd = mention.position + mention.length;
|
|
473
|
+
if (editPosition >= mentionEnd) return true;
|
|
474
|
+
if (editPosition <= mention.position) {
|
|
475
|
+
mention.position += lengthDiff;
|
|
476
|
+
const expectedText = `${mention.type}${mention.display}`;
|
|
477
|
+
const actualText = newText.slice(mention.position, mention.position + mention.length);
|
|
478
|
+
return actualText === expectedText;
|
|
479
|
+
}
|
|
480
|
+
return false;
|
|
481
|
+
});
|
|
414
482
|
}
|
|
415
483
|
|
|
416
|
-
|
|
484
|
+
emit({ text: newText, mentions: nextMentions });
|
|
417
485
|
const estimatedCursor =
|
|
418
486
|
domCaret !== null
|
|
419
487
|
? domCaret
|
|
@@ -421,11 +489,8 @@ export function MentionInput<
|
|
|
421
489
|
prevCursorRef.current = estimatedCursor;
|
|
422
490
|
setCursorPosition(estimatedCursor);
|
|
423
491
|
updateTriggerState(newText, estimatedCursor);
|
|
424
|
-
// Canonical `onChange` and the alias `onTextChange` both fire (single emit).
|
|
425
|
-
onChange?.(newText);
|
|
426
|
-
onTextChange?.(newText);
|
|
427
492
|
},
|
|
428
|
-
[
|
|
493
|
+
[displayed, emit, updateTriggerState, getWebTextAreaElement],
|
|
429
494
|
);
|
|
430
495
|
|
|
431
496
|
const handleSelectionChange = useCallback(
|
|
@@ -434,10 +499,10 @@ export function MentionInput<
|
|
|
434
499
|
if (selection) {
|
|
435
500
|
prevCursorRef.current = selection.start;
|
|
436
501
|
setCursorPosition(selection.start);
|
|
437
|
-
updateTriggerState(text, selection.start);
|
|
502
|
+
updateTriggerState(displayed.text, selection.start);
|
|
438
503
|
}
|
|
439
504
|
},
|
|
440
|
-
[text, updateTriggerState],
|
|
505
|
+
[displayed.text, updateTriggerState],
|
|
441
506
|
);
|
|
442
507
|
|
|
443
508
|
// Web caret tracking: the DOM `select` event fires on every caret move
|
|
@@ -454,12 +519,12 @@ export function MentionInput<
|
|
|
454
519
|
const insertMention = useCallback(
|
|
455
520
|
(item: MentionItem) => {
|
|
456
521
|
if (!currentTrigger) return;
|
|
457
|
-
const triggerInfo = checkForTrigger(text, cursorPosition);
|
|
522
|
+
const triggerInfo = checkForTrigger(displayed.text, cursorPosition);
|
|
458
523
|
if (!triggerInfo) return;
|
|
459
524
|
|
|
460
525
|
const { wordStart } = triggerInfo;
|
|
461
|
-
const beforeMention = text.slice(0, wordStart);
|
|
462
|
-
const afterMention = text.slice(cursorPosition);
|
|
526
|
+
const beforeMention = displayed.text.slice(0, wordStart);
|
|
527
|
+
const afterMention = displayed.text.slice(cursorPosition);
|
|
463
528
|
const mentionText = `${currentTrigger}${item.display}`;
|
|
464
529
|
const config = triggerMap.get(currentTrigger);
|
|
465
530
|
const insertSpace = config?.insertSpace !== false;
|
|
@@ -468,7 +533,7 @@ export function MentionInput<
|
|
|
468
533
|
const oldLength = cursorPosition - wordStart;
|
|
469
534
|
const positionDiff = insertedLength - oldLength;
|
|
470
535
|
|
|
471
|
-
const adjustedMentions =
|
|
536
|
+
const adjustedMentions = displayed.mentions.map((m) =>
|
|
472
537
|
m.position > wordStart ? { ...m, position: m.position + positionDiff } : m,
|
|
473
538
|
);
|
|
474
539
|
|
|
@@ -481,16 +546,13 @@ export function MentionInput<
|
|
|
481
546
|
};
|
|
482
547
|
|
|
483
548
|
const newCursorPos = wordStart + mentionText.length + (insertSpace ? 1 : 0);
|
|
484
|
-
|
|
485
|
-
setMentionList([...adjustedMentions, newMention]);
|
|
549
|
+
emit({ text: newText, mentions: [...adjustedMentions, newMention] });
|
|
486
550
|
setCursorPosition(newCursorPos);
|
|
487
551
|
prevCursorRef.current = newCursorPos;
|
|
488
552
|
setShowSuggestions(false);
|
|
489
553
|
setCurrentTrigger(null);
|
|
490
554
|
prevQueryRef.current = "";
|
|
491
555
|
onMentionSelect?.(item, currentTrigger);
|
|
492
|
-
onChange?.(newText);
|
|
493
|
-
onTextChange?.(newText);
|
|
494
556
|
setTimeout(() => {
|
|
495
557
|
const el = getWebTextAreaElement();
|
|
496
558
|
if (el) {
|
|
@@ -502,38 +564,32 @@ export function MentionInput<
|
|
|
502
564
|
}, 0);
|
|
503
565
|
},
|
|
504
566
|
[
|
|
505
|
-
|
|
567
|
+
displayed,
|
|
506
568
|
cursorPosition,
|
|
507
569
|
currentTrigger,
|
|
508
570
|
checkForTrigger,
|
|
509
571
|
triggerMap,
|
|
510
|
-
mentionList,
|
|
511
572
|
onMentionSelect,
|
|
512
|
-
|
|
513
|
-
onTextChange,
|
|
573
|
+
emit,
|
|
514
574
|
getWebTextAreaElement,
|
|
515
575
|
],
|
|
516
576
|
);
|
|
517
577
|
|
|
518
578
|
const removeMention = useCallback(
|
|
519
579
|
(mention: MentionData) => {
|
|
520
|
-
const before = text.slice(0, mention.position);
|
|
521
|
-
const after = text.slice(mention.position + mention.length);
|
|
580
|
+
const before = displayed.text.slice(0, mention.position);
|
|
581
|
+
const after = displayed.text.slice(mention.position + mention.length);
|
|
522
582
|
const newText = before + after;
|
|
523
583
|
const removedLen = mention.length;
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
),
|
|
531
|
-
);
|
|
584
|
+
const nextMentions = displayed.mentions
|
|
585
|
+
.filter((m) => !(m.position === mention.position && m.id === mention.id))
|
|
586
|
+
.map((m) =>
|
|
587
|
+
m.position > mention.position ? { ...m, position: m.position - removedLen } : m,
|
|
588
|
+
);
|
|
589
|
+
emit({ text: newText, mentions: nextMentions });
|
|
532
590
|
const newCursor = mention.position;
|
|
533
591
|
setCursorPosition(newCursor);
|
|
534
592
|
prevCursorRef.current = newCursor;
|
|
535
|
-
onChange?.(newText);
|
|
536
|
-
onTextChange?.(newText);
|
|
537
593
|
updateTriggerState(newText, newCursor);
|
|
538
594
|
setTimeout(() => {
|
|
539
595
|
const el = getWebTextAreaElement();
|
|
@@ -543,7 +599,7 @@ export function MentionInput<
|
|
|
543
599
|
}
|
|
544
600
|
}, 0);
|
|
545
601
|
},
|
|
546
|
-
[
|
|
602
|
+
[displayed, emit, updateTriggerState, getWebTextAreaElement],
|
|
547
603
|
);
|
|
548
604
|
|
|
549
605
|
const handleKeyDown = useCallback(
|
|
@@ -557,7 +613,7 @@ export function MentionInput<
|
|
|
557
613
|
|
|
558
614
|
// Slack: Backspace/Delete at a mention token eats the whole token.
|
|
559
615
|
if (key === "Backspace" || key === "Delete") {
|
|
560
|
-
const mention = mentionForDelete(
|
|
616
|
+
const mention = mentionForDelete(displayed.mentions, caret, key);
|
|
561
617
|
if (mention) {
|
|
562
618
|
event.preventDefault?.();
|
|
563
619
|
removeMention(mention);
|
|
@@ -605,7 +661,7 @@ export function MentionInput<
|
|
|
605
661
|
suggestions,
|
|
606
662
|
selectedIndex,
|
|
607
663
|
insertMention,
|
|
608
|
-
|
|
664
|
+
displayed,
|
|
609
665
|
cursorPosition,
|
|
610
666
|
removeMention,
|
|
611
667
|
getWebTextAreaElement,
|
|
@@ -687,10 +743,10 @@ export function MentionInput<
|
|
|
687
743
|
mirror.style.padding = style.padding;
|
|
688
744
|
mirror.style.border = style.border;
|
|
689
745
|
mirror.style.boxSizing = style.boxSizing;
|
|
690
|
-
mirror.textContent = text.slice(0, cursorPosition);
|
|
746
|
+
mirror.textContent = displayed.text.slice(0, cursorPosition);
|
|
691
747
|
|
|
692
748
|
const marker = document.createElement("span");
|
|
693
|
-
marker.textContent = text[cursorPosition] || zeroWidthSpace;
|
|
749
|
+
marker.textContent = displayed.text[cursorPosition] || zeroWidthSpace;
|
|
694
750
|
mirror.appendChild(marker);
|
|
695
751
|
document.body.appendChild(mirror);
|
|
696
752
|
|
|
@@ -712,7 +768,7 @@ export function MentionInput<
|
|
|
712
768
|
} finally {
|
|
713
769
|
document.body.removeChild(mirror);
|
|
714
770
|
}
|
|
715
|
-
}, [getWebTextAreaElement, text, cursorPosition]);
|
|
771
|
+
}, [getWebTextAreaElement, displayed.text, cursorPosition]);
|
|
716
772
|
|
|
717
773
|
useEffect(() => {
|
|
718
774
|
const el = getWebTextAreaElement();
|
|
@@ -724,7 +780,7 @@ export function MentionInput<
|
|
|
724
780
|
const rect = getCaretClientRect();
|
|
725
781
|
panel.refs.setReference({ getBoundingClientRect: () => rect });
|
|
726
782
|
panel.update();
|
|
727
|
-
}, [triggerActive, cursorPosition, text]);
|
|
783
|
+
}, [triggerActive, cursorPosition, displayed.text]);
|
|
728
784
|
|
|
729
785
|
const suggestionListId = `${id}-suggestions`;
|
|
730
786
|
const selectedOptionId =
|
|
@@ -800,13 +856,14 @@ export function MentionInput<
|
|
|
800
856
|
so the text columns share one left edge. */}
|
|
801
857
|
{suggestionsHaveMedia && (
|
|
802
858
|
<YStack
|
|
803
|
-
width={
|
|
804
|
-
height={
|
|
859
|
+
width={mediaSlot}
|
|
860
|
+
height={mediaSlot}
|
|
805
861
|
alignItems="center"
|
|
806
862
|
justifyContent="center"
|
|
807
863
|
flexShrink={0}
|
|
864
|
+
data-media-slot={mediaSlot}
|
|
808
865
|
>
|
|
809
|
-
<Avatar size=
|
|
866
|
+
<Avatar size={mediaSlot} circular>
|
|
810
867
|
{item.avatar ? <Avatar.Image src={item.avatar} /> : null}
|
|
811
868
|
<Avatar.Fallback
|
|
812
869
|
backgroundColor={formInputColors.background.focus}
|
|
@@ -870,6 +927,7 @@ export function MentionInput<
|
|
|
870
927
|
helperText={helperText}
|
|
871
928
|
required={required}
|
|
872
929
|
size={size}
|
|
930
|
+
compact={compact}
|
|
873
931
|
onBlur={(...args: any[]) => {
|
|
874
932
|
handleBlurInternal(...args);
|
|
875
933
|
if (fieldBlurHandler) {
|
|
@@ -878,7 +936,7 @@ export function MentionInput<
|
|
|
878
936
|
onBlur?.(...args);
|
|
879
937
|
}
|
|
880
938
|
}}
|
|
881
|
-
value={text}
|
|
939
|
+
value={displayed.text}
|
|
882
940
|
onChangeText={handleTextChange}
|
|
883
941
|
placeholder={placeholder}
|
|
884
942
|
autoResize={autoResize}
|
|
@@ -902,10 +960,19 @@ export function MentionInput<
|
|
|
902
960
|
// Render skeleton placeholder (after all hooks)
|
|
903
961
|
if (skeleton) {
|
|
904
962
|
return (
|
|
905
|
-
<
|
|
906
|
-
|
|
963
|
+
<FieldLayout
|
|
964
|
+
id={id}
|
|
965
|
+
label={label}
|
|
966
|
+
labelProps={labelProps}
|
|
967
|
+
error={errorProp}
|
|
968
|
+
helperText={helperText}
|
|
969
|
+
required={required}
|
|
970
|
+
size={size}
|
|
971
|
+
knobProps={knobProps}
|
|
972
|
+
disabled={disabled}
|
|
973
|
+
>
|
|
907
974
|
<Skeleton variant="rounded" width="100%" height={minHeight} />
|
|
908
|
-
</
|
|
975
|
+
</FieldLayout>
|
|
909
976
|
);
|
|
910
977
|
}
|
|
911
978
|
|
|
@@ -931,7 +998,16 @@ export function MentionInput<
|
|
|
931
998
|
{(field) => {
|
|
932
999
|
fieldRef.current = { handleChange: field.handleChange };
|
|
933
1000
|
const resolvedError = getFieldError(field, errorProp);
|
|
934
|
-
return
|
|
1001
|
+
return (
|
|
1002
|
+
<MentionFieldSync
|
|
1003
|
+
fieldValue={field.state.value}
|
|
1004
|
+
current={{ text, mentions: mentionList }}
|
|
1005
|
+
disabled={isControlled}
|
|
1006
|
+
onAdopt={adoptValue}
|
|
1007
|
+
>
|
|
1008
|
+
{mentionTextArea(resolvedError, mergeFieldHandler(field, "handleBlur", onBlur))}
|
|
1009
|
+
</MentionFieldSync>
|
|
1010
|
+
);
|
|
935
1011
|
}}
|
|
936
1012
|
</Field>
|
|
937
1013
|
{floatingDropdown}
|
|
@@ -2,8 +2,10 @@ import { useForm } from "@tanstack/react-form";
|
|
|
2
2
|
import { act, fireEvent, waitFor } from "@testing-library/react";
|
|
3
3
|
import { describe, expect, it, vi } from "vitest";
|
|
4
4
|
import { TestProviders, renderWithProviders } from "@multiplatform.one/test-utils";
|
|
5
|
+
import { Preset, resolveRadiusClass, type BorderRadius } from "@multiplatform.one/theme";
|
|
5
6
|
import { Form } from "../../Form";
|
|
6
7
|
import { Button } from "../../Button";
|
|
8
|
+
import { getFieldHeight } from "../../shared/utils";
|
|
7
9
|
import { OTPInput, extractOtpCode } from "./index";
|
|
8
10
|
|
|
9
11
|
describe("OTPInput", () => {
|
|
@@ -638,9 +640,7 @@ describe("OTPInput", () => {
|
|
|
638
640
|
const inputs = result.container.querySelectorAll("input") as NodeListOf<HTMLInputElement>;
|
|
639
641
|
const clipboardData = {
|
|
640
642
|
getData: (type?: string) =>
|
|
641
|
-
type === "text" || type === "text/plain" || !type
|
|
642
|
-
? "Your Apple ID code is 482193."
|
|
643
|
-
: "",
|
|
643
|
+
type === "text" || type === "text/plain" || !type ? "Your Apple ID code is 482193." : "",
|
|
644
644
|
};
|
|
645
645
|
|
|
646
646
|
await act(async () => {
|
|
@@ -665,4 +665,67 @@ describe("OTPInput", () => {
|
|
|
665
665
|
expect(filled.container.querySelector('[aria-label="Clear"]')).toBeTruthy();
|
|
666
666
|
});
|
|
667
667
|
});
|
|
668
|
+
|
|
669
|
+
describe("CIRCULAR-AT-FULL radius (DG-RAD-02)", () => {
|
|
670
|
+
const RADIUS_STOPS = [
|
|
671
|
+
"none",
|
|
672
|
+
"small",
|
|
673
|
+
"medium",
|
|
674
|
+
"large",
|
|
675
|
+
"full",
|
|
676
|
+
] as const satisfies readonly BorderRadius[];
|
|
677
|
+
const TOKEN_SCALE = { none: 0, small: 5, medium: 9, large: 16 } as const;
|
|
678
|
+
|
|
679
|
+
function paintedRadiusPx(el: Element): number {
|
|
680
|
+
const inline = (el as HTMLElement).style.borderRadius;
|
|
681
|
+
if (inline) return Number.parseFloat(inline) || 0;
|
|
682
|
+
const atom = String((el as HTMLElement).className || "")
|
|
683
|
+
.split(/\s+/)
|
|
684
|
+
.find((c) => c.startsWith("_btlr-") || /^_br\d/.test(c) || c.startsWith("_br-"));
|
|
685
|
+
if (atom) {
|
|
686
|
+
const px = atom.match(/(\d+(?:\.\d+)?)px$/);
|
|
687
|
+
if (px) return Number.parseFloat(px[1]);
|
|
688
|
+
const token = atom.match(/t-radius-(\d+)$/);
|
|
689
|
+
if (token) {
|
|
690
|
+
const tokenPx: Record<string, number> = {
|
|
691
|
+
"0": 0,
|
|
692
|
+
"2": 5,
|
|
693
|
+
"4": 9,
|
|
694
|
+
"6": 16,
|
|
695
|
+
"12": 50,
|
|
696
|
+
};
|
|
697
|
+
const n = tokenPx[token[1]];
|
|
698
|
+
if (n !== undefined) return n;
|
|
699
|
+
}
|
|
700
|
+
if (atom.endsWith("-0") || atom === "_btlr-0") return 0;
|
|
701
|
+
}
|
|
702
|
+
const computed = getComputedStyle(el).borderTopLeftRadius;
|
|
703
|
+
if (computed && computed !== "") {
|
|
704
|
+
const n = Number.parseFloat(computed);
|
|
705
|
+
if (!Number.isNaN(n)) return n;
|
|
706
|
+
}
|
|
707
|
+
return Number.NaN;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
it("cell measures height/2 at full and 0 at none, riding the token scale between", () => {
|
|
711
|
+
const heightPx = getFieldHeight("$4");
|
|
712
|
+
for (const stop of RADIUS_STOPS) {
|
|
713
|
+
const result = renderWithProviders(
|
|
714
|
+
<Preset overrides={{ borderRadius: stop }}>
|
|
715
|
+
<OTPInput name="otp" />
|
|
716
|
+
</Preset>,
|
|
717
|
+
);
|
|
718
|
+
const cell = result.container.querySelector(
|
|
719
|
+
'[data-otp-part="cell"], .mp-otp-cell',
|
|
720
|
+
) as HTMLElement | null;
|
|
721
|
+
expect(cell, `missing OTP cell @ ${stop}`).toBeTruthy();
|
|
722
|
+
const expected = stop === "full" ? heightPx / 2 : TOKEN_SCALE[stop];
|
|
723
|
+
expect(
|
|
724
|
+
resolveRadiusClass("CIRCULAR-AT-FULL", stop, { heightPx }),
|
|
725
|
+
`resolver @ ${stop}`,
|
|
726
|
+
).toBe(expected);
|
|
727
|
+
expect(paintedRadiusPx(cell as HTMLElement), `cell @ ${stop}`).toBe(expected);
|
|
728
|
+
}
|
|
729
|
+
});
|
|
730
|
+
});
|
|
668
731
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
2
|
import { action } from "@multiplatform.one/storybook";
|
|
3
|
+
import { DataTable, type DataTableColumn } from "@multiplatform.one/table";
|
|
3
4
|
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
4
5
|
import { useForm } from "@tanstack/react-form";
|
|
5
6
|
import { Text, YStack } from "tamagui";
|
|
@@ -209,3 +210,30 @@ export const AutoSubmit: Story = {
|
|
|
209
210
|
export const SkeletonState: Story = {
|
|
210
211
|
args: { label: "Verification Code", skeleton: true },
|
|
211
212
|
};
|
|
213
|
+
|
|
214
|
+
type InTableRow = { id: string; label: string; value: string };
|
|
215
|
+
|
|
216
|
+
export const InTable: Story = {
|
|
217
|
+
name: "In table",
|
|
218
|
+
render: () => {
|
|
219
|
+
const [data, setData] = useState<InTableRow[]>([
|
|
220
|
+
{ id: "1", label: "Alpha", value: "482193" },
|
|
221
|
+
{ id: "2", label: "Beta", value: "000000" },
|
|
222
|
+
{ id: "3", label: "Gamma", value: "" },
|
|
223
|
+
]);
|
|
224
|
+
const columns: DataTableColumn<InTableRow>[] = [
|
|
225
|
+
{ accessorKey: "label", header: "Row" },
|
|
226
|
+
{
|
|
227
|
+
accessorKey: "value",
|
|
228
|
+
header: "OTP",
|
|
229
|
+
field: "otp",
|
|
230
|
+
fieldProps: { otpLength: 6 },
|
|
231
|
+
},
|
|
232
|
+
];
|
|
233
|
+
return (
|
|
234
|
+
<YStack width="100%" height={280}>
|
|
235
|
+
<DataTable data={data} columns={columns} enablePagination={false} onDataChange={setData} />
|
|
236
|
+
</YStack>
|
|
237
|
+
);
|
|
238
|
+
},
|
|
239
|
+
};
|
|
@@ -14,11 +14,12 @@ import {
|
|
|
14
14
|
useRef,
|
|
15
15
|
useState,
|
|
16
16
|
} from "react";
|
|
17
|
-
import { useProps, type TamaguiElement } from "tamagui";
|
|
17
|
+
import { useProps, type SizeTokens, type TamaguiElement } from "tamagui";
|
|
18
18
|
import { Input, Text, XStack, isWeb, useDidFinishSSR } from "tamagui";
|
|
19
19
|
import { Button } from "../../Button";
|
|
20
20
|
import { Field, FieldLayout } from "../../fieldLayout";
|
|
21
21
|
import {
|
|
22
|
+
getFieldHeight,
|
|
22
23
|
getOTPCellRadius,
|
|
23
24
|
mergeFieldHandler,
|
|
24
25
|
useFormField,
|
|
@@ -131,6 +132,11 @@ function digitFontSize(cellSize: string | number | undefined): string {
|
|
|
131
132
|
return "$6";
|
|
132
133
|
}
|
|
133
134
|
|
|
135
|
+
function otpCellHeightPx(cellSize: string | number | undefined): number {
|
|
136
|
+
if (typeof cellSize === "number" && Number.isFinite(cellSize) && cellSize > 0) return cellSize;
|
|
137
|
+
return getFieldHeight((cellSize ?? "$4") as SizeTokens);
|
|
138
|
+
}
|
|
139
|
+
|
|
134
140
|
/**
|
|
135
141
|
* Digit cells own their focus ring (DG-A11Y-01): the ring must be CSS-driven
|
|
136
142
|
* on the focused input itself — Input.Box's state-driven ring paints on the
|
|
@@ -218,7 +224,10 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
218
224
|
}
|
|
219
225
|
}, [autoFocus, didFinishSSR, inputRef]);
|
|
220
226
|
|
|
221
|
-
const cellRadius = getOTPCellRadius(
|
|
227
|
+
const cellRadius = getOTPCellRadius(
|
|
228
|
+
knobProps.borderRadius.borderRadius,
|
|
229
|
+
otpCellHeightPx(cellSize),
|
|
230
|
+
);
|
|
222
231
|
const isNumeric = type === "numeric";
|
|
223
232
|
const cellBorder = hasError
|
|
224
233
|
? formCommonColors.error
|
|
@@ -239,6 +248,7 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
239
248
|
flexShrink={0}
|
|
240
249
|
flexBasis="auto"
|
|
241
250
|
borderRadius={cellRadius}
|
|
251
|
+
data-otp-part="cell"
|
|
242
252
|
justifyContent="center"
|
|
243
253
|
alignItems="center"
|
|
244
254
|
// Apple / Stripe slots are flat squares — Input.Box elevation would
|
|
@@ -256,7 +266,7 @@ const OTPDigitInput = memo(function OTPDigitInput({
|
|
|
256
266
|
? {
|
|
257
267
|
tabIndex: -1,
|
|
258
268
|
className: knobProps.transition ? "mp-otp-cell" : "mp-otp-cell mp-otp-motion-none",
|
|
259
|
-
style: { boxShadow: "none" },
|
|
269
|
+
style: { boxShadow: "none", borderRadius: cellRadius },
|
|
260
270
|
}
|
|
261
271
|
: {})}
|
|
262
272
|
>
|
|
@@ -869,7 +879,10 @@ export function OTPInput<
|
|
|
869
879
|
// label MUST be a deterministic px width — never % inside this auto-width
|
|
870
880
|
// stack. Cell size + radius match live OTPDigitInput (getOTPCellRadius).
|
|
871
881
|
const cellSize = fieldProps.size || knobProps.sizeToken;
|
|
872
|
-
const cellRadius = getOTPCellRadius(
|
|
882
|
+
const cellRadius = getOTPCellRadius(
|
|
883
|
+
knobProps.borderRadius.borderRadius,
|
|
884
|
+
otpCellHeightPx(cellSize),
|
|
885
|
+
);
|
|
873
886
|
const cellGap = knobProps.gap.gap;
|
|
874
887
|
const groups = otpGroupSizes(length, separator);
|
|
875
888
|
const groupGap = "$8";
|