@razorpay/blade 12.32.3 → 12.33.2

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.
Files changed (221) hide show
  1. package/build/lib/native/components/Accordion/AccordionButton.native.js +1 -1
  2. package/build/lib/native/components/Accordion/AccordionButton.native.js.map +1 -1
  3. package/build/lib/native/components/Accordion/AccordionItemHeader.js +2 -1
  4. package/build/lib/native/components/Accordion/AccordionItemHeader.js.map +1 -1
  5. package/build/lib/native/components/Accordion/commonStyles.js +1 -1
  6. package/build/lib/native/components/Accordion/commonStyles.js.map +1 -1
  7. package/build/lib/native/components/ActionList/ActionListItem.js +1 -1
  8. package/build/lib/native/components/ActionList/ActionListItem.js.map +1 -1
  9. package/build/lib/native/components/ActionList/ActionListNoResults.js +2 -2
  10. package/build/lib/native/components/Alert/Alert.js +2 -2
  11. package/build/lib/native/components/BaseHeaderFooter/BaseHeader.js +4 -4
  12. package/build/lib/native/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  13. package/build/lib/native/components/BottomSheet/BottomSheetCommon.js +3 -3
  14. package/build/lib/native/components/Button/BaseButton/BaseButton.js +1 -1
  15. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  16. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  17. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  18. package/build/lib/native/components/Carousel/NavigationButton/NavigationButton.js +2 -2
  19. package/build/lib/native/components/Collapsible/CollapsibleChevronIcon.native.js +2 -2
  20. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  21. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  22. package/build/lib/native/components/Dropdown/DropdownButton.js +1 -1
  23. package/build/lib/native/components/Dropdown/DropdownButton.js.map +1 -1
  24. package/build/lib/native/components/Dropdown/InputDropdownButton.native.js +7 -0
  25. package/build/lib/native/components/Dropdown/InputDropdownButton.native.js.map +1 -0
  26. package/build/lib/native/components/Dropdown/dropdownComponentIds.js +1 -1
  27. package/build/lib/native/components/Dropdown/dropdownComponentIds.js.map +1 -1
  28. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  29. package/build/lib/native/components/Form/FormHint.js +2 -2
  30. package/build/lib/native/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +12 -0
  31. package/build/lib/native/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  32. package/build/lib/native/components/Icons/useIconProps/iconSizeMap.js +8 -0
  33. package/build/lib/native/components/Icons/useIconProps/iconSizeMap.js.map +1 -0
  34. package/build/lib/native/components/Icons/useIconProps/useIconProps.js +2 -4
  35. package/build/lib/native/components/Icons/useIconProps/useIconProps.js.map +1 -1
  36. package/build/lib/native/components/InfoGroup/InfoGroup.native.js +7 -0
  37. package/build/lib/native/components/InfoGroup/InfoGroup.native.js.map +1 -0
  38. package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
  39. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  40. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +1 -1
  41. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  42. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js +1 -1
  43. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  44. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js +1 -1
  45. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  46. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +2 -5
  47. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  48. package/build/lib/native/components/Input/DropdownInputTriggers/Chevron.js +2 -2
  49. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js +2 -2
  50. package/build/lib/native/components/Input/SearchInput/SearchInput.js +14 -5
  51. package/build/lib/native/components/Input/SearchInput/SearchInput.js.map +1 -1
  52. package/build/lib/native/components/Input/TextArea/TextArea.js +2 -2
  53. package/build/lib/native/components/Input/TextInput/TextInput.js +13 -5
  54. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  55. package/build/lib/native/components/Popover/PopoverCloseButton.js +2 -2
  56. package/build/lib/native/components/Table/tokens.js +2 -2
  57. package/build/lib/native/components/Typography/Text/Text.js +1 -1
  58. package/build/lib/native/components/Typography/Text/Text.js.map +1 -1
  59. package/build/lib/native/components/index.js +3 -0
  60. package/build/lib/native/components/index.js.map +1 -1
  61. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  62. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  63. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js +14 -0
  64. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  65. package/build/lib/web/development/components/Accordion/AccordionItemHeader.js +18 -2
  66. package/build/lib/web/development/components/Accordion/AccordionItemHeader.js.map +1 -1
  67. package/build/lib/web/development/components/Accordion/StyledAccordionButton.web.js +4 -3
  68. package/build/lib/web/development/components/Accordion/StyledAccordionButton.web.js.map +1 -1
  69. package/build/lib/web/development/components/Accordion/commonStyles.js +1 -11
  70. package/build/lib/web/development/components/Accordion/commonStyles.js.map +1 -1
  71. package/build/lib/web/development/components/ActionList/ActionListItem.js +2 -1
  72. package/build/lib/web/development/components/ActionList/ActionListItem.js.map +1 -1
  73. package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js +6 -3
  74. package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  75. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +24 -3
  76. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  77. package/build/lib/web/development/components/Button/BaseButton/StyledBaseButton.web.js +14 -2
  78. package/build/lib/web/development/components/Button/BaseButton/StyledBaseButton.web.js.map +1 -1
  79. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +19 -0
  80. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  81. package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
  82. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  83. package/build/lib/web/development/components/Dropdown/DropdownButton.js +4 -1
  84. package/build/lib/web/development/components/Dropdown/DropdownButton.js.map +1 -1
  85. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js +4 -2
  86. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  87. package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js +180 -0
  88. package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js.map +1 -0
  89. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js +2 -1
  90. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js.map +1 -1
  91. package/build/lib/web/development/components/Dropdown/index.js +1 -0
  92. package/build/lib/web/development/components/Dropdown/index.js.map +1 -1
  93. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  94. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +40 -0
  95. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  96. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/index.js +2 -0
  97. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/index.js.map +1 -0
  98. package/build/lib/web/development/components/Icons/index.js +1 -0
  99. package/build/lib/web/development/components/Icons/index.js.map +1 -1
  100. package/build/lib/web/development/components/Icons/useIconProps/iconSizeMap.js +14 -0
  101. package/build/lib/web/development/components/Icons/useIconProps/iconSizeMap.js.map +1 -0
  102. package/build/lib/web/development/components/Icons/useIconProps/useIconProps.js +3 -12
  103. package/build/lib/web/development/components/Icons/useIconProps/useIconProps.js.map +1 -1
  104. package/build/lib/web/development/components/InfoGroup/InfoGroup.web.js +448 -0
  105. package/build/lib/web/development/components/InfoGroup/InfoGroup.web.js.map +1 -0
  106. package/build/lib/web/development/components/InfoGroup/InfoGroupContext.js +26 -0
  107. package/build/lib/web/development/components/InfoGroup/InfoGroupContext.js.map +1 -0
  108. package/build/lib/web/development/components/InfoGroup/index.js +3 -0
  109. package/build/lib/web/development/components/InfoGroup/index.js.map +1 -0
  110. package/build/lib/web/development/components/InfoGroup/infoGroupTokens.js +49 -0
  111. package/build/lib/web/development/components/InfoGroup/infoGroupTokens.js.map +1 -0
  112. package/build/lib/web/development/components/InfoGroup/types.js +2 -0
  113. package/build/lib/web/development/components/InfoGroup/types.js.map +1 -0
  114. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +10 -4
  115. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  116. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +32 -8
  117. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  118. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js +2 -1
  119. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  120. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js +8 -4
  121. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  122. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js +1 -1
  123. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  124. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +25 -124
  125. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  126. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js +6 -4
  127. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  128. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js +97 -30
  129. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js.map +1 -1
  130. package/build/lib/web/development/components/Input/TextInput/TextInput.js +123 -31
  131. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  132. package/build/lib/web/development/components/Typography/Text/Text.js +0 -1
  133. package/build/lib/web/development/components/Typography/Text/Text.js.map +1 -1
  134. package/build/lib/web/development/components/index.js +4 -0
  135. package/build/lib/web/development/components/index.js.map +1 -1
  136. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +5 -0
  137. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  138. package/build/lib/web/development/utils/useControlledDropdownInput/index.js +2 -0
  139. package/build/lib/web/development/utils/useControlledDropdownInput/index.js.map +1 -0
  140. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +108 -0
  141. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  142. package/build/lib/web/production/components/Accordion/AccordionItemHeader.js +18 -2
  143. package/build/lib/web/production/components/Accordion/AccordionItemHeader.js.map +1 -1
  144. package/build/lib/web/production/components/Accordion/StyledAccordionButton.web.js +4 -3
  145. package/build/lib/web/production/components/Accordion/StyledAccordionButton.web.js.map +1 -1
  146. package/build/lib/web/production/components/Accordion/commonStyles.js +1 -11
  147. package/build/lib/web/production/components/Accordion/commonStyles.js.map +1 -1
  148. package/build/lib/web/production/components/ActionList/ActionListItem.js +2 -1
  149. package/build/lib/web/production/components/ActionList/ActionListItem.js.map +1 -1
  150. package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js +6 -3
  151. package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  152. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +24 -3
  153. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  154. package/build/lib/web/production/components/Button/BaseButton/StyledBaseButton.web.js +14 -2
  155. package/build/lib/web/production/components/Button/BaseButton/StyledBaseButton.web.js.map +1 -1
  156. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +19 -0
  157. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  158. package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
  159. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  160. package/build/lib/web/production/components/Dropdown/DropdownButton.js +4 -1
  161. package/build/lib/web/production/components/Dropdown/DropdownButton.js.map +1 -1
  162. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js +4 -2
  163. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  164. package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js +180 -0
  165. package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js.map +1 -0
  166. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js +2 -1
  167. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js.map +1 -1
  168. package/build/lib/web/production/components/Dropdown/index.js +1 -0
  169. package/build/lib/web/production/components/Dropdown/index.js.map +1 -1
  170. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  171. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +40 -0
  172. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  173. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/index.js +2 -0
  174. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/index.js.map +1 -0
  175. package/build/lib/web/production/components/Icons/index.js +1 -0
  176. package/build/lib/web/production/components/Icons/index.js.map +1 -1
  177. package/build/lib/web/production/components/Icons/useIconProps/iconSizeMap.js +14 -0
  178. package/build/lib/web/production/components/Icons/useIconProps/iconSizeMap.js.map +1 -0
  179. package/build/lib/web/production/components/Icons/useIconProps/useIconProps.js +3 -12
  180. package/build/lib/web/production/components/Icons/useIconProps/useIconProps.js.map +1 -1
  181. package/build/lib/web/production/components/InfoGroup/InfoGroup.web.js +448 -0
  182. package/build/lib/web/production/components/InfoGroup/InfoGroup.web.js.map +1 -0
  183. package/build/lib/web/production/components/InfoGroup/InfoGroupContext.js +26 -0
  184. package/build/lib/web/production/components/InfoGroup/InfoGroupContext.js.map +1 -0
  185. package/build/lib/web/production/components/InfoGroup/index.js +3 -0
  186. package/build/lib/web/production/components/InfoGroup/index.js.map +1 -0
  187. package/build/lib/web/production/components/InfoGroup/infoGroupTokens.js +49 -0
  188. package/build/lib/web/production/components/InfoGroup/infoGroupTokens.js.map +1 -0
  189. package/build/lib/web/production/components/InfoGroup/types.js +2 -0
  190. package/build/lib/web/production/components/InfoGroup/types.js.map +1 -0
  191. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +10 -4
  192. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  193. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +32 -8
  194. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  195. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js +2 -1
  196. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  197. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js +8 -4
  198. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  199. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js +1 -1
  200. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  201. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +25 -124
  202. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  203. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js +6 -4
  204. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  205. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js +97 -30
  206. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js.map +1 -1
  207. package/build/lib/web/production/components/Input/TextInput/TextInput.js +123 -31
  208. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  209. package/build/lib/web/production/components/Typography/Text/Text.js +0 -1
  210. package/build/lib/web/production/components/Typography/Text/Text.js.map +1 -1
  211. package/build/lib/web/production/components/index.js +4 -0
  212. package/build/lib/web/production/components/index.js.map +1 -1
  213. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +5 -0
  214. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  215. package/build/lib/web/production/utils/useControlledDropdownInput/index.js +2 -0
  216. package/build/lib/web/production/utils/useControlledDropdownInput/index.js.map +1 -0
  217. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +108 -0
  218. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  219. package/build/types/components/index.d.ts +4446 -3019
  220. package/build/types/components/index.native.d.ts +2782 -2661
  221. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sources":["../../../../../../../src/components/Input/SearchInput/SearchInput.tsx"],"sourcesContent":["import React, { useState } 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 isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon, SearchIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\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 DataAnalyticsAttribute,\n} from '~utils/types';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\n\ntype SearchInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'helpText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Event handler to handle the onClick event for clear button.\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n /**\n * Toggle the visibility of the search icon.\n *\n * @default true\n */\n showSearchIcon?: boolean;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype SearchInputPropsWithA11yLabel = {\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 SearchInputPropsWithLabel = {\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 SearchInputProps = (SearchInputPropsWithA11yLabel | SearchInputPropsWithLabel) &\n SearchInputCommonProps;\n\n// need to do this to tell TS to infer type as SearchInput 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 _SearchInput: React.ForwardRefRenderFunction<BladeElementRef, SearchInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n defaultValue,\n name,\n value,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n helpText,\n onClearButtonClick,\n isLoading,\n autoCapitalize,\n autoFocus,\n testID,\n size = 'medium',\n showSearchIcon = true,\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 {\n triggererWrapperRef,\n onTriggerKeydown,\n onTriggerClick,\n dropdownTriggerer,\n } = useDropdown();\n const isInsideDropdown = dropdownTriggerer === 'SearchInput';\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton) {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && 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\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\n return null;\n };\n\n return (\n <BaseBox position=\"relative\">\n <BaseInput\n id=\"searchinput\"\n componentName={MetaConstants.SearchInput}\n ref={mergedRef}\n isDropdownTrigger={true}\n setInputWrapperRef={\n isInsideDropdown\n ? (wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }\n : undefined\n }\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n name={name}\n onKeyDown={isInsideDropdown ? onTriggerKeydown : undefined}\n onChange={({ name, value }) => {\n if (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 onChange?.({ name, value });\n }}\n onClick={(e) => {\n if (isDisabled) return;\n if (isInsideDropdown) {\n onTriggerClick();\n }\n onClick?.(e);\n }}\n onFocus={onFocus}\n onBlur={onBlur}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n leadingIcon={showSearchIcon ? SearchIcon : undefined}\n trailingInteractionElement={renderInteractionElement()}\n helpText={helpText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type: 'search',\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n </BaseBox>\n );\n};\n\nconst SearchInput = assignWithoutSideEffects(React.forwardRef(_SearchInput), {\n displayName: 'SearchInput',\n componentId: dropdownComponentIds.triggers.SearchInput,\n});\n\nexport type { SearchInputProps };\nexport { SearchInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_SearchInput","_ref","ref","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","defaultValue","name","value","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","helpText","onClearButtonClick","isLoading","autoCapitalize","autoFocus","testID","_ref$size","size","_ref$showSearchIcon","showSearchIcon","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useDropdown","useDropdown","triggererWrapperRef","onTriggerKeydown","onTriggerClick","dropdownTriggerer","isInsideDropdown","useEffect","Boolean","renderInteractionElement","_jsx","Spinner","color","IconButton","icon","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","BaseBox","position","children","BaseInput","_objectSpread","id","componentName","MetaConstants","SearchInput","isDropdownTrigger","setInputWrapperRef","wrapperNode","undefined","hideLabelText","onKeyDown","_ref2","length","e","leadingIcon","SearchIcon","trailingInteractionElement","getKeyboardAndAutocompleteProps","type","assignWithoutSideEffects","forwardRef","displayName","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
1
+ {"version":3,"file":"SearchInput.js","sources":["../../../../../../../src/components/Input/SearchInput/SearchInput.tsx"],"sourcesContent":["import React, { useEffect, useState } 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 isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon, SearchIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\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 DataAnalyticsAttribute,\n} from '~utils/types';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport { DropdownOverlay, InputDropdownButton } from '~components/Dropdown';\nimport { Divider } from '~components/Divider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\n\ntype SearchInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'helpText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Event handler to handle the onClick event for clear button.\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n /**\n * Toggle the visibility of the search icon.\n *\n * @default true\n */\n showSearchIcon?: boolean;\n /**\n * Optional trailing to be shown at the end of the input.\n */\n trailing?: React.ReactNode;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype SearchInputPropsWithA11yLabel = {\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 SearchInputPropsWithLabel = {\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 SearchInputProps = (SearchInputPropsWithA11yLabel | SearchInputPropsWithLabel) &\n SearchInputCommonProps;\n\n// need to do this to tell TS to infer type as SearchInput 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 _SearchInput: React.ForwardRefRenderFunction<BladeElementRef, SearchInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n defaultValue,\n name,\n value,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n helpText,\n onClearButtonClick,\n isLoading,\n autoCapitalize,\n autoFocus,\n testID,\n size = 'medium',\n showSearchIcon = true,\n trailing,\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 [isTrailingDropDownOpen, setIsTrailingDropDownOpen] = useState(false);\n const {\n triggererWrapperRef,\n onTriggerKeydown,\n onTriggerClick,\n dropdownTriggerer,\n close: closeParentDropDown,\n isOpen: isParentDropDownOpen,\n } = useDropdown();\n const isInsideDropdown = dropdownTriggerer === 'SearchInput';\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n useEffect(() => {\n if (isParentDropDownOpen && isTrailingDropDownOpen) {\n setIsTrailingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [closeParentDropDown, isParentDropDownOpen]);\n\n useEffect(() => {\n if (isTrailingDropDownOpen && isParentDropDownOpen) {\n closeParentDropDown();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setIsTrailingDropDownOpen, isTrailingDropDownOpen]);\n\n const trailingDropdown =\n trailing && getComponentId(trailing as React.ReactElement) === 'Dropdown' ? trailing : null;\n\n const renderTrailingDropDown = (): React.ReactElement | null => {\n if (!trailingDropdown) {\n return null;\n }\n return React.cloneElement(trailingDropdown as React.ReactElement, {\n selectionType: 'single',\n isOpen: isTrailingDropDownOpen,\n onOpenChange: (isOpen: boolean) => {\n setIsTrailingDropDownOpen(isOpen);\n },\n children: React.Children.map(\n (trailingDropdown as React.ReactElement).props.children,\n (child) => {\n if (child.type === InputDropdownButton) {\n return React.cloneElement(child, {\n _isInsideSearchInput: true,\n });\n }\n if (child.type === DropdownOverlay) {\n return React.cloneElement(child, {\n referenceRef: triggererWrapperRef,\n _isNestedDropdown: true,\n defaultPlacement: 'bottom-end',\n });\n }\n return child;\n },\n ),\n });\n };\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && 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\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\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton && trailingDropdown) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" />\n </BaseBox>\n );\n }\n if (shouldShowClearButton) {\n return renderClearButton();\n }\n\n return null;\n };\n\n return (\n <BaseBox position=\"relative\">\n <BaseInput\n id=\"searchinput\"\n componentName={MetaConstants.SearchInput}\n ref={mergedRef}\n isDropdownTrigger={true}\n setInputWrapperRef={\n isInsideDropdown || isTrailingDropDownOpen\n ? (wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }\n : undefined\n }\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n name={name}\n onKeyDown={isInsideDropdown ? onTriggerKeydown : undefined}\n onChange={({ name, value }) => {\n if (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 onChange?.({ name, value });\n }}\n onClick={(e) => {\n if (isDisabled) return;\n if (isInsideDropdown) {\n onTriggerClick();\n }\n onClick?.(e);\n }}\n onFocus={onFocus}\n onBlur={onBlur}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n leadingIcon={showSearchIcon ? SearchIcon : undefined}\n trailingInteractionElement={renderInteractionElement()}\n trailingDropDown={renderTrailingDropDown()}\n helpText={helpText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type: 'search',\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n </BaseBox>\n );\n};\n\nconst SearchInput = assignWithoutSideEffects(React.forwardRef(_SearchInput), {\n displayName: 'SearchInput',\n componentId: dropdownComponentIds.triggers.SearchInput,\n});\n\nexport type { SearchInputProps };\nexport { SearchInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_SearchInput","_ref","ref","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","defaultValue","name","value","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","helpText","onClearButtonClick","isLoading","autoCapitalize","autoFocus","testID","_ref$size","size","_ref$showSearchIcon","showSearchIcon","trailing","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isTrailingDropDownOpen","setIsTrailingDropDownOpen","_useDropdown","useDropdown","triggererWrapperRef","onTriggerKeydown","onTriggerClick","dropdownTriggerer","closeParentDropDown","close","isParentDropDownOpen","isOpen","isInsideDropdown","useEffect","Boolean","trailingDropdown","getComponentId","renderTrailingDropDown","cloneElement","selectionType","onOpenChange","children","Children","map","props","child","type","InputDropdownButton","_isInsideSearchInput","DropdownOverlay","referenceRef","_isNestedDropdown","defaultPlacement","renderClearButton","_jsx","IconButton","icon","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","renderInteractionElement","Spinner","color","_jsxs","BaseBox","display","gap","Divider","orientation","position","BaseInput","_objectSpread","id","componentName","MetaConstants","SearchInput","isDropdownTrigger","setInputWrapperRef","wrapperNode","undefined","hideLabelText","onKeyDown","_ref2","length","e","leadingIcon","SearchIcon","trailingInteractionElement","trailingDropDown","getKeyboardAndAutocompleteProps","assignWithoutSideEffects","forwardRef","displayName","componentId","dropdownComponentIds","triggers"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGA;AACA;AACA,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,aAAmB,EAA4C;AACpF,EAAA,OAAOC,eAAe,EAAE,KAAK,cAAc,CAAA;AAC7C,CAAC,CAAA;AAED,IAAMC,YAA+E,GAAG,SAAlFA,YAA+EA,CAAAC,IAAA,EA0BnFC,GAAG,EACc;AAAA,EAAA,IAzBfC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,kBAAkB,GAAAH,IAAA,CAAlBG,kBAAkB;IAAAC,kBAAA,GAAAJ,IAAA,CAClBK,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA;IACrBE,WAAW,GAAAN,IAAA,CAAXM,WAAW;IACXC,YAAY,GAAAP,IAAA,CAAZO,YAAY;IACZC,IAAI,GAAAR,IAAA,CAAJQ,IAAI;IACJC,KAAK,GAAAT,IAAA,CAALS,KAAK;IACLC,SAAQ,GAAAV,IAAA,CAARU,QAAQ;IACRC,QAAO,GAAAX,IAAA,CAAPW,OAAO;IACPC,OAAO,GAAAZ,IAAA,CAAPY,OAAO;IACPC,MAAM,GAAAb,IAAA,CAANa,MAAM;IACNC,QAAQ,GAAAd,IAAA,CAARc,QAAQ;IACRC,UAAU,GAAAf,IAAA,CAAVe,UAAU;IACVC,QAAQ,GAAAhB,IAAA,CAARgB,QAAQ;IACRC,kBAAkB,GAAAjB,IAAA,CAAlBiB,kBAAkB;IAClBC,SAAS,GAAAlB,IAAA,CAATkB,SAAS;IACTC,cAAc,GAAAnB,IAAA,CAAdmB,cAAc;IACdC,SAAS,GAAApB,IAAA,CAAToB,SAAS;IACTC,MAAM,GAAArB,IAAA,CAANqB,MAAM;IAAAC,SAAA,GAAAtB,IAAA,CACNuB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;IAAAE,mBAAA,GAAAxB,IAAA,CACfyB,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,mBAAA;IACrBE,QAAQ,GAAA1B,IAAA,CAAR0B,QAAQ;AACLC,IAAAA,IAAI,GAAAC,wBAAA,CAAA5B,IAAA,EAAA6B,SAAA,CAAA,CAAA;AAIT,EAAA,IAAMC,YAAY,GAAGC,cAAK,CAACC,MAAM,CAA2B,IAAI,CAAC,CAAA;AACjE,EAAA,IAAMC,SAAS,GAAGC,YAAY,CAACjC,GAAG,EAAE6B,YAAY,CAAC,CAAA;AACjD,EAAA,IAAAK,SAAA,GAA0DC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAlEI,IAAAA,qBAAqB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,wBAAwB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AACtD,EAAA,IAAAI,UAAA,GAA4DL,QAAQ,CAAC,KAAK,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAApEE,IAAAA,sBAAsB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,yBAAyB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACxD,EAAA,IAAAG,YAAA,GAOIC,WAAW,EAAE;IANfC,mBAAmB,GAAAF,YAAA,CAAnBE,mBAAmB;IACnBC,gBAAgB,GAAAH,YAAA,CAAhBG,gBAAgB;IAChBC,cAAc,GAAAJ,YAAA,CAAdI,cAAc;IACdC,iBAAiB,GAAAL,YAAA,CAAjBK,iBAAiB;IACVC,mBAAmB,GAAAN,YAAA,CAA1BO,KAAK;IACGC,oBAAoB,GAAAR,YAAA,CAA5BS,MAAM,CAAA;AAER,EAAA,IAAMC,gBAAgB,GAAGL,iBAAiB,KAAK,aAAa,CAAA;EAE5DnB,cAAK,CAACyB,SAAS,CAAC,YAAM;IACpBhB,wBAAwB,CAACiB,OAAO,CAAClD,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAZA,YAAY,GAAIE,KAAK,CAAC,CAAC,CAAA;AAC1D,GAAC,EAAE,CAACF,YAAY,EAAEE,KAAK,CAAC,CAAC,CAAA;AAEzB+C,EAAAA,SAAS,CAAC,YAAM;IACd,IAAIH,oBAAoB,IAAIV,sBAAsB,EAAE;MAClDC,yBAAyB,CAAC,KAAK,CAAC,CAAA;AAClC,KAAA;AACA;AACF,GAAC,EAAE,CAACO,mBAAmB,EAAEE,oBAAoB,CAAC,CAAC,CAAA;AAE/CG,EAAAA,SAAS,CAAC,YAAM;IACd,IAAIb,sBAAsB,IAAIU,oBAAoB,EAAE;AAClDF,MAAAA,mBAAmB,EAAE,CAAA;AACvB,KAAA;AACA;AACF,GAAC,EAAE,CAACP,yBAAyB,EAAED,sBAAsB,CAAC,CAAC,CAAA;AAEvD,EAAA,IAAMe,gBAAgB,GACpBhC,QAAQ,IAAIiC,cAAc,CAACjC,QAA8B,CAAC,KAAK,UAAU,GAAGA,QAAQ,GAAG,IAAI,CAAA;AAE7F,EAAA,IAAMkC,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAoC;IAC9D,IAAI,CAACF,gBAAgB,EAAE;AACrB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACA,IAAA,oBAAO3B,cAAK,CAAC8B,YAAY,CAACH,gBAAgB,EAAwB;AAChEI,MAAAA,aAAa,EAAE,QAAQ;AACvBR,MAAAA,MAAM,EAAEX,sBAAsB;AAC9BoB,MAAAA,YAAY,EAAE,SAAAA,YAACT,CAAAA,MAAe,EAAK;QACjCV,yBAAyB,CAACU,MAAM,CAAC,CAAA;OAClC;AACDU,MAAAA,QAAQ,EAAEjC,cAAK,CAACkC,QAAQ,CAACC,GAAG,CACzBR,gBAAgB,CAAwBS,KAAK,CAACH,QAAQ,EACvD,UAACI,KAAK,EAAK;AACT,QAAA,IAAIA,KAAK,CAACC,IAAI,KAAKC,mBAAmB,EAAE;AACtC,UAAA,oBAAOvC,cAAK,CAAC8B,YAAY,CAACO,KAAK,EAAE;AAC/BG,YAAAA,oBAAoB,EAAE,IAAA;AACxB,WAAC,CAAC,CAAA;AACJ,SAAA;AACA,QAAA,IAAIH,KAAK,CAACC,IAAI,KAAKG,eAAe,EAAE;AAClC,UAAA,oBAAOzC,cAAK,CAAC8B,YAAY,CAACO,KAAK,EAAE;AAC/BK,YAAAA,YAAY,EAAE1B,mBAAmB;AACjC2B,YAAAA,iBAAiB,EAAE,IAAI;AACvBC,YAAAA,gBAAgB,EAAE,YAAA;AACpB,WAAC,CAAC,CAAA;AACJ,SAAA;AACA,QAAA,OAAOP,KAAK,CAAA;OAEhB,CAAA;AACF,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,IAAMQ,iBAAiB,GAAG,SAApBA,iBAAiBA,GAA6B;IAClD,oBACEC,GAAA,CAACC,UAAU,EAAA;AACTvD,MAAAA,IAAI,EAAC,QAAQ;AACbwD,MAAAA,IAAI,EAAEC,SAAU;MAChBrE,OAAO,EAAE,SAAAA,OAAAA,GAAM;AAAA,QAAA,IAAAsE,qBAAA,CAAA;QACb,IAAIC,OAAO,CAACzE,KAAK,CAAC,IAAIqB,YAAY,CAACqD,OAAO,EAAE;AAC1C;AACA,UAAA,IAAIvF,aAAa,CAACkC,YAAY,CAACqD,OAAO,CAAC,EAAE;AACvCrD,YAAAA,YAAY,CAACqD,OAAO,CAACC,KAAK,EAAE,CAAA;AAC5BtD,YAAAA,YAAY,CAACqD,OAAO,CAACE,KAAK,EAAE,CAAA;AAC9B,WAAC,MAAM,IAAIvD,YAAY,CAACqD,OAAO,YAAYG,gBAAgB,EAAE;AAC3DxD,YAAAA,YAAY,CAACqD,OAAO,CAAC1E,KAAK,GAAG,EAAE,CAAA;AAC/BqB,YAAAA,YAAY,CAACqD,OAAO,CAACE,KAAK,EAAE,CAAA;AAC9B,WAAA;AACF,SAAA;;AAEA;AACApE,QAAAA,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAkB,EAAI,CAAA;AACtBa,QAAAA,YAAY,KAAZA,IAAAA,IAAAA,YAAY,KAAAmD,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAZnD,YAAY,CAAEqD,OAAO,MAAA,IAAA,IAAAF,qBAAA,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAuBI,KAAK,EAAE,CAAA;QAC9B7C,wBAAwB,CAAC,KAAK,CAAC,CAAA;OAC/B;AACFzB,MAAAA,UAAU,EAAEA,UAAW;AACvBZ,MAAAA,kBAAkB,EAAC,qBAAA;AAAqB,KACzC,CAAC,CAAA;GAEL,CAAA;AAED,EAAA,IAAMoF,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAAoB;AAChD,IAAA,IAAIrE,SAAS,EAAE;MACb,oBAAO2D,GAAA,CAACW,OAAO,EAAA;AAACrF,QAAAA,kBAAkB,EAAC,iBAAiB;AAACsF,QAAAA,KAAK,EAAC,SAAA;AAAS,OAAE,CAAC,CAAA;AACzE,KAAA;IAEA,IAAIlD,qBAAqB,IAAImB,gBAAgB,EAAE;MAC7C,oBACEgC,IAAA,CAACC,OAAO,EAAA;AAACC,QAAAA,OAAO,EAAC,MAAM;AAACC,QAAAA,GAAG,EAAC,WAAW;QAAA7B,QAAA,EAAA,CACpCY,iBAAiB,EAAE,EAAC,GAAC,eAAAC,GAAA,CAACiB,OAAO,EAAA;AAACC,UAAAA,WAAW,EAAC,UAAA;AAAU,SAAE,CAAC,CAAA;AAAA,OACjD,CAAC,CAAA;AAEd,KAAA;AACA,IAAA,IAAIxD,qBAAqB,EAAE;MACzB,OAAOqC,iBAAiB,EAAE,CAAA;AAC5B,KAAA;AAEA,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;EAED,oBACEC,GAAA,CAACc,OAAO,EAAA;AAACK,IAAAA,QAAQ,EAAC,UAAU;AAAAhC,IAAAA,QAAA,eAC1Ba,GAAA,CAACoB,SAAS,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACRC,MAAAA,EAAE,EAAC,aAAa;MAChBC,aAAa,EAAEC,aAAa,CAACC,WAAY;AACzCrG,MAAAA,GAAG,EAAEgC,SAAU;AACfsE,MAAAA,iBAAiB,EAAE,IAAK;AACxBC,MAAAA,kBAAkB,EAChBjD,gBAAgB,IAAIZ,sBAAsB,GACtC,UAAC8D,WAAW,EAAK;QACf1D,mBAAmB,CAACoC,OAAO,GAAGsB,WAAW,CAAA;AAC3C,OAAC,GACDC,SACL;AACDxG,MAAAA,KAAK,EAAEA,KAAgB;AACvBC,MAAAA,kBAAkB,EAAEA,kBAAmB;AACvCwG,MAAAA,aAAa,EAAE,CAAClD,OAAO,CAACvD,KAAK,CAAE;AAC/BG,MAAAA,aAAa,EAAEA,aAAc;AAC7BC,MAAAA,WAAW,EAAEA,WAAY;AACzBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BE,MAAAA,KAAK,EAAEA,KAAM;AACbD,MAAAA,IAAI,EAAEA,IAAK;AACXoG,MAAAA,SAAS,EAAErD,gBAAgB,GAAGP,gBAAgB,GAAG0D,SAAU;AAC3DhG,MAAAA,QAAQ,EAAE,SAAAA,QAAAmG,CAAAA,KAAA,EAAqB;AAAA,QAAA,IAAlBrG,IAAI,GAAAqG,KAAA,CAAJrG,IAAI;UAAEC,KAAK,GAAAoG,KAAA,CAALpG,KAAK,CAAA;AACtB,QAAA,IAAIA,KAAK,KAALA,IAAAA,IAAAA,KAAK,eAALA,KAAK,CAAEqG,MAAM,EAAE;AACjB;UACAtE,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChC,SAAA;QAEA,IAAID,qBAAqB,IAAI,EAAC9B,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,IAAAA,KAAK,CAAEqG,MAAM,CAAE,EAAA;AAC3C;UACAtE,wBAAwB,CAAC,KAAK,CAAC,CAAA;AACjC,SAAA;AAEA9B,QAAAA,SAAQ,KAARA,IAAAA,IAAAA,SAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAQ,CAAG;AAAEF,UAAAA,IAAI,EAAJA,IAAI;AAAEC,UAAAA,KAAK,EAALA,KAAAA;AAAM,SAAC,CAAC,CAAA;OAC3B;AACFE,MAAAA,OAAO,EAAE,SAAAA,OAACoG,CAAAA,CAAC,EAAK;AACd,QAAA,IAAIhG,UAAU,EAAE,OAAA;AAChB,QAAA,IAAIwC,gBAAgB,EAAE;AACpBN,UAAAA,cAAc,EAAE,CAAA;AAClB,SAAA;AACAtC,QAAAA,QAAO,aAAPA,QAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,QAAO,CAAGoG,CAAC,CAAC,CAAA;OACZ;AACFnG,MAAAA,OAAO,EAAEA,OAAQ;AACjBC,MAAAA,MAAM,EAAEA,MAAO;AACfC,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,UAAU,EAAEA,UAAW;AACvBiG,MAAAA,WAAW,EAAEvF,cAAc,GAAGwF,UAAU,GAAGP,SAAU;MACrDQ,0BAA0B,EAAE3B,wBAAwB,EAAG;MACvD4B,gBAAgB,EAAEvD,sBAAsB,EAAG;AAC3C5C,MAAAA,QAAQ,EAAEA,QAAAA;AACV;AAAA;AACAI,MAAAA,SAAS,EAAEA,SAAU;AACrBC,MAAAA,MAAM,EAAEA,MAAAA;AAAO,KAAA,EACX+F,+BAA+B,CAAC;AAClC/C,MAAAA,IAAI,EAAE,QAAQ;AACdlD,MAAAA,cAAc,EAAdA,cAAAA;AACF,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACFI,MAAAA,IAAI,EAAEA,IAAAA;AAAK,KAAA,EACPI,IAAI,CACT,CAAA;AAAC,GACK,CAAC,CAAA;AAEd,CAAC,CAAA;AAEK2E,IAAAA,WAAW,gBAAGe,wBAAwB,eAACtF,cAAK,CAACuF,UAAU,CAACvH,YAAY,CAAC,EAAE;AAC3EwH,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,WAAW,EAAEC,oBAAoB,CAACC,QAAQ,CAACpB,WAAAA;AAC7C,CAAC;;;;"}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
- import React__default, { useState } from 'react';
4
+ import React__default, { useState, useRef, useEffect } from 'react';
5
5
  import '../BaseInput/index.js';
6
6
  import { getKeyboardAndAutocompleteProps } from '../BaseInput/utils.js';
7
7
  import { useTaggedInput } from '../BaseInput/useTaggedInput.js';
@@ -16,18 +16,24 @@ import '../../../utils/assignWithoutSideEffects/index.js';
16
16
  import '../../../utils/index.js';
17
17
  import { useMergeRefs } from '../../../utils/useMergeRefs.js';
18
18
  import { hintMarginTop } from '../../Form/formTokens.js';
19
- import { jsx } from 'react/jsx-runtime';
19
+ import '../../Divider/index.js';
20
+ import '../../../utils/isValidAllowedChildren/index.js';
21
+ import '../../Dropdown/index.js';
22
+ import { jsx, jsxs } from 'react/jsx-runtime';
20
23
  import { getPlatformType } from '../../../utils/getPlatformType/getPlatformType.js';
21
- import { Spinner } from '../../Spinner/Spinner/Spinner.js';
24
+ import { getComponentId } from '../../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
25
+ import { DropdownOverlay } from '../../Dropdown/DropdownOverlay.web.js';
22
26
  import { IconButton } from '../../Button/IconButton/IconButton.js';
23
27
  import CloseIcon from '../../Icons/CloseIcon/CloseIcon.js';
28
+ import { Spinner } from '../../Spinner/Spinner/Spinner.js';
29
+ import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
30
+ import { Divider } from '../../Divider/Divider.js';
24
31
  import { BaseInput } from '../BaseInput/BaseInput.js';
25
32
  import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
26
- import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
27
33
  import { CharacterCounter } from '../../Form/CharacterCounter/CharacterCounter.js';
28
34
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
29
35
 
30
- var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "type", "defaultValue", "name", "value", "maxCharacters", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "necessityIndicator", "validationState", "errorText", "helpText", "successText", "isRequired", "icon", "prefix", "showClearButton", "onClearButtonClick", "isLoading", "suffix", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "autoCapitalize", "testID", "size", "leadingIcon", "trailingIcon", "isTaggedInput", "tags", "onTagChange"];
36
+ var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "type", "defaultValue", "name", "value", "maxCharacters", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "necessityIndicator", "validationState", "errorText", "helpText", "successText", "isRequired", "icon", "prefix", "showClearButton", "onClearButtonClick", "isLoading", "suffix", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "autoCapitalize", "testID", "size", "leadingIcon", "trailingIcon", "isTaggedInput", "tags", "onTagChange", "trailing", "leading"];
31
37
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
32
38
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
33
39
  // need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists
@@ -36,6 +42,7 @@ var isReactNative = function isReactNative(_textInputRef) {
36
42
  return getPlatformType() === 'react-native';
37
43
  };
38
44
  var _TextInput = function _TextInput(_ref, ref) {
45
+ var _leading$name, _trailing$name, _ref3;
39
46
  var label = _ref.label,
40
47
  accessibilityLabel = _ref.accessibilityLabel,
41
48
  _ref$labelPosition = _ref.labelPosition,
@@ -77,6 +84,8 @@ var _TextInput = function _TextInput(_ref, ref) {
77
84
  isTaggedInput = _ref.isTaggedInput,
78
85
  tags = _ref.tags,
79
86
  onTagChange = _ref.onTagChange,
87
+ trailing = _ref.trailing,
88
+ leading = _ref.leading,
80
89
  rest = _objectWithoutProperties(_ref, _excluded);
81
90
  var textInputRef = React__default.useRef(null);
82
91
  var mergedRef = useMergeRefs(ref, textInputRef);
@@ -104,9 +113,88 @@ var _TextInput = function _TextInput(_ref, ref) {
104
113
  handleTaggedInputKeydown = _useTaggedInput.handleTaggedInputKeydown,
105
114
  handleTaggedInputChange = _useTaggedInput.handleTaggedInputChange,
106
115
  handleTagsClear = _useTaggedInput.handleTagsClear;
116
+ var _React$useState = React__default.useState(false),
117
+ _React$useState2 = _slicedToArray(_React$useState, 2),
118
+ isTrailingDropDownOpen = _React$useState2[0],
119
+ setIsTrailingDropDownOpen = _React$useState2[1];
120
+ var _React$useState3 = React__default.useState(false),
121
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
122
+ isLeadingDropDownOpen = _React$useState4[0],
123
+ setIsLeadingDropDownOpen = _React$useState4[1];
124
+ var textInputWrapperRef = useRef(null);
125
+ useEffect(function () {
126
+ if (isTrailingDropDownOpen && isLeadingDropDownOpen) {
127
+ setIsLeadingDropDownOpen(false);
128
+ }
129
+ // eslint-disable-next-line react-hooks/exhaustive-deps
130
+ }, [isTrailingDropDownOpen]);
131
+ useEffect(function () {
132
+ if (isLeadingDropDownOpen && isTrailingDropDownOpen) {
133
+ setIsTrailingDropDownOpen(false);
134
+ }
135
+ // eslint-disable-next-line react-hooks/exhaustive-deps
136
+ }, [isLeadingDropDownOpen]);
137
+ var leadingDropDown = leading && getComponentId(leading) === 'Dropdown' ? leading : null;
138
+ var trailingDropdown = trailing && getComponentId(trailing) === 'Dropdown' ? trailing : null;
139
+ // we need to look into name of component and check if it 's and icon or a dropdown
140
+ var _leadingIcon = leading && typeof leading === 'function' && (_leading$name = leading.name) !== null && _leading$name !== void 0 && _leading$name.endsWith('Icon') ? leading : undefined;
141
+ var _trailingIcon = trailing && typeof trailing === 'function' && (_trailing$name = trailing.name) !== null && _trailing$name !== void 0 && _trailing$name.endsWith('Icon') ? trailing : undefined;
142
+ var hasLeadingInteractionElement = !_leadingIcon && !leadingDropDown && leading;
143
+ var hasTrailingInteractionElement = !_trailingIcon && !trailingDropdown && trailing;
144
+ var renderDropdown = function renderDropdown(dropdown, isOpen, setIsOpen, defaultPlacement) {
145
+ if (!dropdown) {
146
+ return null;
147
+ }
148
+ return /*#__PURE__*/React__default.cloneElement(dropdown, {
149
+ selectionType: 'single',
150
+ isOpen: isOpen,
151
+ onOpenChange: function onOpenChange(isOpen) {
152
+ setIsOpen(isOpen);
153
+ },
154
+ children: React__default.Children.map(dropdown.props.children, function (child) {
155
+ if (child.type === DropdownOverlay) {
156
+ return /*#__PURE__*/React__default.cloneElement(child, {
157
+ referenceRef: textInputWrapperRef,
158
+ _isNestedDropdown: true,
159
+ defaultPlacement: defaultPlacement
160
+ });
161
+ }
162
+ return child;
163
+ })
164
+ });
165
+ };
166
+ var renderLeadingDropDown = renderDropdown(leadingDropDown, isLeadingDropDownOpen, setIsLeadingDropDownOpen, 'bottom-start');
167
+ var renderTrailingDropDown = renderDropdown(trailingDropdown, isTrailingDropDownOpen, setIsTrailingDropDownOpen, 'bottom-end');
107
168
  React__default.useEffect(function () {
108
169
  setShouldShowClearButton(Boolean(showClearButton && (defaultValue !== null && defaultValue !== void 0 ? defaultValue : value)));
109
170
  }, [showClearButton, defaultValue, value]);
171
+ var renderClearButton = function renderClearButton() {
172
+ return /*#__PURE__*/jsx(IconButton, {
173
+ size: "medium",
174
+ icon: CloseIcon,
175
+ onClick: function onClick() {
176
+ var _textInputRef$current;
177
+ if (isEmpty(value) && textInputRef.current) {
178
+ // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function
179
+ if (isReactNative(textInputRef.current)) {
180
+ textInputRef.current.clear();
181
+ textInputRef.current.focus();
182
+ } else if (textInputRef.current instanceof HTMLInputElement) {
183
+ textInputRef.current.value = '';
184
+ textInputRef.current.focus();
185
+ }
186
+ }
187
+ handleTagsClear();
188
+ // if the input field is controlled just call the click handler and the value change shall be left upto the consumer
189
+ onClearButtonClick === null || onClearButtonClick === void 0 ? void 0 : onClearButtonClick();
190
+ textInputRef === null || textInputRef === void 0 ? void 0 : (_textInputRef$current = textInputRef.current) === null || _textInputRef$current === void 0 ? void 0 : _textInputRef$current.focus();
191
+ setShouldShowClearButton(false);
192
+ },
193
+ isDisabled: isDisabled,
194
+ accessibilityLabel: "Clear Input Content"
195
+ });
196
+ };
197
+ var hasTrailingDropDown = Boolean(trailingDropdown);
110
198
  var renderInteractionElement = function renderInteractionElement() {
111
199
  if (isLoading) {
112
200
  return /*#__PURE__*/jsx(Spinner, {
@@ -114,38 +202,39 @@ var _TextInput = function _TextInput(_ref, ref) {
114
202
  color: "primary"
115
203
  });
116
204
  }
117
- if (shouldShowClearButton) {
118
- return /*#__PURE__*/jsx(IconButton, {
119
- size: "medium",
120
- icon: CloseIcon,
121
- onClick: function onClick() {
122
- var _textInputRef$current;
123
- if (isEmpty(value) && textInputRef.current) {
124
- // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function
125
- if (isReactNative(textInputRef.current)) {
126
- textInputRef.current.clear();
127
- textInputRef.current.focus();
128
- } else if (textInputRef.current instanceof HTMLInputElement) {
129
- textInputRef.current.value = '';
130
- textInputRef.current.focus();
131
- }
132
- }
133
- handleTagsClear();
134
- // if the input field is controlled just call the click handler and the value change shall be left upto the consumer
135
- onClearButtonClick === null || onClearButtonClick === void 0 ? void 0 : onClearButtonClick();
136
- textInputRef === null || textInputRef === void 0 ? void 0 : (_textInputRef$current = textInputRef.current) === null || _textInputRef$current === void 0 ? void 0 : _textInputRef$current.focus();
137
- setShouldShowClearButton(false);
138
- },
139
- isDisabled: isDisabled,
140
- accessibilityLabel: "Clear Input Content"
205
+ if (shouldShowClearButton && hasTrailingDropDown) {
206
+ return /*#__PURE__*/jsxs(BaseBox, {
207
+ display: "flex",
208
+ gap: "spacing.3",
209
+ children: [renderClearButton(), " ", /*#__PURE__*/jsx(Divider, {
210
+ orientation: "vertical"
211
+ })]
212
+ });
213
+ }
214
+ if (showClearButton && hasTrailingInteractionElement) {
215
+ return /*#__PURE__*/jsxs(BaseBox, {
216
+ display: "flex",
217
+ gap: "spacing.3",
218
+ children: [renderClearButton(), " ", /*#__PURE__*/jsx(Divider, {
219
+ orientation: "vertical"
220
+ }), " ", trailing]
141
221
  });
142
222
  }
223
+ if (shouldShowClearButton) {
224
+ return renderClearButton();
225
+ }
226
+ if (hasTrailingInteractionElement) {
227
+ return trailing;
228
+ }
143
229
  return null;
144
230
  };
145
231
  return /*#__PURE__*/jsx(BaseInput, _objectSpread(_objectSpread({
146
232
  id: "textinput",
147
233
  componentName: MetaConstants.TextInput,
148
234
  ref: mergedRef,
235
+ setInputWrapperRef: function setInputWrapperRef(wrapperNode) {
236
+ textInputWrapperRef.current = wrapperNode;
237
+ },
149
238
  label: label,
150
239
  accessibilityLabel: accessibilityLabel,
151
240
  hideLabelText: !Boolean(label),
@@ -163,6 +252,9 @@ var _TextInput = function _TextInput(_ref, ref) {
163
252
  maxTagRows: "single",
164
253
  activeTagIndex: activeTagIndex,
165
254
  setActiveTagIndex: setActiveTagIndex,
255
+ leadingDropDown: renderLeadingDropDown,
256
+ trailingDropDown: renderTrailingDropDown,
257
+ leadingInteractionElement: hasLeadingInteractionElement ? leading : null,
166
258
  onChange: function onChange(_ref2) {
167
259
  var name = _ref2.name,
168
260
  value = _ref2.value;
@@ -199,10 +291,10 @@ var _TextInput = function _TextInput(_ref, ref) {
199
291
  isDisabled: isDisabled,
200
292
  necessityIndicator: necessityIndicator,
201
293
  isRequired: isRequired,
202
- leadingIcon: leadingIcon !== null && leadingIcon !== void 0 ? leadingIcon : icon,
294
+ leadingIcon: (_ref3 = _leadingIcon !== null && _leadingIcon !== void 0 ? _leadingIcon : leadingIcon) !== null && _ref3 !== void 0 ? _ref3 : icon,
203
295
  prefix: prefix,
204
296
  trailingInteractionElement: renderInteractionElement(),
205
- trailingIcon: trailingIcon,
297
+ trailingIcon: _trailingIcon !== null && _trailingIcon !== void 0 ? _trailingIcon : trailingIcon,
206
298
  suffix: suffix,
207
299
  validationState: validationState,
208
300
  errorText: errorText,
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.js","sources":["../../../../../../../src/components/Input/TextInput/TextInput.tsx"],"sourcesContent":["import React, { useState } 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 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 DataAnalyticsAttribute,\n} from '~utils/types';\nimport { hintMarginTop } from '~components/Form/formTokens';\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 | '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 | 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 `leadingIcon` 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} & 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 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 ...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 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,\n name,\n value,\n inputRef: textInputRef,\n });\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (defaultValue ?? value)));\n }, [showClearButton, defaultValue, value]);\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton) {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && 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\n return null;\n };\n\n return (\n <BaseInput\n id=\"textinput\"\n componentName={MetaConstants.TextInput}\n ref={mergedRef}\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n name={name}\n maxCharacters={maxCharacters}\n isDropdownTrigger={isTaggedInput}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n showAllTags={isInputFocussed}\n maxTagRows=\"single\"\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n onChange={({ name, value }) => {\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 onChange?.({ 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 }}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n leadingIcon={leadingIcon ?? icon}\n prefix={prefix}\n trailingInteractionElement={renderInteractionElement()}\n trailingIcon={trailingIcon}\n suffix={suffix}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n trailingFooterSlot={(value) => {\n return maxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter\n currentCount={value?.length ?? 0}\n maxCount={maxCharacters}\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","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","_ref$type","type","defaultValue","name","value","maxCharacters","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","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isInputFocussed","setIsInputFocussed","_useTaggedInput","useTaggedInput","inputRef","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","useEffect","Boolean","renderInteractionElement","_jsx","Spinner","color","IconButton","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","BaseInput","_objectSpread","id","componentName","MetaConstants","TextInput","hideLabelText","isDropdownTrigger","undefined","showAllTags","maxTagRows","_ref2","length","e","onKeyDown","trailingInteractionElement","trailingFooterSlot","_value$length","BaseBox","marginTop","hintMarginTop","marginRight","children","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 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';\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 | '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 | 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} & 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 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 ...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 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,\n name,\n value,\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 =\n leading && typeof leading === 'function' && leading.name?.endsWith('Icon')\n ? (leading as IconComponent)\n : undefined;\n\n const _trailingIcon: IconComponent | undefined =\n trailing && typeof trailing === 'function' && trailing.name?.endsWith('Icon')\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 ?? value)));\n }, [showClearButton, defaultValue, value]);\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && 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 accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n name={name}\n maxCharacters={maxCharacters}\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 }) => {\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 onChange?.({ 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 }}\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 maxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter\n currentCount={value?.length ?? 0}\n maxCount={maxCharacters}\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","_leading$name","_trailing$name","_ref3","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","_ref$type","type","defaultValue","name","value","maxCharacters","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","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isInputFocussed","setIsInputFocussed","_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","endsWith","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","_objectSpread","id","componentName","MetaConstants","TextInput","setInputWrapperRef","wrapperNode","hideLabelText","isDropdownTrigger","showAllTags","maxTagRows","trailingDropDown","leadingInteractionElement","_ref2","length","e","onKeyDown","trailingInteractionElement","trailingFooterSlot","_value$length","marginTop","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","getKeyboardAndAutocompleteProps","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
@@ -81,7 +81,6 @@ var getTextProps = function getTextProps(_ref) {
81
81
  props.lineHeight = 50;
82
82
  props.fontWeight = 'regular';
83
83
  }
84
- props.fontStyle = 'italic';
85
84
  }
86
85
  return props;
87
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sources":["../../../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport { BaseText } from '../BaseText';\nimport type { BaseTextProps, BaseTextSizes } from '../BaseText/types';\nimport { useValidateAsProp } from '../utils';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport type { BladeElementRef, TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\n\nconst validAsValues = ['p', 'span', 'div', 'abbr', 'figcaption', 'cite', 'q', 'label'] as const;\ntype TextCommonProps = {\n as?: typeof validAsValues[number];\n truncateAfterLines?: number;\n children: React.ReactNode;\n weight?: Extract<BaseTextProps['fontWeight'], 'regular' | 'medium' | 'semibold'>;\n /**\n * Overrides the color of the Text component.\n *\n * **Note** This takes priority over `type` and `contrast` prop to decide color of text\n */\n color?: BaseTextProps['color'];\n textAlign?: BaseTextProps['textAlign'];\n textDecorationLine?: BaseTextProps['textDecorationLine'];\n wordBreak?: BaseTextProps['wordBreak'];\n} & TestID &\n StyledPropsBlade;\n\nexport type TextVariant = 'body' | 'caption';\n\ntype TextBodyVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'body'>;\n size?: Extract<BaseTextSizes, 'xsmall' | 'small' | 'medium' | 'large'>;\n};\n\ntype TextCaptionVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'caption'>;\n size?: Extract<BaseTextSizes, 'small' | 'medium'>;\n};\n\nexport type TextProps<T> = T extends { variant: infer Variant }\n ? Variant extends 'caption'\n ? TextCaptionVariant\n : Variant extends 'body'\n ? TextBodyVariant\n : T\n : T;\n\ntype GetTextPropsReturn = Omit<BaseTextProps, 'children'>;\ntype GetTextProps<T extends { variant: TextVariant }> = Pick<\n TextProps<T>,\n 'variant' | 'weight' | 'size' | 'color' | 'testID' | 'textAlign' | 'textDecorationLine'\n>;\n\nconst getTextProps = <T extends { variant: TextVariant }>({\n variant,\n weight,\n size,\n color = 'surface.text.gray.normal',\n testID,\n textAlign,\n textDecorationLine,\n}: GetTextProps<T>): GetTextPropsReturn => {\n const props: GetTextPropsReturn = {\n color,\n fontSize: 100,\n fontWeight: weight ?? 'regular',\n fontStyle: 'normal',\n lineHeight: 100,\n fontFamily: 'text',\n componentName: 'text',\n testID,\n textAlign,\n textDecorationLine,\n };\n\n if (variant === 'caption') {\n // variant of caption can only have size of small\n if (size && size !== 'small' && size !== 'medium') {\n if (__DEV__) {\n throwBladeError({\n moduleName: 'Text',\n message: `size cannot be '${size}' when variant is 'caption'`,\n });\n }\n // Set size as small in case of invalid size\n size = 'small';\n }\n } else if (variant !== 'caption' && !size) {\n size = 'medium';\n }\n\n if (variant === 'body') {\n if (size === 'xsmall') {\n props.fontSize = 25;\n props.lineHeight = 25;\n }\n if (size === 'small') {\n props.fontSize = 75;\n props.lineHeight = 75;\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 100;\n }\n if (size === 'large') {\n props.fontSize = 200;\n props.lineHeight = 200;\n }\n }\n if (variant === 'caption') {\n if (size === 'small') {\n props.fontSize = 50;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n props.fontStyle = 'italic';\n }\n\n return props;\n};\n\nconst _Text = <T extends { variant: TextVariant }>(\n {\n as = 'p',\n variant = 'body',\n weight = 'regular',\n size,\n truncateAfterLines,\n children,\n color,\n testID,\n textAlign,\n textDecorationLine,\n wordBreak,\n ...styledProps\n }: TextProps<T>,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n const props: Omit<BaseTextProps, 'children'> = {\n as,\n truncateAfterLines,\n wordBreak,\n ...getTextProps({\n variant,\n weight,\n color,\n size,\n testID,\n textAlign,\n textDecorationLine,\n }),\n };\n\n useValidateAsProp({ componentName: 'Text', as, validAsValues });\n\n return (\n <BaseText ref={ref} {...props} {...getStyledProps(styledProps)}>\n {children}\n </BaseText>\n );\n};\n\nconst Text = assignWithoutSideEffects(React.forwardRef(_Text), {\n displayName: 'Text',\n componentId: 'Text',\n});\n\nexport { Text, getTextProps };\n"],"names":["validAsValues","getTextProps","_ref","variant","weight","size","_ref$color","color","testID","textAlign","textDecorationLine","props","fontSize","fontWeight","fontStyle","lineHeight","fontFamily","componentName","throwBladeError","moduleName","message","concat","_Text","_ref2","ref","_ref2$as","as","_ref2$variant","_ref2$weight","truncateAfterLines","children","wordBreak","styledProps","_objectWithoutProperties","_excluded","_objectSpread","useValidateAsProp","_jsx","BaseText","getStyledProps","Text","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","sources":["../../../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport { BaseText } from '../BaseText';\nimport type { BaseTextProps, BaseTextSizes } from '../BaseText/types';\nimport { useValidateAsProp } from '../utils';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport type { BladeElementRef, TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\n\nconst validAsValues = ['p', 'span', 'div', 'abbr', 'figcaption', 'cite', 'q', 'label'] as const;\ntype TextCommonProps = {\n as?: typeof validAsValues[number];\n truncateAfterLines?: number;\n children: React.ReactNode;\n weight?: Extract<BaseTextProps['fontWeight'], 'regular' | 'medium' | 'semibold'>;\n /**\n * Overrides the color of the Text component.\n *\n * **Note** This takes priority over `type` and `contrast` prop to decide color of text\n */\n color?: BaseTextProps['color'];\n textAlign?: BaseTextProps['textAlign'];\n textDecorationLine?: BaseTextProps['textDecorationLine'];\n wordBreak?: BaseTextProps['wordBreak'];\n} & TestID &\n StyledPropsBlade;\n\nexport type TextVariant = 'body' | 'caption';\n\ntype TextBodyVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'body'>;\n size?: Extract<BaseTextSizes, 'xsmall' | 'small' | 'medium' | 'large'>;\n};\n\ntype TextCaptionVariant = TextCommonProps & {\n variant?: Extract<TextVariant, 'caption'>;\n size?: Extract<BaseTextSizes, 'small' | 'medium'>;\n};\n\nexport type TextProps<T> = T extends { variant: infer Variant }\n ? Variant extends 'caption'\n ? TextCaptionVariant\n : Variant extends 'body'\n ? TextBodyVariant\n : T\n : T;\n\ntype GetTextPropsReturn = Omit<BaseTextProps, 'children'>;\ntype GetTextProps<T extends { variant: TextVariant }> = Pick<\n TextProps<T>,\n 'variant' | 'weight' | 'size' | 'color' | 'testID' | 'textAlign' | 'textDecorationLine'\n>;\n\nconst getTextProps = <T extends { variant: TextVariant }>({\n variant,\n weight,\n size,\n color = 'surface.text.gray.normal',\n testID,\n textAlign,\n textDecorationLine,\n}: GetTextProps<T>): GetTextPropsReturn => {\n const props: GetTextPropsReturn = {\n color,\n fontSize: 100,\n fontWeight: weight ?? 'regular',\n fontStyle: 'normal',\n lineHeight: 100,\n fontFamily: 'text',\n componentName: 'text',\n testID,\n textAlign,\n textDecorationLine,\n };\n\n if (variant === 'caption') {\n // variant of caption can only have size of small\n if (size && size !== 'small' && size !== 'medium') {\n if (__DEV__) {\n throwBladeError({\n moduleName: 'Text',\n message: `size cannot be '${size}' when variant is 'caption'`,\n });\n }\n // Set size as small in case of invalid size\n size = 'small';\n }\n } else if (variant !== 'caption' && !size) {\n size = 'medium';\n }\n\n if (variant === 'body') {\n if (size === 'xsmall') {\n props.fontSize = 25;\n props.lineHeight = 25;\n }\n if (size === 'small') {\n props.fontSize = 75;\n props.lineHeight = 75;\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 100;\n }\n if (size === 'large') {\n props.fontSize = 200;\n props.lineHeight = 200;\n }\n }\n if (variant === 'caption') {\n if (size === 'small') {\n props.fontSize = 50;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n if (size === 'medium') {\n props.fontSize = 100;\n props.lineHeight = 50;\n props.fontWeight = 'regular';\n }\n }\n\n return props;\n};\n\nconst _Text = <T extends { variant: TextVariant }>(\n {\n as = 'p',\n variant = 'body',\n weight = 'regular',\n size,\n truncateAfterLines,\n children,\n color,\n testID,\n textAlign,\n textDecorationLine,\n wordBreak,\n ...styledProps\n }: TextProps<T>,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n const props: Omit<BaseTextProps, 'children'> = {\n as,\n truncateAfterLines,\n wordBreak,\n ...getTextProps({\n variant,\n weight,\n color,\n size,\n testID,\n textAlign,\n textDecorationLine,\n }),\n };\n\n useValidateAsProp({ componentName: 'Text', as, validAsValues });\n\n return (\n <BaseText ref={ref} {...props} {...getStyledProps(styledProps)}>\n {children}\n </BaseText>\n );\n};\n\nconst Text = assignWithoutSideEffects(React.forwardRef(_Text), {\n displayName: 'Text',\n componentId: 'Text',\n});\n\nexport { Text, getTextProps };\n"],"names":["validAsValues","getTextProps","_ref","variant","weight","size","_ref$color","color","testID","textAlign","textDecorationLine","props","fontSize","fontWeight","fontStyle","lineHeight","fontFamily","componentName","throwBladeError","moduleName","message","concat","_Text","_ref2","ref","_ref2$as","as","_ref2$variant","_ref2$weight","truncateAfterLines","children","wordBreak","styledProps","_objectWithoutProperties","_excluded","_objectSpread","useValidateAsProp","_jsx","BaseText","getStyledProps","Text","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -28,6 +28,7 @@ import './Elevate/index.js';
28
28
  import './Fade/index.js';
29
29
  import './FileUpload/index.js';
30
30
  import './Icons/index.js';
31
+ import './InfoGroup/index.js';
31
32
  import './Indicator/index.js';
32
33
  import './Input/DropdownInputTriggers/index.js';
33
34
  import './Input/OTPInput/index.js';
@@ -124,6 +125,7 @@ export { DropdownIconButton } from './Dropdown/DropdownIconButton.js';
124
125
  export { DropdownFooter, DropdownHeader } from './Dropdown/DropdownHeaderFooter.js';
125
126
  export { FilterChipSelectInput } from './Dropdown/FilterChipSelectInput.web.js';
126
127
  export { FilterChipGroup } from './Dropdown/FilterChipGroup.web.js';
128
+ export { InputDropdownButton } from './Dropdown/InputDropdownButton.web.js';
127
129
  export { Elevate } from './Elevate/Elevate.web.js';
128
130
  export { Fade } from './Fade/Fade.web.js';
129
131
  export { FileUpload } from './FileUpload/FileUpload.web.js';
@@ -207,6 +209,7 @@ export { default as CheckSquareIcon } from './Icons/CheckSquareIcon/CheckSquareI
207
209
  export { default as ChevronDownIcon } from './Icons/ChevronDownIcon/ChevronDownIcon.js';
208
210
  export { default as ChevronLeftIcon } from './Icons/ChevronLeftIcon/ChevronLeftIcon.js';
209
211
  export { default as ChevronRightIcon } from './Icons/ChevronRightIcon/ChevronRightIcon.js';
212
+ export { default as ChevronUpDownIcon } from './Icons/ChevronUpDownIcon/ChevronUpDownIcon.js';
210
213
  export { default as ChevronUpIcon } from './Icons/ChevronUpIcon/ChevronUpIcon.js';
211
214
  export { default as ChevronsDownIcon } from './Icons/ChevronsDownIcon/ChevronsDownIcon.js';
212
215
  export { default as ChevronsLeftIcon } from './Icons/ChevronsLeftIcon/ChevronsLeftIcon.js';
@@ -513,6 +516,7 @@ export { default as YoutubeIcon } from './Icons/YoutubeIcon/YoutubeIcon.js';
513
516
  export { default as ZapIcon } from './Icons/ZapIcon/ZapIcon.js';
514
517
  export { default as ZoomInIcon } from './Icons/ZoomInIcon/ZoomInIcon.js';
515
518
  export { default as ZoomOutIcon } from './Icons/ZoomOutIcon/ZoomOutIcon.js';
519
+ export { InfoGroup, InfoItem, InfoItemKey, InfoItemValue } from './InfoGroup/InfoGroup.web.js';
516
520
  export { Indicator } from './Indicator/Indicator.js';
517
521
  export { SelectInput } from './Input/DropdownInputTriggers/SelectInput.js';
518
522
  export { AutoComplete } from './Input/DropdownInputTriggers/AutoComplete.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -49,6 +49,11 @@ var MetaConstants = {
49
49
  FilterChipGroup: 'filter-chip-group',
50
50
  Icon: 'icon',
51
51
  IconButton: 'icon-button',
52
+ InfoGroup: 'info-group',
53
+ InfoItem: 'info-item',
54
+ InfoItemKey: 'info-item-key',
55
+ InfoItemValue: 'info-item-value',
56
+ InfoItemIcon: 'info-item-icon',
52
57
  Indicator: 'indicator',
53
58
  InputGroup: 'input-group',
54
59
  Link: 'link',