@multiplatform.one/forms 7.6.3 → 7.7.1
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.native.js +1 -1
- package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
- package/dist/cjs/Button/index.cjs +8 -2
- package/dist/cjs/Button/index.native.js +14 -3
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +1 -3
- package/dist/cjs/Chip/index.native.js +5 -3
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
- package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/index.cjs +19 -3
- package/dist/cjs/ContextualSaveBar/index.native.js +22 -6
- package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
- package/dist/cjs/ControlGroup/index.native.js +1 -1
- package/dist/cjs/ControlGroup/index.native.js.map +1 -1
- package/dist/cjs/DescriptionList/index.cjs +41 -13
- package/dist/cjs/DescriptionList/index.native.js +45 -15
- package/dist/cjs/DescriptionList/index.native.js.map +1 -1
- package/dist/cjs/ErrorSummary.cjs +4 -1
- package/dist/cjs/ErrorSummary.native.js +4 -1
- package/dist/cjs/ErrorSummary.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
- package/dist/cjs/FieldDisplay/index.native.js +1 -1
- package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
- package/dist/cjs/FieldGroup.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +24 -2
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +43 -2
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/cjs/Form/index.native.js +1 -1
- package/dist/cjs/Form/index.native.js.map +1 -1
- package/dist/cjs/Form/validateOn.native.js.map +1 -1
- package/dist/cjs/FormGrid.native.js.map +1 -1
- package/dist/cjs/FormSection.native.js.map +1 -1
- package/dist/cjs/InputParts/index.cjs +42 -2
- package/dist/cjs/InputParts/index.native.js +42 -2
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/Label/index.native.js.map +1 -1
- package/dist/cjs/Skeleton/index.native.js.map +1 -1
- package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
- package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
- package/dist/cjs/Table/index.native.js.map +1 -1
- package/dist/cjs/Wheel/haptic.native.js.map +1 -1
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/actionLabel.native.js.map +1 -1
- package/dist/cjs/fieldDefaults.native.js.map +1 -1
- package/dist/cjs/fieldLayout.native.js +1 -1
- package/dist/cjs/fieldLayout.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
- package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/index.native.js +2 -2
- package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/Checkbox.cjs +5 -2
- package/dist/cjs/fields/Checkbox/Checkbox.native.js +7 -4
- package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxGroup.cjs +69 -59
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +76 -66
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/checkboxGroupContext.cjs +33 -0
- package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js +36 -0
- package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -0
- package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/index.native.js +3 -3
- package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
- package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.native.js +5 -5
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.cjs +402 -0
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +441 -0
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -0
- package/dist/cjs/fields/DatePicker/DatetimePicker.cjs +2 -376
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +70 -298
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/catalog.cjs +306 -0
- package/dist/cjs/fields/DatePicker/catalog.native.js +350 -0
- package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -0
- package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/index.cjs +7 -280
- package/dist/cjs/fields/DatePicker/index.native.js +67 -186
- package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.cjs +12 -9
- package/dist/cjs/fields/DatePicker/parts.native.js +14 -11
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
- package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
- package/dist/cjs/fields/Duration/index.cjs +29 -3
- package/dist/cjs/fields/Duration/index.native.js +32 -6
- package/dist/cjs/fields/Duration/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/index.cjs +0 -1
- package/dist/cjs/fields/FileUpload/index.native.js +7 -3
- package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/index.native.js +5 -5
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
- package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/cjs/fields/Icon/index.native.js +3 -3
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/ImageField/index.native.js +2 -2
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.native.js +2 -2
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.native.js +3 -3
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.native.js +3 -3
- package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.cjs +9 -4
- package/dist/cjs/fields/PhoneInput/index.native.js +16 -9
- package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/cjs/fields/Progress/index.native.js +1 -1
- package/dist/cjs/fields/Progress/index.native.js.map +1 -1
- package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/index.cjs +1 -1
- package/dist/cjs/fields/Rating/index.native.js +5 -2
- package/dist/cjs/fields/Rating/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
- package/dist/cjs/fields/Rating/types.native.js.map +1 -1
- package/dist/cjs/fields/SearchInput/index.cjs +6 -0
- package/dist/cjs/fields/SearchInput/index.native.js +8 -2
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +88 -2
- package/dist/cjs/fields/Select/index.native.js +94 -6
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Signature/index.cjs +9 -5
- package/dist/cjs/fields/Signature/index.native.js +11 -7
- package/dist/cjs/fields/Signature/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +3 -1
- package/dist/cjs/fields/Slider/index.native.js +4 -2
- package/dist/cjs/fields/Slider/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/index.native.js +2 -2
- package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
- package/dist/cjs/fields/Switch/index.cjs +5 -18
- package/dist/cjs/fields/Switch/index.native.js +7 -20
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TextArea/index.cjs +19 -5
- package/dist/cjs/fields/TextArea/index.native.js +25 -7
- package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/catalog.cjs +203 -0
- package/dist/cjs/fields/TimePicker/catalog.native.js +227 -0
- package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -0
- package/dist/cjs/fields/TimePicker/index.cjs +6 -177
- package/dist/cjs/fields/TimePicker/index.native.js +75 -86
- package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/parts.native.js +1 -1
- package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/TimeRangeScrubber/geometry.cjs +6 -0
- package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js +6 -0
- package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
- package/dist/cjs/fields/TimeRangeScrubber/index.cjs +34 -14
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js +40 -16
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
- package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.cjs +202 -0
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +211 -0
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -0
- package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.cjs +30 -0
- package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js +33 -0
- package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -0
- package/dist/cjs/fields/nativeSelect.cjs +30 -0
- package/dist/cjs/fields/nativeSelect.native.js +33 -0
- package/dist/cjs/fields/nativeSelect.native.js.map +1 -0
- package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
- package/dist/cjs/formSpacing.native.js.map +1 -1
- package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +44 -43
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/requiredMarking.native.js.map +1 -1
- package/dist/cjs/shared/TimeColumn.native.js +1 -1
- package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
- package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
- package/dist/cjs/shared/colorRamps.native.js.map +1 -1
- package/dist/cjs/shared/devWarn.native.js.map +1 -1
- package/dist/cjs/shared/floatingList.native.js +1 -1
- package/dist/cjs/shared/floatingList.native.js.map +1 -1
- package/dist/cjs/shared/focusManagement.native.js.map +1 -1
- package/dist/cjs/shared/groupContext.native.js.map +1 -1
- package/dist/cjs/shared/i18n.native.js.map +1 -1
- package/dist/cjs/shared/t.native.js.map +1 -1
- package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
- package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
- package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/cjs/shared/utils.native.js +1 -1
- package/dist/cjs/shared/utils.native.js.map +1 -1
- package/dist/cjs/shared/zIndex.native.js.map +1 -1
- package/dist/cjs/themedPrimitives.cjs +5 -0
- package/dist/cjs/themedPrimitives.native.js +5 -0
- package/dist/cjs/themedPrimitives.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/utils/LinkCell.native.js.map +1 -1
- package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
- package/dist/esm/Button/index.mjs +9 -3
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +14 -3
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +1 -3
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +5 -3
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/index.mjs +19 -3
- package/dist/esm/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/esm/ContextualSaveBar/index.native.js +19 -3
- package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
- package/dist/esm/ControlGroup/index.native.js.map +1 -1
- package/dist/esm/DescriptionList/index.mjs +41 -13
- package/dist/esm/DescriptionList/index.mjs.map +1 -1
- package/dist/esm/DescriptionList/index.native.js +43 -13
- package/dist/esm/DescriptionList/index.native.js.map +1 -1
- package/dist/esm/ErrorSummary.mjs +5 -2
- package/dist/esm/ErrorSummary.mjs.map +1 -1
- package/dist/esm/ErrorSummary.native.js +5 -2
- package/dist/esm/ErrorSummary.native.js.map +1 -1
- package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
- package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
- package/dist/esm/FieldDisplay/index.native.js.map +1 -1
- package/dist/esm/FieldGroup.native.js.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs +24 -3
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js +43 -3
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/Form/index.native.js.map +1 -1
- package/dist/esm/Form/validateOn.native.js.map +1 -1
- package/dist/esm/FormGrid.native.js.map +1 -1
- package/dist/esm/FormSection.native.js.map +1 -1
- package/dist/esm/InputParts/index.mjs +43 -3
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +43 -3
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Label/index.native.js.map +1 -1
- package/dist/esm/Skeleton/index.native.js.map +1 -1
- package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
- package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
- package/dist/esm/Table/index.native.js.map +1 -1
- package/dist/esm/Wheel/haptic.native.js.map +1 -1
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/actionLabel.native.js.map +1 -1
- package/dist/esm/fieldDefaults.native.js.map +1 -1
- package/dist/esm/fieldLayout.native.js.map +1 -1
- package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
- package/dist/esm/fields/Barcode/index.native.js.map +1 -1
- package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
- package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.mjs +5 -2
- package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.native.js +6 -3
- package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.mjs +69 -59
- package/dist/esm/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js +75 -65
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/checkboxGroupContext.mjs +7 -0
- package/dist/esm/fields/Checkbox/checkboxGroupContext.mjs.map +1 -0
- package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js +7 -0
- package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -0
- package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs +377 -0
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -0
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js +413 -0
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -0
- package/dist/esm/fields/DatePicker/DatetimePicker.mjs +1 -375
- package/dist/esm/fields/DatePicker/DatetimePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js +65 -293
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/catalog.mjs +276 -0
- package/dist/esm/fields/DatePicker/catalog.mjs.map +1 -0
- package/dist/esm/fields/DatePicker/catalog.native.js +317 -0
- package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -0
- package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/index.mjs +1 -274
- package/dist/esm/fields/DatePicker/index.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/index.native.js +60 -179
- package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +13 -10
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +13 -10
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
- package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
- package/dist/esm/fields/Duration/index.mjs +29 -4
- package/dist/esm/fields/Duration/index.mjs.map +1 -1
- package/dist/esm/fields/Duration/index.native.js +29 -4
- package/dist/esm/fields/Duration/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/index.mjs +0 -1
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +5 -1
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
- package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/esm/fields/Icon/index.native.js.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js.map +1 -1
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/index.mjs +9 -4
- package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/esm/fields/PhoneInput/index.native.js +13 -6
- package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
- package/dist/esm/fields/Progress/index.native.js.map +1 -1
- package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/index.mjs +2 -2
- package/dist/esm/fields/Rating/index.mjs.map +1 -1
- package/dist/esm/fields/Rating/index.native.js +5 -2
- package/dist/esm/fields/Rating/index.native.js.map +1 -1
- package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
- package/dist/esm/fields/Rating/types.native.js.map +1 -1
- package/dist/esm/fields/SearchInput/index.mjs +6 -0
- package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
- package/dist/esm/fields/SearchInput/index.native.js +6 -0
- package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +78 -3
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +80 -3
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Signature/index.mjs +10 -6
- package/dist/esm/fields/Signature/index.mjs.map +1 -1
- package/dist/esm/fields/Signature/index.native.js +10 -6
- package/dist/esm/fields/Signature/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.mjs +4 -2
- package/dist/esm/fields/Slider/index.mjs.map +1 -1
- package/dist/esm/fields/Slider/index.native.js +4 -2
- package/dist/esm/fields/Slider/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
- package/dist/esm/fields/Stepper/index.native.js.map +1 -1
- package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
- package/dist/esm/fields/Switch/index.mjs +6 -19
- package/dist/esm/fields/Switch/index.mjs.map +1 -1
- package/dist/esm/fields/Switch/index.native.js +6 -19
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TextArea/index.mjs +19 -5
- package/dist/esm/fields/TextArea/index.mjs.map +1 -1
- package/dist/esm/fields/TextArea/index.native.js +23 -5
- package/dist/esm/fields/TextArea/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/catalog.mjs +174 -0
- package/dist/esm/fields/TimePicker/catalog.mjs.map +1 -0
- package/dist/esm/fields/TimePicker/catalog.native.js +195 -0
- package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -0
- package/dist/esm/fields/TimePicker/index.mjs +2 -173
- package/dist/esm/fields/TimePicker/index.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/index.native.js +76 -87
- package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/geometry.mjs +6 -1
- package/dist/esm/fields/TimeRangeScrubber/geometry.mjs.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/geometry.native.js +6 -1
- package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/index.mjs +37 -18
- package/dist/esm/fields/TimeRangeScrubber/index.mjs.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/index.native.js +41 -18
- package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs +166 -0
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -0
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js +172 -0
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -0
- package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.mjs +5 -0
- package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.mjs.map +1 -0
- package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js +5 -0
- package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -0
- package/dist/esm/fields/nativeSelect.mjs +5 -0
- package/dist/esm/fields/nativeSelect.mjs.map +1 -0
- package/dist/esm/fields/nativeSelect.native.js +5 -0
- package/dist/esm/fields/nativeSelect.native.js.map +1 -0
- package/dist/esm/fields/selectedOrder.native.js.map +1 -1
- package/dist/esm/formSpacing.native.js.map +1 -1
- package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/requiredMarking.native.js.map +1 -1
- package/dist/esm/shared/TimeColumn.native.js.map +1 -1
- package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
- package/dist/esm/shared/colorRamps.native.js.map +1 -1
- package/dist/esm/shared/devWarn.native.js.map +1 -1
- package/dist/esm/shared/floatingList.native.js.map +1 -1
- package/dist/esm/shared/focusManagement.native.js.map +1 -1
- package/dist/esm/shared/groupContext.native.js.map +1 -1
- package/dist/esm/shared/i18n.native.js.map +1 -1
- package/dist/esm/shared/t.native.js.map +1 -1
- package/dist/esm/shared/tableCellContext.native.js.map +1 -1
- package/dist/esm/shared/useDragScroll.native.js.map +1 -1
- package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/esm/shared/utils.native.js.map +1 -1
- package/dist/esm/shared/zIndex.native.js.map +1 -1
- package/dist/esm/themedPrimitives.mjs +5 -0
- package/dist/esm/themedPrimitives.mjs.map +1 -1
- package/dist/esm/themedPrimitives.native.js +5 -0
- package/dist/esm/themedPrimitives.native.js.map +1 -1
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/utils/LinkCell.native.js.map +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
- package/dist/jsx/Button/index.mjs +9 -3
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +14 -3
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +1 -3
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +5 -3
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
- package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.mjs +19 -3
- package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -1
- package/dist/jsx/ContextualSaveBar/index.native.js +22 -6
- package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
- package/dist/jsx/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
- package/dist/jsx/ControlGroup/index.native.js +1 -1
- package/dist/jsx/ControlGroup/index.native.js.map +1 -1
- package/dist/jsx/DescriptionList/index.mjs +41 -13
- package/dist/jsx/DescriptionList/index.mjs.map +1 -1
- package/dist/jsx/DescriptionList/index.native.js +45 -15
- package/dist/jsx/DescriptionList/index.native.js.map +1 -1
- package/dist/jsx/ErrorSummary.mjs +5 -2
- package/dist/jsx/ErrorSummary.mjs.map +1 -1
- package/dist/jsx/ErrorSummary.native.js +4 -1
- 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.native.js +1 -1
- package/dist/jsx/FieldDisplay/index.native.js.map +1 -1
- package/dist/jsx/FieldGroup.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +24 -3
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +43 -2
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/jsx/Form/index.native.js +1 -1
- package/dist/jsx/Form/index.native.js.map +1 -1
- package/dist/jsx/Form/validateOn.native.js.map +1 -1
- package/dist/jsx/FormGrid.native.js.map +1 -1
- package/dist/jsx/FormSection.native.js.map +1 -1
- package/dist/jsx/InputParts/index.mjs +43 -3
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +42 -2
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- 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/spinnerSize.native.js.map +1 -1
- package/dist/jsx/Table/index.native.js.map +1 -1
- package/dist/jsx/Wheel/haptic.native.js.map +1 -1
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/actionLabel.native.js.map +1 -1
- package/dist/jsx/fieldDefaults.native.js.map +1 -1
- package/dist/jsx/fieldLayout.native.js +1 -1
- package/dist/jsx/fieldLayout.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/BarcodePreview.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.native.js +2 -2
- package/dist/jsx/fields/Barcode/index.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/qr.native.js.map +1 -1
- package/dist/jsx/fields/Barcode/scannerTypes.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.mjs +5 -2
- package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.native.js +7 -4
- package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxBox.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxCard.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs +69 -59
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js +76 -66
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/checkboxGroupContext.mjs +7 -0
- package/dist/jsx/fields/Checkbox/checkboxGroupContext.mjs.map +1 -0
- package/dist/jsx/fields/Checkbox/checkboxGroupContext.native.js +36 -0
- package/dist/jsx/fields/Checkbox/checkboxGroupContext.native.js.map +1 -0
- package/dist/jsx/fields/Checkbox/index.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.native.js +3 -3
- package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/parts.native.js +2 -2
- 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.native.js +5 -5
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs +377 -0
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -0
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js +441 -0
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -0
- package/dist/jsx/fields/DatePicker/DatetimePicker.mjs +1 -375
- package/dist/jsx/fields/DatePicker/DatetimePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +70 -298
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js +2 -2
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +2 -2
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/catalog.mjs +276 -0
- package/dist/jsx/fields/DatePicker/catalog.mjs.map +1 -0
- package/dist/jsx/fields/DatePicker/catalog.native.js +350 -0
- package/dist/jsx/fields/DatePicker/catalog.native.js.map +1 -0
- package/dist/jsx/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/index.mjs +1 -274
- package/dist/jsx/fields/DatePicker/index.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/index.native.js +67 -186
- package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +13 -10
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +14 -11
- 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.native.js.map +1 -1
- package/dist/jsx/fields/Duration/index.mjs +29 -4
- package/dist/jsx/fields/Duration/index.mjs.map +1 -1
- package/dist/jsx/fields/Duration/index.native.js +32 -6
- package/dist/jsx/fields/Duration/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/filePickerTypes.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/index.mjs +0 -1
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +7 -3
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/geoValue.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.native.js.map +1 -1
- package/dist/jsx/fields/Icon/index.native.js +3 -3
- package/dist/jsx/fields/Icon/index.native.js.map +1 -1
- package/dist/jsx/fields/ImageField/index.native.js +2 -2
- package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
- package/dist/jsx/fields/Input/index.native.js +2 -2
- package/dist/jsx/fields/Input/index.native.js.map +1 -1
- package/dist/jsx/fields/MentionInput/index.native.js +3 -3
- package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
- package/dist/jsx/fields/OTPInput/index.native.js +3 -3
- 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 +9 -4
- package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.native.js +16 -9
- 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.native.js +1 -1
- package/dist/jsx/fields/Progress/index.native.js.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.native.js +1 -1
- package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/Rating/index.mjs +2 -2
- package/dist/jsx/fields/Rating/index.mjs.map +1 -1
- package/dist/jsx/fields/Rating/index.native.js +5 -2
- package/dist/jsx/fields/Rating/index.native.js.map +1 -1
- package/dist/jsx/fields/Rating/ratingMath.native.js.map +1 -1
- package/dist/jsx/fields/Rating/types.native.js.map +1 -1
- package/dist/jsx/fields/SearchInput/index.mjs +6 -0
- package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
- package/dist/jsx/fields/SearchInput/index.native.js +8 -2
- package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +78 -3
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +94 -6
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Signature/index.mjs +10 -6
- package/dist/jsx/fields/Signature/index.mjs.map +1 -1
- package/dist/jsx/fields/Signature/index.native.js +11 -7
- package/dist/jsx/fields/Signature/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/index.mjs +4 -2
- package/dist/jsx/fields/Slider/index.mjs.map +1 -1
- package/dist/jsx/fields/Slider/index.native.js +4 -2
- 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.native.js +2 -2
- package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
- package/dist/jsx/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
- package/dist/jsx/fields/Switch/index.mjs +6 -19
- package/dist/jsx/fields/Switch/index.mjs.map +1 -1
- package/dist/jsx/fields/Switch/index.native.js +7 -20
- package/dist/jsx/fields/Switch/index.native.js.map +1 -1
- package/dist/jsx/fields/TextArea/index.mjs +19 -5
- package/dist/jsx/fields/TextArea/index.mjs.map +1 -1
- package/dist/jsx/fields/TextArea/index.native.js +25 -7
- package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/catalog.mjs +174 -0
- package/dist/jsx/fields/TimePicker/catalog.mjs.map +1 -0
- package/dist/jsx/fields/TimePicker/catalog.native.js +227 -0
- package/dist/jsx/fields/TimePicker/catalog.native.js.map +1 -0
- package/dist/jsx/fields/TimePicker/index.mjs +2 -173
- package/dist/jsx/fields/TimePicker/index.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/index.native.js +75 -86
- package/dist/jsx/fields/TimePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.native.js +1 -1
- package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/TimeRangeScrubber/geometry.mjs +6 -1
- package/dist/jsx/fields/TimeRangeScrubber/geometry.mjs.map +1 -1
- package/dist/jsx/fields/TimeRangeScrubber/geometry.native.js +6 -0
- package/dist/jsx/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
- package/dist/jsx/fields/TimeRangeScrubber/index.mjs +37 -18
- package/dist/jsx/fields/TimeRangeScrubber/index.mjs.map +1 -1
- package/dist/jsx/fields/TimeRangeScrubber/index.native.js +40 -16
- package/dist/jsx/fields/TimeRangeScrubber/index.native.js.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs +166 -0
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -0
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js +211 -0
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -0
- package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.mjs +5 -0
- package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.mjs.map +1 -0
- package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.native.js +33 -0
- package/dist/jsx/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -0
- package/dist/jsx/fields/nativeSelect.mjs +5 -0
- package/dist/jsx/fields/nativeSelect.mjs.map +1 -0
- package/dist/jsx/fields/nativeSelect.native.js +33 -0
- package/dist/jsx/fields/nativeSelect.native.js.map +1 -0
- package/dist/jsx/fields/selectedOrder.native.js.map +1 -1
- package/dist/jsx/formSpacing.native.js.map +1 -1
- package/dist/jsx/hooks/useFocusManagement.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +44 -43
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/requiredMarking.native.js.map +1 -1
- package/dist/jsx/shared/TimeColumn.native.js +1 -1
- 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.native.js.map +1 -1
- package/dist/jsx/shared/devWarn.native.js.map +1 -1
- package/dist/jsx/shared/floatingList.native.js +1 -1
- 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.native.js.map +1 -1
- 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.native.js +1 -1
- 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 -0
- package/dist/jsx/themedPrimitives.mjs.map +1 -1
- package/dist/jsx/themedPrimitives.native.js +5 -0
- 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 +12 -9
- package/src/Button/Button.labelInk.spec.tsx +1 -1
- package/src/Button/Button.sizeLadder.spec.tsx +124 -0
- package/src/Button/Button.spec.tsx +7 -17
- package/src/Button/Button.stories.tsx +14 -0
- package/src/Button/index.tsx +24 -4
- package/src/Chip/Chip.spec.tsx +15 -0
- package/src/Chip/Chip.stories.tsx +251 -0
- package/src/Chip/index.tsx +5 -1
- package/src/ContextualSaveBar/ContextualSaveBar.spec.tsx +51 -0
- package/src/ContextualSaveBar/ContextualSaveBar.stories.tsx +42 -23
- package/src/ContextualSaveBar/UnsavedChangesDialog.spec.tsx +167 -0
- package/src/ContextualSaveBar/UnsavedChangesDialog.stories.tsx +118 -0
- package/src/ContextualSaveBar/index.tsx +14 -5
- package/src/ContextualSaveBar/unsavedChangesDialogStories.spec.tsx +79 -0
- package/src/DescriptionList/DescriptionList.spec.tsx +19 -1
- package/src/DescriptionList/DescriptionList.stories.tsx +5 -1
- package/src/DescriptionList/index.tsx +60 -20
- package/src/ErrorSummary.stories.tsx +197 -0
- package/src/ErrorSummary.tsx +5 -2
- package/src/FloatingPanel/panelWidthContract.spec.ts +2 -2
- package/src/FloatingPanel/useFloatingPanel.spec.tsx +199 -1
- package/src/FloatingPanel/useFloatingPanel.ts +45 -3
- package/src/InputParts/InputParts.stories.tsx +230 -0
- package/src/InputParts/index.tsx +56 -2
- package/src/InputParts/inputPartsStories.spec.tsx +122 -0
- package/src/Skeleton/Skeleton.stories.tsx +148 -0
- package/src/Skeleton/skeletonStories.spec.tsx +107 -0
- package/src/Spinner/SpinnerGlyph.spec.tsx +132 -0
- package/src/Wheel/Wheel.stories.tsx +232 -0
- package/src/Wheel/WheelEdgeFade.spec.tsx +141 -0
- package/src/Wheel/wheelStories.spec.tsx +143 -0
- package/src/errorSummaryStories.spec.tsx +114 -0
- package/src/fields/Checkbox/Checkbox.spec.tsx +24 -0
- package/src/fields/Checkbox/Checkbox.tsx +8 -3
- package/src/fields/Checkbox/CheckboxBox.spec.tsx +395 -0
- package/src/fields/Checkbox/CheckboxCard.spec.tsx +197 -0
- package/src/fields/Checkbox/CheckboxFieldFrame.spec.tsx +116 -0
- package/src/fields/Checkbox/CheckboxGroup.stories.tsx +15 -0
- package/src/fields/Checkbox/CheckboxGroup.tsx +77 -70
- package/src/fields/Checkbox/checkboxGroupContext.ts +12 -0
- package/src/fields/DatePicker/Calendar.spec.tsx +6 -5
- package/src/fields/DatePicker/DatePicker.stories.tsx +13 -0
- package/src/fields/DatePicker/DatetimePicker.catalog.tsx +586 -0
- package/src/fields/DatePicker/DatetimePicker.native.tsx +243 -0
- package/src/fields/DatePicker/DatetimePicker.tsx +2 -584
- package/src/fields/DatePicker/catalog.tsx +450 -0
- package/src/fields/DatePicker/index.native.tsx +261 -0
- package/src/fields/DatePicker/index.tsx +20 -448
- package/src/fields/DatePicker/parts.tsx +11 -6
- package/src/fields/Duration/Duration.spec.tsx +50 -0
- package/src/fields/Duration/Duration.stories.tsx +21 -0
- package/src/fields/Duration/index.tsx +43 -5
- package/src/fields/FileUpload/index.tsx +5 -1
- package/src/fields/Input/Input.spec.tsx +3 -1
- package/src/fields/PhoneInput/PhoneInput.spec.tsx +16 -63
- package/src/fields/PhoneInput/PhoneInput.tvalue-source.spec.ts +23 -0
- package/src/fields/PhoneInput/index.tsx +10 -3
- package/src/fields/Rating/index.tsx +9 -1
- package/src/fields/SearchInput/SearchInput.spec.tsx +20 -0
- package/src/fields/SearchInput/index.tsx +6 -0
- package/src/fields/Select/Select.stories.tsx +23 -1
- package/src/fields/Select/index.tsx +87 -1
- package/src/fields/Signature/Signature.spec.tsx +22 -3
- package/src/fields/Signature/index.tsx +16 -7
- package/src/fields/Slider/index.tsx +4 -1
- package/src/fields/Switch/index.tsx +14 -12
- package/src/fields/TextArea/TextArea.spec.tsx +68 -0
- package/src/fields/TextArea/index.tsx +23 -5
- package/src/fields/TimePicker/TimePicker.stories.tsx +13 -0
- package/src/fields/TimePicker/catalog.tsx +265 -0
- package/src/fields/TimePicker/index.native.tsx +229 -0
- package/src/fields/TimePicker/index.tsx +6 -261
- package/src/fields/TimeRangeScrubber/TimeRangeScrubber.spec.tsx +36 -0
- package/src/fields/TimeRangeScrubber/geometry.ts +13 -0
- package/src/fields/TimeRangeScrubber/index.tsx +49 -8
- package/src/fields/nativeDateTime/OsDateTimeSheet.spec.ts +12 -0
- package/src/fields/nativeDateTime/OsDateTimeSheet.tsx +197 -0
- package/src/fields/nativeDateTime/osDateTimeIosDisplay.ts +4 -0
- package/src/fields/nativeSelect.spec.ts +28 -0
- package/src/fields/nativeSelect.ts +13 -0
- package/src/index.ts +2 -2
- package/src/themedPrimitives.tsx +10 -6
- package/types/Button/index.d.ts +3 -2
- package/types/Button/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts.map +1 -1
- package/types/ContextualSaveBar/index.d.ts.map +1 -1
- package/types/DescriptionList/index.d.ts.map +1 -1
- package/types/ErrorSummary.d.ts.map +1 -1
- package/types/FloatingPanel/useFloatingPanel.d.ts +13 -0
- package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/fields/Checkbox/Checkbox.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxGroup.d.ts.map +1 -1
- package/types/fields/Checkbox/checkboxGroupContext.d.ts +8 -0
- package/types/fields/Checkbox/checkboxGroupContext.d.ts.map +1 -0
- package/types/fields/DatePicker/DatetimePicker.catalog.d.ts +35 -0
- package/types/fields/DatePicker/DatetimePicker.catalog.d.ts.map +1 -0
- package/types/fields/DatePicker/DatetimePicker.d.ts +2 -32
- package/types/fields/DatePicker/DatetimePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.native.d.ts +26 -0
- package/types/fields/DatePicker/DatetimePicker.native.d.ts.map +1 -0
- package/types/fields/DatePicker/catalog.d.ts +42 -0
- package/types/fields/DatePicker/catalog.d.ts.map +1 -0
- package/types/fields/DatePicker/index.d.ts +2 -39
- package/types/fields/DatePicker/index.d.ts.map +1 -1
- package/types/fields/DatePicker/index.native.d.ts +40 -0
- package/types/fields/DatePicker/index.native.d.ts.map +1 -0
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/Duration/index.d.ts +2 -0
- package/types/fields/Duration/index.d.ts.map +1 -1
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/PhoneInput/index.d.ts.map +1 -1
- package/types/fields/Rating/index.d.ts.map +1 -1
- package/types/fields/SearchInput/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts +6 -1
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/Signature/index.d.ts.map +1 -1
- package/types/fields/Slider/index.d.ts.map +1 -1
- package/types/fields/Switch/index.d.ts.map +1 -1
- package/types/fields/TextArea/index.d.ts.map +1 -1
- package/types/fields/TimePicker/catalog.d.ts +41 -0
- package/types/fields/TimePicker/catalog.d.ts.map +1 -0
- package/types/fields/TimePicker/index.d.ts +2 -38
- package/types/fields/TimePicker/index.d.ts.map +1 -1
- package/types/fields/TimePicker/index.native.d.ts +31 -0
- package/types/fields/TimePicker/index.native.d.ts.map +1 -0
- package/types/fields/TimeRangeScrubber/geometry.d.ts +8 -0
- package/types/fields/TimeRangeScrubber/geometry.d.ts.map +1 -1
- package/types/fields/TimeRangeScrubber/index.d.ts +1 -1
- package/types/fields/TimeRangeScrubber/index.d.ts.map +1 -1
- package/types/fields/nativeDateTime/OsDateTimeSheet.d.ts +12 -0
- package/types/fields/nativeDateTime/OsDateTimeSheet.d.ts.map +1 -0
- package/types/fields/nativeDateTime/osDateTimeIosDisplay.d.ts +3 -0
- package/types/fields/nativeDateTime/osDateTimeIosDisplay.d.ts.map +1 -0
- package/types/fields/nativeSelect.d.ts +12 -0
- package/types/fields/nativeSelect.d.ts.map +1 -0
- package/types/index.d.ts +2 -2
- package/types/index.d.ts.map +1 -1
- package/types/themedPrimitives.d.ts.map +1 -1
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { action } from "@multiplatform.one/storybook";
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
3
|
+
import {
|
|
4
|
+
EnvelopeIcon,
|
|
5
|
+
EyeIcon,
|
|
6
|
+
MagnifyingGlassIcon,
|
|
7
|
+
WarningCircleIcon,
|
|
8
|
+
} from "@phosphor-icons/react";
|
|
9
|
+
import { useState } from "react";
|
|
10
|
+
import { Paragraph, YStack } from "tamagui";
|
|
11
|
+
import { Input as InputParts } from "./index";
|
|
12
|
+
|
|
13
|
+
const meta: Meta<typeof InputParts> = {
|
|
14
|
+
title: "Forms/InputParts",
|
|
15
|
+
component: InputParts,
|
|
16
|
+
parameters: {
|
|
17
|
+
status: { type: "beta" },
|
|
18
|
+
docs: {
|
|
19
|
+
description: {
|
|
20
|
+
component:
|
|
21
|
+
"The unstyled anatomy the Input field is assembled from, for consumers who need a shape the field does not offer. `InputParts.Box` is the bordered frame that owns the focus ring; `Area` is the text-entry itself and never rings; `Icon`, `Button` and `Section` are the slots either side of it; `Label`, `Info` and `Meta` are the chrome above and below. Reach for the `Input` FIELD first — this is the escape hatch.",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default meta;
|
|
28
|
+
type Story = StoryObj<typeof InputParts>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The whole anatomy at once: Label above, Box holding a leading Icon and the
|
|
32
|
+
* Area, Meta reserving the caption line underneath.
|
|
33
|
+
*/
|
|
34
|
+
export const Anatomy: Story = {
|
|
35
|
+
render: () => (
|
|
36
|
+
<InputParts width={320}>
|
|
37
|
+
<InputParts.Label htmlFor="anatomy-email">Email</InputParts.Label>
|
|
38
|
+
<InputParts.Box>
|
|
39
|
+
<InputParts.Icon adornment="leading">
|
|
40
|
+
<EnvelopeIcon />
|
|
41
|
+
</InputParts.Icon>
|
|
42
|
+
<InputParts.Area
|
|
43
|
+
id="anatomy-email"
|
|
44
|
+
placeholder="you@example.com"
|
|
45
|
+
onChangeText={action("onChangeText")}
|
|
46
|
+
/>
|
|
47
|
+
</InputParts.Box>
|
|
48
|
+
<InputParts.Meta helperText="We only use this to send receipts." />
|
|
49
|
+
</InputParts>
|
|
50
|
+
),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* RING-ON-BOX (LC-71): the Box carries the focus ring so adornments sit inside
|
|
55
|
+
* it; the Area's own outline is killed. Tab into the field and the whole frame
|
|
56
|
+
* rings once, not the text run.
|
|
57
|
+
*/
|
|
58
|
+
export const FocusRingOnTheBox: Story = {
|
|
59
|
+
render: () => (
|
|
60
|
+
<YStack gap="$4" width={320}>
|
|
61
|
+
<Paragraph size="$2">Tab in — the border box rings, the input does not.</Paragraph>
|
|
62
|
+
<InputParts>
|
|
63
|
+
<InputParts.Box>
|
|
64
|
+
<InputParts.Icon adornment="leading">
|
|
65
|
+
<MagnifyingGlassIcon />
|
|
66
|
+
</InputParts.Icon>
|
|
67
|
+
<InputParts.Area placeholder="Search" onChangeText={action("onChangeText")} />
|
|
68
|
+
</InputParts.Box>
|
|
69
|
+
</InputParts>
|
|
70
|
+
</YStack>
|
|
71
|
+
),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/** Leading and trailing slots. The trailing end-cap is square by size recipe. */
|
|
75
|
+
export const Adornments: Story = {
|
|
76
|
+
render: () => (
|
|
77
|
+
<YStack gap="$4" width={320}>
|
|
78
|
+
<InputParts>
|
|
79
|
+
<InputParts.Box>
|
|
80
|
+
<InputParts.Icon adornment="leading">
|
|
81
|
+
<MagnifyingGlassIcon />
|
|
82
|
+
</InputParts.Icon>
|
|
83
|
+
<InputParts.Area placeholder="Leading icon" />
|
|
84
|
+
</InputParts.Box>
|
|
85
|
+
</InputParts>
|
|
86
|
+
<InputParts>
|
|
87
|
+
<InputParts.Box>
|
|
88
|
+
<InputParts.Area placeholder="Trailing icon" />
|
|
89
|
+
<InputParts.Icon adornment="trailing">
|
|
90
|
+
<EnvelopeIcon />
|
|
91
|
+
</InputParts.Icon>
|
|
92
|
+
</InputParts.Box>
|
|
93
|
+
</InputParts>
|
|
94
|
+
<InputParts>
|
|
95
|
+
<InputParts.Box>
|
|
96
|
+
<InputParts.Icon adornment="leading">
|
|
97
|
+
<MagnifyingGlassIcon />
|
|
98
|
+
</InputParts.Icon>
|
|
99
|
+
<InputParts.Area placeholder="Both ends" />
|
|
100
|
+
<InputParts.Icon adornment="trailing">
|
|
101
|
+
<EnvelopeIcon />
|
|
102
|
+
</InputParts.Icon>
|
|
103
|
+
</InputParts.Box>
|
|
104
|
+
</InputParts>
|
|
105
|
+
</YStack>
|
|
106
|
+
),
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* `InputParts.Button` is the pressable end-cap — a reveal toggle, a clear, a
|
|
111
|
+
* copy. It squares off to the control height so the frame stays rectangular.
|
|
112
|
+
*/
|
|
113
|
+
export const TrailingButton: Story = {
|
|
114
|
+
render: () => {
|
|
115
|
+
const Example = () => {
|
|
116
|
+
const [secure, setSecure] = useState(true);
|
|
117
|
+
return (
|
|
118
|
+
<InputParts width={320}>
|
|
119
|
+
<InputParts.Label htmlFor="parts-password">Password</InputParts.Label>
|
|
120
|
+
<InputParts.Box paddingInlineEnd={0}>
|
|
121
|
+
<InputParts.Area
|
|
122
|
+
id="parts-password"
|
|
123
|
+
placeholder="••••••••"
|
|
124
|
+
secureTextEntry={secure}
|
|
125
|
+
onChangeText={action("onChangeText")}
|
|
126
|
+
/>
|
|
127
|
+
<InputParts.Button
|
|
128
|
+
glyphRing
|
|
129
|
+
type="button"
|
|
130
|
+
aria-label={secure ? "Show password" : "Hide password"}
|
|
131
|
+
onPress={() => {
|
|
132
|
+
setSecure((prev) => !prev);
|
|
133
|
+
action("togglePasswordVisibility")(!secure);
|
|
134
|
+
}}
|
|
135
|
+
>
|
|
136
|
+
<InputParts.Icon aria-hidden>
|
|
137
|
+
<EyeIcon />
|
|
138
|
+
</InputParts.Icon>
|
|
139
|
+
</InputParts.Button>
|
|
140
|
+
</InputParts.Box>
|
|
141
|
+
<InputParts.Meta helperText={secure ? "Hidden" : "Visible"} />
|
|
142
|
+
</InputParts>
|
|
143
|
+
);
|
|
144
|
+
};
|
|
145
|
+
return <Example />;
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* STABLE GROUND (Axiom 8 / DG-FORM-04): `Meta` owns ONE caption slot. The error
|
|
151
|
+
* replaces the helper in place, so surfacing it shifts nothing below.
|
|
152
|
+
*/
|
|
153
|
+
export const MetaReservesOneLine: Story = {
|
|
154
|
+
render: () => (
|
|
155
|
+
<YStack gap="$5" width={320}>
|
|
156
|
+
<InputParts>
|
|
157
|
+
<InputParts.Label>Helper</InputParts.Label>
|
|
158
|
+
<InputParts.Box>
|
|
159
|
+
<InputParts.Area placeholder="Valid" />
|
|
160
|
+
</InputParts.Box>
|
|
161
|
+
<InputParts.Meta helperText="Two to thirty characters." />
|
|
162
|
+
</InputParts>
|
|
163
|
+
<InputParts>
|
|
164
|
+
<InputParts.Label>Error replaces it</InputParts.Label>
|
|
165
|
+
<InputParts.Box>
|
|
166
|
+
<InputParts.Area placeholder="Invalid" aria-invalid />
|
|
167
|
+
<InputParts.Icon adornment="trailing" color="$red10">
|
|
168
|
+
<WarningCircleIcon aria-hidden />
|
|
169
|
+
</InputParts.Icon>
|
|
170
|
+
</InputParts.Box>
|
|
171
|
+
<InputParts.Meta
|
|
172
|
+
helperText="Two to thirty characters."
|
|
173
|
+
displayError="Enter at least two characters."
|
|
174
|
+
/>
|
|
175
|
+
</InputParts>
|
|
176
|
+
</YStack>
|
|
177
|
+
),
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/** `Info` is the caption primitive `Meta` picks; use it directly for prose. */
|
|
181
|
+
export const Info: Story = {
|
|
182
|
+
render: () => (
|
|
183
|
+
<InputParts width={320}>
|
|
184
|
+
<InputParts.Label>Display name</InputParts.Label>
|
|
185
|
+
<InputParts.Box>
|
|
186
|
+
<InputParts.Area placeholder="Ada Lovelace" />
|
|
187
|
+
</InputParts.Box>
|
|
188
|
+
<InputParts.Info>Shown next to everything you publish.</InputParts.Info>
|
|
189
|
+
</InputParts>
|
|
190
|
+
),
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/** `TextArea` is the multi-line Area: same focus wiring, no ring of its own. */
|
|
194
|
+
export const MultiLine: Story = {
|
|
195
|
+
render: () => (
|
|
196
|
+
<InputParts width={360}>
|
|
197
|
+
<InputParts.Label htmlFor="parts-notes">Notes</InputParts.Label>
|
|
198
|
+
<InputParts.Box alignItems="flex-start" height="auto" paddingVertical="$2">
|
|
199
|
+
<InputParts.TextArea
|
|
200
|
+
id="parts-notes"
|
|
201
|
+
rows={4}
|
|
202
|
+
placeholder="Anything the team should know"
|
|
203
|
+
onChangeText={action("onChangeText")}
|
|
204
|
+
/>
|
|
205
|
+
</InputParts.Box>
|
|
206
|
+
<InputParts.Meta helperText="Markdown is not parsed here." />
|
|
207
|
+
</InputParts>
|
|
208
|
+
),
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
/** Disabled chrome lives on the Box, not on the Area. */
|
|
212
|
+
export const DisabledBox: Story = {
|
|
213
|
+
render: () => (
|
|
214
|
+
<YStack gap="$4" width={320}>
|
|
215
|
+
<InputParts>
|
|
216
|
+
<InputParts.Box>
|
|
217
|
+
<InputParts.Area placeholder="Enabled" />
|
|
218
|
+
</InputParts.Box>
|
|
219
|
+
</InputParts>
|
|
220
|
+
<InputParts>
|
|
221
|
+
<InputParts.Box disabled>
|
|
222
|
+
<InputParts.Icon adornment="leading">
|
|
223
|
+
<EnvelopeIcon />
|
|
224
|
+
</InputParts.Icon>
|
|
225
|
+
<InputParts.Area placeholder="Disabled" disabled />
|
|
226
|
+
</InputParts.Box>
|
|
227
|
+
</InputParts>
|
|
228
|
+
</YStack>
|
|
229
|
+
),
|
|
230
|
+
};
|
package/src/InputParts/index.tsx
CHANGED
|
@@ -27,6 +27,8 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
ensureCompositeFocusRing,
|
|
29
29
|
ensureFocusVisibleRing,
|
|
30
|
+
FOCUS_RING_CLIPPED_OFFSET,
|
|
31
|
+
FOCUS_RING_HALO_OFFSET,
|
|
30
32
|
isTouchSurface,
|
|
31
33
|
recipeFamilies,
|
|
32
34
|
resolveGlyphPaint,
|
|
@@ -219,7 +221,9 @@ export function boxRingMode(
|
|
|
219
221
|
}
|
|
220
222
|
|
|
221
223
|
export function boxRingOffset(mode: "inset" | "outset" | undefined): number {
|
|
222
|
-
|
|
224
|
+
// Both branches are LC-71 §4 sanctioned offsets: the clipping inset when the
|
|
225
|
+
// Box clips its adornments, the shape halo when it does not (MPO-92).
|
|
226
|
+
return mode === "outset" ? FOCUS_RING_HALO_OFFSET : FOCUS_RING_CLIPPED_OFFSET;
|
|
223
227
|
}
|
|
224
228
|
|
|
225
229
|
export const inputPartsRingCss = `/* LC-71: ring on Box (adornments inside); Area never outlines.
|
|
@@ -781,6 +785,13 @@ const InputAreaImpl = InputFrame.styleable<{
|
|
|
781
785
|
focusVisibleStyle: focusVisibleStyleProp,
|
|
782
786
|
className: classNameProp,
|
|
783
787
|
inputMode: inputModeProp,
|
|
788
|
+
flex: flexProp,
|
|
789
|
+
width: widthProp,
|
|
790
|
+
minWidth: minWidthProp,
|
|
791
|
+
maxWidth: maxWidthProp,
|
|
792
|
+
height: heightProp,
|
|
793
|
+
minHeight: minHeightProp,
|
|
794
|
+
maxHeight: maxHeightProp,
|
|
784
795
|
...props
|
|
785
796
|
} = areaProps as typeof areaProps & {
|
|
786
797
|
focusStyle?: Record<string, unknown>;
|
|
@@ -788,6 +799,13 @@ const InputAreaImpl = InputFrame.styleable<{
|
|
|
788
799
|
className?: string;
|
|
789
800
|
inputMode?: InputModeValue;
|
|
790
801
|
type?: string;
|
|
802
|
+
flex?: number | string;
|
|
803
|
+
width?: number | string;
|
|
804
|
+
minWidth?: number | string;
|
|
805
|
+
maxWidth?: number | string;
|
|
806
|
+
height?: number | string;
|
|
807
|
+
minHeight?: number | string;
|
|
808
|
+
maxHeight?: number | string;
|
|
791
809
|
};
|
|
792
810
|
const { knobProps } = useResolvedKnobs();
|
|
793
811
|
const theme = useTheme();
|
|
@@ -799,6 +817,11 @@ const InputAreaImpl = InputFrame.styleable<{
|
|
|
799
817
|
// number-pad↔numeric, decimal-pad↔decimal, email-address↔email.
|
|
800
818
|
const resolvedInputMode = inputModeProp ?? mapKeyboardTypeToInputMode(keyboardType);
|
|
801
819
|
const resolvedKeyboardType = keyboardType ?? mapInputModeToKeyboardType(resolvedInputMode);
|
|
820
|
+
// Duration (and any Area with a numeric width / flex 0) must not sit inside
|
|
821
|
+
// a flex:1 wrapper — that wrapper grows with the Box, then Section's
|
|
822
|
+
// justifyContent:center floats the cluster in the leftover space. OTP still
|
|
823
|
+
// pins width on Box, not Area, so it keeps the grow wrapper.
|
|
824
|
+
const hugWidth = flexProp === 0 || typeof widthProp === "number";
|
|
802
825
|
|
|
803
826
|
return (
|
|
804
827
|
// LC-06/LC-10 (UX-P12): in a table cell the flex wrapper and the raw
|
|
@@ -806,7 +829,20 @@ const InputAreaImpl = InputFrame.styleable<{
|
|
|
806
829
|
// (min-width:auto floors flex items at it); width 100% makes the input
|
|
807
830
|
// adopt the flexed width instead of its size-attribute default. Explicit
|
|
808
831
|
// consumer widths (OTP digit boxes) still win via the later spread.
|
|
809
|
-
<View
|
|
832
|
+
<View
|
|
833
|
+
flex={hugWidth ? 0 : 1}
|
|
834
|
+
{...(hugWidth && typeof widthProp === "number"
|
|
835
|
+
? {
|
|
836
|
+
width: widthProp,
|
|
837
|
+
minWidth: minWidthProp ?? widthProp,
|
|
838
|
+
maxWidth: maxWidthProp ?? widthProp,
|
|
839
|
+
}
|
|
840
|
+
: undefined)}
|
|
841
|
+
{...(heightProp != null
|
|
842
|
+
? { height: heightProp, minHeight: minHeightProp ?? 0, maxHeight: maxHeightProp }
|
|
843
|
+
: undefined)}
|
|
844
|
+
{...(inTableCell ? { minWidth: 0 } : undefined)}
|
|
845
|
+
>
|
|
810
846
|
<InputFrame
|
|
811
847
|
aria-describedby={fieldDescribedBy}
|
|
812
848
|
{...nativeA11yProps}
|
|
@@ -837,7 +873,25 @@ const InputAreaImpl = InputFrame.styleable<{
|
|
|
837
873
|
: undefined
|
|
838
874
|
}
|
|
839
875
|
{...props}
|
|
876
|
+
{...(flexProp != null ? { flex: flexProp } : undefined)}
|
|
877
|
+
{...(widthProp != null
|
|
878
|
+
? { width: widthProp, minWidth: minWidthProp, maxWidth: maxWidthProp }
|
|
879
|
+
: undefined)}
|
|
880
|
+
{...(heightProp != null
|
|
881
|
+
? { height: heightProp, minHeight: minHeightProp, maxHeight: maxHeightProp }
|
|
882
|
+
: undefined)}
|
|
840
883
|
{...webAreaAttrs(classNameProp)}
|
|
884
|
+
{...(isWeb && typeof heightProp === "number"
|
|
885
|
+
? {
|
|
886
|
+
// Beat the UA / `$true` 44px min on <input> when a recipe height is set
|
|
887
|
+
// (Duration size:$3 is 36; a 44 input overflows the box).
|
|
888
|
+
style: {
|
|
889
|
+
height: heightProp,
|
|
890
|
+
minHeight: typeof minHeightProp === "number" ? minHeightProp : 0,
|
|
891
|
+
maxHeight: typeof maxHeightProp === "number" ? maxHeightProp : heightProp,
|
|
892
|
+
},
|
|
893
|
+
}
|
|
894
|
+
: undefined)}
|
|
841
895
|
{...AREA_NO_OUTLINE}
|
|
842
896
|
focusStyle={{ ...focusStyleProp, ...AREA_NO_OUTLINE }}
|
|
843
897
|
focusVisibleStyle={{ ...focusVisibleStyleProp, ...AREA_NO_OUTLINE }}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mounts every Forms/InputParts story and asserts the anatomy each one exists
|
|
3
|
+
* to show. The theme hooks stay REAL: Box height, icon size and the caption
|
|
4
|
+
* type ramp all come out of useResolvedKnobs, so a stub would measure a
|
|
5
|
+
* geometry the gallery never paints.
|
|
6
|
+
*/
|
|
7
|
+
import { cleanup } from "@testing-library/react";
|
|
8
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
9
|
+
import type { ReactElement } from "react";
|
|
10
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
11
|
+
|
|
12
|
+
import * as storiesModule from "./InputParts.stories";
|
|
13
|
+
|
|
14
|
+
afterEach(cleanup);
|
|
15
|
+
|
|
16
|
+
const meta = storiesModule.default;
|
|
17
|
+
const {
|
|
18
|
+
Anatomy,
|
|
19
|
+
FocusRingOnTheBox,
|
|
20
|
+
Adornments,
|
|
21
|
+
TrailingButton,
|
|
22
|
+
MetaReservesOneLine,
|
|
23
|
+
Info,
|
|
24
|
+
MultiLine,
|
|
25
|
+
DisabledBox,
|
|
26
|
+
} = storiesModule;
|
|
27
|
+
|
|
28
|
+
type StoryLike = { render?: (args: Record<string, unknown>) => ReactElement };
|
|
29
|
+
|
|
30
|
+
function mount(story: StoryLike) {
|
|
31
|
+
if (!story.render) throw new Error("story has no render");
|
|
32
|
+
return renderWithProviders(story.render({ ...(meta.args as Record<string, unknown>) }));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const stories = {
|
|
36
|
+
Anatomy,
|
|
37
|
+
FocusRingOnTheBox,
|
|
38
|
+
Adornments,
|
|
39
|
+
TrailingButton,
|
|
40
|
+
MetaReservesOneLine,
|
|
41
|
+
Info,
|
|
42
|
+
MultiLine,
|
|
43
|
+
DisabledBox,
|
|
44
|
+
} as const;
|
|
45
|
+
|
|
46
|
+
describe("Forms/InputParts stories", () => {
|
|
47
|
+
it("files under its own Forms title, separate from the Input field's", () => {
|
|
48
|
+
expect(meta.title).toBe("Forms/InputParts");
|
|
49
|
+
expect(meta.title).not.toBe("Forms/Input");
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it.each(Object.entries(stories))("%s mounts something interactive", (_name, story) => {
|
|
53
|
+
const { container } = mount(story as StoryLike);
|
|
54
|
+
expect(container.querySelector("input, textarea, button")).toBeTruthy();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it("Anatomy wires the label to the control it names", () => {
|
|
58
|
+
const { container } = mount(Anatomy as StoryLike);
|
|
59
|
+
const input = container.querySelector("#anatomy-email");
|
|
60
|
+
expect(input).toBeTruthy();
|
|
61
|
+
expect(container.querySelector("label[for='anatomy-email']")).toBeTruthy();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it("Anatomy renders the helper caption under the box", () => {
|
|
65
|
+
const { getByText } = mount(Anatomy as StoryLike);
|
|
66
|
+
expect(getByText("We only use this to send receipts.")).toBeTruthy();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it("Adornments builds three boxes: leading, trailing, and both", () => {
|
|
70
|
+
const { container } = mount(Adornments as StoryLike);
|
|
71
|
+
const placeholders = Array.from(container.querySelectorAll("input")).map((i) =>
|
|
72
|
+
i.getAttribute("placeholder"),
|
|
73
|
+
);
|
|
74
|
+
expect(placeholders).toEqual(["Leading icon", "Trailing icon", "Both ends"]);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it("TrailingButton exposes a labelled reveal toggle beside the field", () => {
|
|
78
|
+
const { container } = mount(TrailingButton as StoryLike);
|
|
79
|
+
const button = container.querySelector("[aria-label='Show password']");
|
|
80
|
+
expect(button).toBeTruthy();
|
|
81
|
+
expect(container.querySelector("#parts-password")).toBeTruthy();
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* STABLE GROUND: Meta owns ONE caption slot. The error REPLACES the helper,
|
|
86
|
+
* so the errored field must not show both lines.
|
|
87
|
+
*/
|
|
88
|
+
it("MetaReservesOneLine replaces the helper with the error rather than stacking them", () => {
|
|
89
|
+
const { container, getByText } = mount(MetaReservesOneLine as StoryLike);
|
|
90
|
+
expect(getByText("Enter at least two characters.")).toBeTruthy();
|
|
91
|
+
// The valid field keeps its helper; the errored one does not add a second line.
|
|
92
|
+
const helpers = Array.from(container.querySelectorAll("*")).filter(
|
|
93
|
+
(el) => el.children.length === 0 && el.textContent === "Two to thirty characters.",
|
|
94
|
+
);
|
|
95
|
+
expect(helpers.length).toBe(1);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it("MetaReservesOneLine announces the error to assistive tech", () => {
|
|
99
|
+
const { container } = mount(MetaReservesOneLine as StoryLike);
|
|
100
|
+
const alert = container.querySelector("[role='alert']");
|
|
101
|
+
expect(alert?.textContent).toBe("Enter at least two characters.");
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it("Info renders caption prose without a Meta wrapper", () => {
|
|
105
|
+
const { getByText, container } = mount(Info as StoryLike);
|
|
106
|
+
expect(getByText("Shown next to everything you publish.")).toBeTruthy();
|
|
107
|
+
expect(container.querySelector("[role='alert']")).toBeNull();
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it("MultiLine mounts a textarea, not a single-line input", () => {
|
|
111
|
+
const { container } = mount(MultiLine as StoryLike);
|
|
112
|
+
expect(container.querySelector("textarea#parts-notes")).toBeTruthy();
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it("DisabledBox disables only the second field, leaving the first usable", () => {
|
|
116
|
+
const { container } = mount(DisabledBox as StoryLike);
|
|
117
|
+
const inputs = Array.from(container.querySelectorAll("input"));
|
|
118
|
+
expect(inputs.length).toBe(2);
|
|
119
|
+
expect(inputs[0].disabled).toBe(false);
|
|
120
|
+
expect(inputs[1].disabled).toBe(true);
|
|
121
|
+
});
|
|
122
|
+
});
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
2
|
+
import { Preset } from "@multiplatform.one/theme";
|
|
3
|
+
import { Paragraph, XStack, YStack } from "tamagui";
|
|
4
|
+
import { Skeleton, SkeletonCircle, SkeletonText } from "./index";
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof Skeleton> = {
|
|
7
|
+
title: "Forms/Skeleton",
|
|
8
|
+
component: Skeleton,
|
|
9
|
+
parameters: {
|
|
10
|
+
status: { type: "beta" },
|
|
11
|
+
docs: {
|
|
12
|
+
description: {
|
|
13
|
+
component:
|
|
14
|
+
"The placeholder every field paints while its value is loading — what `skeleton` on Input, Select, CheckboxGroup and the rest resolves to. A flat blob: it takes the radius knob but never draws a border, and its pulse rides the animation knob, so `animation: none` stops it dead rather than dimming it.",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
argTypes: {
|
|
19
|
+
variant: { control: "select", options: ["text", "circular", "rectangular", "rounded"] },
|
|
20
|
+
animate: { control: "boolean" },
|
|
21
|
+
width: { control: "text" },
|
|
22
|
+
height: { control: "text" },
|
|
23
|
+
},
|
|
24
|
+
args: {
|
|
25
|
+
variant: "text",
|
|
26
|
+
animate: true,
|
|
27
|
+
width: 240,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default meta;
|
|
32
|
+
type Story = StoryObj<typeof Skeleton>;
|
|
33
|
+
|
|
34
|
+
export const Basic: Story = {
|
|
35
|
+
render: (args) => <Skeleton {...args} />,
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/** The four variants. `text` and `circular` carry their own height. */
|
|
39
|
+
export const Variants: Story = {
|
|
40
|
+
render: () => (
|
|
41
|
+
<YStack gap="$4">
|
|
42
|
+
{(["text", "rounded", "rectangular"] as const).map((variant) => (
|
|
43
|
+
<YStack key={variant} gap="$2">
|
|
44
|
+
<Paragraph size="$2">{variant}</Paragraph>
|
|
45
|
+
<Skeleton variant={variant} width={240} height={variant === "text" ? undefined : 48} />
|
|
46
|
+
</YStack>
|
|
47
|
+
))}
|
|
48
|
+
<YStack gap="$2">
|
|
49
|
+
<Paragraph size="$2">circular</Paragraph>
|
|
50
|
+
<Skeleton variant="circular" width={48} height={48} />
|
|
51
|
+
</YStack>
|
|
52
|
+
</YStack>
|
|
53
|
+
),
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* `SkeletonText` stacks lines and shortens the last one, which is what makes a
|
|
58
|
+
* block of bones read as a paragraph rather than a table.
|
|
59
|
+
*/
|
|
60
|
+
export const TextLines: Story = {
|
|
61
|
+
render: () => (
|
|
62
|
+
<YStack gap="$6" width={320}>
|
|
63
|
+
<YStack gap="$2">
|
|
64
|
+
<Paragraph size="$2">one line</Paragraph>
|
|
65
|
+
<SkeletonText />
|
|
66
|
+
</YStack>
|
|
67
|
+
<YStack gap="$2">
|
|
68
|
+
<Paragraph size="$2">three lines, last at 70%</Paragraph>
|
|
69
|
+
<SkeletonText lines={3} />
|
|
70
|
+
</YStack>
|
|
71
|
+
<YStack gap="$2">
|
|
72
|
+
<Paragraph size="$2">five lines, last at 40%</Paragraph>
|
|
73
|
+
<SkeletonText lines={5} lastLineWidth="40%" />
|
|
74
|
+
</YStack>
|
|
75
|
+
</YStack>
|
|
76
|
+
),
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/** `SkeletonCircle` sizes itself one height step above the control ramp. */
|
|
80
|
+
export const Circles: Story = {
|
|
81
|
+
render: () => (
|
|
82
|
+
<XStack gap="$4" alignItems="center">
|
|
83
|
+
<SkeletonCircle />
|
|
84
|
+
<SkeletonCircle size={32} />
|
|
85
|
+
<SkeletonCircle size={64} />
|
|
86
|
+
</XStack>
|
|
87
|
+
),
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/** What a loading row actually looks like: avatar, name, two lines of body. */
|
|
91
|
+
export const LoadingRow: Story = {
|
|
92
|
+
render: () => (
|
|
93
|
+
<XStack gap="$3" width={360} alignItems="flex-start">
|
|
94
|
+
<SkeletonCircle size={40} />
|
|
95
|
+
<YStack flex={1} gap="$2">
|
|
96
|
+
<Skeleton variant="text" width="45%" />
|
|
97
|
+
<SkeletonText lines={2} />
|
|
98
|
+
</YStack>
|
|
99
|
+
</XStack>
|
|
100
|
+
),
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* MOTION-RIDES-KNOB (LC-68 / LC-20): the pulse is on when the animation knob
|
|
105
|
+
* is, and gone when it is not. `animate={false}` is the same off switch at the
|
|
106
|
+
* call site — neither leaves a half-speed shimmer behind.
|
|
107
|
+
*/
|
|
108
|
+
export const MotionOff: Story = {
|
|
109
|
+
render: () => (
|
|
110
|
+
<XStack gap="$6" alignItems="flex-start">
|
|
111
|
+
<YStack gap="$2" width={180}>
|
|
112
|
+
<Paragraph size="$2">animation knob on</Paragraph>
|
|
113
|
+
<SkeletonText lines={3} />
|
|
114
|
+
</YStack>
|
|
115
|
+
<YStack gap="$2" width={180}>
|
|
116
|
+
<Paragraph size="$2">animate={"{false}"}</Paragraph>
|
|
117
|
+
<SkeletonText lines={3} animate={false} />
|
|
118
|
+
</YStack>
|
|
119
|
+
<Preset overrides={{ animation: "none" }}>
|
|
120
|
+
<YStack gap="$2" width={180}>
|
|
121
|
+
<Paragraph size="$2">animation: none</Paragraph>
|
|
122
|
+
<SkeletonText lines={3} />
|
|
123
|
+
</YStack>
|
|
124
|
+
</Preset>
|
|
125
|
+
</XStack>
|
|
126
|
+
),
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* R-CLAMP / R-PILL: a text bone squares off at `borderRadius: none`, and a
|
|
131
|
+
* circle stays round at every radius value because it declares R-PILL.
|
|
132
|
+
*/
|
|
133
|
+
export const RadiusKnob: Story = {
|
|
134
|
+
render: () => (
|
|
135
|
+
<XStack gap="$6" alignItems="flex-start">
|
|
136
|
+
{(["none", "medium", "large"] as const).map((borderRadius) => (
|
|
137
|
+
<Preset key={borderRadius} overrides={{ borderRadius }}>
|
|
138
|
+
<YStack gap="$2" width={160}>
|
|
139
|
+
<Paragraph size="$2">borderRadius: {borderRadius}</Paragraph>
|
|
140
|
+
<Skeleton variant="text" width={140} />
|
|
141
|
+
<Skeleton variant="rounded" width={140} height={40} />
|
|
142
|
+
<SkeletonCircle size={40} />
|
|
143
|
+
</YStack>
|
|
144
|
+
</Preset>
|
|
145
|
+
))}
|
|
146
|
+
</XStack>
|
|
147
|
+
),
|
|
148
|
+
};
|