@multiplatform.one/forms 7.80.0 → 7.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AdaptivePopup/index.cjs +1 -1
- package/dist/cjs/AdaptivePopup/index.native.js +3 -3
- 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 +12 -5
- package/dist/cjs/Button/index.native.js +16 -8
- 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.cjs +3 -8
- package/dist/cjs/FloatingPanel/PanelHeader.native.js +3 -8
- 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.cjs +0 -8
- package/dist/cjs/FloatingPanel/coverRect.native.js +0 -8
- package/dist/cjs/FloatingPanel/coverRect.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/echoContext.cjs +5 -27
- package/dist/cjs/FloatingPanel/echoContext.native.js +5 -28
- package/dist/cjs/FloatingPanel/echoContext.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.cjs +49 -131
- package/dist/cjs/FloatingPanel/index.native.js +26 -91
- 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.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.native.js +1 -1
- 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.native.js +1 -1
- 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.native.js +2 -2
- 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 +3 -10
- package/dist/cjs/fields/Combobox/index.native.js +8 -15
- 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.native.js +3 -3
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
- 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.native.js +2 -2
- 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 +2 -2
- 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.native.js +2 -2
- 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.native.js +5 -5
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
- package/dist/cjs/fields/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.native.js +3 -3
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/ImageField/index.native.js +2 -2
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.native.js +3 -3
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.native.js +3 -3
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.native.js +3 -3
- package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.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.native.js +1 -1
- 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.cjs +4 -8
- package/dist/cjs/fields/Select/InlineChoices.native.js +4 -8
- 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 +46 -199
- package/dist/cjs/fields/Select/index.native.js +56 -211
- 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.native.js +1 -1
- 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.native.js +2 -2
- 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.native.js +1 -1
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.cjs +2 -2
- package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +3 -3
- 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 +4 -0
- package/dist/cjs/index.native.js +49 -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/requiredMarking.native.js.map +1 -1
- package/dist/cjs/shared/CheckGlyph.cjs +40 -0
- package/dist/cjs/shared/CheckGlyph.native.js +44 -0
- package/dist/cjs/shared/CheckGlyph.native.js.map +1 -0
- 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/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.cjs +82 -3
- package/dist/cjs/shared/floatingList.native.js +96 -6
- 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/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.mjs +2 -2
- package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
- package/dist/esm/AdaptivePopup/index.native.js +2 -2
- 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 +12 -5
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +14 -6
- 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.mjs +3 -8
- package/dist/esm/FloatingPanel/PanelHeader.mjs.map +1 -1
- package/dist/esm/FloatingPanel/PanelHeader.native.js +3 -8
- 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.mjs +1 -8
- package/dist/esm/FloatingPanel/coverRect.mjs.map +1 -1
- package/dist/esm/FloatingPanel/coverRect.native.js +1 -8
- package/dist/esm/FloatingPanel/coverRect.native.js.map +1 -1
- package/dist/esm/FloatingPanel/echoContext.mjs +4 -24
- package/dist/esm/FloatingPanel/echoContext.mjs.map +1 -1
- package/dist/esm/FloatingPanel/echoContext.native.js +4 -25
- package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.mjs +53 -135
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +30 -95
- 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.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.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.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.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 +4 -11
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +4 -11
- 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.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.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/fieldValueSync.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.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.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.native.js.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js.map +1 -1
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
- package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/index.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.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.mjs +2 -6
- package/dist/esm/fields/Select/InlineChoices.mjs.map +1 -1
- package/dist/esm/fields/Select/InlineChoices.native.js +2 -6
- 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 +49 -202
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +55 -210
- 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.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.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.native.js.map +1 -1
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs +3 -3
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -1
- package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js +3 -3
- 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.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -1
- 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/requiredMarking.native.js.map +1 -1
- package/dist/esm/shared/CheckGlyph.mjs +15 -0
- package/dist/esm/shared/CheckGlyph.mjs.map +1 -0
- package/dist/esm/shared/CheckGlyph.native.js +16 -0
- package/dist/esm/shared/CheckGlyph.native.js.map +1 -0
- package/dist/esm/shared/TimeColumn.native.js.map +1 -1
- package/dist/esm/shared/capabilityPreflight.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.mjs +80 -4
- package/dist/esm/shared/floatingList.mjs.map +1 -1
- package/dist/esm/shared/floatingList.native.js +93 -6
- 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/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/AdaptivePopup/index.mjs +2 -2
- package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js +1 -1
- package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
- package/dist/jsx/Button/index.mjs +12 -5
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +14 -6
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/PanelHeader.mjs +3 -8
- package/dist/jsx/FloatingPanel/PanelHeader.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/PanelHeader.native.js +3 -8
- package/dist/jsx/FloatingPanel/PanelHeader.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/coverRect.mjs +1 -8
- package/dist/jsx/FloatingPanel/coverRect.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/coverRect.native.js +0 -8
- package/dist/jsx/FloatingPanel/coverRect.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/echoContext.mjs +4 -24
- package/dist/jsx/FloatingPanel/echoContext.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/echoContext.native.js +5 -28
- package/dist/jsx/FloatingPanel/echoContext.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +53 -135
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +26 -91
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +4 -11
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +3 -10
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/InlineChoices.mjs +2 -6
- package/dist/jsx/fields/Select/InlineChoices.mjs.map +1 -1
- package/dist/jsx/fields/Select/InlineChoices.native.js +4 -8
- package/dist/jsx/fields/Select/InlineChoices.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +49 -202
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +52 -207
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs +3 -3
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -1
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js +2 -2
- package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
- package/dist/jsx/index.js +3 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +3 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +4 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/CheckGlyph.mjs +15 -0
- package/dist/jsx/shared/CheckGlyph.mjs.map +1 -0
- package/dist/jsx/shared/CheckGlyph.native.js +44 -0
- package/dist/jsx/shared/CheckGlyph.native.js.map +1 -0
- package/dist/jsx/shared/floatingList.mjs +80 -4
- package/dist/jsx/shared/floatingList.mjs.map +1 -1
- package/dist/jsx/shared/floatingList.native.js +95 -5
- package/dist/jsx/shared/floatingList.native.js.map +1 -1
- package/package.json +8 -8
- package/src/AdaptivePopup/index.tsx +2 -2
- package/src/Button/Button.iconButton.spec.tsx +39 -0
- package/src/Button/index.tsx +20 -8
- package/src/FloatingPanel/FloatingPanel.iconCover.spec.tsx +279 -0
- package/src/FloatingPanel/FloatingPanel.menuFace.native.spec.tsx +78 -69
- package/src/FloatingPanel/FloatingPanel.seamlessCover.spec.tsx +12 -0
- package/src/FloatingPanel/PanelHeader.tsx +4 -12
- package/src/FloatingPanel/coverRect.ts +2 -15
- package/src/FloatingPanel/echoContext.ts +6 -40
- package/src/FloatingPanel/index.native.tsx +36 -145
- package/src/FloatingPanel/index.tsx +61 -187
- package/src/FloatingPanel/pointAnchor.spec.ts +1 -1
- package/src/FloatingPanel/pointAnchor.ts +4 -4
- package/src/fields/Combobox/index.tsx +4 -9
- package/src/fields/Select/InlineChoices.tsx +2 -2
- package/src/fields/Select/Select.containingBlock.spec.tsx +131 -130
- package/src/fields/Select/Select.stories.tsx +10 -0
- package/src/fields/Select/index.tsx +66 -253
- package/src/fields/nativeDateTime/OsDateTimeSheet.tsx +3 -3
- package/src/index.ts +2 -1
- package/src/shared/CheckGlyph.tsx +12 -0
- package/src/shared/floatingList.spec.tsx +154 -1
- package/src/shared/floatingList.tsx +125 -8
- package/types/Button/index.d.ts.map +1 -1
- package/types/FloatingPanel/PanelHeader.d.ts +1 -6
- package/types/FloatingPanel/PanelHeader.d.ts.map +1 -1
- package/types/FloatingPanel/coverRect.d.ts +2 -11
- package/types/FloatingPanel/coverRect.d.ts.map +1 -1
- package/types/FloatingPanel/echoContext.d.ts +5 -22
- package/types/FloatingPanel/echoContext.d.ts.map +1 -1
- package/types/FloatingPanel/index.d.ts +6 -8
- 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/pointAnchor.d.ts +4 -4
- package/types/fields/Combobox/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/shared/CheckGlyph.d.ts +10 -0
- package/types/shared/CheckGlyph.d.ts.map +1 -0
- package/types/shared/floatingList.d.ts +55 -1
- package/types/shared/floatingList.d.ts.map +1 -1
- package/dist/cjs/FloatingPanel/iconEcho.cjs +0 -106
- package/dist/cjs/FloatingPanel/iconEcho.native.js +0 -116
- package/dist/cjs/FloatingPanel/iconEcho.native.js.map +0 -1
- package/dist/esm/FloatingPanel/iconEcho.mjs +0 -79
- package/dist/esm/FloatingPanel/iconEcho.mjs.map +0 -1
- package/dist/esm/FloatingPanel/iconEcho.native.js +0 -86
- package/dist/esm/FloatingPanel/iconEcho.native.js.map +0 -1
- package/dist/jsx/FloatingPanel/iconEcho.mjs +0 -79
- package/dist/jsx/FloatingPanel/iconEcho.mjs.map +0 -1
- package/dist/jsx/FloatingPanel/iconEcho.native.js +0 -116
- package/dist/jsx/FloatingPanel/iconEcho.native.js.map +0 -1
- package/src/FloatingPanel/FloatingPanel.iconEcho.spec.tsx +0 -357
- package/src/FloatingPanel/iconEcho.tsx +0 -124
- package/types/FloatingPanel/iconEcho.d.ts +0 -29
- package/types/FloatingPanel/iconEcho.d.ts.map +0 -1
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import { XStack, type XStackProps } from "tamagui";
|
|
2
|
-
import { usePanelIconEchoBox } from "./echoContext";
|
|
3
2
|
|
|
4
|
-
/**
|
|
5
|
-
* A floating panel's header row (LC-112, FZ-8480 Round 37). Over an
|
|
6
|
-
* icon-trigger panel whose X shares the header's row, it takes the X's
|
|
7
|
-
* height and centres its content on the X's line, keeping clear of the X;
|
|
8
|
-
* anywhere else it is the panel's padded top row.
|
|
9
|
-
*/
|
|
3
|
+
/** A floating panel's title row: the panel's padded top row (LC-112). */
|
|
10
4
|
export function PanelHeader({ children, ...rest }: XStackProps) {
|
|
11
|
-
const echo = usePanelIconEchoBox();
|
|
12
5
|
return (
|
|
13
6
|
<XStack
|
|
14
7
|
alignItems="center"
|
|
15
8
|
gap="$2"
|
|
16
|
-
paddingLeft=
|
|
17
|
-
paddingRight=
|
|
18
|
-
paddingTop=
|
|
19
|
-
{...(echo ? { minHeight: echo.height } : undefined)}
|
|
9
|
+
paddingLeft="$4"
|
|
10
|
+
paddingRight="$4"
|
|
11
|
+
paddingTop="$4"
|
|
20
12
|
data-fp-panel-header=""
|
|
21
13
|
{...rest}
|
|
22
14
|
>
|
|
@@ -5,8 +5,8 @@ import type { TriggerRect } from "./pointAnchor";
|
|
|
5
5
|
* The 44pt box an icon trigger is pressed in, centred on the trigger
|
|
6
6
|
* (LC-176). A trigger drawn smaller than its target (a 32pt avatar) is
|
|
7
7
|
* covered at its target, so the panel's row-icon column, which centres on
|
|
8
|
-
* a 44pt start inset, runs through the trigger's centre
|
|
9
|
-
*
|
|
8
|
+
* a 44pt start inset, runs through the trigger's centre (FZ-8480 GAP). A
|
|
9
|
+
* trigger at least that big is its own box.
|
|
10
10
|
*/
|
|
11
11
|
export function pressTargetRect(trigger: TriggerRect, min = MIN_PRESS_TARGET): TriggerRect {
|
|
12
12
|
const width = Math.max(trigger.width, min);
|
|
@@ -27,16 +27,3 @@ export function pressTargetRect(trigger: TriggerRect, min = MIN_PRESS_TARGET): T
|
|
|
27
27
|
export function iconCoverRect(trigger: TriggerRect, group: TriggerRect | null): TriggerRect {
|
|
28
28
|
return group ?? pressTargetRect(trigger);
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Where the trigger sits inside the surface its panel covers: the X box's
|
|
33
|
-
* offset from the cover's top, and the band's height. Null when the cover is
|
|
34
|
-
* the trigger itself.
|
|
35
|
-
*/
|
|
36
|
-
export function echoInCover(
|
|
37
|
-
trigger: TriggerRect,
|
|
38
|
-
cover: TriggerRect,
|
|
39
|
-
): { top: number; height: number } | null {
|
|
40
|
-
if (cover.y === trigger.y && cover.height === trigger.height) return null;
|
|
41
|
-
return { top: trigger.y - cover.y, height: cover.height };
|
|
42
|
-
}
|
|
@@ -22,46 +22,12 @@ export function usePanelTriggerRadiusReporter(): ((radius: number) => void) | nu
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* True inside a panel's sheet face (a phone's bottom sheet, web or native). A
|
|
26
|
+
* sheet isn't laid over its trigger, so LC-112's echo row has nothing to
|
|
27
|
+
* cover: a picker titles the sheet instead, per HIG (FZ-8557, Round 40).
|
|
28
28
|
*/
|
|
29
|
-
export
|
|
30
|
-
height: number;
|
|
31
|
-
left: number;
|
|
32
|
-
right: number;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export const PanelIconEchoBoxContext = createContext<PanelIconEchoBox | null>(null);
|
|
36
|
-
|
|
37
|
-
export function usePanelIconEchoBox(): PanelIconEchoBox | null {
|
|
38
|
-
return useContext(PanelIconEchoBoxContext);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* The header's clearance around an X `offset` in from the panel's start edge:
|
|
43
|
-
* the X's side keeps clear of it, the other side keeps none of its own.
|
|
44
|
-
*/
|
|
45
|
-
export function echoHeaderBox({
|
|
46
|
-
offset,
|
|
47
|
-
width,
|
|
48
|
-
height,
|
|
49
|
-
panelWidth,
|
|
50
|
-
rtl = false,
|
|
51
|
-
}: {
|
|
52
|
-
offset: number;
|
|
53
|
-
width: number;
|
|
54
|
-
height: number;
|
|
55
|
-
panelWidth: number;
|
|
56
|
-
rtl?: boolean;
|
|
57
|
-
}): PanelIconEchoBox {
|
|
58
|
-
const atStart = offset + width / 2 < panelWidth / 2;
|
|
59
|
-
const start = atStart ? Math.max(0, offset + width) : 0;
|
|
60
|
-
const end = atStart ? 0 : Math.max(0, panelWidth - offset);
|
|
61
|
-
return { height, left: rtl ? end : start, right: rtl ? start : end };
|
|
62
|
-
}
|
|
29
|
+
export const PanelSheetContext = createContext(false);
|
|
63
30
|
|
|
64
|
-
export function
|
|
65
|
-
|
|
66
|
-
return a.height === b.height && a.left === b.left && a.right === b.right;
|
|
31
|
+
export function useInPanelSheet(): boolean {
|
|
32
|
+
return useContext(PanelSheetContext);
|
|
67
33
|
}
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
* compact windows (iPhone, Slide Over) keep the sheet. `sheet` forces it.
|
|
64
64
|
*/
|
|
65
65
|
|
|
66
|
-
import { nativeAnimationConfig, type MotionStop } from "@multiplatform.one/theme";
|
|
66
|
+
import { nativeAnimationConfig, type MotionStop, overlayScrim } from "@multiplatform.one/theme";
|
|
67
67
|
import {
|
|
68
68
|
isValidElement,
|
|
69
69
|
type ReactNode,
|
|
@@ -90,12 +90,7 @@ import {
|
|
|
90
90
|
type GestureResponderEvent,
|
|
91
91
|
} from "react-native";
|
|
92
92
|
import { SafeAreaInsetsContext, initialWindowMetrics } from "react-native-safe-area-context";
|
|
93
|
-
import {
|
|
94
|
-
Surface,
|
|
95
|
-
SurfaceContext,
|
|
96
|
-
useResolvedKnobs,
|
|
97
|
-
motionDurationMs,
|
|
98
|
-
} from "@multiplatform.one/theme";
|
|
93
|
+
import { Surface, useResolvedKnobs, motionDurationMs } from "@multiplatform.one/theme";
|
|
99
94
|
import { View, YStack } from "tamagui";
|
|
100
95
|
import { useInsideOverlay, useOverlayZIndex } from "../shared/overlayStack";
|
|
101
96
|
import { OverlayWindow } from "../shared/OverlayWindow";
|
|
@@ -105,12 +100,7 @@ import { useKeyboardInset } from "../shared/useKeyboardInset";
|
|
|
105
100
|
import type { FloatingPanelProps } from "./index";
|
|
106
101
|
import { MENU_MIN_WIDTH, resolveCompactFace } from "./compactFace";
|
|
107
102
|
import { echoOffset, type PanelWidth, panelWidthBox, screenBounds } from "./panelWidth";
|
|
108
|
-
import {
|
|
109
|
-
echoHeaderBox,
|
|
110
|
-
PanelEchoContext,
|
|
111
|
-
PanelIconEchoBoxContext,
|
|
112
|
-
PanelTriggerRadiusContext,
|
|
113
|
-
} from "./echoContext";
|
|
103
|
+
import { PanelEchoContext, PanelSheetContext, PanelTriggerRadiusContext } from "./echoContext";
|
|
114
104
|
import {
|
|
115
105
|
placeAtPoint,
|
|
116
106
|
placeBesideTrigger,
|
|
@@ -122,8 +112,7 @@ import {
|
|
|
122
112
|
import { RegularPanel } from "./RegularPanel";
|
|
123
113
|
import { panelViewportPadding, resolvePanelWidthMode } from "./useFloatingPanel";
|
|
124
114
|
import { TrailingActionOverlay, TriggerWithTrailingAction } from "./trailingAction";
|
|
125
|
-
import {
|
|
126
|
-
import { echoInCover, iconCoverRect } from "./coverRect";
|
|
115
|
+
import { iconCoverRect } from "./coverRect";
|
|
127
116
|
import {
|
|
128
117
|
IconButtonGroupSurfaceContext,
|
|
129
118
|
useIconButtonGroupSurface,
|
|
@@ -184,7 +173,7 @@ export function FloatingPanel({
|
|
|
184
173
|
triggerRow,
|
|
185
174
|
triggerEcho = true,
|
|
186
175
|
coverAlign = "start",
|
|
187
|
-
|
|
176
|
+
iconCover = false,
|
|
188
177
|
anchorMode,
|
|
189
178
|
panelWidth = "content",
|
|
190
179
|
sheet,
|
|
@@ -193,7 +182,6 @@ export function FloatingPanel({
|
|
|
193
182
|
}: FloatingPanelProps) {
|
|
194
183
|
// The panel floats over the page: it never inherits a painted ancestor.
|
|
195
184
|
const { knobProps } = useResolvedKnobs({ painted: false });
|
|
196
|
-
const triggerSurface = SurfaceContext.useStyledContext();
|
|
197
185
|
const windowZIndex = useOverlayZIndex("sheet");
|
|
198
186
|
// A grouped trigger's capsule is its own: a panel's content never covers it.
|
|
199
187
|
const children = (
|
|
@@ -289,7 +277,7 @@ export function FloatingPanel({
|
|
|
289
277
|
} else {
|
|
290
278
|
setAnchor({ x: 0, y: 0, width: 0, height: 0 });
|
|
291
279
|
}
|
|
292
|
-
if (
|
|
280
|
+
if (iconCover && anchorMode !== "attach" && groupSurface) {
|
|
293
281
|
setGroup(undefined);
|
|
294
282
|
groupSurface.measure((plate) => {
|
|
295
283
|
if (live) setGroup(plate);
|
|
@@ -300,7 +288,7 @@ export function FloatingPanel({
|
|
|
300
288
|
return () => {
|
|
301
289
|
live = false;
|
|
302
290
|
};
|
|
303
|
-
}, [anchored, open,
|
|
291
|
+
}, [anchored, open, iconCover, anchorMode, groupSurface]);
|
|
304
292
|
|
|
305
293
|
const handleBackdropPress = useCallback(() => {
|
|
306
294
|
if (backdropArmed) close();
|
|
@@ -669,15 +657,10 @@ export function FloatingPanel({
|
|
|
669
657
|
Math.max(safeArea?.bottom ?? 0, keyboardInset) -
|
|
670
658
|
panelViewportPadding,
|
|
671
659
|
}}
|
|
672
|
-
echo={triggerEcho && !
|
|
660
|
+
echo={triggerEcho && !iconCover ? (triggerRow ?? trigger) : null}
|
|
673
661
|
echoLabel={triggerA11y?.label}
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
? iconEchoElement(trigger, iconEcho, close, triggerSurface)
|
|
677
|
-
: null
|
|
678
|
-
}
|
|
679
|
-
iconEchoKind={iconEcho}
|
|
680
|
-
group={iconEcho && anchorMode !== "attach" ? (group ?? null) : null}
|
|
662
|
+
iconCover={iconCover && anchorMode !== "attach"}
|
|
663
|
+
group={iconCover && anchorMode !== "attach" ? (group ?? null) : null}
|
|
681
664
|
coverAlign={anchorMode === "attach" ? "start" : coverAlign}
|
|
682
665
|
panelWidth={panelWidth}
|
|
683
666
|
triggerRadius={anchorMode === "attach" ? null : triggerRadius}
|
|
@@ -749,7 +732,7 @@ export function FloatingPanel({
|
|
|
749
732
|
accessibilityRole="button"
|
|
750
733
|
accessibilityLabel={t("Close")}
|
|
751
734
|
>
|
|
752
|
-
<View flex={1} backgroundColor=
|
|
735
|
+
<View flex={1} backgroundColor={overlayScrim} />
|
|
753
736
|
</Pressable>
|
|
754
737
|
{/*
|
|
755
738
|
Sheet sits above the absoluteFill backdrop in z-order (later sibling).
|
|
@@ -819,8 +802,10 @@ export function FloatingPanel({
|
|
|
819
802
|
{...(sheetFill ? { flex: 1, minHeight: 0 } : undefined)}
|
|
820
803
|
>
|
|
821
804
|
<Surface size="$true">
|
|
822
|
-
|
|
823
|
-
|
|
805
|
+
<PanelSheetContext.Provider value>
|
|
806
|
+
{header}
|
|
807
|
+
{content}
|
|
808
|
+
</PanelSheetContext.Provider>
|
|
824
809
|
</Surface>
|
|
825
810
|
</YStack>
|
|
826
811
|
</YStack>
|
|
@@ -835,9 +820,9 @@ export function FloatingPanel({
|
|
|
835
820
|
|
|
836
821
|
/**
|
|
837
822
|
* The menu over its trigger (LC-112): measured once per open at its natural
|
|
838
|
-
* size, then placed on the trigger's window rect.
|
|
839
|
-
* trigger in the trigger's own box, and pressing it closes the menu, as
|
|
840
|
-
* web echo row does.
|
|
823
|
+
* size, then placed on the trigger's window rect. A field's first row repeats
|
|
824
|
+
* the trigger in the trigger's own box, and pressing it closes the menu, as
|
|
825
|
+
* the web echo row does. An icon trigger repeats nothing (Round 45).
|
|
841
826
|
*/
|
|
842
827
|
function TriggerMenuPanel({
|
|
843
828
|
anchor,
|
|
@@ -845,8 +830,7 @@ function TriggerMenuPanel({
|
|
|
845
830
|
bounds,
|
|
846
831
|
echo,
|
|
847
832
|
echoLabel,
|
|
848
|
-
|
|
849
|
-
iconEchoKind = "menu",
|
|
833
|
+
iconCover = false,
|
|
850
834
|
group = null,
|
|
851
835
|
coverAlign,
|
|
852
836
|
panelWidth,
|
|
@@ -862,9 +846,8 @@ function TriggerMenuPanel({
|
|
|
862
846
|
bounds: PanelBounds;
|
|
863
847
|
echo: ReactNode;
|
|
864
848
|
echoLabel?: string;
|
|
865
|
-
/** LC-112 (FZ-
|
|
866
|
-
|
|
867
|
-
iconEchoKind?: IconEcho;
|
|
849
|
+
/** LC-112 (FZ-8665): an icon trigger, covered at the surface it is seen on. */
|
|
850
|
+
iconCover?: boolean;
|
|
868
851
|
/** LC-112 (FZ-8550): the glass capsule a grouped trigger sits on. */
|
|
869
852
|
group?: IconButtonGroupPlate | null;
|
|
870
853
|
coverAlign: "start" | "auto";
|
|
@@ -879,10 +862,8 @@ function TriggerMenuPanel({
|
|
|
879
862
|
const { knobProps } = useResolvedKnobs({ painted: false });
|
|
880
863
|
const [size, setSize] = useState<{ width: number; height: number } | null>(null);
|
|
881
864
|
// LC-112 (FZ-8480, FZ-8550): an icon trigger's panel covers the surface the
|
|
882
|
-
// trigger is seen on, its capsule or its press target
|
|
883
|
-
|
|
884
|
-
const cover = anchor && iconEcho != null ? iconCoverRect(anchor, group) : anchor;
|
|
885
|
-
const echoCover = anchor && cover && iconEcho != null ? echoInCover(anchor, cover) : null;
|
|
865
|
+
// trigger is seen on, its capsule or its press target.
|
|
866
|
+
const cover = anchor && iconCover ? iconCoverRect(anchor, group) : anchor;
|
|
886
867
|
// LC-112 width setting (FZ-8438 r3). `"content"` keeps the iOS pull-down's
|
|
887
868
|
// 250pt floor (FZ-8220), and no panel is narrower than an echoed trigger.
|
|
888
869
|
const room =
|
|
@@ -913,7 +894,7 @@ function TriggerMenuPanel({
|
|
|
913
894
|
bounds: room,
|
|
914
895
|
rtl: I18nManager.isRTL,
|
|
915
896
|
align: coverAlign,
|
|
916
|
-
pinned:
|
|
897
|
+
pinned: iconCover,
|
|
917
898
|
})
|
|
918
899
|
: null;
|
|
919
900
|
// LC-112 seamless cover: the menu is its trigger grown open, so it draws the
|
|
@@ -921,7 +902,7 @@ function TriggerMenuPanel({
|
|
|
921
902
|
// icon button with no echo is a circle or capsule, half its short side.
|
|
922
903
|
const half = cover ? Math.min(cover.width, cover.height) / 2 : undefined;
|
|
923
904
|
const radius =
|
|
924
|
-
group != null &&
|
|
905
|
+
group != null && iconCover
|
|
925
906
|
? Math.min(group.radius, half ?? group.radius)
|
|
926
907
|
: triggerRadius != null && half != null
|
|
927
908
|
? Math.min(triggerRadius, half)
|
|
@@ -929,7 +910,6 @@ function TriggerMenuPanel({
|
|
|
929
910
|
? half
|
|
930
911
|
: undefined;
|
|
931
912
|
const borderWidth = Number(knobProps.elevatedSurface.borderWidth) || 0;
|
|
932
|
-
const echoOverlays = iconEchoOverlays(iconEchoKind, placement?.up ?? false);
|
|
933
913
|
// A panel slid along the screen (a `"screen"` or fixed width, or one pushed
|
|
934
914
|
// back inside the margins) keeps its echo on the trigger.
|
|
935
915
|
const echoShift =
|
|
@@ -943,7 +923,11 @@ function TriggerMenuPanel({
|
|
|
943
923
|
})
|
|
944
924
|
: 0;
|
|
945
925
|
return (
|
|
946
|
-
<RNView
|
|
926
|
+
<RNView
|
|
927
|
+
style={StyleSheet.absoluteFill}
|
|
928
|
+
testID="floating-panel-menu-layer"
|
|
929
|
+
accessibilityViewIsModal
|
|
930
|
+
>
|
|
947
931
|
<Pressable
|
|
948
932
|
style={StyleSheet.absoluteFill}
|
|
949
933
|
onPress={onBackdropPress}
|
|
@@ -1013,50 +997,14 @@ function TriggerMenuPanel({
|
|
|
1013
997
|
</RNView>
|
|
1014
998
|
</Pressable>
|
|
1015
999
|
) : null}
|
|
1016
|
-
{iconEcho != null && anchor && !placement?.up && !echoOverlays ? (
|
|
1017
|
-
<IconEchoBand
|
|
1018
|
-
anchor={anchor}
|
|
1019
|
-
cover={echoCover}
|
|
1020
|
-
shift={echoShift}
|
|
1021
|
-
borderWidth={borderWidth}
|
|
1022
|
-
edge="top"
|
|
1023
|
-
>
|
|
1024
|
-
{iconEcho}
|
|
1025
|
-
</IconEchoBand>
|
|
1026
|
-
) : null}
|
|
1027
1000
|
<RNScrollView
|
|
1028
1001
|
style={{ flexGrow: 0, flexShrink: 1 }}
|
|
1029
1002
|
keyboardShouldPersistTaps="handled"
|
|
1030
1003
|
>
|
|
1031
1004
|
<YStack padding={framePadding} gap={frameGap}>
|
|
1032
|
-
|
|
1033
|
-
value={
|
|
1034
|
-
iconEcho != null && anchor && placement && echoOverlays
|
|
1035
|
-
? echoHeaderBox({
|
|
1036
|
-
offset: echoShift,
|
|
1037
|
-
width: anchor.width,
|
|
1038
|
-
height: echoCover?.height ?? anchor.height,
|
|
1039
|
-
panelWidth: placement.width,
|
|
1040
|
-
rtl: I18nManager.isRTL,
|
|
1041
|
-
})
|
|
1042
|
-
: null
|
|
1043
|
-
}
|
|
1044
|
-
>
|
|
1045
|
-
{children}
|
|
1046
|
-
</PanelIconEchoBoxContext.Provider>
|
|
1005
|
+
{children}
|
|
1047
1006
|
</YStack>
|
|
1048
1007
|
</RNScrollView>
|
|
1049
|
-
{iconEcho != null && anchor && (placement?.up || echoOverlays) ? (
|
|
1050
|
-
<IconEchoBand
|
|
1051
|
-
anchor={anchor}
|
|
1052
|
-
cover={echoCover}
|
|
1053
|
-
shift={echoShift}
|
|
1054
|
-
borderWidth={borderWidth}
|
|
1055
|
-
edge={echoOverlays ? "overlay" : "bottom"}
|
|
1056
|
-
>
|
|
1057
|
-
{iconEcho}
|
|
1058
|
-
</IconEchoBand>
|
|
1059
|
-
) : null}
|
|
1060
1008
|
</YStack>
|
|
1061
1009
|
</YStack>
|
|
1062
1010
|
</RNView>
|
|
@@ -1064,67 +1012,6 @@ function TriggerMenuPanel({
|
|
|
1064
1012
|
);
|
|
1065
1013
|
}
|
|
1066
1014
|
|
|
1067
|
-
/**
|
|
1068
|
-
* The band an icon trigger's echo rides (LC-112, FZ-8480): the trigger's
|
|
1069
|
-
* height on the edge the menu shares with it, outside the scroll view so the
|
|
1070
|
-
* rows scroll under it, and the button in the trigger's own box, pulled back
|
|
1071
|
-
* over the frame's border so it lands exactly where the trigger is.
|
|
1072
|
-
*/
|
|
1073
|
-
function IconEchoBand({
|
|
1074
|
-
anchor,
|
|
1075
|
-
cover = null,
|
|
1076
|
-
shift,
|
|
1077
|
-
borderWidth,
|
|
1078
|
-
edge,
|
|
1079
|
-
children,
|
|
1080
|
-
}: {
|
|
1081
|
-
anchor: TriggerRect;
|
|
1082
|
-
/** The trigger's offset in, and the height of, a cover larger than it. */
|
|
1083
|
-
cover?: { top: number; height: number } | null;
|
|
1084
|
-
shift: number;
|
|
1085
|
-
borderWidth: number;
|
|
1086
|
-
/** `"overlay"`: an X laid over the content's top corner, taking no height. */
|
|
1087
|
-
edge: "top" | "bottom" | "overlay";
|
|
1088
|
-
children: ReactNode;
|
|
1089
|
-
}) {
|
|
1090
|
-
const bandHeight = cover?.height ?? anchor.height;
|
|
1091
|
-
return (
|
|
1092
|
-
<RNView
|
|
1093
|
-
testID="floating-panel-icon-echo-band"
|
|
1094
|
-
pointerEvents="box-none"
|
|
1095
|
-
style={
|
|
1096
|
-
edge === "overlay"
|
|
1097
|
-
? {
|
|
1098
|
-
position: "absolute",
|
|
1099
|
-
top: -borderWidth,
|
|
1100
|
-
start: -borderWidth,
|
|
1101
|
-
end: -borderWidth,
|
|
1102
|
-
height: bandHeight,
|
|
1103
|
-
zIndex: 1,
|
|
1104
|
-
}
|
|
1105
|
-
: {
|
|
1106
|
-
height: bandHeight,
|
|
1107
|
-
marginHorizontal: -borderWidth,
|
|
1108
|
-
...(edge === "top" ? { marginTop: -borderWidth } : { marginBottom: -borderWidth }),
|
|
1109
|
-
}
|
|
1110
|
-
}
|
|
1111
|
-
>
|
|
1112
|
-
<RNView
|
|
1113
|
-
style={{
|
|
1114
|
-
width: anchor.width,
|
|
1115
|
-
height: anchor.height,
|
|
1116
|
-
marginStart: shift,
|
|
1117
|
-
marginTop: cover?.top ?? 0,
|
|
1118
|
-
alignItems: "flex-start",
|
|
1119
|
-
justifyContent: "flex-start",
|
|
1120
|
-
}}
|
|
1121
|
-
>
|
|
1122
|
-
{children}
|
|
1123
|
-
</RNView>
|
|
1124
|
-
</RNView>
|
|
1125
|
-
);
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
1015
|
/**
|
|
1129
1016
|
* The menu at the long-press point: measured once per open at its natural
|
|
1130
1017
|
* size, then placed by the same rule as the web pointer menu. Later layouts
|
|
@@ -1159,7 +1046,11 @@ function PointPanel({
|
|
|
1159
1046
|
})
|
|
1160
1047
|
: null;
|
|
1161
1048
|
return (
|
|
1162
|
-
<RNView
|
|
1049
|
+
<RNView
|
|
1050
|
+
style={StyleSheet.absoluteFill}
|
|
1051
|
+
testID="floating-panel-point-layer"
|
|
1052
|
+
accessibilityViewIsModal
|
|
1053
|
+
>
|
|
1163
1054
|
<Pressable
|
|
1164
1055
|
style={StyleSheet.absoluteFill}
|
|
1165
1056
|
onPress={onBackdropPress}
|