@multiplatform.one/forms 7.90.6 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AdaptivePopup/index.native.js +2 -2
- package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
- package/dist/cjs/Button/IconButtonGroup.native.js.map +1 -1
- package/dist/cjs/Button/circleGlyph.native.js.map +1 -1
- package/dist/cjs/Button/iconButtonGroupContext.native.js.map +1 -1
- package/dist/cjs/Button/index.cjs +1 -2
- package/dist/cjs/Button/index.native.js +3 -4
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Button/webGlass.native.js.map +1 -1
- 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.native.js +3 -3
- 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.native.js +2 -2
- package/dist/cjs/DescriptionList/index.native.js.map +1 -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/PanelHeader.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/RegularPanel.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/compactFace.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/containingBlock.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/coverRect.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/echoContext.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.cjs +1 -4
- package/dist/cjs/FloatingPanel/index.native.js +2 -3
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/paintedBox.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/panelWidth.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/regularPlacement.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/trailingAction.native.js +1 -1
- package/dist/cjs/FloatingPanel/trailingAction.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +1 -7
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +1 -7
- 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/submissionController.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/PasswordReveal.native.js.map +1 -1
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/InputParts/keyboardAppearance.native.js.map +1 -1
- package/dist/cjs/Label/index.native.js.map +1 -1
- package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
- package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
- package/dist/cjs/MediaPicker/types.native.js.map +1 -1
- package/dist/cjs/MediaPicker/useMediaPicker.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/Wheel/wheelShared.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 +0 -2
- package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -3
- 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 +2 -4
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +3 -5
- package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/SystemColorField.native.js.map +1 -1
- package/dist/cjs/fields/ColorPicker/index.cjs +1 -3
- package/dist/cjs/fields/ColorPicker/index.native.js +4 -6
- 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/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +0 -2
- package/dist/cjs/fields/Combobox/index.native.js +6 -8
- 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 +2 -5
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +5 -8
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +3 -5
- 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 +2 -5
- package/dist/cjs/fields/DatePicker/catalog.native.js +4 -7
- package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/index.native.js +3 -5
- package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.native.js +2 -2
- 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/DurationWheel.native.js +1 -1
- package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
- package/dist/cjs/fields/Duration/durationWheelTypes.native.js.map +1 -1
- package/dist/cjs/fields/Duration/index.native.js +3 -3
- 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 +1 -3
- package/dist/cjs/fields/FileUpload/index.native.js +3 -5
- 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/geocoder.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/index.cjs +2 -2
- package/dist/cjs/fields/Geolocation/index.native.js +7 -7
- 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/Geolocation/nativeSearchFocus.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
- package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/cjs/fields/Icon/index.cjs +1 -3
- package/dist/cjs/fields/Icon/index.native.js +4 -6
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/ImageField/index.cjs +1 -5
- package/dist/cjs/fields/ImageField/index.native.js +3 -7
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.native.js +3 -3
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.cjs +3 -5
- package/dist/cjs/fields/MentionInput/index.native.js +6 -8
- 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/OTPInput/otpCellEdge.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.native.js +3 -3
- 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/PhoneInput/regionNames.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.cjs +0 -2
- package/dist/cjs/fields/RadioGroup/index.native.js +1 -3
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/index.native.js +1 -1
- 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.native.js +2 -2
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/InlineChoices.native.js.map +1 -1
- package/dist/cjs/fields/Select/SheetPickerRow.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +0 -2
- package/dist/cjs/fields/Select/index.native.js +7 -9
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -1
- package/dist/cjs/fields/Signature/index.native.js +2 -2
- package/dist/cjs/fields/Signature/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +0 -2
- package/dist/cjs/fields/Slider/index.native.js +1 -3
- 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/footprint.native.js.map +1 -1
- package/dist/cjs/fields/Switch/index.native.js +2 -2
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TextArea/index.cjs +0 -2
- package/dist/cjs/fields/TextArea/index.native.js +3 -5
- package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/catalog.native.js +3 -3
- package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/index.native.js +2 -2
- 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.native.js.map +1 -1
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
- package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
- package/dist/cjs/fields/ToggleGroup/index.cjs +0 -2
- package/dist/cjs/fields/ToggleGroup/index.native.js +2 -4
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +1 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
- package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
- 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.gnome.cjs +200 -0
- package/dist/cjs/index.gnome.native.js +203 -0
- package/dist/cjs/index.gnome.native.js.map +1 -0
- package/dist/cjs/index.native.js +45 -45
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
- package/dist/cjs/keyboard/chain.native.js.map +1 -1
- package/dist/cjs/keyboard/index.native.js.map +1 -1
- package/dist/cjs/keyboard/types.native.js.map +1 -1
- package/dist/cjs/nativeTwins.cjs +28 -0
- package/dist/cjs/nativeTwins.native.js +31 -0
- package/dist/cjs/nativeTwins.native.js.map +1 -0
- package/dist/cjs/requiredMarking.native.js.map +1 -1
- package/dist/cjs/shared/CheckGlyph.native.js.map +1 -1
- package/dist/cjs/shared/OverlayWindow.native.js +2 -33
- package/dist/cjs/shared/OverlayWindow.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/checkedOnField.native.js.map +1 -1
- package/dist/cjs/shared/choiceRowPress.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/fieldRowContext.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/instantMotion.native.js.map +1 -1
- package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
- package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -1
- package/dist/cjs/shared/nativeOverlayWindow.cjs +50 -0
- package/dist/cjs/shared/nativeOverlayWindow.native.js +54 -0
- package/dist/cjs/shared/nativeOverlayWindow.native.js.map +1 -0
- package/dist/cjs/shared/overlaySizeClass.native.js.map +1 -1
- package/dist/cjs/shared/overlayStack.native.js.map +1 -1
- package/dist/cjs/shared/panelPortal.native.js.map +1 -1
- package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
- package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
- package/dist/cjs/shared/restoreRetries.native.js.map +1 -1
- package/dist/cjs/shared/sheetNavigation.native.js.map +1 -1
- package/dist/cjs/shared/systemControlModules.gnome.native.js.map +1 -1
- package/dist/cjs/shared/systemControls.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/standardActions.native.js.map +1 -1
- 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/IconButtonGroup.native.js.map +1 -1
- package/dist/esm/Button/circleGlyph.native.js.map +1 -1
- package/dist/esm/Button/iconButtonGroupContext.native.js.map +1 -1
- package/dist/esm/Button/index.mjs +2 -3
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +2 -3
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Button/webGlass.native.js.map +1 -1
- 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.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.native.js.map +1 -1
- 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/PanelHeader.native.js.map +1 -1
- package/dist/esm/FloatingPanel/RegularPanel.native.js.map +1 -1
- package/dist/esm/FloatingPanel/compactFace.native.js.map +1 -1
- package/dist/esm/FloatingPanel/containingBlock.native.js.map +1 -1
- package/dist/esm/FloatingPanel/coverRect.native.js.map +1 -1
- package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.mjs +3 -5
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +3 -4
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
- package/dist/esm/FloatingPanel/paintedBox.native.js.map +1 -1
- package/dist/esm/FloatingPanel/panelWidth.native.js.map +1 -1
- package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
- package/dist/esm/FloatingPanel/regularPlacement.native.js.map +1 -1
- package/dist/esm/FloatingPanel/trailingAction.native.js.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs +2 -7
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js +2 -7
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/Form/index.native.js.map +1 -1
- package/dist/esm/Form/submissionController.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/PasswordReveal.native.js.map +1 -1
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/InputParts/keyboardAppearance.native.js.map +1 -1
- package/dist/esm/Label/index.native.js.map +1 -1
- package/dist/esm/MediaPicker/base64.native.js.map +1 -1
- package/dist/esm/MediaPicker/payload.native.js.map +1 -1
- package/dist/esm/MediaPicker/types.native.js.map +1 -1
- package/dist/esm/MediaPicker/useMediaPicker.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/Wheel/wheelShared.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 +0 -2
- package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/Checkbox.native.js +0 -2
- 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 +2 -4
- package/dist/esm/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js +2 -4
- package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/SystemColorField.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/index.mjs +1 -3
- package/dist/esm/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/esm/fields/ColorPicker/index.native.js +2 -4
- 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/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
- package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +0 -2
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +1 -3
- 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 +2 -5
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js +2 -5
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js +1 -3
- 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 +2 -5
- package/dist/esm/fields/DatePicker/catalog.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/catalog.native.js +2 -5
- package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/index.native.js +1 -3
- package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
- 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/durationWheelTypes.native.js.map +1 -1
- 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 +1 -3
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +1 -3
- 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/geocoder.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/index.mjs +2 -2
- package/dist/esm/fields/Geolocation/index.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js +2 -2
- 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/Geolocation/nativeSearchFocus.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -1
- package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/esm/fields/Icon/index.mjs +1 -3
- package/dist/esm/fields/Icon/index.mjs.map +1 -1
- package/dist/esm/fields/Icon/index.native.js +1 -3
- package/dist/esm/fields/Icon/index.native.js.map +1 -1
- package/dist/esm/fields/ImageField/index.mjs +1 -5
- package/dist/esm/fields/ImageField/index.mjs.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js +1 -5
- 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.mjs +3 -5
- package/dist/esm/fields/MentionInput/index.mjs.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js +3 -5
- 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/OTPInput/otpCellEdge.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
- 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/PhoneInput/regionNames.native.js.map +1 -1
- package/dist/esm/fields/Progress/index.native.js.map +1 -1
- package/dist/esm/fields/RadioGroup/index.mjs +0 -2
- package/dist/esm/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/esm/fields/RadioGroup/index.native.js +0 -2
- package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
- 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.native.js.map +1 -1
- package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -1
- package/dist/esm/fields/Select/SheetPickerRow.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +0 -2
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +3 -5
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -1
- package/dist/esm/fields/Signature/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.mjs +0 -2
- package/dist/esm/fields/Slider/index.mjs.map +1 -1
- package/dist/esm/fields/Slider/index.native.js +0 -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/footprint.native.js.map +1 -1
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TextArea/index.mjs +0 -2
- package/dist/esm/fields/TextArea/index.mjs.map +1 -1
- package/dist/esm/fields/TextArea/index.native.js +1 -3
- package/dist/esm/fields/TextArea/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
- package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.mjs +0 -2
- package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js +1 -3
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
- package/dist/esm/fields/nativeSelect.native.js.map +1 -1
- 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.gnome.mjs +61 -0
- package/dist/esm/index.gnome.mjs.map +1 -0
- package/dist/esm/index.gnome.native.js +61 -0
- package/dist/esm/index.gnome.native.js.map +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keyboard/chain.native.js.map +1 -1
- package/dist/esm/keyboard/index.native.js.map +1 -1
- package/dist/esm/keyboard/types.native.js.map +1 -1
- package/dist/esm/nativeTwins.mjs +3 -0
- package/dist/esm/nativeTwins.mjs.map +1 -0
- package/dist/esm/nativeTwins.native.js +3 -0
- package/dist/esm/nativeTwins.native.js.map +1 -0
- package/dist/esm/requiredMarking.native.js.map +1 -1
- package/dist/esm/shared/CheckGlyph.native.js.map +1 -1
- package/dist/esm/shared/OverlayWindow.native.js +1 -25
- package/dist/esm/shared/OverlayWindow.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/checkedOnField.native.js.map +1 -1
- package/dist/esm/shared/choiceRowPress.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/fieldRowContext.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/instantMotion.native.js.map +1 -1
- package/dist/esm/shared/nativeA11y.native.js.map +1 -1
- package/dist/esm/shared/nativeAutoFocus.native.js.map +1 -1
- package/dist/esm/shared/nativeOverlayWindow.mjs +25 -0
- package/dist/esm/shared/nativeOverlayWindow.mjs.map +1 -0
- package/dist/esm/shared/nativeOverlayWindow.native.js +26 -0
- package/dist/esm/shared/nativeOverlayWindow.native.js.map +1 -0
- package/dist/esm/shared/overlaySizeClass.native.js.map +1 -1
- package/dist/esm/shared/overlayStack.native.js.map +1 -1
- package/dist/esm/shared/panelPortal.native.js.map +1 -1
- package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -1
- package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
- package/dist/esm/shared/restoreRetries.native.js.map +1 -1
- package/dist/esm/shared/sheetNavigation.native.js.map +1 -1
- package/dist/esm/shared/systemControlModules.gnome.native.js.map +1 -1
- package/dist/esm/shared/systemControls.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/standardActions.native.js.map +1 -1
- 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/Button/index.mjs +2 -3
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +1 -2
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +3 -5
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +2 -3
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +2 -7
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +1 -7
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.mjs +0 -2
- package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/Checkbox.native.js +0 -2
- package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs +2 -4
- package/dist/jsx/fields/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js +2 -4
- package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.mjs +1 -3
- package/dist/jsx/fields/ColorPicker/index.mjs.map +1 -1
- package/dist/jsx/fields/ColorPicker/index.native.js +2 -4
- package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +0 -2
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +1 -3
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs +2 -5
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js +2 -5
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +1 -3
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/catalog.mjs +2 -5
- package/dist/jsx/fields/DatePicker/catalog.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/catalog.native.js +2 -5
- package/dist/jsx/fields/DatePicker/catalog.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/index.native.js +1 -3
- package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/index.mjs +1 -3
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +1 -3
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/index.mjs +2 -2
- package/dist/jsx/fields/Geolocation/index.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/index.native.js +2 -2
- package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
- package/dist/jsx/fields/Icon/index.mjs +1 -3
- package/dist/jsx/fields/Icon/index.mjs.map +1 -1
- package/dist/jsx/fields/Icon/index.native.js +1 -3
- package/dist/jsx/fields/Icon/index.native.js.map +1 -1
- package/dist/jsx/fields/ImageField/index.mjs +1 -5
- package/dist/jsx/fields/ImageField/index.mjs.map +1 -1
- package/dist/jsx/fields/ImageField/index.native.js +1 -5
- package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
- package/dist/jsx/fields/MentionInput/index.mjs +3 -5
- package/dist/jsx/fields/MentionInput/index.mjs.map +1 -1
- package/dist/jsx/fields/MentionInput/index.native.js +3 -5
- package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.mjs +0 -2
- package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.native.js +0 -2
- package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +0 -2
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +3 -5
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/index.mjs +0 -2
- package/dist/jsx/fields/Slider/index.mjs.map +1 -1
- package/dist/jsx/fields/Slider/index.native.js +0 -2
- package/dist/jsx/fields/Slider/index.native.js.map +1 -1
- package/dist/jsx/fields/TextArea/index.mjs +0 -2
- package/dist/jsx/fields/TextArea/index.mjs.map +1 -1
- package/dist/jsx/fields/TextArea/index.native.js +1 -3
- package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.mjs +0 -2
- package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js +1 -3
- package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/jsx/index.gnome.mjs +61 -0
- package/dist/jsx/index.gnome.mjs.map +1 -0
- package/dist/jsx/index.gnome.native.js +203 -0
- package/dist/jsx/index.gnome.native.js.map +1 -0
- package/dist/jsx/nativeTwins.mjs +3 -0
- package/dist/jsx/nativeTwins.mjs.map +1 -0
- package/dist/jsx/nativeTwins.native.js +31 -0
- package/dist/jsx/nativeTwins.native.js.map +1 -0
- package/dist/jsx/shared/OverlayWindow.native.js +2 -33
- package/dist/jsx/shared/OverlayWindow.native.js.map +1 -1
- package/dist/jsx/shared/nativeOverlayWindow.mjs +25 -0
- package/dist/jsx/shared/nativeOverlayWindow.mjs.map +1 -0
- package/dist/jsx/shared/nativeOverlayWindow.native.js +54 -0
- package/dist/jsx/shared/nativeOverlayWindow.native.js.map +1 -0
- package/package.json +22 -9
- package/src/Button/index.tsx +2 -7
- package/src/FloatingPanel/FloatingPanel.stories.tsx +1 -1
- package/src/FloatingPanel/index.native.tsx +2 -3
- package/src/FloatingPanel/index.tsx +1 -10
- package/src/FloatingPanel/panelWidthContract.spec.ts +1 -10
- package/src/FloatingPanel/useFloatingPanel.spec.tsx +0 -26
- package/src/FloatingPanel/useFloatingPanel.ts +1 -19
- package/src/FloatingPanel/viewportHydration.spec.tsx +2 -2
- package/src/fields/Checkbox/Checkbox.spec.tsx +8 -25
- package/src/fields/Checkbox/Checkbox.stories.tsx +4 -4
- package/src/fields/Checkbox/Checkbox.tsx +1 -5
- package/src/fields/Checkbox/CheckboxGroup.stories.tsx +2 -2
- package/src/fields/Checkbox/CheckboxGroup.tsx +3 -8
- package/src/fields/ColorPicker/ColorPicker.spec.tsx +2 -11
- package/src/fields/ColorPicker/index.tsx +3 -7
- package/src/fields/Combobox/Combobox.spec.tsx +1 -5
- package/src/fields/Combobox/Combobox.stories.tsx +6 -6
- package/src/fields/Combobox/index.tsx +1 -6
- package/src/fields/DatePicker/DatePicker.spec.tsx +4 -21
- package/src/fields/DatePicker/DatetimePicker.catalog.tsx +3 -9
- package/src/fields/DatePicker/DatetimePicker.native.spec.tsx +3 -13
- package/src/fields/DatePicker/DatetimePicker.native.tsx +1 -4
- package/src/fields/DatePicker/DatetimePicker.spec.tsx +3 -18
- package/src/fields/DatePicker/DatetimePicker.stories.tsx +3 -3
- package/src/fields/DatePicker/catalog.tsx +3 -9
- package/src/fields/DatePicker/index.native.tsx +1 -4
- package/src/fields/FileUpload/FileUpload.spec.tsx +2 -10
- package/src/fields/FileUpload/index.tsx +3 -7
- package/src/fields/Geolocation/index.tsx +2 -2
- package/src/fields/Icon/index.tsx +1 -5
- package/src/fields/ImageField/ImageField.spec.tsx +2 -10
- package/src/fields/ImageField/index.tsx +2 -9
- package/src/fields/MentionInput/MentionInput.spec.tsx +2 -14
- package/src/fields/MentionInput/index.tsx +3 -7
- package/src/fields/RadioGroup/RadioGroup.spec.tsx +3 -21
- package/src/fields/RadioGroup/RadioGroup.stories.tsx +4 -4
- package/src/fields/RadioGroup/index.tsx +1 -6
- package/src/fields/Select/Select.spec.tsx +1 -5
- package/src/fields/Select/Select.stories.tsx +5 -5
- package/src/fields/Select/index.tsx +1 -6
- package/src/fields/Slider/Slider.spec.tsx +8 -22
- package/src/fields/Slider/Slider.stories.tsx +5 -5
- package/src/fields/Slider/index.tsx +1 -6
- package/src/fields/TextArea/TextArea.spec.tsx +17 -35
- package/src/fields/TextArea/TextArea.stories.tsx +6 -6
- package/src/fields/TextArea/index.tsx +0 -4
- package/src/fields/ToggleGroup/ToggleGroup.spec.tsx +2 -11
- package/src/fields/ToggleGroup/ToggleGroup.stories.tsx +5 -5
- package/src/fields/ToggleGroup/index.tsx +1 -6
- package/src/fields/pickerActivation.spec.tsx +1 -1
- package/src/fields/pickerRows.spec.tsx +4 -4
- package/src/index.gnome.ts +150 -0
- package/src/nativeTwins.ts +8 -0
- package/src/shared/OverlayWindow.native.tsx +1 -28
- package/src/shared/nativeOverlayWindow.tsx +28 -0
- package/types/Button/index.d.ts +1 -2
- package/types/Button/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.d.ts +1 -7
- 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 +1 -11
- package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
- package/types/fields/Checkbox/Checkbox.d.ts +1 -3
- package/types/fields/Checkbox/Checkbox.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxGroup.d.ts +1 -4
- package/types/fields/Checkbox/CheckboxGroup.d.ts.map +1 -1
- package/types/fields/Checkbox/index.d.ts +3 -3
- package/types/fields/ColorPicker/index.d.ts +1 -3
- package/types/fields/ColorPicker/index.d.ts.map +1 -1
- package/types/fields/Combobox/index.d.ts +1 -4
- package/types/fields/Combobox/index.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.catalog.d.ts +0 -3
- package/types/fields/DatePicker/DatetimePicker.catalog.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.native.d.ts +0 -1
- package/types/fields/DatePicker/DatetimePicker.native.d.ts.map +1 -1
- package/types/fields/DatePicker/catalog.d.ts +0 -3
- package/types/fields/DatePicker/catalog.d.ts.map +1 -1
- package/types/fields/DatePicker/index.native.d.ts +0 -1
- package/types/fields/DatePicker/index.native.d.ts.map +1 -1
- package/types/fields/FileUpload/index.d.ts +1 -3
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/Icon/index.d.ts +0 -2
- package/types/fields/Icon/index.d.ts.map +1 -1
- package/types/fields/ImageField/index.d.ts +2 -4
- package/types/fields/ImageField/index.d.ts.map +1 -1
- package/types/fields/MentionInput/index.d.ts +0 -2
- package/types/fields/MentionInput/index.d.ts.map +1 -1
- package/types/fields/RadioGroup/index.d.ts +1 -4
- package/types/fields/RadioGroup/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts +1 -4
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/Slider/index.d.ts +1 -4
- package/types/fields/Slider/index.d.ts.map +1 -1
- package/types/fields/TextArea/index.d.ts +1 -3
- package/types/fields/TextArea/index.d.ts.map +1 -1
- package/types/fields/ToggleGroup/index.d.ts +1 -4
- package/types/fields/ToggleGroup/index.d.ts.map +1 -1
- package/types/index.gnome.d.ts +88 -0
- package/types/index.gnome.d.ts.map +1 -0
- package/types/nativeTwins.d.ts +8 -0
- package/types/nativeTwins.d.ts.map +1 -0
- package/types/shared/OverlayWindow.native.d.ts +1 -14
- package/types/shared/OverlayWindow.native.d.ts.map +1 -1
- package/types/shared/nativeOverlayWindow.d.ts +15 -0
- package/types/shared/nativeOverlayWindow.d.ts.map +1 -0
- package/types/shared/pickerTriggerContract.d.ts +3 -3
|
@@ -30,20 +30,17 @@ import {
|
|
|
30
30
|
panelAnchorOffset,
|
|
31
31
|
panelCoverOffset,
|
|
32
32
|
panelViewportPadding,
|
|
33
|
-
resolvePanelWidthMode,
|
|
34
33
|
useFloatingPanel,
|
|
35
34
|
} from "./useFloatingPanel";
|
|
36
35
|
|
|
37
36
|
function Harness({
|
|
38
37
|
open,
|
|
39
|
-
fitContent,
|
|
40
38
|
widthMode,
|
|
41
39
|
panelWidth,
|
|
42
40
|
echo,
|
|
43
41
|
floor,
|
|
44
42
|
}: {
|
|
45
43
|
open: boolean;
|
|
46
|
-
fitContent?: boolean;
|
|
47
44
|
widthMode?: PanelWidthMode;
|
|
48
45
|
panelWidth?: PanelWidth;
|
|
49
46
|
echo?: boolean;
|
|
@@ -53,7 +50,6 @@ function Harness({
|
|
|
53
50
|
open,
|
|
54
51
|
onOpenChange: () => {},
|
|
55
52
|
useAutoUpdate: false,
|
|
56
|
-
fitContent,
|
|
57
53
|
widthMode,
|
|
58
54
|
panelWidth,
|
|
59
55
|
echo,
|
|
@@ -89,7 +85,6 @@ function mockRect(el: HTMLElement, rect: { x: number; y: number; width: number;
|
|
|
89
85
|
* floating element once floating-ui has positioned it. */
|
|
90
86
|
async function openAgainstTrigger(
|
|
91
87
|
props: {
|
|
92
|
-
fitContent?: boolean;
|
|
93
88
|
widthMode?: PanelWidthMode;
|
|
94
89
|
panelWidth?: PanelWidth;
|
|
95
90
|
echo?: boolean;
|
|
@@ -276,15 +271,6 @@ describe("FloatingPanel panelWidth setting (LC-112, FZ-8438 r3)", () => {
|
|
|
276
271
|
});
|
|
277
272
|
|
|
278
273
|
describe("FloatingPanel width modes (MPO-38)", () => {
|
|
279
|
-
it("resolves the deprecated boolean onto the three modes", () => {
|
|
280
|
-
expect(resolvePanelWidthMode(undefined, undefined)).toBe("at-least-trigger");
|
|
281
|
-
expect(resolvePanelWidthMode(undefined, false)).toBe("at-least-trigger");
|
|
282
|
-
expect(resolvePanelWidthMode(undefined, true)).toBe("fit-content");
|
|
283
|
-
// An explicit mode always wins over the boolean, in both directions.
|
|
284
|
-
expect(resolvePanelWidthMode("match-trigger", true)).toBe("match-trigger");
|
|
285
|
-
expect(resolvePanelWidthMode("fit-content", false)).toBe("fit-content");
|
|
286
|
-
});
|
|
287
|
-
|
|
288
274
|
it("at-least-trigger writes min-width only, so content may still grow it", async () => {
|
|
289
275
|
const result = await openAgainstTrigger({ widthMode: "at-least-trigger" }, trigger);
|
|
290
276
|
await waitFor(() => {
|
|
@@ -302,13 +288,6 @@ describe("FloatingPanel width modes (MPO-38)", () => {
|
|
|
302
288
|
});
|
|
303
289
|
});
|
|
304
290
|
|
|
305
|
-
it("at-least-trigger is what an explicit fitContent={false} means", async () => {
|
|
306
|
-
const result = await openAgainstTrigger({ fitContent: false }, trigger);
|
|
307
|
-
await waitFor(() => {
|
|
308
|
-
expect(result.getByTestId("anchor-floating").style.minWidth).toBe("240px");
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
|
|
312
291
|
it("match-trigger pins the width exactly — narrow content cannot shrink it", async () => {
|
|
313
292
|
const result = await openAgainstTrigger({ widthMode: "match-trigger" }, trigger);
|
|
314
293
|
await waitFor(() => {
|
|
@@ -336,11 +315,6 @@ describe("FloatingPanel width modes (MPO-38)", () => {
|
|
|
336
315
|
expect(el.style.width).toBe("");
|
|
337
316
|
expect(el.style.maxWidth).toBe("");
|
|
338
317
|
});
|
|
339
|
-
|
|
340
|
-
it("fitContent still reaches fit-content, so existing consumers do not move", async () => {
|
|
341
|
-
const result = await openAgainstTrigger({ fitContent: true }, trigger);
|
|
342
|
-
expect(result.getByTestId("anchor-floating").style.minWidth).toBe("");
|
|
343
|
-
});
|
|
344
318
|
});
|
|
345
319
|
|
|
346
320
|
/**
|
|
@@ -133,13 +133,6 @@ export interface UseFloatingPanelOptions {
|
|
|
133
133
|
* Default `"at-least-trigger"`.
|
|
134
134
|
*/
|
|
135
135
|
widthMode?: PanelWidthMode;
|
|
136
|
-
/**
|
|
137
|
-
* @deprecated Pass `widthMode` instead. `fitContent` is the two-valued
|
|
138
|
-
* spelling of the same idea and cannot express `"match-trigger"`.
|
|
139
|
-
* `true` → `"fit-content"`, `false`/undefined → `"at-least-trigger"`.
|
|
140
|
-
* An explicit `widthMode` always wins.
|
|
141
|
-
*/
|
|
142
|
-
fitContent?: boolean;
|
|
143
136
|
/**
|
|
144
137
|
* The panel opens at a point, not from the trigger's box (ContextMenu). It
|
|
145
138
|
* shares no corner with the trigger, so its radius stays the CONTAINER-CAP
|
|
@@ -163,16 +156,6 @@ export interface UseFloatingPanelOptions {
|
|
|
163
156
|
floor?: number;
|
|
164
157
|
}
|
|
165
158
|
|
|
166
|
-
/** One place that resolves the deprecated boolean onto the three modes, so
|
|
167
|
-
* the hook and the component cannot disagree about what a consumer meant. */
|
|
168
|
-
export function resolvePanelWidthMode(
|
|
169
|
-
widthMode: PanelWidthMode | undefined,
|
|
170
|
-
fitContent: boolean | undefined,
|
|
171
|
-
): PanelWidthMode {
|
|
172
|
-
if (widthMode) return widthMode;
|
|
173
|
-
return fitContent ? "fit-content" : "at-least-trigger";
|
|
174
|
-
}
|
|
175
|
-
|
|
176
159
|
// ── Return type ───────────────────────────────────────────────
|
|
177
160
|
|
|
178
161
|
export interface UseFloatingPanelReturn {
|
|
@@ -287,14 +270,13 @@ export function useFloatingPanel({
|
|
|
287
270
|
useAutoUpdate: useAutoUpdateProp = true,
|
|
288
271
|
wheelGrowRef,
|
|
289
272
|
widthMode: widthModeProp,
|
|
290
|
-
fitContent,
|
|
291
273
|
freeOverlay = false,
|
|
292
274
|
cover = true,
|
|
293
275
|
panelWidth,
|
|
294
276
|
echo = cover && !freeOverlay,
|
|
295
277
|
floor = 0,
|
|
296
278
|
}: UseFloatingPanelOptions): UseFloatingPanelReturn {
|
|
297
|
-
const widthMode =
|
|
279
|
+
const widthMode = widthModeProp ?? "at-least-trigger";
|
|
298
280
|
// An overlay floats over the page: it never inherits a painted ancestor.
|
|
299
281
|
const { knobProps } = useResolvedKnobs({ painted: false });
|
|
300
282
|
const hasBorder = knobProps.borderRadius.borderWidth > 0;
|
|
@@ -23,14 +23,14 @@ function Fixture({ kind }: { kind: string }) {
|
|
|
23
23
|
aria-label="Choice"
|
|
24
24
|
options={options}
|
|
25
25
|
value={value}
|
|
26
|
-
|
|
26
|
+
onChange={(next) => setValue(String(next))}
|
|
27
27
|
/>
|
|
28
28
|
) : kind === "Combobox" ? (
|
|
29
29
|
<Combobox
|
|
30
30
|
aria-label="Choice"
|
|
31
31
|
options={options}
|
|
32
32
|
value={value}
|
|
33
|
-
|
|
33
|
+
onChange={(next) => setValue(String(next))}
|
|
34
34
|
/>
|
|
35
35
|
) : (
|
|
36
36
|
<FloatingPanel
|
|
@@ -62,14 +62,14 @@ describe("Checkbox", () => {
|
|
|
62
62
|
expect(result.container.querySelector("[role='checkbox']")).toBeNull();
|
|
63
63
|
});
|
|
64
64
|
|
|
65
|
-
it("calls
|
|
66
|
-
const
|
|
65
|
+
it("calls onChange when clicked", () => {
|
|
66
|
+
const onChange = vi.fn();
|
|
67
67
|
const result = renderWithProviders(
|
|
68
|
-
<Checkbox name="cb" defaultValue={false}
|
|
68
|
+
<Checkbox name="cb" defaultValue={false} onChange={onChange} />,
|
|
69
69
|
);
|
|
70
70
|
const checkbox = result.getCheckbox();
|
|
71
71
|
if (checkbox) fireEvent.click(checkbox);
|
|
72
|
-
expect(
|
|
72
|
+
expect(onChange).toHaveBeenCalledWith(true);
|
|
73
73
|
});
|
|
74
74
|
|
|
75
75
|
it("clicking the painted box still toggles", () => {
|
|
@@ -86,23 +86,15 @@ describe("Checkbox", () => {
|
|
|
86
86
|
expect(onChange).toHaveBeenCalledWith(true);
|
|
87
87
|
});
|
|
88
88
|
|
|
89
|
-
it("fires canonical onChange
|
|
89
|
+
it("fires canonical onChange once", () => {
|
|
90
90
|
const onChange = vi.fn();
|
|
91
|
-
const onCheckedChange = vi.fn();
|
|
92
91
|
const result = renderWithProviders(
|
|
93
|
-
<Checkbox
|
|
94
|
-
name="cb"
|
|
95
|
-
defaultValue={false}
|
|
96
|
-
onChange={onChange}
|
|
97
|
-
onCheckedChange={onCheckedChange}
|
|
98
|
-
/>,
|
|
92
|
+
<Checkbox name="cb" defaultValue={false} onChange={onChange} />,
|
|
99
93
|
);
|
|
100
94
|
const checkbox = result.getCheckbox();
|
|
101
95
|
if (checkbox) fireEvent.click(checkbox);
|
|
102
96
|
expect(onChange).toHaveBeenCalledTimes(1);
|
|
103
97
|
expect(onChange).toHaveBeenCalledWith(true);
|
|
104
|
-
expect(onCheckedChange).toHaveBeenCalledTimes(1);
|
|
105
|
-
expect(onCheckedChange).toHaveBeenCalledWith(true);
|
|
106
98
|
});
|
|
107
99
|
});
|
|
108
100
|
|
|
@@ -236,25 +228,16 @@ describe("CheckboxGroup", () => {
|
|
|
236
228
|
expect(result.findTextElement("Option C")).toBeDefined();
|
|
237
229
|
});
|
|
238
230
|
|
|
239
|
-
it("fires canonical onChange
|
|
231
|
+
it("fires canonical onChange once", () => {
|
|
240
232
|
const onChange = vi.fn();
|
|
241
|
-
const onValueChange = vi.fn();
|
|
242
233
|
const result = renderWithProviders(
|
|
243
|
-
<CheckboxGroup
|
|
244
|
-
label="Pick options"
|
|
245
|
-
name="opts"
|
|
246
|
-
options={options}
|
|
247
|
-
onChange={onChange}
|
|
248
|
-
onValueChange={onValueChange}
|
|
249
|
-
/>,
|
|
234
|
+
<CheckboxGroup label="Pick options" name="opts" options={options} onChange={onChange} />,
|
|
250
235
|
);
|
|
251
236
|
const checkbox = result.container.querySelector("[role='checkbox']");
|
|
252
237
|
expect(checkbox).toBeTruthy();
|
|
253
238
|
if (checkbox) fireEvent.click(checkbox);
|
|
254
239
|
expect(onChange).toHaveBeenCalledTimes(1);
|
|
255
240
|
expect(onChange).toHaveBeenCalledWith(["a"]);
|
|
256
|
-
expect(onValueChange).toHaveBeenCalledTimes(1);
|
|
257
|
-
expect(onValueChange).toHaveBeenCalledWith(["a"]);
|
|
258
241
|
});
|
|
259
242
|
|
|
260
243
|
it("renders required label with asterisk", () => {
|
|
@@ -182,9 +182,9 @@ export const Comparison: StoryObj = {
|
|
|
182
182
|
<Checkbox
|
|
183
183
|
label="Accept terms"
|
|
184
184
|
defaultValue={customChecked}
|
|
185
|
-
|
|
185
|
+
onChange={(val) => {
|
|
186
186
|
setCustomChecked(!!val);
|
|
187
|
-
action("custom.
|
|
187
|
+
action("custom.onChange")(val);
|
|
188
188
|
}}
|
|
189
189
|
/>
|
|
190
190
|
</YStack>
|
|
@@ -332,9 +332,9 @@ export const CheckboxGroupInteractive: StoryObj = {
|
|
|
332
332
|
{ value: "opt3", label: "Option 3" },
|
|
333
333
|
]}
|
|
334
334
|
value={selected}
|
|
335
|
-
|
|
335
|
+
onChange={(values) => {
|
|
336
336
|
setSelected(values);
|
|
337
|
-
action("
|
|
337
|
+
action("onChange")(values);
|
|
338
338
|
}}
|
|
339
339
|
/>
|
|
340
340
|
<Paragraph size="$2">Selected: {selected.join(", ") || "None"}</Paragraph>
|
|
@@ -64,8 +64,6 @@ export interface CheckboxProps {
|
|
|
64
64
|
* (Input/Select/Switch all use `onChange`). Prefer this.
|
|
65
65
|
*/
|
|
66
66
|
onChange?: (checked: CheckedState) => void;
|
|
67
|
-
/** @deprecated Use `onChange` instead. Kept as an alias for the tamagui/Radix name. */
|
|
68
|
-
onCheckedChange?: (checked: CheckedState) => void;
|
|
69
67
|
onBlur?: (...args: any[]) => void;
|
|
70
68
|
checkboxProps?: Omit<TamaguiCheckboxProps, "children" | "checked" | "id" | "onCheckedChange">;
|
|
71
69
|
children?: ReactNode;
|
|
@@ -102,18 +100,16 @@ export function Checkbox({
|
|
|
102
100
|
checked,
|
|
103
101
|
defaultValue,
|
|
104
102
|
onChange,
|
|
105
|
-
onCheckedChange,
|
|
106
103
|
onBlur,
|
|
107
104
|
checkboxProps,
|
|
108
105
|
children,
|
|
109
106
|
pointy,
|
|
110
107
|
skeleton,
|
|
111
108
|
}: CheckboxProps) {
|
|
112
|
-
// Canonical `onChange`
|
|
109
|
+
// Canonical `onChange` fires from a
|
|
113
110
|
// single emit site (same reconciliation as Switch).
|
|
114
111
|
const handleValueChange = (val: CheckedState) => {
|
|
115
112
|
onChange?.(val);
|
|
116
|
-
onCheckedChange?.(val);
|
|
117
113
|
};
|
|
118
114
|
const { resolvedForm, knobProps, text, elevation, disabledState, id } = useFormField({
|
|
119
115
|
form: formProp,
|
|
@@ -40,7 +40,7 @@ type Story = StoryObj<typeof CheckboxGroup>;
|
|
|
40
40
|
export const Basic: Story = {
|
|
41
41
|
render: (args) => (
|
|
42
42
|
<YStack maxWidth={400}>
|
|
43
|
-
<CheckboxGroup {...args}
|
|
43
|
+
<CheckboxGroup {...args} onChange={action("onChange")} />
|
|
44
44
|
</YStack>
|
|
45
45
|
),
|
|
46
46
|
};
|
|
@@ -226,7 +226,7 @@ export const ElevationLarge: Story = {
|
|
|
226
226
|
render: (args) => (
|
|
227
227
|
<Preset overrides={{ elevation: "large" }}>
|
|
228
228
|
<YStack maxWidth={400}>
|
|
229
|
-
<CheckboxGroup {...args}
|
|
229
|
+
<CheckboxGroup {...args} onChange={action("onChange")} />
|
|
230
230
|
</YStack>
|
|
231
231
|
</Preset>
|
|
232
232
|
),
|
|
@@ -54,11 +54,8 @@ export interface CheckboxGroupProps {
|
|
|
54
54
|
defaultValue?: string[];
|
|
55
55
|
/**
|
|
56
56
|
* Canonical change handler, consistent with the rest of the field family.
|
|
57
|
-
* Prefer this over `onValueChange`.
|
|
58
57
|
*/
|
|
59
58
|
onChange?: (value: string[]) => void;
|
|
60
|
-
/** @deprecated Use `onChange` instead. */
|
|
61
|
-
onValueChange?: (value: string[]) => void;
|
|
62
59
|
onBlur?: (...args: any[]) => void;
|
|
63
60
|
options?: CheckboxGroupOption[];
|
|
64
61
|
orientation?: "horizontal" | "vertical";
|
|
@@ -89,7 +86,6 @@ export function CheckboxGroup({
|
|
|
89
86
|
value,
|
|
90
87
|
defaultValue,
|
|
91
88
|
onChange,
|
|
92
|
-
onValueChange,
|
|
93
89
|
onBlur,
|
|
94
90
|
options,
|
|
95
91
|
orientation = "vertical",
|
|
@@ -98,11 +94,10 @@ export function CheckboxGroup({
|
|
|
98
94
|
skeleton,
|
|
99
95
|
card,
|
|
100
96
|
}: CheckboxGroupProps) {
|
|
101
|
-
// Canonical `onChange`
|
|
97
|
+
// Canonical `onChange` fires from the
|
|
102
98
|
// single emit site below (same reconciliation as Switch).
|
|
103
99
|
const handleValueChange = (newValues: string[]) => {
|
|
104
100
|
onChange?.(newValues);
|
|
105
|
-
onValueChange?.(newValues);
|
|
106
101
|
};
|
|
107
102
|
const { resolvedForm, knobProps, disabledState, id } = useFormField({
|
|
108
103
|
form: formProp,
|
|
@@ -212,7 +207,7 @@ export function CheckboxGroup({
|
|
|
212
207
|
<Checkbox
|
|
213
208
|
id={itemId}
|
|
214
209
|
checked={isChecked}
|
|
215
|
-
|
|
210
|
+
onChange={(checked) => {
|
|
216
211
|
if (isDisabled || readOnly) return;
|
|
217
212
|
emit(toggleValue(currentValues, option.value, checked));
|
|
218
213
|
}}
|
|
@@ -260,7 +255,7 @@ export function CheckboxGroup({
|
|
|
260
255
|
label={option.label}
|
|
261
256
|
id={itemId}
|
|
262
257
|
checked={isChecked}
|
|
263
|
-
|
|
258
|
+
onChange={(checked) => {
|
|
264
259
|
if (isDisabled || readOnly) return;
|
|
265
260
|
const newValues = toggleValue(currentValues, option.value, checked);
|
|
266
261
|
handleChange?.(newValues);
|
|
@@ -118,18 +118,11 @@ describe("ColorPicker", () => {
|
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
120
|
|
|
121
|
-
it("fires canonical onChange
|
|
121
|
+
it("fires canonical onChange once when cleared", async () => {
|
|
122
122
|
const ColorPicker = await loadColorPicker();
|
|
123
123
|
const onChange = vi.fn();
|
|
124
|
-
const onValueChange = vi.fn();
|
|
125
124
|
const result = renderWithProviders(
|
|
126
|
-
<ColorPicker
|
|
127
|
-
label="Color"
|
|
128
|
-
name="color"
|
|
129
|
-
defaultValue="#112233"
|
|
130
|
-
onChange={onChange}
|
|
131
|
-
onValueChange={onValueChange}
|
|
132
|
-
/>,
|
|
125
|
+
<ColorPicker label="Color" name="color" defaultValue="#112233" onChange={onChange} />,
|
|
133
126
|
);
|
|
134
127
|
|
|
135
128
|
const triggerButton = result.container.querySelector("button");
|
|
@@ -142,8 +135,6 @@ describe("ColorPicker", () => {
|
|
|
142
135
|
expect(onChange).toHaveBeenCalledWith("");
|
|
143
136
|
});
|
|
144
137
|
expect(onChange).toHaveBeenCalledTimes(1);
|
|
145
|
-
expect(onValueChange).toHaveBeenCalledTimes(1);
|
|
146
|
-
expect(onValueChange).toHaveBeenCalledWith("");
|
|
147
138
|
});
|
|
148
139
|
|
|
149
140
|
it("shows format validation error for unrecognized rgb value", async () => {
|
|
@@ -77,11 +77,9 @@ export type ColorPickerProps<
|
|
|
77
77
|
value?: string;
|
|
78
78
|
/**
|
|
79
79
|
* Canonical change handler, consistent with the rest of the field family.
|
|
80
|
-
* Fires in both standalone and form mode.
|
|
80
|
+
* Fires in both standalone and form mode.
|
|
81
81
|
*/
|
|
82
82
|
onChange?: (value: string) => void;
|
|
83
|
-
/** @deprecated Use `onChange` instead. */
|
|
84
|
-
onValueChange?: (value: string) => void;
|
|
85
83
|
/** When true, renders a skeleton placeholder instead of the color picker */
|
|
86
84
|
skeleton?: boolean;
|
|
87
85
|
};
|
|
@@ -743,7 +741,6 @@ export function ColorPicker<
|
|
|
743
741
|
onBlur,
|
|
744
742
|
value: controlledValue,
|
|
745
743
|
onChange,
|
|
746
|
-
onValueChange,
|
|
747
744
|
skeleton,
|
|
748
745
|
id: idProp,
|
|
749
746
|
} = useProps(props);
|
|
@@ -751,14 +748,13 @@ export function ColorPicker<
|
|
|
751
748
|
const themePresets = useThemePresetColors();
|
|
752
749
|
const presetColors = presetColorsProp ?? themePresets;
|
|
753
750
|
|
|
754
|
-
// Canonical `onChange`
|
|
751
|
+
// Canonical `onChange` fires from a
|
|
755
752
|
// single emit per change (same reconciliation as Switch).
|
|
756
753
|
const emitValueChange = useCallback(
|
|
757
754
|
(newValue: string) => {
|
|
758
755
|
onChange?.(newValue);
|
|
759
|
-
onValueChange?.(newValue);
|
|
760
756
|
},
|
|
761
|
-
[onChange
|
|
757
|
+
[onChange],
|
|
762
758
|
);
|
|
763
759
|
|
|
764
760
|
const { resolvedForm, knobProps, id } = useFormField({ form, id: idProp });
|
|
@@ -110,9 +110,8 @@ describe("Combobox", () => {
|
|
|
110
110
|
expect(findInPage("Disabled")).toBeDefined();
|
|
111
111
|
});
|
|
112
112
|
|
|
113
|
-
it("fires canonical onChange
|
|
113
|
+
it("fires canonical onChange once when dismissing a chip", async () => {
|
|
114
114
|
const onChange = vi.fn();
|
|
115
|
-
const onValueChange = vi.fn();
|
|
116
115
|
const result = renderWithProviders(
|
|
117
116
|
<Combobox
|
|
118
117
|
label="Fruits"
|
|
@@ -122,7 +121,6 @@ describe("Combobox", () => {
|
|
|
122
121
|
dismissible
|
|
123
122
|
value={["apple", "banana"]}
|
|
124
123
|
onChange={onChange}
|
|
125
|
-
onValueChange={onValueChange}
|
|
126
124
|
/>,
|
|
127
125
|
);
|
|
128
126
|
// Labels are differentiated per chip now — "Remove {label}".
|
|
@@ -134,8 +132,6 @@ describe("Combobox", () => {
|
|
|
134
132
|
// Exactly once each — guards against the standalone double-fire bug.
|
|
135
133
|
expect(onChange).toHaveBeenCalledTimes(1);
|
|
136
134
|
expect(onChange).toHaveBeenCalledWith(["banana"]);
|
|
137
|
-
expect(onValueChange).toHaveBeenCalledTimes(1);
|
|
138
|
-
expect(onValueChange).toHaveBeenCalledWith(["banana"]);
|
|
139
135
|
});
|
|
140
136
|
|
|
141
137
|
it("stable keeps Cherry in third position when selected and open", async () => {
|
|
@@ -182,9 +182,9 @@ export const Basic: Story = {
|
|
|
182
182
|
<Combobox
|
|
183
183
|
{...args}
|
|
184
184
|
value={value}
|
|
185
|
-
|
|
185
|
+
onChange={(val) => {
|
|
186
186
|
setValue(Array.isArray(val) ? val[0] : val);
|
|
187
|
-
action("
|
|
187
|
+
action("onChange")(val);
|
|
188
188
|
}}
|
|
189
189
|
/>
|
|
190
190
|
{value && <Text color="$colorHover">Selected: {value}</Text>}
|
|
@@ -203,7 +203,7 @@ export const WithLabel: Story = {
|
|
|
203
203
|
helperText="Select an author from the list"
|
|
204
204
|
options={authorOptions}
|
|
205
205
|
value={value}
|
|
206
|
-
|
|
206
|
+
onChange={(v) => setValue(Array.isArray(v) ? v[0] : v)}
|
|
207
207
|
placeholder="Select an author..."
|
|
208
208
|
searchPlaceholder="Type to search..."
|
|
209
209
|
/>
|
|
@@ -251,7 +251,7 @@ export const Interactive: Story = {
|
|
|
251
251
|
label="Pick an author"
|
|
252
252
|
options={authorOptions}
|
|
253
253
|
value={value}
|
|
254
|
-
|
|
254
|
+
onChange={(v) => setValue(Array.isArray(v) ? v[0] : v)}
|
|
255
255
|
placeholder="Select an author..."
|
|
256
256
|
/>
|
|
257
257
|
<Text>Selected: {value || "None"}</Text>
|
|
@@ -275,7 +275,7 @@ export const CustomTrigger: StoryObj<typeof Combobox> = {
|
|
|
275
275
|
<Combobox
|
|
276
276
|
options={authorOptions}
|
|
277
277
|
value={value}
|
|
278
|
-
|
|
278
|
+
onChange={(v) => setValue(Array.isArray(v) ? v[0] : v)}
|
|
279
279
|
searchPlaceholder="Type to search..."
|
|
280
280
|
popoverWidth={260}
|
|
281
281
|
trigger={(selected) => (
|
|
@@ -321,7 +321,7 @@ export const ManyOptions: StoryObj<typeof Combobox> = {
|
|
|
321
321
|
label="Pick an item"
|
|
322
322
|
options={options}
|
|
323
323
|
value={value}
|
|
324
|
-
|
|
324
|
+
onChange={(v) => setValue(Array.isArray(v) ? v[0] : v)}
|
|
325
325
|
placeholder="Select from 100 items..."
|
|
326
326
|
searchPlaceholder="Type to filter..."
|
|
327
327
|
emptyMessage="No matching items."
|
|
@@ -163,11 +163,8 @@ export interface ComboboxProps {
|
|
|
163
163
|
defaultValue?: string | string[];
|
|
164
164
|
/**
|
|
165
165
|
* Canonical change handler, consistent with the rest of the field family.
|
|
166
|
-
* Prefer this over `onValueChange`.
|
|
167
166
|
*/
|
|
168
167
|
onChange?: (value: string | string[]) => void;
|
|
169
|
-
/** @deprecated Use `onChange` instead. */
|
|
170
|
-
onValueChange?: (value: string | string[]) => void;
|
|
171
168
|
placeholder?: string;
|
|
172
169
|
searchPlaceholder?: string;
|
|
173
170
|
emptyMessage?: string;
|
|
@@ -2564,7 +2561,6 @@ export function Combobox({
|
|
|
2564
2561
|
value: valueProp,
|
|
2565
2562
|
defaultValue,
|
|
2566
2563
|
onChange,
|
|
2567
|
-
onValueChange,
|
|
2568
2564
|
placeholder: placeholderProp,
|
|
2569
2565
|
searchPlaceholder: searchPlaceholderProp,
|
|
2570
2566
|
emptyMessage: emptyMessageProp,
|
|
@@ -2704,10 +2700,9 @@ export function Combobox({
|
|
|
2704
2700
|
onValueChange={(value) => {
|
|
2705
2701
|
if (disabled) return;
|
|
2706
2702
|
handleValueChange?.(value);
|
|
2707
|
-
// Canonical `onChange`
|
|
2703
|
+
// Canonical `onChange` fires from
|
|
2708
2704
|
// this single emit site (same reconciliation as Switch).
|
|
2709
2705
|
onChange?.(value);
|
|
2710
|
-
onValueChange?.(value);
|
|
2711
2706
|
}}
|
|
2712
2707
|
onBlur={handleBlur}
|
|
2713
2708
|
placeholder={placeholder}
|
|
@@ -82,12 +82,11 @@ describe("DatePicker", () => {
|
|
|
82
82
|
expect(document.querySelector('[data-testid="floating-panel-viewport"]')).toBeNull();
|
|
83
83
|
});
|
|
84
84
|
|
|
85
|
-
it("fires canonical onChange
|
|
85
|
+
it("fires canonical onChange once when a day is picked", async () => {
|
|
86
86
|
const DatePicker = await loadDatePicker();
|
|
87
87
|
const onChange = vi.fn();
|
|
88
|
-
const onValueChange = vi.fn();
|
|
89
88
|
const result = renderWithProviders(
|
|
90
|
-
<DatePicker label="Date" name="date" onChange={onChange}
|
|
89
|
+
<DatePicker label="Date" name="date" onChange={onChange} />,
|
|
91
90
|
);
|
|
92
91
|
|
|
93
92
|
const trigger = result.container.querySelector("input,button,[role='button']");
|
|
@@ -106,9 +105,7 @@ describe("DatePicker", () => {
|
|
|
106
105
|
});
|
|
107
106
|
|
|
108
107
|
expect(onChange).toHaveBeenCalledTimes(1);
|
|
109
|
-
expect(onValueChange).toHaveBeenCalledTimes(1);
|
|
110
108
|
expect(onChange.mock.calls[0][0]).toBeInstanceOf(Date);
|
|
111
|
-
expect(onChange.mock.calls[0][0]).toEqual(onValueChange.mock.calls[0][0]);
|
|
112
109
|
});
|
|
113
110
|
});
|
|
114
111
|
|
|
@@ -262,32 +259,18 @@ describe("DatePicker", () => {
|
|
|
262
259
|
it("standalone controlled: a value arriving after mount displays, without onChange", async () => {
|
|
263
260
|
const DatePicker = await loadDatePicker();
|
|
264
261
|
const onChange = vi.fn();
|
|
265
|
-
const onValueChange = vi.fn();
|
|
266
262
|
const result = renderWithProviders(
|
|
267
|
-
<DatePicker
|
|
268
|
-
label="Due Date"
|
|
269
|
-
value={null}
|
|
270
|
-
onChange={onChange}
|
|
271
|
-
onValueChange={onValueChange}
|
|
272
|
-
/>,
|
|
263
|
+
<DatePicker label="Due Date" value={null} onChange={onChange} />,
|
|
273
264
|
);
|
|
274
265
|
expect(getDisplayInput(result.container)?.value ?? "").toBe("");
|
|
275
266
|
|
|
276
267
|
// Late seed: the upstream doc value (frappe wire string) arrives after
|
|
277
268
|
// first paint.
|
|
278
|
-
result.rerender(
|
|
279
|
-
<DatePicker
|
|
280
|
-
label="Due Date"
|
|
281
|
-
value="2026-03-05"
|
|
282
|
-
onChange={onChange}
|
|
283
|
-
onValueChange={onValueChange}
|
|
284
|
-
/>,
|
|
285
|
-
);
|
|
269
|
+
result.rerender(<DatePicker label="Due Date" value="2026-03-05" onChange={onChange} />);
|
|
286
270
|
await waitFor(() => {
|
|
287
271
|
expect(getDisplayInput(result.container)?.value).toBe("Mar 5, 2026");
|
|
288
272
|
});
|
|
289
273
|
expect(onChange).not.toHaveBeenCalled();
|
|
290
|
-
expect(onValueChange).not.toHaveBeenCalled();
|
|
291
274
|
});
|
|
292
275
|
|
|
293
276
|
it("form-integrated: a field value set after mount displays, without onChange", async () => {
|
|
@@ -75,11 +75,8 @@ export type DatetimePickerProps<
|
|
|
75
75
|
value?: Date | string | null;
|
|
76
76
|
/**
|
|
77
77
|
* Canonical change handler, consistent with the rest of the field family.
|
|
78
|
-
* Prefer this over `onValueChange`.
|
|
79
78
|
*/
|
|
80
79
|
onChange?: (value: Date | null) => void;
|
|
81
|
-
/** @deprecated Use `onChange` instead. */
|
|
82
|
-
onValueChange?: (value: Date | null) => void;
|
|
83
80
|
/** Native only. `false` keeps the catalog overlay; omit for the OS picker. */
|
|
84
81
|
native?: boolean;
|
|
85
82
|
/**
|
|
@@ -359,7 +356,6 @@ export function DatetimePicker<
|
|
|
359
356
|
defaultValue,
|
|
360
357
|
value: controlledValue,
|
|
361
358
|
onChange,
|
|
362
|
-
onValueChange,
|
|
363
359
|
form,
|
|
364
360
|
inputProps: _inputProps,
|
|
365
361
|
placeholder = t("Select date and time"),
|
|
@@ -419,11 +415,10 @@ export function DatetimePicker<
|
|
|
419
415
|
setSelectedDatetime(date);
|
|
420
416
|
setDisplayDate(date);
|
|
421
417
|
fieldChange?.(date);
|
|
422
|
-
// Canonical `onChange`
|
|
418
|
+
// Canonical `onChange` fires (single emit).
|
|
423
419
|
onChange?.(date);
|
|
424
|
-
onValueChange?.(date);
|
|
425
420
|
},
|
|
426
|
-
[minDate, maxDate, setDisplayDate, onChange
|
|
421
|
+
[minDate, maxDate, setDisplayDate, onChange],
|
|
427
422
|
);
|
|
428
423
|
|
|
429
424
|
const handleClearDatetime = useCallback(
|
|
@@ -432,9 +427,8 @@ export function DatetimePicker<
|
|
|
432
427
|
setDisplayDate(new Date());
|
|
433
428
|
fieldChange?.(null);
|
|
434
429
|
onChange?.(null);
|
|
435
|
-
onValueChange?.(null);
|
|
436
430
|
},
|
|
437
|
-
[setDisplayDate, onChange
|
|
431
|
+
[setDisplayDate, onChange],
|
|
438
432
|
);
|
|
439
433
|
|
|
440
434
|
const displayValue = useMemo(
|
|
@@ -66,10 +66,7 @@ describe("native DatetimePicker ownership", () => {
|
|
|
66
66
|
|
|
67
67
|
it("opens from its full-width native target and commits exactly once", () => {
|
|
68
68
|
const onChange = vi.fn();
|
|
69
|
-
const
|
|
70
|
-
const result = renderWithProviders(
|
|
71
|
-
<DatetimePicker onChange={onChange} onValueChange={onValueChange} />,
|
|
72
|
-
);
|
|
69
|
+
const result = renderWithProviders(<DatetimePicker onChange={onChange} />);
|
|
73
70
|
const trigger = result.getByRole("button", { name: "Date and time" });
|
|
74
71
|
expect(getComputedStyle(trigger).width).toBe("100%");
|
|
75
72
|
fireEvent.click(trigger);
|
|
@@ -77,7 +74,6 @@ describe("native DatetimePicker ownership", () => {
|
|
|
77
74
|
fireEvent.click(result.getByRole("button", { name: "Confirm OS selection" }));
|
|
78
75
|
expect(result.queryByRole("dialog")).toBeNull();
|
|
79
76
|
expect(onChange).toHaveBeenCalledExactlyOnceWith(picked);
|
|
80
|
-
expect(onValueChange).toHaveBeenCalledExactlyOnceWith(picked);
|
|
81
77
|
expect(result.container.querySelector("input")?.value).toContain("Mar 5, 2026");
|
|
82
78
|
});
|
|
83
79
|
|
|
@@ -107,19 +103,13 @@ describe("native DatetimePicker ownership", () => {
|
|
|
107
103
|
|
|
108
104
|
it("adopts controlled values after mount without emitting changes or opening", async () => {
|
|
109
105
|
const onChange = vi.fn();
|
|
110
|
-
const
|
|
111
|
-
const result = renderWithProviders(
|
|
112
|
-
<DatetimePicker value={null} onChange={onChange} onValueChange={onValueChange} />,
|
|
113
|
-
);
|
|
106
|
+
const result = renderWithProviders(<DatetimePicker value={null} onChange={onChange} />);
|
|
114
107
|
expect(result.container.querySelector("input")?.value).toBe("");
|
|
115
|
-
result.rerender(
|
|
116
|
-
<DatetimePicker value={picked} onChange={onChange} onValueChange={onValueChange} />,
|
|
117
|
-
);
|
|
108
|
+
result.rerender(<DatetimePicker value={picked} onChange={onChange} />);
|
|
118
109
|
await waitFor(() =>
|
|
119
110
|
expect(result.container.querySelector("input")?.value).toContain("Mar 5, 2026"),
|
|
120
111
|
);
|
|
121
112
|
expect(onChange).not.toHaveBeenCalled();
|
|
122
|
-
expect(onValueChange).not.toHaveBeenCalled();
|
|
123
113
|
expect(result.queryByRole("dialog")).toBeNull();
|
|
124
114
|
});
|
|
125
115
|
|