@multiplatform.one/forms 7.58.0 → 7.59.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 +1 -1
- package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
- package/dist/cjs/Button/index.native.js +2 -2
- package/dist/cjs/Button/index.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/compactFace.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.native.js +8 -2
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/pointAnchor.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/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/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/Combobox/authorOptions.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.native.js +5 -5
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.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/durationMath.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 +148 -0
- package/dist/cjs/fields/Select/InlineChoices.native.js +163 -0
- package/dist/cjs/fields/Select/InlineChoices.native.js.map +1 -0
- package/dist/cjs/fields/Select/index.cjs +66 -15
- package/dist/cjs/fields/Select/index.native.js +77 -21
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/shouldInlineChoices.cjs +37 -0
- package/dist/cjs/fields/Select/shouldInlineChoices.native.js +43 -0
- package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -0
- 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.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/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.native.js +45 -45
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
- package/dist/cjs/keyboard/chain.native.js.map +1 -1
- package/dist/cjs/keyboard/index.native.js.map +1 -1
- package/dist/cjs/keyboard/types.native.js.map +1 -1
- package/dist/cjs/requiredMarking.native.js.map +1 -1
- package/dist/cjs/shared/TimeColumn.native.js +1 -1
- package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
- package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
- package/dist/cjs/shared/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/floatingList.native.js +1 -1
- package/dist/cjs/shared/floatingList.native.js.map +1 -1
- package/dist/cjs/shared/focusManagement.native.js.map +1 -1
- package/dist/cjs/shared/groupContext.native.js.map +1 -1
- package/dist/cjs/shared/i18n.native.js.map +1 -1
- package/dist/cjs/shared/instantMotion.native.js.map +1 -1
- package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
- package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -1
- package/dist/cjs/shared/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/t.native.js.map +1 -1
- package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
- package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
- package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/cjs/shared/utils.native.js +1 -1
- package/dist/cjs/shared/utils.native.js.map +1 -1
- package/dist/cjs/shared/zIndex.native.js.map +1 -1
- package/dist/cjs/themedPrimitives.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/utils/LinkCell.native.js.map +1 -1
- package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
- package/dist/esm/Button/index.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/compactFace.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +8 -2
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
- package/dist/esm/FloatingPanel/pointAnchor.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/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/index.native.js.map +1 -1
- package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
- package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.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/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 +123 -0
- package/dist/esm/fields/Select/InlineChoices.mjs.map +1 -0
- package/dist/esm/fields/Select/InlineChoices.native.js +135 -0
- package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -0
- package/dist/esm/fields/Select/index.mjs +67 -16
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +74 -18
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Select/shouldInlineChoices.mjs +11 -0
- package/dist/esm/fields/Select/shouldInlineChoices.mjs.map +1 -0
- package/dist/esm/fields/Select/shouldInlineChoices.native.js +14 -0
- package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -0
- 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.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/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.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/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/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/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/t.native.js.map +1 -1
- package/dist/esm/shared/tableCellContext.native.js.map +1 -1
- package/dist/esm/shared/useDragScroll.native.js.map +1 -1
- package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
- package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
- package/dist/esm/shared/utils.native.js.map +1 -1
- package/dist/esm/shared/zIndex.native.js.map +1 -1
- package/dist/esm/themedPrimitives.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/FloatingPanel/index.native.js +8 -2
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/InlineChoices.mjs +123 -0
- package/dist/jsx/fields/Select/InlineChoices.mjs.map +1 -0
- package/dist/jsx/fields/Select/InlineChoices.native.js +163 -0
- package/dist/jsx/fields/Select/InlineChoices.native.js.map +1 -0
- package/dist/jsx/fields/Select/index.mjs +67 -16
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +73 -17
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/shouldInlineChoices.mjs +11 -0
- package/dist/jsx/fields/Select/shouldInlineChoices.mjs.map +1 -0
- package/dist/jsx/fields/Select/shouldInlineChoices.native.js +43 -0
- package/dist/jsx/fields/Select/shouldInlineChoices.native.js.map +1 -0
- package/package.json +8 -8
- package/src/FloatingPanel/FloatingPanel.menuFace.native.spec.tsx +13 -1
- package/src/FloatingPanel/index.native.tsx +8 -1
- package/src/fields/Select/InlineChoices.tsx +156 -0
- package/src/fields/Select/index.tsx +64 -39
- package/src/fields/Select/shouldInlineChoices.spec.ts +25 -0
- package/src/fields/Select/shouldInlineChoices.ts +22 -0
- package/types/FloatingPanel/index.native.d.ts +1 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/fields/Checkbox/index.d.ts +3 -3
- package/types/fields/Select/InlineChoices.d.ts +29 -0
- package/types/fields/Select/InlineChoices.d.ts.map +1 -0
- package/types/fields/Select/index.d.ts +6 -0
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/Select/shouldInlineChoices.d.ts +16 -0
- package/types/fields/Select/shouldInlineChoices.d.ts.map +1 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var InlineChoices_exports = {};
|
|
24
|
+
__export(InlineChoices_exports, {
|
|
25
|
+
InlineChoices: () => InlineChoices
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(InlineChoices_exports);
|
|
28
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
29
|
+
var import_react = require("@phosphor-icons/react");
|
|
30
|
+
var import_react2 = require("react");
|
|
31
|
+
var import_react_native = require("react-native-web");
|
|
32
|
+
var import_tamagui = require("tamagui");
|
|
33
|
+
var import_fieldLayout = require("../../fieldLayout.cjs");
|
|
34
|
+
var import_colorRamps = require("../../shared/colorRamps.cjs");
|
|
35
|
+
var import_nativeA11y = require("../../shared/nativeA11y.cjs");
|
|
36
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
37
|
+
const nextKeys = /* @__PURE__ */new Set(["ArrowDown", "ArrowRight"]);
|
|
38
|
+
const previousKeys = /* @__PURE__ */new Set(["ArrowUp", "ArrowLeft"]);
|
|
39
|
+
function InlineChoices({
|
|
40
|
+
options,
|
|
41
|
+
value,
|
|
42
|
+
onValueChange,
|
|
43
|
+
onBlur,
|
|
44
|
+
disabled,
|
|
45
|
+
id,
|
|
46
|
+
labelledBy,
|
|
47
|
+
"aria-label": ariaLabel,
|
|
48
|
+
knobProps,
|
|
49
|
+
markColor
|
|
50
|
+
}) {
|
|
51
|
+
const describedBy = (0, import_fieldLayout.useFieldDescribedBy)();
|
|
52
|
+
const rowsRef = (0, import_react2.useRef)([]);
|
|
53
|
+
const textColor = knobProps.textAccentColor;
|
|
54
|
+
const selectedIndex = options.findIndex(option => option.value === value);
|
|
55
|
+
const tabStop = selectedIndex >= 0 ? selectedIndex : 0;
|
|
56
|
+
const choose = index => {
|
|
57
|
+
const option = options[index];
|
|
58
|
+
if (disabled || !option || option.value === value) return;
|
|
59
|
+
onValueChange(option.value);
|
|
60
|
+
};
|
|
61
|
+
const onKeyDown = index => event => {
|
|
62
|
+
const step = nextKeys.has(event.key) ? 1 : previousKeys.has(event.key) ? -1 : 0;
|
|
63
|
+
if (step) {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
const next = (index + step + options.length) % options.length;
|
|
66
|
+
rowsRef.current[next]?.focus();
|
|
67
|
+
choose(next);
|
|
68
|
+
} else if (event.key === " " || event.key === "Enter") {
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
choose(index);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const rowContent = (option, index, selected) => /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
|
|
74
|
+
alignItems: "center",
|
|
75
|
+
height: knobProps.menuRow.minHeight,
|
|
76
|
+
paddingHorizontal: knobProps.panelPadding.padding,
|
|
77
|
+
...knobProps.gap,
|
|
78
|
+
...(index === 0 ? void 0 : import_theme.hairline.top),
|
|
79
|
+
borderColor: import_colorRamps.formCommonColors.divider,
|
|
80
|
+
pointerEvents: "none",
|
|
81
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
|
|
82
|
+
flexShrink: 0,
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
justifyContent: "center",
|
|
85
|
+
minWidth: 18,
|
|
86
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme.IconSlot, {
|
|
87
|
+
icon: option.icon,
|
|
88
|
+
color: textColor
|
|
89
|
+
})
|
|
90
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
91
|
+
fontFamily: knobProps.body.fontFamily,
|
|
92
|
+
fontWeight: knobProps.body.fontWeight,
|
|
93
|
+
color: textColor,
|
|
94
|
+
numberOfLines: 1,
|
|
95
|
+
flex: 1,
|
|
96
|
+
children: option.label
|
|
97
|
+
}), selected ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CheckIcon, {
|
|
98
|
+
size: 14,
|
|
99
|
+
weight: "bold",
|
|
100
|
+
color: markColor
|
|
101
|
+
}) : null]
|
|
102
|
+
});
|
|
103
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
104
|
+
id,
|
|
105
|
+
role: "radiogroup",
|
|
106
|
+
"aria-labelledby": labelledBy,
|
|
107
|
+
"aria-label": labelledBy ? void 0 : ariaLabel,
|
|
108
|
+
"aria-describedby": describedBy,
|
|
109
|
+
"aria-disabled": disabled || void 0,
|
|
110
|
+
"data-testid": "select-inline-choices",
|
|
111
|
+
...knobProps.borderRadius,
|
|
112
|
+
borderColor: import_colorRamps.formInputColors.border.base,
|
|
113
|
+
backgroundColor: import_colorRamps.formInputColors.background.base,
|
|
114
|
+
overflow: "hidden",
|
|
115
|
+
width: "100%",
|
|
116
|
+
children: options.map((option, index) => {
|
|
117
|
+
const selected = option.value === value;
|
|
118
|
+
if (import_tamagui.isWeb) {
|
|
119
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
|
|
120
|
+
ref: node => {
|
|
121
|
+
rowsRef.current[index] = node;
|
|
122
|
+
},
|
|
123
|
+
role: "radio",
|
|
124
|
+
"aria-checked": selected,
|
|
125
|
+
"aria-disabled": disabled || void 0,
|
|
126
|
+
tabIndex: !disabled && index === tabStop ? 0 : -1,
|
|
127
|
+
cursor: disabled ? "default" : "pointer",
|
|
128
|
+
onPress: () => choose(index),
|
|
129
|
+
onKeyDown: onKeyDown(index),
|
|
130
|
+
onBlur,
|
|
131
|
+
outlineWidth: 0,
|
|
132
|
+
focusVisibleStyle: import_theme.keyboardFocusRingProps,
|
|
133
|
+
children: rowContent(option, index, selected)
|
|
134
|
+
}, option.value);
|
|
135
|
+
}
|
|
136
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.Pressable, {
|
|
137
|
+
...(0, import_nativeA11y.choiceItemA11y)({
|
|
138
|
+
name: option.label,
|
|
139
|
+
selected,
|
|
140
|
+
disabled: !!disabled
|
|
141
|
+
}),
|
|
142
|
+
disabled,
|
|
143
|
+
onPress: () => choose(index),
|
|
144
|
+
children: rowContent(option, index, selected)
|
|
145
|
+
}, option.value);
|
|
146
|
+
})
|
|
147
|
+
});
|
|
148
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
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 InlineChoices_exports = {};
|
|
26
|
+
__export(InlineChoices_exports, {
|
|
27
|
+
InlineChoices: () => InlineChoices
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(InlineChoices_exports);
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
32
|
+
var import_react = require("@phosphor-icons/react");
|
|
33
|
+
var import_react2 = require("react");
|
|
34
|
+
var import_react_native = require("react-native");
|
|
35
|
+
var import_tamagui = require("tamagui");
|
|
36
|
+
var import_fieldLayout = require("../../fieldLayout.native.js");
|
|
37
|
+
var import_colorRamps = require("../../shared/colorRamps.native.js");
|
|
38
|
+
var import_nativeA11y = require("../../shared/nativeA11y.native.js");
|
|
39
|
+
var nextKeys = /* @__PURE__ */new Set(["ArrowDown", "ArrowRight"]);
|
|
40
|
+
var previousKeys = /* @__PURE__ */new Set(["ArrowUp", "ArrowLeft"]);
|
|
41
|
+
function InlineChoices(param) {
|
|
42
|
+
var {
|
|
43
|
+
options,
|
|
44
|
+
value,
|
|
45
|
+
onValueChange,
|
|
46
|
+
onBlur,
|
|
47
|
+
disabled,
|
|
48
|
+
id,
|
|
49
|
+
labelledBy,
|
|
50
|
+
"aria-label": ariaLabel,
|
|
51
|
+
knobProps,
|
|
52
|
+
markColor
|
|
53
|
+
} = param;
|
|
54
|
+
var describedBy = (0, import_fieldLayout.useFieldDescribedBy)();
|
|
55
|
+
var rowsRef = (0, import_react2.useRef)([]);
|
|
56
|
+
var textColor = knobProps.textAccentColor;
|
|
57
|
+
var selectedIndex = options.findIndex(function (option) {
|
|
58
|
+
return option.value === value;
|
|
59
|
+
});
|
|
60
|
+
var tabStop = selectedIndex >= 0 ? selectedIndex : 0;
|
|
61
|
+
var choose = function choose2(index) {
|
|
62
|
+
var option = options[index];
|
|
63
|
+
if (disabled || !option || option.value === value) return;
|
|
64
|
+
onValueChange(option.value);
|
|
65
|
+
};
|
|
66
|
+
var onKeyDown = function onKeyDown2(index) {
|
|
67
|
+
return function (event) {
|
|
68
|
+
var step = nextKeys.has(event.key) ? 1 : previousKeys.has(event.key) ? -1 : 0;
|
|
69
|
+
if (step) {
|
|
70
|
+
var _rowsRef_current_next;
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
var next = (index + step + options.length) % options.length;
|
|
73
|
+
(_rowsRef_current_next = rowsRef.current[next]) === null || _rowsRef_current_next === void 0 ? void 0 : _rowsRef_current_next.focus();
|
|
74
|
+
choose(next);
|
|
75
|
+
} else if (event.key === " " || event.key === "Enter") {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
choose(index);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
var rowContent = function rowContent2(option, index, selected) {
|
|
82
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
height: knobProps.menuRow.minHeight,
|
|
85
|
+
paddingHorizontal: knobProps.panelPadding.padding,
|
|
86
|
+
...knobProps.gap,
|
|
87
|
+
...(index === 0 ? void 0 : import_theme.hairline.top),
|
|
88
|
+
borderColor: import_colorRamps.formCommonColors.divider,
|
|
89
|
+
pointerEvents: "none",
|
|
90
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
|
|
91
|
+
flexShrink: 0,
|
|
92
|
+
alignItems: "center",
|
|
93
|
+
justifyContent: "center",
|
|
94
|
+
minWidth: 18,
|
|
95
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme.IconSlot, {
|
|
96
|
+
icon: option.icon,
|
|
97
|
+
color: textColor
|
|
98
|
+
})
|
|
99
|
+
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
100
|
+
fontFamily: knobProps.body.fontFamily,
|
|
101
|
+
fontWeight: knobProps.body.fontWeight,
|
|
102
|
+
color: textColor,
|
|
103
|
+
numberOfLines: 1,
|
|
104
|
+
flex: 1,
|
|
105
|
+
children: option.label
|
|
106
|
+
}), selected ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CheckIcon, {
|
|
107
|
+
size: 14,
|
|
108
|
+
weight: "bold",
|
|
109
|
+
color: markColor
|
|
110
|
+
}) : null]
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
114
|
+
id,
|
|
115
|
+
role: "radiogroup",
|
|
116
|
+
"aria-labelledby": labelledBy,
|
|
117
|
+
"aria-label": labelledBy ? void 0 : ariaLabel,
|
|
118
|
+
"aria-describedby": describedBy,
|
|
119
|
+
"aria-disabled": disabled || void 0,
|
|
120
|
+
"data-testid": "select-inline-choices",
|
|
121
|
+
...knobProps.borderRadius,
|
|
122
|
+
borderColor: import_colorRamps.formInputColors.border.base,
|
|
123
|
+
backgroundColor: import_colorRamps.formInputColors.background.base,
|
|
124
|
+
overflow: "hidden",
|
|
125
|
+
width: "100%",
|
|
126
|
+
children: options.map(function (option, index) {
|
|
127
|
+
var selected = option.value === value;
|
|
128
|
+
if (import_tamagui.isWeb) {
|
|
129
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
|
|
130
|
+
ref: function ref(node) {
|
|
131
|
+
rowsRef.current[index] = node;
|
|
132
|
+
},
|
|
133
|
+
role: "radio",
|
|
134
|
+
"aria-checked": selected,
|
|
135
|
+
"aria-disabled": disabled || void 0,
|
|
136
|
+
tabIndex: !disabled && index === tabStop ? 0 : -1,
|
|
137
|
+
cursor: disabled ? "default" : "pointer",
|
|
138
|
+
onPress: function onPress() {
|
|
139
|
+
return choose(index);
|
|
140
|
+
},
|
|
141
|
+
onKeyDown: onKeyDown(index),
|
|
142
|
+
onBlur,
|
|
143
|
+
outlineWidth: 0,
|
|
144
|
+
focusVisibleStyle: import_theme.keyboardFocusRingProps,
|
|
145
|
+
children: rowContent(option, index, selected)
|
|
146
|
+
}, option.value);
|
|
147
|
+
}
|
|
148
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.Pressable, {
|
|
149
|
+
...(0, import_nativeA11y.choiceItemA11y)({
|
|
150
|
+
name: option.label,
|
|
151
|
+
selected,
|
|
152
|
+
disabled: !!disabled
|
|
153
|
+
}),
|
|
154
|
+
disabled,
|
|
155
|
+
onPress: function onPress() {
|
|
156
|
+
return choose(index);
|
|
157
|
+
},
|
|
158
|
+
children: rowContent(option, index, selected)
|
|
159
|
+
}, option.value);
|
|
160
|
+
})
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=InlineChoices.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","InlineChoices_exports","__export","InlineChoices","module","exports","import_jsx_runtime","require","import_theme","import_react","import_react2","import_react_native","import_tamagui","import_fieldLayout","import_colorRamps","import_nativeA11y","nextKeys","Set","previousKeys","param","options","onValueChange","onBlur","disabled","id","labelledBy","ariaLabel","knobProps","markColor","describedBy","useFieldDescribedBy","rowsRef","useRef","textColor","textAccentColor","selectedIndex","findIndex","option","tabStop","choose","choose2","index","onKeyDown","onKeyDown2","event","step","has","key","_rowsRef_current_next","preventDefault","next","length","current","focus","rowContent","rowContent2","selected","jsxs","XStack","alignItems","height","menuRow","minHeight","paddingHorizontal","panelPadding","padding","gap","hairline","top","borderColor","formCommonColors","divider","pointerEvents","children","jsx","View","flexShrink","justifyContent","minWidth","IconSlot","icon","color","Text","fontFamily","body","fontWeight","numberOfLines","flex","label","CheckIcon","size","weight","YStack","role","borderRadius","formInputColors","border","base","backgroundColor","background","overflow","width","map","isWeb","ref","node","tabIndex","cursor","onPress","outlineWidth","focusVisibleStyle","keyboardFocusRingProps","Pressable","choiceItemA11y","name"],"sources":["../../../../src/fields/Select/InlineChoices.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -62,6 +62,8 @@ var import_tableCellContext = require("../../shared/tableCellContext.cjs");
|
|
|
62
62
|
var import_t = require("../../shared/t.cjs");
|
|
63
63
|
var import_selectedOrder = require("../selectedOrder.cjs");
|
|
64
64
|
var import_nativeSelect = require("../nativeSelect.cjs");
|
|
65
|
+
var import_InlineChoices = require("./InlineChoices.cjs");
|
|
66
|
+
var import_shouldInlineChoices = require("./shouldInlineChoices.cjs");
|
|
65
67
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
66
68
|
const actionSheetIOS = ReactNative.ActionSheetIOS;
|
|
67
69
|
const selectOutlineRest = {
|
|
@@ -86,9 +88,10 @@ const SelectRow = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
86
88
|
// Do not put outlineWidth here — Tamagui maps these onto mouse :focus and
|
|
87
89
|
// they beat instance ring props. Rows paint the ring via selectItemRingProps.
|
|
88
90
|
variants: {
|
|
91
|
+
// LC-262: the accent check alone marks the chosen row, never a grey fill.
|
|
89
92
|
selected: {
|
|
90
93
|
true: {
|
|
91
|
-
backgroundColor:
|
|
94
|
+
backgroundColor: "transparent",
|
|
92
95
|
borderRadius: 0
|
|
93
96
|
},
|
|
94
97
|
false: {
|
|
@@ -109,6 +112,21 @@ const SelectRow = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
});
|
|
115
|
+
function OptionGlyph({
|
|
116
|
+
icon,
|
|
117
|
+
color
|
|
118
|
+
}) {
|
|
119
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
|
|
120
|
+
flexShrink: 0,
|
|
121
|
+
alignItems: "center",
|
|
122
|
+
justifyContent: "center",
|
|
123
|
+
minWidth: 18,
|
|
124
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme.IconSlot, {
|
|
125
|
+
icon,
|
|
126
|
+
color
|
|
127
|
+
})
|
|
128
|
+
});
|
|
129
|
+
}
|
|
112
130
|
function GroupHeader(props) {
|
|
113
131
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme2.Text, {
|
|
114
132
|
paddingHorizontal: "$3",
|
|
@@ -306,7 +324,7 @@ const SelectItem = (0, import_react.memo)(function SelectItem2({
|
|
|
306
324
|
role: "option",
|
|
307
325
|
tabIndex: -1,
|
|
308
326
|
selected: isSelected,
|
|
309
|
-
active: isActive,
|
|
327
|
+
active: Boolean(isActive) && ctx.kbNav,
|
|
310
328
|
"aria-selected": isSelected,
|
|
311
329
|
"data-state": isSelected ? "active" : "inactive",
|
|
312
330
|
height: ctx.knobProps.menuRow.minHeight,
|
|
@@ -315,15 +333,18 @@ const SelectItem = (0, import_react.memo)(function SelectItem2({
|
|
|
315
333
|
onMouseEnter: () => setActiveIndex(index),
|
|
316
334
|
...(suppressHover ? {
|
|
317
335
|
hoverStyle: {
|
|
318
|
-
backgroundColor: isActive ? import_colorRamps.formInputColors.background.focus :
|
|
336
|
+
backgroundColor: isActive ? import_colorRamps.formInputColors.background.focus : "transparent"
|
|
319
337
|
}
|
|
320
338
|
} : {
|
|
321
339
|
hoverStyle: {
|
|
322
|
-
backgroundColor:
|
|
340
|
+
backgroundColor: import_colorRamps.formInputColors.background.focus
|
|
323
341
|
}
|
|
324
342
|
}),
|
|
325
343
|
...(0, import_theme2.transitionProps)(ctx.knobProps.motion.control),
|
|
326
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(
|
|
344
|
+
children: [option.icon ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(OptionGlyph, {
|
|
345
|
+
icon: option.icon,
|
|
346
|
+
color: ctx.textColor
|
|
347
|
+
}) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
327
348
|
fontFamily: ctx.knobProps.body.fontFamily,
|
|
328
349
|
fontWeight: ctx.knobProps.body.fontWeight,
|
|
329
350
|
color: ctx.textColor,
|
|
@@ -1109,16 +1130,19 @@ function NativeSelectCore({
|
|
|
1109
1130
|
onPointerDown: import_tamagui.isWeb ? () => setKbNav(false) : void 0,
|
|
1110
1131
|
...(import_tamagui.isWeb ? selectItemRingProps(active, kbNav) : void 0),
|
|
1111
1132
|
hoverStyle: activeIndex != null ? {
|
|
1112
|
-
backgroundColor: active ? import_colorRamps.formInputColors.background.focus :
|
|
1133
|
+
backgroundColor: active ? import_colorRamps.formInputColors.background.focus : "transparent"
|
|
1113
1134
|
} : {
|
|
1114
|
-
backgroundColor:
|
|
1135
|
+
backgroundColor: import_colorRamps.formInputColors.background.focus
|
|
1115
1136
|
},
|
|
1116
|
-
backgroundColor: active
|
|
1137
|
+
backgroundColor: active && kbNav ? import_colorRamps.formInputColors.background.focus : "transparent",
|
|
1117
1138
|
pressStyle: {
|
|
1118
1139
|
backgroundColor: import_colorRamps.formInputColors.background.focus
|
|
1119
1140
|
},
|
|
1120
1141
|
pointerEvents: import_tamagui.isWeb ? void 0 : "none",
|
|
1121
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(
|
|
1142
|
+
children: [option.icon ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(OptionGlyph, {
|
|
1143
|
+
icon: option.icon,
|
|
1144
|
+
color: textColor
|
|
1145
|
+
}) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
1122
1146
|
fontFamily: knobProps.body.fontFamily,
|
|
1123
1147
|
fontWeight: knobProps.body.fontWeight,
|
|
1124
1148
|
color: textColor,
|
|
@@ -1362,18 +1386,27 @@ function Select({
|
|
|
1362
1386
|
const [uncontrolledValue, setUncontrolledValue] = (0, import_react.useState)(defaultValue);
|
|
1363
1387
|
const isControlled = value !== void 0;
|
|
1364
1388
|
const hasLabel = Boolean(label);
|
|
1365
|
-
(0, import_devWarn.warnSelectTooFewOptions)({
|
|
1366
|
-
count: options?.length ?? 0,
|
|
1367
|
-
multiple,
|
|
1368
|
-
component: "Select",
|
|
1369
|
-
id
|
|
1370
|
-
});
|
|
1371
1389
|
const viewportGtSm = (0, import_FloatingPanel.useViewportGtSm)();
|
|
1372
1390
|
const insideOverlay = (0, import_overlayStack.useInsideOverlay)();
|
|
1373
1391
|
const effectiveGtSm = typeof window !== "undefined" ? viewportGtSm : false;
|
|
1374
1392
|
const hydrated = (0, import_react.useSyncExternalStore)(subscribeNothing, clientSnapshot, serverSnapshot);
|
|
1375
1393
|
const compactMenu = hydrated && (0, import_compactFace.resolveCompactFace)((0, import_compactFace.pickerCompactFace)(options?.length ?? 0), insideOverlay) === "menu";
|
|
1376
1394
|
const shouldUseSheet = !import_tamagui.isWeb || !effectiveGtSm && !compactMenu;
|
|
1395
|
+
const inTableCell = (0, import_tableCellContext.useIsInTableCell)();
|
|
1396
|
+
const inline = !inTableCell && (0, import_shouldInlineChoices.shouldInlineChoices)({
|
|
1397
|
+
insideOverlay,
|
|
1398
|
+
multiple,
|
|
1399
|
+
options
|
|
1400
|
+
});
|
|
1401
|
+
if (!inline) {
|
|
1402
|
+
(0, import_devWarn.warnSelectTooFewOptions)({
|
|
1403
|
+
count: options?.length ?? 0,
|
|
1404
|
+
multiple,
|
|
1405
|
+
component: "Select",
|
|
1406
|
+
id
|
|
1407
|
+
});
|
|
1408
|
+
}
|
|
1409
|
+
const markColor = useSelectedMarkColor();
|
|
1377
1410
|
if (skeleton) {
|
|
1378
1411
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_InputParts.Input, {
|
|
1379
1412
|
size: sizeProp || knobProps.sizeToken,
|
|
@@ -1423,6 +1456,24 @@ function Select({
|
|
|
1423
1456
|
};
|
|
1424
1457
|
const renderSelectContent = (selectValue, handleValueChange, handleBlur) => {
|
|
1425
1458
|
if (readOnly) return renderReadOnly(selectValue);
|
|
1459
|
+
if (inline) {
|
|
1460
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InlineChoices.InlineChoices, {
|
|
1461
|
+
options,
|
|
1462
|
+
value: typeof selectValue === "string" ? selectValue : void 0,
|
|
1463
|
+
onValueChange: val => {
|
|
1464
|
+
if (disabled) return;
|
|
1465
|
+
handleValueChange?.(val);
|
|
1466
|
+
emitValueChange(val);
|
|
1467
|
+
},
|
|
1468
|
+
onBlur: handleBlur,
|
|
1469
|
+
disabled,
|
|
1470
|
+
id,
|
|
1471
|
+
labelledBy: hasLabel ? `${id}-label` : void 0,
|
|
1472
|
+
"aria-label": ariaLabel,
|
|
1473
|
+
knobProps,
|
|
1474
|
+
markColor
|
|
1475
|
+
});
|
|
1476
|
+
}
|
|
1426
1477
|
const SelectCore = shouldUseSheet ? NativeSelectCore : FloatingSelectCore;
|
|
1427
1478
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectCore, {
|
|
1428
1479
|
options,
|
|
@@ -47,16 +47,16 @@ var import_theme2 = require("@multiplatform.one/theme");
|
|
|
47
47
|
var ReactNative = __toESM(require("react-native"));
|
|
48
48
|
var import_react_native = require("react-native");
|
|
49
49
|
var import_tamagui = require("tamagui");
|
|
50
|
-
var import_Chip = require("../../Chip");
|
|
50
|
+
var import_Chip = require("../../Chip/index.native.js");
|
|
51
51
|
var import_pickerTriggerContract = require("../../shared/pickerTriggerContract.native.js");
|
|
52
|
-
var import_Skeleton = require("../../Skeleton");
|
|
52
|
+
var import_Skeleton = require("../../Skeleton/index.native.js");
|
|
53
53
|
var import_fieldLayout = require("../../fieldLayout.native.js");
|
|
54
|
-
var import_InputParts = require("../../InputParts");
|
|
54
|
+
var import_InputParts = require("../../InputParts/index.native.js");
|
|
55
55
|
var import_colorRamps = require("../../shared/colorRamps.native.js");
|
|
56
56
|
var import_devWarn = require("../../shared/devWarn.native.js");
|
|
57
57
|
var import_utils = require("../../shared/utils.native.js");
|
|
58
58
|
var import_floatingList = require("../../shared/floatingList.native.js");
|
|
59
|
-
var import_FloatingPanel = require("../../FloatingPanel");
|
|
59
|
+
var import_FloatingPanel = require("../../FloatingPanel/index.native.js");
|
|
60
60
|
var import_compactFace = require("../../FloatingPanel/compactFace.native.js");
|
|
61
61
|
var import_PanelPortal = require("../../FloatingPanel/PanelPortal.native.js");
|
|
62
62
|
var import_overlayStack = require("../../shared/overlayStack.native.js");
|
|
@@ -65,6 +65,8 @@ var import_tableCellContext = require("../../shared/tableCellContext.native.js")
|
|
|
65
65
|
var import_t = require("../../shared/t.native.js");
|
|
66
66
|
var import_selectedOrder = require("../selectedOrder.native.js");
|
|
67
67
|
var import_nativeSelect = require("../nativeSelect.native.js");
|
|
68
|
+
var import_InlineChoices = require("./InlineChoices.native.js");
|
|
69
|
+
var import_shouldInlineChoices = require("./shouldInlineChoices.native.js");
|
|
68
70
|
var actionSheetIOS = ReactNative.ActionSheetIOS;
|
|
69
71
|
var selectOutlineRest = {
|
|
70
72
|
outlineWidth: 0,
|
|
@@ -88,9 +90,10 @@ var SelectRow = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
88
90
|
// Do not put outlineWidth here — Tamagui maps these onto mouse :focus and
|
|
89
91
|
// they beat instance ring props. Rows paint the ring via selectItemRingProps.
|
|
90
92
|
variants: {
|
|
93
|
+
// LC-262: the accent check alone marks the chosen row, never a grey fill.
|
|
91
94
|
selected: {
|
|
92
95
|
true: {
|
|
93
|
-
backgroundColor:
|
|
96
|
+
backgroundColor: "transparent",
|
|
94
97
|
borderRadius: 0
|
|
95
98
|
},
|
|
96
99
|
false: {
|
|
@@ -113,6 +116,22 @@ var SelectRow = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
113
116
|
}
|
|
114
117
|
}
|
|
115
118
|
});
|
|
119
|
+
function OptionGlyph(param) {
|
|
120
|
+
var {
|
|
121
|
+
icon,
|
|
122
|
+
color
|
|
123
|
+
} = param;
|
|
124
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
|
|
125
|
+
flexShrink: 0,
|
|
126
|
+
alignItems: "center",
|
|
127
|
+
justifyContent: "center",
|
|
128
|
+
minWidth: 18,
|
|
129
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme.IconSlot, {
|
|
130
|
+
icon,
|
|
131
|
+
color
|
|
132
|
+
})
|
|
133
|
+
});
|
|
134
|
+
}
|
|
116
135
|
function GroupHeader(props) {
|
|
117
136
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_theme2.Text, {
|
|
118
137
|
paddingHorizontal: "$3",
|
|
@@ -404,7 +423,9 @@ var SelectItem = /* @__PURE__ */(0, import_react.memo)(function SelectItem2(para
|
|
|
404
423
|
role: "option",
|
|
405
424
|
tabIndex: -1,
|
|
406
425
|
selected: isSelected,
|
|
407
|
-
|
|
426
|
+
// The open-time cursor sits on the chosen row; it only paints while the
|
|
427
|
+
// keyboard drives it, so the chosen row never opens grey (LC-262).
|
|
428
|
+
active: Boolean(isActive) && ctx.kbNav,
|
|
408
429
|
"aria-selected": isSelected,
|
|
409
430
|
"data-state": isSelected ? "active" : "inactive",
|
|
410
431
|
height: ctx.knobProps.menuRow.minHeight,
|
|
@@ -419,15 +440,18 @@ var SelectItem = /* @__PURE__ */(0, import_react.memo)(function SelectItem2(para
|
|
|
419
440
|
},
|
|
420
441
|
...(suppressHover ? {
|
|
421
442
|
hoverStyle: {
|
|
422
|
-
backgroundColor: isActive ? import_colorRamps.formInputColors.background.focus :
|
|
443
|
+
backgroundColor: isActive ? import_colorRamps.formInputColors.background.focus : "transparent"
|
|
423
444
|
}
|
|
424
445
|
} : {
|
|
425
446
|
hoverStyle: {
|
|
426
|
-
backgroundColor:
|
|
447
|
+
backgroundColor: import_colorRamps.formInputColors.background.focus
|
|
427
448
|
}
|
|
428
449
|
}),
|
|
429
450
|
...(0, import_theme2.transitionProps)(ctx.knobProps.motion.control),
|
|
430
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(
|
|
451
|
+
children: [option.icon ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(OptionGlyph, {
|
|
452
|
+
icon: option.icon,
|
|
453
|
+
color: ctx.textColor
|
|
454
|
+
}) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
431
455
|
fontFamily: ctx.knobProps.body.fontFamily,
|
|
432
456
|
fontWeight: ctx.knobProps.body.fontWeight,
|
|
433
457
|
color: ctx.textColor,
|
|
@@ -1361,17 +1385,21 @@ function NativeSelectCore(param) {
|
|
|
1361
1385
|
} : void 0,
|
|
1362
1386
|
...(import_tamagui.isWeb ? selectItemRingProps(active, kbNav) : void 0),
|
|
1363
1387
|
hoverStyle: activeIndex != null ? {
|
|
1364
|
-
backgroundColor: active ? import_colorRamps.formInputColors.background.focus :
|
|
1388
|
+
backgroundColor: active ? import_colorRamps.formInputColors.background.focus : "transparent"
|
|
1365
1389
|
} : {
|
|
1366
|
-
backgroundColor:
|
|
1390
|
+
backgroundColor: import_colorRamps.formInputColors.background.focus
|
|
1367
1391
|
},
|
|
1368
|
-
|
|
1392
|
+
// LC-262: the accent check alone marks the chosen row.
|
|
1393
|
+
backgroundColor: active && kbNav ? import_colorRamps.formInputColors.background.focus : "transparent",
|
|
1369
1394
|
pressStyle: {
|
|
1370
1395
|
backgroundColor: import_colorRamps.formInputColors.background.focus
|
|
1371
1396
|
},
|
|
1372
1397
|
// Native: parent RNPressable owns the hit; disable child stealing.
|
|
1373
1398
|
pointerEvents: import_tamagui.isWeb ? void 0 : "none",
|
|
1374
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(
|
|
1399
|
+
children: [option.icon ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(OptionGlyph, {
|
|
1400
|
+
icon: option.icon,
|
|
1401
|
+
color: textColor
|
|
1402
|
+
}) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
1375
1403
|
fontFamily: knobProps.body.fontFamily,
|
|
1376
1404
|
fontWeight: knobProps.body.fontWeight,
|
|
1377
1405
|
color: textColor,
|
|
@@ -1626,7 +1654,7 @@ function Select(param) {
|
|
|
1626
1654
|
"aria-label": ariaLabel,
|
|
1627
1655
|
...rest
|
|
1628
1656
|
} = param;
|
|
1629
|
-
var _ref
|
|
1657
|
+
var _ref;
|
|
1630
1658
|
var emitValueChange = function emitValueChange2(val) {
|
|
1631
1659
|
onChange === null || onChange === void 0 ? void 0 : onChange(val);
|
|
1632
1660
|
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(val);
|
|
@@ -1644,18 +1672,28 @@ function Select(param) {
|
|
|
1644
1672
|
var [uncontrolledValue, setUncontrolledValue] = (0, import_react.useState)(defaultValue);
|
|
1645
1673
|
var isControlled = value !== void 0;
|
|
1646
1674
|
var hasLabel = Boolean(label);
|
|
1647
|
-
(0, import_devWarn.warnSelectTooFewOptions)({
|
|
1648
|
-
count: (_ref = options === null || options === void 0 ? void 0 : options.length) !== null && _ref !== void 0 ? _ref : 0,
|
|
1649
|
-
multiple,
|
|
1650
|
-
component: "Select",
|
|
1651
|
-
id
|
|
1652
|
-
});
|
|
1653
1675
|
var viewportGtSm = (0, import_FloatingPanel.useViewportGtSm)();
|
|
1654
1676
|
var insideOverlay = (0, import_overlayStack.useInsideOverlay)();
|
|
1655
1677
|
var effectiveGtSm = typeof window !== "undefined" ? viewportGtSm : false;
|
|
1656
1678
|
var hydrated = (0, import_react.useSyncExternalStore)(subscribeNothing, clientSnapshot, serverSnapshot);
|
|
1657
|
-
var compactMenu = hydrated && (0, import_compactFace.resolveCompactFace)((0, import_compactFace.pickerCompactFace)((
|
|
1679
|
+
var compactMenu = hydrated && (0, import_compactFace.resolveCompactFace)((0, import_compactFace.pickerCompactFace)((_ref = options === null || options === void 0 ? void 0 : options.length) !== null && _ref !== void 0 ? _ref : 0), insideOverlay) === "menu";
|
|
1658
1680
|
var shouldUseSheet = !import_tamagui.isWeb || !effectiveGtSm && !compactMenu;
|
|
1681
|
+
var inTableCell = (0, import_tableCellContext.useIsInTableCell)();
|
|
1682
|
+
var inline = !inTableCell && (0, import_shouldInlineChoices.shouldInlineChoices)({
|
|
1683
|
+
insideOverlay,
|
|
1684
|
+
multiple,
|
|
1685
|
+
options
|
|
1686
|
+
});
|
|
1687
|
+
if (!inline) {
|
|
1688
|
+
var _ref1;
|
|
1689
|
+
(0, import_devWarn.warnSelectTooFewOptions)({
|
|
1690
|
+
count: (_ref1 = options === null || options === void 0 ? void 0 : options.length) !== null && _ref1 !== void 0 ? _ref1 : 0,
|
|
1691
|
+
multiple,
|
|
1692
|
+
component: "Select",
|
|
1693
|
+
id
|
|
1694
|
+
});
|
|
1695
|
+
}
|
|
1696
|
+
var markColor = useSelectedMarkColor();
|
|
1659
1697
|
if (skeleton) {
|
|
1660
1698
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_InputParts.Input, {
|
|
1661
1699
|
size: sizeProp || knobProps.sizeToken,
|
|
@@ -1715,6 +1753,24 @@ function Select(param) {
|
|
|
1715
1753
|
};
|
|
1716
1754
|
var renderSelectContent = function renderSelectContent2(selectValue, handleValueChange, handleBlur) {
|
|
1717
1755
|
if (readOnly) return renderReadOnly(selectValue);
|
|
1756
|
+
if (inline) {
|
|
1757
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_InlineChoices.InlineChoices, {
|
|
1758
|
+
options,
|
|
1759
|
+
value: typeof selectValue === "string" ? selectValue : void 0,
|
|
1760
|
+
onValueChange: function onValueChange2(val) {
|
|
1761
|
+
if (disabled) return;
|
|
1762
|
+
handleValueChange === null || handleValueChange === void 0 ? void 0 : handleValueChange(val);
|
|
1763
|
+
emitValueChange(val);
|
|
1764
|
+
},
|
|
1765
|
+
onBlur: handleBlur,
|
|
1766
|
+
disabled,
|
|
1767
|
+
id,
|
|
1768
|
+
labelledBy: hasLabel ? `${id}-label` : void 0,
|
|
1769
|
+
"aria-label": ariaLabel,
|
|
1770
|
+
knobProps,
|
|
1771
|
+
markColor
|
|
1772
|
+
});
|
|
1773
|
+
}
|
|
1718
1774
|
var SelectCore = shouldUseSheet ? NativeSelectCore : FloatingSelectCore;
|
|
1719
1775
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectCore, {
|
|
1720
1776
|
options,
|