@multiplatform.one/forms 7.90.6 → 8.1.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.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/glass.cjs +4 -0
- package/dist/cjs/Button/glass.native.js +6 -0
- package/dist/cjs/Button/glass.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 +1 -2
- 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/Composer/index.cjs +85 -0
- package/dist/cjs/Composer/index.native.js +95 -0
- package/dist/cjs/Composer/index.native.js.map +1 -0
- 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.map +1 -1
- package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
- package/dist/cjs/ControlGroup/index.native.js.map +1 -1
- 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.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.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.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.cjs +32 -1
- package/dist/cjs/InputParts/index.native.js +32 -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.map +1 -1
- package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
- 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 +0 -2
- 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 +2 -4
- 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 +2 -4
- package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
- 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 +1 -3
- 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.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.cjs +2 -5
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +2 -5
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +1 -3
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
- 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 +2 -5
- 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 +1 -3
- package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
- 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/durationWheelTypes.native.js.map +1 -1
- 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 +1 -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/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 +2 -2
- 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 +1 -3
- 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 +1 -5
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- 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 +3 -5
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- 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.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.map +1 -1
- package/dist/cjs/fields/RadioGroup/index.cjs +0 -2
- package/dist/cjs/fields/RadioGroup/index.native.js +0 -2
- package/dist/cjs/fields/RadioGroup/index.native.js.map +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.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 +3 -5
- 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.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +0 -2
- package/dist/cjs/fields/Slider/index.native.js +0 -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.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.map +1 -1
- package/dist/cjs/fields/TextArea/index.cjs +0 -2
- package/dist/cjs/fields/TextArea/index.native.js +1 -3
- package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/catalog.native.js.map +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.map +1 -1
- package/dist/cjs/fields/ToggleGroup/index.cjs +0 -2
- package/dist/cjs/fields/ToggleGroup/index.native.js +1 -3
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +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.cjs +3 -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 +2 -0
- package/dist/cjs/index.native.js.map +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.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.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.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/Button/glass.mjs +4 -1
- package/dist/esm/Button/glass.mjs.map +1 -1
- package/dist/esm/Button/glass.native.js +6 -1
- package/dist/esm/Button/glass.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/Composer/index.mjs +60 -0
- package/dist/esm/Composer/index.mjs.map +1 -0
- package/dist/esm/Composer/index.native.js +67 -0
- package/dist/esm/Composer/index.native.js.map +1 -0
- 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/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/InputParts/index.mjs +33 -2
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +33 -2
- package/dist/esm/InputParts/index.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/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/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/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/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/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/index.native.js +1 -3
- package/dist/esm/fields/DatePicker/index.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/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/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/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/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/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/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/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/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/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.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.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/shared/OverlayWindow.native.js +1 -25
- package/dist/esm/shared/OverlayWindow.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/jsx/Button/glass.mjs +4 -1
- package/dist/jsx/Button/glass.mjs.map +1 -1
- package/dist/jsx/Button/glass.native.js +6 -0
- package/dist/jsx/Button/glass.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/Composer/index.mjs +60 -0
- package/dist/jsx/Composer/index.mjs.map +1 -0
- package/dist/jsx/Composer/index.native.js +95 -0
- package/dist/jsx/Composer/index.native.js.map +1 -0
- 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/InputParts/index.mjs +33 -2
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +32 -1
- package/dist/jsx/InputParts/index.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/index.js +2 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +2 -0
- package/dist/jsx/index.native.js.map +1 -1
- 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/glass.native.field.spec.ts +14 -0
- package/src/Button/glass.native.ts +5 -0
- package/src/Button/glass.ts +8 -0
- package/src/Button/index.tsx +2 -7
- package/src/Composer/Composer.spec.tsx +66 -0
- package/src/Composer/Composer.stories.tsx +56 -0
- package/src/Composer/index.tsx +82 -0
- 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/InputParts/InputParts.glass.spec.tsx +99 -0
- package/src/InputParts/index.tsx +41 -0
- 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/index.ts +3 -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/glass.d.ts +5 -0
- package/types/Button/glass.d.ts.map +1 -1
- package/types/Button/glass.native.d.ts +2 -0
- package/types/Button/glass.native.d.ts.map +1 -1
- package/types/Button/index.d.ts +1 -2
- package/types/Button/index.d.ts.map +1 -1
- package/types/Composer/index.d.ts +28 -0
- package/types/Composer/index.d.ts.map +1 -0
- 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/InputParts/index.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.d.ts +2 -0
- package/types/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
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var nativeOverlayWindow_exports = {};
|
|
26
|
+
__export(nativeOverlayWindow_exports, {
|
|
27
|
+
OverlayWindow: () => OverlayWindow
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(nativeOverlayWindow_exports);
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
+
var import_react_native = require("react-native");
|
|
32
|
+
var import_tamagui = require("tamagui");
|
|
33
|
+
var import_overlayStack = require("./overlayStack.native.js");
|
|
34
|
+
function OverlayWindow(param) {
|
|
35
|
+
var {
|
|
36
|
+
zIndex,
|
|
37
|
+
children
|
|
38
|
+
} = param;
|
|
39
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.PortalProvider, {
|
|
40
|
+
shouldAddRootHost: false,
|
|
41
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_overlayStack.OverlayStackProvider, {
|
|
42
|
+
zIndex,
|
|
43
|
+
children
|
|
44
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
|
|
45
|
+
pointerEvents: "box-none",
|
|
46
|
+
style: import_react_native.StyleSheet.absoluteFill,
|
|
47
|
+
testID: "overlay-window-host",
|
|
48
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.PortalHost, {
|
|
49
|
+
name: "root"
|
|
50
|
+
})
|
|
51
|
+
})]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=nativeOverlayWindow.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc"],"sources":["../../../src/shared/nativeOverlayWindow.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAY,CAAAC,cAAA;AACrB,IAAAC,gBAAS,GAAAF,MAAA,CAAAG,wBAA4B;AAkBjC,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAFG,IAAAC,YAAS,GAAAN,MAAgB,CAAAO,SAAQ,CAAAC,cAAgC;AACtE,IAAAC,QACE,GAAAA,CAAAC,MAAA,EAAAC,GAAA,KAAC;EACC,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAC;IAAAC,GAAA,EAAOF,GAAA,CAAAC,IAAA;IAAAE,UAAc;EAAW;AAEjC;AAGN,IAAAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/forms",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"description": "Cross-platform form components with URL state management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"types": "types/index.d.ts",
|
|
38
38
|
"exports": {
|
|
39
39
|
"./package.json": "./package.json",
|
|
40
|
-
"./src/*": "./src/*",
|
|
41
40
|
".": {
|
|
41
|
+
"gnome": "./src/index.gnome.ts",
|
|
42
42
|
"source": "./src/index.ts",
|
|
43
43
|
"react-native": {
|
|
44
44
|
"types": "./types/index.d.ts",
|
|
@@ -50,6 +50,19 @@
|
|
|
50
50
|
"import": "./dist/esm/index.mjs",
|
|
51
51
|
"require": "./dist/cjs/index.cjs",
|
|
52
52
|
"default": "./dist/cjs/index.cjs"
|
|
53
|
+
},
|
|
54
|
+
"./native-twins": {
|
|
55
|
+
"source": "./src/nativeTwins.ts",
|
|
56
|
+
"react-native": {
|
|
57
|
+
"types": "./types/nativeTwins.d.ts",
|
|
58
|
+
"import": "./dist/esm/nativeTwins.native.js",
|
|
59
|
+
"require": "./dist/cjs/nativeTwins.native.js",
|
|
60
|
+
"default": "./dist/esm/nativeTwins.native.js"
|
|
61
|
+
},
|
|
62
|
+
"types": "./types/nativeTwins.d.ts",
|
|
63
|
+
"import": "./dist/esm/nativeTwins.mjs",
|
|
64
|
+
"require": "./dist/cjs/nativeTwins.cjs",
|
|
65
|
+
"default": "./dist/cjs/nativeTwins.cjs"
|
|
53
66
|
}
|
|
54
67
|
},
|
|
55
68
|
"publishConfig": {
|
|
@@ -57,10 +70,10 @@
|
|
|
57
70
|
},
|
|
58
71
|
"dependencies": {
|
|
59
72
|
"@floating-ui/react": "^0.27.20",
|
|
60
|
-
"@multiplatform.one/platform": "^
|
|
61
|
-
"@multiplatform.one/router": "^
|
|
62
|
-
"@multiplatform.one/table-primitives": "^
|
|
63
|
-
"@multiplatform.one/theme": "^
|
|
73
|
+
"@multiplatform.one/platform": "^8.1.0",
|
|
74
|
+
"@multiplatform.one/router": "^8.1.0",
|
|
75
|
+
"@multiplatform.one/table-primitives": "^8.1.0",
|
|
76
|
+
"@multiplatform.one/theme": "^8.1.0",
|
|
64
77
|
"@phosphor-icons/react": "^2.1.10",
|
|
65
78
|
"@tamagui/get-font-sized": "2.7.6",
|
|
66
79
|
"@tamagui/get-token": "2.7.6",
|
|
@@ -80,9 +93,9 @@
|
|
|
80
93
|
},
|
|
81
94
|
"devDependencies": {
|
|
82
95
|
"@expo/ui": "~55.0.17",
|
|
83
|
-
"@multiplatform.one/config": "
|
|
84
|
-
"@multiplatform.one/storybook": "
|
|
85
|
-
"@multiplatform.one/test-utils": "
|
|
96
|
+
"@multiplatform.one/config": "8.1.0",
|
|
97
|
+
"@multiplatform.one/storybook": "8.1.0",
|
|
98
|
+
"@multiplatform.one/test-utils": "8.1.0",
|
|
86
99
|
"@tamagui/build": "2.7.6",
|
|
87
100
|
"@tamagui/config": "2.7.6",
|
|
88
101
|
"@tamagui/vite-plugin": "2.7.6",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-268 (FZ-10606): the field loader is the system glass or nothing, the
|
|
3
|
+
* same probe as the icon button's.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, expect, it, vi } from "vitest";
|
|
6
|
+
|
|
7
|
+
vi.mock("expo-modules-core", () => ({ requireOptionalNativeModule: () => null }));
|
|
8
|
+
|
|
9
|
+
describe("loadFieldGlassView (native)", () => {
|
|
10
|
+
it("a binary without the native module gives a field no glass", async () => {
|
|
11
|
+
const { loadFieldGlassView } = await import("./glass.native");
|
|
12
|
+
expect(loadFieldGlassView()).toBeNull();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -70,3 +70,8 @@ export function loadGlassView(): GlassViewComponent | null {
|
|
|
70
70
|
export function loadGlassContainer(): GlassContainerComponent | null {
|
|
71
71
|
return systemGlass()?.container ?? null;
|
|
72
72
|
}
|
|
73
|
+
|
|
74
|
+
/** LC-268 (FZ-10606): a field in a bar sits on the system's glass, never a drawn face. */
|
|
75
|
+
export function loadFieldGlassView(): GlassViewComponent | null {
|
|
76
|
+
return systemGlass()?.view ?? null;
|
|
77
|
+
}
|
package/src/Button/glass.ts
CHANGED
|
@@ -33,3 +33,11 @@ export function loadGlassView(): GlassViewComponent | null {
|
|
|
33
33
|
export function loadGlassContainer(): GlassContainerComponent | null {
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* LC-268 (FZ-10606): the system Liquid Glass a field in a bar sits on. Only
|
|
39
|
+
* native iOS 26 has it; the web, iOS Safari included, keeps the plain field.
|
|
40
|
+
*/
|
|
41
|
+
export function loadFieldGlassView(): GlassViewComponent | null {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
package/src/Button/index.tsx
CHANGED
|
@@ -42,7 +42,6 @@ import {
|
|
|
42
42
|
useElevatedSurface,
|
|
43
43
|
useGlyphTintOnSurface,
|
|
44
44
|
useResolvedKnobs,
|
|
45
|
-
useTopBarSurface,
|
|
46
45
|
useTouchSurface,
|
|
47
46
|
type ControlTier,
|
|
48
47
|
type SizeRecipeFamilyName,
|
|
@@ -430,8 +429,7 @@ export interface ButtonProps extends Omit<
|
|
|
430
429
|
* plated case: a translucent material circle for a control floating over
|
|
431
430
|
* an image or video, where a bare glyph would be lost on the picture.
|
|
432
431
|
* `plate="primary"` is the overlay's one confirm (LC-260): an accent-filled
|
|
433
|
-
* circle with an on-fill glyph, the iOS 26 sheet's checkmark.
|
|
434
|
-
* top bar it is a bar glyph like back and "…" (FZ-8989).
|
|
432
|
+
* circle with an on-fill glyph, the iOS 26 sheet's checkmark.
|
|
435
433
|
*/
|
|
436
434
|
plate?: "media" | "primary";
|
|
437
435
|
/**
|
|
@@ -600,10 +598,7 @@ export function Button({
|
|
|
600
598
|
(s) => ({ isValid: s.isValid ?? true }),
|
|
601
599
|
);
|
|
602
600
|
|
|
603
|
-
|
|
604
|
-
// top bar draws its confirm as a bar glyph beside back and "…".
|
|
605
|
-
const topBar = useTopBarSurface();
|
|
606
|
-
const primaryPlate = plate === "primary" && !topBar;
|
|
601
|
+
const primaryPlate = plate === "primary";
|
|
607
602
|
const intent =
|
|
608
603
|
((accent || primaryPlate) && "accent") ||
|
|
609
604
|
(error && "error") ||
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { fireEvent } from "@testing-library/react";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
|
+
import { useBarSurface } from "@multiplatform.one/theme";
|
|
5
|
+
import { Composer } from "./index";
|
|
6
|
+
|
|
7
|
+
function BarProbe({ name }: { name: string }) {
|
|
8
|
+
return <span data-probe={name} data-bar={String(useBarSurface())} />;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
describe("Composer", () => {
|
|
12
|
+
it("names its field by the placeholder", () => {
|
|
13
|
+
const result = renderWithProviders(<Composer placeholder="Type a message" />);
|
|
14
|
+
const input = result.container.querySelector("input") as HTMLInputElement;
|
|
15
|
+
expect(input).not.toBeNull();
|
|
16
|
+
expect(input.getAttribute("placeholder")).toBe("Type a message");
|
|
17
|
+
expect(result.container.querySelector("[aria-label='Type a message'], label")).not.toBeNull();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("calls onChange with the field's text (LC-14)", () => {
|
|
21
|
+
const onChange = vi.fn();
|
|
22
|
+
const result = renderWithProviders(<Composer placeholder="Ask" onChange={onChange} />);
|
|
23
|
+
const input = result.container.querySelector("input") as HTMLInputElement;
|
|
24
|
+
fireEvent.change(input, { target: { value: "hello" } });
|
|
25
|
+
expect(onChange).toHaveBeenCalledWith("hello");
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it("lays the tools out as one row inside the card, off any bar surface", () => {
|
|
29
|
+
const result = renderWithProviders(
|
|
30
|
+
<Composer
|
|
31
|
+
placeholder="Type a message"
|
|
32
|
+
tools={
|
|
33
|
+
<>
|
|
34
|
+
<BarProbe name="first" />
|
|
35
|
+
<BarProbe name="second" />
|
|
36
|
+
</>
|
|
37
|
+
}
|
|
38
|
+
/>,
|
|
39
|
+
);
|
|
40
|
+
const row = result.container.querySelector("[data-composer-tools]") as HTMLElement;
|
|
41
|
+
expect(row.closest("[data-composer-card]")).not.toBeNull();
|
|
42
|
+
expect(row.querySelectorAll("[data-probe]")).toHaveLength(2);
|
|
43
|
+
expect(row.querySelector('[data-probe="first"]')!.getAttribute("data-bar")).toBe("false");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("draws the tool row inside the card and the footer under it", () => {
|
|
47
|
+
const result = renderWithProviders(
|
|
48
|
+
<Composer
|
|
49
|
+
placeholder="Ask"
|
|
50
|
+
tools={<span data-probe="tool" />}
|
|
51
|
+
footer={<span data-probe="footer" />}
|
|
52
|
+
/>,
|
|
53
|
+
);
|
|
54
|
+
const tool = result.container.querySelector("[data-probe='tool']")!;
|
|
55
|
+
const footer = result.container.querySelector("[data-probe='footer']")!;
|
|
56
|
+
expect(tool.closest("[data-composer-card]")).not.toBeNull();
|
|
57
|
+
expect(footer.closest("[data-composer-card]")).toBeNull();
|
|
58
|
+
expect(footer.closest("[data-composer-footer]")).not.toBeNull();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("leaves out empty slots", () => {
|
|
62
|
+
const result = renderWithProviders(<Composer placeholder="Ask" />);
|
|
63
|
+
expect(result.container.querySelector("[data-composer-tools]")).toBeNull();
|
|
64
|
+
expect(result.container.querySelector("[data-composer-footer]")).toBeNull();
|
|
65
|
+
});
|
|
66
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { action } from "@multiplatform.one/storybook";
|
|
2
|
+
import { MicrophoneIcon, PaperclipIcon } from "@phosphor-icons/react";
|
|
3
|
+
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { XStack, YStack } from "tamagui";
|
|
6
|
+
import { IconButton } from "../Button";
|
|
7
|
+
import { Composer } from "./index";
|
|
8
|
+
|
|
9
|
+
const meta: Meta<typeof Composer> = {
|
|
10
|
+
title: "Forms/Composer",
|
|
11
|
+
component: Composer,
|
|
12
|
+
parameters: {
|
|
13
|
+
status: { type: "beta" },
|
|
14
|
+
docs: {
|
|
15
|
+
description: {
|
|
16
|
+
component:
|
|
17
|
+
"The one composer (`data-composer`): a field on the elevated ground, an optional tool row inside the same card and an optional footer.",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export default meta;
|
|
23
|
+
|
|
24
|
+
type Story = StoryObj<typeof Composer>;
|
|
25
|
+
|
|
26
|
+
function Controlled(props: Partial<Parameters<typeof Composer>[0]>) {
|
|
27
|
+
const [value, setValue] = useState("");
|
|
28
|
+
return (
|
|
29
|
+
<YStack padding="$4" width="100%" maxWidth={480}>
|
|
30
|
+
<Composer
|
|
31
|
+
placeholder="Type a message"
|
|
32
|
+
value={value}
|
|
33
|
+
onChange={setValue}
|
|
34
|
+
onSubmit={action("submit")}
|
|
35
|
+
{...props}
|
|
36
|
+
/>
|
|
37
|
+
</YStack>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export const Main: Story = { render: () => <Controlled /> };
|
|
42
|
+
|
|
43
|
+
export const WithTools: Story = {
|
|
44
|
+
name: "Tools",
|
|
45
|
+
render: () => (
|
|
46
|
+
<Controlled
|
|
47
|
+
tools={
|
|
48
|
+
<>
|
|
49
|
+
<IconButton icon={PaperclipIcon} aria-label="Attach" onPress={action("attach")} />
|
|
50
|
+
<XStack flex={1} />
|
|
51
|
+
<IconButton icon={MicrophoneIcon} aria-label="Dictate" onPress={action("dictate")} />
|
|
52
|
+
</>
|
|
53
|
+
}
|
|
54
|
+
/>
|
|
55
|
+
),
|
|
56
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Surface, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import { XStack, YStack } from "tamagui";
|
|
4
|
+
import { Input } from "../fields/Input";
|
|
5
|
+
|
|
6
|
+
export interface ComposerProps {
|
|
7
|
+
/** The field's hint, and its accessible name. */
|
|
8
|
+
placeholder: string;
|
|
9
|
+
value?: string;
|
|
10
|
+
defaultValue?: string;
|
|
11
|
+
/** LC-14: the canonical change prop, called with the field's text. */
|
|
12
|
+
onChange?: (value: string) => void;
|
|
13
|
+
/** Return on a single-line field (web and hardware keyboards). */
|
|
14
|
+
onSubmit?: (value: string) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Tools under the field, inside the same card (attach, model, dictate). The
|
|
17
|
+
* composer lays them out as one centred row; a flexed spacer between two of
|
|
18
|
+
* them pushes the rest to the trailing edge.
|
|
19
|
+
*/
|
|
20
|
+
tools?: ReactNode;
|
|
21
|
+
/** A line under the composer (live facts about the conversation). */
|
|
22
|
+
footer?: ReactNode;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
testID?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The one composer: a field on the elevated ground with an optional tool row
|
|
29
|
+
* under it in the same card and an optional footer. Every app's chat, prompt
|
|
30
|
+
* and quick-add box is this.
|
|
31
|
+
*/
|
|
32
|
+
export function Composer({
|
|
33
|
+
placeholder,
|
|
34
|
+
value,
|
|
35
|
+
defaultValue,
|
|
36
|
+
onChange,
|
|
37
|
+
onSubmit,
|
|
38
|
+
tools,
|
|
39
|
+
footer,
|
|
40
|
+
disabled,
|
|
41
|
+
testID,
|
|
42
|
+
}: ComposerProps) {
|
|
43
|
+
const { knobProps } = useResolvedKnobs({ component: "Card" });
|
|
44
|
+
return (
|
|
45
|
+
<YStack data-composer="" testID={testID} {...knobProps.gapSm}>
|
|
46
|
+
<YStack
|
|
47
|
+
data-composer-card=""
|
|
48
|
+
{...knobProps.panelPadding}
|
|
49
|
+
{...knobProps.elevatedSurface}
|
|
50
|
+
{...knobProps.containerRadius}
|
|
51
|
+
{...knobProps.gapSm}
|
|
52
|
+
>
|
|
53
|
+
<Surface painted elevated>
|
|
54
|
+
<Input
|
|
55
|
+
placeholder={placeholder}
|
|
56
|
+
label={placeholder}
|
|
57
|
+
labelHidden
|
|
58
|
+
chromeless
|
|
59
|
+
disabled={disabled}
|
|
60
|
+
value={value}
|
|
61
|
+
defaultValue={defaultValue}
|
|
62
|
+
onChangeText={(text: string) => onChange?.(text)}
|
|
63
|
+
inputProps={
|
|
64
|
+
onSubmit
|
|
65
|
+
? ({
|
|
66
|
+
onSubmitEditing: (event: { nativeEvent?: { text?: string } }) =>
|
|
67
|
+
onSubmit(event?.nativeEvent?.text ?? value ?? ""),
|
|
68
|
+
} as never)
|
|
69
|
+
: undefined
|
|
70
|
+
}
|
|
71
|
+
/>
|
|
72
|
+
{tools ? (
|
|
73
|
+
<XStack data-composer-tools="" alignItems="center" {...knobProps.gapSm}>
|
|
74
|
+
{tools}
|
|
75
|
+
</XStack>
|
|
76
|
+
) : null}
|
|
77
|
+
</Surface>
|
|
78
|
+
</YStack>
|
|
79
|
+
{footer ? <YStack data-composer-footer="">{footer}</YStack> : null}
|
|
80
|
+
</YStack>
|
|
81
|
+
);
|
|
82
|
+
}
|
|
@@ -214,7 +214,7 @@ function ScrollClipPair({ where }: { where: string }) {
|
|
|
214
214
|
placeholder="Pick a fruit"
|
|
215
215
|
options={scrollClipOptions}
|
|
216
216
|
value={value}
|
|
217
|
-
|
|
217
|
+
onChange={(next) => setValue(Array.isArray(next) ? next[0] : next)}
|
|
218
218
|
/>
|
|
219
219
|
<FloatingPanel
|
|
220
220
|
open={open}
|
|
@@ -142,7 +142,7 @@ import {
|
|
|
142
142
|
type TriggerRect,
|
|
143
143
|
} from "./pointAnchor";
|
|
144
144
|
import { RegularPanel } from "./RegularPanel";
|
|
145
|
-
import { panelViewportPadding
|
|
145
|
+
import { panelViewportPadding } from "./useFloatingPanel";
|
|
146
146
|
import { TrailingActionOverlay, TriggerWithTrailingAction } from "./trailingAction";
|
|
147
147
|
import { iconCoverRect } from "./coverRect";
|
|
148
148
|
import {
|
|
@@ -211,7 +211,6 @@ export function FloatingPanel({
|
|
|
211
211
|
panelWidth = "content",
|
|
212
212
|
sheet,
|
|
213
213
|
widthMode,
|
|
214
|
-
fitContent,
|
|
215
214
|
}: FloatingPanelProps) {
|
|
216
215
|
// The panel floats over the page: it never inherits a painted ancestor.
|
|
217
216
|
const { knobProps } = useResolvedKnobs({ painted: false });
|
|
@@ -741,7 +740,7 @@ export function FloatingPanel({
|
|
|
741
740
|
Math.max(safeArea?.bottom ?? 0, keyboardInset) -
|
|
742
741
|
panelViewportPadding,
|
|
743
742
|
}}
|
|
744
|
-
widthMode={
|
|
743
|
+
widthMode={widthMode ?? "at-least-trigger"}
|
|
745
744
|
echo={triggerEcho ? (triggerRow ?? trigger) : null}
|
|
746
745
|
echoLabel={triggerA11y?.label}
|
|
747
746
|
header={header}
|
|
@@ -70,7 +70,6 @@ export {
|
|
|
70
70
|
panelTransition,
|
|
71
71
|
panelViewportPadding,
|
|
72
72
|
panelAnchorOffset,
|
|
73
|
-
resolvePanelWidthMode,
|
|
74
73
|
} from "./useFloatingPanel";
|
|
75
74
|
export type {
|
|
76
75
|
PanelWidthMode,
|
|
@@ -182,12 +181,6 @@ export interface FloatingPanelProps {
|
|
|
182
181
|
* `"content"` panel already takes (FZ-8220). A pinned width ignores it.
|
|
183
182
|
*/
|
|
184
183
|
floor?: number;
|
|
185
|
-
/**
|
|
186
|
-
* @deprecated Pass `widthMode` instead — the boolean cannot express
|
|
187
|
-
* `"match-trigger"`. `true` → `"fit-content"`, `false`/undefined →
|
|
188
|
-
* `"at-least-trigger"`. An explicit `widthMode` always wins.
|
|
189
|
-
*/
|
|
190
|
-
fitContent?: boolean;
|
|
191
184
|
/**
|
|
192
185
|
* Content padding for both sheet and web floating panel.
|
|
193
186
|
* Use "none" for self-contained widgets (ColorPicker, DatePicker, TimePicker)
|
|
@@ -795,7 +788,6 @@ function FloatingPanelWeb({
|
|
|
795
788
|
disabled,
|
|
796
789
|
sizing = "grow",
|
|
797
790
|
widthMode,
|
|
798
|
-
fitContent,
|
|
799
791
|
panelWidth,
|
|
800
792
|
floor,
|
|
801
793
|
contentPadding = "default",
|
|
@@ -850,8 +842,7 @@ function FloatingPanelWeb({
|
|
|
850
842
|
disabled,
|
|
851
843
|
repositionRef: repositionFnRef,
|
|
852
844
|
wheelGrowRef: isFill ? undefined : grownRef,
|
|
853
|
-
widthMode: widthMode ?? (isContextMenu
|
|
854
|
-
fitContent,
|
|
845
|
+
widthMode: widthMode ?? (isContextMenu ? "fit-content" : undefined),
|
|
855
846
|
freeOverlay: pointMenu,
|
|
856
847
|
cover,
|
|
857
848
|
panelWidth,
|
|
@@ -27,14 +27,12 @@ const fieldShapedPickers = [
|
|
|
27
27
|
"ColorPicker/parts.tsx",
|
|
28
28
|
"DatePicker/parts.tsx",
|
|
29
29
|
"DatePicker/DatetimePicker.catalog.tsx",
|
|
30
|
+
"Geolocation/index.tsx",
|
|
30
31
|
];
|
|
31
32
|
|
|
32
33
|
/** Field-triggered pickers pinned to the field's width exactly. */
|
|
33
34
|
const matchTriggerPickers = ["Icon/index.tsx"];
|
|
34
35
|
|
|
35
|
-
/** Panels opened from an icon/button trigger, where fit-content is correct. */
|
|
36
|
-
const buttonShapedPickers = ["Geolocation/index.tsx"];
|
|
37
|
-
|
|
38
36
|
function read(relative: string): string {
|
|
39
37
|
return readFileSync(resolve(fieldsDir, relative), "utf8");
|
|
40
38
|
}
|
|
@@ -57,11 +55,4 @@ describe("FloatingPanel width contract (MPO-38, MPO-262)", () => {
|
|
|
57
55
|
expect(source).not.toMatch(/fitContent=\{?true/);
|
|
58
56
|
},
|
|
59
57
|
);
|
|
60
|
-
|
|
61
|
-
it.each(buttonShapedPickers)("%s keeps fit-content deliberately", (relative) => {
|
|
62
|
-
const source = read(relative);
|
|
63
|
-
// Asserted, not merely tolerated: if this stops being true the exemption
|
|
64
|
-
// list is stale and someone must re-judge it rather than delete a line.
|
|
65
|
-
expect(source).toMatch(/fitContent/);
|
|
66
|
-
});
|
|
67
58
|
});
|
|
@@ -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
|