@multiplatform.one/forms 7.4.1 → 7.6.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 +20 -15
- package/dist/cjs/Button/index.native.js +26 -15
- 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 +142 -0
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +150 -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 +104 -43
- package/dist/cjs/FieldDisplay/index.native.js +115 -45
- 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 +40 -9
- 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 +139 -58
- package/dist/cjs/InputParts/index.native.js +146 -64
- 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 +86 -18
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js +92 -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 +72 -64
- package/dist/cjs/fields/Combobox/index.native.js +85 -84
- 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 +356 -156
- package/dist/cjs/fields/FileUpload/index.native.js +454 -166
- 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 +381 -0
- package/dist/cjs/fields/Icon/index.native.js +399 -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 +175 -91
- package/dist/cjs/fields/Input/index.native.js +88 -5
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.cjs +133 -58
- package/dist/cjs/fields/MentionInput/index.native.js +158 -81
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.cjs +15 -4
- package/dist/cjs/fields/OTPInput/index.native.js +15 -4
- 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 +5 -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 +69 -73
- package/dist/cjs/shared/utils.native.js +119 -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 +20 -14
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +26 -14
- 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 +117 -0
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -0
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js +122 -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/FieldDisplay/index.mjs +104 -45
- package/dist/esm/FieldDisplay/index.mjs.map +1 -1
- package/dist/esm/FieldDisplay/index.native.js +115 -47
- 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 +41 -12
- 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/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 +137 -60
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +144 -66
- 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/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/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/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 +86 -19
- package/dist/esm/fields/Barcode/BarcodePreview.mjs.map +1 -1
- package/dist/esm/fields/Barcode/BarcodePreview.native.js +92 -19
- package/dist/esm/fields/Barcode/BarcodePreview.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/index.mjs +74 -66
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +87 -86
- 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/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/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 +359 -159
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +457 -169
- 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/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 +350 -0
- package/dist/esm/fields/Icon/index.mjs.map +1 -0
- package/dist/esm/fields/Icon/index.native.js +365 -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 +177 -94
- package/dist/esm/fields/Input/index.mjs.map +1 -1
- package/dist/esm/fields/Input/index.native.js +90 -8
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/MentionInput/index.mjs +133 -59
- package/dist/esm/fields/MentionInput/index.mjs.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js +158 -82
- package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/index.mjs +16 -6
- package/dist/esm/fields/OTPInput/index.mjs.map +1 -1
- package/dist/esm/fields/OTPInput/index.native.js +16 -6
- package/dist/esm/fields/OTPInput/index.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 +6 -3
- package/dist/esm/fields/PhoneInput/index.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/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/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/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/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/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/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/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/utils.mjs +70 -74
- package/dist/esm/shared/utils.mjs.map +1 -1
- package/dist/esm/shared/utils.native.js +120 -76
- package/dist/esm/shared/utils.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/jsx/AdaptivePopup/index.mjs +138 -20
- package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js +140 -22
- package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
- package/dist/jsx/Button/index.mjs +20 -14
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +27 -16
- 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 +117 -0
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -0
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js +150 -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 +11 -11
- 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/ErrorSummary.native.js.map +1 -1
- package/dist/jsx/FieldDisplay/editMode.native.js.map +1 -1
- package/dist/jsx/FieldDisplay/formatters.native.js.map +1 -1
- package/dist/jsx/FieldDisplay/index.mjs +104 -45
- package/dist/jsx/FieldDisplay/index.mjs.map +1 -1
- package/dist/jsx/FieldDisplay/index.native.js +116 -46
- 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 +41 -12
- 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/Form/validateOn.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 +137 -60
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +146 -64
- 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/Skeleton/index.native.js.map +1 -1
- package/dist/jsx/Spinner/SpinnerGlyph.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/Spinner/spinnerSize.native.js.map +1 -1
- package/dist/jsx/Table/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/actionLabel.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 +86 -19
- package/dist/jsx/fields/Barcode/BarcodePreview.mjs.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodePreview.native.js +92 -18
- package/dist/jsx/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodeScanner.native.js +1 -1
- package/dist/jsx/fields/Barcode/code128.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 +10 -4
- 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 +15 -7
- 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 +8 -5
- 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 +18 -14
- 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 +12 -8
- package/dist/jsx/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +74 -66
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +90 -89
- 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 +23 -7
- 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 +27 -153
- 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 +6 -2
- 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 +30 -11
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/fieldValueSync.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 +6 -2
- 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 +74 -40
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/utils.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 +90 -121
- 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 +359 -159
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +456 -168
- 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/Geolocation/expoMapsLoader.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/index.native.js +5 -5
- package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/mapMath.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/mapTypes.native.js.map +1 -1
- 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 +350 -0
- package/dist/jsx/fields/Icon/index.mjs.map +1 -0
- package/dist/jsx/fields/Icon/index.native.js +399 -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 +20 -28
- package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
- package/dist/jsx/fields/Input/index.mjs +177 -94
- package/dist/jsx/fields/Input/index.mjs.map +1 -1
- package/dist/jsx/fields/Input/index.native.js +90 -7
- package/dist/jsx/fields/Input/index.native.js.map +1 -1
- package/dist/jsx/fields/MentionInput/index.mjs +133 -59
- package/dist/jsx/fields/MentionInput/index.mjs.map +1 -1
- package/dist/jsx/fields/MentionInput/index.native.js +161 -84
- package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
- package/dist/jsx/fields/OTPInput/index.mjs +16 -6
- package/dist/jsx/fields/OTPInput/index.mjs.map +1 -1
- package/dist/jsx/fields/OTPInput/index.native.js +18 -7
- package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
- package/dist/jsx/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/dialCodes.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 +8 -5
- package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/phone.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 +32 -20
- 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 +16 -15
- 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 +34 -26
- 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/Rating/types.native.js.map +1 -1
- 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 +226 -156
- 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 +42 -29
- 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 +28 -20
- 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 +61 -15
- package/dist/jsx/fields/Slider/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/jumpMotion.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 +19 -9
- 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 +155 -48
- 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 +35 -40
- 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 +11 -5
- 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 +60 -527
- 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 +60 -52
- 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/formSpacing.native.js.map +1 -1
- package/dist/jsx/hooks/useFocusManagement.native.js.map +1 -1
- 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 +84 -48
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/requiredMarking.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/capabilityPreflight.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/devWarn.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 +18 -5
- package/dist/jsx/shared/floatingList.native.js.map +1 -1
- package/dist/jsx/shared/focusManagement.native.js.map +1 -1
- package/dist/jsx/shared/groupContext.native.js.map +1 -1
- package/dist/jsx/shared/i18n.native.js.map +1 -1
- package/dist/jsx/shared/t.native.js.map +1 -1
- package/dist/jsx/shared/tableCellContext.native.js.map +1 -1
- package/dist/jsx/shared/useDragScroll.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/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/jsx/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/jsx/shared/utils.mjs +70 -74
- package/dist/jsx/shared/utils.mjs.map +1 -1
- package/dist/jsx/shared/utils.native.js +120 -76
- package/dist/jsx/shared/utils.native.js.map +1 -1
- package/dist/jsx/shared/zIndex.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/dist/jsx/types.native.js.map +1 -1
- package/dist/jsx/utils/LinkCell.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 +164 -0
- package/src/Button/Button.filledBorder.spec.tsx +74 -0
- package/src/Button/Button.labelInk.spec.tsx +196 -0
- package/src/Button/Button.lc71.spec.tsx +10 -3
- package/src/Button/Button.stories.tsx +40 -21
- package/src/Button/index.tsx +52 -20
- 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 +118 -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 +17 -0
- package/src/FieldDisplay/index.tsx +155 -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 +93 -12
- package/src/FloatingPanel/panelWidthContract.spec.ts +58 -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 +221 -61
- 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 +210 -1
- package/src/fields/Barcode/BarcodePreview.tsx +147 -21
- 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 +193 -1
- package/src/fields/Combobox/Combobox.stories.tsx +46 -0
- package/src/fields/Combobox/index.tsx +161 -104
- 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 +348 -1
- package/src/fields/FileUpload/FileUpload.stories.tsx +71 -1
- package/src/fields/FileUpload/filePickerTypes.ts +42 -0
- package/src/fields/FileUpload/index.tsx +533 -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 +466 -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 +189 -84
- package/src/fields/MentionInput/MentionInput.spec.tsx +140 -38
- package/src/fields/MentionInput/MentionInput.stories.tsx +39 -2
- package/src/fields/MentionInput/index.tsx +166 -82
- package/src/fields/OTPInput/OtpInput.spec.tsx +99 -4
- package/src/fields/OTPInput/OtpInput.stories.tsx +28 -0
- package/src/fields/OTPInput/index.tsx +33 -5
- package/src/fields/OTPInput/otpCellHeightTouch.spec.ts +44 -0
- package/src/fields/PhoneInput/PhoneInput.spec.tsx +109 -0
- package/src/fields/PhoneInput/PhoneInput.stories.tsx +28 -0
- package/src/fields/PhoneInput/index.tsx +5 -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 +257 -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 +122 -9
- package/src/shared/utils.ts +161 -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 +8 -3
- 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 +51 -17
- 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 +46 -11
- 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 +29 -17
- 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 +12 -0
- 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 +7 -4
- 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 +1 -1
- 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
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { useResolvedKnobs, warnCancelDisabled } from "@multiplatform.one/theme";
|
|
2
|
+
import { useStore } from "@tanstack/react-store";
|
|
3
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import { AnimatePresence, Text, XStack, isWeb } from "tamagui";
|
|
5
|
+
import { Button } from "../Button/index.mjs";
|
|
6
|
+
import { collectFormFieldErrors } from "../ErrorSummary.mjs";
|
|
7
|
+
import { useFormContext } from "../Form/index.mjs";
|
|
8
|
+
import { Spinner } from "../Spinner/index.mjs";
|
|
9
|
+
import { formCommonColors } from "../shared/colorRamps.mjs";
|
|
10
|
+
import { t } from "../shared/t.mjs";
|
|
11
|
+
import { getElevationWrapperProps } from "../shared/utils.mjs";
|
|
12
|
+
import { zIndex } from "../shared/zIndex.mjs";
|
|
13
|
+
import { UnsavedChangesDialog } from "./UnsavedChangesDialog.mjs";
|
|
14
|
+
import { useUnsavedChangesGuard } from "./useUnsavedChangesGuard.mjs";
|
|
15
|
+
import { clientKnownIdentity } from "./clientKnownIdentity.mjs";
|
|
16
|
+
import { commitImmediateField } from "./commitImmediateField.mjs";
|
|
17
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
+
function dirtyCount(fieldMeta) {
|
|
19
|
+
return Object.values(fieldMeta).filter(meta => meta?.isDirty).length;
|
|
20
|
+
}
|
|
21
|
+
function fieldErrorCount(fieldMeta) {
|
|
22
|
+
return collectFormFieldErrors(fieldMeta).length;
|
|
23
|
+
}
|
|
24
|
+
function useSaveBarSnapshot() {
|
|
25
|
+
const form = useFormContext();
|
|
26
|
+
return useStore(form.store, state => ({
|
|
27
|
+
isDirty: Boolean(state.isDirty),
|
|
28
|
+
isSubmitting: Boolean(state.isSubmitting),
|
|
29
|
+
fieldMeta: state.fieldMeta ?? {},
|
|
30
|
+
submissionAttempts: state.submissionAttempts ?? 0,
|
|
31
|
+
values: state.values ?? {}
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
function statusCopy(args) {
|
|
35
|
+
if (args.override) return {
|
|
36
|
+
text: args.override,
|
|
37
|
+
failed: false
|
|
38
|
+
};
|
|
39
|
+
if (args.isSubmitting) return {
|
|
40
|
+
text: t("Saving\u2026"),
|
|
41
|
+
failed: false
|
|
42
|
+
};
|
|
43
|
+
if (args.saveError) {
|
|
44
|
+
return {
|
|
45
|
+
text: t("Couldn't save \u2014 {{error}}. Edits are kept on this page.", {
|
|
46
|
+
error: args.saveError
|
|
47
|
+
}),
|
|
48
|
+
failed: true
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (args.submissionAttempts >= 1 && args.errorCount > 0) {
|
|
52
|
+
return {
|
|
53
|
+
text: t("Can't save yet \xB7 {{count}} fields need attention", {
|
|
54
|
+
count: args.errorCount
|
|
55
|
+
}),
|
|
56
|
+
failed: true
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const qualifier = args.dirty > 0 ? args.dirty === 1 ? t("\xB7 1 field") : t("\xB7 {{count}} fields", {
|
|
60
|
+
count: args.dirty
|
|
61
|
+
}) : void 0;
|
|
62
|
+
return {
|
|
63
|
+
text: t("Unsaved changes"),
|
|
64
|
+
failed: false,
|
|
65
|
+
qualifier
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function barRadius(knobProps) {
|
|
69
|
+
const top = knobProps.containerRadius.borderRadius;
|
|
70
|
+
return {
|
|
71
|
+
borderTopLeftRadius: top,
|
|
72
|
+
borderTopRightRadius: top,
|
|
73
|
+
borderBottomLeftRadius: 0,
|
|
74
|
+
borderBottomRightRadius: 0
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function ContextualSaveBar({
|
|
78
|
+
forceVisible = false,
|
|
79
|
+
discardDisabled = false,
|
|
80
|
+
useBlocker,
|
|
81
|
+
onSaved,
|
|
82
|
+
message
|
|
83
|
+
}) {
|
|
84
|
+
const form = useFormContext();
|
|
85
|
+
const {
|
|
86
|
+
knobProps,
|
|
87
|
+
elevation
|
|
88
|
+
} = useResolvedKnobs();
|
|
89
|
+
const snap = useSaveBarSnapshot();
|
|
90
|
+
const [saveError, setSaveError] = useState(null);
|
|
91
|
+
const [discardOpen, setDiscardOpen] = useState(false);
|
|
92
|
+
const stagedDirty = dirtyCount(snap.fieldMeta);
|
|
93
|
+
const visible = forceVisible || snap.isDirty || snap.isSubmitting || Boolean(saveError);
|
|
94
|
+
const blocker = useUnsavedChangesGuard(snap.isDirty, useBlocker);
|
|
95
|
+
const guardOpen = discardOpen || blocker.state === "blocked";
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
warnCancelDisabled({
|
|
98
|
+
disabled: discardDisabled,
|
|
99
|
+
component: "ContextualSaveBar"
|
|
100
|
+
});
|
|
101
|
+
}, [discardDisabled]);
|
|
102
|
+
const restoreFocusToForm = useCallback(() => {
|
|
103
|
+
if (!isWeb || typeof document === "undefined") return;
|
|
104
|
+
const bar = document.querySelector("[data-mp-contextual-savebar]");
|
|
105
|
+
const active = document.activeElement;
|
|
106
|
+
if (!bar || !active || !bar.contains(active)) return;
|
|
107
|
+
const formEl = document.querySelector("[data-mpo-form-layout]");
|
|
108
|
+
formEl?.focus?.();
|
|
109
|
+
}, []);
|
|
110
|
+
const handleSave = useCallback(async () => {
|
|
111
|
+
if (snap.isSubmitting) return;
|
|
112
|
+
setSaveError(null);
|
|
113
|
+
try {
|
|
114
|
+
await form.handleSubmit();
|
|
115
|
+
const errors = fieldErrorCount(form.store.state.fieldMeta ?? {});
|
|
116
|
+
if (errors > 0) return;
|
|
117
|
+
const values = form.store.state.values;
|
|
118
|
+
const update = form.update;
|
|
119
|
+
if (typeof update === "function") {
|
|
120
|
+
update({
|
|
121
|
+
defaultValues: values
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
form.reset(values);
|
|
125
|
+
onSaved?.(values);
|
|
126
|
+
restoreFocusToForm();
|
|
127
|
+
} catch (error) {
|
|
128
|
+
const text = error instanceof Error ? error.message : String(error);
|
|
129
|
+
setSaveError(text || "network unreachable");
|
|
130
|
+
}
|
|
131
|
+
}, [form, onSaved, restoreFocusToForm, snap.isSubmitting]);
|
|
132
|
+
const handleDiscardCommit = useCallback(() => {
|
|
133
|
+
setSaveError(null);
|
|
134
|
+
form.reset();
|
|
135
|
+
setDiscardOpen(false);
|
|
136
|
+
if (blocker.state === "blocked") blocker.proceed();
|
|
137
|
+
restoreFocusToForm();
|
|
138
|
+
}, [blocker, form, restoreFocusToForm]);
|
|
139
|
+
const handleKeepEditing = useCallback(() => {
|
|
140
|
+
setDiscardOpen(false);
|
|
141
|
+
if (blocker.state === "blocked") blocker.reset();
|
|
142
|
+
}, [blocker]);
|
|
143
|
+
useEffect(() => {
|
|
144
|
+
if (!visible || typeof document === "undefined") return;
|
|
145
|
+
const onKey = event => {
|
|
146
|
+
if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "s") {
|
|
147
|
+
event.preventDefault();
|
|
148
|
+
void handleSave();
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
document.addEventListener("keydown", onKey);
|
|
152
|
+
return () => document.removeEventListener("keydown", onKey);
|
|
153
|
+
}, [handleSave, visible]);
|
|
154
|
+
const copy = statusCopy({
|
|
155
|
+
isSubmitting: snap.isSubmitting,
|
|
156
|
+
saveError,
|
|
157
|
+
errorCount: fieldErrorCount(snap.fieldMeta),
|
|
158
|
+
submissionAttempts: snap.submissionAttempts,
|
|
159
|
+
dirty: stagedDirty,
|
|
160
|
+
override: message
|
|
161
|
+
});
|
|
162
|
+
const padX = knobProps.panelPadding.padding;
|
|
163
|
+
const borderWidth = knobProps.borderRadius.borderWidth;
|
|
164
|
+
const elevationProps = getElevationWrapperProps(knobProps, elevation);
|
|
165
|
+
const {
|
|
166
|
+
className: smoothClass,
|
|
167
|
+
...smoothRest
|
|
168
|
+
} = knobProps.containerRadius;
|
|
169
|
+
const transition = knobProps.transition;
|
|
170
|
+
return /* @__PURE__ */jsxs(Fragment, {
|
|
171
|
+
children: [/* @__PURE__ */jsx(AnimatePresence, {
|
|
172
|
+
children: visible ? /* @__PURE__ */jsxs(XStack, {
|
|
173
|
+
"data-mp-contextual-savebar": "",
|
|
174
|
+
"data-mp-savebar-dock": "bottom",
|
|
175
|
+
role: "region",
|
|
176
|
+
"aria-label": t("Unsaved changes"),
|
|
177
|
+
position: "sticky",
|
|
178
|
+
bottom: 0,
|
|
179
|
+
width: "100%",
|
|
180
|
+
zIndex: zIndex.sheet,
|
|
181
|
+
alignItems: "center",
|
|
182
|
+
paddingTop: "$2.5",
|
|
183
|
+
paddingHorizontal: padX,
|
|
184
|
+
paddingBottom: "$2.5",
|
|
185
|
+
backgroundColor: "$color1",
|
|
186
|
+
borderStyle: "solid",
|
|
187
|
+
borderTopWidth: borderWidth,
|
|
188
|
+
borderTopColor: "$borderColor",
|
|
189
|
+
borderLeftWidth: 0,
|
|
190
|
+
borderRightWidth: 0,
|
|
191
|
+
borderBottomWidth: 0,
|
|
192
|
+
...smoothRest,
|
|
193
|
+
...barRadius(knobProps),
|
|
194
|
+
className: smoothClass,
|
|
195
|
+
...knobProps.gap,
|
|
196
|
+
transition,
|
|
197
|
+
enterStyle: transition ? {
|
|
198
|
+
y: 12,
|
|
199
|
+
opacity: 0
|
|
200
|
+
} : void 0,
|
|
201
|
+
exitStyle: transition ? {
|
|
202
|
+
y: 12,
|
|
203
|
+
opacity: 0
|
|
204
|
+
} : void 0,
|
|
205
|
+
...elevationProps,
|
|
206
|
+
style: {
|
|
207
|
+
...(isWeb ? {
|
|
208
|
+
paddingBottom: "calc(10px + env(safe-area-inset-bottom, 0px))"
|
|
209
|
+
} : void 0),
|
|
210
|
+
...elevationProps.style
|
|
211
|
+
},
|
|
212
|
+
children: [/* @__PURE__ */jsxs(XStack, {
|
|
213
|
+
flex: 1,
|
|
214
|
+
minWidth: 0,
|
|
215
|
+
alignItems: "baseline",
|
|
216
|
+
gap: "$2",
|
|
217
|
+
children: [/* @__PURE__ */jsx(Text, {
|
|
218
|
+
role: "status",
|
|
219
|
+
...knobProps.body,
|
|
220
|
+
fontSize: "$4",
|
|
221
|
+
lineHeight: "$4",
|
|
222
|
+
color: copy.failed ? formCommonColors.error : "$color",
|
|
223
|
+
numberOfLines: 1,
|
|
224
|
+
ellipsizeMode: "tail",
|
|
225
|
+
children: copy.text
|
|
226
|
+
}), copy.qualifier ? /* @__PURE__ */jsx(Text, {
|
|
227
|
+
...knobProps.body,
|
|
228
|
+
fontSize: "$4",
|
|
229
|
+
lineHeight: "$4",
|
|
230
|
+
color: knobProps.textAccentColor,
|
|
231
|
+
flexShrink: 0,
|
|
232
|
+
children: copy.qualifier
|
|
233
|
+
}) : null]
|
|
234
|
+
}), /* @__PURE__ */jsxs(XStack, {
|
|
235
|
+
"data-mp-savebar-actions": "",
|
|
236
|
+
alignItems: "center",
|
|
237
|
+
...knobProps.gap,
|
|
238
|
+
marginLeft: "auto",
|
|
239
|
+
flexShrink: 0,
|
|
240
|
+
children: [/* @__PURE__ */jsx(Button, {
|
|
241
|
+
outlined: true,
|
|
242
|
+
size: "$4",
|
|
243
|
+
"data-mp-savebar-discard": "",
|
|
244
|
+
"data-mp-cancel-disabled-ignored": discardDisabled ? "true" : void 0,
|
|
245
|
+
onPress: () => setDiscardOpen(true),
|
|
246
|
+
children: t("Discard")
|
|
247
|
+
}), /* @__PURE__ */jsx(Button, {
|
|
248
|
+
theme: "active",
|
|
249
|
+
outlined: knobProps.outlined,
|
|
250
|
+
actionRole: "primary",
|
|
251
|
+
size: "$4",
|
|
252
|
+
icon: snap.isSubmitting ? /* @__PURE__ */jsx(Spinner, {
|
|
253
|
+
size: "small"
|
|
254
|
+
}) : void 0,
|
|
255
|
+
disabled: snap.isSubmitting || void 0,
|
|
256
|
+
disabledReason: snap.isSubmitting ? t("Saving") : void 0,
|
|
257
|
+
"data-mp-savebar-save": "",
|
|
258
|
+
onPress: () => {
|
|
259
|
+
void handleSave();
|
|
260
|
+
},
|
|
261
|
+
children: t("Save")
|
|
262
|
+
})]
|
|
263
|
+
})]
|
|
264
|
+
}, "contextual-savebar") : null
|
|
265
|
+
}), /* @__PURE__ */jsx(UnsavedChangesDialog, {
|
|
266
|
+
open: guardOpen,
|
|
267
|
+
fieldCount: Math.max(stagedDirty, 1),
|
|
268
|
+
onKeepEditing: handleKeepEditing,
|
|
269
|
+
onDiscard: handleDiscardCommit
|
|
270
|
+
})]
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
export { ContextualSaveBar, clientKnownIdentity, commitImmediateField };
|
|
274
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useResolvedKnobs","warnCancelDisabled","useStore","useCallback","useEffect","useState","AnimatePresence","Text","XStack","isWeb","Button","collectFormFieldErrors","useFormContext","Spinner","formCommonColors","t","getElevationWrapperProps","zIndex","UnsavedChangesDialog","useUnsavedChangesGuard","clientKnownIdentity","commitImmediateField","Fragment","jsx","jsxs","dirtyCount","fieldMeta","Object","values","filter","meta","isDirty","length","fieldErrorCount","useSaveBarSnapshot","form","store","state","Boolean","isSubmitting","submissionAttempts","statusCopy","args","override","text","failed","saveError","error","errorCount","count","qualifier","dirty","barRadius","knobProps","top","containerRadius","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","ContextualSaveBar","forceVisible","discardDisabled","useBlocker","onSaved","message","elevation","snap","setSaveError","discardOpen","setDiscardOpen","stagedDirty","visible","blocker","guardOpen","disabled","component","restoreFocusToForm","document","bar","querySelector","active","activeElement","contains","formEl","focus","handleSave","handleSubmit","errors","update","defaultValues","reset","Error","String","handleDiscardCommit","proceed","handleKeepEditing","onKey","event","metaKey","ctrlKey","key","toLowerCase","preventDefault","addEventListener","removeEventListener","copy","padX","panelPadding","padding","borderWidth","elevationProps","className","smoothClass","smoothRest","transition","children","role","position","bottom","width","sheet","alignItems","paddingTop","paddingHorizontal","paddingBottom","backgroundColor","borderStyle","borderTopWidth","borderTopColor","borderLeftWidth","borderRightWidth","borderBottomWidth","gap","enterStyle","y","opacity","exitStyle","style","flex","minWidth","body","fontSize","lineHeight","color","numberOfLines","ellipsizeMode","textAccentColor","flexShrink","marginLeft","outlined","size","onPress","theme","actionRole","icon","disabledReason","open","fieldCount","Math","max","onKeepEditing","onDiscard"],"sources":["../../../src/ContextualSaveBar/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useResolvedKnobs, warnCancelDisabled } from "@multiplatform.one/theme";
|
|
3
|
+
import { useStore } from "@tanstack/react-store";
|
|
4
|
+
import { useCallback, useEffect, useState } from "react";
|
|
5
|
+
import { AnimatePresence, Text, XStack, isWeb } from "tamagui";
|
|
6
|
+
import { Button } from "../Button/index.native.js";
|
|
7
|
+
import { collectFormFieldErrors } from "../ErrorSummary.native.js";
|
|
8
|
+
import { useFormContext } from "../Form/index.native.js";
|
|
9
|
+
import { Spinner } from "../Spinner/index.native.js";
|
|
10
|
+
import { formCommonColors } from "../shared/colorRamps.native.js";
|
|
11
|
+
import { t } from "../shared/t.native.js";
|
|
12
|
+
import { getElevationWrapperProps } from "../shared/utils.native.js";
|
|
13
|
+
import { zIndex } from "../shared/zIndex.native.js";
|
|
14
|
+
import { UnsavedChangesDialog } from "./UnsavedChangesDialog.native.js";
|
|
15
|
+
import { useUnsavedChangesGuard } from "./useUnsavedChangesGuard.native.js";
|
|
16
|
+
import { clientKnownIdentity } from "./clientKnownIdentity.native.js";
|
|
17
|
+
import { commitImmediateField } from "./commitImmediateField.native.js";
|
|
18
|
+
function _instanceof(left, right) {
|
|
19
|
+
"@swc/helpers - instanceof";
|
|
20
|
+
|
|
21
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
22
|
+
return !!right[Symbol.hasInstance](left);
|
|
23
|
+
} else {
|
|
24
|
+
return left instanceof right;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function dirtyCount(fieldMeta) {
|
|
28
|
+
return Object.values(fieldMeta).filter(function (meta) {
|
|
29
|
+
return meta === null || meta === void 0 ? void 0 : meta.isDirty;
|
|
30
|
+
}).length;
|
|
31
|
+
}
|
|
32
|
+
function fieldErrorCount(fieldMeta) {
|
|
33
|
+
return collectFormFieldErrors(fieldMeta).length;
|
|
34
|
+
}
|
|
35
|
+
function useSaveBarSnapshot() {
|
|
36
|
+
var form = useFormContext();
|
|
37
|
+
return useStore(form.store, function (state) {
|
|
38
|
+
var _state_fieldMeta, _state_submissionAttempts, _state_values;
|
|
39
|
+
return {
|
|
40
|
+
isDirty: Boolean(state.isDirty),
|
|
41
|
+
isSubmitting: Boolean(state.isSubmitting),
|
|
42
|
+
fieldMeta: (_state_fieldMeta = state.fieldMeta) !== null && _state_fieldMeta !== void 0 ? _state_fieldMeta : {},
|
|
43
|
+
submissionAttempts: (_state_submissionAttempts = state.submissionAttempts) !== null && _state_submissionAttempts !== void 0 ? _state_submissionAttempts : 0,
|
|
44
|
+
values: (_state_values = state.values) !== null && _state_values !== void 0 ? _state_values : {}
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function statusCopy(args) {
|
|
49
|
+
if (args.override) return {
|
|
50
|
+
text: args.override,
|
|
51
|
+
failed: false
|
|
52
|
+
};
|
|
53
|
+
if (args.isSubmitting) return {
|
|
54
|
+
text: t("Saving\u2026"),
|
|
55
|
+
failed: false
|
|
56
|
+
};
|
|
57
|
+
if (args.saveError) {
|
|
58
|
+
return {
|
|
59
|
+
text: t("Couldn't save \u2014 {{error}}. Edits are kept on this page.", {
|
|
60
|
+
error: args.saveError
|
|
61
|
+
}),
|
|
62
|
+
failed: true
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (args.submissionAttempts >= 1 && args.errorCount > 0) {
|
|
66
|
+
return {
|
|
67
|
+
text: t("Can't save yet \xB7 {{count}} fields need attention", {
|
|
68
|
+
count: args.errorCount
|
|
69
|
+
}),
|
|
70
|
+
failed: true
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
var qualifier = args.dirty > 0 ? args.dirty === 1 ? t("\xB7 1 field") : t("\xB7 {{count}} fields", {
|
|
74
|
+
count: args.dirty
|
|
75
|
+
}) : void 0;
|
|
76
|
+
return {
|
|
77
|
+
text: t("Unsaved changes"),
|
|
78
|
+
failed: false,
|
|
79
|
+
qualifier
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function barRadius(knobProps) {
|
|
83
|
+
var top = knobProps.containerRadius.borderRadius;
|
|
84
|
+
return {
|
|
85
|
+
borderTopLeftRadius: top,
|
|
86
|
+
borderTopRightRadius: top,
|
|
87
|
+
borderBottomLeftRadius: 0,
|
|
88
|
+
borderBottomRightRadius: 0
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function ContextualSaveBar(param) {
|
|
92
|
+
var {
|
|
93
|
+
forceVisible = false,
|
|
94
|
+
discardDisabled = false,
|
|
95
|
+
useBlocker,
|
|
96
|
+
onSaved,
|
|
97
|
+
message
|
|
98
|
+
} = param;
|
|
99
|
+
var form = useFormContext();
|
|
100
|
+
var {
|
|
101
|
+
knobProps,
|
|
102
|
+
elevation
|
|
103
|
+
} = useResolvedKnobs();
|
|
104
|
+
var snap = useSaveBarSnapshot();
|
|
105
|
+
var [saveError, setSaveError] = useState(null);
|
|
106
|
+
var [discardOpen, setDiscardOpen] = useState(false);
|
|
107
|
+
var stagedDirty = dirtyCount(snap.fieldMeta);
|
|
108
|
+
var visible = forceVisible || snap.isDirty || snap.isSubmitting || Boolean(saveError);
|
|
109
|
+
var blocker = useUnsavedChangesGuard(snap.isDirty, useBlocker);
|
|
110
|
+
var guardOpen = discardOpen || blocker.state === "blocked";
|
|
111
|
+
useEffect(function () {
|
|
112
|
+
warnCancelDisabled({
|
|
113
|
+
disabled: discardDisabled,
|
|
114
|
+
component: "ContextualSaveBar"
|
|
115
|
+
});
|
|
116
|
+
}, [discardDisabled]);
|
|
117
|
+
var restoreFocusToForm = useCallback(function () {
|
|
118
|
+
var _formEl_focus;
|
|
119
|
+
if (!isWeb || typeof document === "undefined") return;
|
|
120
|
+
var bar = document.querySelector("[data-mp-contextual-savebar]");
|
|
121
|
+
var active = document.activeElement;
|
|
122
|
+
if (!bar || !active || !bar.contains(active)) return;
|
|
123
|
+
var formEl = document.querySelector("[data-mpo-form-layout]");
|
|
124
|
+
formEl === null || formEl === void 0 ? void 0 : (_formEl_focus = formEl.focus) === null || _formEl_focus === void 0 ? void 0 : _formEl_focus.call(formEl);
|
|
125
|
+
}, []);
|
|
126
|
+
var handleSave = useCallback(async function () {
|
|
127
|
+
if (snap.isSubmitting) return;
|
|
128
|
+
setSaveError(null);
|
|
129
|
+
try {
|
|
130
|
+
var _form_store_state_fieldMeta;
|
|
131
|
+
await form.handleSubmit();
|
|
132
|
+
var errors = fieldErrorCount((_form_store_state_fieldMeta = form.store.state.fieldMeta) !== null && _form_store_state_fieldMeta !== void 0 ? _form_store_state_fieldMeta : {});
|
|
133
|
+
if (errors > 0) return;
|
|
134
|
+
var values = form.store.state.values;
|
|
135
|
+
var update = form.update;
|
|
136
|
+
if (typeof update === "function") {
|
|
137
|
+
update({
|
|
138
|
+
defaultValues: values
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
form.reset(values);
|
|
142
|
+
onSaved === null || onSaved === void 0 ? void 0 : onSaved(values);
|
|
143
|
+
restoreFocusToForm();
|
|
144
|
+
} catch (error) {
|
|
145
|
+
var text = _instanceof(error, Error) ? error.message : String(error);
|
|
146
|
+
setSaveError(text || "network unreachable");
|
|
147
|
+
}
|
|
148
|
+
}, [form, onSaved, restoreFocusToForm, snap.isSubmitting]);
|
|
149
|
+
var handleDiscardCommit = useCallback(function () {
|
|
150
|
+
setSaveError(null);
|
|
151
|
+
form.reset();
|
|
152
|
+
setDiscardOpen(false);
|
|
153
|
+
if (blocker.state === "blocked") blocker.proceed();
|
|
154
|
+
restoreFocusToForm();
|
|
155
|
+
}, [blocker, form, restoreFocusToForm]);
|
|
156
|
+
var handleKeepEditing = useCallback(function () {
|
|
157
|
+
setDiscardOpen(false);
|
|
158
|
+
if (blocker.state === "blocked") blocker.reset();
|
|
159
|
+
}, [blocker]);
|
|
160
|
+
useEffect(function () {
|
|
161
|
+
if (!visible || typeof document === "undefined") return;
|
|
162
|
+
var onKey = function onKey2(event) {
|
|
163
|
+
if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "s") {
|
|
164
|
+
event.preventDefault();
|
|
165
|
+
void handleSave();
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
document.addEventListener("keydown", onKey);
|
|
169
|
+
return function () {
|
|
170
|
+
return document.removeEventListener("keydown", onKey);
|
|
171
|
+
};
|
|
172
|
+
}, [handleSave, visible]);
|
|
173
|
+
var copy = statusCopy({
|
|
174
|
+
isSubmitting: snap.isSubmitting,
|
|
175
|
+
saveError,
|
|
176
|
+
errorCount: fieldErrorCount(snap.fieldMeta),
|
|
177
|
+
submissionAttempts: snap.submissionAttempts,
|
|
178
|
+
dirty: stagedDirty,
|
|
179
|
+
override: message
|
|
180
|
+
});
|
|
181
|
+
var padX = knobProps.panelPadding.padding;
|
|
182
|
+
var borderWidth = knobProps.borderRadius.borderWidth;
|
|
183
|
+
var elevationProps = getElevationWrapperProps(knobProps, elevation);
|
|
184
|
+
var {
|
|
185
|
+
className: smoothClass,
|
|
186
|
+
...smoothRest
|
|
187
|
+
} = knobProps.containerRadius;
|
|
188
|
+
var transition = knobProps.transition;
|
|
189
|
+
return /* @__PURE__ */_jsxs(_Fragment, {
|
|
190
|
+
children: [/* @__PURE__ */_jsx(AnimatePresence, {
|
|
191
|
+
children: visible ? /* @__PURE__ */_jsxs(XStack, {
|
|
192
|
+
"data-mp-contextual-savebar": "",
|
|
193
|
+
"data-mp-savebar-dock": "bottom",
|
|
194
|
+
role: "region",
|
|
195
|
+
"aria-label": t("Unsaved changes"),
|
|
196
|
+
position: "sticky",
|
|
197
|
+
bottom: 0,
|
|
198
|
+
width: "100%",
|
|
199
|
+
zIndex: zIndex.sheet,
|
|
200
|
+
alignItems: "center",
|
|
201
|
+
paddingTop: "$2.5",
|
|
202
|
+
paddingHorizontal: padX,
|
|
203
|
+
paddingBottom: "$2.5",
|
|
204
|
+
backgroundColor: "$color1",
|
|
205
|
+
borderStyle: "solid",
|
|
206
|
+
borderTopWidth: borderWidth,
|
|
207
|
+
borderTopColor: "$borderColor",
|
|
208
|
+
borderLeftWidth: 0,
|
|
209
|
+
borderRightWidth: 0,
|
|
210
|
+
borderBottomWidth: 0,
|
|
211
|
+
...smoothRest,
|
|
212
|
+
...barRadius(knobProps),
|
|
213
|
+
className: smoothClass,
|
|
214
|
+
...knobProps.gap,
|
|
215
|
+
transition,
|
|
216
|
+
enterStyle: transition ? {
|
|
217
|
+
y: 12,
|
|
218
|
+
opacity: 0
|
|
219
|
+
} : void 0,
|
|
220
|
+
exitStyle: transition ? {
|
|
221
|
+
y: 12,
|
|
222
|
+
opacity: 0
|
|
223
|
+
} : void 0,
|
|
224
|
+
...elevationProps,
|
|
225
|
+
style: {
|
|
226
|
+
...(isWeb ? {
|
|
227
|
+
paddingBottom: "calc(10px + env(safe-area-inset-bottom, 0px))"
|
|
228
|
+
} : void 0),
|
|
229
|
+
...elevationProps.style
|
|
230
|
+
},
|
|
231
|
+
children: [/* @__PURE__ */_jsxs(XStack, {
|
|
232
|
+
flex: 1,
|
|
233
|
+
minWidth: 0,
|
|
234
|
+
alignItems: "baseline",
|
|
235
|
+
gap: "$2",
|
|
236
|
+
children: [/* @__PURE__ */_jsx(Text, {
|
|
237
|
+
role: "status",
|
|
238
|
+
...knobProps.body,
|
|
239
|
+
fontSize: "$4",
|
|
240
|
+
lineHeight: "$4",
|
|
241
|
+
color: copy.failed ? formCommonColors.error : "$color",
|
|
242
|
+
numberOfLines: 1,
|
|
243
|
+
ellipsizeMode: "tail",
|
|
244
|
+
children: copy.text
|
|
245
|
+
}), copy.qualifier ? /* @__PURE__ */_jsx(Text, {
|
|
246
|
+
...knobProps.body,
|
|
247
|
+
fontSize: "$4",
|
|
248
|
+
lineHeight: "$4",
|
|
249
|
+
color: knobProps.textAccentColor,
|
|
250
|
+
flexShrink: 0,
|
|
251
|
+
children: copy.qualifier
|
|
252
|
+
}) : null]
|
|
253
|
+
}), /* @__PURE__ */_jsxs(XStack, {
|
|
254
|
+
"data-mp-savebar-actions": "",
|
|
255
|
+
alignItems: "center",
|
|
256
|
+
...knobProps.gap,
|
|
257
|
+
marginLeft: "auto",
|
|
258
|
+
flexShrink: 0,
|
|
259
|
+
children: [/* @__PURE__ */_jsx(Button, {
|
|
260
|
+
outlined: true,
|
|
261
|
+
size: "$4",
|
|
262
|
+
"data-mp-savebar-discard": "",
|
|
263
|
+
"data-mp-cancel-disabled-ignored": discardDisabled ? "true" : void 0,
|
|
264
|
+
onPress: function onPress() {
|
|
265
|
+
return setDiscardOpen(true);
|
|
266
|
+
},
|
|
267
|
+
children: t("Discard")
|
|
268
|
+
}), /* @__PURE__ */_jsx(Button, {
|
|
269
|
+
theme: "active",
|
|
270
|
+
outlined: knobProps.outlined,
|
|
271
|
+
actionRole: "primary",
|
|
272
|
+
size: "$4",
|
|
273
|
+
icon: snap.isSubmitting ? /* @__PURE__ */_jsx(Spinner, {
|
|
274
|
+
size: "small"
|
|
275
|
+
}) : void 0,
|
|
276
|
+
disabled: snap.isSubmitting || void 0,
|
|
277
|
+
disabledReason: snap.isSubmitting ? t("Saving") : void 0,
|
|
278
|
+
"data-mp-savebar-save": "",
|
|
279
|
+
onPress: function onPress() {
|
|
280
|
+
void handleSave();
|
|
281
|
+
},
|
|
282
|
+
children: t("Save")
|
|
283
|
+
})]
|
|
284
|
+
})]
|
|
285
|
+
}, "contextual-savebar") : null
|
|
286
|
+
}), /* @__PURE__ */_jsx(UnsavedChangesDialog, {
|
|
287
|
+
open: guardOpen,
|
|
288
|
+
fieldCount: Math.max(stagedDirty, 1),
|
|
289
|
+
onKeepEditing: handleKeepEditing,
|
|
290
|
+
onDiscard: handleDiscardCommit
|
|
291
|
+
})]
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
export { ContextualSaveBar, clientKnownIdentity, commitImmediateField };
|
|
295
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useResolvedKnobs","warnCancelDisabled","useStore","useCallback","useEffect","useState","AnimatePresence","Text","XStack","isWeb","Button","collectFormFieldErrors","useFormContext","Spinner","formCommonColors","t","getElevationWrapperProps","zIndex","UnsavedChangesDialog","useUnsavedChangesGuard","clientKnownIdentity","commitImmediateField","_instanceof","left","right","Symbol","hasInstance","dirtyCount","fieldMeta","Object","values","filter","meta","isDirty","length","fieldErrorCount","useSaveBarSnapshot","form","store","state","_state_fieldMeta","_state_submissionAttempts","_state_values","Boolean","isSubmitting","submissionAttempts","statusCopy","args","override","text","failed","saveError","error","errorCount","count","qualifier","dirty","barRadius","knobProps","top","containerRadius","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","ContextualSaveBar","param","forceVisible","discardDisabled","useBlocker","onSaved","message","elevation","snap","setSaveError","discardOpen","setDiscardOpen","stagedDirty","visible","blocker","guardOpen","disabled","component","restoreFocusToForm","_formEl_focus","document","bar","querySelector","active","activeElement","contains","formEl","focus","call","handleSave","_form_store_state_fieldMeta","handleSubmit","errors","update","defaultValues","reset","Error","String","handleDiscardCommit","proceed","handleKeepEditing","onKey","onKey2","event","metaKey","ctrlKey","key","toLowerCase","preventDefault","addEventListener","removeEventListener","copy","padX","panelPadding","padding","borderWidth","elevationProps","className","smoothClass","smoothRest","transition","children","role","position","bottom","width","sheet","alignItems","paddingTop","paddingHorizontal","paddingBottom","backgroundColor","borderStyle","borderTopWidth","borderTopColor","borderLeftWidth","borderRightWidth","borderBottomWidth","gap","enterStyle","y","opacity","exitStyle","style","flex","minWidth","body","fontSize","lineHeight","color","numberOfLines","ellipsizeMode","textAccentColor","flexShrink","marginLeft","outlined","size","onPress","theme","actionRole","icon","disabledReason","open","fieldCount","Math","max","onKeepEditing","onDiscard"],"sources":["index.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useResolvedKnobs, warnCancelDisabled } from \"@multiplatform.one/theme\";\nimport { useStore } from \"@tanstack/react-store\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { AnimatePresence, Text, XStack, isWeb } from \"tamagui\";\nimport { Button } from \"../Button\";\nimport { collectFormFieldErrors } from \"../ErrorSummary\";\nimport { useFormContext } from \"../Form\";\nimport { Spinner } from \"../Spinner\";\nimport { formCommonColors } from \"../shared/colorRamps\";\nimport { t } from \"../shared/t\";\nimport { getElevationWrapperProps } from \"../shared/utils\";\nimport { zIndex } from \"../shared/zIndex\";\nimport { UnsavedChangesDialog } from \"./UnsavedChangesDialog\";\nimport { useUnsavedChangesGuard } from \"./useUnsavedChangesGuard\";\nimport { clientKnownIdentity } from \"./clientKnownIdentity\";\nimport { commitImmediateField } from \"./commitImmediateField\";\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction dirtyCount(fieldMeta) {\n return Object.values(fieldMeta).filter(function(meta) {\n return meta === null || meta === void 0 ? void 0 : meta.isDirty;\n }).length;\n}\nfunction fieldErrorCount(fieldMeta) {\n return collectFormFieldErrors(fieldMeta).length;\n}\nfunction useSaveBarSnapshot() {\n var form = useFormContext();\n return useStore(form.store, function(state) {\n var _state_fieldMeta, _state_submissionAttempts, _state_values;\n return {\n isDirty: Boolean(state.isDirty),\n isSubmitting: Boolean(state.isSubmitting),\n fieldMeta: (_state_fieldMeta = state.fieldMeta) !== null && _state_fieldMeta !== void 0 ? _state_fieldMeta : {},\n submissionAttempts: (_state_submissionAttempts = state.submissionAttempts) !== null && _state_submissionAttempts !== void 0 ? _state_submissionAttempts : 0,\n values: (_state_values = state.values) !== null && _state_values !== void 0 ? _state_values : {}\n };\n });\n}\nfunction statusCopy(args) {\n if (args.override) return {\n text: args.override,\n failed: false\n };\n if (args.isSubmitting) return {\n text: t(\"Saving\\u2026\"),\n failed: false\n };\n if (args.saveError) {\n return {\n text: t(\"Couldn't save \\u2014 {{error}}. Edits are kept on this page.\", {\n error: args.saveError\n }),\n failed: true\n };\n }\n if (args.submissionAttempts >= 1 && args.errorCount > 0) {\n return {\n text: t(\"Can't save yet \\xB7 {{count}} fields need attention\", {\n count: args.errorCount\n }),\n failed: true\n };\n }\n var qualifier = args.dirty > 0 ? args.dirty === 1 ? t(\"\\xB7 1 field\") : t(\"\\xB7 {{count}} fields\", {\n count: args.dirty\n }) : void 0;\n return {\n text: t(\"Unsaved changes\"),\n failed: false,\n qualifier\n };\n}\nfunction barRadius(knobProps) {\n var top = knobProps.containerRadius.borderRadius;\n return {\n borderTopLeftRadius: top,\n borderTopRightRadius: top,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n };\n}\nfunction ContextualSaveBar(param) {\n var { forceVisible = false, discardDisabled = false, useBlocker, onSaved, message } = param;\n var form = useFormContext();\n var { knobProps, elevation } = useResolvedKnobs();\n var snap = useSaveBarSnapshot();\n var [saveError, setSaveError] = useState(null);\n var [discardOpen, setDiscardOpen] = useState(false);\n var stagedDirty = dirtyCount(snap.fieldMeta);\n var visible = forceVisible || snap.isDirty || snap.isSubmitting || Boolean(saveError);\n var blocker = useUnsavedChangesGuard(snap.isDirty, useBlocker);\n var guardOpen = discardOpen || blocker.state === \"blocked\";\n useEffect(function() {\n warnCancelDisabled({\n disabled: discardDisabled,\n component: \"ContextualSaveBar\"\n });\n }, [\n discardDisabled\n ]);\n var restoreFocusToForm = useCallback(function() {\n var _formEl_focus;\n if (!isWeb || typeof document === \"undefined\") return;\n var bar = document.querySelector(\"[data-mp-contextual-savebar]\");\n var active = document.activeElement;\n if (!bar || !active || !bar.contains(active)) return;\n var formEl = document.querySelector(\"[data-mpo-form-layout]\");\n formEl === null || formEl === void 0 ? void 0 : (_formEl_focus = formEl.focus) === null || _formEl_focus === void 0 ? void 0 : _formEl_focus.call(formEl);\n }, []);\n var handleSave = useCallback(async function() {\n if (snap.isSubmitting) return;\n setSaveError(null);\n try {\n var _form_store_state_fieldMeta;\n await form.handleSubmit();\n var errors = fieldErrorCount((_form_store_state_fieldMeta = form.store.state.fieldMeta) !== null && _form_store_state_fieldMeta !== void 0 ? _form_store_state_fieldMeta : {});\n if (errors > 0) return;\n var values = form.store.state.values;\n var update = form.update;\n if (typeof update === \"function\") {\n update({\n defaultValues: values\n });\n }\n form.reset(values);\n onSaved === null || onSaved === void 0 ? void 0 : onSaved(values);\n restoreFocusToForm();\n } catch (error) {\n var text = _instanceof(error, Error) ? error.message : String(error);\n setSaveError(text || \"network unreachable\");\n }\n }, [\n form,\n onSaved,\n restoreFocusToForm,\n snap.isSubmitting\n ]);\n var handleDiscardCommit = useCallback(function() {\n setSaveError(null);\n form.reset();\n setDiscardOpen(false);\n if (blocker.state === \"blocked\") blocker.proceed();\n restoreFocusToForm();\n }, [\n blocker,\n form,\n restoreFocusToForm\n ]);\n var handleKeepEditing = useCallback(function() {\n setDiscardOpen(false);\n if (blocker.state === \"blocked\") blocker.reset();\n }, [\n blocker\n ]);\n useEffect(function() {\n if (!visible || typeof document === \"undefined\") return;\n var onKey = function onKey2(event) {\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"s\") {\n event.preventDefault();\n void handleSave();\n }\n };\n document.addEventListener(\"keydown\", onKey);\n return function() {\n return document.removeEventListener(\"keydown\", onKey);\n };\n }, [\n handleSave,\n visible\n ]);\n var copy = statusCopy({\n isSubmitting: snap.isSubmitting,\n saveError,\n errorCount: fieldErrorCount(snap.fieldMeta),\n submissionAttempts: snap.submissionAttempts,\n dirty: stagedDirty,\n override: message\n });\n var padX = knobProps.panelPadding.padding;\n var borderWidth = knobProps.borderRadius.borderWidth;\n var elevationProps = getElevationWrapperProps(knobProps, elevation);\n var { className: smoothClass, ...smoothRest } = knobProps.containerRadius;\n var transition = knobProps.transition;\n return /* @__PURE__ */ _jsxs(_Fragment, {\n children: [\n /* @__PURE__ */ _jsx(AnimatePresence, {\n children: visible ? /* @__PURE__ */ _jsxs(XStack, {\n \"data-mp-contextual-savebar\": \"\",\n \"data-mp-savebar-dock\": \"bottom\",\n role: \"region\",\n \"aria-label\": t(\"Unsaved changes\"),\n position: \"sticky\",\n bottom: 0,\n width: \"100%\",\n zIndex: zIndex.sheet,\n alignItems: \"center\",\n paddingTop: \"$2.5\",\n paddingHorizontal: padX,\n paddingBottom: \"$2.5\",\n backgroundColor: \"$color1\",\n borderStyle: \"solid\",\n borderTopWidth: borderWidth,\n borderTopColor: \"$borderColor\",\n borderLeftWidth: 0,\n borderRightWidth: 0,\n borderBottomWidth: 0,\n ...smoothRest,\n ...barRadius(knobProps),\n className: smoothClass,\n ...knobProps.gap,\n transition,\n enterStyle: transition ? {\n y: 12,\n opacity: 0\n } : void 0,\n exitStyle: transition ? {\n y: 12,\n opacity: 0\n } : void 0,\n ...elevationProps,\n style: {\n ...isWeb ? {\n paddingBottom: \"calc(10px + env(safe-area-inset-bottom, 0px))\"\n } : void 0,\n ...elevationProps.style\n },\n children: [\n /* @__PURE__ */ _jsxs(XStack, {\n flex: 1,\n minWidth: 0,\n alignItems: \"baseline\",\n gap: \"$2\",\n children: [\n /* @__PURE__ */ _jsx(Text, {\n role: \"status\",\n ...knobProps.body,\n fontSize: \"$4\",\n lineHeight: \"$4\",\n color: copy.failed ? formCommonColors.error : \"$color\",\n numberOfLines: 1,\n ellipsizeMode: \"tail\",\n children: copy.text\n }),\n copy.qualifier ? /* @__PURE__ */ _jsx(Text, {\n ...knobProps.body,\n fontSize: \"$4\",\n lineHeight: \"$4\",\n color: knobProps.textAccentColor,\n flexShrink: 0,\n children: copy.qualifier\n }) : null\n ]\n }),\n /* @__PURE__ */ _jsxs(XStack, {\n \"data-mp-savebar-actions\": \"\",\n alignItems: \"center\",\n ...knobProps.gap,\n marginLeft: \"auto\",\n flexShrink: 0,\n children: [\n /* @__PURE__ */ _jsx(Button, {\n outlined: true,\n size: \"$4\",\n \"data-mp-savebar-discard\": \"\",\n \"data-mp-cancel-disabled-ignored\": discardDisabled ? \"true\" : void 0,\n onPress: function onPress() {\n return setDiscardOpen(true);\n },\n children: t(\"Discard\")\n }),\n /* @__PURE__ */ _jsx(Button, {\n theme: \"active\",\n outlined: knobProps.outlined,\n actionRole: \"primary\",\n size: \"$4\",\n icon: snap.isSubmitting ? /* @__PURE__ */ _jsx(Spinner, {\n size: \"small\"\n }) : void 0,\n disabled: snap.isSubmitting || void 0,\n disabledReason: snap.isSubmitting ? t(\"Saving\") : void 0,\n \"data-mp-savebar-save\": \"\",\n onPress: function onPress() {\n void handleSave();\n },\n children: t(\"Save\")\n })\n ]\n })\n ]\n }, \"contextual-savebar\") : null\n }),\n /* @__PURE__ */ _jsx(UnsavedChangesDialog, {\n open: guardOpen,\n fieldCount: Math.max(stagedDirty, 1),\n onKeepEditing: handleKeepEditing,\n onDiscard: handleDiscardCommit\n })\n ]\n });\n}\nexport {\n ContextualSaveBar,\n clientKnownIdentity,\n commitImmediateField\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
const idleBlocker = {
|
|
3
|
+
state: "unblocked",
|
|
4
|
+
proceed: () => {},
|
|
5
|
+
reset: () => {}
|
|
6
|
+
};
|
|
7
|
+
function useUnsavedChangesGuard(isDirty, useBlocker) {
|
|
8
|
+
const blocker = useBlocker?.(isDirty) ?? idleBlocker;
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (!isDirty) return;
|
|
11
|
+
if (typeof window === "undefined" || typeof window.addEventListener !== "function") {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const handler = event => {
|
|
15
|
+
event.preventDefault();
|
|
16
|
+
event.returnValue = "";
|
|
17
|
+
};
|
|
18
|
+
window.addEventListener("beforeunload", handler);
|
|
19
|
+
return () => window.removeEventListener("beforeunload", handler);
|
|
20
|
+
}, [isDirty]);
|
|
21
|
+
return blocker;
|
|
22
|
+
}
|
|
23
|
+
export { useUnsavedChangesGuard };
|
|
24
|
+
//# sourceMappingURL=useUnsavedChangesGuard.mjs.map
|