@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
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.js","sources":["../../../../../../src/components/Input/TextInput/TextInput.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getKeyboardAndAutocompleteProps } from '../BaseInput/utils';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport { useFormattedInput } from './useFormattedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { IconComponent } from '~components/Icons';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n ContainerElementType,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { hintMarginTop } from '~components/Form/formTokens';\nimport { Divider } from '~components/Divider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { DropdownOverlay } from '~components/Dropdown';\nimport type { FormInputOnEvent } from '~components/Form/FormTypes';\n\n// Users should use PasswordInput for input type password\ntype Type = Exclude<BaseInputProps['type'], 'password'>;\n\ntype TextInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'necessityIndicator'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'prefix'\n | 'suffix'\n | 'maxCharacters'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'autoCompleteSuggestionType'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | 'leadingIcon'\n | 'trailingButton'\n | 'trailingIcon'\n | 'textAlign'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n\n /**\n * Icon that will be rendered at the beginning of the input field\n * @deprecated Use `leading` instead. This prop will be removed in the next major version.\n */\n icon?: IconComponent;\n /**\n * Type of Input Field to be rendered. Use `PasswordInput` for type `password`\n *\n *\n * **Note on number type**\n *\n * `type=\"number\"` internally uses `inputMode=\"numeric\"` instead of HTML's `type=\"number\"` which also allows text characters.\n * If you have a usecase where you only want to support number input, you can handle it on validations end.\n *\n * Check out [Why the GOV.UK Design System team changed the input type for numbers](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/) for reasoning\n *\n * @default text\n */\n type?: Type;\n /**\n *\n * Icon or React Element to be rendered at the end of the input field\n */\n trailing?: React.ReactElement | IconComponent;\n /**\n * Icon or React Element to be rendered at the beginning of the input field\n */\n leading?: React.ReactElement | IconComponent;\n /**\n * Format pattern where # represents input characters and other symbols act as delimiters\n * When provided, input will be automatically formatted and onChange will include rawValue\n *\n * **Note:**\n * 1. Format pattern should only contain # symbols and special characters as delimiters.\n * Alphanumeric characters (letters and numbers) are not allowed in the format pattern.\n * 2. When format is provided, user input is restricted to alphanumeric characters only.\n * Special characters and symbols will be filtered out automatically from user input.\n *\n * @example \"#### #### #### ####\" for card numbers\n * @example \"##/##\" for expiry dates\n * @example \"(###) ###-####\" for phone numbers\n */\n format?:\n | '#### #### #### ####'\n | '##/##'\n | '##/##/####'\n | '(###) ###-####'\n | '###-##-####'\n | '##:##'\n | '##:##:##'\n | '#### #### ####'\n | '###.###.###.###'\n | '## ## ####'\n | '##-###-##'\n // eslint-disable-next-line @typescript-eslint/ban-types\n | (string & {});\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype TextInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype TextInputProps = (TextInputPropsWithA11yLabel | TextInputPropsWithLabel) &\n TextInputCommonProps;\n\n// need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _TextInput: React.ForwardRefRenderFunction<BladeElementRef, TextInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n type = 'text',\n defaultValue,\n name,\n value,\n maxCharacters,\n format,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n necessityIndicator,\n validationState,\n errorText,\n helpText,\n successText,\n isRequired,\n icon,\n prefix,\n showClearButton,\n onClearButtonClick,\n isLoading,\n suffix,\n autoFocus,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n testID,\n size = 'medium',\n leadingIcon,\n trailingIcon,\n isTaggedInput,\n tags,\n onTagChange,\n trailing,\n leading,\n ...rest\n },\n ref,\n): ReactElement => {\n const textInputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, textInputRef);\n const [shouldShowClearButton, setShouldShowClearButton] = useState(false);\n const [isInputFocussed, setIsInputFocussed] = useState(autoFocus ?? false);\n\n if (__DEV__) {\n if (format) {\n const hasAlphanumeric = /[a-zA-Z0-9]/.test(format);\n if (hasAlphanumeric) {\n throw new Error(\n `[Blade: TextInput] Invalid format \"${format}\". Only # and special characters allowed, no letters/numbers.`,\n );\n }\n }\n }\n\n const formattingResult = useFormattedInput({\n format,\n onChange,\n value,\n defaultValue,\n });\n\n const inputValue = format ? formattingResult.formattedValue : value;\n const effectiveMaxCharacters = format ? formattingResult.maxLength : maxCharacters;\n\n const handleOnChange: FormInputOnEvent = React.useCallback(\n ({ name, value: inputValue }) => {\n if (format) {\n formattingResult.handleChange({ name, value: inputValue });\n } else {\n onChange?.({ name, value: inputValue });\n }\n },\n [format, formattingResult.handleChange, onChange],\n );\n\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n isTaggedInput,\n tags,\n onTagChange,\n isDisabled,\n onChange: handleOnChange,\n name,\n value: inputValue,\n inputRef: textInputRef,\n });\n const [isTrailingDropDownOpen, setIsTrailingDropDownOpen] = React.useState(false);\n const [isLeadingDropDownOpen, setIsLeadingDropDownOpen] = React.useState(false);\n const textInputWrapperRef = useRef<ContainerElementType | null>(null);\n\n useEffect(() => {\n if (isTrailingDropDownOpen && isLeadingDropDownOpen) {\n setIsLeadingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isTrailingDropDownOpen]);\n\n useEffect(() => {\n if (isLeadingDropDownOpen && isTrailingDropDownOpen) {\n setIsTrailingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLeadingDropDownOpen]);\n\n const leadingDropDown =\n leading && getComponentId(leading as React.ReactElement) === 'Dropdown' ? leading : null;\n\n const trailingDropdown =\n trailing && getComponentId(trailing as React.ReactElement) === 'Dropdown' ? trailing : null;\n // we need to look into name of component and check if it 's and icon or a dropdown\n const _leadingIcon: IconComponent | undefined =\n leading && typeof leading === 'function' && leading.name?.endsWith('Icon')\n ? (leading as IconComponent)\n : undefined;\n\n const _trailingIcon: IconComponent | undefined =\n trailing && typeof trailing === 'function' && trailing.name?.endsWith('Icon')\n ? (trailing as IconComponent)\n : undefined;\n const hasLeadingInteractionElement = !_leadingIcon && !leadingDropDown && leading;\n\n const hasTrailingInteractionElement = !_trailingIcon && !trailingDropdown && trailing;\n\n const renderDropdown = (\n dropdown: React.ReactElement,\n isOpen: boolean,\n setIsOpen: (isOpen: boolean) => void,\n defaultPlacement: 'bottom-start' | 'bottom-end',\n ): React.ReactElement | null => {\n if (!dropdown) {\n return null;\n }\n return React.cloneElement(dropdown, {\n selectionType: 'single',\n isOpen,\n onOpenChange: (isOpen: boolean) => {\n setIsOpen(isOpen);\n },\n children: React.Children.map(dropdown.props.children, (child) => {\n if (child.type === DropdownOverlay) {\n return React.cloneElement(child, {\n referenceRef: textInputWrapperRef,\n _isNestedDropdown: true,\n defaultPlacement,\n });\n }\n return child;\n }),\n });\n };\n\n const renderLeadingDropDown = renderDropdown(\n leadingDropDown as React.ReactElement,\n isLeadingDropDownOpen,\n setIsLeadingDropDownOpen,\n 'bottom-start',\n );\n const renderTrailingDropDown = renderDropdown(\n trailingDropdown as React.ReactElement,\n isTrailingDropDownOpen,\n setIsTrailingDropDownOpen,\n 'bottom-end',\n );\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (defaultValue ?? inputValue)));\n }, [showClearButton, defaultValue, inputValue]);\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(inputValue) && textInputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(textInputRef.current)) {\n textInputRef.current.clear();\n textInputRef.current.focus();\n } else if (textInputRef.current instanceof HTMLInputElement) {\n textInputRef.current.value = '';\n textInputRef.current.focus();\n }\n }\n handleTagsClear();\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n textInputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n const hasTrailingDropDown = Boolean(trailingDropdown);\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton && hasTrailingDropDown) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" />\n </BaseBox>\n );\n }\n\n if (showClearButton && hasTrailingInteractionElement) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" /> {trailing as React.ReactElement}\n </BaseBox>\n );\n }\n\n if (shouldShowClearButton) {\n return renderClearButton();\n }\n\n if (hasTrailingInteractionElement) {\n return trailing as React.ReactElement;\n }\n return null;\n };\n return (\n <BaseInput\n id=\"textinput\"\n componentName={MetaConstants.TextInput}\n ref={mergedRef}\n setInputWrapperRef={(wrapperNode) => {\n textInputWrapperRef.current = wrapperNode;\n }}\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n // CONTROLLED/UNCONTROLLED INPUT LOGIC:\n // For inputs WITHOUT format:\n // - Use standard React controlled/uncontrolled logic\n // - Controlled: user provides `value` prop → use `value` prop\n // - Uncontrolled: user provides `defaultValue` prop → use `defaultValue` prop\n //\n // For inputs WITH format:\n // - Formatting requires controlled mode to re-render and show formatted values\n // - Case 1: Only `value` provided → defaultValue: undefined, value: formattedValue (normal controlled)\n // - Case 2: Only `defaultValue` provided → defaultValue: undefined, value: formattedValue (convert to controlled)\n // - Case 3: Both `value` and `defaultValue` provided → defaultValue: defaultValue, value: formattedValue (let BaseInput detect conflict and throw error)\n //\n defaultValue={\n format\n ? value !== undefined && defaultValue !== undefined\n ? defaultValue\n : undefined\n : defaultValue\n }\n value={format ? inputValue : value}\n name={name}\n maxCharacters={effectiveMaxCharacters}\n isDropdownTrigger={isTaggedInput}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n showAllTags={isInputFocussed}\n maxTagRows=\"single\"\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n leadingDropDown={renderLeadingDropDown}\n trailingDropDown={renderTrailingDropDown}\n leadingInteractionElement={\n hasLeadingInteractionElement ? (leading as React.ReactElement) : null\n }\n onChange={({ name, value }: { name?: string; value?: string }) => {\n if (showClearButton && value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n handleTaggedInputChange({ name, value });\n handleOnChange({ name, value });\n }}\n onClick={onClick}\n onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n if (format) {\n formattingResult.handleKeyDown(e.event);\n }\n }}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n leadingIcon={_leadingIcon ?? leadingIcon ?? icon}\n prefix={prefix}\n trailingInteractionElement={renderInteractionElement()}\n trailingIcon={_trailingIcon ?? trailingIcon}\n suffix={suffix}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n trailingFooterSlot={(value) => {\n return format ? null : effectiveMaxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter\n currentCount={value?.length ?? 0}\n maxCount={effectiveMaxCharacters}\n size={size}\n />\n </BaseBox>\n ) : null;\n }}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextInput = assignWithoutSideEffects(React.forwardRef(_TextInput), {\n displayName: 'TextInput',\n});\n\nexport type { TextInputProps };\nexport { TextInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextInput","_ref","ref","_leading$name","_trailing$name","_ref4","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","_ref$type","type","defaultValue","name","value","maxCharacters","format","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","necessityIndicator","validationState","errorText","helpText","successText","isRequired","icon","prefix","showClearButton","onClearButtonClick","isLoading","suffix","autoFocus","keyboardReturnKeyType","autoCompleteSuggestionType","autoCapitalize","testID","_ref$size","size","leadingIcon","trailingIcon","isTaggedInput","tags","onTagChange","trailing","leading","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isInputFocussed","setIsInputFocussed","__DEV__","hasAlphanumeric","test","Error","formattingResult","useFormattedInput","inputValue","formattedValue","effectiveMaxCharacters","maxLength","handleOnChange","useCallback","_ref2","handleChange","_useTaggedInput","useTaggedInput","inputRef","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState","_React$useState2","isTrailingDropDownOpen","setIsTrailingDropDownOpen","_React$useState3","_React$useState4","isLeadingDropDownOpen","setIsLeadingDropDownOpen","textInputWrapperRef","useEffect","leadingDropDown","getComponentId","trailingDropdown","_leadingIcon","endsWith","undefined","_trailingIcon","hasLeadingInteractionElement","hasTrailingInteractionElement","renderDropdown","dropdown","isOpen","setIsOpen","defaultPlacement","cloneElement","selectionType","onOpenChange","children","Children","map","props","child","DropdownOverlay","referenceRef","_isNestedDropdown","renderLeadingDropDown","renderTrailingDropDown","Boolean","renderClearButton","_jsx","IconButton","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","hasTrailingDropDown","renderInteractionElement","Spinner","color","_jsxs","BaseBox","display","gap","Divider","orientation","BaseInput","Object","assign","id","componentName","MetaConstants","TextInput","setInputWrapperRef","wrapperNode","hideLabelText","isDropdownTrigger","showAllTags","maxTagRows","trailingDropDown","leadingInteractionElement","_ref3","length","e","onKeyDown","handleKeyDown","event","trailingInteractionElement","trailingFooterSlot","_value$length","marginTop","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","getKeyboardAndAutocompleteProps","assignWithoutSideEffects","forwardRef","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uiBAmLA,IAAMA,aAAa,CAAG,SAAhBA,aAAaA,CAAIC,aAAkB,CAA4C,CACnF,OAAOC,eAAe,EAAE,GAAK,cAAc,CAC7C,CAAC,CAED,IAAMC,UAA2E,CAAG,SAA9EA,UAA2EA,CAAAC,IAAA,CA6C/EC,GAAG,CACc,CAAA,IAAAC,aAAA,CAAAC,cAAA,CAAAC,KAAA,CAAA,IA5CfC,KAAK,CAAAL,IAAA,CAALK,KAAK,CACLC,kBAAkB,CAAAN,IAAA,CAAlBM,kBAAkB,CAAAC,kBAAA,CAAAP,IAAA,CAClBQ,aAAa,CAAbA,aAAa,CAAAD,kBAAA,GAAA,KAAA,CAAA,CAAG,KAAK,CAAAA,kBAAA,CACrBE,WAAW,CAAAT,IAAA,CAAXS,WAAW,CAAAC,SAAA,CAAAV,IAAA,CACXW,IAAI,CAAJA,IAAI,CAAAD,SAAA,GAAG,KAAA,CAAA,CAAA,MAAM,CAAAA,SAAA,CACbE,YAAY,CAAAZ,IAAA,CAAZY,YAAY,CACZC,IAAI,CAAAb,IAAA,CAAJa,IAAI,CACJC,KAAK,CAAAd,IAAA,CAALc,KAAK,CACLC,aAAa,CAAAf,IAAA,CAAbe,aAAa,CACbC,MAAM,CAAAhB,IAAA,CAANgB,MAAM,CACNC,QAAQ,CAAAjB,IAAA,CAARiB,QAAQ,CACRC,OAAO,CAAAlB,IAAA,CAAPkB,OAAO,CACPC,QAAO,CAAAnB,IAAA,CAAPmB,OAAO,CACPC,OAAM,CAAApB,IAAA,CAANoB,MAAM,CACNC,QAAQ,CAAArB,IAAA,CAARqB,QAAQ,CACRC,UAAU,CAAAtB,IAAA,CAAVsB,UAAU,CACVC,kBAAkB,CAAAvB,IAAA,CAAlBuB,kBAAkB,CAClBC,eAAe,CAAAxB,IAAA,CAAfwB,eAAe,CACfC,SAAS,CAAAzB,IAAA,CAATyB,SAAS,CACTC,QAAQ,CAAA1B,IAAA,CAAR0B,QAAQ,CACRC,WAAW,CAAA3B,IAAA,CAAX2B,WAAW,CACXC,UAAU,CAAA5B,IAAA,CAAV4B,UAAU,CACVC,IAAI,CAAA7B,IAAA,CAAJ6B,IAAI,CACJC,MAAM,CAAA9B,IAAA,CAAN8B,MAAM,CACNC,eAAe,CAAA/B,IAAA,CAAf+B,eAAe,CACfC,kBAAkB,CAAAhC,IAAA,CAAlBgC,kBAAkB,CAClBC,SAAS,CAAAjC,IAAA,CAATiC,SAAS,CACTC,MAAM,CAAAlC,IAAA,CAANkC,MAAM,CACNC,SAAS,CAAAnC,IAAA,CAATmC,SAAS,CACTC,qBAAqB,CAAApC,IAAA,CAArBoC,qBAAqB,CACrBC,0BAA0B,CAAArC,IAAA,CAA1BqC,0BAA0B,CAC1BC,cAAc,CAAAtC,IAAA,CAAdsC,cAAc,CACdC,MAAM,CAAAvC,IAAA,CAANuC,MAAM,CAAAC,SAAA,CAAAxC,IAAA,CACNyC,IAAI,CAAJA,IAAI,CAAAD,SAAA,GAAG,KAAA,CAAA,CAAA,QAAQ,CAAAA,SAAA,CACfE,WAAW,CAAA1C,IAAA,CAAX0C,WAAW,CACXC,YAAY,CAAA3C,IAAA,CAAZ2C,YAAY,CACZC,aAAa,CAAA5C,IAAA,CAAb4C,aAAa,CACbC,IAAI,CAAA7C,IAAA,CAAJ6C,IAAI,CACJC,WAAW,CAAA9C,IAAA,CAAX8C,WAAW,CACXC,QAAQ,CAAA/C,IAAA,CAAR+C,QAAQ,CACRC,OAAO,CAAAhD,IAAA,CAAPgD,OAAO,CACJC,IAAI,CAAAC,wBAAA,CAAAlD,IAAA,CAAAmD,SAAA,CAIT,CAAA,IAAMC,YAAY,CAAGC,cAAK,CAACC,MAAM,CAA2B,IAAI,CAAC,CACjE,IAAMC,SAAS,CAAGC,YAAY,CAACvD,GAAG,CAAEmD,YAAY,CAAC,CACjD,IAAAK,SAAA,CAA0DC,QAAQ,CAAC,KAAK,CAAC,CAAAC,UAAA,CAAAC,cAAA,CAAAH,SAAA,CAAA,CAAA,CAAA,CAAlEI,qBAAqB,CAAAF,UAAA,CAAA,CAAA,CAAA,CAAEG,wBAAwB,CAAAH,UAAA,CAAA,CAAA,CAAA,CACtD,IAAAI,UAAA,CAA8CL,QAAQ,CAACvB,SAAS,EAAA,IAAA,CAATA,SAAS,CAAI,KAAK,CAAC,CAAA6B,UAAA,CAAAJ,cAAA,CAAAG,UAAA,IAAnEE,eAAe,CAAAD,UAAA,CAAA,CAAA,CAAA,CAAEE,kBAAkB,CAAAF,UAAA,CAAA,CAAA,CAAA,CAE1C,GAAIG,OAAO,CAAE,CACX,GAAInD,MAAM,CAAE,CACV,IAAMoD,eAAe,CAAG,aAAa,CAACC,IAAI,CAACrD,MAAM,CAAC,CAClD,GAAIoD,eAAe,CAAE,CACnB,MAAM,IAAIE,KAAK,CACZ,CAAA,mCAAA,EAAqCtD,MAAO,CAAA,6DAAA,CAC/C,CAAC,CACH,CACF,CACF,CAEA,IAAMuD,gBAAgB,CAAGC,iBAAiB,CAAC,CACzCxD,MAAM,CAANA,MAAM,CACNC,QAAQ,CAARA,QAAQ,CACRH,KAAK,CAALA,KAAK,CACLF,YAAY,CAAZA,YACF,CAAC,CAAC,CAEF,IAAM6D,UAAU,CAAGzD,MAAM,CAAGuD,gBAAgB,CAACG,cAAc,CAAG5D,KAAK,CACnE,IAAM6D,sBAAsB,CAAG3D,MAAM,CAAGuD,gBAAgB,CAACK,SAAS,CAAG7D,aAAa,CAElF,IAAM8D,cAAgC,CAAGxB,cAAK,CAACyB,WAAW,CACxD,SAAAC,KAAA,CAAiC,CAAA,IAA9BlE,IAAI,CAAAkE,KAAA,CAAJlE,IAAI,CAAS4D,UAAU,CAAAM,KAAA,CAAjBjE,KAAK,CACZ,GAAIE,MAAM,CAAE,CACVuD,gBAAgB,CAACS,YAAY,CAAC,CAAEnE,IAAI,CAAJA,IAAI,CAAEC,KAAK,CAAE2D,UAAW,CAAC,CAAC,CAC5D,CAAC,KAAM,CACLxD,QAAQ,EAAA,IAAA,CAAA,KAAA,CAAA,CAARA,QAAQ,CAAG,CAAEJ,IAAI,CAAJA,IAAI,CAAEC,KAAK,CAAE2D,UAAW,CAAC,CAAC,CACzC,CACF,CAAC,CACD,CAACzD,MAAM,CAAEuD,gBAAgB,CAACS,YAAY,CAAE/D,QAAQ,CAClD,CAAC,CAED,IAAAgE,eAAA,CAOIC,cAAc,CAAC,CACjBtC,aAAa,CAAbA,aAAa,CACbC,IAAI,CAAJA,IAAI,CACJC,WAAW,CAAXA,WAAW,CACXxB,UAAU,CAAVA,UAAU,CACVL,QAAQ,CAAE4D,cAAc,CACxBhE,IAAI,CAAJA,IAAI,CACJC,KAAK,CAAE2D,UAAU,CACjBU,QAAQ,CAAE/B,YACZ,CAAC,CAAC,CAfAgC,cAAc,CAAAH,eAAA,CAAdG,cAAc,CACdC,iBAAiB,CAAAJ,eAAA,CAAjBI,iBAAiB,CACjBC,OAAO,CAAAL,eAAA,CAAPK,OAAO,CACPC,wBAAwB,CAAAN,eAAA,CAAxBM,wBAAwB,CACxBC,uBAAuB,CAAAP,eAAA,CAAvBO,uBAAuB,CACvBC,eAAe,CAAAR,eAAA,CAAfQ,eAAe,CAWjB,IAAAC,eAAA,CAA4DrC,cAAK,CAACK,QAAQ,CAAC,KAAK,CAAC,CAAAiC,gBAAA,CAAA/B,cAAA,CAAA8B,eAAA,CAAA,CAAA,CAAA,CAA1EE,sBAAsB,CAAAD,gBAAA,CAAA,CAAA,CAAA,CAAEE,yBAAyB,CAAAF,gBAAA,CACxD,CAAA,CAAA,CAAA,IAAAG,gBAAA,CAA0DzC,cAAK,CAACK,QAAQ,CAAC,KAAK,CAAC,CAAAqC,gBAAA,CAAAnC,cAAA,CAAAkC,gBAAA,CAAA,CAAA,CAAA,CAAxEE,qBAAqB,CAAAD,gBAAA,CAAA,CAAA,CAAA,CAAEE,wBAAwB,CAAAF,gBAAA,CAAA,CAAA,CAAA,CACtD,IAAMG,mBAAmB,CAAG5C,MAAM,CAA8B,IAAI,CAAC,CAErE6C,SAAS,CAAC,UAAM,CACd,GAAIP,sBAAsB,EAAII,qBAAqB,CAAE,CACnDC,wBAAwB,CAAC,KAAK,CAAC,CACjC,CAEF,CAAC,CAAE,CAACL,sBAAsB,CAAC,CAAC,CAE5BO,SAAS,CAAC,UAAM,CACd,GAAIH,qBAAqB,EAAIJ,sBAAsB,CAAE,CACnDC,yBAAyB,CAAC,KAAK,CAAC,CAClC,CAEF,CAAC,CAAE,CAACG,qBAAqB,CAAC,CAAC,CAE3B,IAAMI,eAAe,CACnBpD,OAAO,EAAIqD,cAAc,CAACrD,OAA6B,CAAC,GAAK,UAAU,CAAGA,OAAO,CAAG,IAAI,CAE1F,IAAMsD,gBAAgB,CACpBvD,QAAQ,EAAIsD,cAAc,CAACtD,QAA8B,CAAC,GAAK,UAAU,CAAGA,QAAQ,CAAG,IAAI,CAE7F,IAAMwD,YAAuC,CAC3CvD,OAAO,EAAI,OAAOA,OAAO,GAAK,UAAU,EAAA,CAAA9C,aAAA,CAAI8C,OAAO,CAACnC,IAAI,GAAZX,IAAAA,EAAAA,aAAA,CAAcsG,QAAQ,CAAC,MAAM,CAAC,CACrExD,OAAO,CACRyD,SAAS,CAEf,IAAMC,aAAwC,CAC5C3D,QAAQ,EAAI,OAAOA,QAAQ,GAAK,UAAU,EAAA5C,CAAAA,cAAA,CAAI4C,QAAQ,CAAClC,IAAI,SAAbV,cAAA,CAAeqG,QAAQ,CAAC,MAAM,CAAC,CACxEzD,QAAQ,CACT0D,SAAS,CACf,IAAME,4BAA4B,CAAG,CAACJ,YAAY,EAAI,CAACH,eAAe,EAAIpD,OAAO,CAEjF,IAAM4D,6BAA6B,CAAG,CAACF,aAAa,EAAI,CAACJ,gBAAgB,EAAIvD,QAAQ,CAErF,IAAM8D,cAAc,CAAG,SAAjBA,cAAcA,CAClBC,QAA4B,CAC5BC,MAAe,CACfC,SAAoC,CACpCC,gBAA+C,CACjB,CAC9B,GAAI,CAACH,QAAQ,CAAE,CACb,OAAO,IAAI,CACb,CACA,OAAOzD,cAAK,CAAC6D,YAAY,CAACJ,QAAQ,CAAE,CAClCK,aAAa,CAAE,QAAQ,CACvBJ,MAAM,CAANA,MAAM,CACNK,YAAY,CAAE,SAAAA,YAAAA,CAACL,MAAe,CAAK,CACjCC,SAAS,CAACD,MAAM,CAAC,CACnB,CAAC,CACDM,QAAQ,CAAEhE,cAAK,CAACiE,QAAQ,CAACC,GAAG,CAACT,QAAQ,CAACU,KAAK,CAACH,QAAQ,CAAE,SAACI,KAAK,CAAK,CAC/D,GAAIA,KAAK,CAAC9G,IAAI,GAAK+G,eAAe,CAAE,CAClC,OAAOrE,cAAK,CAAC6D,YAAY,CAACO,KAAK,CAAE,CAC/BE,YAAY,CAAEzB,mBAAmB,CACjC0B,iBAAiB,CAAE,IAAI,CACvBX,gBAAgB,CAAhBA,gBACF,CAAC,CAAC,CACJ,CACA,OAAOQ,KAAK,CACd,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CAED,IAAMI,qBAAqB,CAAGhB,cAAc,CAC1CT,eAAe,CACfJ,qBAAqB,CACrBC,wBAAwB,CACxB,cACF,CAAC,CACD,IAAM6B,sBAAsB,CAAGjB,cAAc,CAC3CP,gBAAgB,CAChBV,sBAAsB,CACtBC,yBAAyB,CACzB,YACF,CAAC,CAEDxC,cAAK,CAAC8C,SAAS,CAAC,UAAM,CACpBrC,wBAAwB,CAACiE,OAAO,CAAChG,eAAe,GAAKnB,YAAY,EAAZA,IAAAA,CAAAA,YAAY,CAAI6D,UAAU,CAAC,CAAC,CAAC,CACpF,CAAC,CAAE,CAAC1C,eAAe,CAAEnB,YAAY,CAAE6D,UAAU,CAAC,CAAC,CAE/C,IAAMuD,iBAAiB,CAAG,SAApBA,iBAAiBA,EAA6B,CAClD,OACEC,GAAA,CAACC,UAAU,CACTzF,CAAAA,IAAI,CAAC,QAAQ,CACbZ,IAAI,CAAEsG,SAAU,CAChBjH,OAAO,CAAE,SAAAA,OAAAA,EAAM,CAAAkH,IAAAA,qBAAA,CACb,GAAIC,OAAO,CAAC5D,UAAU,CAAC,EAAIrB,YAAY,CAACkF,OAAO,CAAE,CAE/C,GAAI1I,aAAa,CAACwD,YAAY,CAACkF,OAAO,CAAC,CAAE,CACvClF,YAAY,CAACkF,OAAO,CAACC,KAAK,EAAE,CAC5BnF,YAAY,CAACkF,OAAO,CAACE,KAAK,EAAE,CAC9B,CAAC,KAAUpF,GAAAA,YAAY,CAACkF,OAAO,YAAYG,gBAAgB,CAAE,CAC3DrF,YAAY,CAACkF,OAAO,CAACxH,KAAK,CAAG,EAAE,CAC/BsC,YAAY,CAACkF,OAAO,CAACE,KAAK,EAAE,CAC9B,CACF,CACA/C,eAAe,EAAE,CAEjBzD,kBAAkB,EAAA,IAAA,CAAA,KAAA,CAAA,CAAlBA,kBAAkB,EAAI,CACtBoB,YAAY,EAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAAgF,qBAAA,CAAZhF,YAAY,CAAEkF,OAAO,GAArBF,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,qBAAA,CAAuBI,KAAK,EAAE,CAC9B1E,wBAAwB,CAAC,KAAK,CAAC,CACjC,CAAE,CACFxC,UAAU,CAAEA,UAAW,CACvBhB,kBAAkB,CAAC,qBAAqB,CACzC,CAAC,CAEN,CAAC,CACD,IAAMoI,mBAAmB,CAAGX,OAAO,CAACzB,gBAAgB,CAAC,CAErD,IAAMqC,wBAAwB,CAAG,SAA3BA,wBAAwBA,EAAoB,CAChD,GAAI1G,SAAS,CAAE,CACb,OAAOgG,GAAA,CAACW,OAAO,EAACtI,kBAAkB,CAAC,iBAAiB,CAACuI,KAAK,CAAC,SAAS,CAAE,CAAC,CACzE,CAEA,GAAIhF,qBAAqB,EAAI6E,mBAAmB,CAAE,CAChD,OACEI,IAAA,CAACC,OAAO,CAAA,CAACC,OAAO,CAAC,MAAM,CAACC,GAAG,CAAC,WAAW,CAAA5B,QAAA,CACpCW,CAAAA,iBAAiB,EAAE,CAAC,GAAC,CAAAC,GAAA,CAACiB,OAAO,CAAA,CAACC,WAAW,CAAC,UAAU,CAAE,CAAC,CACjD,CAAA,CAAC,CAEd,CAEA,GAAIpH,eAAe,EAAI6E,6BAA6B,CAAE,CACpD,OACEkC,IAAA,CAACC,OAAO,CAACC,CAAAA,OAAO,CAAC,MAAM,CAACC,GAAG,CAAC,WAAW,CAAA5B,QAAA,EACpCW,iBAAiB,EAAE,CAAC,GAAC,CAAAC,GAAA,CAACiB,OAAO,CAAA,CAACC,WAAW,CAAC,UAAU,CAAE,CAAC,CAAC,GAAA,CAACpG,QAAQ,CAAA,CAC3D,CAAC,CAEd,CAEA,GAAIc,qBAAqB,CAAE,CACzB,OAAOmE,iBAAiB,EAAE,CAC5B,CAEA,GAAIpB,6BAA6B,CAAE,CACjC,OAAO7D,QAAQ,CACjB,CACA,OAAO,IAAI,CACb,CAAC,CACD,OACEkF,GAAA,CAACmB,SAAS,CAAAC,MAAA,CAAAC,MAAA,CAAA,CACRC,EAAE,CAAC,WAAW,CACdC,aAAa,CAAEC,aAAa,CAACC,SAAU,CACvCzJ,GAAG,CAAEsD,SAAU,CACfoG,kBAAkB,CAAE,SAAAA,mBAACC,WAAW,CAAK,CACnC1D,mBAAmB,CAACoC,OAAO,CAAGsB,WAAW,CAC3C,CAAE,CACFvJ,KAAK,CAAEA,KAAgB,CACvBC,kBAAkB,CAAEA,kBAAmB,CACvCuJ,aAAa,CAAE,CAAC9B,OAAO,CAAC1H,KAAK,CAAE,CAC/BG,aAAa,CAAEA,aAAc,CAC7BC,WAAW,CAAEA,WAAY,CAazBG,YAAY,CACVI,MAAM,CACFF,KAAK,GAAK2F,SAAS,EAAI7F,YAAY,GAAK6F,SAAS,CAC/C7F,YAAY,CACZ6F,SAAS,CACX7F,YACL,CACDE,KAAK,CAAEE,MAAM,CAAGyD,UAAU,CAAG3D,KAAM,CACnCD,IAAI,CAAEA,IAAK,CACXE,aAAa,CAAE4D,sBAAuB,CACtCmF,iBAAiB,CAAElH,aAAc,CACjCC,IAAI,CAAED,aAAa,CAAG0C,OAAO,CAAC,CAAE7C,IAAI,CAAJA,IAAK,CAAC,CAAC,CAAGgE,SAAU,CACpDsD,WAAW,CAAE9F,eAAgB,CAC7B+F,UAAU,CAAC,QAAQ,CACnB5E,cAAc,CAAEA,cAAe,CAC/BC,iBAAiB,CAAEA,iBAAkB,CACrCe,eAAe,CAAEyB,qBAAsB,CACvCoC,gBAAgB,CAAEnC,sBAAuB,CACzCoC,yBAAyB,CACvBvD,4BAA4B,CAAI3D,OAAO,CAA0B,IAClE,CACD/B,QAAQ,CAAE,SAAAA,QAAAA,CAAAkJ,KAAA,CAAwD,CAAA,IAArDtJ,IAAI,CAAAsJ,KAAA,CAAJtJ,IAAI,CAAEC,KAAK,CAAAqJ,KAAA,CAALrJ,KAAK,CACtB,GAAIiB,eAAe,EAAIjB,KAAK,EAALA,IAAAA,EAAAA,KAAK,CAAEsJ,MAAM,CAAE,CAEpCtG,wBAAwB,CAAC,IAAI,CAAC,CAChC,CAEA,GAAID,qBAAqB,EAAI,EAAC/C,KAAK,QAALA,KAAK,CAAEsJ,MAAM,CAAA,CAAE,CAE3CtG,wBAAwB,CAAC,KAAK,CAAC,CACjC,CAEA0B,uBAAuB,CAAC,CAAE3E,IAAI,CAAJA,IAAI,CAAEC,KAAK,CAALA,KAAM,CAAC,CAAC,CACxC+D,cAAc,CAAC,CAAEhE,IAAI,CAAJA,IAAI,CAAEC,KAAK,CAALA,KAAM,CAAC,CAAC,CACjC,CAAE,CACFI,OAAO,CAAEA,OAAQ,CACjBC,OAAO,CAAE,SAAAA,OAAAA,CAACkJ,CAAC,CAAK,CACdnG,kBAAkB,CAAC,IAAI,CAAC,CACxB/C,QAAO,EAAA,IAAA,CAAA,KAAA,CAAA,CAAPA,QAAO,CAAGkJ,CAAC,CAAC,CACd,CAAE,CACFjJ,MAAM,CAAE,SAAAA,MAAAA,CAACiJ,CAAC,CAAK,CACbnG,kBAAkB,CAAC,KAAK,CAAC,CACzB9C,OAAM,EAANA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,OAAM,CAAGiJ,CAAC,CAAC,CACb,CAAE,CACFC,SAAS,CAAE,SAAAA,UAACD,CAAC,CAAK,CAChB9E,wBAAwB,CAAC8E,CAAC,CAAC,CAC3B,GAAIrJ,MAAM,CAAE,CACVuD,gBAAgB,CAACgG,aAAa,CAACF,CAAC,CAACG,KAAK,CAAC,CACzC,CACF,CAAE,CACFnJ,QAAQ,CAAEA,QAAS,CACnBC,UAAU,CAAEA,UAAW,CACvBC,kBAAkB,CAAEA,kBAAmB,CACvCK,UAAU,CAAEA,UAAW,CACvBc,WAAW,CAAA,CAAAtC,KAAA,CAAEmG,YAAY,EAAZA,IAAAA,CAAAA,YAAY,CAAI7D,WAAW,GAAAtC,IAAAA,CAAAA,KAAA,CAAIyB,IAAK,CACjDC,MAAM,CAAEA,MAAO,CACf2I,0BAA0B,CAAE9B,wBAAwB,EAAG,CACvDhG,YAAY,CAAE+D,aAAa,EAAbA,IAAAA,CAAAA,aAAa,CAAI/D,YAAa,CAC5CT,MAAM,CAAEA,MAAO,CACfV,eAAe,CAAEA,eAAgB,CACjCC,SAAS,CAAEA,SAAU,CACrBC,QAAQ,CAAEA,QAAS,CACnBC,WAAW,CAAEA,WAAY,CACzB+I,kBAAkB,CAAE,SAAAA,kBAAC5J,CAAAA,KAAK,CAAK,CAAA,IAAA6J,aAAA,CAC7B,OAAO3J,MAAM,CAAG,IAAI,CAAG2D,sBAAsB,CAC3CsD,GAAA,CAACc,OAAO,CAAA,CAAC6B,SAAS,CAAEC,aAAa,CAACpI,IAAI,CAAE,CAACqI,WAAW,CAAC,WAAW,CAAAzD,QAAA,CAC9DY,GAAA,CAAC8C,gBAAgB,CAAA,CACfC,YAAY,CAAA,CAAAL,aAAA,CAAE7J,KAAK,EAALA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,KAAK,CAAEsJ,MAAM,GAAAO,IAAAA,CAAAA,aAAA,CAAI,CAAE,CACjCM,QAAQ,CAAEtG,sBAAuB,CACjClC,IAAI,CAAEA,IAAK,CACZ,CAAC,CACK,CAAC,CACR,IAAI,CACV,CAAE,CAEFN,SAAS,CAAEA,SAAU,CACrBI,MAAM,CAAEA,MAAO,CACX2I,CAAAA,+BAA+B,CAAC,CAClCvK,IAAI,CAAJA,IAAI,CACJyB,qBAAqB,CAArBA,qBAAqB,CACrBC,0BAA0B,CAA1BA,0BAA0B,CAC1BC,cAAc,CAAdA,cACF,CAAC,CAAC,CACFG,CAAAA,IAAI,CAAEA,IAAK,EACPQ,IAAI,CACT,CAAC,CAEN,CAAC,CAEK,IAAAyG,SAAS,CAAGyB,wBAAwB,CAAC9H,cAAK,CAAC+H,UAAU,CAACrL,UAAU,CAAC,CAAE,CACvEsL,WAAW,CAAE,WACf,CAAC;;;;"}
1
+ {"version":3,"file":"TextInput.js","sources":["../../../../../../src/components/Input/TextInput/TextInput.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getKeyboardAndAutocompleteProps } from '../BaseInput/utils';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport { useFormattedInput } from './useFormattedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { IconComponent } from '~components/Icons';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n ContainerElementType,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { hintMarginTop } from '~components/Form/formTokens';\nimport { Divider } from '~components/Divider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { DropdownOverlay } from '~components/Dropdown';\nimport type { FormInputOnEvent } from '~components/Form/FormTypes';\n\n// Users should use PasswordInput for input type password\ntype Type = Exclude<BaseInputProps['type'], 'password'>;\n\ntype TextInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'necessityIndicator'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'prefix'\n | 'suffix'\n | 'maxCharacters'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'autoCompleteSuggestionType'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | 'leadingIcon'\n | 'trailingButton'\n | 'trailingIcon'\n | 'textAlign'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n\n /**\n * Icon that will be rendered at the beginning of the input field\n * @deprecated Use `leading` instead. This prop will be removed in the next major version.\n */\n icon?: IconComponent;\n /**\n * Type of Input Field to be rendered. Use `PasswordInput` for type `password`\n *\n *\n * **Note on number type**\n *\n * `type=\"number\"` internally uses `inputMode=\"numeric\"` instead of HTML's `type=\"number\"` which also allows text characters.\n * If you have a usecase where you only want to support number input, you can handle it on validations end.\n *\n * Check out [Why the GOV.UK Design System team changed the input type for numbers](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/) for reasoning\n *\n * @default text\n */\n type?: Type;\n /**\n *\n * Icon or React Element to be rendered at the end of the input field\n */\n trailing?: React.ReactElement | IconComponent;\n /**\n * Icon or React Element to be rendered at the beginning of the input field\n */\n leading?: React.ReactElement | IconComponent;\n /**\n * Format pattern where # represents input characters and other symbols act as delimiters\n * When provided, input will be automatically formatted and onChange will include rawValue\n *\n * **Note:**\n * 1. Format pattern should only contain # symbols and special characters as delimiters.\n * Alphanumeric characters (letters and numbers) are not allowed in the format pattern.\n * 2. When format is provided, user input is restricted to alphanumeric characters only.\n * Special characters and symbols will be filtered out automatically from user input.\n *\n * @example \"#### #### #### ####\" for card numbers\n * @example \"##/##\" for expiry dates\n * @example \"(###) ###-####\" for phone numbers\n */\n format?:\n | '#### #### #### ####'\n | '##/##'\n | '##/##/####'\n | '(###) ###-####'\n | '###-##-####'\n | '##:##'\n | '##:##:##'\n | '#### #### ####'\n | '###.###.###.###'\n | '## ## ####'\n | '##-###-##'\n // eslint-disable-next-line @typescript-eslint/ban-types\n | (string & {});\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype TextInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype TextInputProps = (TextInputPropsWithA11yLabel | TextInputPropsWithLabel) &\n TextInputCommonProps;\n\n// need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _TextInput: React.ForwardRefRenderFunction<BladeElementRef, TextInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n type = 'text',\n defaultValue,\n name,\n value,\n maxCharacters,\n format,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n necessityIndicator,\n validationState,\n errorText,\n helpText,\n successText,\n isRequired,\n icon,\n prefix,\n showClearButton,\n onClearButtonClick,\n isLoading,\n suffix,\n autoFocus,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n testID,\n size = 'medium',\n leadingIcon,\n trailingIcon,\n isTaggedInput,\n tags,\n onTagChange,\n trailing,\n leading,\n labelSuffix,\n labelTrailing,\n ...rest\n },\n ref,\n): ReactElement => {\n const textInputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, textInputRef);\n const [shouldShowClearButton, setShouldShowClearButton] = useState(false);\n const [isInputFocussed, setIsInputFocussed] = useState(autoFocus ?? false);\n\n if (__DEV__) {\n if (format) {\n const hasAlphanumeric = /[a-zA-Z0-9]/.test(format);\n if (hasAlphanumeric) {\n throw new Error(\n `[Blade: TextInput] Invalid format \"${format}\". Only # and special characters allowed, no letters/numbers.`,\n );\n }\n }\n }\n\n const formattingResult = useFormattedInput({\n format,\n onChange,\n value,\n defaultValue,\n });\n\n const inputValue = format ? formattingResult.formattedValue : value;\n const effectiveMaxCharacters = format ? formattingResult.maxLength : maxCharacters;\n\n const handleOnChange: FormInputOnEvent = React.useCallback(\n ({ name, value: inputValue }) => {\n if (format) {\n formattingResult.handleChange({ name, value: inputValue });\n } else {\n onChange?.({ name, value: inputValue });\n }\n },\n [format, formattingResult.handleChange, onChange],\n );\n\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n isTaggedInput,\n tags,\n onTagChange,\n isDisabled,\n onChange: handleOnChange,\n name,\n value: inputValue,\n inputRef: textInputRef,\n });\n const [isTrailingDropDownOpen, setIsTrailingDropDownOpen] = React.useState(false);\n const [isLeadingDropDownOpen, setIsLeadingDropDownOpen] = React.useState(false);\n const textInputWrapperRef = useRef<ContainerElementType | null>(null);\n\n useEffect(() => {\n if (isTrailingDropDownOpen && isLeadingDropDownOpen) {\n setIsLeadingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isTrailingDropDownOpen]);\n\n useEffect(() => {\n if (isLeadingDropDownOpen && isTrailingDropDownOpen) {\n setIsTrailingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLeadingDropDownOpen]);\n\n const leadingDropDown =\n leading && getComponentId(leading as React.ReactElement) === 'Dropdown' ? leading : null;\n\n const trailingDropdown =\n trailing && getComponentId(trailing as React.ReactElement) === 'Dropdown' ? trailing : null;\n // we need to look into name of component and check if it 's and icon or a dropdown\n const _leadingIcon: IconComponent | undefined =\n leading && typeof leading === 'function' && leading.name?.endsWith('Icon')\n ? (leading as IconComponent)\n : undefined;\n\n const _trailingIcon: IconComponent | undefined =\n trailing && typeof trailing === 'function' && trailing.name?.endsWith('Icon')\n ? (trailing as IconComponent)\n : undefined;\n const hasLeadingInteractionElement = !_leadingIcon && !leadingDropDown && leading;\n\n const hasTrailingInteractionElement = !_trailingIcon && !trailingDropdown && trailing;\n\n const renderDropdown = (\n dropdown: React.ReactElement,\n isOpen: boolean,\n setIsOpen: (isOpen: boolean) => void,\n defaultPlacement: 'bottom-start' | 'bottom-end',\n ): React.ReactElement | null => {\n if (!dropdown) {\n return null;\n }\n return React.cloneElement(dropdown, {\n selectionType: 'single',\n isOpen,\n onOpenChange: (isOpen: boolean) => {\n setIsOpen(isOpen);\n },\n children: React.Children.map(dropdown.props.children, (child) => {\n if (child.type === DropdownOverlay) {\n return React.cloneElement(child, {\n referenceRef: textInputWrapperRef,\n _isNestedDropdown: true,\n defaultPlacement,\n });\n }\n return child;\n }),\n });\n };\n\n const renderLeadingDropDown = renderDropdown(\n leadingDropDown as React.ReactElement,\n isLeadingDropDownOpen,\n setIsLeadingDropDownOpen,\n 'bottom-start',\n );\n const renderTrailingDropDown = renderDropdown(\n trailingDropdown as React.ReactElement,\n isTrailingDropDownOpen,\n setIsTrailingDropDownOpen,\n 'bottom-end',\n );\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (defaultValue ?? inputValue)));\n }, [showClearButton, defaultValue, inputValue]);\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(inputValue) && textInputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(textInputRef.current)) {\n textInputRef.current.clear();\n textInputRef.current.focus();\n } else if (textInputRef.current instanceof HTMLInputElement) {\n textInputRef.current.value = '';\n textInputRef.current.focus();\n }\n }\n handleTagsClear();\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n textInputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n const hasTrailingDropDown = Boolean(trailingDropdown);\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton && hasTrailingDropDown) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" />\n </BaseBox>\n );\n }\n\n if (showClearButton && hasTrailingInteractionElement) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" /> {trailing as React.ReactElement}\n </BaseBox>\n );\n }\n\n if (shouldShowClearButton) {\n return renderClearButton();\n }\n\n if (hasTrailingInteractionElement) {\n return trailing as React.ReactElement;\n }\n return null;\n };\n return (\n <BaseInput\n id=\"textinput\"\n componentName={MetaConstants.TextInput}\n ref={mergedRef}\n setInputWrapperRef={(wrapperNode) => {\n textInputWrapperRef.current = wrapperNode;\n }}\n label={label as string}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n placeholder={placeholder}\n // CONTROLLED/UNCONTROLLED INPUT LOGIC:\n // For inputs WITHOUT format:\n // - Use standard React controlled/uncontrolled logic\n // - Controlled: user provides `value` prop → use `value` prop\n // - Uncontrolled: user provides `defaultValue` prop → use `defaultValue` prop\n //\n // For inputs WITH format:\n // - Formatting requires controlled mode to re-render and show formatted values\n // - Case 1: Only `value` provided → defaultValue: undefined, value: formattedValue (normal controlled)\n // - Case 2: Only `defaultValue` provided → defaultValue: undefined, value: formattedValue (convert to controlled)\n // - Case 3: Both `value` and `defaultValue` provided → defaultValue: defaultValue, value: formattedValue (let BaseInput detect conflict and throw error)\n //\n defaultValue={\n format\n ? value !== undefined && defaultValue !== undefined\n ? defaultValue\n : undefined\n : defaultValue\n }\n value={format ? inputValue : value}\n name={name}\n maxCharacters={effectiveMaxCharacters}\n isDropdownTrigger={isTaggedInput}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n showAllTags={isInputFocussed}\n maxTagRows=\"single\"\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n leadingDropDown={renderLeadingDropDown}\n trailingDropDown={renderTrailingDropDown}\n leadingInteractionElement={\n hasLeadingInteractionElement ? (leading as React.ReactElement) : null\n }\n onChange={({ name, value }: { name?: string; value?: string }) => {\n if (showClearButton && value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n handleTaggedInputChange({ name, value });\n handleOnChange({ name, value });\n }}\n onClick={onClick}\n onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n if (format) {\n formattingResult.handleKeyDown(e.event);\n }\n }}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n necessityIndicator={necessityIndicator}\n isRequired={isRequired}\n leadingIcon={_leadingIcon ?? leadingIcon ?? icon}\n prefix={prefix}\n trailingInteractionElement={renderInteractionElement()}\n trailingIcon={_trailingIcon ?? trailingIcon}\n suffix={suffix}\n validationState={validationState}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n trailingFooterSlot={(value) => {\n return format ? null : effectiveMaxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter\n currentCount={value?.length ?? 0}\n maxCount={effectiveMaxCharacters}\n size={size}\n />\n </BaseBox>\n ) : null;\n }}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type,\n keyboardReturnKeyType,\n autoCompleteSuggestionType,\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextInput = assignWithoutSideEffects(React.forwardRef(_TextInput), {\n displayName: 'TextInput',\n});\n\nexport type { TextInputProps };\nexport { TextInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextInput","_ref","ref","_leading$name","_trailing$name","_ref4","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","_ref$type","type","defaultValue","name","value","maxCharacters","format","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","necessityIndicator","validationState","errorText","helpText","successText","isRequired","icon","prefix","showClearButton","onClearButtonClick","isLoading","suffix","autoFocus","keyboardReturnKeyType","autoCompleteSuggestionType","autoCapitalize","testID","_ref$size","size","leadingIcon","trailingIcon","isTaggedInput","tags","onTagChange","trailing","leading","labelSuffix","labelTrailing","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isInputFocussed","setIsInputFocussed","__DEV__","hasAlphanumeric","test","Error","formattingResult","useFormattedInput","inputValue","formattedValue","effectiveMaxCharacters","maxLength","handleOnChange","useCallback","_ref2","handleChange","_useTaggedInput","useTaggedInput","inputRef","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState","_React$useState2","isTrailingDropDownOpen","setIsTrailingDropDownOpen","_React$useState3","_React$useState4","isLeadingDropDownOpen","setIsLeadingDropDownOpen","textInputWrapperRef","useEffect","leadingDropDown","getComponentId","trailingDropdown","_leadingIcon","endsWith","undefined","_trailingIcon","hasLeadingInteractionElement","hasTrailingInteractionElement","renderDropdown","dropdown","isOpen","setIsOpen","defaultPlacement","cloneElement","selectionType","onOpenChange","children","Children","map","props","child","DropdownOverlay","referenceRef","_isNestedDropdown","renderLeadingDropDown","renderTrailingDropDown","Boolean","renderClearButton","_jsx","IconButton","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","hasTrailingDropDown","renderInteractionElement","Spinner","color","_jsxs","BaseBox","display","gap","Divider","orientation","BaseInput","Object","assign","id","componentName","MetaConstants","TextInput","setInputWrapperRef","wrapperNode","hideLabelText","isDropdownTrigger","showAllTags","maxTagRows","trailingDropDown","leadingInteractionElement","_ref3","length","e","onKeyDown","handleKeyDown","event","trailingInteractionElement","trailingFooterSlot","_value$length","marginTop","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","getKeyboardAndAutocompleteProps","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
@@ -33,7 +33,7 @@ import { Card, CardBody } from '../Card/Card.js';
33
33
  import '../Card/CardHeader.js';
34
34
  import '../Card/CardFooter.js';
35
35
 
36
- var _excluded=["title","value","trailing","testID"];var QuickFilterContent=function QuickFilterContent(_ref){var value=_ref.value,title=_ref.title,trailing=_ref.trailing,_ref$selectionType=_ref.selectionType,selectionType=_ref$selectionType===void 0?'single':_ref$selectionType,_ref$isSelected=_ref.isSelected,isSelected=_ref$isSelected===void 0?false:_ref$isSelected;return jsxs(BaseBox,{display:"flex",flexDirection:"row",gap:"spacing.3",width:"fit-content",justifyContent:"center",alignItems:"center",paddingY:"spacing.3",paddingLeft:"spacing.3",paddingRight:"spacing.4",children:[jsxs(Box,{display:"flex",flexDirection:"row",gap:"spacing.2",justifyContent:"center",alignItems:"center",children:[selectionType==='single'?jsx(Radio,{value:value}):jsx(Checkbox,{value:value}),jsx(Text,{variant:"body",size:"medium",color:isSelected?'interactive.text.primary.subtle':'interactive.text.gray.subtle',weight:"medium",children:title})]}),trailing]});};var QuickFilter=forwardRef(function(_ref2,ref){var title=_ref2.title,value=_ref2.value,trailing=_ref2.trailing,testID=_ref2.testID,rest=_objectWithoutProperties(_ref2,_excluded);var _useQuickFilterGroupC=useQuickFilterGroupContext(),selectedQuickFilters=_useQuickFilterGroupC.selectedQuickFilters,selectionType=_useQuickFilterGroupC.selectionType;var isQuickFilterSelected=selectedQuickFilters.includes(value);return jsx(Card,Object.assign({padding:"spacing.0",as:"label",accessibilityLabel:title,borderRadius:"medium",elevation:"none",isSelected:isQuickFilterSelected,ref:ref},makeAnalyticsAttribute(rest),metaAttribute({testID:testID}),{children:jsx(CardBody,{children:jsx(QuickFilterContent,Object.assign({value:value,title:title,trailing:trailing,selectionType:selectionType,isSelected:isQuickFilterSelected},rest))})}));});
36
+ var _excluded=["value","title","trailing","selectionType","isSelected"],_excluded2=["title","value","trailing","testID"];var QuickFilterContent=function QuickFilterContent(_ref){var value=_ref.value,title=_ref.title,trailing=_ref.trailing,_ref$selectionType=_ref.selectionType,selectionType=_ref$selectionType===void 0?'single':_ref$selectionType,_ref$isSelected=_ref.isSelected,isSelected=_ref$isSelected===void 0?false:_ref$isSelected,rest=_objectWithoutProperties(_ref,_excluded);return jsxs(BaseBox,{display:"flex",flexDirection:"row",gap:"spacing.3",width:"fit-content",justifyContent:"center",alignItems:"center",paddingY:"spacing.3",paddingLeft:"spacing.3",paddingRight:"spacing.4",children:[jsxs(Box,{display:"flex",flexDirection:"row",gap:"spacing.2",justifyContent:"center",alignItems:"center",children:[selectionType==='single'?jsx(Radio,Object.assign({value:value},makeAnalyticsAttribute(rest))):jsx(Checkbox,Object.assign({value:value},makeAnalyticsAttribute(rest))),jsx(Text,{variant:"body",size:"medium",color:isSelected?'interactive.text.primary.subtle':'interactive.text.gray.subtle',weight:"medium",children:title})]}),trailing]});};var QuickFilter=forwardRef(function(_ref2,ref){var title=_ref2.title,value=_ref2.value,trailing=_ref2.trailing,testID=_ref2.testID,rest=_objectWithoutProperties(_ref2,_excluded2);var _useQuickFilterGroupC=useQuickFilterGroupContext(),selectedQuickFilters=_useQuickFilterGroupC.selectedQuickFilters,selectionType=_useQuickFilterGroupC.selectionType;var isQuickFilterSelected=selectedQuickFilters.includes(value);return jsx(Card,Object.assign({padding:"spacing.0",as:"label",accessibilityLabel:title,borderRadius:"medium",elevation:"none",isSelected:isQuickFilterSelected,ref:ref},makeAnalyticsAttribute(rest),metaAttribute({testID:testID}),{children:jsx(CardBody,{children:jsx(QuickFilterContent,Object.assign({value:value,title:title,trailing:trailing,selectionType:selectionType,isSelected:isQuickFilterSelected},rest))})}));});
37
37
 
38
38
  export { QuickFilter };
39
39
  //# sourceMappingURL=QuickFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuickFilter.js","sources":["../../../../../src/components/QuickFilters/QuickFilter.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport type { QuickFilterProps, QuickFilterContentProps } from './types';\nimport { useQuickFilterGroupContext } from './QuickFilterGroup';\nimport { Card, CardBody } from '~components/Card';\nimport { Box } from '~components/Box';\nimport { Text } from '~components/Typography';\nimport { Radio } from '~components/Radio';\nimport { Checkbox } from '~components/Checkbox';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { BladeElementRef } from '~utils/types';\n\nconst QuickFilterContent = ({\n value,\n title,\n trailing,\n selectionType = 'single',\n isSelected = false,\n}: QuickFilterContentProps): React.ReactElement => {\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.3\"\n width=\"fit-content\"\n justifyContent=\"center\"\n alignItems=\"center\"\n paddingY=\"spacing.3\"\n paddingLeft=\"spacing.3\"\n paddingRight=\"spacing.4\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.2\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n {selectionType === 'single' ? <Radio value={value} /> : <Checkbox value={value} />}\n <Text\n variant=\"body\"\n size=\"medium\"\n color={isSelected ? 'interactive.text.primary.subtle' : 'interactive.text.gray.subtle'}\n weight=\"medium\"\n >\n {title}\n </Text>\n </Box>\n\n {trailing}\n </BaseBox>\n );\n};\n\nconst QuickFilter = forwardRef<BladeElementRef, QuickFilterProps>(\n ({ title, value, trailing, testID, ...rest }, ref): React.ReactElement => {\n const { selectedQuickFilters, selectionType } = useQuickFilterGroupContext();\n\n const isQuickFilterSelected = selectedQuickFilters.includes(value);\n return (\n <Card\n padding=\"spacing.0\"\n as=\"label\"\n accessibilityLabel={title}\n borderRadius=\"medium\"\n elevation=\"none\"\n isSelected={isQuickFilterSelected}\n ref={ref}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ testID })}\n >\n <CardBody>\n <QuickFilterContent\n value={value}\n title={title}\n trailing={trailing}\n selectionType={selectionType}\n isSelected={isQuickFilterSelected}\n {...rest}\n />\n </CardBody>\n </Card>\n );\n },\n);\nexport { QuickFilter };\n"],"names":["QuickFilterContent","_ref","value","title","trailing","_ref$selectionType","selectionType","_ref$isSelected","isSelected","_jsxs","BaseBox","display","flexDirection","gap","width","justifyContent","alignItems","paddingY","paddingLeft","paddingRight","children","Box","_jsx","Radio","Checkbox","Text","variant","size","color","weight","QuickFilter","forwardRef","_ref2","ref","testID","rest","_objectWithoutProperties","_excluded","_useQuickFilterGroupC","useQuickFilterGroupContext","selectedQuickFilters","isQuickFilterSelected","includes","Card","Object","assign","padding","as","accessibilityLabel","borderRadius","elevation","makeAnalyticsAttribute","metaAttribute","CardBody"],"mappings":"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"}
1
+ {"version":3,"file":"QuickFilter.js","sources":["../../../../../src/components/QuickFilters/QuickFilter.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport type { QuickFilterProps, QuickFilterContentProps } from './types';\nimport { useQuickFilterGroupContext } from './QuickFilterGroup';\nimport { Card, CardBody } from '~components/Card';\nimport { Box } from '~components/Box';\nimport { Text } from '~components/Typography';\nimport { Radio } from '~components/Radio';\nimport { Checkbox } from '~components/Checkbox';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { BladeElementRef } from '~utils/types';\n\nconst QuickFilterContent = ({\n value,\n title,\n trailing,\n selectionType = 'single',\n isSelected = false,\n ...rest\n}: QuickFilterContentProps): React.ReactElement => {\n return (\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.3\"\n width=\"fit-content\"\n justifyContent=\"center\"\n alignItems=\"center\"\n paddingY=\"spacing.3\"\n paddingLeft=\"spacing.3\"\n paddingRight=\"spacing.4\"\n >\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n gap=\"spacing.2\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n {selectionType === 'single' ? (\n <Radio value={value} {...makeAnalyticsAttribute(rest)} />\n ) : (\n <Checkbox value={value} {...makeAnalyticsAttribute(rest)} />\n )}\n <Text\n variant=\"body\"\n size=\"medium\"\n color={isSelected ? 'interactive.text.primary.subtle' : 'interactive.text.gray.subtle'}\n weight=\"medium\"\n >\n {title}\n </Text>\n </Box>\n\n {trailing}\n </BaseBox>\n );\n};\n\nconst QuickFilter = forwardRef<BladeElementRef, QuickFilterProps>(\n ({ title, value, trailing, testID, ...rest }, ref): React.ReactElement => {\n const { selectedQuickFilters, selectionType } = useQuickFilterGroupContext();\n\n const isQuickFilterSelected = selectedQuickFilters.includes(value);\n return (\n <Card\n padding=\"spacing.0\"\n as=\"label\"\n accessibilityLabel={title}\n borderRadius=\"medium\"\n elevation=\"none\"\n isSelected={isQuickFilterSelected}\n ref={ref}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ testID })}\n >\n <CardBody>\n <QuickFilterContent\n value={value}\n title={title}\n trailing={trailing}\n selectionType={selectionType}\n isSelected={isQuickFilterSelected}\n {...rest}\n />\n </CardBody>\n </Card>\n );\n },\n);\nexport { QuickFilter };\n"],"names":["QuickFilterContent","_ref","value","title","trailing","_ref$selectionType","selectionType","_ref$isSelected","isSelected","rest","_objectWithoutProperties","_excluded","_jsxs","BaseBox","display","flexDirection","gap","width","justifyContent","alignItems","paddingY","paddingLeft","paddingRight","children","Box","_jsx","Radio","Object","assign","makeAnalyticsAttribute","Checkbox","Text","variant","size","color","weight","QuickFilter","forwardRef","_ref2","ref","testID","_excluded2","_useQuickFilterGroupC","useQuickFilterGroupContext","selectedQuickFilters","isQuickFilterSelected","includes","Card","padding","as","accessibilityLabel","borderRadius","elevation","metaAttribute","CardBody"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var MAKE_ANALYTICS_CONSTANTS={ACCORDION:{ACCORDION_ITEM_BUTTON:'accordion-toggle-button'},ALERT:{PRIMARY_ACTION_BUTTON:'alert-primary-action-button'},AVATAR:{AVATAR_BUTTON:'avatar-button'},CARD:{FOOTER_PRIMARY_ACTION_BUTTON:'card-footer-primary-action-button',FOOTER_SECONDARY_ACTION_BUTTON:'card-footer-secondary-action-button'},DATE_PICKER:{CANCEL_BUTTON:'date-picker-cancel-button',APPLY_BUTTON:'date-picker-apply-button'},FILE_UPLOAD:{REUPLOAD_BUTTON:'file-reupload-button'},SPOTLIGHT_POPOVER_TOUR:{FOOTER_PRIMARY_ACTION:'spotlight-popover-tour-footer-primary-action-button',FOOTER_SECONDARY_ACTION:'spotlight-popover-tour-footer-secondary-action-button'},TOAST:{ACTION_BUTTON:'toast-action-button'}};
2
+
3
+ export { MAKE_ANALYTICS_CONSTANTS };
4
+ //# sourceMappingURL=makeAnalyticsConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeAnalyticsConstants.js","sources":["../../../../../src/utils/makeAnalyticsAttribute/makeAnalyticsConstants.ts"],"sourcesContent":["export const MAKE_ANALYTICS_CONSTANTS = {\n ACCORDION: {\n ACCORDION_ITEM_BUTTON: 'accordion-toggle-button',\n },\n ALERT: {\n PRIMARY_ACTION_BUTTON: 'alert-primary-action-button',\n },\n AVATAR: {\n AVATAR_BUTTON: 'avatar-button',\n },\n CARD: {\n FOOTER_PRIMARY_ACTION_BUTTON: 'card-footer-primary-action-button',\n FOOTER_SECONDARY_ACTION_BUTTON: 'card-footer-secondary-action-button',\n },\n DATE_PICKER: {\n CANCEL_BUTTON: 'date-picker-cancel-button',\n APPLY_BUTTON: 'date-picker-apply-button',\n },\n FILE_UPLOAD: {\n REUPLOAD_BUTTON: 'file-reupload-button',\n },\n SPOTLIGHT_POPOVER_TOUR: {\n FOOTER_PRIMARY_ACTION: 'spotlight-popover-tour-footer-primary-action-button',\n FOOTER_SECONDARY_ACTION: 'spotlight-popover-tour-footer-secondary-action-button',\n },\n TOAST: {\n ACTION_BUTTON: 'toast-action-button',\n },\n};\n"],"names":["MAKE_ANALYTICS_CONSTANTS","ACCORDION","ACCORDION_ITEM_BUTTON","ALERT","PRIMARY_ACTION_BUTTON","AVATAR","AVATAR_BUTTON","CARD","FOOTER_PRIMARY_ACTION_BUTTON","FOOTER_SECONDARY_ACTION_BUTTON","DATE_PICKER","CANCEL_BUTTON","APPLY_BUTTON","FILE_UPLOAD","REUPLOAD_BUTTON","SPOTLIGHT_POPOVER_TOUR","FOOTER_PRIMARY_ACTION","FOOTER_SECONDARY_ACTION","TOAST","ACTION_BUTTON"],"mappings":"AAAa,IAAAA,wBAAwB,CAAG,CACtCC,SAAS,CAAE,CACTC,qBAAqB,CAAE,yBACzB,CAAC,CACDC,KAAK,CAAE,CACLC,qBAAqB,CAAE,6BACzB,CAAC,CACDC,MAAM,CAAE,CACNC,aAAa,CAAE,eACjB,CAAC,CACDC,IAAI,CAAE,CACJC,4BAA4B,CAAE,mCAAmC,CACjEC,8BAA8B,CAAE,qCAClC,CAAC,CACDC,WAAW,CAAE,CACXC,aAAa,CAAE,2BAA2B,CAC1CC,YAAY,CAAE,0BAChB,CAAC,CACDC,WAAW,CAAE,CACXC,eAAe,CAAE,sBACnB,CAAC,CACDC,sBAAsB,CAAE,CACtBC,qBAAqB,CAAE,qDAAqD,CAC5EC,uBAAuB,CAAE,uDAC3B,CAAC,CACDC,KAAK,CAAE,CACLC,aAAa,CAAE,qBACjB,CACF;;;;"}
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
2
  import { StyledAccordionButton } from './StyledAccordionButton.web.js';
4
3
  import { useAccordion } from './AccordionContext.js';
5
4
  import { AccordionItemHeader } from './AccordionItemHeader.js';
@@ -16,12 +15,11 @@ import { Text } from '../Typography/Text/Text.js';
16
15
  import { throwBladeError } from '../../utils/logger/logger.js';
17
16
  import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
18
17
  import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
19
- import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
20
18
  import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
21
19
  import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
20
+ import { MAKE_ANALYTICS_CONSTANTS } from '../../utils/makeAnalyticsAttribute/makeAnalyticsConstants.js';
22
21
  import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
23
22
 
24
- var _excluded = ["index", "icon", "title", "isDeprecatedAPI", "header", "isDisabled"];
25
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; }
26
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; }
27
25
  var _AccordionButton = function _AccordionButton(_ref) {
@@ -30,8 +28,7 @@ var _AccordionButton = function _AccordionButton(_ref) {
30
28
  title = _ref.title,
31
29
  isDeprecatedAPI = _ref.isDeprecatedAPI,
32
30
  header = _ref.header,
33
- isDisabled = _ref.isDisabled,
34
- rest = _objectWithoutProperties(_ref, _excluded);
31
+ isDisabled = _ref.isDisabled;
35
32
  var _useCollapsible = useCollapsible(),
36
33
  onExpandChange = _useCollapsible.onExpandChange,
37
34
  isExpanded = _useCollapsible.isExpanded,
@@ -72,10 +69,10 @@ var _AccordionButton = function _AccordionButton(_ref) {
72
69
  var isItemExpanded = expandedIndex === index;
73
70
  return /*#__PURE__*/jsx(BaseBox
74
71
  // a11y guidelines suggest having an apt heading surround a button but heading level is hardcoded here
75
- , _objectSpread(_objectSpread(_objectSpread({}, makeAccessible({
72
+ , _objectSpread(_objectSpread({}, makeAccessible({
76
73
  role: 'heading',
77
74
  level: 3
78
- })), makeAnalyticsAttribute(rest)), {}, {
75
+ })), {}, {
79
76
  width: "100%",
80
77
  children: /*#__PURE__*/jsx(StyledAccordionButton, _objectSpread(_objectSpread(_objectSpread({
81
78
  type: "button",
@@ -88,6 +85,7 @@ var _AccordionButton = function _AccordionButton(_ref) {
88
85
  })), metaAttribute({
89
86
  name: MetaConstants.AccordionButton
90
87
  })), {}, {
88
+ "data-analytics-name": MAKE_ANALYTICS_CONSTANTS.ACCORDION.ACCORDION_ITEM_BUTTON,
91
89
  children: isDeprecatedAPI ? /*#__PURE__*/jsx(AccordionItemHeader, {
92
90
  title: title,
93
91
  leading: _icon !== null && _icon !== void 0 ? _icon : _index
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionButton.web.js","sources":["../../../../../../src/components/Accordion/AccordionButton.web.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { StyledAccordionButton } from './StyledAccordionButton';\nimport type { AccordionButtonProps } from './types';\nimport { useAccordion } from './AccordionContext';\nimport { AccordionItemHeader } from './AccordionItemHeader';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { Text } from '~components/Typography';\nimport { useCollapsible } from '~components/Collapsible/CollapsibleContext';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst _AccordionButton = ({\n index,\n icon: Icon,\n title,\n isDeprecatedAPI,\n header,\n isDisabled,\n ...rest\n}: AccordionButtonProps): ReactElement => {\n const { onExpandChange, isExpanded, collapsibleBodyId } = useCollapsible();\n const { showNumberPrefix, expandedIndex, size } = useAccordion();\n\n const toggleCollapse = (): void => onExpandChange(!isExpanded);\n const onClick = (): void => toggleCollapse();\n\n const _index =\n typeof index === 'number' && showNumberPrefix ? (\n // we have to add -2px margin to align the number with title of BaseHeader\n <Text size={size} weight=\"semibold\" marginTop=\"-2px\" as=\"span\">\n {index + 1}.\n </Text>\n ) : null;\n\n const _icon = Icon && <Icon size={size} color=\"surface.icon.gray.normal\" marginY=\"spacing.2\" />;\n\n if (__DEV__) {\n if (_index && _icon) {\n throwBladeError({\n message: \"showNumberPrefix and icon shouldn't be used together\",\n moduleName: 'Accordion',\n });\n }\n }\n\n const isItemExpanded = expandedIndex === index;\n\n return (\n <BaseBox\n // a11y guidelines suggest having an apt heading surround a button but heading level is hardcoded here\n {...makeAccessible({ role: 'heading', level: 3 })}\n {...makeAnalyticsAttribute(rest)}\n width=\"100%\"\n >\n <StyledAccordionButton\n type=\"button\"\n isExpanded={isItemExpanded}\n disabled={isDisabled}\n onClick={onClick}\n {...makeAccessible({ expanded: isItemExpanded, controls: collapsibleBodyId })}\n {...metaAttribute({ name: MetaConstants.AccordionButton })}\n >\n {isDeprecatedAPI ? <AccordionItemHeader title={title} leading={_icon ?? _index} /> : header}\n </StyledAccordionButton>\n </BaseBox>\n );\n};\n\nconst AccordionButton = assignWithoutSideEffects(_AccordionButton, {\n componentId: MetaConstants.AccordionButton,\n});\n\nexport type { AccordionButtonProps };\nexport { AccordionButton };\n"],"names":["_AccordionButton","_ref","index","Icon","icon","title","isDeprecatedAPI","header","isDisabled","rest","_objectWithoutProperties","_excluded","_useCollapsible","useCollapsible","onExpandChange","isExpanded","collapsibleBodyId","_useAccordion","useAccordion","showNumberPrefix","expandedIndex","size","toggleCollapse","onClick","_index","_jsxs","Text","weight","marginTop","as","children","_icon","_jsx","color","marginY","throwBladeError","message","moduleName","isItemExpanded","BaseBox","_objectSpread","makeAccessible","role","level","makeAnalyticsAttribute","width","StyledAccordionButton","type","disabled","expanded","controls","metaAttribute","name","MetaConstants","AccordionButton","AccordionItemHeader","leading","assignWithoutSideEffects","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"AccordionButton.web.js","sources":["../../../../../../src/components/Accordion/AccordionButton.web.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { StyledAccordionButton } from './StyledAccordionButton';\nimport type { AccordionButtonProps } from './types';\nimport { useAccordion } from './AccordionContext';\nimport { AccordionItemHeader } from './AccordionItemHeader';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { Text } from '~components/Typography';\nimport { useCollapsible } from '~components/Collapsible/CollapsibleContext';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { throwBladeError } from '~utils/logger';\nimport { MAKE_ANALYTICS_CONSTANTS } from '~utils/makeAnalyticsAttribute';\n\nconst _AccordionButton = ({\n index,\n icon: Icon,\n title,\n isDeprecatedAPI,\n header,\n isDisabled,\n}: AccordionButtonProps): ReactElement => {\n const { onExpandChange, isExpanded, collapsibleBodyId } = useCollapsible();\n const { showNumberPrefix, expandedIndex, size } = useAccordion();\n\n const toggleCollapse = (): void => onExpandChange(!isExpanded);\n const onClick = (): void => toggleCollapse();\n\n const _index =\n typeof index === 'number' && showNumberPrefix ? (\n // we have to add -2px margin to align the number with title of BaseHeader\n <Text size={size} weight=\"semibold\" marginTop=\"-2px\" as=\"span\">\n {index + 1}.\n </Text>\n ) : null;\n\n const _icon = Icon && <Icon size={size} color=\"surface.icon.gray.normal\" marginY=\"spacing.2\" />;\n\n if (__DEV__) {\n if (_index && _icon) {\n throwBladeError({\n message: \"showNumberPrefix and icon shouldn't be used together\",\n moduleName: 'Accordion',\n });\n }\n }\n\n const isItemExpanded = expandedIndex === index;\n\n return (\n <BaseBox\n // a11y guidelines suggest having an apt heading surround a button but heading level is hardcoded here\n {...makeAccessible({ role: 'heading', level: 3 })}\n width=\"100%\"\n >\n <StyledAccordionButton\n type=\"button\"\n isExpanded={isItemExpanded}\n disabled={isDisabled}\n onClick={onClick}\n {...makeAccessible({ expanded: isItemExpanded, controls: collapsibleBodyId })}\n {...metaAttribute({ name: MetaConstants.AccordionButton })}\n data-analytics-name={MAKE_ANALYTICS_CONSTANTS.ACCORDION.ACCORDION_ITEM_BUTTON}\n >\n {isDeprecatedAPI ? <AccordionItemHeader title={title} leading={_icon ?? _index} /> : header}\n </StyledAccordionButton>\n </BaseBox>\n );\n};\n\nconst AccordionButton = assignWithoutSideEffects(_AccordionButton, {\n componentId: MetaConstants.AccordionButton,\n});\n\nexport type { AccordionButtonProps };\nexport { AccordionButton };\n"],"names":["_AccordionButton","_ref","index","Icon","icon","title","isDeprecatedAPI","header","isDisabled","_useCollapsible","useCollapsible","onExpandChange","isExpanded","collapsibleBodyId","_useAccordion","useAccordion","showNumberPrefix","expandedIndex","size","toggleCollapse","onClick","_index","_jsxs","Text","weight","marginTop","as","children","_icon","_jsx","color","marginY","throwBladeError","message","moduleName","isItemExpanded","BaseBox","_objectSpread","makeAccessible","role","level","width","StyledAccordionButton","type","disabled","expanded","controls","metaAttribute","name","MetaConstants","AccordionButton","MAKE_ANALYTICS_CONSTANTS","ACCORDION","ACCORDION_ITEM_BUTTON","AccordionItemHeader","leading","assignWithoutSideEffects","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAOoB;AAAA,EAAA,IANxCC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACCC,IAAI,GAAAF,IAAA,CAAVG,IAAI;IACJC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IACLC,eAAe,GAAAL,IAAA,CAAfK,eAAe;IACfC,MAAM,GAAAN,IAAA,CAANM,MAAM;IACNC,UAAU,GAAAP,IAAA,CAAVO,UAAU,CAAA;AAEV,EAAA,IAAAC,eAAA,GAA0DC,cAAc,EAAE;IAAlEC,cAAc,GAAAF,eAAA,CAAdE,cAAc;IAAEC,UAAU,GAAAH,eAAA,CAAVG,UAAU;IAAEC,iBAAiB,GAAAJ,eAAA,CAAjBI,iBAAiB,CAAA;AACrD,EAAA,IAAAC,aAAA,GAAkDC,YAAY,EAAE;IAAxDC,gBAAgB,GAAAF,aAAA,CAAhBE,gBAAgB;IAAEC,aAAa,GAAAH,aAAA,CAAbG,aAAa;IAAEC,IAAI,GAAAJ,aAAA,CAAJI,IAAI,CAAA;AAE7C,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,IAAA,OAAeR,cAAc,CAAC,CAACC,UAAU,CAAC,CAAA;AAAA,GAAA,CAAA;AAC9D,EAAA,IAAMQ,OAAO,GAAG,SAAVA,OAAOA,GAAA;IAAA,OAAeD,cAAc,EAAE,CAAA;AAAA,GAAA,CAAA;AAE5C,EAAA,IAAME,MAAM,GACV,OAAOnB,KAAK,KAAK,QAAQ,IAAIc,gBAAgB;AAAA;AAC3C;AACAM,EAAAA,IAAA,CAACC,IAAI,EAAA;AAACL,IAAAA,IAAI,EAAEA,IAAK;AAACM,IAAAA,MAAM,EAAC,UAAU;AAACC,IAAAA,SAAS,EAAC,MAAM;AAACC,IAAAA,EAAE,EAAC,MAAM;AAAAC,IAAAA,QAAA,EAC3DzB,CAAAA,KAAK,GAAG,CAAC,EAAC,GACb,CAAA;GAAM,CAAC,GACL,IAAI,CAAA;AAEV,EAAA,IAAM0B,KAAK,GAAGzB,IAAI,iBAAI0B,GAAA,CAAC1B,IAAI,EAAA;AAACe,IAAAA,IAAI,EAAEA,IAAK;AAACY,IAAAA,KAAK,EAAC,0BAA0B;AAACC,IAAAA,OAAO,EAAC,WAAA;AAAW,GAAE,CAAC,CAAA;AAE/F,EAAA,IAAI,IAAO,EAAE;IACX,IAAIV,MAAM,IAAIO,KAAK,EAAE;AACnBI,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAE,sDAAsD;AAC/DC,QAAAA,UAAU,EAAE,WAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,IAAMC,cAAc,GAAGlB,aAAa,KAAKf,KAAK,CAAA;AAE9C,EAAA,oBACE2B,GAAA,CAACO,OAAAA;AACC;AAAA,IAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACIC,cAAc,CAAC;AAAEC,IAAAA,IAAI,EAAE,SAAS;AAAEC,IAAAA,KAAK,EAAE,CAAA;AAAE,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACjDC,IAAAA,KAAK,EAAC,MAAM;IAAAd,QAAA,eAEZE,GAAA,CAACa,qBAAqB,EAAAL,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACpBM,MAAAA,IAAI,EAAC,QAAQ;AACb/B,MAAAA,UAAU,EAAEuB,cAAe;AAC3BS,MAAAA,QAAQ,EAAEpC,UAAW;AACrBY,MAAAA,OAAO,EAAEA,OAAAA;AAAQ,KAAA,EACbkB,cAAc,CAAC;AAAEO,MAAAA,QAAQ,EAAEV,cAAc;AAAEW,MAAAA,QAAQ,EAAEjC,iBAAAA;KAAmB,CAAC,CACzEkC,EAAAA,aAAa,CAAC;MAAEC,IAAI,EAAEC,aAAa,CAACC,eAAAA;AAAgB,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAC1D,MAAA,qBAAA,EAAqBC,wBAAwB,CAACC,SAAS,CAACC,qBAAsB;AAAA1B,MAAAA,QAAA,EAE7ErB,eAAe,gBAAGuB,GAAA,CAACyB,mBAAmB,EAAA;AAACjD,QAAAA,KAAK,EAAEA,KAAM;AAACkD,QAAAA,OAAO,EAAE3B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAIP,MAAAA;AAAO,OAAE,CAAC,GAAGd,MAAAA;KAChE,CAAA,CAAA;AAAC,GAAA,CACjB,CAAC,CAAA;AAEd,CAAC,CAAA;AAED,IAAM2C,eAAe,gBAAGM,wBAAwB,CAACxD,gBAAgB,EAAE;EACjEyD,WAAW,EAAER,aAAa,CAACC,eAAAA;AAC7B,CAAC;;;;"}
@@ -76,18 +76,20 @@ var AccordionItem = function AccordionItem(_ref) {
76
76
  index: _index,
77
77
  isDisabled: isDisabled
78
78
  },
79
- children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
79
+ children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread({}, metaAttribute({
80
80
  name: MetaConstants.AccordionItem,
81
81
  testID: testID
82
- })), makeAnalyticsAttribute(rest)), {}, {
83
- children: [/*#__PURE__*/jsxs(Collapsible, {
82
+ })), {}, {
83
+ children: [/*#__PURE__*/jsxs(Collapsible, _objectSpread(_objectSpread({
84
84
  isExpanded: isExpanded,
85
85
  defaultIsExpanded: isDefaultExpanded,
86
86
  onExpandChange: handleExpandChange
87
87
  // Accordion has its own width restrictions
88
88
  ,
89
89
  _shouldApplyWidthRestrictions: false,
90
- _dangerouslyDisableValidations: true,
90
+ _dangerouslyDisableValidations: true
91
+ // adding analytics attributes to Collapsible section
92
+ }, makeAnalyticsAttribute(rest)), {}, {
91
93
  children: [/*#__PURE__*/jsx(AccordionButton, {
92
94
  index: _index,
93
95
  icon: icon,
@@ -105,7 +107,7 @@ var AccordionItem = function AccordionItem(_ref) {
105
107
  children: children
106
108
  }) : body
107
109
  })]
108
- }), isLastItem || variant === 'transparent' ? /*#__PURE__*/jsx(Divider, {}) : null]
110
+ })), isLastItem || variant === 'transparent' ? /*#__PURE__*/jsx(Divider, {}) : null]
109
111
  }))
110
112
  });
111
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.js","sources":["../../../../../../src/components/Accordion/AccordionItem.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { AccordionButton } from './AccordionButton';\nimport { AccordionItemContext, useAccordion } from './AccordionContext';\nimport { AccordionItemBody } from './AccordionItemBody';\nimport { componentIds } from './componentIds';\nimport { Divider } from '~components/Divider';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport type { IconComponent } from '~components/Icons';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { isReactNative } from '~utils';\nimport { Collapsible } from '~components/Collapsible/Collapsible';\nimport { CollapsibleBody } from '~components/Collapsible';\nimport type { TestID, DataAnalyticsAttribute } from '~utils/types';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype AccordionItemProps = {\n /**\n * Title text content\n *\n * @deprecated Use AccordionItemHeader and AccordionItemBody\n *\n * Checkout https://blade.razorpay.com/?path=/docs/components-accordion--docs for new API\n */\n title?: string;\n\n /**\n * Body text content\n *\n * @deprecated Use AccordionItemHeader and AccordionItemBody\n *\n * Checkout https://blade.razorpay.com/?path=/docs/components-accordion--docs for new API\n */\n description?: string;\n\n /**\n * Renders a Blade icon as title prefix (requires `showNumberPrefix={false}`)\n *\n * @deprecated Use `leading={<StarIcon size=\"large\" />}` on AccordionItemHeader instead\n *\n * Checkout https://blade.razorpay.com/?path=/docs/components-accordion--docs for new API\n */\n icon?: IconComponent;\n\n /**\n * Slot, renders any custom content\n */\n children?: ReactNode | ReactNode[];\n\n /**\n * Disabled state of the item\n *\n * @default false\n */\n isDisabled?: boolean;\n\n /**\n * **Internal:** used for determining numbering, you don't need to pass this,\n * instead pass `showNumberPrefix` to root `Accordion`\n */\n _index?: number;\n} & TestID &\n DataAnalyticsAttribute;\n\nconst AccordionItem = ({\n title,\n description,\n icon,\n children,\n isDisabled,\n _index,\n testID,\n ...rest\n}: AccordionItemProps): ReactElement => {\n const {\n expandedIndex,\n onExpandChange,\n defaultExpandedIndex,\n variant,\n numberOfItems,\n } = useAccordion();\n const isExpanded = expandedIndex === _index;\n const isDefaultExpanded = defaultExpandedIndex === _index;\n const isDeprecatedAPI = Boolean(title) || Boolean(description) || Boolean(icon);\n const [header, body] = React.Children.toArray(children);\n\n if (!isDeprecatedAPI) {\n // Only doing validation in new API. Deprecated API allows everything as AccordionItem children\n const headerComponentId = getComponentId(header);\n const bodyComponentId = getComponentId(body);\n\n if (\n headerComponentId !== componentIds.AccordionItemHeader &&\n bodyComponentId !== componentIds.AccordionItemBody\n ) {\n throwBladeError({\n message:\n 'AccordionItem only allows AccordionItemHeader as first component and AccordionItemBody as second. Check Accordion documentation',\n moduleName: 'AccordionItem',\n });\n }\n }\n\n const isLastItem = _index !== undefined && _index < numberOfItems - 1;\n\n const handleExpandChange = ({ isExpanded }: { isExpanded: boolean }): void => {\n if (isExpanded && typeof _index !== 'undefined') {\n onExpandChange(_index);\n } else {\n onExpandChange(-1);\n }\n };\n\n return (\n <AccordionItemContext.Provider\n value={{\n index: _index,\n isDisabled,\n }}\n >\n <BaseBox\n {...metaAttribute({ name: MetaConstants.AccordionItem, testID })}\n {...makeAnalyticsAttribute(rest)}\n >\n <Collapsible\n isExpanded={isExpanded}\n defaultIsExpanded={isDefaultExpanded}\n onExpandChange={handleExpandChange}\n // Accordion has its own width restrictions\n _shouldApplyWidthRestrictions={false}\n _dangerouslyDisableValidations={true}\n >\n <AccordionButton\n index={_index}\n icon={icon}\n title={title}\n header={header}\n isDisabled={isDisabled}\n isDeprecatedAPI={isDeprecatedAPI}\n />\n <CollapsibleBody\n // Just React Native things, need this 100% so collapsed content flows correctly inside Accordion\n // In new API, AccordionItemBody takes 100% width to avoid issues like this - https://github.com/razorpay/blade/pull/1814\n width={isReactNative() || !isDeprecatedAPI ? '100%' : undefined}\n >\n {isDeprecatedAPI ? (\n <AccordionItemBody _description={description}>{children}</AccordionItemBody>\n ) : (\n body\n )}\n </CollapsibleBody>\n </Collapsible>\n {isLastItem || variant === 'transparent' ? <Divider /> : null}\n </BaseBox>\n </AccordionItemContext.Provider>\n );\n};\n\nexport type { AccordionItemProps };\nexport { AccordionItem };\n"],"names":["AccordionItem","_ref","title","description","icon","children","isDisabled","_index","testID","rest","_objectWithoutProperties","_excluded","_useAccordion","useAccordion","expandedIndex","onExpandChange","defaultExpandedIndex","variant","numberOfItems","isExpanded","isDefaultExpanded","isDeprecatedAPI","Boolean","_React$Children$toArr","React","Children","toArray","_React$Children$toArr2","_slicedToArray","header","body","headerComponentId","getComponentId","bodyComponentId","componentIds","AccordionItemHeader","AccordionItemBody","throwBladeError","message","moduleName","isLastItem","undefined","handleExpandChange","_ref2","_jsx","AccordionItemContext","Provider","value","index","_jsxs","BaseBox","_objectSpread","metaAttribute","name","MetaConstants","makeAnalyticsAttribute","Collapsible","defaultIsExpanded","_shouldApplyWidthRestrictions","_dangerouslyDisableValidations","AccordionButton","CollapsibleBody","width","isReactNative","_description","Divider"],"mappings":"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"}
1
+ {"version":3,"file":"AccordionItem.js","sources":["../../../../../../src/components/Accordion/AccordionItem.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { AccordionButton } from './AccordionButton';\nimport { AccordionItemContext, useAccordion } from './AccordionContext';\nimport { AccordionItemBody } from './AccordionItemBody';\nimport { componentIds } from './componentIds';\nimport { Divider } from '~components/Divider';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport type { IconComponent } from '~components/Icons';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { isReactNative } from '~utils';\nimport { Collapsible } from '~components/Collapsible/Collapsible';\nimport { CollapsibleBody } from '~components/Collapsible';\nimport type { TestID, DataAnalyticsAttribute } from '~utils/types';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype AccordionItemProps = {\n /**\n * Title text content\n *\n * @deprecated Use AccordionItemHeader and AccordionItemBody\n *\n * Checkout https://blade.razorpay.com/?path=/docs/components-accordion--docs for new API\n */\n title?: string;\n\n /**\n * Body text content\n *\n * @deprecated Use AccordionItemHeader and AccordionItemBody\n *\n * Checkout https://blade.razorpay.com/?path=/docs/components-accordion--docs for new API\n */\n description?: string;\n\n /**\n * Renders a Blade icon as title prefix (requires `showNumberPrefix={false}`)\n *\n * @deprecated Use `leading={<StarIcon size=\"large\" />}` on AccordionItemHeader instead\n *\n * Checkout https://blade.razorpay.com/?path=/docs/components-accordion--docs for new API\n */\n icon?: IconComponent;\n\n /**\n * Slot, renders any custom content\n */\n children?: ReactNode | ReactNode[];\n\n /**\n * Disabled state of the item\n *\n * @default false\n */\n isDisabled?: boolean;\n\n /**\n * **Internal:** used for determining numbering, you don't need to pass this,\n * instead pass `showNumberPrefix` to root `Accordion`\n */\n _index?: number;\n} & TestID &\n DataAnalyticsAttribute;\n\nconst AccordionItem = ({\n title,\n description,\n icon,\n children,\n isDisabled,\n _index,\n testID,\n ...rest\n}: AccordionItemProps): ReactElement => {\n const {\n expandedIndex,\n onExpandChange,\n defaultExpandedIndex,\n variant,\n numberOfItems,\n } = useAccordion();\n const isExpanded = expandedIndex === _index;\n const isDefaultExpanded = defaultExpandedIndex === _index;\n const isDeprecatedAPI = Boolean(title) || Boolean(description) || Boolean(icon);\n const [header, body] = React.Children.toArray(children);\n\n if (!isDeprecatedAPI) {\n // Only doing validation in new API. Deprecated API allows everything as AccordionItem children\n const headerComponentId = getComponentId(header);\n const bodyComponentId = getComponentId(body);\n\n if (\n headerComponentId !== componentIds.AccordionItemHeader &&\n bodyComponentId !== componentIds.AccordionItemBody\n ) {\n throwBladeError({\n message:\n 'AccordionItem only allows AccordionItemHeader as first component and AccordionItemBody as second. Check Accordion documentation',\n moduleName: 'AccordionItem',\n });\n }\n }\n\n const isLastItem = _index !== undefined && _index < numberOfItems - 1;\n\n const handleExpandChange = ({ isExpanded }: { isExpanded: boolean }): void => {\n if (isExpanded && typeof _index !== 'undefined') {\n onExpandChange(_index);\n } else {\n onExpandChange(-1);\n }\n };\n\n return (\n <AccordionItemContext.Provider\n value={{\n index: _index,\n isDisabled,\n }}\n >\n <BaseBox {...metaAttribute({ name: MetaConstants.AccordionItem, testID })}>\n <Collapsible\n isExpanded={isExpanded}\n defaultIsExpanded={isDefaultExpanded}\n onExpandChange={handleExpandChange}\n // Accordion has its own width restrictions\n _shouldApplyWidthRestrictions={false}\n _dangerouslyDisableValidations={true}\n // adding analytics attributes to Collapsible section\n {...makeAnalyticsAttribute(rest)}\n >\n <AccordionButton\n index={_index}\n icon={icon}\n title={title}\n header={header}\n isDisabled={isDisabled}\n isDeprecatedAPI={isDeprecatedAPI}\n />\n <CollapsibleBody\n // Just React Native things, need this 100% so collapsed content flows correctly inside Accordion\n // In new API, AccordionItemBody takes 100% width to avoid issues like this - https://github.com/razorpay/blade/pull/1814\n width={isReactNative() || !isDeprecatedAPI ? '100%' : undefined}\n >\n {isDeprecatedAPI ? (\n <AccordionItemBody _description={description}>{children}</AccordionItemBody>\n ) : (\n body\n )}\n </CollapsibleBody>\n </Collapsible>\n {isLastItem || variant === 'transparent' ? <Divider /> : null}\n </BaseBox>\n </AccordionItemContext.Provider>\n );\n};\n\nexport type { AccordionItemProps };\nexport { AccordionItem };\n"],"names":["AccordionItem","_ref","title","description","icon","children","isDisabled","_index","testID","rest","_objectWithoutProperties","_excluded","_useAccordion","useAccordion","expandedIndex","onExpandChange","defaultExpandedIndex","variant","numberOfItems","isExpanded","isDefaultExpanded","isDeprecatedAPI","Boolean","_React$Children$toArr","React","Children","toArray","_React$Children$toArr2","_slicedToArray","header","body","headerComponentId","getComponentId","bodyComponentId","componentIds","AccordionItemHeader","AccordionItemBody","throwBladeError","message","moduleName","isLastItem","undefined","handleExpandChange","_ref2","_jsx","AccordionItemContext","Provider","value","index","_jsxs","BaseBox","_objectSpread","metaAttribute","name","MetaConstants","Collapsible","defaultIsExpanded","_shouldApplyWidthRestrictions","_dangerouslyDisableValidations","makeAnalyticsAttribute","AccordionButton","CollapsibleBody","width","isReactNative","_description","Divider"],"mappings":"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"}
@@ -27,6 +27,7 @@ import { useBreakpoint } from '../../utils/useBreakpoint/useBreakpoint.js';
27
27
  import { Text } from '../Typography/Text/Text.js';
28
28
  import { castNativeType, castWebType } from '../../utils/platform/castUtils.js';
29
29
  import BaseButton from '../Button/BaseButton/BaseButton.js';
30
+ import { MAKE_ANALYTICS_CONSTANTS } from '../../utils/makeAnalyticsAttribute/makeAnalyticsConstants.js';
30
31
  import BaseLink from '../Link/BaseLink/BaseLink.js';
31
32
  import { IconButton } from '../Button/IconButton/IconButton.js';
32
33
  import CloseIcon from '../Icons/CloseIcon/CloseIcon.js';
@@ -138,6 +139,7 @@ var _Alert = function _Alert(_ref, ref) {
138
139
  onClick: actions.primary.onClick,
139
140
  color: emphasis === 'intense' ? 'white' : color,
140
141
  variant: "secondary",
142
+ "data-analytics-name": MAKE_ANALYTICS_CONSTANTS.ALERT.PRIMARY_ACTION_BUTTON,
141
143
  children: actions.primary.text
142
144
  })
143
145
  }) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.js","sources":["../../../../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import type { ReactChild, ReactElement } from 'react';\nimport React, { Fragment, useState, forwardRef } from 'react';\n\nimport { StyledAlert } from './StyledAlert';\nimport type { IconComponent } from '~components/Icons';\nimport {\n AlertOctagonIcon,\n AlertTriangleIcon,\n CheckCircleIcon,\n CloseIcon,\n InfoIcon,\n} from '~components/Icons';\nimport { castNativeType, castWebType, useBreakpoint, getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { IconButton } from '~components/Button/IconButton';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport BaseButton from '~components/Button/BaseButton';\nimport { BaseLink } from '~components/Link/BaseLink';\nimport type { FeedbackColors, SubtleOrIntense } from '~tokens/theme/theme';\nimport { useTheme } from '~components/BladeProvider';\nimport type {\n DataAnalyticsAttribute,\n BladeElementRef,\n DotNotationSpacingStringToken,\n TestID,\n} from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype PrimaryAction = {\n text: string;\n onClick: () => void;\n};\n\ntype SecondaryActionButton = {\n text: string;\n onClick: () => void;\n};\n\ntype SecondaryActionLinkButton = {\n text: string;\n href: string;\n onClick?: () => void;\n target?: string;\n /**\n * When `target` is set to `_blank` this is automatically set to `noopener noreferrer`\n */\n rel?: string;\n};\n\ntype SecondaryAction = SecondaryActionButton | SecondaryActionLinkButton;\n\ntype AlertProps = {\n /**\n * Body content, pass text or JSX. Avoid passing components except `Link` to customize the content.\n */\n description: ReactChild;\n\n /**\n * A brief heading\n */\n title?: string;\n\n /**\n * Shows a dismiss button\n *\n * @default true\n */\n isDismissible?: boolean;\n\n /**\n * A callback when the dismiss button is clicked\n */\n onDismiss?: () => void;\n\n /**\n * Can be used to render custom icon\n */\n icon?: IconComponent;\n\n /**\n * Can be set to `high` for a more prominent look. Not to be confused with a11y emphasis.\n *\n * @default subtle\n */\n emphasis?: SubtleOrIntense;\n\n /**\n * Makes the Alert span the entire container width, instead of the default max width of `584px`.\n * This also makes the alert borderless, useful for creating full bleed layouts.\n *\n * @default false\n */\n isFullWidth?: boolean;\n\n /**\n * Sets the color tone\n */\n color?: FeedbackColors;\n\n /**\n * Renders a primary action button and a secondary action link button\n */\n actions?: {\n /**\n * Renders a button (should **always** be present if `secondary` action is being used)\n */\n primary?: PrimaryAction;\n /**\n * Renders a Link button\n */\n secondary?: SecondaryAction;\n };\n} & TestID &\n StyledPropsBlade &\n DataAnalyticsAttribute;\n\nconst isReactNative = getPlatformType() === 'react-native';\n\n// Need extra wrappers on React Native only for alignment\nconst CloseButtonWrapper = isReactNative ? BaseBox : Fragment;\n\nconst intentIconMap = {\n positive: CheckCircleIcon,\n negative: AlertOctagonIcon,\n information: InfoIcon,\n neutral: InfoIcon,\n notice: AlertTriangleIcon,\n};\n\nconst _Alert = (\n {\n description,\n title,\n isDismissible = true,\n onDismiss,\n emphasis = 'subtle',\n isFullWidth = false,\n color = 'neutral',\n actions,\n testID,\n icon,\n ...rest\n }: AlertProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement | null => {\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const [isVisible, setIsVisible] = useState(true);\n\n const isDesktop = matchedDeviceType === 'desktop';\n const isMobile = !isDesktop;\n\n const Icon = icon ?? intentIconMap[color];\n let iconOffset: DotNotationSpacingStringToken = 'spacing.1';\n\n // certain special cases below needs special care for near perfect alignment\n if (isReactNative) {\n if (isFullWidth && !title) {\n iconOffset = 'spacing.1';\n } else if (!isFullWidth && !title) {\n iconOffset = 'spacing.0';\n } else if (!isFullWidth && title) {\n iconOffset = 'spacing.2';\n }\n } else if (isMobile) {\n if (!isFullWidth && title) {\n iconOffset = 'spacing.2';\n } else if (isFullWidth && !title) {\n iconOffset = 'spacing.2';\n }\n } else if (isFullWidth) {\n iconOffset = 'spacing.1';\n }\n\n const shouldCenterAlign = isFullWidth && !title;\n let alignment: 'center' | 'flex-start' = 'flex-start';\n if (!isFullWidth) alignment = 'flex-start';\n if (shouldCenterAlign) alignment = 'center';\n\n const leadingIcon = (\n <BaseBox display=\"flex\" alignSelf={alignment} marginTop={iconOffset}>\n <Icon\n color={\n emphasis === 'intense'\n ? 'surface.icon.staticWhite.normal'\n : `feedback.icon.${color}.${emphasis === 'subtle' ? 'intense' : 'subtle'}`\n }\n size=\"medium\"\n />\n </BaseBox>\n );\n\n const textColor =\n emphasis === 'intense' ? 'surface.text.staticWhite.normal' : 'surface.text.gray.subtle';\n const _title = title ? (\n <BaseBox marginBottom=\"spacing.2\">\n <Text color={textColor} size=\"medium\" weight=\"semibold\">\n {title}\n </Text>\n </BaseBox>\n ) : null;\n\n const _description = (\n <BaseBox marginTop={title || isReactNative ? 'spacing.0' : 'spacing.1'}>\n <Text color={textColor} size=\"small\">\n {description}\n </Text>\n </BaseBox>\n );\n\n const primaryAction = actions?.primary ? (\n <BaseBox\n marginRight=\"spacing.5\"\n display={isReactNative ? castNativeType('flex') : castWebType('inline-flex')}\n >\n <BaseButton\n size=\"small\"\n onClick={actions.primary.onClick}\n color={emphasis === 'intense' ? 'white' : color}\n variant=\"secondary\"\n >\n {actions.primary.text}\n </BaseButton>\n </BaseBox>\n ) : null;\n\n const secondaryActionParams: Partial<SecondaryActionLinkButton> | null = actions?.secondary\n ? {\n onClick: actions.secondary.onClick,\n }\n : null;\n\n /**\n * TS assumes only common properties to be present for `SecondaryAction` union type\n * We add a type guard that checks if href is present on secondary action:\n * - If yes, then TS can assume it to be `SecondaryActionLinkButton` (href being a required property)\n * - If no, then it would be `SecondaryActionButton` (and link properties wouldn't be needed)\n */\n if (actions?.secondary && secondaryActionParams && 'href' in actions.secondary) {\n secondaryActionParams.href = actions.secondary.href;\n secondaryActionParams.target = actions.secondary.target;\n secondaryActionParams.rel = actions.secondary.rel;\n }\n\n const secondaryAction = actions?.secondary ? (\n <BaseBox marginRight=\"spacing.4\" display={(isReactNative ? 'flex' : 'inline-flex') as never}>\n <BaseLink\n size=\"small\"\n color={emphasis === 'intense' ? 'white' : color}\n {...secondaryActionParams}\n >\n {actions.secondary.text}\n </BaseLink>\n </BaseBox>\n ) : null;\n\n // For certain cases we wish to render actions inline with text content\n const showActionsHorizontal = isFullWidth && isDesktop;\n\n const actionsHorizontal =\n showActionsHorizontal && (primaryAction || secondaryAction) ? (\n <BaseBox flexDirection=\"row\" alignItems=\"center\">\n {primaryAction}\n {secondaryAction}\n </BaseBox>\n ) : null;\n\n const actionsVertical =\n !showActionsHorizontal && (primaryAction || secondaryAction) ? (\n <BaseBox marginTop=\"spacing.4\" flexDirection=\"row\" alignItems=\"center\">\n {primaryAction}\n {secondaryAction}\n </BaseBox>\n ) : null;\n\n const onClickDismiss = (): void => {\n if (onDismiss) {\n onDismiss();\n }\n setIsVisible(false);\n };\n const closeButton = isDismissible ? (\n <CloseButtonWrapper>\n <IconButton\n accessibilityLabel=\"Dismiss alert\"\n onClick={onClickDismiss}\n emphasis={emphasis === 'intense' ? 'subtle' : 'intense'}\n size=\"large\"\n icon={CloseIcon}\n />\n </CloseButtonWrapper>\n ) : null;\n\n const a11yProps = makeAccessible({\n // React Native doesn't has status as role\n role: isReactNative || color === 'negative' || color === 'notice' ? 'alert' : 'status',\n // override the implicit live region of role `alert`\n ...(color === 'notice' && { liveRegion: 'polite' }),\n });\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <BaseBox\n ref={ref as never}\n {...a11yProps}\n {...metaAttribute({ name: MetaConstants.Alert, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <StyledAlert\n color={color}\n emphasis={emphasis}\n isFullWidth={isFullWidth}\n isDesktop={isDesktop}\n textAlign={'left' as never}\n >\n {leadingIcon}\n <BaseBox\n flex={1}\n paddingLeft={isFullWidth ? 'spacing.4' : 'spacing.3'}\n paddingRight={showActionsHorizontal ? 'spacing.4' : 'spacing.2'}\n >\n {_title}\n {_description}\n {actionsVertical}\n </BaseBox>\n {actionsHorizontal}\n {closeButton}\n </StyledAlert>\n </BaseBox>\n );\n};\n\nconst Alert = forwardRef(_Alert);\n\nexport type { AlertProps };\nexport { Alert };\n"],"names":["isReactNative","getPlatformType","CloseButtonWrapper","BaseBox","Fragment","intentIconMap","positive","CheckCircleIcon","negative","AlertOctagonIcon","information","InfoIcon","neutral","notice","AlertTriangleIcon","_Alert","_ref","ref","description","title","_ref$isDismissible","isDismissible","onDismiss","_ref$emphasis","emphasis","_ref$isFullWidth","isFullWidth","_ref$color","color","actions","testID","icon","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","_useState","useState","_useState2","_slicedToArray","isVisible","setIsVisible","isDesktop","isMobile","Icon","iconOffset","shouldCenterAlign","alignment","leadingIcon","_jsx","display","alignSelf","marginTop","children","concat","size","textColor","_title","marginBottom","Text","weight","_description","primaryAction","primary","marginRight","castNativeType","castWebType","BaseButton","onClick","variant","text","secondaryActionParams","secondary","href","target","rel","secondaryAction","BaseLink","_objectSpread","showActionsHorizontal","actionsHorizontal","_jsxs","flexDirection","alignItems","actionsVertical","onClickDismiss","closeButton","IconButton","accessibilityLabel","CloseIcon","a11yProps","makeAccessible","role","liveRegion","metaAttribute","name","MetaConstants","Alert","getStyledProps","makeAnalyticsAttribute","StyledAlert","textAlign","flex","paddingLeft","paddingRight","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"Alert.js","sources":["../../../../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import type { ReactChild, ReactElement } from 'react';\nimport React, { Fragment, useState, forwardRef } from 'react';\n\nimport { StyledAlert } from './StyledAlert';\nimport type { IconComponent } from '~components/Icons';\nimport {\n AlertOctagonIcon,\n AlertTriangleIcon,\n CheckCircleIcon,\n CloseIcon,\n InfoIcon,\n} from '~components/Icons';\nimport { castNativeType, castWebType, useBreakpoint, getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { IconButton } from '~components/Button/IconButton';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport BaseButton from '~components/Button/BaseButton';\nimport { BaseLink } from '~components/Link/BaseLink';\nimport type { FeedbackColors, SubtleOrIntense } from '~tokens/theme/theme';\nimport { useTheme } from '~components/BladeProvider';\nimport type {\n DataAnalyticsAttribute,\n BladeElementRef,\n DotNotationSpacingStringToken,\n TestID,\n} from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { MAKE_ANALYTICS_CONSTANTS, makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype PrimaryAction = {\n text: string;\n onClick: () => void;\n};\n\ntype SecondaryActionButton = {\n text: string;\n onClick: () => void;\n};\n\ntype SecondaryActionLinkButton = {\n text: string;\n href: string;\n onClick?: () => void;\n target?: string;\n /**\n * When `target` is set to `_blank` this is automatically set to `noopener noreferrer`\n */\n rel?: string;\n};\n\ntype SecondaryAction = SecondaryActionButton | SecondaryActionLinkButton;\n\ntype AlertProps = {\n /**\n * Body content, pass text or JSX. Avoid passing components except `Link` to customize the content.\n */\n description: ReactChild;\n\n /**\n * A brief heading\n */\n title?: string;\n\n /**\n * Shows a dismiss button\n *\n * @default true\n */\n isDismissible?: boolean;\n\n /**\n * A callback when the dismiss button is clicked\n */\n onDismiss?: () => void;\n\n /**\n * Can be used to render custom icon\n */\n icon?: IconComponent;\n\n /**\n * Can be set to `high` for a more prominent look. Not to be confused with a11y emphasis.\n *\n * @default subtle\n */\n emphasis?: SubtleOrIntense;\n\n /**\n * Makes the Alert span the entire container width, instead of the default max width of `584px`.\n * This also makes the alert borderless, useful for creating full bleed layouts.\n *\n * @default false\n */\n isFullWidth?: boolean;\n\n /**\n * Sets the color tone\n */\n color?: FeedbackColors;\n\n /**\n * Renders a primary action button and a secondary action link button\n */\n actions?: {\n /**\n * Renders a button (should **always** be present if `secondary` action is being used)\n */\n primary?: PrimaryAction;\n /**\n * Renders a Link button\n */\n secondary?: SecondaryAction;\n };\n} & TestID &\n StyledPropsBlade &\n DataAnalyticsAttribute;\n\nconst isReactNative = getPlatformType() === 'react-native';\n\n// Need extra wrappers on React Native only for alignment\nconst CloseButtonWrapper = isReactNative ? BaseBox : Fragment;\n\nconst intentIconMap = {\n positive: CheckCircleIcon,\n negative: AlertOctagonIcon,\n information: InfoIcon,\n neutral: InfoIcon,\n notice: AlertTriangleIcon,\n};\n\nconst _Alert = (\n {\n description,\n title,\n isDismissible = true,\n onDismiss,\n emphasis = 'subtle',\n isFullWidth = false,\n color = 'neutral',\n actions,\n testID,\n icon,\n ...rest\n }: AlertProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement | null => {\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const [isVisible, setIsVisible] = useState(true);\n\n const isDesktop = matchedDeviceType === 'desktop';\n const isMobile = !isDesktop;\n\n const Icon = icon ?? intentIconMap[color];\n let iconOffset: DotNotationSpacingStringToken = 'spacing.1';\n\n // certain special cases below needs special care for near perfect alignment\n if (isReactNative) {\n if (isFullWidth && !title) {\n iconOffset = 'spacing.1';\n } else if (!isFullWidth && !title) {\n iconOffset = 'spacing.0';\n } else if (!isFullWidth && title) {\n iconOffset = 'spacing.2';\n }\n } else if (isMobile) {\n if (!isFullWidth && title) {\n iconOffset = 'spacing.2';\n } else if (isFullWidth && !title) {\n iconOffset = 'spacing.2';\n }\n } else if (isFullWidth) {\n iconOffset = 'spacing.1';\n }\n\n const shouldCenterAlign = isFullWidth && !title;\n let alignment: 'center' | 'flex-start' = 'flex-start';\n if (!isFullWidth) alignment = 'flex-start';\n if (shouldCenterAlign) alignment = 'center';\n\n const leadingIcon = (\n <BaseBox display=\"flex\" alignSelf={alignment} marginTop={iconOffset}>\n <Icon\n color={\n emphasis === 'intense'\n ? 'surface.icon.staticWhite.normal'\n : `feedback.icon.${color}.${emphasis === 'subtle' ? 'intense' : 'subtle'}`\n }\n size=\"medium\"\n />\n </BaseBox>\n );\n\n const textColor =\n emphasis === 'intense' ? 'surface.text.staticWhite.normal' : 'surface.text.gray.subtle';\n const _title = title ? (\n <BaseBox marginBottom=\"spacing.2\">\n <Text color={textColor} size=\"medium\" weight=\"semibold\">\n {title}\n </Text>\n </BaseBox>\n ) : null;\n\n const _description = (\n <BaseBox marginTop={title || isReactNative ? 'spacing.0' : 'spacing.1'}>\n <Text color={textColor} size=\"small\">\n {description}\n </Text>\n </BaseBox>\n );\n\n const primaryAction = actions?.primary ? (\n <BaseBox\n marginRight=\"spacing.5\"\n display={isReactNative ? castNativeType('flex') : castWebType('inline-flex')}\n >\n <BaseButton\n size=\"small\"\n onClick={actions.primary.onClick}\n color={emphasis === 'intense' ? 'white' : color}\n variant=\"secondary\"\n data-analytics-name={MAKE_ANALYTICS_CONSTANTS.ALERT.PRIMARY_ACTION_BUTTON}\n >\n {actions.primary.text}\n </BaseButton>\n </BaseBox>\n ) : null;\n\n const secondaryActionParams: Partial<SecondaryActionLinkButton> | null = actions?.secondary\n ? {\n onClick: actions.secondary.onClick,\n }\n : null;\n\n /**\n * TS assumes only common properties to be present for `SecondaryAction` union type\n * We add a type guard that checks if href is present on secondary action:\n * - If yes, then TS can assume it to be `SecondaryActionLinkButton` (href being a required property)\n * - If no, then it would be `SecondaryActionButton` (and link properties wouldn't be needed)\n */\n if (actions?.secondary && secondaryActionParams && 'href' in actions.secondary) {\n secondaryActionParams.href = actions.secondary.href;\n secondaryActionParams.target = actions.secondary.target;\n secondaryActionParams.rel = actions.secondary.rel;\n }\n\n const secondaryAction = actions?.secondary ? (\n <BaseBox marginRight=\"spacing.4\" display={(isReactNative ? 'flex' : 'inline-flex') as never}>\n <BaseLink\n size=\"small\"\n color={emphasis === 'intense' ? 'white' : color}\n {...secondaryActionParams}\n >\n {actions.secondary.text}\n </BaseLink>\n </BaseBox>\n ) : null;\n\n // For certain cases we wish to render actions inline with text content\n const showActionsHorizontal = isFullWidth && isDesktop;\n\n const actionsHorizontal =\n showActionsHorizontal && (primaryAction || secondaryAction) ? (\n <BaseBox flexDirection=\"row\" alignItems=\"center\">\n {primaryAction}\n {secondaryAction}\n </BaseBox>\n ) : null;\n\n const actionsVertical =\n !showActionsHorizontal && (primaryAction || secondaryAction) ? (\n <BaseBox marginTop=\"spacing.4\" flexDirection=\"row\" alignItems=\"center\">\n {primaryAction}\n {secondaryAction}\n </BaseBox>\n ) : null;\n\n const onClickDismiss = (): void => {\n if (onDismiss) {\n onDismiss();\n }\n setIsVisible(false);\n };\n const closeButton = isDismissible ? (\n <CloseButtonWrapper>\n <IconButton\n accessibilityLabel=\"Dismiss alert\"\n onClick={onClickDismiss}\n emphasis={emphasis === 'intense' ? 'subtle' : 'intense'}\n size=\"large\"\n icon={CloseIcon}\n />\n </CloseButtonWrapper>\n ) : null;\n\n const a11yProps = makeAccessible({\n // React Native doesn't has status as role\n role: isReactNative || color === 'negative' || color === 'notice' ? 'alert' : 'status',\n // override the implicit live region of role `alert`\n ...(color === 'notice' && { liveRegion: 'polite' }),\n });\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <BaseBox\n ref={ref as never}\n {...a11yProps}\n {...metaAttribute({ name: MetaConstants.Alert, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <StyledAlert\n color={color}\n emphasis={emphasis}\n isFullWidth={isFullWidth}\n isDesktop={isDesktop}\n textAlign={'left' as never}\n >\n {leadingIcon}\n <BaseBox\n flex={1}\n paddingLeft={isFullWidth ? 'spacing.4' : 'spacing.3'}\n paddingRight={showActionsHorizontal ? 'spacing.4' : 'spacing.2'}\n >\n {_title}\n {_description}\n {actionsVertical}\n </BaseBox>\n {actionsHorizontal}\n {closeButton}\n </StyledAlert>\n </BaseBox>\n );\n};\n\nconst Alert = forwardRef(_Alert);\n\nexport type { AlertProps };\nexport { Alert };\n"],"names":["isReactNative","getPlatformType","CloseButtonWrapper","BaseBox","Fragment","intentIconMap","positive","CheckCircleIcon","negative","AlertOctagonIcon","information","InfoIcon","neutral","notice","AlertTriangleIcon","_Alert","_ref","ref","description","title","_ref$isDismissible","isDismissible","onDismiss","_ref$emphasis","emphasis","_ref$isFullWidth","isFullWidth","_ref$color","color","actions","testID","icon","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","_useState","useState","_useState2","_slicedToArray","isVisible","setIsVisible","isDesktop","isMobile","Icon","iconOffset","shouldCenterAlign","alignment","leadingIcon","_jsx","display","alignSelf","marginTop","children","concat","size","textColor","_title","marginBottom","Text","weight","_description","primaryAction","primary","marginRight","castNativeType","castWebType","BaseButton","onClick","variant","MAKE_ANALYTICS_CONSTANTS","ALERT","PRIMARY_ACTION_BUTTON","text","secondaryActionParams","secondary","href","target","rel","secondaryAction","BaseLink","_objectSpread","showActionsHorizontal","actionsHorizontal","_jsxs","flexDirection","alignItems","actionsVertical","onClickDismiss","closeButton","IconButton","accessibilityLabel","CloseIcon","a11yProps","makeAccessible","role","liveRegion","metaAttribute","name","MetaConstants","Alert","getStyledProps","makeAnalyticsAttribute","StyledAlert","textAlign","flex","paddingLeft","paddingRight","forwardRef"],"mappings":"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"}
@@ -6,8 +6,10 @@ import '../Box/BaseBox/index.js';
6
6
  import '../../utils/makeAccessible/index.js';
7
7
  import '../Typography/index.js';
8
8
  import { getTextColorToken } from '../Button/BaseButton/BaseButton.js';
9
+ import '../../utils/makeAnalyticsAttribute/index.js';
9
10
  import { jsx, jsxs } from 'react/jsx-runtime';
10
11
  import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
12
+ import { MAKE_ANALYTICS_CONSTANTS } from '../../utils/makeAnalyticsAttribute/makeAnalyticsConstants.js';
11
13
  import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
12
14
  import { Heading } from '../Typography/Heading/Heading.js';
13
15
  import { Text } from '../Typography/Text/Text.js';
@@ -78,6 +80,7 @@ var _AvatarButton = function _AvatarButton(_ref, ref) {
78
80
  onPointerEnter: onPointerEnter,
79
81
  onTouchStart: onTouchStart,
80
82
  onTouchEnd: onTouchEnd,
83
+ "data-analytics-name": as === 'button' ? MAKE_ANALYTICS_CONSTANTS.AVATAR.AVATAR_BUTTON : undefined,
81
84
  children: /*#__PURE__*/jsxs(BaseBox, {
82
85
  display: "flex",
83
86
  flexDirection: "row",