@razorpay/blade 12.49.3 → 12.49.5
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/build/lib/native/components/Accordion/AccordionButton.native.js.map +1 -1
- package/build/lib/native/components/ActionList/ActionList.js.map +1 -1
- package/build/lib/native/components/ActionList/ActionListItem.js.map +1 -1
- package/build/lib/native/components/ActionList/actionListUtils.js.map +1 -1
- package/build/lib/native/components/Alert/Alert.js.map +1 -1
- package/build/lib/native/components/Amount/Amount.js.map +1 -1
- package/build/lib/native/components/Badge/Badge.js.map +1 -1
- package/build/lib/native/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
- package/build/lib/native/components/BladeProvider/useBladeProvider.js.map +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheet.native.js +1 -1
- package/build/lib/native/components/BottomSheet/BottomSheet.native.js.map +1 -1
- package/build/lib/native/components/Box/BaseBox/baseBoxStyles.js.map +1 -1
- package/build/lib/native/components/Box/Box.js.map +1 -1
- package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/native/components/Button/BaseButton/StyledBaseButton.native.js.map +1 -1
- package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/native/components/Button/IconButton/StyledIconButton.native.js.map +1 -1
- package/build/lib/native/components/Card/CardContext.js.map +1 -1
- package/build/lib/native/components/Card/CardFooter.js.map +1 -1
- package/build/lib/native/components/Card/CardHeader.js.map +1 -1
- package/build/lib/native/components/Card/CardRoot.native.js.map +1 -1
- package/build/lib/native/components/Card/CardSurface.native.js.map +1 -1
- package/build/lib/native/components/Carousel/Carousel.native.js.map +1 -1
- package/build/lib/native/components/Carousel/CarouselItem.native.js.map +1 -1
- package/build/lib/native/components/Carousel/Indicators/Indicators.js.map +1 -1
- package/build/lib/native/components/Carousel/Indicators/getIndicatorButtonStyles.js.map +1 -1
- package/build/lib/native/components/Checkbox/Checkbox.js.map +1 -1
- package/build/lib/native/components/Checkbox/CheckboxGroup/CheckboxGroup.js.map +1 -1
- package/build/lib/native/components/Checkbox/useCheckbox.js.map +1 -1
- package/build/lib/native/components/Chip/ChipGroup.js.map +1 -1
- package/build/lib/native/components/Chip/chipTokens.js.map +1 -1
- package/build/lib/native/components/Chip/useChipGroup.js.map +1 -1
- package/build/lib/native/components/Collapsible/Collapsible.js.map +1 -1
- package/build/lib/native/components/Collapsible/CollapsibleChevronIcon.native.js.map +1 -1
- package/build/lib/native/components/Collapsible/CollapsibleContext.js.map +1 -1
- package/build/lib/native/components/Counter/Counter.js.map +1 -1
- package/build/lib/native/components/Divider/Divider.js.map +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/native/components/Dropdown/DropdownButton.js +1 -1
- package/build/lib/native/components/Dropdown/DropdownButton.js.map +1 -1
- package/build/lib/native/components/Dropdown/DropdownIconButton.js +1 -1
- package/build/lib/native/components/Dropdown/DropdownIconButton.js.map +1 -1
- package/build/lib/native/components/Dropdown/DropdownLink.js +1 -1
- package/build/lib/native/components/Dropdown/DropdownLink.js.map +1 -1
- package/build/lib/native/components/Dropdown/DropdownOverlay.native.js.map +1 -1
- package/build/lib/native/components/Dropdown/dropdownUtils.js.map +1 -1
- package/build/lib/native/components/Form/useFormId.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js.map +1 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/Chevron.js.map +1 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/SelectInput.js +1 -1
- package/build/lib/native/components/Input/DropdownInputTriggers/SelectInput.js.map +1 -1
- package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
- package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
- package/build/lib/native/components/Link/BaseLink/BaseLink.js.map +1 -1
- package/build/lib/native/components/Link/BaseLink/StyledBaseLink.native.js.map +1 -1
- package/build/lib/native/components/List/ListItem.js.map +1 -1
- package/build/lib/native/components/List/getOrderedListItemBullet.js.map +1 -1
- package/build/lib/native/components/Popover/PopoverContext.js.map +1 -1
- package/build/lib/native/components/PopupArrow/PopupArrow.native.js.map +1 -1
- package/build/lib/native/components/ProgressBar/CircularProgressBar.native.js.map +1 -1
- package/build/lib/native/components/ProgressBar/ProgressBar.js.map +1 -1
- package/build/lib/native/components/ProgressBar/ProgressBarFilled.native.js.map +1 -1
- package/build/lib/native/components/ProgressBar/progressBarTokens.js.map +1 -1
- package/build/lib/native/components/Radio/RadioGroup/RadioGroup.js.map +1 -1
- package/build/lib/native/components/Radio/RadioGroup/useRadioGroup.js.map +1 -1
- package/build/lib/native/components/Radio/RadioIcon/RadioIcon.js.map +1 -1
- package/build/lib/native/components/Radio/useRadio.js.map +1 -1
- package/build/lib/native/components/Spinner/BaseSpinner/BaseSpinner.js.map +1 -1
- package/build/lib/native/components/Spinner/BaseSpinner/SpinningBox.native.js.map +1 -1
- package/build/lib/native/components/StepGroup/StepItemMarker.js.map +1 -1
- package/build/lib/native/components/Switch/getTrackStyles.js.map +1 -1
- package/build/lib/native/components/Tabs/SafeSceneMap.native.js.map +1 -1
- package/build/lib/native/components/Tabs/utils.js.map +1 -1
- package/build/lib/native/components/Tag/Tag.js.map +1 -1
- package/build/lib/native/components/Tag/getTagsGroup.js.map +1 -1
- package/build/lib/native/components/Tooltip/TooltipContext.js.map +1 -1
- package/build/lib/native/components/Typography/BaseText/getBaseTextStyles.js.map +1 -1
- package/build/lib/native/components/Typography/Code/Code.js.map +1 -1
- package/build/lib/native/components/Typography/Text/Text.js.map +1 -1
- package/build/lib/native/components/Typography/utils.js.map +1 -1
- package/build/lib/native/components/VisuallyHidden/ScreenReaderStyles.js.map +1 -1
- package/build/lib/native/tokens/global/colors.js.map +1 -1
- package/build/lib/native/tokens/global/elevation/elevation.native.js.map +1 -1
- package/build/lib/native/tokens/theme/bladeTheme.js.map +1 -1
- package/build/lib/native/tokens/theme/createTheme.js.map +1 -1
- package/build/lib/native/utils/getMediaQuery/getMediaQuery.js.map +1 -1
- package/build/lib/native/utils/isPartialMatchObjectKeys/isPartialMatchObjectKeys.js.map +1 -1
- package/build/lib/native/utils/logger/logger.js.map +1 -1
- package/build/lib/native/utils/makeAccessible/makeAccessible.native.js.map +1 -1
- package/build/lib/native/utils/makeBorderSize/makeBorderSize.js.map +1 -1
- package/build/lib/native/utils/makeLetterSpacing/makeLetterSpacing.js.map +1 -1
- package/build/lib/native/utils/makeSize/makeSize.js.map +1 -1
- package/build/lib/native/utils/makeSpace/makeSpace.js.map +1 -1
- package/build/lib/native/utils/makeTypographySize/makeTypographySize.native.js.map +1 -1
- package/build/lib/native/utils/metaAttribute/metaAttribute.native.js.map +1 -1
- package/build/lib/native/utils/useColorScheme/useColorScheme.js.map +1 -1
- package/build/lib/native/utils/useId.js.map +1 -1
- package/build/lib/native/utils/useMergeRefs.js.map +1 -1
- package/build/lib/native/utils/useVerifyAllowedChildren/useVerifyAllowedChildren.js.map +1 -1
- package/build/lib/web/development/components/Accordion/Accordion.js +2 -2
- package/build/lib/web/development/components/Accordion/Accordion.js.map +1 -1
- package/build/lib/web/development/components/ActionList/ActionList.js +1 -1
- package/build/lib/web/development/components/ActionList/ActionList.js.map +1 -1
- package/build/lib/web/development/components/ActionList/ActionListBox.web.js +7 -7
- package/build/lib/web/development/components/ActionList/ActionListBox.web.js.map +1 -1
- package/build/lib/web/development/components/ActionList/ActionListItem.js +4 -4
- package/build/lib/web/development/components/ActionList/ActionListItem.js.map +1 -1
- package/build/lib/web/development/components/ActionList/actionListUtils.js +4 -4
- package/build/lib/web/development/components/ActionList/actionListUtils.js.map +1 -1
- package/build/lib/web/development/components/Amount/Amount.js +2 -2
- package/build/lib/web/development/components/Amount/Amount.js.map +1 -1
- package/build/lib/web/development/components/AnimateInteractions/AnimateInteractions.web.js.map +1 -1
- package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.js +2 -2
- package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.js.map +1 -1
- package/build/lib/web/development/components/Avatar/Avatar.web.js +1 -1
- package/build/lib/web/development/components/Avatar/Avatar.web.js.map +1 -1
- package/build/lib/web/development/components/Badge/Badge.js +1 -1
- package/build/lib/web/development/components/Badge/Badge.js.map +1 -1
- package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js +2 -2
- package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
- package/build/lib/web/development/components/BaseMotion/baseMotionUtils.js +2 -2
- package/build/lib/web/development/components/BaseMotion/baseMotionUtils.js.map +1 -1
- package/build/lib/web/development/components/BladeProvider/useTheme.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js +19 -19
- package/build/lib/web/development/components/BottomSheet/BottomSheet.web.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetBackdrop.web.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetContext.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetStack.js.map +1 -1
- package/build/lib/web/development/components/Box/BaseBox/baseBoxStyles.js +27 -27
- package/build/lib/web/development/components/Box/BaseBox/baseBoxStyles.js.map +1 -1
- package/build/lib/web/development/components/Box/Box.js +1 -1
- package/build/lib/web/development/components/Box/Box.js.map +1 -1
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +5 -5
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/development/components/Button/Button/Button.js +2 -2
- package/build/lib/web/development/components/Button/Button/Button.js.map +1 -1
- package/build/lib/web/development/components/Button/IconButton/IconButton.js +1 -1
- package/build/lib/web/development/components/Button/IconButton/IconButton.js.map +1 -1
- package/build/lib/web/development/components/ButtonGroup/ButtonGroup.web.js +1 -1
- package/build/lib/web/development/components/ButtonGroup/ButtonGroup.web.js.map +1 -1
- package/build/lib/web/development/components/Card/Card.js.map +1 -1
- package/build/lib/web/development/components/Card/CardFooter.js +2 -2
- package/build/lib/web/development/components/Card/CardFooter.js.map +1 -1
- package/build/lib/web/development/components/Card/CardRoot.web.js.map +1 -1
- package/build/lib/web/development/components/Carousel/Carousel.web.js +6 -6
- package/build/lib/web/development/components/Carousel/Carousel.web.js.map +1 -1
- package/build/lib/web/development/components/Carousel/CarouselItem.web.js +2 -2
- package/build/lib/web/development/components/Carousel/CarouselItem.web.js.map +1 -1
- package/build/lib/web/development/components/Carousel/Indicators/Indicators.js +1 -1
- package/build/lib/web/development/components/Carousel/Indicators/Indicators.js.map +1 -1
- package/build/lib/web/development/components/ChatMessage/ChatMessage.web.js +1 -1
- package/build/lib/web/development/components/ChatMessage/ChatMessage.web.js.map +1 -1
- package/build/lib/web/development/components/Checkbox/Checkbox.js +5 -5
- package/build/lib/web/development/components/Checkbox/Checkbox.js.map +1 -1
- package/build/lib/web/development/components/Checkbox/CheckboxGroup/useCheckboxGroup.js.map +1 -1
- package/build/lib/web/development/components/Checkbox/useCheckbox.js +1 -1
- package/build/lib/web/development/components/Checkbox/useCheckbox.js.map +1 -1
- package/build/lib/web/development/components/Chip/Chip.js +5 -5
- package/build/lib/web/development/components/Chip/Chip.js.map +1 -1
- package/build/lib/web/development/components/Chip/useChipGroup.js.map +1 -1
- package/build/lib/web/development/components/Collapsible/Collapsible.js +3 -3
- package/build/lib/web/development/components/Collapsible/Collapsible.js.map +1 -1
- package/build/lib/web/development/components/Collapsible/CollapsibleButton.js +1 -1
- package/build/lib/web/development/components/Collapsible/CollapsibleButton.js.map +1 -1
- package/build/lib/web/development/components/Counter/Counter.js +1 -1
- package/build/lib/web/development/components/Counter/Counter.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +14 -14
- package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/Calendar.web.js +7 -7
- package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/CalendarHeader.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/DateInput.web.js +17 -5
- package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/useControlledDates.js +1 -1
- package/build/lib/web/development/components/DatePicker/useControlledDates.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/useDatesState.js +1 -1
- package/build/lib/web/development/components/DatePicker/useDatesState.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/usePopup.js +2 -2
- package/build/lib/web/development/components/DatePicker/usePopup.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/utils.js +191 -23
- package/build/lib/web/development/components/DatePicker/utils.js.map +1 -1
- package/build/lib/web/development/components/Drawer/Drawer.web.js +2 -2
- package/build/lib/web/development/components/Drawer/Drawer.web.js.map +1 -1
- package/build/lib/web/development/components/Drawer/DrawerContext.js.map +1 -1
- package/build/lib/web/development/components/Drawer/DrawerSubcomponents.web.js.map +1 -1
- package/build/lib/web/development/components/Drawer/StackProvider.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js +28 -28
- package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownButton.js +4 -4
- package/build/lib/web/development/components/Dropdown/DropdownButton.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownHeaderFooter.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownIconButton.js +4 -4
- package/build/lib/web/development/components/Dropdown/DropdownIconButton.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownLink.js +4 -4
- package/build/lib/web/development/components/Dropdown/DropdownLink.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipGroupContext.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +7 -7
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js +8 -8
- package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/useDropdown.js +4 -4
- package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/development/components/EmptyState/EmptyState.web.js +1 -1
- package/build/lib/web/development/components/EmptyState/EmptyState.web.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js +14 -14
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/development/components/FileUpload/FileUploadItem.js +1 -1
- package/build/lib/web/development/components/FileUpload/FileUploadItem.js.map +1 -1
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +3 -3
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/development/components/Form/FormHint.js.map +1 -1
- package/build/lib/web/development/components/Form/Selector/SelectorInput.web.js +1 -1
- package/build/lib/web/development/components/Form/Selector/SelectorInput.web.js.map +1 -1
- package/build/lib/web/development/components/Indicator/Indicator.js +1 -1
- package/build/lib/web/development/components/Indicator/Indicator.js.map +1 -1
- package/build/lib/web/development/components/InfoGroup/InfoGroup.web.js +6 -6
- package/build/lib/web/development/components/InfoGroup/InfoGroup.web.js.map +1 -1
- package/build/lib/web/development/components/InfoGroup/InfoGroupContext.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +1 -1
- package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +110 -110
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInputTagSlot.web.js +8 -8
- package/build/lib/web/development/components/Input/BaseInput/BaseInputTagSlot.web.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js +7 -7
- package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/useTaggedInput.js +4 -4
- package/build/lib/web/development/components/Input/BaseInput/useTaggedInput.js.map +1 -1
- package/build/lib/web/development/components/Input/DropdownInputTriggers/AutoComplete.js +8 -8
- package/build/lib/web/development/components/Input/DropdownInputTriggers/AutoComplete.js.map +1 -1
- package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +4 -4
- package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/web/development/components/Input/DropdownInputTriggers/SelectInput.js +3 -3
- package/build/lib/web/development/components/Input/DropdownInputTriggers/SelectInput.js.map +1 -1
- package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +14 -14
- package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
- package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js +1 -1
- package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js.map +1 -1
- package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
- package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +5 -5
- package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
- package/build/lib/web/development/components/Input/SearchInput/SearchInput.js +5 -5
- package/build/lib/web/development/components/Input/SearchInput/SearchInput.js.map +1 -1
- package/build/lib/web/development/components/Input/TextArea/TextArea.js +7 -7
- package/build/lib/web/development/components/Input/TextArea/TextArea.js.map +1 -1
- package/build/lib/web/development/components/Input/TextInput/TextInput.js +7 -7
- package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
- package/build/lib/web/development/components/Input/TextInput/useFormattedInput.js +2 -2
- package/build/lib/web/development/components/Input/TextInput/useFormattedInput.js.map +1 -1
- package/build/lib/web/development/components/InputGroup/InputGroup.web.js +1 -1
- package/build/lib/web/development/components/InputGroup/InputGroup.web.js.map +1 -1
- package/build/lib/web/development/components/Link/BaseLink/BaseLink.js +3 -3
- package/build/lib/web/development/components/Link/BaseLink/BaseLink.js.map +1 -1
- package/build/lib/web/development/components/Link/Link/Link.js +1 -1
- package/build/lib/web/development/components/Link/Link/Link.js.map +1 -1
- package/build/lib/web/development/components/List/List.js +1 -1
- package/build/lib/web/development/components/List/List.js.map +1 -1
- package/build/lib/web/development/components/List/getOrderedListItemBullet.js +3 -3
- package/build/lib/web/development/components/List/getOrderedListItemBullet.js.map +1 -1
- package/build/lib/web/development/components/ListView/ListViewFilters.web.js.map +1 -1
- package/build/lib/web/development/components/ListView/ListViewFiltersContext.web.js.map +1 -1
- package/build/lib/web/development/components/LiveAnnouncer/LiveAnnouncer.web.js.map +1 -1
- package/build/lib/web/development/components/Menu/Menu.web.js.map +1 -1
- package/build/lib/web/development/components/Menu/MenuItem.web.js +3 -3
- package/build/lib/web/development/components/Menu/MenuItem.web.js.map +1 -1
- package/build/lib/web/development/components/Menu/useMenu.js.map +1 -1
- package/build/lib/web/development/components/Modal/ModalBackdrop.js.map +1 -1
- package/build/lib/web/development/components/Modal/ModalContext.js.map +1 -1
- package/build/lib/web/development/components/Popover/Popover.web.js.map +1 -1
- package/build/lib/web/development/components/Preview/Preview.web.js +29 -30
- package/build/lib/web/development/components/Preview/Preview.web.js.map +1 -1
- package/build/lib/web/development/components/QuickFilters/QuickFilterGroup/QuickFilterGroup.js.map +1 -1
- package/build/lib/web/development/components/Radio/Radio.js +4 -4
- package/build/lib/web/development/components/Radio/Radio.js.map +1 -1
- package/build/lib/web/development/components/Radio/RadioGroup/useRadioGroup.js +1 -1
- package/build/lib/web/development/components/Radio/RadioGroup/useRadioGroup.js.map +1 -1
- package/build/lib/web/development/components/Radio/useRadio.js +1 -1
- package/build/lib/web/development/components/Radio/useRadio.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNav.web.js +19 -19
- package/build/lib/web/development/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +6 -6
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNavLevel.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js +7 -7
- package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourFooter.web.js +2 -2
- package/build/lib/web/development/components/SpotlightPopoverTour/TourFooter.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourStep.web.js +1 -1
- package/build/lib/web/development/components/SpotlightPopoverTour/TourStep.web.js.map +1 -1
- package/build/lib/web/development/components/StepGroup/StepGroup.web.js +6 -6
- package/build/lib/web/development/components/StepGroup/StepGroup.web.js.map +1 -1
- package/build/lib/web/development/components/StepGroup/StepItem.web.js +1 -1
- package/build/lib/web/development/components/StepGroup/StepItem.web.js.map +1 -1
- package/build/lib/web/development/components/StepGroup/StepLine.web.js +13 -13
- package/build/lib/web/development/components/StepGroup/StepLine.web.js.map +1 -1
- package/build/lib/web/development/components/Switch/Switch.js +1 -1
- package/build/lib/web/development/components/Switch/Switch.js.map +1 -1
- package/build/lib/web/development/components/Table/Table.web.js +10 -10
- package/build/lib/web/development/components/Table/Table.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableBody.web.js +6 -6
- package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableContext.js.map +1 -1
- package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TablePagination.web.js +2 -2
- package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableToolbar.web.js.map +1 -1
- package/build/lib/web/development/components/Tabs/TabItem.web.js +2 -2
- package/build/lib/web/development/components/Tabs/TabItem.web.js.map +1 -1
- package/build/lib/web/development/components/Tabs/TabList.web.js +2 -2
- package/build/lib/web/development/components/Tabs/TabList.web.js.map +1 -1
- package/build/lib/web/development/components/Tabs/Tabs.web.js +1 -1
- package/build/lib/web/development/components/Tabs/Tabs.web.js.map +1 -1
- package/build/lib/web/development/components/Tabs/utils.js +2 -2
- package/build/lib/web/development/components/Tabs/utils.js.map +1 -1
- package/build/lib/web/development/components/Tag/AnimatedTag.web.js.map +1 -1
- package/build/lib/web/development/components/Tag/Tag.js.map +1 -1
- package/build/lib/web/development/components/Toast/Toast.web.js +2 -2
- package/build/lib/web/development/components/Toast/Toast.web.js.map +1 -1
- package/build/lib/web/development/components/Toast/ToastContainer.web.js.map +1 -1
- package/build/lib/web/development/components/Tooltip/Tooltip.web.js +1 -1
- package/build/lib/web/development/components/Tooltip/Tooltip.web.js.map +1 -1
- package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.js +2 -2
- package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.js.map +1 -1
- package/build/lib/web/development/components/TopNav/TabNav/utils.js +2 -2
- package/build/lib/web/development/components/TopNav/TabNav/utils.js.map +1 -1
- package/build/lib/web/development/components/Typography/Text/Text.js +1 -1
- package/build/lib/web/development/components/Typography/Text/Text.js.map +1 -1
- package/build/lib/web/development/tokens/theme/overrideTheme.js +2 -2
- package/build/lib/web/development/tokens/theme/overrideTheme.js.map +1 -1
- package/build/lib/web/development/utils/bladeCoverage.js +9 -10
- package/build/lib/web/development/utils/bladeCoverage.js.map +1 -1
- package/build/lib/web/development/utils/fireNativeEvent/fireNativeEvent.web.js +1 -1
- package/build/lib/web/development/utils/fireNativeEvent/fireNativeEvent.web.js.map +1 -1
- package/build/lib/web/development/utils/hasSameObjectStructure/hasSameObjectStructure.js +6 -6
- package/build/lib/web/development/utils/hasSameObjectStructure/hasSameObjectStructure.js.map +1 -1
- package/build/lib/web/development/utils/isPartialMatchObjectKeys/isPartialMatchObjectKeys.js +3 -3
- package/build/lib/web/development/utils/isPartialMatchObjectKeys/isPartialMatchObjectKeys.js.map +1 -1
- package/build/lib/web/development/utils/isValidAllowedChildren/isValidAllowedChildren.js +2 -2
- package/build/lib/web/development/utils/isValidAllowedChildren/isValidAllowedChildren.js.map +1 -1
- package/build/lib/web/development/utils/lodashButBetter/cloneDeep.js +3 -3
- package/build/lib/web/development/utils/lodashButBetter/get.js +3 -3
- package/build/lib/web/development/utils/useControllable.js +1 -1
- package/build/lib/web/development/utils/useControllable.js.map +1 -1
- package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +2 -2
- package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
- package/build/lib/web/development/utils/useScrollLock.js.map +1 -1
- package/build/lib/web/production/components/Accordion/Accordion.js +2 -2
- package/build/lib/web/production/components/Accordion/Accordion.js.map +1 -1
- package/build/lib/web/production/components/ActionList/ActionList.js +1 -1
- package/build/lib/web/production/components/ActionList/ActionList.js.map +1 -1
- package/build/lib/web/production/components/ActionList/ActionListBox.web.js +7 -7
- package/build/lib/web/production/components/ActionList/ActionListBox.web.js.map +1 -1
- package/build/lib/web/production/components/ActionList/ActionListItem.js +4 -4
- package/build/lib/web/production/components/ActionList/ActionListItem.js.map +1 -1
- package/build/lib/web/production/components/ActionList/actionListUtils.js +4 -4
- package/build/lib/web/production/components/ActionList/actionListUtils.js.map +1 -1
- package/build/lib/web/production/components/Amount/Amount.js +2 -2
- package/build/lib/web/production/components/Amount/Amount.js.map +1 -1
- package/build/lib/web/production/components/AnimateInteractions/AnimateInteractions.web.js.map +1 -1
- package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.js +2 -2
- package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.js.map +1 -1
- package/build/lib/web/production/components/Avatar/Avatar.web.js +1 -1
- package/build/lib/web/production/components/Avatar/Avatar.web.js.map +1 -1
- package/build/lib/web/production/components/Badge/Badge.js +1 -1
- package/build/lib/web/production/components/Badge/Badge.js.map +1 -1
- package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js +2 -2
- package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
- package/build/lib/web/production/components/BaseMotion/baseMotionUtils.js +2 -2
- package/build/lib/web/production/components/BaseMotion/baseMotionUtils.js.map +1 -1
- package/build/lib/web/production/components/BladeProvider/useTheme.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js +19 -19
- package/build/lib/web/production/components/BottomSheet/BottomSheet.web.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetBackdrop.web.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetContext.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetStack.js.map +1 -1
- package/build/lib/web/production/components/Box/BaseBox/baseBoxStyles.js +27 -27
- package/build/lib/web/production/components/Box/BaseBox/baseBoxStyles.js.map +1 -1
- package/build/lib/web/production/components/Box/Box.js +1 -1
- package/build/lib/web/production/components/Box/Box.js.map +1 -1
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +5 -5
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/production/components/Button/Button/Button.js +2 -2
- package/build/lib/web/production/components/Button/Button/Button.js.map +1 -1
- package/build/lib/web/production/components/Button/IconButton/IconButton.js +1 -1
- package/build/lib/web/production/components/Button/IconButton/IconButton.js.map +1 -1
- package/build/lib/web/production/components/ButtonGroup/ButtonGroup.web.js +1 -1
- package/build/lib/web/production/components/ButtonGroup/ButtonGroup.web.js.map +1 -1
- package/build/lib/web/production/components/Card/Card.js.map +1 -1
- package/build/lib/web/production/components/Card/CardFooter.js +2 -2
- package/build/lib/web/production/components/Card/CardFooter.js.map +1 -1
- package/build/lib/web/production/components/Card/CardRoot.web.js.map +1 -1
- package/build/lib/web/production/components/Carousel/Carousel.web.js +6 -6
- package/build/lib/web/production/components/Carousel/Carousel.web.js.map +1 -1
- package/build/lib/web/production/components/Carousel/CarouselItem.web.js +2 -2
- package/build/lib/web/production/components/Carousel/CarouselItem.web.js.map +1 -1
- package/build/lib/web/production/components/Carousel/Indicators/Indicators.js +1 -1
- package/build/lib/web/production/components/Carousel/Indicators/Indicators.js.map +1 -1
- package/build/lib/web/production/components/ChatMessage/ChatMessage.web.js +1 -1
- package/build/lib/web/production/components/ChatMessage/ChatMessage.web.js.map +1 -1
- package/build/lib/web/production/components/Checkbox/Checkbox.js +5 -5
- package/build/lib/web/production/components/Checkbox/Checkbox.js.map +1 -1
- package/build/lib/web/production/components/Checkbox/CheckboxGroup/useCheckboxGroup.js.map +1 -1
- package/build/lib/web/production/components/Checkbox/useCheckbox.js +1 -1
- package/build/lib/web/production/components/Checkbox/useCheckbox.js.map +1 -1
- package/build/lib/web/production/components/Chip/Chip.js +5 -5
- package/build/lib/web/production/components/Chip/Chip.js.map +1 -1
- package/build/lib/web/production/components/Chip/useChipGroup.js.map +1 -1
- package/build/lib/web/production/components/Collapsible/Collapsible.js +3 -3
- package/build/lib/web/production/components/Collapsible/Collapsible.js.map +1 -1
- package/build/lib/web/production/components/Collapsible/CollapsibleButton.js +1 -1
- package/build/lib/web/production/components/Collapsible/CollapsibleButton.js.map +1 -1
- package/build/lib/web/production/components/Counter/Counter.js +1 -1
- package/build/lib/web/production/components/Counter/Counter.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +14 -14
- package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/Calendar.web.js +7 -7
- package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/CalendarHeader.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/DateInput.web.js +17 -5
- package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/useControlledDates.js +1 -1
- package/build/lib/web/production/components/DatePicker/useControlledDates.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/useDatesState.js +1 -1
- package/build/lib/web/production/components/DatePicker/useDatesState.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/usePopup.js +2 -2
- package/build/lib/web/production/components/DatePicker/usePopup.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/utils.js +191 -23
- package/build/lib/web/production/components/DatePicker/utils.js.map +1 -1
- package/build/lib/web/production/components/Drawer/Drawer.web.js +2 -2
- package/build/lib/web/production/components/Drawer/Drawer.web.js.map +1 -1
- package/build/lib/web/production/components/Drawer/DrawerContext.js.map +1 -1
- package/build/lib/web/production/components/Drawer/DrawerSubcomponents.web.js.map +1 -1
- package/build/lib/web/production/components/Drawer/StackProvider.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js +28 -28
- package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownButton.js +4 -4
- package/build/lib/web/production/components/Dropdown/DropdownButton.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownHeaderFooter.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownIconButton.js +4 -4
- package/build/lib/web/production/components/Dropdown/DropdownIconButton.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownLink.js +4 -4
- package/build/lib/web/production/components/Dropdown/DropdownLink.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipGroupContext.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +7 -7
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js +8 -8
- package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/useDropdown.js +4 -4
- package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/production/components/EmptyState/EmptyState.web.js +1 -1
- package/build/lib/web/production/components/EmptyState/EmptyState.web.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js +14 -14
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/production/components/FileUpload/FileUploadItem.js +1 -1
- package/build/lib/web/production/components/FileUpload/FileUploadItem.js.map +1 -1
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +3 -3
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/production/components/Form/FormHint.js.map +1 -1
- package/build/lib/web/production/components/Form/Selector/SelectorInput.web.js +1 -1
- package/build/lib/web/production/components/Form/Selector/SelectorInput.web.js.map +1 -1
- package/build/lib/web/production/components/Indicator/Indicator.js +1 -1
- package/build/lib/web/production/components/Indicator/Indicator.js.map +1 -1
- package/build/lib/web/production/components/InfoGroup/InfoGroup.web.js +6 -6
- package/build/lib/web/production/components/InfoGroup/InfoGroup.web.js.map +1 -1
- package/build/lib/web/production/components/InfoGroup/InfoGroupContext.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +1 -1
- package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +110 -110
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInputTagSlot.web.js +8 -8
- package/build/lib/web/production/components/Input/BaseInput/BaseInputTagSlot.web.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js +7 -7
- package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/useTaggedInput.js +4 -4
- package/build/lib/web/production/components/Input/BaseInput/useTaggedInput.js.map +1 -1
- package/build/lib/web/production/components/Input/DropdownInputTriggers/AutoComplete.js +8 -8
- package/build/lib/web/production/components/Input/DropdownInputTriggers/AutoComplete.js.map +1 -1
- package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +4 -4
- package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
- package/build/lib/web/production/components/Input/DropdownInputTriggers/SelectInput.js +3 -3
- package/build/lib/web/production/components/Input/DropdownInputTriggers/SelectInput.js.map +1 -1
- package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +14 -14
- package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
- package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js +1 -1
- package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js.map +1 -1
- package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
- package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +5 -5
- package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
- package/build/lib/web/production/components/Input/SearchInput/SearchInput.js +5 -5
- package/build/lib/web/production/components/Input/SearchInput/SearchInput.js.map +1 -1
- package/build/lib/web/production/components/Input/TextArea/TextArea.js +7 -7
- package/build/lib/web/production/components/Input/TextArea/TextArea.js.map +1 -1
- package/build/lib/web/production/components/Input/TextInput/TextInput.js +7 -7
- package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
- package/build/lib/web/production/components/Input/TextInput/useFormattedInput.js +2 -2
- package/build/lib/web/production/components/Input/TextInput/useFormattedInput.js.map +1 -1
- package/build/lib/web/production/components/InputGroup/InputGroup.web.js +1 -1
- package/build/lib/web/production/components/InputGroup/InputGroup.web.js.map +1 -1
- package/build/lib/web/production/components/Link/BaseLink/BaseLink.js +3 -3
- package/build/lib/web/production/components/Link/BaseLink/BaseLink.js.map +1 -1
- package/build/lib/web/production/components/Link/Link/Link.js +1 -1
- package/build/lib/web/production/components/Link/Link/Link.js.map +1 -1
- package/build/lib/web/production/components/List/List.js +1 -1
- package/build/lib/web/production/components/List/List.js.map +1 -1
- package/build/lib/web/production/components/List/getOrderedListItemBullet.js +3 -3
- package/build/lib/web/production/components/List/getOrderedListItemBullet.js.map +1 -1
- package/build/lib/web/production/components/ListView/ListViewFilters.web.js.map +1 -1
- package/build/lib/web/production/components/ListView/ListViewFiltersContext.web.js.map +1 -1
- package/build/lib/web/production/components/LiveAnnouncer/LiveAnnouncer.web.js.map +1 -1
- package/build/lib/web/production/components/Menu/Menu.web.js.map +1 -1
- package/build/lib/web/production/components/Menu/MenuItem.web.js +3 -3
- package/build/lib/web/production/components/Menu/MenuItem.web.js.map +1 -1
- package/build/lib/web/production/components/Menu/useMenu.js.map +1 -1
- package/build/lib/web/production/components/Modal/ModalBackdrop.js.map +1 -1
- package/build/lib/web/production/components/Modal/ModalContext.js.map +1 -1
- package/build/lib/web/production/components/Popover/Popover.web.js.map +1 -1
- package/build/lib/web/production/components/Preview/Preview.web.js +29 -30
- package/build/lib/web/production/components/Preview/Preview.web.js.map +1 -1
- package/build/lib/web/production/components/QuickFilters/QuickFilterGroup/QuickFilterGroup.js.map +1 -1
- package/build/lib/web/production/components/Radio/Radio.js +4 -4
- package/build/lib/web/production/components/Radio/Radio.js.map +1 -1
- package/build/lib/web/production/components/Radio/RadioGroup/useRadioGroup.js +1 -1
- package/build/lib/web/production/components/Radio/RadioGroup/useRadioGroup.js.map +1 -1
- package/build/lib/web/production/components/Radio/useRadio.js +1 -1
- package/build/lib/web/production/components/Radio/useRadio.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNav.web.js +19 -19
- package/build/lib/web/production/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +6 -6
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNavLevel.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js +7 -7
- package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourFooter.web.js +2 -2
- package/build/lib/web/production/components/SpotlightPopoverTour/TourFooter.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourStep.web.js +1 -1
- package/build/lib/web/production/components/SpotlightPopoverTour/TourStep.web.js.map +1 -1
- package/build/lib/web/production/components/StepGroup/StepGroup.web.js +6 -6
- package/build/lib/web/production/components/StepGroup/StepGroup.web.js.map +1 -1
- package/build/lib/web/production/components/StepGroup/StepItem.web.js +1 -1
- package/build/lib/web/production/components/StepGroup/StepItem.web.js.map +1 -1
- package/build/lib/web/production/components/StepGroup/StepLine.web.js +13 -13
- package/build/lib/web/production/components/StepGroup/StepLine.web.js.map +1 -1
- package/build/lib/web/production/components/Switch/Switch.js +1 -1
- package/build/lib/web/production/components/Switch/Switch.js.map +1 -1
- package/build/lib/web/production/components/Table/Table.web.js +10 -10
- package/build/lib/web/production/components/Table/Table.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableBody.web.js +6 -6
- package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableContext.js.map +1 -1
- package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TablePagination.web.js +2 -2
- package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableToolbar.web.js.map +1 -1
- package/build/lib/web/production/components/Tabs/TabItem.web.js +2 -2
- package/build/lib/web/production/components/Tabs/TabItem.web.js.map +1 -1
- package/build/lib/web/production/components/Tabs/TabList.web.js +2 -2
- package/build/lib/web/production/components/Tabs/TabList.web.js.map +1 -1
- package/build/lib/web/production/components/Tabs/Tabs.web.js +1 -1
- package/build/lib/web/production/components/Tabs/Tabs.web.js.map +1 -1
- package/build/lib/web/production/components/Tabs/utils.js +2 -2
- package/build/lib/web/production/components/Tabs/utils.js.map +1 -1
- package/build/lib/web/production/components/Tag/AnimatedTag.web.js.map +1 -1
- package/build/lib/web/production/components/Tag/Tag.js.map +1 -1
- package/build/lib/web/production/components/Toast/Toast.web.js +2 -2
- package/build/lib/web/production/components/Toast/Toast.web.js.map +1 -1
- package/build/lib/web/production/components/Toast/ToastContainer.web.js.map +1 -1
- package/build/lib/web/production/components/Tooltip/Tooltip.web.js +1 -1
- package/build/lib/web/production/components/Tooltip/Tooltip.web.js.map +1 -1
- package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.js +2 -2
- package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.js.map +1 -1
- package/build/lib/web/production/components/TopNav/TabNav/utils.js +2 -2
- package/build/lib/web/production/components/TopNav/TabNav/utils.js.map +1 -1
- package/build/lib/web/production/components/Typography/Text/Text.js +1 -1
- package/build/lib/web/production/components/Typography/Text/Text.js.map +1 -1
- package/build/lib/web/production/tokens/theme/overrideTheme.js +2 -2
- package/build/lib/web/production/tokens/theme/overrideTheme.js.map +1 -1
- package/build/lib/web/production/utils/bladeCoverage.js +9 -10
- package/build/lib/web/production/utils/bladeCoverage.js.map +1 -1
- package/build/lib/web/production/utils/fireNativeEvent/fireNativeEvent.web.js +1 -1
- package/build/lib/web/production/utils/fireNativeEvent/fireNativeEvent.web.js.map +1 -1
- package/build/lib/web/production/utils/hasSameObjectStructure/hasSameObjectStructure.js +6 -6
- package/build/lib/web/production/utils/hasSameObjectStructure/hasSameObjectStructure.js.map +1 -1
- package/build/lib/web/production/utils/isPartialMatchObjectKeys/isPartialMatchObjectKeys.js +3 -3
- package/build/lib/web/production/utils/isPartialMatchObjectKeys/isPartialMatchObjectKeys.js.map +1 -1
- package/build/lib/web/production/utils/isValidAllowedChildren/isValidAllowedChildren.js +2 -2
- package/build/lib/web/production/utils/isValidAllowedChildren/isValidAllowedChildren.js.map +1 -1
- package/build/lib/web/production/utils/lodashButBetter/cloneDeep.js +3 -3
- package/build/lib/web/production/utils/lodashButBetter/get.js +3 -3
- package/build/lib/web/production/utils/useControllable.js +1 -1
- package/build/lib/web/production/utils/useControllable.js.map +1 -1
- package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +2 -2
- package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
- package/build/lib/web/production/utils/useScrollLock.js.map +1 -1
- package/package.json +15 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectInput.js","sources":["../../../../../../src/components/Input/DropdownInputTriggers/SelectInput.tsx"],"sourcesContent":["import React from 'react';\nimport type { SelectInputProps } from './types';\nimport { BaseDropdownInputTrigger } from './BaseDropdownInputTrigger';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport BaseBox from '~components/Box/BaseBox';\nimport { VisuallyHidden } from '~components/VisuallyHidden';\nimport { isReactNative } from '~utils';\nimport type { BladeElementRef } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _SelectInput = (\n props: SelectInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const { value, triggererRef, onTriggerKeydown, onTriggerClick } = useDropdown();\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n <BaseBox position=\"relative\">\n {!isReactNative() ? (\n <VisuallyHidden>\n <input\n onFocus={() => {\n triggererRef.current?.focus();\n }}\n ref={ref as React.Ref<HTMLInputElement>}\n tabIndex={-1}\n required={props.isRequired}\n name={props.name}\n value={value}\n {...makeAnalyticsAttribute(props)}\n // Adding onChange to surpass no onChange on controlled component warning\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange={() => {}}\n // Accessibility is covered in the select input itself so we hide this field from a11y tree\n aria-hidden={true}\n />\n </VisuallyHidden>\n ) : null}\n <BaseDropdownInputTrigger\n {...props}\n isSelectInput={true}\n onTriggerKeydown={onTriggerKeydown}\n onTriggerClick={(e) => {\n onTriggerClick();\n props?.onClick?.(e);\n }}\n />\n </BaseBox>\n );\n};\n\n/**\n * ### SelectInput\n *\n * Our equivalent of `<select>` tag. Lets you select items from given options.\n *\n * To be used in combination of `Dropdown` and `ActionList` component\n *\n * ---\n *\n * #### Usage\n *\n * ```diff\n * <Dropdown>\n * + <SelectInput label=\"Select Fruits\" />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem title=\"Mango\" value=\"mango\" />\n * <ActionListItem title=\"Apple\" value=\"apple\" />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select SelectInput Documentation}.\n */\n\nconst SelectInput = assignWithoutSideEffects(React.forwardRef(_SelectInput), {\n componentId: dropdownComponentIds.triggers.SelectInput,\n});\n\nexport { SelectInput };\n"],"names":["_SelectInput","props","ref","_useDropdown","useDropdown","value","triggererRef","onTriggerKeydown","onTriggerClick","_jsxs","BaseBox","position","children","isReactNative","_jsx","VisuallyHidden","Object","assign","onFocus","_triggererRef$current","current","focus","tabIndex","required","isRequired","name","makeAnalyticsAttribute","onChange","BaseDropdownInputTrigger","isSelectInput","e","onClick","SelectInput","assignWithoutSideEffects","React","forwardRef","componentId","dropdownComponentIds","triggers"],"mappings":";;;;;;;;;;;;;;AAYA,IAAMA,YAAY,CAAG,SAAfA,YAAYA,CAChBC,KAAuB,CACvBC,GAAwC,CACjB,CACvB,IAAAC,YAAA,CAAkEC,WAAW,EAAE,CAAvEC,KAAK,CAAAF,YAAA,CAALE,KAAK,CAAEC,YAAY,CAAAH,YAAA,CAAZG,YAAY,CAAEC,gBAAgB,CAAAJ,YAAA,CAAhBI,gBAAgB,CAAEC,eAAc,CAAAL,YAAA,CAAdK,cAAc,CAE7D,OAEEC,IAAA,CAACC,OAAO,
|
|
1
|
+
{"version":3,"file":"SelectInput.js","sources":["../../../../../../src/components/Input/DropdownInputTriggers/SelectInput.tsx"],"sourcesContent":["import React from 'react';\nimport type { SelectInputProps } from './types';\nimport { BaseDropdownInputTrigger } from './BaseDropdownInputTrigger';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport BaseBox from '~components/Box/BaseBox';\nimport { VisuallyHidden } from '~components/VisuallyHidden';\nimport { isReactNative } from '~utils';\nimport type { BladeElementRef } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _SelectInput = (\n props: SelectInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const { value, triggererRef, onTriggerKeydown, onTriggerClick } = useDropdown();\n\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n <BaseBox position=\"relative\">\n {!isReactNative() ? (\n <VisuallyHidden>\n <input\n onFocus={() => {\n triggererRef.current?.focus();\n }}\n ref={ref as React.Ref<HTMLInputElement>}\n tabIndex={-1}\n required={props.isRequired}\n name={props.name}\n value={value}\n {...makeAnalyticsAttribute(props)}\n // Adding onChange to surpass no onChange on controlled component warning\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange={() => {}}\n // Accessibility is covered in the select input itself so we hide this field from a11y tree\n aria-hidden={true}\n />\n </VisuallyHidden>\n ) : null}\n <BaseDropdownInputTrigger\n {...props}\n isSelectInput={true}\n onTriggerKeydown={onTriggerKeydown}\n onTriggerClick={(e) => {\n onTriggerClick();\n props?.onClick?.(e);\n }}\n />\n </BaseBox>\n );\n};\n\n/**\n * ### SelectInput\n *\n * Our equivalent of `<select>` tag. Lets you select items from given options.\n *\n * To be used in combination of `Dropdown` and `ActionList` component\n *\n * ---\n *\n * #### Usage\n *\n * ```diff\n * <Dropdown>\n * + <SelectInput label=\"Select Fruits\" />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem title=\"Mango\" value=\"mango\" />\n * <ActionListItem title=\"Apple\" value=\"apple\" />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select SelectInput Documentation}.\n */\n\nconst SelectInput = assignWithoutSideEffects(React.forwardRef(_SelectInput), {\n componentId: dropdownComponentIds.triggers.SelectInput,\n});\n\nexport { SelectInput };\n"],"names":["_SelectInput","props","ref","_useDropdown","useDropdown","value","triggererRef","onTriggerKeydown","onTriggerClick","_jsxs","BaseBox","position","children","isReactNative","_jsx","VisuallyHidden","Object","assign","onFocus","_triggererRef$current","current","focus","tabIndex","required","isRequired","name","makeAnalyticsAttribute","onChange","BaseDropdownInputTrigger","isSelectInput","e","onClick","SelectInput","assignWithoutSideEffects","React","forwardRef","componentId","dropdownComponentIds","triggers"],"mappings":";;;;;;;;;;;;;;AAYA,IAAMA,YAAY,CAAG,SAAfA,YAAYA,CAChBC,KAAuB,CACvBC,GAAwC,CACjB,CACvB,IAAAC,YAAA,CAAkEC,WAAW,EAAE,CAAvEC,KAAK,CAAAF,YAAA,CAALE,KAAK,CAAEC,YAAY,CAAAH,YAAA,CAAZG,YAAY,CAAEC,gBAAgB,CAAAJ,YAAA,CAAhBI,gBAAgB,CAAEC,eAAc,CAAAL,YAAA,CAAdK,cAAc,CAE7D,OAEEC,IAAA,CAACC,OAAO,CAACC,CAAAA,QAAQ,CAAC,UAAU,CAAAC,QAAA,CACzB,CAAA,CAACC,aAAa,EAAE,CACfC,GAAA,CAACC,cAAc,CAAA,CAAAH,QAAA,CACbE,GAAA,CAAA,OAAA,CAAAE,MAAA,CAAAC,MAAA,CAAA,CACEC,OAAO,CAAE,SAAAA,OAAAA,EAAM,CAAA,IAAAC,qBAAA,CACb,CAAAA,qBAAA,CAAAb,YAAY,CAACc,OAAO,eAApBD,qBAAA,CAAsBE,KAAK,EAAE,CAC/B,CAAE,CACFnB,GAAG,CAAEA,GAAmC,CACxCoB,QAAQ,CAAE,CAAC,CAAE,CACbC,QAAQ,CAAEtB,KAAK,CAACuB,UAAW,CAC3BC,IAAI,CAAExB,KAAK,CAACwB,IAAK,CACjBpB,KAAK,CAAEA,KAAM,CACTqB,CAAAA,sBAAsB,CAACzB,KAAK,CAAC,CAAA,CAGjC0B,QAAQ,CAAE,SAAAA,QAAAA,EAAM,EAAG,CAEnB,aAAa,CAAA,IAAK,CACnB,CAAA,CAAC,CACY,CAAC,CACf,IAAI,CACRb,GAAA,CAACc,wBAAwB,CAAAZ,MAAA,CAAAC,MAAA,CACnBhB,EAAAA,CAAAA,KAAK,EACT4B,aAAa,CAAE,IAAK,CACpBtB,gBAAgB,CAAEA,gBAAiB,CACnCC,cAAc,CAAE,SAAAA,cAAAA,CAACsB,CAAC,CAAK,CACrBtB,eAAc,EAAE,CAChBP,KAAK,EAALA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAAE8B,OAAO,EAAd9B,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAAE8B,OAAO,CAAGD,CAAC,CAAC,CACrB,CAAE,CAAA,CACH,CAAC,CAAA,CACK,CAAC,EAEd,CAAC,CA8BK,IAAAE,WAAW,CAAGC,wBAAwB,CAACC,cAAK,CAACC,UAAU,CAACnC,YAAY,CAAC,CAAE,CAC3EoC,WAAW,CAAEC,oBAAoB,CAACC,QAAQ,CAACN,WAC7C,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OTPInput.js","sources":["../../../../../../src/components/Input/OTPInput/OTPInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from 'react';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getHintType } from '../BaseInput/BaseInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { FormInputOnEvent } from '~components/Form';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeSize } from '~utils/makeSize';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype FormInputOnEventWithIndex = ({\n name,\n value,\n inputIndex,\n}: {\n name?: string;\n value?: string;\n inputIndex: number;\n}) => void;\n\nexport type OTPInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'name'\n | 'onChange'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'keyboardType'\n | 'placeholder'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Determines the number of input fields to show for the OTP\n * @default 6\n */\n otpLength?: 4 | 6;\n /**\n * The callback function to be invoked when all the values of the OTPInput are filled\n */\n onOTPFilled?: FormInputOnEvent;\n /**\n * Masks input characters in all the fields\n */\n isMasked?: boolean;\n /**\n * Determines what autoComplete suggestion type to show. Defaults to `oneTimeCode`.\n *\n * It's not recommended to turn this off in favor of otp input practices.\n *\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: Extract<\n BaseInputProps['autoCompleteSuggestionType'],\n 'none' | 'oneTimeCode'\n >;\n /**\n * The callback function to be invoked when one of the input fields gets focus\n */\n onFocus?: FormInputOnEventWithIndex;\n /**\n * The callback function to be invoked when one of the input fields is blurred\n */\n onBlur?: FormInputOnEventWithIndex;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype OTPInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype OTPInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype OTPInputProps = (OTPInputPropsWithA11yLabel | OTPInputPropsWithLabel) & OTPInputCommonProps;\n\nconst isReactNative = getPlatformType() === 'react-native';\n\n/**\n * Converts a string value of otp to array if passed otherwise returns an array of 6 empty strings\n */\nconst otpToArray = (code?: string): string[] => code?.split('') ?? Array(6).fill('');\n\n/**\n * OTPInput component can be used for accepting OTPs sent to users for authentication/verification purposes.\n *\n * ## Usage\n *\n * ```tsx\n * <OTPInput\n * label=\"Enter OTP\"\n * name=\"otpInput\"\n * onChange={({ name, value }): void => console.log({ name, value })}\n * onOTPFilled={({ name, value }): void => console.log({ name, value })}\n * />\n * ```\n */\nconst _OTPInput: React.ForwardRefRenderFunction<HTMLInputElement[], OTPInputProps> = (\n {\n autoFocus,\n errorText,\n helpText,\n isDisabled,\n keyboardReturnKeyType,\n keyboardType = 'decimal',\n label,\n accessibilityLabel,\n labelPosition,\n labelSuffix,\n labelTrailing,\n name,\n onChange,\n onFocus,\n onBlur,\n onOTPFilled,\n otpLength = 6,\n placeholder,\n successText,\n validationState,\n value: inputValue,\n isMasked,\n autoCompleteSuggestionType = 'oneTimeCode',\n testID,\n size = 'medium',\n ...rest\n },\n incomingRef,\n) => {\n const inputRefs: React.RefObject<HTMLInputElement>[] = [];\n const [otpValue, setOtpValue] = useState<string[]>(otpToArray(inputValue));\n const [inputType, setInputType] = useState<('password' | undefined)[]>([]);\n const isLabelLeftPositioned = labelPosition === 'left';\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId('otp');\n\n useImperativeHandle(\n incomingRef,\n () => {\n return inputRefs.map((ref) => ref.current!);\n },\n [inputRefs],\n );\n\n useEffect(() => {\n // Effect for calling `onOTPFilled` callback\n if (inputValue && inputValue.length >= otpLength) {\n // callback for when the OTPInput is controlled and inputValue reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: inputValue.slice(0, otpLength), name });\n } else if (!inputValue && otpValue.join('').length >= otpLength) {\n // callback for when the OTPInput is uncontrolled and otpValue stored in state reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: otpValue.slice(0, otpLength).join(''), name });\n }\n }, [otpValue, otpLength, name, inputValue, onOTPFilled]);\n\n useEffect(() => {\n /* We want to disable the password managers for OTPInput when isMasked is set.\n The issue with only setting autocomplete='off' is that its not an enforcement but a suggestion to the browser to follow.\n This workaround unsets type on first render and sets it to `password` only once a value is entered by the user.\n */\n otpValue.forEach((otp, index) => {\n // Set inputType as 'password' only when a value is entered when isMasked is set\n if (!isEmpty(otp) && !inputType[index] && isMasked) {\n const newInputType = Array.from(inputType);\n newInputType[index] = 'password';\n setInputType(newInputType);\n }\n // Cleanup the inputType array whenever the value is empty but inputType[index] is set\n if (isEmpty(otp) && inputType[index]) {\n const newInputType = Array.from(inputType);\n newInputType[index] = undefined;\n setInputType(newInputType);\n }\n });\n }, [otpValue, inputType, isMasked]);\n\n /**\n * Changes the value of the otp at a given index and updates the otpValue stored in state\n *\n * @param {{ value: string; index: number }} { value, index }\n * @returns {string} updated otpValue\n */\n const setOtpValueByIndex = ({ value, index }: { value: string; index: number }): string => {\n const newOtpValue = Array.from(otpValue);\n newOtpValue[index] = value;\n setOtpValue(newOtpValue);\n return newOtpValue.join('');\n };\n\n /**\n * Sets focus to the desired otp input by index\n *\n * @param {number} index the index of the otp input to be focused\n */\n const focusOnOtpByIndex = (index: number): void => {\n inputRefs[index]?.current?.focus();\n if (!isReactNative) {\n // React Native doesn't support imperatively selecting the value of input\n inputRefs[index]?.current?.select();\n }\n };\n\n const handleOnChange = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n if (value && value === ' ') {\n // React native doesn't support `event.preventDefault()` hence have to add this check to ensure that empty space is not allowed\n return;\n }\n if (inputValue && inputValue.length > 0) {\n // When OTPInput is controlled, set the otpValue as the consumer passed `inputValue` and append the value on current index based on user's input.\n // User's input will not reflect on the otp but will trigger `onChange` callback with the user's input appended so that the consumer can take appropriate action.\n const newOtpValue = Array.from(inputValue);\n newOtpValue[currentOtpIndex] = value ?? '';\n setOtpValue(newOtpValue);\n onChange?.({ name, value: newOtpValue.join('') });\n } else if (value && value.trim().length > 1) {\n // When the entered value is more that 1 character (when value is pasted), set the otpValue to the newly received value.\n // Could have used `onPaste` for web to achieve this but 1. React Native doesn't support onPaste and 2. Safari's autofill on web doesn't trigger onPaste\n setOtpValue(Array.from(value));\n onChange?.({ name, value: value.trim().slice(0, otpLength) });\n } else if (otpValue[currentOtpIndex] !== value?.trim()) {\n // Set the value at the current index to the entered value\n // only as long as its not the same as the already existing value (this prevents `onChange` being triggered unnecessarily)\n const newValue = setOtpValueByIndex({\n value: value?.trim() ?? '',\n index: currentOtpIndex,\n });\n onChange?.({ name, value: newValue });\n }\n };\n\n const handleOnInput = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n // Moves focus to next input whenever a value is entered in the current input\n if (value && value.trim().length === 1) {\n focusOnOtpByIndex(++currentOtpIndex);\n }\n };\n\n const handleOnKeyDown = ({\n key,\n code,\n event,\n currentOtpIndex,\n }: FormInputOnKeyDownEvent & { currentOtpIndex: number }): void => {\n if (key === 'Backspace' || code === 'Backspace' || code === 'Delete' || key === 'Delete') {\n event.preventDefault?.();\n if (otpValue[currentOtpIndex]) {\n // Clear the value at the current index if value exists\n handleOnChange({ value: '', currentOtpIndex });\n } else {\n // Move focus to the previous input if the current input is empty\n // and clear the value at the new active (previous) index\n focusOnOtpByIndex(--currentOtpIndex);\n handleOnChange({ value: '', currentOtpIndex });\n }\n } else if (key === 'ArrowLeft' || code === 'ArrowLeft') {\n event.preventDefault?.();\n focusOnOtpByIndex(--currentOtpIndex);\n } else if (key === 'ArrowRight' || code === 'ArrowRight') {\n event.preventDefault?.();\n focusOnOtpByIndex(++currentOtpIndex);\n } else if (key === ' ' || code === 'Space') {\n event.preventDefault?.();\n }\n };\n\n const getHiddenInput = (): React.ReactNode => {\n if (!isReactNative) {\n return (\n <input\n hidden={true}\n id={inputId}\n name={name}\n value={inputValue ?? otpValue.join('') ?? ''}\n readOnly\n />\n );\n }\n return null;\n };\n\n const getOTPInputFields = (): React.ReactNode => {\n const inputs = [];\n for (let index = 0; index < otpLength; index++) {\n const currentValue = inputValue ? otpToArray(inputValue)[index] || '' : otpValue[index] || '';\n const ref = React.createRef<HTMLInputElement>();\n // if an inputValue is passed (controlled) and isMasked is set, inputType will always be password\n let currentInputType: 'password' | undefined;\n if (isMasked) {\n // if inputValue is passed (controlled component) then the inputType will always be password\n currentInputType = inputValue ? 'password' : inputType[index];\n }\n inputRefs.push(ref);\n inputs.push(\n <BaseBox\n flex={1}\n marginLeft={index == 0 ? 'spacing.0' : 'spacing.3'}\n key={`${inputId}-${index}`}\n >\n <BaseInput\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus && index === 0}\n accessibilityLabel={`${index === 0 ? label || accessibilityLabel : ''} character ${\n index + 1\n }`}\n label={label}\n hideLabelText={true}\n id={`${inputId}-${index}`}\n textAlign=\"center\"\n ref={ref as never}\n name={name}\n value={currentValue}\n maxCharacters={otpValue[index]?.length > 0 ? 1 : undefined}\n onChange={(formEvent) => handleOnChange({ ...formEvent, currentOtpIndex: index })}\n onFocus={(formEvent) => onFocus?.({ ...formEvent, inputIndex: index })}\n onBlur={(formEvent) => onBlur?.({ ...formEvent, inputIndex: index })}\n onInput={(formEvent) => handleOnInput({ ...formEvent, currentOtpIndex: index })}\n onKeyDown={(keyboardEvent) =>\n handleOnKeyDown({ ...keyboardEvent, currentOtpIndex: index })\n }\n isDisabled={isDisabled}\n placeholder={Array.from(placeholder ?? '')[index] ?? ''}\n isRequired={true}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n keyboardType={keyboardType}\n keyboardReturnKeyType={keyboardReturnKeyType}\n validationState={validationState}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n hideFormHint={true}\n type={currentInputType}\n size={size}\n valueComponentType=\"heading\"\n {...makeAnalyticsAttribute(rest)}\n />\n </BaseBox>,\n );\n }\n return inputs;\n };\n\n return (\n <BaseBox {...metaAttribute({ name: MetaConstants.OTPInput, testID })} {...getStyledProps(rest)}>\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n >\n {Boolean(label) && (\n <FormLabel\n as=\"label\"\n position={labelPosition}\n htmlFor={inputId}\n size={size}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n >\n {label}\n </FormLabel>\n )}\n <BaseBox display=\"flex\" flexDirection=\"row\">\n {getHiddenInput()}\n {getOTPInputFields()}\n </BaseBox>\n </BaseBox>\n {/* the magic number 136 is basically max-width of label i.e 120 and then right margin i.e 16 which is the spacing between label and input field */}\n {/*Refer `BaseInput`'s implementation of FormHint which uses similar logic */}\n <BaseBox marginLeft={makeSize(isLabelLeftPositioned ? 136 : 0)}>\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst OTPInput = React.forwardRef<HTMLInputElement[], OTPInputProps>(_OTPInput);\n\nexport type { OTPInputProps };\nexport { OTPInput };\n"],"names":["isReactNative","getPlatformType","otpToArray","code","_code$split","split","Array","fill","_OTPInput","_ref","incomingRef","autoFocus","errorText","helpText","isDisabled","keyboardReturnKeyType","_ref$keyboardType","keyboardType","label","accessibilityLabel","labelPosition","labelSuffix","labelTrailing","name","onChange","onFocus","onBlur","onOTPFilled","_ref$otpLength","otpLength","placeholder","successText","validationState","inputValue","value","isMasked","_ref$autoCompleteSugg","autoCompleteSuggestionType","testID","_ref$size","size","rest","_objectWithoutProperties","_excluded","inputRefs","_useState","useState","_useState2","_slicedToArray","otpValue","setOtpValue","_useState3","_useState4","inputType","setInputType","isLabelLeftPositioned","_useFormId","useFormId","inputId","helpTextId","errorTextId","successTextId","useImperativeHandle","map","ref","current","useEffect","length","slice","join","forEach","otp","index","isEmpty","newInputType","from","undefined","setOtpValueByIndex","_ref2","newOtpValue","focusOnOtpByIndex","_inputRefs$index","_inputRefs$index$curr","focus","_inputRefs$index2","_inputRefs$index2$cur","select","handleOnChange","_ref3","currentOtpIndex","trim","_value$trim","newValue","handleOnInput","_ref4","handleOnKeyDown","_ref5","key","event","preventDefault","getHiddenInput","_ref6","_jsx","hidden","id","readOnly","getOTPInputFields","inputs","_loop","_otpValue$index","_Array$from$index","currentValue","React","createRef","currentInputType","push","BaseBox","flex","marginLeft","children","BaseInput","Object","assign","hideLabelText","textAlign","maxCharacters","formEvent","inputIndex","onInput","onKeyDown","keyboardEvent","isRequired","hideFormHint","type","valueComponentType","makeAnalyticsAttribute","_jsxs","metaAttribute","MetaConstants","OTPInput","getStyledProps","display","flexDirection","alignItems","position","Boolean","FormLabel","as","htmlFor","makeSize","FormHint","getHintType","hasHelpText","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OTPInput.js","sources":["../../../../../../src/components/Input/OTPInput/OTPInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from 'react';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getHintType } from '../BaseInput/BaseInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { FormInputOnEvent } from '~components/Form';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeSize } from '~utils/makeSize';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype FormInputOnEventWithIndex = ({\n name,\n value,\n inputIndex,\n}: {\n name?: string;\n value?: string;\n inputIndex: number;\n}) => void;\n\nexport type OTPInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'name'\n | 'onChange'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'keyboardType'\n | 'placeholder'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Determines the number of input fields to show for the OTP\n * @default 6\n */\n otpLength?: 4 | 6;\n /**\n * The callback function to be invoked when all the values of the OTPInput are filled\n */\n onOTPFilled?: FormInputOnEvent;\n /**\n * Masks input characters in all the fields\n */\n isMasked?: boolean;\n /**\n * Determines what autoComplete suggestion type to show. Defaults to `oneTimeCode`.\n *\n * It's not recommended to turn this off in favor of otp input practices.\n *\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: Extract<\n BaseInputProps['autoCompleteSuggestionType'],\n 'none' | 'oneTimeCode'\n >;\n /**\n * The callback function to be invoked when one of the input fields gets focus\n */\n onFocus?: FormInputOnEventWithIndex;\n /**\n * The callback function to be invoked when one of the input fields is blurred\n */\n onBlur?: FormInputOnEventWithIndex;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype OTPInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype OTPInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype OTPInputProps = (OTPInputPropsWithA11yLabel | OTPInputPropsWithLabel) & OTPInputCommonProps;\n\nconst isReactNative = getPlatformType() === 'react-native';\n\n/**\n * Converts a string value of otp to array if passed otherwise returns an array of 6 empty strings\n */\nconst otpToArray = (code?: string): string[] => code?.split('') ?? Array(6).fill('');\n\n/**\n * OTPInput component can be used for accepting OTPs sent to users for authentication/verification purposes.\n *\n * ## Usage\n *\n * ```tsx\n * <OTPInput\n * label=\"Enter OTP\"\n * name=\"otpInput\"\n * onChange={({ name, value }): void => console.log({ name, value })}\n * onOTPFilled={({ name, value }): void => console.log({ name, value })}\n * />\n * ```\n */\nconst _OTPInput: React.ForwardRefRenderFunction<HTMLInputElement[], OTPInputProps> = (\n {\n autoFocus,\n errorText,\n helpText,\n isDisabled,\n keyboardReturnKeyType,\n keyboardType = 'decimal',\n label,\n accessibilityLabel,\n labelPosition,\n labelSuffix,\n labelTrailing,\n name,\n onChange,\n onFocus,\n onBlur,\n onOTPFilled,\n otpLength = 6,\n placeholder,\n successText,\n validationState,\n value: inputValue,\n isMasked,\n autoCompleteSuggestionType = 'oneTimeCode',\n testID,\n size = 'medium',\n ...rest\n },\n incomingRef,\n) => {\n const inputRefs: React.RefObject<HTMLInputElement>[] = [];\n const [otpValue, setOtpValue] = useState<string[]>(otpToArray(inputValue));\n const [inputType, setInputType] = useState<('password' | undefined)[]>([]);\n const isLabelLeftPositioned = labelPosition === 'left';\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId('otp');\n\n useImperativeHandle(\n incomingRef,\n () => {\n return inputRefs.map((ref) => ref.current!);\n },\n [inputRefs],\n );\n\n useEffect(() => {\n // Effect for calling `onOTPFilled` callback\n if (inputValue && inputValue.length >= otpLength) {\n // callback for when the OTPInput is controlled and inputValue reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: inputValue.slice(0, otpLength), name });\n } else if (!inputValue && otpValue.join('').length >= otpLength) {\n // callback for when the OTPInput is uncontrolled and otpValue stored in state reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: otpValue.slice(0, otpLength).join(''), name });\n }\n }, [otpValue, otpLength, name, inputValue, onOTPFilled]);\n\n useEffect(() => {\n /* We want to disable the password managers for OTPInput when isMasked is set.\n The issue with only setting autocomplete='off' is that its not an enforcement but a suggestion to the browser to follow.\n This workaround unsets type on first render and sets it to `password` only once a value is entered by the user.\n */\n otpValue.forEach((otp, index) => {\n // Set inputType as 'password' only when a value is entered when isMasked is set\n if (!isEmpty(otp) && !inputType[index] && isMasked) {\n const newInputType = Array.from(inputType);\n newInputType[index] = 'password';\n setInputType(newInputType);\n }\n // Cleanup the inputType array whenever the value is empty but inputType[index] is set\n if (isEmpty(otp) && inputType[index]) {\n const newInputType = Array.from(inputType);\n newInputType[index] = undefined;\n setInputType(newInputType);\n }\n });\n }, [otpValue, inputType, isMasked]);\n\n /**\n * Changes the value of the otp at a given index and updates the otpValue stored in state\n *\n * @param {{ value: string; index: number }} { value, index }\n * @returns {string} updated otpValue\n */\n const setOtpValueByIndex = ({ value, index }: { value: string; index: number }): string => {\n const newOtpValue = Array.from(otpValue);\n newOtpValue[index] = value;\n setOtpValue(newOtpValue);\n return newOtpValue.join('');\n };\n\n /**\n * Sets focus to the desired otp input by index\n *\n * @param {number} index the index of the otp input to be focused\n */\n const focusOnOtpByIndex = (index: number): void => {\n inputRefs[index]?.current?.focus();\n if (!isReactNative) {\n // React Native doesn't support imperatively selecting the value of input\n inputRefs[index]?.current?.select();\n }\n };\n\n const handleOnChange = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n if (value && value === ' ') {\n // React native doesn't support `event.preventDefault()` hence have to add this check to ensure that empty space is not allowed\n return;\n }\n if (inputValue && inputValue.length > 0) {\n // When OTPInput is controlled, set the otpValue as the consumer passed `inputValue` and append the value on current index based on user's input.\n // User's input will not reflect on the otp but will trigger `onChange` callback with the user's input appended so that the consumer can take appropriate action.\n const newOtpValue = Array.from(inputValue);\n newOtpValue[currentOtpIndex] = value ?? '';\n setOtpValue(newOtpValue);\n onChange?.({ name, value: newOtpValue.join('') });\n } else if (value && value.trim().length > 1) {\n // When the entered value is more that 1 character (when value is pasted), set the otpValue to the newly received value.\n // Could have used `onPaste` for web to achieve this but 1. React Native doesn't support onPaste and 2. Safari's autofill on web doesn't trigger onPaste\n setOtpValue(Array.from(value));\n onChange?.({ name, value: value.trim().slice(0, otpLength) });\n } else if (otpValue[currentOtpIndex] !== value?.trim()) {\n // Set the value at the current index to the entered value\n // only as long as its not the same as the already existing value (this prevents `onChange` being triggered unnecessarily)\n const newValue = setOtpValueByIndex({\n value: value?.trim() ?? '',\n index: currentOtpIndex,\n });\n onChange?.({ name, value: newValue });\n }\n };\n\n const handleOnInput = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n // Moves focus to next input whenever a value is entered in the current input\n if (value && value.trim().length === 1) {\n focusOnOtpByIndex(++currentOtpIndex);\n }\n };\n\n const handleOnKeyDown = ({\n key,\n code,\n event,\n currentOtpIndex,\n }: FormInputOnKeyDownEvent & { currentOtpIndex: number }): void => {\n if (key === 'Backspace' || code === 'Backspace' || code === 'Delete' || key === 'Delete') {\n event.preventDefault?.();\n if (otpValue[currentOtpIndex]) {\n // Clear the value at the current index if value exists\n handleOnChange({ value: '', currentOtpIndex });\n } else {\n // Move focus to the previous input if the current input is empty\n // and clear the value at the new active (previous) index\n focusOnOtpByIndex(--currentOtpIndex);\n handleOnChange({ value: '', currentOtpIndex });\n }\n } else if (key === 'ArrowLeft' || code === 'ArrowLeft') {\n event.preventDefault?.();\n focusOnOtpByIndex(--currentOtpIndex);\n } else if (key === 'ArrowRight' || code === 'ArrowRight') {\n event.preventDefault?.();\n focusOnOtpByIndex(++currentOtpIndex);\n } else if (key === ' ' || code === 'Space') {\n event.preventDefault?.();\n }\n };\n\n const getHiddenInput = (): React.ReactNode => {\n if (!isReactNative) {\n return (\n <input\n hidden={true}\n id={inputId}\n name={name}\n value={inputValue ?? otpValue.join('') ?? ''}\n readOnly\n />\n );\n }\n return null;\n };\n\n const getOTPInputFields = (): React.ReactNode => {\n const inputs = [];\n for (let index = 0; index < otpLength; index++) {\n const currentValue = inputValue ? otpToArray(inputValue)[index] || '' : otpValue[index] || '';\n const ref = React.createRef<HTMLInputElement>();\n // if an inputValue is passed (controlled) and isMasked is set, inputType will always be password\n let currentInputType: 'password' | undefined;\n if (isMasked) {\n // if inputValue is passed (controlled component) then the inputType will always be password\n currentInputType = inputValue ? 'password' : inputType[index];\n }\n inputRefs.push(ref);\n inputs.push(\n <BaseBox\n flex={1}\n marginLeft={index == 0 ? 'spacing.0' : 'spacing.3'}\n key={`${inputId}-${index}`}\n >\n <BaseInput\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus && index === 0}\n accessibilityLabel={`${index === 0 ? label || accessibilityLabel : ''} character ${\n index + 1\n }`}\n label={label}\n hideLabelText={true}\n id={`${inputId}-${index}`}\n textAlign=\"center\"\n ref={ref as never}\n name={name}\n value={currentValue}\n maxCharacters={otpValue[index]?.length > 0 ? 1 : undefined}\n onChange={(formEvent) => handleOnChange({ ...formEvent, currentOtpIndex: index })}\n onFocus={(formEvent) => onFocus?.({ ...formEvent, inputIndex: index })}\n onBlur={(formEvent) => onBlur?.({ ...formEvent, inputIndex: index })}\n onInput={(formEvent) => handleOnInput({ ...formEvent, currentOtpIndex: index })}\n onKeyDown={(keyboardEvent) =>\n handleOnKeyDown({ ...keyboardEvent, currentOtpIndex: index })\n }\n isDisabled={isDisabled}\n placeholder={Array.from(placeholder ?? '')[index] ?? ''}\n isRequired={true}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n keyboardType={keyboardType}\n keyboardReturnKeyType={keyboardReturnKeyType}\n validationState={validationState}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n hideFormHint={true}\n type={currentInputType}\n size={size}\n valueComponentType=\"heading\"\n {...makeAnalyticsAttribute(rest)}\n />\n </BaseBox>,\n );\n }\n return inputs;\n };\n\n return (\n <BaseBox {...metaAttribute({ name: MetaConstants.OTPInput, testID })} {...getStyledProps(rest)}>\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n >\n {Boolean(label) && (\n <FormLabel\n as=\"label\"\n position={labelPosition}\n htmlFor={inputId}\n size={size}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n >\n {label}\n </FormLabel>\n )}\n <BaseBox display=\"flex\" flexDirection=\"row\">\n {getHiddenInput()}\n {getOTPInputFields()}\n </BaseBox>\n </BaseBox>\n {/* the magic number 136 is basically max-width of label i.e 120 and then right margin i.e 16 which is the spacing between label and input field */}\n {/*Refer `BaseInput`'s implementation of FormHint which uses similar logic */}\n <BaseBox marginLeft={makeSize(isLabelLeftPositioned ? 136 : 0)}>\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst OTPInput = React.forwardRef<HTMLInputElement[], OTPInputProps>(_OTPInput);\n\nexport type { OTPInputProps };\nexport { OTPInput };\n"],"names":["isReactNative","getPlatformType","otpToArray","code","_code$split","split","Array","fill","_OTPInput","_ref","incomingRef","autoFocus","errorText","helpText","isDisabled","keyboardReturnKeyType","_ref$keyboardType","keyboardType","label","accessibilityLabel","labelPosition","labelSuffix","labelTrailing","name","onChange","onFocus","onBlur","onOTPFilled","_ref$otpLength","otpLength","placeholder","successText","validationState","inputValue","value","isMasked","_ref$autoCompleteSugg","autoCompleteSuggestionType","testID","_ref$size","size","rest","_objectWithoutProperties","_excluded","inputRefs","_useState","useState","_useState2","_slicedToArray","otpValue","setOtpValue","_useState3","_useState4","inputType","setInputType","isLabelLeftPositioned","_useFormId","useFormId","inputId","helpTextId","errorTextId","successTextId","useImperativeHandle","map","ref","current","useEffect","length","slice","join","forEach","otp","index","isEmpty","newInputType","from","undefined","setOtpValueByIndex","_ref2","newOtpValue","focusOnOtpByIndex","_inputRefs$index","_inputRefs$index$curr","focus","_inputRefs$index2","_inputRefs$index2$cur","select","handleOnChange","_ref3","currentOtpIndex","trim","_value$trim","newValue","handleOnInput","_ref4","handleOnKeyDown","_ref5","key","event","preventDefault","getHiddenInput","_ref6","_jsx","hidden","id","readOnly","getOTPInputFields","inputs","_loop","_otpValue$index","_Array$from$index","currentValue","React","createRef","currentInputType","push","BaseBox","flex","marginLeft","children","BaseInput","Object","assign","hideLabelText","textAlign","maxCharacters","formEvent","inputIndex","onInput","onKeyDown","keyboardEvent","isRequired","hideFormHint","type","valueComponentType","makeAnalyticsAttribute","_jsxs","metaAttribute","MetaConstants","OTPInput","getStyledProps","display","flexDirection","alignItems","position","Boolean","FormLabel","as","htmlFor","makeSize","FormHint","getHintType","hasHelpText","forwardRef"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.js","sources":["../../../../../../src/components/Input/TextInput/TextInput.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getKeyboardAndAutocompleteProps } from '../BaseInput/utils';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport { useFormattedInput } from './useFormattedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { IconComponent } from '~components/Icons';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n ContainerElementType,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { hintMarginTop } from '~components/Form/formTokens';\nimport { Divider } from '~components/Divider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { DropdownOverlay } from '~components/Dropdown';\nimport type { FormInputOnEvent } from '~components/Form/FormTypes';\nimport { isIconComponent } from '~utils/isIconComponent';\n\n// Users should use PasswordInput for input type password\ntype Type = Exclude<BaseInputProps['type'], 'password'>;\n\ntype TextInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'necessityIndicator'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'prefix'\n | 'suffix'\n | 'maxCharacters'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'autoCompleteSuggestionType'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | 'leadingIcon'\n | 'trailingButton'\n | 'trailingIcon'\n | 'textAlign'\n | 'popupId'\n | 'isPopupExpanded'\n | 'hasPopup'\n | 'componentName'\n | 'onKeyDown'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n\n /**\n * Icon that will be rendered at the beginning of the input field\n * @deprecated Use `leading` instead. This prop will be removed in the next major version.\n */\n icon?: IconComponent;\n /**\n * Type of Input Field to be rendered. Use `PasswordInput` for type `password`\n *\n *\n * **Note on number type**\n *\n * `type=\"number\"` internally uses `inputMode=\"numeric\"` instead of HTML's `type=\"number\"` which also allows text characters.\n * If you have a usecase where you only want to support number input, you can handle it on validations end.\n *\n * Check out [Why the GOV.UK Design System team changed the input type for numbers](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/) for reasoning\n *\n * @default text\n */\n type?: Type;\n /**\n *\n * Icon or React Element to be rendered at the end of the input field\n */\n trailing?: React.ReactElement | IconComponent;\n /**\n * Icon or React Element to be rendered at the beginning of the input field\n */\n leading?: React.ReactElement | IconComponent;\n /**\n * Format pattern where # represents input characters and other symbols act as delimiters\n * When provided, input will be automatically formatted and onChange will include rawValue\n *\n * **Note:**\n * 1. Format pattern should only contain # symbols and special characters as delimiters.\n * Alphanumeric characters (letters and numbers) are not allowed in the format pattern.\n * 2. When format is provided, user input is restricted to alphanumeric characters only.\n * Special characters and symbols will be filtered out automatically from user input.\n *\n * @example \"#### #### #### ####\" for card numbers\n * @example \"##/##\" for expiry dates\n * @example \"(###) ###-####\" for phone numbers\n */\n format?:\n | '#### #### #### ####'\n | '##/##'\n | '##/##/####'\n | '(###) ###-####'\n | '###-##-####'\n | '##:##'\n | '##:##:##'\n | '#### #### ####'\n | '###.###.###.###'\n | '## ## ####'\n | '##-###-##'\n // eslint-disable-next-line @typescript-eslint/ban-types\n | (string & {});\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype TextInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype TextInputProps = (TextInputPropsWithA11yLabel | TextInputPropsWithLabel) &\n TextInputCommonProps;\n\n// need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _TextInput: React.ForwardRefRenderFunction<BladeElementRef, TextInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n type = 'text',\n defaultValue,\n name,\n value,\n maxCharacters,\n format,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n necessityIndicator,\n validationState,\n errorText,\n helpText,\n successText,\n isRequired,\n icon,\n prefix,\n showClearButton,\n onClearButtonClick,\n isLoading,\n suffix,\n autoFocus,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n testID,\n size = 'medium',\n leadingIcon,\n trailingIcon,\n isTaggedInput,\n tags,\n onTagChange,\n trailing,\n leading,\n labelSuffix,\n labelTrailing,\n onKeyDown,\n ...rest\n },\n ref,\n): ReactElement => {\n const textInputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, textInputRef);\n const [shouldShowClearButton, setShouldShowClearButton] = useState(false);\n const [isInputFocussed, setIsInputFocussed] = useState(autoFocus ?? false);\n\n if (__DEV__) {\n if (format) {\n const hasAlphanumeric = /[a-zA-Z0-9]/.test(format);\n if (hasAlphanumeric) {\n throw new Error(\n `[Blade: TextInput] Invalid format \"${format}\". Only # and special characters allowed, no letters/numbers.`,\n );\n }\n }\n }\n\n const formattingResult = useFormattedInput({\n format,\n onChange,\n value,\n defaultValue,\n });\n\n const inputValue = format ? formattingResult.formattedValue : value;\n const effectiveMaxCharacters = format ? formattingResult.maxLength : maxCharacters;\n\n const handleOnChange: FormInputOnEvent = React.useCallback(\n ({ name, value: inputValue }) => {\n if (format) {\n formattingResult.handleChange({ name, value: inputValue });\n } else {\n onChange?.({ name, value: inputValue });\n }\n },\n [format, formattingResult.handleChange, onChange],\n );\n\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n isTaggedInput,\n tags,\n onTagChange,\n isDisabled,\n onChange: handleOnChange,\n name,\n value: inputValue,\n inputRef: textInputRef,\n });\n const [isTrailingDropDownOpen, setIsTrailingDropDownOpen] = React.useState(false);\n const [isLeadingDropDownOpen, setIsLeadingDropDownOpen] = React.useState(false);\n const textInputWrapperRef = useRef<ContainerElementType | null>(null);\n\n useEffect(() => {\n if (isTrailingDropDownOpen && isLeadingDropDownOpen) {\n setIsLeadingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isTrailingDropDownOpen]);\n\n useEffect(() => {\n if (isLeadingDropDownOpen && isTrailingDropDownOpen) {\n setIsTrailingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLeadingDropDownOpen]);\n\n const leadingDropDown =\n leading && getComponentId(leading as React.ReactElement) === 'Dropdown' ? leading : null;\n\n const trailingDropdown =\n trailing && getComponentId(trailing as React.ReactElement) === 'Dropdown' ? trailing : null;\n // we need to look into name of component and check if it 's and icon or a dropdown\n const _leadingIcon: IconComponent | undefined = isIconComponent(leading)\n ? (leading as IconComponent)\n : undefined;\n\n const _trailingIcon: IconComponent | undefined = isIconComponent(trailing)\n ? (trailing as IconComponent)\n : undefined;\n const hasLeadingInteractionElement = !_leadingIcon && !leadingDropDown && leading;\n\n const hasTrailingInteractionElement = !_trailingIcon && !trailingDropdown && trailing;\n\n const renderDropdown = (\n dropdown: React.ReactElement,\n isOpen: boolean,\n setIsOpen: (isOpen: boolean) => void,\n defaultPlacement: 'bottom-start' | 'bottom-end',\n ): React.ReactElement | null => {\n if (!dropdown) {\n return null;\n }\n return React.cloneElement(dropdown, {\n selectionType: 'single',\n isOpen,\n onOpenChange: (isOpen: boolean) => {\n setIsOpen(isOpen);\n },\n children: React.Children.map(dropdown.props.children, (child) => {\n if (child.type === DropdownOverlay) {\n return React.cloneElement(child, {\n referenceRef: textInputWrapperRef,\n _isNestedDropdown: true,\n defaultPlacement,\n });\n }\n return child;\n }),\n });\n };\n\n const renderLeadingDropDown = renderDropdown(\n leadingDropDown as React.ReactElement,\n isLeadingDropDownOpen,\n setIsLeadingDropDownOpen,\n 'bottom-start',\n );\n const renderTrailingDropDown = renderDropdown(\n trailingDropdown as React.ReactElement,\n isTrailingDropDownOpen,\n setIsTrailingDropDownOpen,\n 'bottom-end',\n );\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (defaultValue ?? inputValue)));\n }, [showClearButton, defaultValue, inputValue]);\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(inputValue) && textInputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(textInputRef.current)) {\n textInputRef.current.clear();\n textInputRef.current.focus();\n } else if (textInputRef.current instanceof HTMLInputElement) {\n textInputRef.current.value = '';\n textInputRef.current.focus();\n }\n }\n handleTagsClear();\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n textInputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n const hasTrailingDropDown = Boolean(trailingDropdown);\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton && hasTrailingDropDown) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" />\n </BaseBox>\n );\n }\n\n if (showClearButton && hasTrailingInteractionElement) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" /> {trailing as React.ReactElement}\n </BaseBox>\n );\n }\n\n if (shouldShowClearButton) {\n return renderClearButton();\n }\n\n if (hasTrailingInteractionElement) {\n return trailing as React.ReactElement;\n }\n return null;\n };\n return (\n <BaseInput\n id=\"textinput\"\n componentName={MetaConstants.TextInput}\n ref={mergedRef}\n setInputWrapperRef={(wrapperNode) => {\n textInputWrapperRef.current = wrapperNode;\n }}\n label={label as string}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n // CONTROLLED/UNCONTROLLED INPUT LOGIC:\n // For inputs WITHOUT format:\n // - Use standard React controlled/uncontrolled logic\n // - Controlled: user provides `value` prop → use `value` prop\n // - Uncontrolled: user provides `defaultValue` prop → use `defaultValue` prop\n //\n // For inputs WITH format:\n // - Formatting requires controlled mode to re-render and show formatted values\n // - Case 1: Only `value` provided → defaultValue: undefined, value: formattedValue (normal controlled)\n // - Case 2: Only `defaultValue` provided → defaultValue: undefined, value: formattedValue (convert to controlled)\n // - Case 3: Both `value` and `defaultValue` provided → defaultValue: defaultValue, value: formattedValue (let BaseInput detect conflict and throw error)\n //\n defaultValue={\n format\n ? value !== undefined && defaultValue !== undefined\n ? defaultValue\n : undefined\n : defaultValue\n }\n value={format ? inputValue : value}\n name={name}\n maxCharacters={effectiveMaxCharacters}\n isDropdownTrigger={isTaggedInput}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n showAllTags={isInputFocussed}\n maxTagRows=\"single\"\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n leadingDropDown={renderLeadingDropDown}\n trailingDropDown={renderTrailingDropDown}\n leadingInteractionElement={\n hasLeadingInteractionElement ? (leading as React.ReactElement) : null\n }\n onChange={({ name, value }: { name?: string; value?: string }) => {\n if (showClearButton && value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n handleTaggedInputChange({ name, value });\n handleOnChange({ name, value });\n }}\n onClick={onClick}\n onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n onKeyDown?.(e);\n if (format) {\n formattingResult.handleKeyDown(e.event);\n }\n }}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n leadingIcon={_leadingIcon ?? leadingIcon ?? icon}\n prefix={prefix}\n trailingInteractionElement={renderInteractionElement()}\n trailingIcon={_trailingIcon ?? trailingIcon}\n suffix={suffix}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n trailingFooterSlot={(value) => {\n return format ? null : effectiveMaxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter\n currentCount={value?.length ?? 0}\n maxCount={effectiveMaxCharacters}\n size={size}\n />\n </BaseBox>\n ) : null;\n }}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextInput = assignWithoutSideEffects(React.forwardRef(_TextInput), {\n displayName: 'TextInput',\n});\n\nexport type { TextInputProps };\nexport { TextInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextInput","_ref","ref","_ref4","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","_ref$type","type","defaultValue","name","value","maxCharacters","format","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","necessityIndicator","validationState","errorText","helpText","successText","isRequired","icon","prefix","showClearButton","onClearButtonClick","isLoading","suffix","autoFocus","keyboardReturnKeyType","autoCompleteSuggestionType","autoCapitalize","testID","_ref$size","size","leadingIcon","trailingIcon","isTaggedInput","tags","onTagChange","trailing","leading","labelSuffix","labelTrailing","onKeyDown","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isInputFocussed","setIsInputFocussed","__DEV__","hasAlphanumeric","test","Error","formattingResult","useFormattedInput","inputValue","formattedValue","effectiveMaxCharacters","maxLength","handleOnChange","useCallback","_ref2","handleChange","_useTaggedInput","useTaggedInput","inputRef","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState","_React$useState2","isTrailingDropDownOpen","setIsTrailingDropDownOpen","_React$useState3","_React$useState4","isLeadingDropDownOpen","setIsLeadingDropDownOpen","textInputWrapperRef","useEffect","leadingDropDown","getComponentId","trailingDropdown","_leadingIcon","isIconComponent","undefined","_trailingIcon","hasLeadingInteractionElement","hasTrailingInteractionElement","renderDropdown","dropdown","isOpen","setIsOpen","defaultPlacement","cloneElement","selectionType","onOpenChange","children","Children","map","props","child","DropdownOverlay","referenceRef","_isNestedDropdown","renderLeadingDropDown","renderTrailingDropDown","Boolean","renderClearButton","_jsx","IconButton","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","hasTrailingDropDown","renderInteractionElement","Spinner","color","_jsxs","BaseBox","display","gap","Divider","orientation","BaseInput","Object","assign","id","componentName","MetaConstants","TextInput","setInputWrapperRef","wrapperNode","hideLabelText","isDropdownTrigger","showAllTags","maxTagRows","trailingDropDown","leadingInteractionElement","_ref3","length","e","handleKeyDown","event","trailingInteractionElement","trailingFooterSlot","_value$length","marginTop","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","getKeyboardAndAutocompleteProps","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextInput.js","sources":["../../../../../../src/components/Input/TextInput/TextInput.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getKeyboardAndAutocompleteProps } from '../BaseInput/utils';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport { useFormattedInput } from './useFormattedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { IconComponent } from '~components/Icons';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n ContainerElementType,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { hintMarginTop } from '~components/Form/formTokens';\nimport { Divider } from '~components/Divider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { DropdownOverlay } from '~components/Dropdown';\nimport type { FormInputOnEvent } from '~components/Form/FormTypes';\nimport { isIconComponent } from '~utils/isIconComponent';\n\n// Users should use PasswordInput for input type password\ntype Type = Exclude<BaseInputProps['type'], 'password'>;\n\ntype TextInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'necessityIndicator'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'prefix'\n | 'suffix'\n | 'maxCharacters'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'autoCompleteSuggestionType'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | 'leadingIcon'\n | 'trailingButton'\n | 'trailingIcon'\n | 'textAlign'\n | 'popupId'\n | 'isPopupExpanded'\n | 'hasPopup'\n | 'componentName'\n | 'onKeyDown'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n\n /**\n * Icon that will be rendered at the beginning of the input field\n * @deprecated Use `leading` instead. This prop will be removed in the next major version.\n */\n icon?: IconComponent;\n /**\n * Type of Input Field to be rendered. Use `PasswordInput` for type `password`\n *\n *\n * **Note on number type**\n *\n * `type=\"number\"` internally uses `inputMode=\"numeric\"` instead of HTML's `type=\"number\"` which also allows text characters.\n * If you have a usecase where you only want to support number input, you can handle it on validations end.\n *\n * Check out [Why the GOV.UK Design System team changed the input type for numbers](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/) for reasoning\n *\n * @default text\n */\n type?: Type;\n /**\n *\n * Icon or React Element to be rendered at the end of the input field\n */\n trailing?: React.ReactElement | IconComponent;\n /**\n * Icon or React Element to be rendered at the beginning of the input field\n */\n leading?: React.ReactElement | IconComponent;\n /**\n * Format pattern where # represents input characters and other symbols act as delimiters\n * When provided, input will be automatically formatted and onChange will include rawValue\n *\n * **Note:**\n * 1. Format pattern should only contain # symbols and special characters as delimiters.\n * Alphanumeric characters (letters and numbers) are not allowed in the format pattern.\n * 2. When format is provided, user input is restricted to alphanumeric characters only.\n * Special characters and symbols will be filtered out automatically from user input.\n *\n * @example \"#### #### #### ####\" for card numbers\n * @example \"##/##\" for expiry dates\n * @example \"(###) ###-####\" for phone numbers\n */\n format?:\n | '#### #### #### ####'\n | '##/##'\n | '##/##/####'\n | '(###) ###-####'\n | '###-##-####'\n | '##:##'\n | '##:##:##'\n | '#### #### ####'\n | '###.###.###.###'\n | '## ## ####'\n | '##-###-##'\n // eslint-disable-next-line @typescript-eslint/ban-types\n | (string & {});\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype TextInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype TextInputProps = (TextInputPropsWithA11yLabel | TextInputPropsWithLabel) &\n TextInputCommonProps;\n\n// need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _TextInput: React.ForwardRefRenderFunction<BladeElementRef, TextInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n type = 'text',\n defaultValue,\n name,\n value,\n maxCharacters,\n format,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n necessityIndicator,\n validationState,\n errorText,\n helpText,\n successText,\n isRequired,\n icon,\n prefix,\n showClearButton,\n onClearButtonClick,\n isLoading,\n suffix,\n autoFocus,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n testID,\n size = 'medium',\n leadingIcon,\n trailingIcon,\n isTaggedInput,\n tags,\n onTagChange,\n trailing,\n leading,\n labelSuffix,\n labelTrailing,\n onKeyDown,\n ...rest\n },\n ref,\n): ReactElement => {\n const textInputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, textInputRef);\n const [shouldShowClearButton, setShouldShowClearButton] = useState(false);\n const [isInputFocussed, setIsInputFocussed] = useState(autoFocus ?? false);\n\n if (__DEV__) {\n if (format) {\n const hasAlphanumeric = /[a-zA-Z0-9]/.test(format);\n if (hasAlphanumeric) {\n throw new Error(\n `[Blade: TextInput] Invalid format \"${format}\". Only # and special characters allowed, no letters/numbers.`,\n );\n }\n }\n }\n\n const formattingResult = useFormattedInput({\n format,\n onChange,\n value,\n defaultValue,\n });\n\n const inputValue = format ? formattingResult.formattedValue : value;\n const effectiveMaxCharacters = format ? formattingResult.maxLength : maxCharacters;\n\n const handleOnChange: FormInputOnEvent = React.useCallback(\n ({ name, value: inputValue }) => {\n if (format) {\n formattingResult.handleChange({ name, value: inputValue });\n } else {\n onChange?.({ name, value: inputValue });\n }\n },\n [format, formattingResult.handleChange, onChange],\n );\n\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n isTaggedInput,\n tags,\n onTagChange,\n isDisabled,\n onChange: handleOnChange,\n name,\n value: inputValue,\n inputRef: textInputRef,\n });\n const [isTrailingDropDownOpen, setIsTrailingDropDownOpen] = React.useState(false);\n const [isLeadingDropDownOpen, setIsLeadingDropDownOpen] = React.useState(false);\n const textInputWrapperRef = useRef<ContainerElementType | null>(null);\n\n useEffect(() => {\n if (isTrailingDropDownOpen && isLeadingDropDownOpen) {\n setIsLeadingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isTrailingDropDownOpen]);\n\n useEffect(() => {\n if (isLeadingDropDownOpen && isTrailingDropDownOpen) {\n setIsTrailingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLeadingDropDownOpen]);\n\n const leadingDropDown =\n leading && getComponentId(leading as React.ReactElement) === 'Dropdown' ? leading : null;\n\n const trailingDropdown =\n trailing && getComponentId(trailing as React.ReactElement) === 'Dropdown' ? trailing : null;\n // we need to look into name of component and check if it 's and icon or a dropdown\n const _leadingIcon: IconComponent | undefined = isIconComponent(leading)\n ? (leading as IconComponent)\n : undefined;\n\n const _trailingIcon: IconComponent | undefined = isIconComponent(trailing)\n ? (trailing as IconComponent)\n : undefined;\n const hasLeadingInteractionElement = !_leadingIcon && !leadingDropDown && leading;\n\n const hasTrailingInteractionElement = !_trailingIcon && !trailingDropdown && trailing;\n\n const renderDropdown = (\n dropdown: React.ReactElement,\n isOpen: boolean,\n setIsOpen: (isOpen: boolean) => void,\n defaultPlacement: 'bottom-start' | 'bottom-end',\n ): React.ReactElement | null => {\n if (!dropdown) {\n return null;\n }\n return React.cloneElement(dropdown, {\n selectionType: 'single',\n isOpen,\n onOpenChange: (isOpen: boolean) => {\n setIsOpen(isOpen);\n },\n children: React.Children.map(dropdown.props.children, (child) => {\n if (child.type === DropdownOverlay) {\n return React.cloneElement(child, {\n referenceRef: textInputWrapperRef,\n _isNestedDropdown: true,\n defaultPlacement,\n });\n }\n return child;\n }),\n });\n };\n\n const renderLeadingDropDown = renderDropdown(\n leadingDropDown as React.ReactElement,\n isLeadingDropDownOpen,\n setIsLeadingDropDownOpen,\n 'bottom-start',\n );\n const renderTrailingDropDown = renderDropdown(\n trailingDropdown as React.ReactElement,\n isTrailingDropDownOpen,\n setIsTrailingDropDownOpen,\n 'bottom-end',\n );\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (defaultValue ?? inputValue)));\n }, [showClearButton, defaultValue, inputValue]);\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(inputValue) && textInputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(textInputRef.current)) {\n textInputRef.current.clear();\n textInputRef.current.focus();\n } else if (textInputRef.current instanceof HTMLInputElement) {\n textInputRef.current.value = '';\n textInputRef.current.focus();\n }\n }\n handleTagsClear();\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n textInputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n const hasTrailingDropDown = Boolean(trailingDropdown);\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton && hasTrailingDropDown) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" />\n </BaseBox>\n );\n }\n\n if (showClearButton && hasTrailingInteractionElement) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" /> {trailing as React.ReactElement}\n </BaseBox>\n );\n }\n\n if (shouldShowClearButton) {\n return renderClearButton();\n }\n\n if (hasTrailingInteractionElement) {\n return trailing as React.ReactElement;\n }\n return null;\n };\n return (\n <BaseInput\n id=\"textinput\"\n componentName={MetaConstants.TextInput}\n ref={mergedRef}\n setInputWrapperRef={(wrapperNode) => {\n textInputWrapperRef.current = wrapperNode;\n }}\n label={label as string}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n // CONTROLLED/UNCONTROLLED INPUT LOGIC:\n // For inputs WITHOUT format:\n // - Use standard React controlled/uncontrolled logic\n // - Controlled: user provides `value` prop → use `value` prop\n // - Uncontrolled: user provides `defaultValue` prop → use `defaultValue` prop\n //\n // For inputs WITH format:\n // - Formatting requires controlled mode to re-render and show formatted values\n // - Case 1: Only `value` provided → defaultValue: undefined, value: formattedValue (normal controlled)\n // - Case 2: Only `defaultValue` provided → defaultValue: undefined, value: formattedValue (convert to controlled)\n // - Case 3: Both `value` and `defaultValue` provided → defaultValue: defaultValue, value: formattedValue (let BaseInput detect conflict and throw error)\n //\n defaultValue={\n format\n ? value !== undefined && defaultValue !== undefined\n ? defaultValue\n : undefined\n : defaultValue\n }\n value={format ? inputValue : value}\n name={name}\n maxCharacters={effectiveMaxCharacters}\n isDropdownTrigger={isTaggedInput}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n showAllTags={isInputFocussed}\n maxTagRows=\"single\"\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n leadingDropDown={renderLeadingDropDown}\n trailingDropDown={renderTrailingDropDown}\n leadingInteractionElement={\n hasLeadingInteractionElement ? (leading as React.ReactElement) : null\n }\n onChange={({ name, value }: { name?: string; value?: string }) => {\n if (showClearButton && value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n handleTaggedInputChange({ name, value });\n handleOnChange({ name, value });\n }}\n onClick={onClick}\n onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n onKeyDown?.(e);\n if (format) {\n formattingResult.handleKeyDown(e.event);\n }\n }}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n leadingIcon={_leadingIcon ?? leadingIcon ?? icon}\n prefix={prefix}\n trailingInteractionElement={renderInteractionElement()}\n trailingIcon={_trailingIcon ?? trailingIcon}\n suffix={suffix}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n trailingFooterSlot={(value) => {\n return format ? null : effectiveMaxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter\n currentCount={value?.length ?? 0}\n maxCount={effectiveMaxCharacters}\n size={size}\n />\n </BaseBox>\n ) : null;\n }}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextInput = assignWithoutSideEffects(React.forwardRef(_TextInput), {\n displayName: 'TextInput',\n});\n\nexport type { TextInputProps };\nexport { TextInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextInput","_ref","ref","_ref4","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","_ref$type","type","defaultValue","name","value","maxCharacters","format","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","necessityIndicator","validationState","errorText","helpText","successText","isRequired","icon","prefix","showClearButton","onClearButtonClick","isLoading","suffix","autoFocus","keyboardReturnKeyType","autoCompleteSuggestionType","autoCapitalize","testID","_ref$size","size","leadingIcon","trailingIcon","isTaggedInput","tags","onTagChange","trailing","leading","labelSuffix","labelTrailing","onKeyDown","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isInputFocussed","setIsInputFocussed","__DEV__","hasAlphanumeric","test","Error","formattingResult","useFormattedInput","inputValue","formattedValue","effectiveMaxCharacters","maxLength","handleOnChange","useCallback","_ref2","handleChange","_useTaggedInput","useTaggedInput","inputRef","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState","_React$useState2","isTrailingDropDownOpen","setIsTrailingDropDownOpen","_React$useState3","_React$useState4","isLeadingDropDownOpen","setIsLeadingDropDownOpen","textInputWrapperRef","useEffect","leadingDropDown","getComponentId","trailingDropdown","_leadingIcon","isIconComponent","undefined","_trailingIcon","hasLeadingInteractionElement","hasTrailingInteractionElement","renderDropdown","dropdown","isOpen","setIsOpen","defaultPlacement","cloneElement","selectionType","onOpenChange","children","Children","map","props","child","DropdownOverlay","referenceRef","_isNestedDropdown","renderLeadingDropDown","renderTrailingDropDown","Boolean","renderClearButton","_jsx","IconButton","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","hasTrailingDropDown","renderInteractionElement","Spinner","color","_jsxs","BaseBox","display","gap","Divider","orientation","BaseInput","Object","assign","id","componentName","MetaConstants","TextInput","setInputWrapperRef","wrapperNode","hideLabelText","isDropdownTrigger","showAllTags","maxTagRows","trailingDropDown","leadingInteractionElement","_ref3","length","e","handleKeyDown","event","trailingInteractionElement","trailingFooterSlot","_value$length","marginTop","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","getKeyboardAndAutocompleteProps","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLink.js","sources":["../../../../../../src/components/Link/BaseLink/BaseLink.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-ts-expect-error */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport type { SyntheticEvent } from 'react';\nimport React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport type { GestureResponderEvent } from 'react-native';\nimport StyledBaseLink from './StyledBaseLink';\nimport getIn from '~utils/lodashButBetter/get';\nimport useInteraction from '~utils/useInteraction';\nimport type { IconColors, IconComponent, IconProps } from '~components/Icons';\nimport type { Theme } from '~components/BladeProvider';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { BaseText } from '~components/Typography/BaseText';\nimport type {\n DotNotationSpacingStringToken,\n StringChildrenType,\n TestID,\n BladeElementRef,\n} from '~utils/types';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { Platform } from '~utils';\nimport { isReactNative } from '~utils';\nimport type { DurationString, EasingString, FontSize, Typography } from '~tokens/global';\nimport type {\n BaseTextProps,\n BaseTextSizes,\n TextColors,\n} from '~components/Typography/BaseText/types';\nimport { getStringFromReactText } from '~src/utils/getStringChildren';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { AccessibilityProps } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport type { BladeCommonEvents } from '~components/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport type { ActionStates } from '~utils/useInteraction';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype BaseLinkCommonProps = {\n color?: 'primary' | 'white' | 'positive' | 'negative' | 'notice' | 'information' | 'neutral';\n icon?: IconComponent;\n iconPosition?: 'left' | 'right';\n onClick?: (event: SyntheticEvent) => void;\n onBlur?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.FocusEvent<HTMLButtonElement>) => void;\n }>;\n onMouseLeave?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.MouseEvent<HTMLButtonElement>) => void;\n }>;\n onKeyDown?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n }>;\n accessibilityProps?: Partial<AccessibilityProps>;\n\n /**\n * Sets the size of the link\n *\n * @default medium\n */\n size?: Extract<BaseTextSizes, 'xsmall' | 'small' | 'medium' | 'large'>;\n /**\n * Defines how far your touch can start away from the link. This is a react-native only prop and has no effect on web.\n */\n hitSlop?:\n | {\n top?: number;\n right?: number;\n bottom?: number;\n left?: number;\n }\n | number;\n /**\n * The title of the link which is displayed as a tooltip. This is a web only prop and has no effect on react-native.\n */\n htmlTitle?: string;\n opacity?: number;\n} & TestID &\n StyledPropsBlade &\n Omit<BladeCommonEvents, 'onBlur' | 'onMouseLeave'>;\n\n/*\n Mandatory children prop when icon is not provided\n*/\ntype BaseLinkWithoutIconProps = BaseLinkCommonProps & {\n icon?: undefined;\n children: StringChildrenType;\n};\n\n/*\n Optional children prop when icon is provided\n*/\ntype BaseLinkWithIconProps = BaseLinkCommonProps & {\n icon: IconComponent;\n children?: StringChildrenType;\n};\n\n/*\n BaseLink Props with or without an icon\n*/\ntype BaseLinkPropsWithOrWithoutIcon = BaseLinkWithIconProps | BaseLinkWithoutIconProps;\n\n/*\n BaseLink Props when variant is anchor\n*/\ntype BaseLinkAnchorVariantProps = BaseLinkPropsWithOrWithoutIcon & {\n variant?: 'anchor';\n href?: string;\n target?: string;\n rel?: string;\n isDisabled?: undefined;\n};\n\n/*\n BaseLink Props when variant is button\n*/\ntype BaseLinkButtonVariantProps = BaseLinkPropsWithOrWithoutIcon & {\n variant?: 'button';\n isDisabled?: boolean;\n href?: undefined;\n target?: undefined;\n rel?: undefined;\n};\n\n/*\n BaseLink Props when variant is anchor or button\n*/\nexport type BaseLinkProps = BaseLinkAnchorVariantProps | BaseLinkButtonVariantProps;\n\ntype BaseLinkStyleProps = {\n as: 'a' | 'button';\n textDecorationLine: 'underline' | 'none';\n iconColor: IconProps['color'];\n iconSize: IconProps['size'];\n iconPadding: DotNotationSpacingStringToken;\n textColor: BaseTextProps['color'];\n focusRingColor: string;\n motionDuration: DurationString;\n motionEasing: EasingString;\n cursor: CSSObject['cursor'];\n disabled: boolean;\n role: 'button' | 'link';\n defaultRel: BaseLinkProps['rel'];\n type?: 'button';\n fontSize: BaseTextProps['fontSize'];\n lineHeight: BaseTextProps['lineHeight'];\n};\n\ntype LinkActionStates = ActionStates;\nconst getColorToken = ({\n variant,\n color,\n currentInteraction,\n isDisabled,\n element,\n}: {\n variant: BaseLinkProps['variant'];\n color: BaseLinkProps['color'];\n element: 'icon' | 'text';\n currentInteraction: LinkActionStates;\n isDisabled: boolean;\n}): IconColors | TextColors => {\n let state = currentInteraction;\n const map = {\n default: 'normal',\n hover: 'subtle',\n focus: 'normal',\n disabled: 'disabled',\n } as const;\n\n if (isDisabled && variant == 'button') {\n state = 'disabled';\n }\n\n if (color && color !== 'primary') {\n if (color !== 'white') {\n return `interactive.${element}.${color}.${map[state]}`;\n }\n return `interactive.${element}.staticWhite.${map[state]}`;\n }\n return `interactive.${element}.primary.${map[state]}`;\n};\n\nconst getProps = ({\n theme,\n variant,\n currentInteraction,\n children,\n isDisabled,\n color,\n target,\n size,\n}: {\n theme: Theme;\n variant: NonNullable<BaseLinkProps['variant']>;\n currentInteraction: LinkActionStates;\n children?: string;\n isDisabled: boolean;\n color: BaseLinkProps['color'];\n target: BaseLinkProps['target'];\n size: NonNullable<BaseLinkProps['size']>;\n}): BaseLinkStyleProps => {\n const isButton = variant === 'button';\n const textSizes: {\n fontSize: Record<NonNullable<BaseLinkProps['size']>, keyof FontSize>;\n lineHeight: Record<NonNullable<BaseLinkProps['size']>, keyof Typography['lineHeights']>;\n } = {\n fontSize: {\n xsmall: 25,\n small: 75,\n medium: 100,\n large: 200,\n },\n lineHeight: {\n xsmall: 25,\n small: 75,\n medium: 100,\n large: 200,\n },\n };\n\n const props: BaseLinkStyleProps = {\n as: isButton ? 'button' : 'a',\n textDecorationLine: !isButton && currentInteraction !== 'default' ? 'underline' : 'none',\n iconColor: getColorToken({\n variant,\n color,\n element: 'icon',\n currentInteraction,\n isDisabled,\n }) as IconProps['color'],\n fontSize: textSizes.fontSize[size],\n lineHeight: textSizes.lineHeight[size],\n iconSize: size,\n iconPadding: children?.trim() ? 'spacing.2' : 'spacing.0',\n textColor: getColorToken({\n variant,\n color,\n element: 'text',\n currentInteraction,\n isDisabled,\n }) as BaseTextProps['color'],\n focusRingColor: getIn(theme.colors, 'interactive.background.primary.faded'),\n motionDuration: 'duration.2xquick',\n motionEasing: 'easing.standard',\n cursor: isButton && isDisabled ? 'not-allowed' : 'pointer',\n disabled: isButton && isDisabled,\n role: isButton ? 'button' : 'link',\n defaultRel: target && target === '_blank' ? 'noreferrer noopener' : undefined,\n type: isButton ? 'button' : undefined,\n };\n\n return props;\n};\n\nconst _BaseLink: React.ForwardRefRenderFunction<BladeElementRef, BaseLinkProps> = (\n {\n children,\n icon: Icon,\n iconPosition = 'left',\n isDisabled = false,\n onClick,\n onKeyDown,\n variant = 'anchor',\n href,\n target,\n rel,\n color = 'primary',\n opacity,\n accessibilityProps,\n // @ts-expect-error avoiding exposing to public\n className,\n // @ts-expect-error avoiding exposing to public\n style,\n size = 'medium',\n testID,\n hitSlop,\n htmlTitle,\n onBlur,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n onMouseDown,\n onMouseUp,\n ...rest\n },\n ref,\n) => {\n const childrenString = getStringFromReactText(children);\n const { currentInteraction, setCurrentInteraction, ...syntheticEvents } = useInteraction();\n const { theme } = useTheme();\n if (__DEV__) {\n if (!Icon && !childrenString?.trim()) {\n throwBladeError({\n message: `At least one of icon or text is required to render a link.`,\n moduleName: 'BaseLink',\n });\n }\n }\n const {\n as,\n textDecorationLine,\n iconColor,\n iconPadding,\n iconSize,\n fontSize,\n textColor,\n focusRingColor,\n motionDuration,\n motionEasing,\n cursor,\n disabled,\n role,\n defaultRel,\n type,\n lineHeight,\n } = getProps({\n theme,\n variant,\n currentInteraction,\n children: childrenString,\n isDisabled,\n color,\n target,\n size,\n });\n\n const handleOnClick = (event: SyntheticEvent): void => {\n if (onClick) {\n onClick(event);\n }\n };\n\n const asProp = isReactNative() ? undefined : 'span';\n return (\n <StyledBaseLink\n ref={ref as never}\n {...metaAttribute({ name: MetaConstants.Link, testID })}\n accessibilityProps={{\n ...makeAccessible({\n role,\n disabled,\n ...accessibilityProps,\n }),\n }}\n variant={variant}\n as={as}\n href={href}\n target={target}\n rel={rel ?? defaultRel}\n onClick={handleOnClick}\n {...syntheticEvents}\n onBlur={(event: any) => {\n onBlur?.(event);\n syntheticEvents.onBlur();\n }}\n onFocus={(event: any) => {\n onFocus?.(event);\n syntheticEvents.onFocus();\n }}\n onMouseLeave={(event: any) => {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n syntheticEvents.onMouseLeave();\n }}\n onMouseMove={onMouseMove}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n onMouseUp={onMouseUp}\n disabled={disabled}\n type={type}\n cursor={cursor}\n focusRingColor={focusRingColor}\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n setCurrentInteraction={setCurrentInteraction}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n // @ts-ignore Because we avoided exposing className to public\n className={className}\n style={style}\n hitSlop={hitSlop}\n title={htmlTitle}\n >\n <BaseBox\n as={asProp}\n display=\"flex\"\n flexDirection=\"row\"\n className=\"content-container\"\n alignItems=\"center\"\n opacity={opacity}\n >\n {Icon && iconPosition == 'left' ? (\n <BaseBox as={asProp} paddingRight={iconPadding} display=\"flex\" alignItems=\"center\">\n <Icon color={iconColor} size={iconSize} />\n </BaseBox>\n ) : null}\n <BaseText\n as={asProp}\n textDecorationLine={textDecorationLine}\n color={textColor}\n fontSize={fontSize}\n lineHeight={lineHeight}\n textAlign=\"center\"\n fontWeight=\"medium\"\n >\n {children}\n </BaseText>\n {Icon && iconPosition == 'right' ? (\n <BaseBox as={asProp} paddingLeft={iconPadding} display=\"flex\" alignItems=\"center\">\n <Icon color={iconColor} size={iconSize} />\n </BaseBox>\n ) : null}\n </BaseBox>\n </StyledBaseLink>\n );\n};\n\nconst BaseLink = assignWithoutSideEffects(React.forwardRef(_BaseLink), {\n displayName: 'BaseLink',\n componentId: 'BaseLink',\n});\n\nexport default BaseLink;\n"],"names":["getColorToken","_ref","variant","color","currentInteraction","isDisabled","element","state","map","default","hover","focus","disabled","getProps","_ref2","theme","children","target","size","isButton","textSizes","fontSize","xsmall","small","medium","large","lineHeight","props","as","textDecorationLine","iconColor","iconSize","iconPadding","trim","textColor","focusRingColor","getIn","colors","motionDuration","motionEasing","cursor","role","defaultRel","undefined","type","_BaseLink","_ref3","ref","Icon","icon","_ref3$iconPosition","iconPosition","_ref3$isDisabled","onClick","onKeyDown","_ref3$variant","href","rel","_ref3$color","opacity","accessibilityProps","className","style","_ref3$size","testID","hitSlop","htmlTitle","onBlur","onFocus","onMouseLeave","onMouseMove","onPointerDown","onPointerEnter","onTouchStart","onTouchEnd","onMouseDown","onMouseUp","rest","_objectWithoutProperties","_excluded","childrenString","getStringFromReactText","_useInteraction","useInteraction","setCurrentInteraction","syntheticEvents","_excluded2","_useTheme","useTheme","__DEV__","throwBladeError","message","moduleName","_getProps","handleOnClick","event","asProp","isReactNative","_jsx","StyledBaseLink","Object","assign","metaAttribute","name","MetaConstants","Link","makeAccessible","getStyledProps","makeAnalyticsAttribute","title","_jsxs","BaseBox","display","flexDirection","alignItems","paddingRight","BaseText","textAlign","fontWeight","paddingLeft","BaseLink","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseLink.js","sources":["../../../../../../src/components/Link/BaseLink/BaseLink.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-ts-expect-error */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport type { SyntheticEvent } from 'react';\nimport React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport type { GestureResponderEvent } from 'react-native';\nimport StyledBaseLink from './StyledBaseLink';\nimport getIn from '~utils/lodashButBetter/get';\nimport useInteraction from '~utils/useInteraction';\nimport type { IconColors, IconComponent, IconProps } from '~components/Icons';\nimport type { Theme } from '~components/BladeProvider';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { BaseText } from '~components/Typography/BaseText';\nimport type {\n DotNotationSpacingStringToken,\n StringChildrenType,\n TestID,\n BladeElementRef,\n} from '~utils/types';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { Platform } from '~utils';\nimport { isReactNative } from '~utils';\nimport type { DurationString, EasingString, FontSize, Typography } from '~tokens/global';\nimport type {\n BaseTextProps,\n BaseTextSizes,\n TextColors,\n} from '~components/Typography/BaseText/types';\nimport { getStringFromReactText } from '~src/utils/getStringChildren';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { AccessibilityProps } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport type { BladeCommonEvents } from '~components/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport type { ActionStates } from '~utils/useInteraction';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype BaseLinkCommonProps = {\n color?: 'primary' | 'white' | 'positive' | 'negative' | 'notice' | 'information' | 'neutral';\n icon?: IconComponent;\n iconPosition?: 'left' | 'right';\n onClick?: (event: SyntheticEvent) => void;\n onBlur?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.FocusEvent<HTMLButtonElement>) => void;\n }>;\n onMouseLeave?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.MouseEvent<HTMLButtonElement>) => void;\n }>;\n onKeyDown?: Platform.Select<{\n native: (event: GestureResponderEvent) => void;\n web: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n }>;\n accessibilityProps?: Partial<AccessibilityProps>;\n\n /**\n * Sets the size of the link\n *\n * @default medium\n */\n size?: Extract<BaseTextSizes, 'xsmall' | 'small' | 'medium' | 'large'>;\n /**\n * Defines how far your touch can start away from the link. This is a react-native only prop and has no effect on web.\n */\n hitSlop?:\n | {\n top?: number;\n right?: number;\n bottom?: number;\n left?: number;\n }\n | number;\n /**\n * The title of the link which is displayed as a tooltip. This is a web only prop and has no effect on react-native.\n */\n htmlTitle?: string;\n opacity?: number;\n} & TestID &\n StyledPropsBlade &\n Omit<BladeCommonEvents, 'onBlur' | 'onMouseLeave'>;\n\n/*\n Mandatory children prop when icon is not provided\n*/\ntype BaseLinkWithoutIconProps = BaseLinkCommonProps & {\n icon?: undefined;\n children: StringChildrenType;\n};\n\n/*\n Optional children prop when icon is provided\n*/\ntype BaseLinkWithIconProps = BaseLinkCommonProps & {\n icon: IconComponent;\n children?: StringChildrenType;\n};\n\n/*\n BaseLink Props with or without an icon\n*/\ntype BaseLinkPropsWithOrWithoutIcon = BaseLinkWithIconProps | BaseLinkWithoutIconProps;\n\n/*\n BaseLink Props when variant is anchor\n*/\ntype BaseLinkAnchorVariantProps = BaseLinkPropsWithOrWithoutIcon & {\n variant?: 'anchor';\n href?: string;\n target?: string;\n rel?: string;\n isDisabled?: undefined;\n};\n\n/*\n BaseLink Props when variant is button\n*/\ntype BaseLinkButtonVariantProps = BaseLinkPropsWithOrWithoutIcon & {\n variant?: 'button';\n isDisabled?: boolean;\n href?: undefined;\n target?: undefined;\n rel?: undefined;\n};\n\n/*\n BaseLink Props when variant is anchor or button\n*/\nexport type BaseLinkProps = BaseLinkAnchorVariantProps | BaseLinkButtonVariantProps;\n\ntype BaseLinkStyleProps = {\n as: 'a' | 'button';\n textDecorationLine: 'underline' | 'none';\n iconColor: IconProps['color'];\n iconSize: IconProps['size'];\n iconPadding: DotNotationSpacingStringToken;\n textColor: BaseTextProps['color'];\n focusRingColor: string;\n motionDuration: DurationString;\n motionEasing: EasingString;\n cursor: CSSObject['cursor'];\n disabled: boolean;\n role: 'button' | 'link';\n defaultRel: BaseLinkProps['rel'];\n type?: 'button';\n fontSize: BaseTextProps['fontSize'];\n lineHeight: BaseTextProps['lineHeight'];\n};\n\ntype LinkActionStates = ActionStates;\nconst getColorToken = ({\n variant,\n color,\n currentInteraction,\n isDisabled,\n element,\n}: {\n variant: BaseLinkProps['variant'];\n color: BaseLinkProps['color'];\n element: 'icon' | 'text';\n currentInteraction: LinkActionStates;\n isDisabled: boolean;\n}): IconColors | TextColors => {\n let state = currentInteraction;\n const map = {\n default: 'normal',\n hover: 'subtle',\n focus: 'normal',\n disabled: 'disabled',\n } as const;\n\n if (isDisabled && variant == 'button') {\n state = 'disabled';\n }\n\n if (color && color !== 'primary') {\n if (color !== 'white') {\n return `interactive.${element}.${color}.${map[state]}`;\n }\n return `interactive.${element}.staticWhite.${map[state]}`;\n }\n return `interactive.${element}.primary.${map[state]}`;\n};\n\nconst getProps = ({\n theme,\n variant,\n currentInteraction,\n children,\n isDisabled,\n color,\n target,\n size,\n}: {\n theme: Theme;\n variant: NonNullable<BaseLinkProps['variant']>;\n currentInteraction: LinkActionStates;\n children?: string;\n isDisabled: boolean;\n color: BaseLinkProps['color'];\n target: BaseLinkProps['target'];\n size: NonNullable<BaseLinkProps['size']>;\n}): BaseLinkStyleProps => {\n const isButton = variant === 'button';\n const textSizes: {\n fontSize: Record<NonNullable<BaseLinkProps['size']>, keyof FontSize>;\n lineHeight: Record<NonNullable<BaseLinkProps['size']>, keyof Typography['lineHeights']>;\n } = {\n fontSize: {\n xsmall: 25,\n small: 75,\n medium: 100,\n large: 200,\n },\n lineHeight: {\n xsmall: 25,\n small: 75,\n medium: 100,\n large: 200,\n },\n };\n\n const props: BaseLinkStyleProps = {\n as: isButton ? 'button' : 'a',\n textDecorationLine: !isButton && currentInteraction !== 'default' ? 'underline' : 'none',\n iconColor: getColorToken({\n variant,\n color,\n element: 'icon',\n currentInteraction,\n isDisabled,\n }) as IconProps['color'],\n fontSize: textSizes.fontSize[size],\n lineHeight: textSizes.lineHeight[size],\n iconSize: size,\n iconPadding: children?.trim() ? 'spacing.2' : 'spacing.0',\n textColor: getColorToken({\n variant,\n color,\n element: 'text',\n currentInteraction,\n isDisabled,\n }) as BaseTextProps['color'],\n focusRingColor: getIn(theme.colors, 'interactive.background.primary.faded'),\n motionDuration: 'duration.2xquick',\n motionEasing: 'easing.standard',\n cursor: isButton && isDisabled ? 'not-allowed' : 'pointer',\n disabled: isButton && isDisabled,\n role: isButton ? 'button' : 'link',\n defaultRel: target && target === '_blank' ? 'noreferrer noopener' : undefined,\n type: isButton ? 'button' : undefined,\n };\n\n return props;\n};\n\nconst _BaseLink: React.ForwardRefRenderFunction<BladeElementRef, BaseLinkProps> = (\n {\n children,\n icon: Icon,\n iconPosition = 'left',\n isDisabled = false,\n onClick,\n onKeyDown,\n variant = 'anchor',\n href,\n target,\n rel,\n color = 'primary',\n opacity,\n accessibilityProps,\n // @ts-expect-error avoiding exposing to public\n className,\n // @ts-expect-error avoiding exposing to public\n style,\n size = 'medium',\n testID,\n hitSlop,\n htmlTitle,\n onBlur,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onPointerDown,\n onPointerEnter,\n onTouchStart,\n onTouchEnd,\n onMouseDown,\n onMouseUp,\n ...rest\n },\n ref,\n) => {\n const childrenString = getStringFromReactText(children);\n const { currentInteraction, setCurrentInteraction, ...syntheticEvents } = useInteraction();\n const { theme } = useTheme();\n if (__DEV__) {\n if (!Icon && !childrenString?.trim()) {\n throwBladeError({\n message: `At least one of icon or text is required to render a link.`,\n moduleName: 'BaseLink',\n });\n }\n }\n const {\n as,\n textDecorationLine,\n iconColor,\n iconPadding,\n iconSize,\n fontSize,\n textColor,\n focusRingColor,\n motionDuration,\n motionEasing,\n cursor,\n disabled,\n role,\n defaultRel,\n type,\n lineHeight,\n } = getProps({\n theme,\n variant,\n currentInteraction,\n children: childrenString,\n isDisabled,\n color,\n target,\n size,\n });\n\n const handleOnClick = (event: SyntheticEvent): void => {\n if (onClick) {\n onClick(event);\n }\n };\n\n const asProp = isReactNative() ? undefined : 'span';\n return (\n <StyledBaseLink\n ref={ref as never}\n {...metaAttribute({ name: MetaConstants.Link, testID })}\n accessibilityProps={{\n ...makeAccessible({\n role,\n disabled,\n ...accessibilityProps,\n }),\n }}\n variant={variant}\n as={as}\n href={href}\n target={target}\n rel={rel ?? defaultRel}\n onClick={handleOnClick}\n {...syntheticEvents}\n onBlur={(event: any) => {\n onBlur?.(event);\n syntheticEvents.onBlur();\n }}\n onFocus={(event: any) => {\n onFocus?.(event);\n syntheticEvents.onFocus();\n }}\n onMouseLeave={(event: any) => {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n syntheticEvents.onMouseLeave();\n }}\n onMouseMove={onMouseMove}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onKeyDown={onKeyDown}\n onMouseDown={onMouseDown}\n onMouseUp={onMouseUp}\n disabled={disabled}\n type={type}\n cursor={cursor}\n focusRingColor={focusRingColor}\n motionDuration={motionDuration}\n motionEasing={motionEasing}\n setCurrentInteraction={setCurrentInteraction}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n // @ts-ignore Because we avoided exposing className to public\n className={className}\n style={style}\n hitSlop={hitSlop}\n title={htmlTitle}\n >\n <BaseBox\n as={asProp}\n display=\"flex\"\n flexDirection=\"row\"\n className=\"content-container\"\n alignItems=\"center\"\n opacity={opacity}\n >\n {Icon && iconPosition == 'left' ? (\n <BaseBox as={asProp} paddingRight={iconPadding} display=\"flex\" alignItems=\"center\">\n <Icon color={iconColor} size={iconSize} />\n </BaseBox>\n ) : null}\n <BaseText\n as={asProp}\n textDecorationLine={textDecorationLine}\n color={textColor}\n fontSize={fontSize}\n lineHeight={lineHeight}\n textAlign=\"center\"\n fontWeight=\"medium\"\n >\n {children}\n </BaseText>\n {Icon && iconPosition == 'right' ? (\n <BaseBox as={asProp} paddingLeft={iconPadding} display=\"flex\" alignItems=\"center\">\n <Icon color={iconColor} size={iconSize} />\n </BaseBox>\n ) : null}\n </BaseBox>\n </StyledBaseLink>\n );\n};\n\nconst BaseLink = assignWithoutSideEffects(React.forwardRef(_BaseLink), {\n displayName: 'BaseLink',\n componentId: 'BaseLink',\n});\n\nexport default BaseLink;\n"],"names":["getColorToken","_ref","variant","color","currentInteraction","isDisabled","element","state","map","default","hover","focus","disabled","getProps","_ref2","theme","children","target","size","isButton","textSizes","fontSize","xsmall","small","medium","large","lineHeight","props","as","textDecorationLine","iconColor","iconSize","iconPadding","trim","textColor","focusRingColor","getIn","colors","motionDuration","motionEasing","cursor","role","defaultRel","undefined","type","_BaseLink","_ref3","ref","Icon","icon","_ref3$iconPosition","iconPosition","_ref3$isDisabled","onClick","onKeyDown","_ref3$variant","href","rel","_ref3$color","opacity","accessibilityProps","className","style","_ref3$size","testID","hitSlop","htmlTitle","onBlur","onFocus","onMouseLeave","onMouseMove","onPointerDown","onPointerEnter","onTouchStart","onTouchEnd","onMouseDown","onMouseUp","rest","_objectWithoutProperties","_excluded","childrenString","getStringFromReactText","_useInteraction","useInteraction","setCurrentInteraction","syntheticEvents","_excluded2","_useTheme","useTheme","__DEV__","throwBladeError","message","moduleName","_getProps","handleOnClick","event","asProp","isReactNative","_jsx","StyledBaseLink","Object","assign","metaAttribute","name","MetaConstants","Link","makeAccessible","getStyledProps","makeAnalyticsAttribute","title","_jsxs","BaseBox","display","flexDirection","alignItems","paddingRight","BaseText","textAlign","fontWeight","paddingLeft","BaseLink","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledBaseLink.native.js","sources":["../../../../../../src/components/Link/BaseLink/StyledBaseLink.native.tsx"],"sourcesContent":["import React from 'react';\nimport type { ReactElement } from 'react';\nimport type { GestureResponderEvent } from 'react-native';\nimport { Linking } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { StyledBaseLinkProps } from './types';\nimport getStyledLinkStyles from './getStyledLinkStyles';\nimport { useStyledProps } from '~components/Box/styledProps';\nimport type { BladeElementRef } from '~utils/types';\nimport { castNativeType } from '~utils';\nimport { logger } from '~utils/logger';\n\nconst StyledNativeLink = styled.Pressable((props) => {\n const styledPropsCSSObject = useStyledProps(props);\n return {\n ...getStyledLinkStyles({}),\n alignSelf: 'flex-start',\n ...styledPropsCSSObject,\n };\n});\n\nconst openURL = async (href: string): Promise<void> => {\n try {\n const canOpen = await Linking.canOpenURL(href);\n if (canOpen) {\n await Linking.openURL(href);\n }\n } catch {\n if (__DEV__) {\n logger({\n message: `Could not open the link \"href=${href}\"`,\n moduleName: 'BaseLink',\n type: 'warn',\n });\n }\n }\n};\n\nconst _StyledLink: React.ForwardRefRenderFunction<\n BladeElementRef,\n StyledBaseLinkProps & { children: React.ReactNode }\n> = (\n {\n variant,\n disabled,\n href,\n onClick,\n children,\n setCurrentInteraction,\n accessibilityProps,\n // @ts-expect-error avoid exposing to public\n style,\n testID,\n hitSlop,\n onTouchStart,\n onTouchEnd,\n },\n ref,\n): ReactElement => {\n const handleOnPress = (event: GestureResponderEvent): void => {\n if (href && variant === 'anchor') {\n void openURL(href);\n }\n\n if (onClick) {\n /*\n React Native's Pressable's onClick returns a GestureResponderEvent but our types expect a SyntheticEvent.\n Until we have a way to handle platform specific types, we will have to ignore this TS error.\n */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n onClick(event);\n }\n };\n\n return (\n <StyledNativeLink\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n {...accessibilityProps}\n disabled={disabled}\n onPress={handleOnPress}\n onPressIn={(): void => setCurrentInteraction('focus')}\n onPressOut={(): void => setCurrentInteraction('default')}\n onTouchStart={castNativeType(onTouchStart)}\n onTouchEnd={castNativeType(onTouchEnd)}\n style={style}\n testID={testID}\n hitSlop={hitSlop}\n >\n {children}\n </StyledNativeLink>\n );\n};\n\nconst StyledLink = React.forwardRef(_StyledLink);\n\nexport default StyledLink;\n"],"names":["StyledNativeLink","styled","Pressable","props","styledPropsCSSObject","useStyledProps","Object","assign","getStyledLinkStyles","alignSelf","openURL","_ref","_asyncToGenerator","href","canOpen","Linking","canOpenURL","_unused","__DEV__","logger","message","moduleName","type","_x","apply","arguments","_StyledLink","_ref2","ref","variant","disabled","onClick","children","setCurrentInteraction","accessibilityProps","style","testID","hitSlop","onTouchStart","onTouchEnd","handleOnPress","event","_jsx","onPress","onPressIn","onPressOut","castNativeType","StyledLink","React","forwardRef"],"mappings":";;;;;;;;;;;;AAYA,IAAMA,gBAAgB,CAAGC,MAAM,CAACC,SAAS,CAAC,SAACC,KAAK,CAAK,CACnD,IAAMC,oBAAoB,CAAGC,cAAc,CAACF,KAAK,CAAC,CAClD,OAAAG,MAAA,CAAAC,MAAA,CAAA,EAAA,CACKC,mBAAmB,CAAC,EAAE,CAAC,CAAA,CAC1BC,SAAS,CAAE,YAAY,EACpBL,oBAAoB,CAAA,CAE3B,CAAC,CAAC,CAEF,IAAMM,OAAO,gBAAAC,IAAA,CAAAC,iBAAA,CAAG,UAAOC,IAAY,CAAoB,CACrD,GAAI,CACF,IAAMC,OAAO,CAAA,MAASC,OAAO,CAACC,UAAU,CAACH,IAAI,CAAC,CAC9C,GAAIC,OAAO,CAAE,CACX,MAAMC,OAAO,CAACL,OAAO,CAACG,IAAI,CAAC,CAC7B,CACF,CAAE,MAAAI,OAAA,CAAM,CACN,GAAIC,OAAO,CAAE,CACXC,MAAM,CAAC,CACLC,OAAO,
|
|
1
|
+
{"version":3,"file":"StyledBaseLink.native.js","sources":["../../../../../../src/components/Link/BaseLink/StyledBaseLink.native.tsx"],"sourcesContent":["import React from 'react';\nimport type { ReactElement } from 'react';\nimport type { GestureResponderEvent } from 'react-native';\nimport { Linking } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { StyledBaseLinkProps } from './types';\nimport getStyledLinkStyles from './getStyledLinkStyles';\nimport { useStyledProps } from '~components/Box/styledProps';\nimport type { BladeElementRef } from '~utils/types';\nimport { castNativeType } from '~utils';\nimport { logger } from '~utils/logger';\n\nconst StyledNativeLink = styled.Pressable((props) => {\n const styledPropsCSSObject = useStyledProps(props);\n return {\n ...getStyledLinkStyles({}),\n alignSelf: 'flex-start',\n ...styledPropsCSSObject,\n };\n});\n\nconst openURL = async (href: string): Promise<void> => {\n try {\n const canOpen = await Linking.canOpenURL(href);\n if (canOpen) {\n await Linking.openURL(href);\n }\n } catch {\n if (__DEV__) {\n logger({\n message: `Could not open the link \"href=${href}\"`,\n moduleName: 'BaseLink',\n type: 'warn',\n });\n }\n }\n};\n\nconst _StyledLink: React.ForwardRefRenderFunction<\n BladeElementRef,\n StyledBaseLinkProps & { children: React.ReactNode }\n> = (\n {\n variant,\n disabled,\n href,\n onClick,\n children,\n setCurrentInteraction,\n accessibilityProps,\n // @ts-expect-error avoid exposing to public\n style,\n testID,\n hitSlop,\n onTouchStart,\n onTouchEnd,\n },\n ref,\n): ReactElement => {\n const handleOnPress = (event: GestureResponderEvent): void => {\n if (href && variant === 'anchor') {\n void openURL(href);\n }\n\n if (onClick) {\n /*\n React Native's Pressable's onClick returns a GestureResponderEvent but our types expect a SyntheticEvent.\n Until we have a way to handle platform specific types, we will have to ignore this TS error.\n */\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n onClick(event);\n }\n };\n\n return (\n <StyledNativeLink\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n {...accessibilityProps}\n disabled={disabled}\n onPress={handleOnPress}\n onPressIn={(): void => setCurrentInteraction('focus')}\n onPressOut={(): void => setCurrentInteraction('default')}\n onTouchStart={castNativeType(onTouchStart)}\n onTouchEnd={castNativeType(onTouchEnd)}\n style={style}\n testID={testID}\n hitSlop={hitSlop}\n >\n {children}\n </StyledNativeLink>\n );\n};\n\nconst StyledLink = React.forwardRef(_StyledLink);\n\nexport default StyledLink;\n"],"names":["StyledNativeLink","styled","Pressable","props","styledPropsCSSObject","useStyledProps","Object","assign","getStyledLinkStyles","alignSelf","openURL","_ref","_asyncToGenerator","href","canOpen","Linking","canOpenURL","_unused","__DEV__","logger","message","moduleName","type","_x","apply","arguments","_StyledLink","_ref2","ref","variant","disabled","onClick","children","setCurrentInteraction","accessibilityProps","style","testID","hitSlop","onTouchStart","onTouchEnd","handleOnPress","event","_jsx","onPress","onPressIn","onPressOut","castNativeType","StyledLink","React","forwardRef"],"mappings":";;;;;;;;;;;;AAYA,IAAMA,gBAAgB,CAAGC,MAAM,CAACC,SAAS,CAAC,SAACC,KAAK,CAAK,CACnD,IAAMC,oBAAoB,CAAGC,cAAc,CAACF,KAAK,CAAC,CAClD,OAAAG,MAAA,CAAAC,MAAA,CAAA,EAAA,CACKC,mBAAmB,CAAC,EAAE,CAAC,CAAA,CAC1BC,SAAS,CAAE,YAAY,EACpBL,oBAAoB,CAAA,CAE3B,CAAC,CAAC,CAEF,IAAMM,OAAO,gBAAAC,IAAA,CAAAC,iBAAA,CAAG,UAAOC,IAAY,CAAoB,CACrD,GAAI,CACF,IAAMC,OAAO,CAAA,MAASC,OAAO,CAACC,UAAU,CAACH,IAAI,CAAC,CAC9C,GAAIC,OAAO,CAAE,CACX,MAAMC,OAAO,CAACL,OAAO,CAACG,IAAI,CAAC,CAC7B,CACF,CAAE,MAAAI,OAAA,CAAM,CACN,GAAIC,OAAO,CAAE,CACXC,MAAM,CAAC,CACLC,OAAO,CAAE,iCAAiCP,IAAI,CAAA,CAAA,CAAG,CACjDQ,UAAU,CAAE,UAAU,CACtBC,IAAI,CAAE,MACR,CAAC,CAAC,CACJ,CACF,CACF,CAAC,CAAA,CAAA,OAAA,SAfKZ,OAAOA,CAAAa,EAAA,CAAAZ,CAAAA,OAAAA,IAAA,CAAAa,KAAA,CAAA,IAAA,CAAAC,SAAA,CAeZ,CAAA,CAAA,CAAA,CAAA,EAAA,CAED,IAAMC,WAGL,CAAG,SAHEA,WAGLA,CAAAC,KAAA,CAgBCC,GAAG,CACc,KAffC,OAAO,CAAAF,KAAA,CAAPE,OAAO,CACPC,QAAQ,CAAAH,KAAA,CAARG,QAAQ,CACRjB,IAAI,CAAAc,KAAA,CAAJd,IAAI,CACJkB,OAAO,CAAAJ,KAAA,CAAPI,OAAO,CACPC,QAAQ,CAAAL,KAAA,CAARK,QAAQ,CACRC,qBAAqB,CAAAN,KAAA,CAArBM,qBAAqB,CACrBC,kBAAkB,CAAAP,KAAA,CAAlBO,kBAAkB,CAElBC,KAAK,CAAAR,KAAA,CAALQ,KAAK,CACLC,MAAM,CAAAT,KAAA,CAANS,MAAM,CACNC,OAAO,CAAAV,KAAA,CAAPU,OAAO,CACPC,YAAY,CAAAX,KAAA,CAAZW,YAAY,CACZC,UAAU,CAAAZ,KAAA,CAAVY,UAAU,CAIZ,IAAMC,aAAa,CAAG,SAAhBA,aAAaA,CAAIC,KAA4B,CAAW,CAC5D,GAAI5B,IAAI,EAAIgB,OAAO,GAAK,QAAQ,CAAE,CAChC,KAAKnB,OAAO,CAACG,IAAI,CAAC,CACpB,CAEA,GAAIkB,OAAO,CAAE,CAOXA,OAAO,CAACU,KAAK,CAAC,CAChB,CACF,CAAC,CAED,OACEC,GAAA,CAAC1C,gBAAgB,CAAAM,MAAA,CAAAC,MAAA,CAAA,CAEfqB,GAAG,CAAEA,GAAW,EACZM,kBAAkB,CAAA,CACtBJ,QAAQ,CAAEA,QAAS,CACnBa,OAAO,CAAEH,aAAc,CACvBI,SAAS,CAAE,SAAAA,SAAAA,UAAYX,qBAAqB,CAAC,OAAO,CAAC,EAAC,CACtDY,UAAU,CAAE,SAAAA,UAAAA,UAAYZ,qBAAqB,CAAC,SAAS,CAAC,EAAC,CACzDK,YAAY,CAAEQ,cAAc,CAACR,YAAY,CAAE,CAC3CC,UAAU,CAAEO,cAAc,CAACP,UAAU,CAAE,CACvCJ,KAAK,CAAEA,KAAM,CACbC,MAAM,CAAEA,MAAO,CACfC,OAAO,CAAEA,OAAQ,CAAAL,QAAA,CAEhBA,QAAQ,CACO,CAAA,CAAC,CAEvB,CAAC,CAEK,IAAAe,UAAU,CAAGC,cAAK,CAACC,UAAU,CAACvB,WAAW;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.js","sources":["../../../../../src/components/List/ListItem.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport React from 'react';\nimport { useListContext } from './ListContext';\nimport { UnorderedItemIcon } from './ListItemIcons';\nimport { ListItemElement } from './ListItemElement';\nimport {\n listItemBulletMarginRight,\n listItemBulletMarginTop,\n listItemOrderedBulletBoxSize,\n listItemMarginBottom,\n listItemMarginLeft,\n} from './listTokens';\nimport type { ListProps } from './List';\nimport { getOrderedListItemBullet } from './getOrderedListItemBullet';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Text } from '~components/Typography';\nimport type { IconComponent } from '~components/Icons';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { getPlatformType } from '~utils/getPlatformType';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListItemProps = {\n /**\n * Children to be rendered for ListItem. This can be a text, ListItemLink or another List.\n *\n */\n children: React.ReactNode;\n /**\n * Icon to be rendered for a ListItem's bullet.\n *\n */\n icon?: IconComponent;\n /**\n * Icon color of the ListItem's bullet.\n *\n */\n iconColor?: ListProps['iconColor'];\n /**\n * This is a private prop to be used only for internal logic purposes.\n *\n */\n _itemNumber?: undefined;\n} & TestID;\n\nconst StyledListItem = styled(ListItemElement)<{\n level?: number;\n variant: NonNullable<ListProps['variant']>;\n hasIcon: boolean;\n}>(({ level, theme, variant, hasIcon }) => ({\n marginLeft: level\n ? getIn(\n theme,\n listItemMarginLeft[\n `${variant}${variant === 'unordered' && hasIcon ? 'WithIcon' : ''}` as NonNullable<\n ListProps['variant'] | 'unorderedWithIcon'\n >\n ][level],\n )\n : 0,\n}));\n\nconst ListItemContentChildren = ({\n children,\n size,\n}: {\n children: React.ReactNode[];\n size: NonNullable<ListProps['size']>;\n}): React.ReactElement => {\n /* Having a <View><Text>...</Text><View/> inside <Text /> breaks vertical alignment. Issue: https://github.com/facebook/react-native/issues/31955\n As a workaround, we wrap individual strings in their own <Text /> and handle alignment with a parent <View> (BaseBox).\n */\n return getPlatformType() === 'react-native' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" flexWrap=\"wrap\">\n {children.map((child, index) => {\n if (typeof child === 'string') {\n return (\n <Text key={index} variant=\"body\" size={size}>\n {child}\n </Text>\n );\n }\n return child;\n })}\n </BaseBox>\n ) : (\n <Text variant=\"body\" size={size}>\n {children}\n </Text>\n );\n};\n\nconst _ListItem = ({\n children,\n icon: Icon,\n iconColor: listItemIconColor,\n _itemNumber,\n testID,\n}: ListItemProps): React.ReactElement => {\n const { level, size, icon: ListContextIcon, variant, iconColor } = useListContext();\n const { theme, platform } = useTheme();\n const ItemIcon = Icon ?? ListContextIcon;\n const iconColorToken = listItemIconColor ?? iconColor ?? 'surface.icon.gray.muted';\n\n if (__DEV__) {\n if (level && level > 3) {\n throwBladeError({\n message: 'List Nesting is allowed only upto 3 levels.',\n moduleName: 'List',\n });\n }\n }\n\n const childrenArray = React.Children.toArray(children);\n\n // Get children that are not a List component and are valid allowed children\n const validChildItem = childrenArray.filter((child) => {\n if (getComponentId(child) === MetaConstants.List) return null;\n\n if (\n typeof child === 'string' ||\n typeof child === 'number' ||\n isValidAllowedChildren(child, MetaConstants.ListItemLink) ||\n isValidAllowedChildren(child, MetaConstants.ListItemText) ||\n isValidAllowedChildren(child, MetaConstants.ListItemCode)\n ) {\n return child;\n } else if (__DEV__) {\n throwBladeError({\n message: `You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,\n moduleName: 'ListItem',\n });\n }\n return null;\n });\n // Get child that is a List component\n const childList = childrenArray.filter((child) =>\n getComponentId(child) === MetaConstants.List ? child : null,\n );\n const hasIcon = Boolean(ItemIcon);\n\n return (\n <StyledListItem\n level={level}\n variant={variant}\n hasIcon={hasIcon}\n {...metaAttribute({ name: MetaConstants.ListItem, testID })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginBottom={listItemMarginBottom}\n >\n {variant === 'unordered' ? (\n <BaseBox\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={\n listItemBulletMarginTop[`${variant}${hasIcon ? 'WithIcon' : ''}`][platform][size]\n }\n display=\"flex\"\n alignSelf=\"flex-start\"\n >\n {ItemIcon ? (\n <ItemIcon size={size} color={iconColorToken} />\n ) : (\n <UnorderedItemIcon level={level} />\n )}\n </BaseBox>\n ) : (\n <BaseBox\n width={listItemOrderedBulletBoxSize[variant][platform][size]}\n height={listItemOrderedBulletBoxSize[variant][platform][size]}\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={listItemBulletMarginTop[variant][platform][size]}\n display=\"flex\"\n flexShrink={0}\n justifyContent=\"center\"\n alignSelf=\"flex-start\"\n alignItems=\"center\"\n borderRadius={variant === 'ordered-filled' ? 'max' : undefined}\n backgroundColor={\n variant === 'ordered-filled'\n ? getIn(theme.colors, 'feedback.background.neutral.subtle')\n : undefined\n }\n >\n <Text\n variant=\"body\"\n color=\"surface.text.gray.muted\"\n size={variant === 'ordered' ? size : 'xsmall'}\n >\n {`${getOrderedListItemBullet({\n itemNumber: _itemNumber ?? 1,\n level: level ?? 1,\n })}${variant === 'ordered' ? '.' : ''}`}\n </Text>\n </BaseBox>\n )}\n <ListItemContentChildren size={size}>{validChildItem}</ListItemContentChildren>\n </BaseBox>\n {childList}\n </StyledListItem>\n );\n};\n\nconst ListItem = assignWithoutSideEffects(_ListItem, { componentId: MetaConstants.ListItem });\n\nexport { ListItem };\nexport type { ListItemProps };\n"],"names":["StyledListItem","styled","ListItemElement","_ref","level","theme","variant","hasIcon","marginLeft","getIn","listItemMarginLeft","ListItemContentChildren","_ref2","children","size","getPlatformType","_jsx","BaseBox","display","flexDirection","flexWrap","map","child","index","Text","_ListItem","_ref3","_ref4","Icon","icon","listItemIconColor","iconColor","_itemNumber","testID","_useListContext","useListContext","ListContextIcon","_useTheme","useTheme","platform","ItemIcon","iconColorToken","__DEV__","throwBladeError","message","moduleName","childrenArray","React","Children","toArray","validChildItem","filter","getComponentId","MetaConstants","List","isValidAllowedChildren","ListItemLink","ListItemText","ListItemCode","childList","Boolean","_jsxs","Object","assign","metaAttribute","name","ListItem","alignItems","marginBottom","listItemMarginBottom","marginRight","listItemBulletMarginRight","marginTop","listItemBulletMarginTop","alignSelf","color","UnorderedItemIcon","width","listItemOrderedBulletBoxSize","height","flexShrink","justifyContent","borderRadius","undefined","backgroundColor","colors","getOrderedListItemBullet","itemNumber","assignWithoutSideEffects","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListItem.js","sources":["../../../../../src/components/List/ListItem.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport React from 'react';\nimport { useListContext } from './ListContext';\nimport { UnorderedItemIcon } from './ListItemIcons';\nimport { ListItemElement } from './ListItemElement';\nimport {\n listItemBulletMarginRight,\n listItemBulletMarginTop,\n listItemOrderedBulletBoxSize,\n listItemMarginBottom,\n listItemMarginLeft,\n} from './listTokens';\nimport type { ListProps } from './List';\nimport { getOrderedListItemBullet } from './getOrderedListItemBullet';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Text } from '~components/Typography';\nimport type { IconComponent } from '~components/Icons';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { getPlatformType } from '~utils/getPlatformType';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListItemProps = {\n /**\n * Children to be rendered for ListItem. This can be a text, ListItemLink or another List.\n *\n */\n children: React.ReactNode;\n /**\n * Icon to be rendered for a ListItem's bullet.\n *\n */\n icon?: IconComponent;\n /**\n * Icon color of the ListItem's bullet.\n *\n */\n iconColor?: ListProps['iconColor'];\n /**\n * This is a private prop to be used only for internal logic purposes.\n *\n */\n _itemNumber?: undefined;\n} & TestID;\n\nconst StyledListItem = styled(ListItemElement)<{\n level?: number;\n variant: NonNullable<ListProps['variant']>;\n hasIcon: boolean;\n}>(({ level, theme, variant, hasIcon }) => ({\n marginLeft: level\n ? getIn(\n theme,\n listItemMarginLeft[\n `${variant}${variant === 'unordered' && hasIcon ? 'WithIcon' : ''}` as NonNullable<\n ListProps['variant'] | 'unorderedWithIcon'\n >\n ][level],\n )\n : 0,\n}));\n\nconst ListItemContentChildren = ({\n children,\n size,\n}: {\n children: React.ReactNode[];\n size: NonNullable<ListProps['size']>;\n}): React.ReactElement => {\n /* Having a <View><Text>...</Text><View/> inside <Text /> breaks vertical alignment. Issue: https://github.com/facebook/react-native/issues/31955\n As a workaround, we wrap individual strings in their own <Text /> and handle alignment with a parent <View> (BaseBox).\n */\n return getPlatformType() === 'react-native' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" flexWrap=\"wrap\">\n {children.map((child, index) => {\n if (typeof child === 'string') {\n return (\n <Text key={index} variant=\"body\" size={size}>\n {child}\n </Text>\n );\n }\n return child;\n })}\n </BaseBox>\n ) : (\n <Text variant=\"body\" size={size}>\n {children}\n </Text>\n );\n};\n\nconst _ListItem = ({\n children,\n icon: Icon,\n iconColor: listItemIconColor,\n _itemNumber,\n testID,\n}: ListItemProps): React.ReactElement => {\n const { level, size, icon: ListContextIcon, variant, iconColor } = useListContext();\n const { theme, platform } = useTheme();\n const ItemIcon = Icon ?? ListContextIcon;\n const iconColorToken = listItemIconColor ?? iconColor ?? 'surface.icon.gray.muted';\n\n if (__DEV__) {\n if (level && level > 3) {\n throwBladeError({\n message: 'List Nesting is allowed only upto 3 levels.',\n moduleName: 'List',\n });\n }\n }\n\n const childrenArray = React.Children.toArray(children);\n\n // Get children that are not a List component and are valid allowed children\n const validChildItem = childrenArray.filter((child) => {\n if (getComponentId(child) === MetaConstants.List) return null;\n\n if (\n typeof child === 'string' ||\n typeof child === 'number' ||\n isValidAllowedChildren(child, MetaConstants.ListItemLink) ||\n isValidAllowedChildren(child, MetaConstants.ListItemText) ||\n isValidAllowedChildren(child, MetaConstants.ListItemCode)\n ) {\n return child;\n } else if (__DEV__) {\n throwBladeError({\n message: `You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,\n moduleName: 'ListItem',\n });\n }\n return null;\n });\n // Get child that is a List component\n const childList = childrenArray.filter((child) =>\n getComponentId(child) === MetaConstants.List ? child : null,\n );\n const hasIcon = Boolean(ItemIcon);\n\n return (\n <StyledListItem\n level={level}\n variant={variant}\n hasIcon={hasIcon}\n {...metaAttribute({ name: MetaConstants.ListItem, testID })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginBottom={listItemMarginBottom}\n >\n {variant === 'unordered' ? (\n <BaseBox\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={\n listItemBulletMarginTop[`${variant}${hasIcon ? 'WithIcon' : ''}`][platform][size]\n }\n display=\"flex\"\n alignSelf=\"flex-start\"\n >\n {ItemIcon ? (\n <ItemIcon size={size} color={iconColorToken} />\n ) : (\n <UnorderedItemIcon level={level} />\n )}\n </BaseBox>\n ) : (\n <BaseBox\n width={listItemOrderedBulletBoxSize[variant][platform][size]}\n height={listItemOrderedBulletBoxSize[variant][platform][size]}\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={listItemBulletMarginTop[variant][platform][size]}\n display=\"flex\"\n flexShrink={0}\n justifyContent=\"center\"\n alignSelf=\"flex-start\"\n alignItems=\"center\"\n borderRadius={variant === 'ordered-filled' ? 'max' : undefined}\n backgroundColor={\n variant === 'ordered-filled'\n ? getIn(theme.colors, 'feedback.background.neutral.subtle')\n : undefined\n }\n >\n <Text\n variant=\"body\"\n color=\"surface.text.gray.muted\"\n size={variant === 'ordered' ? size : 'xsmall'}\n >\n {`${getOrderedListItemBullet({\n itemNumber: _itemNumber ?? 1,\n level: level ?? 1,\n })}${variant === 'ordered' ? '.' : ''}`}\n </Text>\n </BaseBox>\n )}\n <ListItemContentChildren size={size}>{validChildItem}</ListItemContentChildren>\n </BaseBox>\n {childList}\n </StyledListItem>\n );\n};\n\nconst ListItem = assignWithoutSideEffects(_ListItem, { componentId: MetaConstants.ListItem });\n\nexport { ListItem };\nexport type { ListItemProps };\n"],"names":["StyledListItem","styled","ListItemElement","_ref","level","theme","variant","hasIcon","marginLeft","getIn","listItemMarginLeft","ListItemContentChildren","_ref2","children","size","getPlatformType","_jsx","BaseBox","display","flexDirection","flexWrap","map","child","index","Text","_ListItem","_ref3","_ref4","Icon","icon","listItemIconColor","iconColor","_itemNumber","testID","_useListContext","useListContext","ListContextIcon","_useTheme","useTheme","platform","ItemIcon","iconColorToken","__DEV__","throwBladeError","message","moduleName","childrenArray","React","Children","toArray","validChildItem","filter","getComponentId","MetaConstants","List","isValidAllowedChildren","ListItemLink","ListItemText","ListItemCode","childList","Boolean","_jsxs","Object","assign","metaAttribute","name","ListItem","alignItems","marginBottom","listItemMarginBottom","marginRight","listItemBulletMarginRight","marginTop","listItemBulletMarginTop","alignSelf","color","UnorderedItemIcon","width","listItemOrderedBulletBoxSize","height","flexShrink","justifyContent","borderRadius","undefined","backgroundColor","colors","getOrderedListItemBullet","itemNumber","assignWithoutSideEffects","componentId"],"mappings":"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"}
|