@razorpay/blade 12.38.0 → 12.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/build/lib/native/components/Accordion/AccordionItem.js +1 -1
  2. package/build/lib/native/components/Accordion/AccordionItem.js.map +1 -1
  3. package/build/lib/native/components/Alert/Alert.js +2 -1
  4. package/build/lib/native/components/Alert/Alert.js.map +1 -1
  5. package/build/lib/native/components/Card/CardFooter.js +2 -1
  6. package/build/lib/native/components/Card/CardFooter.js.map +1 -1
  7. package/build/lib/native/components/Chip/Chip.js +1 -1
  8. package/build/lib/native/components/Chip/Chip.js.map +1 -1
  9. package/build/lib/native/components/Form/FormLabel.js +1 -1
  10. package/build/lib/native/components/Form/FormLabel.js.map +1 -1
  11. package/build/lib/native/components/Icons/CompanyRegistrationIcon/CompanyRegistrationIcon.js +1 -1
  12. package/build/lib/native/components/Icons/CompanyRegistrationIcon/CompanyRegistrationIcon.js.map +1 -1
  13. package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
  14. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  15. package/build/lib/native/components/Input/OTPInput/OTPInput.js +1 -1
  16. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  17. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js +1 -1
  18. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  19. package/build/lib/native/components/Input/SearchInput/SearchInput.js +1 -1
  20. package/build/lib/native/components/Input/SearchInput/SearchInput.js.map +1 -1
  21. package/build/lib/native/components/Input/TextArea/TextArea.js +1 -1
  22. package/build/lib/native/components/Input/TextArea/TextArea.js.map +1 -1
  23. package/build/lib/native/components/Input/TextInput/TextInput.js +1 -1
  24. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  25. package/build/lib/native/components/QuickFilters/QuickFilter.js +1 -1
  26. package/build/lib/native/components/QuickFilters/QuickFilter.js.map +1 -1
  27. package/build/lib/native/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js +4 -0
  28. package/build/lib/native/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js.map +1 -0
  29. package/build/lib/web/development/components/Accordion/AccordionButton.web.js +5 -7
  30. package/build/lib/web/development/components/Accordion/AccordionButton.web.js.map +1 -1
  31. package/build/lib/web/development/components/Accordion/AccordionItem.js +7 -5
  32. package/build/lib/web/development/components/Accordion/AccordionItem.js.map +1 -1
  33. package/build/lib/web/development/components/Alert/Alert.js +2 -0
  34. package/build/lib/web/development/components/Alert/Alert.js.map +1 -1
  35. package/build/lib/web/development/components/Avatar/AvatarButton.js +3 -0
  36. package/build/lib/web/development/components/Avatar/AvatarButton.js.map +1 -1
  37. package/build/lib/web/development/components/Card/CardFooter.js +3 -0
  38. package/build/lib/web/development/components/Card/CardFooter.js.map +1 -1
  39. package/build/lib/web/development/components/Chip/Chip.js +5 -5
  40. package/build/lib/web/development/components/Chip/Chip.js.map +1 -1
  41. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +6 -2
  42. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  43. package/build/lib/web/development/components/DatePicker/Calendar.web.js +4 -2
  44. package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
  45. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js +4 -0
  46. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js.map +1 -1
  47. package/build/lib/web/development/components/DatePicker/DateInput.web.js +10 -4
  48. package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -1
  49. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js +1 -0
  50. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  51. package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +2 -1
  52. package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -1
  53. package/build/lib/web/development/components/FileUpload/FileUploadItem.js +3 -0
  54. package/build/lib/web/development/components/FileUpload/FileUploadItem.js.map +1 -1
  55. package/build/lib/web/development/components/Form/FormLabel.js +24 -4
  56. package/build/lib/web/development/components/Form/FormLabel.js.map +1 -1
  57. package/build/lib/web/development/components/Icons/CompanyRegistrationIcon/CompanyRegistrationIcon.js +1 -3
  58. package/build/lib/web/development/components/Icons/CompanyRegistrationIcon/CompanyRegistrationIcon.js.map +1 -1
  59. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +6 -2
  60. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  61. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +5 -1
  62. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  63. package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js +5 -1
  64. package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  65. package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +5 -1
  66. package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
  67. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js +5 -1
  68. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js.map +1 -1
  69. package/build/lib/web/development/components/Input/TextArea/TextArea.js +5 -1
  70. package/build/lib/web/development/components/Input/TextArea/TextArea.js.map +1 -1
  71. package/build/lib/web/development/components/Input/TextInput/TextInput.js +5 -1
  72. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  73. package/build/lib/web/development/components/Modal/Modal.web.js +6 -7
  74. package/build/lib/web/development/components/Modal/Modal.web.js.map +1 -1
  75. package/build/lib/web/development/components/Preview/Preview.web.js +8 -7
  76. package/build/lib/web/development/components/Preview/Preview.web.js.map +1 -1
  77. package/build/lib/web/development/components/QuickFilters/QuickFilter.js +9 -7
  78. package/build/lib/web/development/components/QuickFilters/QuickFilter.js.map +1 -1
  79. package/build/lib/web/development/components/SpotlightPopoverTour/TourFooter.web.js +12 -2
  80. package/build/lib/web/development/components/SpotlightPopoverTour/TourFooter.web.js.map +1 -1
  81. package/build/lib/web/development/components/Table/Table.web.js +6 -3
  82. package/build/lib/web/development/components/Table/Table.web.js.map +1 -1
  83. package/build/lib/web/development/components/Table/TableBody.web.js +5 -3
  84. package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
  85. package/build/lib/web/development/components/Table/TableHeader.web.js +4 -2
  86. package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
  87. package/build/lib/web/development/components/Table/TablePagination.web.js +12 -6
  88. package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
  89. package/build/lib/web/development/components/Table/TableToolbar.web.js +5 -8
  90. package/build/lib/web/development/components/Table/TableToolbar.web.js.map +1 -1
  91. package/build/lib/web/development/components/Toast/Toast.web.js +2 -0
  92. package/build/lib/web/development/components/Toast/Toast.web.js.map +1 -1
  93. package/build/lib/web/development/utils/makeAnalyticsAttribute/index.js +1 -0
  94. package/build/lib/web/development/utils/makeAnalyticsAttribute/index.js.map +1 -1
  95. package/build/lib/web/development/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js +32 -0
  96. package/build/lib/web/development/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js.map +1 -0
  97. package/build/lib/web/production/components/Accordion/AccordionButton.web.js +5 -7
  98. package/build/lib/web/production/components/Accordion/AccordionButton.web.js.map +1 -1
  99. package/build/lib/web/production/components/Accordion/AccordionItem.js +7 -5
  100. package/build/lib/web/production/components/Accordion/AccordionItem.js.map +1 -1
  101. package/build/lib/web/production/components/Alert/Alert.js +2 -0
  102. package/build/lib/web/production/components/Alert/Alert.js.map +1 -1
  103. package/build/lib/web/production/components/Avatar/AvatarButton.js +3 -0
  104. package/build/lib/web/production/components/Avatar/AvatarButton.js.map +1 -1
  105. package/build/lib/web/production/components/Card/CardFooter.js +3 -0
  106. package/build/lib/web/production/components/Card/CardFooter.js.map +1 -1
  107. package/build/lib/web/production/components/Chip/Chip.js +5 -5
  108. package/build/lib/web/production/components/Chip/Chip.js.map +1 -1
  109. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +6 -2
  110. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  111. package/build/lib/web/production/components/DatePicker/Calendar.web.js +4 -2
  112. package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
  113. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js +4 -0
  114. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js.map +1 -1
  115. package/build/lib/web/production/components/DatePicker/DateInput.web.js +10 -4
  116. package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -1
  117. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js +1 -0
  118. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  119. package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +2 -1
  120. package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -1
  121. package/build/lib/web/production/components/FileUpload/FileUploadItem.js +3 -0
  122. package/build/lib/web/production/components/FileUpload/FileUploadItem.js.map +1 -1
  123. package/build/lib/web/production/components/Form/FormLabel.js +24 -4
  124. package/build/lib/web/production/components/Form/FormLabel.js.map +1 -1
  125. package/build/lib/web/production/components/Icons/CompanyRegistrationIcon/CompanyRegistrationIcon.js +1 -3
  126. package/build/lib/web/production/components/Icons/CompanyRegistrationIcon/CompanyRegistrationIcon.js.map +1 -1
  127. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +6 -2
  128. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  129. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +5 -1
  130. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  131. package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js +5 -1
  132. package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  133. package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +5 -1
  134. package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
  135. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js +5 -1
  136. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js.map +1 -1
  137. package/build/lib/web/production/components/Input/TextArea/TextArea.js +5 -1
  138. package/build/lib/web/production/components/Input/TextArea/TextArea.js.map +1 -1
  139. package/build/lib/web/production/components/Input/TextInput/TextInput.js +5 -1
  140. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  141. package/build/lib/web/production/components/Modal/Modal.web.js +6 -7
  142. package/build/lib/web/production/components/Modal/Modal.web.js.map +1 -1
  143. package/build/lib/web/production/components/Preview/Preview.web.js +8 -7
  144. package/build/lib/web/production/components/Preview/Preview.web.js.map +1 -1
  145. package/build/lib/web/production/components/QuickFilters/QuickFilter.js +9 -7
  146. package/build/lib/web/production/components/QuickFilters/QuickFilter.js.map +1 -1
  147. package/build/lib/web/production/components/SpotlightPopoverTour/TourFooter.web.js +12 -2
  148. package/build/lib/web/production/components/SpotlightPopoverTour/TourFooter.web.js.map +1 -1
  149. package/build/lib/web/production/components/Table/Table.web.js +6 -3
  150. package/build/lib/web/production/components/Table/Table.web.js.map +1 -1
  151. package/build/lib/web/production/components/Table/TableBody.web.js +5 -3
  152. package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
  153. package/build/lib/web/production/components/Table/TableHeader.web.js +4 -2
  154. package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
  155. package/build/lib/web/production/components/Table/TablePagination.web.js +12 -6
  156. package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
  157. package/build/lib/web/production/components/Table/TableToolbar.web.js +5 -8
  158. package/build/lib/web/production/components/Table/TableToolbar.web.js.map +1 -1
  159. package/build/lib/web/production/components/Toast/Toast.web.js +2 -0
  160. package/build/lib/web/production/components/Toast/Toast.web.js.map +1 -1
  161. package/build/lib/web/production/utils/makeAnalyticsAttribute/index.js +1 -0
  162. package/build/lib/web/production/utils/makeAnalyticsAttribute/index.js.map +1 -1
  163. package/build/lib/web/production/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js +32 -0
  164. package/build/lib/web/production/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js.map +1 -0
  165. package/build/types/components/index.d.ts +29 -8
  166. package/build/types/components/index.native.d.ts +26 -7
  167. package/package.json +1 -1
@@ -19,7 +19,7 @@ import { BaseInput } from '../BaseInput/BaseInput.js';
19
19
  import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
20
20
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
21
21
 
22
- var _excluded = ["label", "accessibilityLabel", "labelPosition", "showRevealButton", "maxCharacters", "validationState", "errorText", "successText", "helpText", "isDisabled", "defaultValue", "placeholder", "isRequired", "necessityIndicator", "value", "onChange", "onFocus", "onBlur", "onSubmit", "name", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "testID", "size"];
22
+ var _excluded = ["label", "accessibilityLabel", "labelPosition", "showRevealButton", "maxCharacters", "validationState", "errorText", "successText", "helpText", "isDisabled", "defaultValue", "placeholder", "isRequired", "necessityIndicator", "value", "onChange", "onFocus", "onBlur", "onSubmit", "name", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "testID", "size", "labelSuffix", "labelTrailing"];
23
23
  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; }
24
24
  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; }
25
25
  var _PasswordInput = function _PasswordInput(_ref, ref) {
@@ -56,6 +56,8 @@ var _PasswordInput = function _PasswordInput(_ref, ref) {
56
56
  testID = _ref.testID,
57
57
  _ref$size = _ref.size,
58
58
  size = _ref$size === void 0 ? 'medium' : _ref$size,
59
+ labelSuffix = _ref.labelSuffix,
60
+ labelTrailing = _ref.labelTrailing,
59
61
  rest = _objectWithoutProperties(_ref, _excluded);
60
62
  var _React$useState = React__default.useState(false),
61
63
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -99,6 +101,8 @@ var _PasswordInput = function _PasswordInput(_ref, ref) {
99
101
  hideLabelText: !Boolean(label),
100
102
  labelPosition: labelPosition,
101
103
  type: type,
104
+ labelSuffix: labelSuffix,
105
+ labelTrailing: labelTrailing,
102
106
  trailingInteractionElement: revealButton,
103
107
  trailingFooterSlot: trailingFooterSlot,
104
108
  maxCharacters: maxCharacters,
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordInput.js","sources":["../../../../../../../src/components/Input/PasswordInput/PasswordInput.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { EyeIcon, EyeOffIcon } from '~components/Icons';\nimport BaseBox from '~components/Box/BaseBox';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport type { DataAnalyticsAttribute, BladeElementRef } from '~utils/types';\n\ntype PasswordInputExtraProps = {\n /**\n * Shows a reveal button to toggle password visibility\n *\n * @default true\n */\n showRevealButton?: boolean;\n\n /**\n * Displays asterisk (`*`) when `isRequired` is enabled\n *\n * @default none\n */\n necessityIndicator?: Exclude<BaseInputProps['necessityIndicator'], 'optional'>;\n\n /**\n * Determines what autoComplete suggestion type to show. Defaults to using platform heuristics.\n *\n * It's not recommended to turn this off in favor of safe password practices.\n * Providing `password` or `newPassword` is more informative to the platform for browser autofill or password managers.\n *\n * **Note**: Using `newPassword` on iOS has some [known issue](https://github.com/facebook/react-native/issues/21911) on React Native\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: Extract<\n BaseInputProps['autoCompleteSuggestionType'],\n 'none' | 'password' | 'newPassword'\n >;\n};\n\ntype PasswordInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'maxCharacters'\n | 'validationState'\n | 'errorText'\n | 'successText'\n | 'helpText'\n | 'isDisabled'\n | 'defaultValue'\n | 'placeholder'\n | 'isRequired'\n | 'value'\n | 'onChange'\n | 'onBlur'\n | 'onSubmit'\n | 'onFocus'\n | 'name'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'autoCompleteSuggestionType'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> &\n PasswordInputExtraProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype PasswordInputPropsWithA11yLabel = {\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 PasswordInputPropsWithLabel = {\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 PasswordInputProps = (PasswordInputPropsWithA11yLabel | PasswordInputPropsWithLabel) &\n PasswordInputCommonProps;\n\nconst _PasswordInput: React.ForwardRefRenderFunction<BladeElementRef, PasswordInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n showRevealButton = true,\n maxCharacters,\n validationState,\n errorText,\n successText,\n helpText,\n isDisabled = false,\n defaultValue,\n placeholder,\n isRequired = false,\n necessityIndicator = 'none',\n value,\n onChange,\n onFocus,\n onBlur,\n onSubmit,\n name,\n autoFocus = false,\n keyboardReturnKeyType = 'done',\n autoCompleteSuggestionType,\n testID,\n size = 'medium',\n ...rest\n },\n ref,\n) => {\n const [isRevealed, setIsRevealed] = React.useState(false);\n const isEnabled = !isDisabled;\n\n // If input is disabled reveal button shouldn't be present and input should be masked\n const isRevealedAndEnabled = isRevealed && isEnabled;\n\n const toggleIsRevealed = (): void => setIsRevealed((revealed) => !revealed);\n const iconAccessibilityLabel = isRevealedAndEnabled ? 'Hide password' : 'Show password';\n const type = isRevealedAndEnabled ? 'text' : 'password';\n\n const revealButtonIcon = isRevealedAndEnabled ? EyeOffIcon : EyeIcon;\n const revealButton =\n showRevealButton && !isDisabled ? (\n <IconButton\n size=\"medium\"\n icon={revealButtonIcon}\n onClick={toggleIsRevealed}\n accessibilityLabel={iconAccessibilityLabel}\n />\n ) : null;\n\n const trailingFooterSlot = (value?: string): React.ReactNode =>\n maxCharacters ? (\n <BaseBox marginTop=\"spacing.2\" marginRight=\"spacing.1\">\n <CharacterCounter currentCount={value?.length ?? 0} maxCount={maxCharacters} />\n </BaseBox>\n ) : null;\n\n return (\n <BaseInput\n ref={ref}\n componentName={MetaConstants.PasswordInput}\n id=\"password-field\"\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n type={type}\n trailingInteractionElement={revealButton}\n trailingFooterSlot={trailingFooterSlot}\n maxCharacters={maxCharacters}\n validationState={validationState}\n errorText={errorText}\n successText={successText}\n helpText={helpText}\n isDisabled={isDisabled}\n defaultValue={defaultValue}\n placeholder={placeholder}\n isRequired={isRequired}\n necessityIndicator={necessityIndicator}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n onSubmit={onSubmit}\n onFocus={onFocus}\n name={name}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n keyboardReturnKeyType={keyboardReturnKeyType}\n autoCapitalize=\"none\"\n testID={testID}\n size={size}\n {...rest}\n />\n );\n};\n\n// nosemgrep\nconst PasswordInput = assignWithoutSideEffects(React.forwardRef(_PasswordInput), {\n displayName: 'PasswordInput',\n});\n\nexport type { PasswordInputProps };\nexport { PasswordInput };\n"],"names":["_PasswordInput","_ref","ref","label","accessibilityLabel","_ref$labelPosition","labelPosition","_ref$showRevealButton","showRevealButton","maxCharacters","validationState","errorText","successText","helpText","_ref$isDisabled","isDisabled","defaultValue","placeholder","_ref$isRequired","isRequired","_ref$necessityIndicat","necessityIndicator","value","onChange","onFocus","onBlur","onSubmit","name","_ref$autoFocus","autoFocus","_ref$keyboardReturnKe","keyboardReturnKeyType","autoCompleteSuggestionType","testID","_ref$size","size","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","isRevealed","setIsRevealed","isEnabled","isRevealedAndEnabled","toggleIsRevealed","revealed","iconAccessibilityLabel","type","revealButtonIcon","EyeOffIcon","EyeIcon","revealButton","_jsx","IconButton","icon","onClick","trailingFooterSlot","_value$length","BaseBox","marginTop","marginRight","children","CharacterCounter","currentCount","length","maxCount","BaseInput","_objectSpread","componentName","MetaConstants","PasswordInput","id","hideLabelText","Boolean","trailingInteractionElement","autoCapitalize","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"PasswordInput.js","sources":["../../../../../../../src/components/Input/PasswordInput/PasswordInput.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { EyeIcon, EyeOffIcon } from '~components/Icons';\nimport BaseBox from '~components/Box/BaseBox';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport type { DataAnalyticsAttribute, BladeElementRef } from '~utils/types';\n\ntype PasswordInputExtraProps = {\n /**\n * Shows a reveal button to toggle password visibility\n *\n * @default true\n */\n showRevealButton?: boolean;\n\n /**\n * Displays asterisk (`*`) when `isRequired` is enabled\n *\n * @default none\n */\n necessityIndicator?: Exclude<BaseInputProps['necessityIndicator'], 'optional'>;\n\n /**\n * Determines what autoComplete suggestion type to show. Defaults to using platform heuristics.\n *\n * It's not recommended to turn this off in favor of safe password practices.\n * Providing `password` or `newPassword` is more informative to the platform for browser autofill or password managers.\n *\n * **Note**: Using `newPassword` on iOS has some [known issue](https://github.com/facebook/react-native/issues/21911) on React Native\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: Extract<\n BaseInputProps['autoCompleteSuggestionType'],\n 'none' | 'password' | 'newPassword'\n >;\n};\n\ntype PasswordInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'maxCharacters'\n | 'validationState'\n | 'errorText'\n | 'successText'\n | 'helpText'\n | 'isDisabled'\n | 'defaultValue'\n | 'placeholder'\n | 'isRequired'\n | 'value'\n | 'onChange'\n | 'onBlur'\n | 'onSubmit'\n | 'onFocus'\n | 'name'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'autoCompleteSuggestionType'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> &\n PasswordInputExtraProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype PasswordInputPropsWithA11yLabel = {\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 PasswordInputPropsWithLabel = {\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 PasswordInputProps = (PasswordInputPropsWithA11yLabel | PasswordInputPropsWithLabel) &\n PasswordInputCommonProps;\n\nconst _PasswordInput: React.ForwardRefRenderFunction<BladeElementRef, PasswordInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n showRevealButton = true,\n maxCharacters,\n validationState,\n errorText,\n successText,\n helpText,\n isDisabled = false,\n defaultValue,\n placeholder,\n isRequired = false,\n necessityIndicator = 'none',\n value,\n onChange,\n onFocus,\n onBlur,\n onSubmit,\n name,\n autoFocus = false,\n keyboardReturnKeyType = 'done',\n autoCompleteSuggestionType,\n testID,\n size = 'medium',\n labelSuffix,\n labelTrailing,\n ...rest\n },\n ref,\n) => {\n const [isRevealed, setIsRevealed] = React.useState(false);\n const isEnabled = !isDisabled;\n\n // If input is disabled reveal button shouldn't be present and input should be masked\n const isRevealedAndEnabled = isRevealed && isEnabled;\n\n const toggleIsRevealed = (): void => setIsRevealed((revealed) => !revealed);\n const iconAccessibilityLabel = isRevealedAndEnabled ? 'Hide password' : 'Show password';\n const type = isRevealedAndEnabled ? 'text' : 'password';\n\n const revealButtonIcon = isRevealedAndEnabled ? EyeOffIcon : EyeIcon;\n const revealButton =\n showRevealButton && !isDisabled ? (\n <IconButton\n size=\"medium\"\n icon={revealButtonIcon}\n onClick={toggleIsRevealed}\n accessibilityLabel={iconAccessibilityLabel}\n />\n ) : null;\n\n const trailingFooterSlot = (value?: string): React.ReactNode =>\n maxCharacters ? (\n <BaseBox marginTop=\"spacing.2\" marginRight=\"spacing.1\">\n <CharacterCounter currentCount={value?.length ?? 0} maxCount={maxCharacters} />\n </BaseBox>\n ) : null;\n\n return (\n <BaseInput\n ref={ref}\n componentName={MetaConstants.PasswordInput}\n id=\"password-field\"\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n type={type}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n trailingInteractionElement={revealButton}\n trailingFooterSlot={trailingFooterSlot}\n maxCharacters={maxCharacters}\n validationState={validationState}\n errorText={errorText}\n successText={successText}\n helpText={helpText}\n isDisabled={isDisabled}\n defaultValue={defaultValue}\n placeholder={placeholder}\n isRequired={isRequired}\n necessityIndicator={necessityIndicator}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n onSubmit={onSubmit}\n onFocus={onFocus}\n name={name}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n keyboardReturnKeyType={keyboardReturnKeyType}\n autoCapitalize=\"none\"\n testID={testID}\n size={size}\n {...rest}\n />\n );\n};\n\n// nosemgrep\nconst PasswordInput = assignWithoutSideEffects(React.forwardRef(_PasswordInput), {\n displayName: 'PasswordInput',\n});\n\nexport type { PasswordInputProps };\nexport { PasswordInput };\n"],"names":["_PasswordInput","_ref","ref","label","accessibilityLabel","_ref$labelPosition","labelPosition","_ref$showRevealButton","showRevealButton","maxCharacters","validationState","errorText","successText","helpText","_ref$isDisabled","isDisabled","defaultValue","placeholder","_ref$isRequired","isRequired","_ref$necessityIndicat","necessityIndicator","value","onChange","onFocus","onBlur","onSubmit","name","_ref$autoFocus","autoFocus","_ref$keyboardReturnKe","keyboardReturnKeyType","autoCompleteSuggestionType","testID","_ref$size","size","labelSuffix","labelTrailing","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","isRevealed","setIsRevealed","isEnabled","isRevealedAndEnabled","toggleIsRevealed","revealed","iconAccessibilityLabel","type","revealButtonIcon","EyeOffIcon","EyeIcon","revealButton","_jsx","IconButton","icon","onClick","trailingFooterSlot","_value$length","BaseBox","marginTop","marginRight","children","CharacterCounter","currentCount","length","maxCount","BaseInput","_objectSpread","componentName","MetaConstants","PasswordInput","id","hideLabelText","Boolean","trailingInteractionElement","autoCapitalize","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
@@ -20,7 +20,7 @@ import { BaseInput } from '../BaseInput/BaseInput.js';
20
20
  import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
21
21
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
22
22
 
23
- var _excluded = ["defaultCountry", "country", "onCountryChange", "label", "labelPosition", "defaultValue", "value", "name", "onChange", "necessityIndicator", "isRequired", "isDisabled", "leadingIcon", "trailingIcon", "validationState", "errorText", "helpText", "successText", "size", "onClearButtonClick", "showCountrySelector", "showDialCode", "onClick", "onBlur", "onFocus", "accessibilityLabel", "autoFocus", "testID", "keyboardReturnKeyType", "autoCompleteSuggestionType", "allowedCountries", "placeholder"];
23
+ var _excluded = ["defaultCountry", "country", "onCountryChange", "label", "labelPosition", "defaultValue", "value", "name", "onChange", "necessityIndicator", "isRequired", "isDisabled", "leadingIcon", "trailingIcon", "validationState", "errorText", "helpText", "successText", "size", "onClearButtonClick", "showCountrySelector", "showDialCode", "onClick", "onBlur", "onFocus", "accessibilityLabel", "autoFocus", "testID", "keyboardReturnKeyType", "autoCompleteSuggestionType", "allowedCountries", "placeholder", "labelSuffix", "labelTrailing"];
24
24
  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; }
25
25
  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; }
26
26
  var _PhoneNumberInput = function _PhoneNumberInput(_ref, ref) {
@@ -62,6 +62,8 @@ var _PhoneNumberInput = function _PhoneNumberInput(_ref, ref) {
62
62
  autoCompleteSuggestionType = _ref.autoCompleteSuggestionType,
63
63
  allowedCountries = _ref.allowedCountries,
64
64
  placeholder = _ref.placeholder,
65
+ labelSuffix = _ref.labelSuffix,
66
+ labelTrailing = _ref.labelTrailing,
65
67
  rest = _objectWithoutProperties(_ref, _excluded);
66
68
  var inputRef = React__default.useRef(null);
67
69
  var mergedRef = useMergeRefs(ref, inputRef);
@@ -175,6 +177,8 @@ var _PhoneNumberInput = function _PhoneNumberInput(_ref, ref) {
175
177
  trailingIcon: trailingIcon,
176
178
  leadingIcon: leadingIcon,
177
179
  prefix: showDialCode ? getDialCodeByCountryCode(selectedCountry) : undefined,
180
+ labelSuffix: labelSuffix,
181
+ labelTrailing: labelTrailing,
178
182
  trailingInteractionElement: renderTrailingInteractionElement(),
179
183
  leadingInteractionElement: showCountrySelector ? /*#__PURE__*/jsx(CountrySelector, {
180
184
  size: size,
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumberInput.web.js","sources":["../../../../../../../src/components/Input/PhoneNumberInput/PhoneNumberInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { CountryCodeType } from '@razorpay/i18nify-js';\nimport {\n formatPhoneNumber,\n getDialCodeByCountryCode,\n getFlagsForAllCountries,\n} from '@razorpay/i18nify-js';\nimport React from 'react';\nimport type { PhoneNumberInputProps } from './types';\nimport { countryNameFormatter, CountrySelector } from './CountrySelector';\nimport { BaseInput } from '~components/Input/BaseInput';\nimport { IconButton } from '~components/Button/IconButton';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { getKeyboardAndAutocompleteProps } from '~components/Input/BaseInput/utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type { BladeElementRef } from '~utils/types';\nimport { CloseIcon } from '~components/Icons';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { useControllableState } from '~utils/useControllable';\n\nconst _PhoneNumberInput: React.ForwardRefRenderFunction<BladeElementRef, PhoneNumberInputProps> = (\n {\n defaultCountry = 'IN',\n country,\n onCountryChange,\n label,\n labelPosition,\n defaultValue,\n value,\n name,\n onChange,\n necessityIndicator,\n isRequired,\n isDisabled,\n leadingIcon,\n trailingIcon,\n validationState,\n errorText,\n helpText,\n successText,\n size = 'medium',\n onClearButtonClick,\n showCountrySelector = true,\n showDialCode = true,\n onClick,\n onBlur,\n onFocus,\n accessibilityLabel = 'Enter phone number',\n autoFocus,\n testID,\n keyboardReturnKeyType = 'done',\n autoCompleteSuggestionType,\n allowedCountries,\n placeholder,\n ...rest\n },\n ref,\n): React.ReactElement => {\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n\n const inputWrapperRef = React.useRef<HTMLDivElement | null>(null);\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n const [selectedCountry, setSelectedCountry] = useControllableState<CountryCodeType>({\n defaultValue: defaultCountry as CountryCodeType,\n value: country,\n onChange: (country) => onCountryChange?.({ country }),\n });\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n const renderTrailingInteractionElement = (): React.ReactNode => {\n if (!shouldShowClearButton) return null;\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (inputRef.current instanceof HTMLInputElement) {\n inputRef.current.value = '';\n inputRef.current.focus();\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 inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n\n const flags = React.useMemo(() => getFlagsForAllCountries(), []);\n const countryData = React.useMemo(() => {\n if (allowedCountries) {\n return allowedCountries.map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n });\n }\n\n return (Object.keys(flags) as CountryCodeType[])\n .filter((countryCode) => !countryCode.includes('-')) // remove the non ISO 3166-1 alpha-2 country codes\n .map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name));\n }, [allowedCountries, flags]);\n\n const handleOnChange = ({\n name,\n value,\n selectedCountry,\n }: {\n name?: string;\n value?: string;\n selectedCountry: CountryCodeType;\n }): void => {\n onChange?.({\n name: name!,\n value: value!,\n phoneNumber: value ? formatPhoneNumber(value, selectedCountry) : undefined!,\n dialCode: getDialCodeByCountryCode(selectedCountry),\n country: selectedCountry,\n });\n };\n\n const onItemClick = ({ name }: { name: string }): void => {\n const selectedCountry = name as CountryCodeType;\n setSelectedCountry(() => selectedCountry);\n handleOnChange({\n selectedCountry,\n name: inputRef.current?.name,\n value: inputRef.current?.value,\n });\n inputRef.current?.focus();\n };\n\n return (\n <BaseInput\n setInputWrapperRef={(node) => {\n inputWrapperRef.current = node as HTMLInputElement;\n }}\n ref={mergedRef}\n id=\"phone-number-input\"\n componentName={MetaConstants.PhoneNumberInput}\n label={label as string}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n defaultValue={defaultValue}\n value={value}\n name={name}\n placeholder={placeholder ?? formatPhoneNumber('1234567890', selectedCountry)}\n trailingIcon={trailingIcon}\n leadingIcon={leadingIcon}\n prefix={showDialCode ? getDialCodeByCountryCode(selectedCountry) : undefined}\n trailingInteractionElement={renderTrailingInteractionElement()}\n leadingInteractionElement={\n showCountrySelector ? (\n <CountrySelector\n size={size}\n countryData={countryData}\n flags={flags}\n inputWrapperRef={inputWrapperRef}\n isDisabled={isDisabled}\n selectedCountry={selectedCountry}\n onItemClick={onItemClick}\n />\n ) : null\n }\n onChange={({ name, value }) => {\n if (value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n handleOnChange({ name, value, selectedCountry });\n }}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n isDisabled={isDisabled}\n accessibilityLabel={accessibilityLabel}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n size={size}\n {...getKeyboardAndAutocompleteProps({\n type: 'number',\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize: 'none',\n })}\n type=\"telephone\"\n {...rest}\n />\n );\n};\n\n/**\n * PhoneNumberInput is a component that allows users to input phone numbers.\n * It provides a country selector dropdown to select the country code.\n *\n * @example\n *\n * ```ts\n * <PhoneNumberInput />\n * ```\n */\nconst PhoneNumberInput = assignWithoutSideEffects(React.forwardRef(_PhoneNumberInput), {\n displayName: 'PhoneNumberInput',\n});\n\nexport { PhoneNumberInput };\n"],"names":["_PhoneNumberInput","_ref","ref","_ref$defaultCountry","defaultCountry","country","onCountryChange","label","labelPosition","defaultValue","value","name","onChange","necessityIndicator","isRequired","isDisabled","leadingIcon","trailingIcon","validationState","errorText","helpText","successText","_ref$size","size","onClearButtonClick","_ref$showCountrySelec","showCountrySelector","_ref$showDialCode","showDialCode","onClick","onBlur","onFocus","_ref$accessibilityLab","accessibilityLabel","autoFocus","testID","_ref$keyboardReturnKe","keyboardReturnKeyType","autoCompleteSuggestionType","allowedCountries","placeholder","rest","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","inputWrapperRef","_React$useState","useState","_React$useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useControllableState","useControllableState","_useControllableState2","selectedCountry","setSelectedCountry","useEffect","Boolean","renderTrailingInteractionElement","_jsx","IconButton","icon","CloseIcon","_inputRef$current","isEmpty","current","HTMLInputElement","focus","flags","useMemo","getFlagsForAllCountries","countryData","map","countryCode","code","countryNameFormatter","of","Object","keys","filter","includes","sort","a","b","localeCompare","handleOnChange","_ref2","phoneNumber","formatPhoneNumber","undefined","dialCode","getDialCodeByCountryCode","onItemClick","_ref3","_inputRef$current2","_inputRef$current3","_inputRef$current4","BaseInput","_objectSpread","setInputWrapperRef","node","id","componentName","MetaConstants","PhoneNumberInput","hideLabelText","prefix","trailingInteractionElement","leadingInteractionElement","CountrySelector","_ref4","length","getKeyboardAndAutocompleteProps","type","autoCapitalize","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"PhoneNumberInput.web.js","sources":["../../../../../../../src/components/Input/PhoneNumberInput/PhoneNumberInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport type { CountryCodeType } from '@razorpay/i18nify-js';\nimport {\n formatPhoneNumber,\n getDialCodeByCountryCode,\n getFlagsForAllCountries,\n} from '@razorpay/i18nify-js';\nimport React from 'react';\nimport type { PhoneNumberInputProps } from './types';\nimport { countryNameFormatter, CountrySelector } from './CountrySelector';\nimport { BaseInput } from '~components/Input/BaseInput';\nimport { IconButton } from '~components/Button/IconButton';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { getKeyboardAndAutocompleteProps } from '~components/Input/BaseInput/utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type { BladeElementRef } from '~utils/types';\nimport { CloseIcon } from '~components/Icons';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { useControllableState } from '~utils/useControllable';\n\nconst _PhoneNumberInput: React.ForwardRefRenderFunction<BladeElementRef, PhoneNumberInputProps> = (\n {\n defaultCountry = 'IN',\n country,\n onCountryChange,\n label,\n labelPosition,\n defaultValue,\n value,\n name,\n onChange,\n necessityIndicator,\n isRequired,\n isDisabled,\n leadingIcon,\n trailingIcon,\n validationState,\n errorText,\n helpText,\n successText,\n size = 'medium',\n onClearButtonClick,\n showCountrySelector = true,\n showDialCode = true,\n onClick,\n onBlur,\n onFocus,\n accessibilityLabel = 'Enter phone number',\n autoFocus,\n testID,\n keyboardReturnKeyType = 'done',\n autoCompleteSuggestionType,\n allowedCountries,\n placeholder,\n labelSuffix,\n labelTrailing,\n ...rest\n },\n ref,\n): React.ReactElement => {\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n\n const inputWrapperRef = React.useRef<HTMLDivElement | null>(null);\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n const [selectedCountry, setSelectedCountry] = useControllableState<CountryCodeType>({\n defaultValue: defaultCountry as CountryCodeType,\n value: country,\n onChange: (country) => onCountryChange?.({ country }),\n });\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n const renderTrailingInteractionElement = (): React.ReactNode => {\n if (!shouldShowClearButton) return null;\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (inputRef.current instanceof HTMLInputElement) {\n inputRef.current.value = '';\n inputRef.current.focus();\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 inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n\n const flags = React.useMemo(() => getFlagsForAllCountries(), []);\n const countryData = React.useMemo(() => {\n if (allowedCountries) {\n return allowedCountries.map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n });\n }\n\n return (Object.keys(flags) as CountryCodeType[])\n .filter((countryCode) => !countryCode.includes('-')) // remove the non ISO 3166-1 alpha-2 country codes\n .map((countryCode) => {\n return {\n code: countryCode,\n name: countryNameFormatter.of(countryCode)!,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name));\n }, [allowedCountries, flags]);\n\n const handleOnChange = ({\n name,\n value,\n selectedCountry,\n }: {\n name?: string;\n value?: string;\n selectedCountry: CountryCodeType;\n }): void => {\n onChange?.({\n name: name!,\n value: value!,\n phoneNumber: value ? formatPhoneNumber(value, selectedCountry) : undefined!,\n dialCode: getDialCodeByCountryCode(selectedCountry),\n country: selectedCountry,\n });\n };\n\n const onItemClick = ({ name }: { name: string }): void => {\n const selectedCountry = name as CountryCodeType;\n setSelectedCountry(() => selectedCountry);\n handleOnChange({\n selectedCountry,\n name: inputRef.current?.name,\n value: inputRef.current?.value,\n });\n inputRef.current?.focus();\n };\n\n return (\n <BaseInput\n setInputWrapperRef={(node) => {\n inputWrapperRef.current = node as HTMLInputElement;\n }}\n ref={mergedRef}\n id=\"phone-number-input\"\n componentName={MetaConstants.PhoneNumberInput}\n label={label as string}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n defaultValue={defaultValue}\n value={value}\n name={name}\n placeholder={placeholder ?? formatPhoneNumber('1234567890', selectedCountry)}\n trailingIcon={trailingIcon}\n leadingIcon={leadingIcon}\n prefix={showDialCode ? getDialCodeByCountryCode(selectedCountry) : undefined}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n trailingInteractionElement={renderTrailingInteractionElement()}\n leadingInteractionElement={\n showCountrySelector ? (\n <CountrySelector\n size={size}\n countryData={countryData}\n flags={flags}\n inputWrapperRef={inputWrapperRef}\n isDisabled={isDisabled}\n selectedCountry={selectedCountry}\n onItemClick={onItemClick}\n />\n ) : null\n }\n onChange={({ name, value }) => {\n if (value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n handleOnChange({ name, value, selectedCountry });\n }}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n isDisabled={isDisabled}\n accessibilityLabel={accessibilityLabel}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n size={size}\n {...getKeyboardAndAutocompleteProps({\n type: 'number',\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize: 'none',\n })}\n type=\"telephone\"\n {...rest}\n />\n );\n};\n\n/**\n * PhoneNumberInput is a component that allows users to input phone numbers.\n * It provides a country selector dropdown to select the country code.\n *\n * @example\n *\n * ```ts\n * <PhoneNumberInput />\n * ```\n */\nconst PhoneNumberInput = assignWithoutSideEffects(React.forwardRef(_PhoneNumberInput), {\n displayName: 'PhoneNumberInput',\n});\n\nexport { PhoneNumberInput };\n"],"names":["_PhoneNumberInput","_ref","ref","_ref$defaultCountry","defaultCountry","country","onCountryChange","label","labelPosition","defaultValue","value","name","onChange","necessityIndicator","isRequired","isDisabled","leadingIcon","trailingIcon","validationState","errorText","helpText","successText","_ref$size","size","onClearButtonClick","_ref$showCountrySelec","showCountrySelector","_ref$showDialCode","showDialCode","onClick","onBlur","onFocus","_ref$accessibilityLab","accessibilityLabel","autoFocus","testID","_ref$keyboardReturnKe","keyboardReturnKeyType","autoCompleteSuggestionType","allowedCountries","placeholder","labelSuffix","labelTrailing","rest","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","inputWrapperRef","_React$useState","useState","_React$useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useControllableState","useControllableState","_useControllableState2","selectedCountry","setSelectedCountry","useEffect","Boolean","renderTrailingInteractionElement","_jsx","IconButton","icon","CloseIcon","_inputRef$current","isEmpty","current","HTMLInputElement","focus","flags","useMemo","getFlagsForAllCountries","countryData","map","countryCode","code","countryNameFormatter","of","Object","keys","filter","includes","sort","a","b","localeCompare","handleOnChange","_ref2","phoneNumber","formatPhoneNumber","undefined","dialCode","getDialCodeByCountryCode","onItemClick","_ref3","_inputRef$current2","_inputRef$current3","_inputRef$current4","BaseInput","_objectSpread","setInputWrapperRef","node","id","componentName","MetaConstants","PhoneNumberInput","hideLabelText","prefix","trailingInteractionElement","leadingInteractionElement","CountrySelector","_ref4","length","getKeyboardAndAutocompleteProps","type","autoCapitalize","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
@@ -33,7 +33,7 @@ import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
33
33
  import SearchIcon from '../../Icons/SearchIcon/SearchIcon.js';
34
34
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
35
35
 
36
- var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "defaultValue", "name", "value", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "helpText", "onClearButtonClick", "isLoading", "autoCapitalize", "autoFocus", "testID", "size", "showSearchIcon", "trailing"];
36
+ var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "defaultValue", "name", "value", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "labelSuffix", "labelTrailing", "helpText", "onClearButtonClick", "isLoading", "autoCapitalize", "autoFocus", "testID", "size", "showSearchIcon", "trailing"];
37
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; }
38
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; }
39
39
  // need to do this to tell TS to infer type as SearchInput of React Native and make it believe that `ref.current.clear()` exists
@@ -56,6 +56,8 @@ var _SearchInput = function _SearchInput(_ref, ref) {
56
56
  onBlur = _ref.onBlur,
57
57
  onSubmit = _ref.onSubmit,
58
58
  isDisabled = _ref.isDisabled,
59
+ labelSuffix = _ref.labelSuffix,
60
+ labelTrailing = _ref.labelTrailing,
59
61
  helpText = _ref.helpText,
60
62
  onClearButtonClick = _ref.onClearButtonClick,
61
63
  isLoading = _ref.isLoading,
@@ -190,6 +192,8 @@ var _SearchInput = function _SearchInput(_ref, ref) {
190
192
  accessibilityLabel: accessibilityLabel,
191
193
  hideLabelText: !Boolean(label),
192
194
  labelPosition: labelPosition,
195
+ labelSuffix: labelSuffix,
196
+ labelTrailing: labelTrailing,
193
197
  placeholder: placeholder,
194
198
  defaultValue: defaultValue,
195
199
  value: value,
@@ -1 +1 @@
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":"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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 | 'labelSuffix'\n | 'labelTrailing'\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 labelSuffix,\n labelTrailing,\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 labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\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","labelSuffix","labelTrailing","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":"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"}
@@ -24,7 +24,7 @@ import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
24
24
  import { CharacterCounter } from '../../Form/CharacterCounter/CharacterCounter.js';
25
25
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
26
26
 
27
- var _excluded = ["label", "accessibilityLabel", "labelPosition", "necessityIndicator", "errorText", "helpText", "successText", "validationState", "defaultValue", "isDisabled", "isRequired", "name", "onChange", "onFocus", "onBlur", "onSubmit", "onKeyDown", "placeholder", "value", "maxCharacters", "showClearButton", "onClearButtonClick", "autoFocus", "numberOfLines", "testID", "size", "isTaggedInput", "tags", "onTagChange"];
27
+ var _excluded = ["label", "accessibilityLabel", "labelPosition", "labelSuffix", "labelTrailing", "necessityIndicator", "errorText", "helpText", "successText", "validationState", "defaultValue", "isDisabled", "isRequired", "name", "onChange", "onFocus", "onBlur", "onSubmit", "onKeyDown", "placeholder", "value", "maxCharacters", "showClearButton", "onClearButtonClick", "autoFocus", "numberOfLines", "testID", "size", "isTaggedInput", "tags", "onTagChange"];
28
28
  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; }
29
29
  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; }
30
30
  // 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 +36,8 @@ var _TextArea = function _TextArea(_ref, ref) {
36
36
  var label = _ref.label,
37
37
  accessibilityLabel = _ref.accessibilityLabel,
38
38
  labelPosition = _ref.labelPosition,
39
+ labelSuffix = _ref.labelSuffix,
40
+ labelTrailing = _ref.labelTrailing,
39
41
  necessityIndicator = _ref.necessityIndicator,
40
42
  errorText = _ref.errorText,
41
43
  helpText = _ref.helpText,
@@ -143,6 +145,8 @@ var _TextArea = function _TextArea(_ref, ref) {
143
145
  accessibilityLabel: accessibilityLabel,
144
146
  hideLabelText: !Boolean(label),
145
147
  labelPosition: labelPosition,
148
+ labelSuffix: labelSuffix,
149
+ labelTrailing: labelTrailing,
146
150
  necessityIndicator: necessityIndicator,
147
151
  errorText: errorText,
148
152
  helpText: helpText,
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","sources":["../../../../../../../src/components/Input/TextArea/TextArea.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\nimport React from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\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';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\n\ntype TextAreaCommonProps = 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 | 'onSubmit'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'maxCharacters'\n | 'autoFocus'\n | 'numberOfLines'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n onKeyDown?: ({\n name,\n value,\n event,\n }: {\n name?: FormInputOnKeyDownEvent['name'];\n value: string;\n event: FormInputOnKeyDownEvent['event'];\n }) => void;\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextAreaPropsWithA11yLabel = {\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 TextAreaPropsWithLabel = {\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 TextAreaProps = (TextAreaPropsWithA11yLabel | TextAreaPropsWithLabel) & TextAreaCommonProps;\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 _TextArea: React.ForwardRefRenderFunction<BladeElementRef, TextAreaProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition,\n necessityIndicator,\n errorText,\n helpText,\n successText,\n validationState,\n defaultValue,\n isDisabled,\n isRequired,\n name,\n onChange,\n onFocus,\n onBlur,\n onSubmit,\n onKeyDown,\n placeholder,\n value,\n maxCharacters,\n showClearButton,\n onClearButtonClick,\n autoFocus,\n numberOfLines = 2,\n testID,\n size = 'medium',\n isTaggedInput,\n tags,\n onTagChange,\n ...rest\n },\n ref,\n) => {\n const inputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const [isInputFocussed, setIsInputFocussed] = React.useState(autoFocus ?? false);\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n tags,\n onTagChange,\n isDisabled,\n inputRef,\n isTaggedInput,\n name,\n value,\n onChange,\n });\n\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (value?.length || defaultValue?.length)));\n }, [showClearButton, defaultValue, value]);\n\n const renderInteractionElement = (): React.ReactNode => {\n if (shouldShowClearButton) {\n return (\n <BaseBox paddingTop=\"spacing.3\" marginTop=\"spacing.1\">\n <IconButton\n icon={CloseIcon}\n accessibilityLabel=\"Clear textarea content\"\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(inputRef.current)) {\n inputRef.current.clear();\n inputRef.current.focus();\n } else if (inputRef.current instanceof HTMLTextAreaElement) {\n inputRef.current.value = '';\n inputRef.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 inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n />\n </BaseBox>\n );\n }\n\n return null;\n };\n\n return (\n <BaseInput\n as=\"textarea\"\n id=\"textarea\"\n maxTagRows=\"multiple\"\n componentName={MetaConstants.TextArea}\n autoFocus={autoFocus}\n ref={mergedRef}\n label={label as string}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n isDropdownTrigger={isTaggedInput}\n showAllTags={isInputFocussed}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n necessityIndicator={necessityIndicator}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n validationState={validationState}\n isDisabled={isDisabled}\n isRequired={isRequired}\n name={name}\n maxCharacters={maxCharacters}\n placeholder={placeholder}\n trailingInteractionElement={renderInteractionElement()}\n defaultValue={defaultValue}\n value={value}\n numberOfLines={numberOfLines}\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 onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n onKeyDown?.({\n name: e.name,\n value: e.event.currentTarget.value,\n event: e.event,\n });\n }}\n onSubmit={onSubmit}\n trailingFooterSlot={(value) => {\n return maxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter currentCount={value?.length ?? 0} maxCount={maxCharacters} />\n </BaseBox>\n ) : null;\n }}\n testID={testID}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextArea = assignWithoutSideEffects(React.forwardRef(_TextArea), {\n displayName: 'TextArea',\n});\n\nexport type { TextAreaProps };\nexport { TextArea };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextArea","_ref","ref","label","accessibilityLabel","labelPosition","necessityIndicator","errorText","helpText","successText","validationState","defaultValue","isDisabled","isRequired","name","onChange","onFocus","onBlur","onSubmit","onKeyDown","placeholder","value","maxCharacters","showClearButton","onClearButtonClick","autoFocus","_ref$numberOfLines","numberOfLines","testID","_ref$size","size","isTaggedInput","tags","onTagChange","rest","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","_React$useState","useState","_React$useState2","_slicedToArray","isInputFocussed","setIsInputFocussed","_useTaggedInput","useTaggedInput","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState3","_React$useState4","shouldShowClearButton","setShouldShowClearButton","useEffect","Boolean","length","renderInteractionElement","_jsx","BaseBox","paddingTop","marginTop","children","IconButton","icon","CloseIcon","onClick","_inputRef$current","isEmpty","current","clear","focus","HTMLTextAreaElement","BaseInput","_objectSpread","as","id","maxTagRows","componentName","MetaConstants","TextArea","undefined","isDropdownTrigger","showAllTags","hideLabelText","trailingInteractionElement","_ref2","e","event","currentTarget","trailingFooterSlot","_value$length","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","assignWithoutSideEffects","forwardRef","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuGA;AACA;AACA,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,aAAkB,EAA4C;AACnF,EAAA,OAAOC,eAAe,EAAE,KAAK,cAAc,CAAA;AAC7C,CAAC,CAAA;AAED,IAAMC,SAAyE,GAAG,SAA5EA,SAAyEA,CAAAC,IAAA,EAiC7EC,GAAG,EACA;AAAA,EAAA,IAhCDC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,kBAAkB,GAAAH,IAAA,CAAlBG,kBAAkB;IAClBC,aAAa,GAAAJ,IAAA,CAAbI,aAAa;IACbC,kBAAkB,GAAAL,IAAA,CAAlBK,kBAAkB;IAClBC,SAAS,GAAAN,IAAA,CAATM,SAAS;IACTC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IACRC,WAAW,GAAAR,IAAA,CAAXQ,WAAW;IACXC,eAAe,GAAAT,IAAA,CAAfS,eAAe;IACfC,YAAY,GAAAV,IAAA,CAAZU,YAAY;IACZC,UAAU,GAAAX,IAAA,CAAVW,UAAU;IACVC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;IACVC,IAAI,GAAAb,IAAA,CAAJa,IAAI;IACJC,SAAQ,GAAAd,IAAA,CAARc,QAAQ;IACRC,QAAO,GAAAf,IAAA,CAAPe,OAAO;IACPC,OAAM,GAAAhB,IAAA,CAANgB,MAAM;IACNC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACRC,UAAS,GAAAlB,IAAA,CAATkB,SAAS;IACTC,WAAW,GAAAnB,IAAA,CAAXmB,WAAW;IACXC,KAAK,GAAApB,IAAA,CAALoB,KAAK;IACLC,aAAa,GAAArB,IAAA,CAAbqB,aAAa;IACbC,eAAe,GAAAtB,IAAA,CAAfsB,eAAe;IACfC,kBAAkB,GAAAvB,IAAA,CAAlBuB,kBAAkB;IAClBC,SAAS,GAAAxB,IAAA,CAATwB,SAAS;IAAAC,kBAAA,GAAAzB,IAAA,CACT0B,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,kBAAA;IACjBE,MAAM,GAAA3B,IAAA,CAAN2B,MAAM;IAAAC,SAAA,GAAA5B,IAAA,CACN6B,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;IACfE,aAAa,GAAA9B,IAAA,CAAb8B,aAAa;IACbC,IAAI,GAAA/B,IAAA,CAAJ+B,IAAI;IACJC,WAAW,GAAAhC,IAAA,CAAXgC,WAAW;AACRC,IAAAA,IAAI,GAAAC,wBAAA,CAAAlC,IAAA,EAAAmC,SAAA,CAAA,CAAA;AAIT,EAAA,IAAMC,QAAQ,GAAGC,cAAK,CAACC,MAAM,CAA2B,IAAI,CAAC,CAAA;AAC7D,EAAA,IAAMC,SAAS,GAAGC,YAAY,CAACvC,GAAG,EAAEmC,QAAQ,CAAC,CAAA;AAC7C,EAAA,IAAAK,eAAA,GAA8CJ,cAAK,CAACK,QAAQ,CAAClB,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,KAAK,CAAC;IAAAmB,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAAzEI,IAAAA,eAAe,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,kBAAkB,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;EAC1C,IAAAI,eAAA,GAOIC,cAAc,CAAC;AACjBjB,MAAAA,IAAI,EAAJA,IAAI;AACJC,MAAAA,WAAW,EAAXA,WAAW;AACXrB,MAAAA,UAAU,EAAVA,UAAU;AACVyB,MAAAA,QAAQ,EAARA,QAAQ;AACRN,MAAAA,aAAa,EAAbA,aAAa;AACbjB,MAAAA,IAAI,EAAJA,IAAI;AACJO,MAAAA,KAAK,EAALA,KAAK;AACLN,MAAAA,QAAQ,EAARA,SAAAA;AACF,KAAC,CAAC;IAfAmC,cAAc,GAAAF,eAAA,CAAdE,cAAc;IACdC,iBAAiB,GAAAH,eAAA,CAAjBG,iBAAiB;IACjBC,OAAO,GAAAJ,eAAA,CAAPI,OAAO;IACPC,wBAAwB,GAAAL,eAAA,CAAxBK,wBAAwB;IACxBC,uBAAuB,GAAAN,eAAA,CAAvBM,uBAAuB;IACvBC,eAAe,GAAAP,eAAA,CAAfO,eAAe,CAAA;AAYjB,EAAA,IAAAC,gBAAA,GAA0DlB,cAAK,CAACK,QAAQ,CAAC,KAAK,CAAC;IAAAc,gBAAA,GAAAZ,cAAA,CAAAW,gBAAA,EAAA,CAAA,CAAA;AAAxEE,IAAAA,qBAAqB,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,wBAAwB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;EAEtDnB,cAAK,CAACsB,SAAS,CAAC,YAAM;IACpBD,wBAAwB,CAACE,OAAO,CAACtC,eAAe,KAAK,CAAAF,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEyC,MAAM,MAAInD,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEmD,MAAM,CAAC,CAAA,CAAC,CAAC,CAAA;GAC9F,EAAE,CAACvC,eAAe,EAAEZ,YAAY,EAAEU,KAAK,CAAC,CAAC,CAAA;AAE1C,EAAA,IAAM0C,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAA0B;AACtD,IAAA,IAAIL,qBAAqB,EAAE;MACzB,oBACEM,GAAA,CAACC,OAAO,EAAA;AAACC,QAAAA,UAAU,EAAC,WAAW;AAACC,QAAAA,SAAS,EAAC,WAAW;QAAAC,QAAA,eACnDJ,GAAA,CAACK,UAAU,EAAA;AACTC,UAAAA,IAAI,EAAEC,SAAU;AAChBnE,UAAAA,kBAAkB,EAAC,wBAAwB;UAC3CoE,OAAO,EAAE,SAAAA,OAAAA,GAAM;AAAA,YAAA,IAAAC,iBAAA,CAAA;YACb,IAAIC,OAAO,CAACrD,KAAK,CAAC,IAAIgB,QAAQ,CAACsC,OAAO,EAAE;AACtC;AACA,cAAA,IAAI9E,aAAa,CAACwC,QAAQ,CAACsC,OAAO,CAAC,EAAE;AACnCtC,gBAAAA,QAAQ,CAACsC,OAAO,CAACC,KAAK,EAAE,CAAA;AACxBvC,gBAAAA,QAAQ,CAACsC,OAAO,CAACE,KAAK,EAAE,CAAA;AAC1B,eAAC,MAAM,IAAIxC,QAAQ,CAACsC,OAAO,YAAYG,mBAAmB,EAAE;AAC1DzC,gBAAAA,QAAQ,CAACsC,OAAO,CAACtD,KAAK,GAAG,EAAE,CAAA;AAC3BgB,gBAAAA,QAAQ,CAACsC,OAAO,CAACE,KAAK,EAAE,CAAA;AAC1B,eAAA;AACF,aAAA;AACAtB,YAAAA,eAAe,EAAE,CAAA;AACjB;AACA/B,YAAAA,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAkB,EAAI,CAAA;AACtBa,YAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAAoC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,iBAAA,GAARpC,QAAQ,CAAEsC,OAAO,MAAA,IAAA,IAAAF,iBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAmBI,KAAK,EAAE,CAAA;YAC1BlB,wBAAwB,CAAC,KAAK,CAAC,CAAA;AACjC,WAAA;SACD,CAAA;AAAC,OACK,CAAC,CAAA;AAEd,KAAA;AAEA,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;AAED,EAAA,oBACEK,GAAA,CAACe,SAAS,EAAAC,aAAA,CAAA;AACRC,IAAAA,EAAE,EAAC,UAAU;AACbC,IAAAA,EAAE,EAAC,UAAU;AACbC,IAAAA,UAAU,EAAC,UAAU;IACrBC,aAAa,EAAEC,aAAa,CAACC,QAAS;AACtC7D,IAAAA,SAAS,EAAEA,SAAU;AACrBvB,IAAAA,GAAG,EAAEsC,SAAU;AACfrC,IAAAA,KAAK,EAAEA,KAAgB;AACvB6B,IAAAA,IAAI,EAAED,aAAa,GAAGqB,OAAO,CAAC;AAAEtB,MAAAA,IAAI,EAAJA,IAAAA;KAAM,CAAC,GAAGyD,SAAU;AACpDrC,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCqC,IAAAA,iBAAiB,EAAEzD,aAAc;AACjC0D,IAAAA,WAAW,EAAE3C,eAAgB;AAC7B1C,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCsF,IAAAA,aAAa,EAAE,CAAC7B,OAAO,CAAC1D,KAAK,CAAE;AAC/BE,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,eAAe,EAAEA,eAAgB;AACjCE,IAAAA,UAAU,EAAEA,UAAW;AACvBC,IAAAA,UAAU,EAAEA,UAAW;AACvBC,IAAAA,IAAI,EAAEA,IAAK;AACXQ,IAAAA,aAAa,EAAEA,aAAc;AAC7BF,IAAAA,WAAW,EAAEA,WAAY;IACzBuE,0BAA0B,EAAE5B,wBAAwB,EAAG;AACvDpD,IAAAA,YAAY,EAAEA,YAAa;AAC3BU,IAAAA,KAAK,EAAEA,KAAM;AACbM,IAAAA,aAAa,EAAEA,aAAc;AAC7BZ,IAAAA,QAAQ,EAAE,SAAAA,QAAA6E,CAAAA,KAAA,EAAqB;AAAA,MAAA,IAAlB9E,IAAI,GAAA8E,KAAA,CAAJ9E,IAAI;QAAEO,KAAK,GAAAuE,KAAA,CAALvE,KAAK,CAAA;MACtB,IAAIE,eAAe,IAAIF,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,IAAAA,KAAK,CAAEyC,MAAM,EAAE;AACpC;QACAH,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChC,OAAA;MAEA,IAAID,qBAAqB,IAAI,EAACrC,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,IAAAA,KAAK,CAAEyC,MAAM,CAAE,EAAA;AAC3C;QACAH,wBAAwB,CAAC,KAAK,CAAC,CAAA;AACjC,OAAA;AAEAL,MAAAA,uBAAuB,CAAC;AAAExC,QAAAA,IAAI,EAAJA,IAAI;AAAEO,QAAAA,KAAK,EAALA,KAAAA;AAAM,OAAC,CAAC,CAAA;AACxCN,MAAAA,SAAQ,KAARA,IAAAA,IAAAA,SAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAQ,CAAG;AAAED,QAAAA,IAAI,EAAJA,IAAI;AAAEO,QAAAA,KAAK,EAALA,KAAAA;AAAM,OAAC,CAAC,CAAA;KAC3B;AACFL,IAAAA,OAAO,EAAE,SAAAA,OAAC6E,CAAAA,CAAC,EAAK;MACd9C,kBAAkB,CAAC,IAAI,CAAC,CAAA;AACxB/B,MAAAA,QAAO,aAAPA,QAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,QAAO,CAAG6E,CAAC,CAAC,CAAA;KACZ;AACF5E,IAAAA,MAAM,EAAE,SAAAA,MAAC4E,CAAAA,CAAC,EAAK;MACb9C,kBAAkB,CAAC,KAAK,CAAC,CAAA;AACzB9B,MAAAA,OAAM,aAANA,OAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,OAAM,CAAG4E,CAAC,CAAC,CAAA;KACX;AACF1E,IAAAA,SAAS,EAAE,SAAAA,SAAC0E,CAAAA,CAAC,EAAK;MAChBxC,wBAAwB,CAACwC,CAAC,CAAC,CAAA;AAC3B1E,MAAAA,UAAS,KAATA,IAAAA,IAAAA,UAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAS,CAAG;QACVL,IAAI,EAAE+E,CAAC,CAAC/E,IAAI;AACZO,QAAAA,KAAK,EAAEwE,CAAC,CAACC,KAAK,CAACC,aAAa,CAAC1E,KAAK;QAClCyE,KAAK,EAAED,CAAC,CAACC,KAAAA;AACX,OAAC,CAAC,CAAA;KACF;AACF5E,IAAAA,QAAQ,EAAEA,QAAS;AACnB8E,IAAAA,kBAAkB,EAAE,SAAAA,kBAAC3E,CAAAA,KAAK,EAAK;AAAA,MAAA,IAAA4E,aAAA,CAAA;AAC7B,MAAA,OAAO3E,aAAa,gBAClB0C,GAAA,CAACC,OAAO,EAAA;AAACE,QAAAA,SAAS,EAAE+B,aAAa,CAACpE,IAAI,CAAE;AAACqE,QAAAA,WAAW,EAAC,WAAW;QAAA/B,QAAA,eAC9DJ,GAAA,CAACoC,gBAAgB,EAAA;AAACC,UAAAA,YAAY,EAAAJ,CAAAA,aAAA,GAAE5E,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEyC,MAAM,MAAAmC,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,aAAA,GAAI,CAAE;AAACK,UAAAA,QAAQ,EAAEhF,aAAAA;SAAgB,CAAA;OACvE,CAAC,GACR,IAAI,CAAA;KACR;AACFM,IAAAA,MAAM,EAAEA,MAAO;AACfE,IAAAA,IAAI,EAAEA,IAAAA;GACFI,EAAAA,IAAI,CACT,CAAC,CAAA;AAEN,CAAC,CAAA;AAEKoD,IAAAA,QAAQ,gBAAGiB,wBAAwB,eAACjE,cAAK,CAACkE,UAAU,CAACxG,SAAS,CAAC,EAAE;AACrEyG,EAAAA,WAAW,EAAE,UAAA;AACf,CAAC;;;;"}
1
+ {"version":3,"file":"TextArea.js","sources":["../../../../../../../src/components/Input/TextArea/TextArea.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\nimport React from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\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';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\n\ntype TextAreaCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'necessityIndicator'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'maxCharacters'\n | 'autoFocus'\n | 'numberOfLines'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n onKeyDown?: ({\n name,\n value,\n event,\n }: {\n name?: FormInputOnKeyDownEvent['name'];\n value: string;\n event: FormInputOnKeyDownEvent['event'];\n }) => void;\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextAreaPropsWithA11yLabel = {\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 TextAreaPropsWithLabel = {\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 TextAreaProps = (TextAreaPropsWithA11yLabel | TextAreaPropsWithLabel) & TextAreaCommonProps;\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 _TextArea: React.ForwardRefRenderFunction<BladeElementRef, TextAreaProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition,\n labelSuffix,\n labelTrailing,\n necessityIndicator,\n errorText,\n helpText,\n successText,\n validationState,\n defaultValue,\n isDisabled,\n isRequired,\n name,\n onChange,\n onFocus,\n onBlur,\n onSubmit,\n onKeyDown,\n placeholder,\n value,\n maxCharacters,\n showClearButton,\n onClearButtonClick,\n autoFocus,\n numberOfLines = 2,\n testID,\n size = 'medium',\n isTaggedInput,\n tags,\n onTagChange,\n ...rest\n },\n ref,\n) => {\n const inputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const [isInputFocussed, setIsInputFocussed] = React.useState(autoFocus ?? false);\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n tags,\n onTagChange,\n isDisabled,\n inputRef,\n isTaggedInput,\n name,\n value,\n onChange,\n });\n\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (value?.length || defaultValue?.length)));\n }, [showClearButton, defaultValue, value]);\n\n const renderInteractionElement = (): React.ReactNode => {\n if (shouldShowClearButton) {\n return (\n <BaseBox paddingTop=\"spacing.3\" marginTop=\"spacing.1\">\n <IconButton\n icon={CloseIcon}\n accessibilityLabel=\"Clear textarea content\"\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(inputRef.current)) {\n inputRef.current.clear();\n inputRef.current.focus();\n } else if (inputRef.current instanceof HTMLTextAreaElement) {\n inputRef.current.value = '';\n inputRef.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 inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n />\n </BaseBox>\n );\n }\n\n return null;\n };\n\n return (\n <BaseInput\n as=\"textarea\"\n id=\"textarea\"\n maxTagRows=\"multiple\"\n componentName={MetaConstants.TextArea}\n autoFocus={autoFocus}\n ref={mergedRef}\n label={label as string}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n isDropdownTrigger={isTaggedInput}\n showAllTags={isInputFocussed}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n necessityIndicator={necessityIndicator}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n validationState={validationState}\n isDisabled={isDisabled}\n isRequired={isRequired}\n name={name}\n maxCharacters={maxCharacters}\n placeholder={placeholder}\n trailingInteractionElement={renderInteractionElement()}\n defaultValue={defaultValue}\n value={value}\n numberOfLines={numberOfLines}\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 onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n onKeyDown?.({\n name: e.name,\n value: e.event.currentTarget.value,\n event: e.event,\n });\n }}\n onSubmit={onSubmit}\n trailingFooterSlot={(value) => {\n return maxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter currentCount={value?.length ?? 0} maxCount={maxCharacters} />\n </BaseBox>\n ) : null;\n }}\n testID={testID}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextArea = assignWithoutSideEffects(React.forwardRef(_TextArea), {\n displayName: 'TextArea',\n});\n\nexport type { TextAreaProps };\nexport { TextArea };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextArea","_ref","ref","label","accessibilityLabel","labelPosition","labelSuffix","labelTrailing","necessityIndicator","errorText","helpText","successText","validationState","defaultValue","isDisabled","isRequired","name","onChange","onFocus","onBlur","onSubmit","onKeyDown","placeholder","value","maxCharacters","showClearButton","onClearButtonClick","autoFocus","_ref$numberOfLines","numberOfLines","testID","_ref$size","size","isTaggedInput","tags","onTagChange","rest","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","_React$useState","useState","_React$useState2","_slicedToArray","isInputFocussed","setIsInputFocussed","_useTaggedInput","useTaggedInput","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState3","_React$useState4","shouldShowClearButton","setShouldShowClearButton","useEffect","Boolean","length","renderInteractionElement","_jsx","BaseBox","paddingTop","marginTop","children","IconButton","icon","CloseIcon","onClick","_inputRef$current","isEmpty","current","clear","focus","HTMLTextAreaElement","BaseInput","_objectSpread","as","id","maxTagRows","componentName","MetaConstants","TextArea","undefined","isDropdownTrigger","showAllTags","hideLabelText","trailingInteractionElement","_ref2","e","event","currentTarget","trailingFooterSlot","_value$length","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
@@ -34,7 +34,7 @@ import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
34
34
  import { CharacterCounter } from '../../Form/CharacterCounter/CharacterCounter.js';
35
35
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
36
36
 
37
- var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "type", "defaultValue", "name", "value", "maxCharacters", "format", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "necessityIndicator", "validationState", "errorText", "helpText", "successText", "isRequired", "icon", "prefix", "showClearButton", "onClearButtonClick", "isLoading", "suffix", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "autoCapitalize", "testID", "size", "leadingIcon", "trailingIcon", "isTaggedInput", "tags", "onTagChange", "trailing", "leading"];
37
+ var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "type", "defaultValue", "name", "value", "maxCharacters", "format", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "necessityIndicator", "validationState", "errorText", "helpText", "successText", "isRequired", "icon", "prefix", "showClearButton", "onClearButtonClick", "isLoading", "suffix", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "autoCapitalize", "testID", "size", "leadingIcon", "trailingIcon", "isTaggedInput", "tags", "onTagChange", "trailing", "leading", "labelSuffix", "labelTrailing"];
38
38
  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; }
39
39
  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; }
40
40
  // need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists
@@ -88,6 +88,8 @@ var _TextInput = function _TextInput(_ref, ref) {
88
88
  onTagChange = _ref.onTagChange,
89
89
  trailing = _ref.trailing,
90
90
  leading = _ref.leading,
91
+ labelSuffix = _ref.labelSuffix,
92
+ labelTrailing = _ref.labelTrailing,
91
93
  rest = _objectWithoutProperties(_ref, _excluded);
92
94
  var textInputRef = React__default.useRef(null);
93
95
  var mergedRef = useMergeRefs(ref, textInputRef);
@@ -269,6 +271,8 @@ var _TextInput = function _TextInput(_ref, ref) {
269
271
  textInputWrapperRef.current = wrapperNode;
270
272
  },
271
273
  label: label,
274
+ labelSuffix: labelSuffix,
275
+ labelTrailing: labelTrailing,
272
276
  accessibilityLabel: accessibilityLabel,
273
277
  hideLabelText: !Boolean(label),
274
278
  labelPosition: labelPosition,