@razorpay/blade 12.37.0 → 12.39.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 (195) 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/Card.js +1 -1
  6. package/build/lib/native/components/Card/Card.js.map +1 -1
  7. package/build/lib/native/components/Card/CardContext.js +2 -2
  8. package/build/lib/native/components/Card/CardContext.js.map +1 -1
  9. package/build/lib/native/components/Card/CardFooter.js +2 -1
  10. package/build/lib/native/components/Card/CardFooter.js.map +1 -1
  11. package/build/lib/native/components/Card/CardHeader.js +3 -3
  12. package/build/lib/native/components/Card/CardHeader.js.map +1 -1
  13. package/build/lib/native/components/Chip/Chip.js +1 -1
  14. package/build/lib/native/components/Chip/Chip.js.map +1 -1
  15. package/build/lib/native/components/Form/FormLabel.js +1 -1
  16. package/build/lib/native/components/Form/FormLabel.js.map +1 -1
  17. package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
  18. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  19. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +1 -1
  20. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  21. package/build/lib/native/components/Input/OTPInput/OTPInput.js +1 -1
  22. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  23. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js +1 -1
  24. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  25. package/build/lib/native/components/Input/SearchInput/SearchInput.js +1 -1
  26. package/build/lib/native/components/Input/SearchInput/SearchInput.js.map +1 -1
  27. package/build/lib/native/components/Input/TextArea/TextArea.js +1 -1
  28. package/build/lib/native/components/Input/TextArea/TextArea.js.map +1 -1
  29. package/build/lib/native/components/Input/TextInput/TextInput.js +1 -1
  30. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  31. package/build/lib/native/components/List/ListItem.js +1 -1
  32. package/build/lib/native/components/List/ListItem.js.map +1 -1
  33. package/build/lib/native/components/QuickFilters/QuickFilter.js +1 -1
  34. package/build/lib/native/components/QuickFilters/QuickFilter.js.map +1 -1
  35. package/build/lib/native/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js +4 -0
  36. package/build/lib/native/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js.map +1 -0
  37. package/build/lib/web/development/components/Accordion/AccordionButton.web.js +5 -7
  38. package/build/lib/web/development/components/Accordion/AccordionButton.web.js.map +1 -1
  39. package/build/lib/web/development/components/Accordion/AccordionItem.js +7 -5
  40. package/build/lib/web/development/components/Accordion/AccordionItem.js.map +1 -1
  41. package/build/lib/web/development/components/Alert/Alert.js +2 -0
  42. package/build/lib/web/development/components/Alert/Alert.js.map +1 -1
  43. package/build/lib/web/development/components/Avatar/AvatarButton.js +3 -0
  44. package/build/lib/web/development/components/Avatar/AvatarButton.js.map +1 -1
  45. package/build/lib/web/development/components/Card/Card.js +4 -1
  46. package/build/lib/web/development/components/Card/Card.js.map +1 -1
  47. package/build/lib/web/development/components/Card/CardContext.js +11 -6
  48. package/build/lib/web/development/components/Card/CardContext.js.map +1 -1
  49. package/build/lib/web/development/components/Card/CardFooter.js +3 -0
  50. package/build/lib/web/development/components/Card/CardFooter.js.map +1 -1
  51. package/build/lib/web/development/components/Card/CardHeader.js +38 -44
  52. package/build/lib/web/development/components/Card/CardHeader.js.map +1 -1
  53. package/build/lib/web/development/components/Chip/Chip.js +5 -5
  54. package/build/lib/web/development/components/Chip/Chip.js.map +1 -1
  55. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +6 -2
  56. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  57. package/build/lib/web/development/components/DatePicker/Calendar.web.js +4 -2
  58. package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
  59. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js +4 -0
  60. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js.map +1 -1
  61. package/build/lib/web/development/components/DatePicker/DateInput.web.js +10 -4
  62. package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -1
  63. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js +1 -0
  64. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  65. package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +2 -1
  66. package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -1
  67. package/build/lib/web/development/components/FileUpload/FileUploadItem.js +3 -0
  68. package/build/lib/web/development/components/FileUpload/FileUploadItem.js.map +1 -1
  69. package/build/lib/web/development/components/Form/FormLabel.js +24 -4
  70. package/build/lib/web/development/components/Form/FormLabel.js.map +1 -1
  71. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +6 -2
  72. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  73. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +1 -1
  74. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  75. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +5 -1
  76. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  77. package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js +5 -1
  78. package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  79. package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +5 -1
  80. package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
  81. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js +5 -1
  82. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js.map +1 -1
  83. package/build/lib/web/development/components/Input/TextArea/TextArea.js +5 -1
  84. package/build/lib/web/development/components/Input/TextArea/TextArea.js.map +1 -1
  85. package/build/lib/web/development/components/Input/TextInput/TextInput.js +5 -1
  86. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  87. package/build/lib/web/development/components/List/ListItem.js +1 -1
  88. package/build/lib/web/development/components/List/ListItem.js.map +1 -1
  89. package/build/lib/web/development/components/Modal/Modal.web.js +6 -7
  90. package/build/lib/web/development/components/Modal/Modal.web.js.map +1 -1
  91. package/build/lib/web/development/components/Preview/Preview.web.js +8 -7
  92. package/build/lib/web/development/components/Preview/Preview.web.js.map +1 -1
  93. package/build/lib/web/development/components/QuickFilters/QuickFilter.js +9 -7
  94. package/build/lib/web/development/components/QuickFilters/QuickFilter.js.map +1 -1
  95. package/build/lib/web/development/components/SpotlightPopoverTour/TourFooter.web.js +12 -2
  96. package/build/lib/web/development/components/SpotlightPopoverTour/TourFooter.web.js.map +1 -1
  97. package/build/lib/web/development/components/Table/Table.web.js +6 -3
  98. package/build/lib/web/development/components/Table/Table.web.js.map +1 -1
  99. package/build/lib/web/development/components/Table/TableBody.web.js +5 -3
  100. package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
  101. package/build/lib/web/development/components/Table/TableEditableCell.web.js +11 -8
  102. package/build/lib/web/development/components/Table/TableEditableCell.web.js.map +1 -1
  103. package/build/lib/web/development/components/Table/TableHeader.web.js +4 -2
  104. package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
  105. package/build/lib/web/development/components/Table/TablePagination.web.js +12 -6
  106. package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
  107. package/build/lib/web/development/components/Table/TableToolbar.web.js +5 -8
  108. package/build/lib/web/development/components/Table/TableToolbar.web.js.map +1 -1
  109. package/build/lib/web/development/components/Toast/Toast.web.js +2 -0
  110. package/build/lib/web/development/components/Toast/Toast.web.js.map +1 -1
  111. package/build/lib/web/development/utils/makeAnalyticsAttribute/index.js +1 -0
  112. package/build/lib/web/development/utils/makeAnalyticsAttribute/index.js.map +1 -1
  113. package/build/lib/web/development/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js +32 -0
  114. package/build/lib/web/development/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js.map +1 -0
  115. package/build/lib/web/production/components/Accordion/AccordionButton.web.js +5 -7
  116. package/build/lib/web/production/components/Accordion/AccordionButton.web.js.map +1 -1
  117. package/build/lib/web/production/components/Accordion/AccordionItem.js +7 -5
  118. package/build/lib/web/production/components/Accordion/AccordionItem.js.map +1 -1
  119. package/build/lib/web/production/components/Alert/Alert.js +2 -0
  120. package/build/lib/web/production/components/Alert/Alert.js.map +1 -1
  121. package/build/lib/web/production/components/Avatar/AvatarButton.js +3 -0
  122. package/build/lib/web/production/components/Avatar/AvatarButton.js.map +1 -1
  123. package/build/lib/web/production/components/Card/Card.js +4 -1
  124. package/build/lib/web/production/components/Card/Card.js.map +1 -1
  125. package/build/lib/web/production/components/Card/CardContext.js +11 -6
  126. package/build/lib/web/production/components/Card/CardContext.js.map +1 -1
  127. package/build/lib/web/production/components/Card/CardFooter.js +3 -0
  128. package/build/lib/web/production/components/Card/CardFooter.js.map +1 -1
  129. package/build/lib/web/production/components/Card/CardHeader.js +38 -44
  130. package/build/lib/web/production/components/Card/CardHeader.js.map +1 -1
  131. package/build/lib/web/production/components/Chip/Chip.js +5 -5
  132. package/build/lib/web/production/components/Chip/Chip.js.map +1 -1
  133. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +6 -2
  134. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  135. package/build/lib/web/production/components/DatePicker/Calendar.web.js +4 -2
  136. package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
  137. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js +4 -0
  138. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js.map +1 -1
  139. package/build/lib/web/production/components/DatePicker/DateInput.web.js +10 -4
  140. package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -1
  141. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js +1 -0
  142. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  143. package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +2 -1
  144. package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -1
  145. package/build/lib/web/production/components/FileUpload/FileUploadItem.js +3 -0
  146. package/build/lib/web/production/components/FileUpload/FileUploadItem.js.map +1 -1
  147. package/build/lib/web/production/components/Form/FormLabel.js +24 -4
  148. package/build/lib/web/production/components/Form/FormLabel.js.map +1 -1
  149. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +6 -2
  150. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  151. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +1 -1
  152. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  153. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +5 -1
  154. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  155. package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js +5 -1
  156. package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  157. package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +5 -1
  158. package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
  159. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js +5 -1
  160. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js.map +1 -1
  161. package/build/lib/web/production/components/Input/TextArea/TextArea.js +5 -1
  162. package/build/lib/web/production/components/Input/TextArea/TextArea.js.map +1 -1
  163. package/build/lib/web/production/components/Input/TextInput/TextInput.js +5 -1
  164. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  165. package/build/lib/web/production/components/List/ListItem.js +1 -1
  166. package/build/lib/web/production/components/List/ListItem.js.map +1 -1
  167. package/build/lib/web/production/components/Modal/Modal.web.js +6 -7
  168. package/build/lib/web/production/components/Modal/Modal.web.js.map +1 -1
  169. package/build/lib/web/production/components/Preview/Preview.web.js +8 -7
  170. package/build/lib/web/production/components/Preview/Preview.web.js.map +1 -1
  171. package/build/lib/web/production/components/QuickFilters/QuickFilter.js +9 -7
  172. package/build/lib/web/production/components/QuickFilters/QuickFilter.js.map +1 -1
  173. package/build/lib/web/production/components/SpotlightPopoverTour/TourFooter.web.js +12 -2
  174. package/build/lib/web/production/components/SpotlightPopoverTour/TourFooter.web.js.map +1 -1
  175. package/build/lib/web/production/components/Table/Table.web.js +6 -3
  176. package/build/lib/web/production/components/Table/Table.web.js.map +1 -1
  177. package/build/lib/web/production/components/Table/TableBody.web.js +5 -3
  178. package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
  179. package/build/lib/web/production/components/Table/TableEditableCell.web.js +11 -8
  180. package/build/lib/web/production/components/Table/TableEditableCell.web.js.map +1 -1
  181. package/build/lib/web/production/components/Table/TableHeader.web.js +4 -2
  182. package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
  183. package/build/lib/web/production/components/Table/TablePagination.web.js +12 -6
  184. package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
  185. package/build/lib/web/production/components/Table/TableToolbar.web.js +5 -8
  186. package/build/lib/web/production/components/Table/TableToolbar.web.js.map +1 -1
  187. package/build/lib/web/production/components/Toast/Toast.web.js +2 -0
  188. package/build/lib/web/production/components/Toast/Toast.web.js.map +1 -1
  189. package/build/lib/web/production/utils/makeAnalyticsAttribute/index.js +1 -0
  190. package/build/lib/web/production/utils/makeAnalyticsAttribute/index.js.map +1 -1
  191. package/build/lib/web/production/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js +32 -0
  192. package/build/lib/web/production/utils/makeAnalyticsAttribute/makeAnalyticsConstants.js.map +1 -0
  193. package/build/types/components/index.d.ts +44 -11
  194. package/build/types/components/index.native.d.ts +40 -9
  195. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","sources":["../../../../../../../src/components/Input/TextArea/TextArea.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\nimport React from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { hintMarginTop } from '~components/Form/formTokens';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\n\ntype TextAreaCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'necessityIndicator'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'maxCharacters'\n | 'autoFocus'\n | 'numberOfLines'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n onKeyDown?: ({\n name,\n value,\n event,\n }: {\n name?: FormInputOnKeyDownEvent['name'];\n value: string;\n event: FormInputOnKeyDownEvent['event'];\n }) => void;\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextAreaPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype TextAreaPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype TextAreaProps = (TextAreaPropsWithA11yLabel | TextAreaPropsWithLabel) & TextAreaCommonProps;\n\n// need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _TextArea: React.ForwardRefRenderFunction<BladeElementRef, TextAreaProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition,\n necessityIndicator,\n errorText,\n helpText,\n successText,\n validationState,\n defaultValue,\n isDisabled,\n isRequired,\n name,\n onChange,\n onFocus,\n onBlur,\n onSubmit,\n onKeyDown,\n placeholder,\n value,\n maxCharacters,\n showClearButton,\n onClearButtonClick,\n autoFocus,\n numberOfLines = 2,\n testID,\n size = 'medium',\n isTaggedInput,\n tags,\n onTagChange,\n ...rest\n },\n ref,\n) => {\n const inputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const [isInputFocussed, setIsInputFocussed] = React.useState(autoFocus ?? false);\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n tags,\n onTagChange,\n isDisabled,\n inputRef,\n isTaggedInput,\n name,\n value,\n onChange,\n });\n\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (value?.length || defaultValue?.length)));\n }, [showClearButton, defaultValue, value]);\n\n const renderInteractionElement = (): React.ReactNode => {\n if (shouldShowClearButton) {\n return (\n <BaseBox paddingTop=\"spacing.3\" marginTop=\"spacing.1\">\n <IconButton\n icon={CloseIcon}\n accessibilityLabel=\"Clear textarea content\"\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(inputRef.current)) {\n inputRef.current.clear();\n inputRef.current.focus();\n } else if (inputRef.current instanceof HTMLTextAreaElement) {\n inputRef.current.value = '';\n inputRef.current.focus();\n }\n }\n handleTagsClear();\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n />\n </BaseBox>\n );\n }\n\n return null;\n };\n\n return (\n <BaseInput\n as=\"textarea\"\n id=\"textarea\"\n maxTagRows=\"multiple\"\n componentName={MetaConstants.TextArea}\n autoFocus={autoFocus}\n ref={mergedRef}\n label={label as string}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n isDropdownTrigger={isTaggedInput}\n showAllTags={isInputFocussed}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n necessityIndicator={necessityIndicator}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n validationState={validationState}\n isDisabled={isDisabled}\n isRequired={isRequired}\n name={name}\n maxCharacters={maxCharacters}\n placeholder={placeholder}\n trailingInteractionElement={renderInteractionElement()}\n defaultValue={defaultValue}\n value={value}\n numberOfLines={numberOfLines}\n onChange={({ name, value }) => {\n if (showClearButton && value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n handleTaggedInputChange({ name, value });\n onChange?.({ name, value });\n }}\n onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n onKeyDown?.({\n name: e.name,\n value: e.event.currentTarget.value,\n event: e.event,\n });\n }}\n onSubmit={onSubmit}\n trailingFooterSlot={(value) => {\n return maxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter currentCount={value?.length ?? 0} maxCount={maxCharacters} />\n </BaseBox>\n ) : null;\n }}\n testID={testID}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextArea = assignWithoutSideEffects(React.forwardRef(_TextArea), {\n displayName: 'TextArea',\n});\n\nexport type { TextAreaProps };\nexport { TextArea };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextArea","_ref","ref","label","accessibilityLabel","labelPosition","necessityIndicator","errorText","helpText","successText","validationState","defaultValue","isDisabled","isRequired","name","onChange","onFocus","onBlur","onSubmit","onKeyDown","placeholder","value","maxCharacters","showClearButton","onClearButtonClick","autoFocus","_ref$numberOfLines","numberOfLines","testID","_ref$size","size","isTaggedInput","tags","onTagChange","rest","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","_React$useState","useState","_React$useState2","_slicedToArray","isInputFocussed","setIsInputFocussed","_useTaggedInput","useTaggedInput","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState3","_React$useState4","shouldShowClearButton","setShouldShowClearButton","useEffect","Boolean","length","renderInteractionElement","_jsx","BaseBox","paddingTop","marginTop","children","IconButton","icon","CloseIcon","onClick","_inputRef$current","isEmpty","current","clear","focus","HTMLTextAreaElement","BaseInput","_objectSpread","as","id","maxTagRows","componentName","MetaConstants","TextArea","undefined","isDropdownTrigger","showAllTags","hideLabelText","trailingInteractionElement","_ref2","e","event","currentTarget","trailingFooterSlot","_value$length","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"TextArea.js","sources":["../../../../../../../src/components/Input/TextArea/TextArea.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\nimport React from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport type { TaggedInputProps } from '../BaseInput/useTaggedInput';\nimport { useTaggedInput } from '../BaseInput/useTaggedInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { CharacterCounter } from '~components/Form/CharacterCounter';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { hintMarginTop } from '~components/Form/formTokens';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\n\ntype TextAreaCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'necessityIndicator'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'value'\n | 'isDisabled'\n | 'isRequired'\n | 'maxCharacters'\n | 'autoFocus'\n | 'numberOfLines'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Decides whether to render a clear icon button\n */\n showClearButton?: boolean;\n /**\n * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`\n */\n onClearButtonClick?: () => void;\n\n onKeyDown?: ({\n name,\n value,\n event,\n }: {\n name?: FormInputOnKeyDownEvent['name'];\n value: string;\n event: FormInputOnKeyDownEvent['event'];\n }) => void;\n} & TaggedInputProps &\n StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype TextAreaPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype TextAreaPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype TextAreaProps = (TextAreaPropsWithA11yLabel | TextAreaPropsWithLabel) & TextAreaCommonProps;\n\n// need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _TextArea: React.ForwardRefRenderFunction<BladeElementRef, TextAreaProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition,\n labelSuffix,\n labelTrailing,\n necessityIndicator,\n errorText,\n helpText,\n successText,\n validationState,\n defaultValue,\n isDisabled,\n isRequired,\n name,\n onChange,\n onFocus,\n onBlur,\n onSubmit,\n onKeyDown,\n placeholder,\n value,\n maxCharacters,\n showClearButton,\n onClearButtonClick,\n autoFocus,\n numberOfLines = 2,\n testID,\n size = 'medium',\n isTaggedInput,\n tags,\n onTagChange,\n ...rest\n },\n ref,\n) => {\n const inputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, inputRef);\n const [isInputFocussed, setIsInputFocussed] = React.useState(autoFocus ?? false);\n const {\n activeTagIndex,\n setActiveTagIndex,\n getTags,\n handleTaggedInputKeydown,\n handleTaggedInputChange,\n handleTagsClear,\n } = useTaggedInput({\n tags,\n onTagChange,\n isDisabled,\n inputRef,\n isTaggedInput,\n name,\n value,\n onChange,\n });\n\n const [shouldShowClearButton, setShouldShowClearButton] = React.useState(false);\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(showClearButton && (value?.length || defaultValue?.length)));\n }, [showClearButton, defaultValue, value]);\n\n const renderInteractionElement = (): React.ReactNode => {\n if (shouldShowClearButton) {\n return (\n <BaseBox paddingTop=\"spacing.3\" marginTop=\"spacing.1\">\n <IconButton\n icon={CloseIcon}\n accessibilityLabel=\"Clear textarea content\"\n onClick={() => {\n if (isEmpty(value) && inputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(inputRef.current)) {\n inputRef.current.clear();\n inputRef.current.focus();\n } else if (inputRef.current instanceof HTMLTextAreaElement) {\n inputRef.current.value = '';\n inputRef.current.focus();\n }\n }\n handleTagsClear();\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n inputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n />\n </BaseBox>\n );\n }\n\n return null;\n };\n\n return (\n <BaseInput\n as=\"textarea\"\n id=\"textarea\"\n maxTagRows=\"multiple\"\n componentName={MetaConstants.TextArea}\n autoFocus={autoFocus}\n ref={mergedRef}\n label={label as string}\n tags={isTaggedInput ? getTags({ size }) : undefined}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n isDropdownTrigger={isTaggedInput}\n showAllTags={isInputFocussed}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n necessityIndicator={necessityIndicator}\n errorText={errorText}\n helpText={helpText}\n successText={successText}\n validationState={validationState}\n isDisabled={isDisabled}\n isRequired={isRequired}\n name={name}\n maxCharacters={maxCharacters}\n placeholder={placeholder}\n trailingInteractionElement={renderInteractionElement()}\n defaultValue={defaultValue}\n value={value}\n numberOfLines={numberOfLines}\n onChange={({ name, value }) => {\n if (showClearButton && value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n handleTaggedInputChange({ name, value });\n onChange?.({ name, value });\n }}\n onFocus={(e) => {\n setIsInputFocussed(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsInputFocussed(false);\n onBlur?.(e);\n }}\n onKeyDown={(e) => {\n handleTaggedInputKeydown(e);\n onKeyDown?.({\n name: e.name,\n value: e.event.currentTarget.value,\n event: e.event,\n });\n }}\n onSubmit={onSubmit}\n trailingFooterSlot={(value) => {\n return maxCharacters ? (\n <BaseBox marginTop={hintMarginTop[size]} marginRight=\"spacing.1\">\n <CharacterCounter currentCount={value?.length ?? 0} maxCount={maxCharacters} />\n </BaseBox>\n ) : null;\n }}\n testID={testID}\n size={size}\n {...rest}\n />\n );\n};\n\nconst TextArea = assignWithoutSideEffects(React.forwardRef(_TextArea), {\n displayName: 'TextArea',\n});\n\nexport type { TextAreaProps };\nexport { TextArea };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_TextArea","_ref","ref","label","accessibilityLabel","labelPosition","labelSuffix","labelTrailing","necessityIndicator","errorText","helpText","successText","validationState","defaultValue","isDisabled","isRequired","name","onChange","onFocus","onBlur","onSubmit","onKeyDown","placeholder","value","maxCharacters","showClearButton","onClearButtonClick","autoFocus","_ref$numberOfLines","numberOfLines","testID","_ref$size","size","isTaggedInput","tags","onTagChange","rest","_objectWithoutProperties","_excluded","inputRef","React","useRef","mergedRef","useMergeRefs","_React$useState","useState","_React$useState2","_slicedToArray","isInputFocussed","setIsInputFocussed","_useTaggedInput","useTaggedInput","activeTagIndex","setActiveTagIndex","getTags","handleTaggedInputKeydown","handleTaggedInputChange","handleTagsClear","_React$useState3","_React$useState4","shouldShowClearButton","setShouldShowClearButton","useEffect","Boolean","length","renderInteractionElement","_jsx","BaseBox","paddingTop","marginTop","children","IconButton","icon","CloseIcon","onClick","_inputRef$current","isEmpty","current","clear","focus","HTMLTextAreaElement","BaseInput","_objectSpread","as","id","maxTagRows","componentName","MetaConstants","TextArea","undefined","isDropdownTrigger","showAllTags","hideLabelText","trailingInteractionElement","_ref2","e","event","currentTarget","trailingFooterSlot","_value$length","hintMarginTop","marginRight","CharacterCounter","currentCount","maxCount","assignWithoutSideEffects","forwardRef","displayName"],"mappings":"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"}
@@ -34,7 +34,7 @@ import { MetaConstants } from '../../../utils/metaAttribute/metaConstants.js';
34
34
  import { CharacterCounter } from '../../Form/CharacterCounter/CharacterCounter.js';
35
35
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
36
36
 
37
- var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "type", "defaultValue", "name", "value", "maxCharacters", "format", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "necessityIndicator", "validationState", "errorText", "helpText", "successText", "isRequired", "icon", "prefix", "showClearButton", "onClearButtonClick", "isLoading", "suffix", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "autoCapitalize", "testID", "size", "leadingIcon", "trailingIcon", "isTaggedInput", "tags", "onTagChange", "trailing", "leading"];
37
+ var _excluded = ["label", "accessibilityLabel", "labelPosition", "placeholder", "type", "defaultValue", "name", "value", "maxCharacters", "format", "onChange", "onClick", "onFocus", "onBlur", "onSubmit", "isDisabled", "necessityIndicator", "validationState", "errorText", "helpText", "successText", "isRequired", "icon", "prefix", "showClearButton", "onClearButtonClick", "isLoading", "suffix", "autoFocus", "keyboardReturnKeyType", "autoCompleteSuggestionType", "autoCapitalize", "testID", "size", "leadingIcon", "trailingIcon", "isTaggedInput", "tags", "onTagChange", "trailing", "leading", "labelSuffix", "labelTrailing"];
38
38
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
39
39
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
40
40
  // need to do this to tell TS to infer type as TextInput of React Native and make it believe that `ref.current.clear()` exists
@@ -88,6 +88,8 @@ var _TextInput = function _TextInput(_ref, ref) {
88
88
  onTagChange = _ref.onTagChange,
89
89
  trailing = _ref.trailing,
90
90
  leading = _ref.leading,
91
+ labelSuffix = _ref.labelSuffix,
92
+ labelTrailing = _ref.labelTrailing,
91
93
  rest = _objectWithoutProperties(_ref, _excluded);
92
94
  var textInputRef = React__default.useRef(null);
93
95
  var mergedRef = useMergeRefs(ref, textInputRef);
@@ -269,6 +271,8 @@ var _TextInput = function _TextInput(_ref, ref) {
269
271
  textInputWrapperRef.current = wrapperNode;
270
272
  },
271
273
  label: label,
274
+ labelSuffix: labelSuffix,
275
+ labelTrailing: labelTrailing,
272
276
  accessibilityLabel: accessibilityLabel,
273
277
  hideLabelText: !Boolean(label),
274
278
  labelPosition: labelPosition,
@@ -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","hasAlphanumeric","test","Error","concat","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","_objectSpread","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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"}
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","hasAlphanumeric","test","Error","concat","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","_objectSpread","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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"}
@@ -97,7 +97,7 @@ var _ListItem = function _ListItem(_ref3) {
97
97
  // Get children that are not a List component and are valid allowed children
98
98
  var validChildItem = childrenArray.filter(function (child) {
99
99
  if (getComponentId(child) === MetaConstants.List) return null;
100
- if (typeof child === 'string' || isValidAllowedChildren(child, MetaConstants.ListItemLink) || isValidAllowedChildren(child, MetaConstants.ListItemText) || isValidAllowedChildren(child, MetaConstants.ListItemCode)) {
100
+ if (typeof child === 'string' || typeof child === 'number' || isValidAllowedChildren(child, MetaConstants.ListItemLink) || isValidAllowedChildren(child, MetaConstants.ListItemText) || isValidAllowedChildren(child, MetaConstants.ListItemCode)) {
101
101
  return child;
102
102
  } else if (true) {
103
103
  throwBladeError({
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sources":["../../../../../../src/components/List/ListItem.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport React from 'react';\nimport { useListContext } from './ListContext';\nimport { UnorderedItemIcon } from './ListItemIcons';\nimport { ListItemElement } from './ListItemElement';\nimport {\n listItemBulletMarginRight,\n listItemBulletMarginTop,\n listItemOrderedBulletBoxSize,\n listItemMarginBottom,\n listItemMarginLeft,\n} from './listTokens';\nimport type { ListProps } from './List';\nimport { getOrderedListItemBullet } from './getOrderedListItemBullet';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Text } from '~components/Typography';\nimport type { IconComponent } from '~components/Icons';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { getPlatformType } from '~utils/getPlatformType';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListItemProps = {\n /**\n * Children to be rendered for ListItem. This can be a text, ListItemLink or another List.\n *\n */\n children: React.ReactNode;\n /**\n * Icon to be rendered for a ListItem's bullet.\n *\n */\n icon?: IconComponent;\n /**\n * Icon color of the ListItem's bullet.\n *\n */\n iconColor?: ListProps['iconColor'];\n /**\n * This is a private prop to be used only for internal logic purposes.\n *\n */\n _itemNumber?: undefined;\n} & TestID;\n\nconst StyledListItem = styled(ListItemElement)<{\n level?: number;\n variant: NonNullable<ListProps['variant']>;\n hasIcon: boolean;\n}>(({ level, theme, variant, hasIcon }) => ({\n marginLeft: level\n ? getIn(\n theme,\n listItemMarginLeft[\n `${variant}${variant === 'unordered' && hasIcon ? 'WithIcon' : ''}` as NonNullable<\n ListProps['variant'] | 'unorderedWithIcon'\n >\n ][level],\n )\n : 0,\n}));\n\nconst ListItemContentChildren = ({\n children,\n size,\n}: {\n children: React.ReactNode[];\n size: NonNullable<ListProps['size']>;\n}): React.ReactElement => {\n /* Having a <View><Text>...</Text><View/> inside <Text /> breaks vertical alignment. Issue: https://github.com/facebook/react-native/issues/31955\n As a workaround, we wrap individual strings in their own <Text /> and handle alignment with a parent <View> (BaseBox).\n */\n return getPlatformType() === 'react-native' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" flexWrap=\"wrap\">\n {children.map((child, index) => {\n if (typeof child === 'string') {\n return (\n <Text key={index} variant=\"body\" size={size}>\n {child}\n </Text>\n );\n }\n return child;\n })}\n </BaseBox>\n ) : (\n <Text variant=\"body\" size={size}>\n {children}\n </Text>\n );\n};\n\nconst _ListItem = ({\n children,\n icon: Icon,\n iconColor: listItemIconColor,\n _itemNumber,\n testID,\n}: ListItemProps): React.ReactElement => {\n const { level, size, icon: ListContextIcon, variant, iconColor } = useListContext();\n const { theme, platform } = useTheme();\n const ItemIcon = Icon ?? ListContextIcon;\n const iconColorToken = listItemIconColor ?? iconColor ?? 'surface.icon.gray.muted';\n\n if (__DEV__) {\n if (level && level > 3) {\n throwBladeError({\n message: 'List Nesting is allowed only upto 3 levels.',\n moduleName: 'List',\n });\n }\n }\n\n const childrenArray = React.Children.toArray(children);\n\n // Get children that are not a List component and are valid allowed children\n const validChildItem = childrenArray.filter((child) => {\n if (getComponentId(child) === MetaConstants.List) return null;\n\n if (\n typeof child === 'string' ||\n isValidAllowedChildren(child, MetaConstants.ListItemLink) ||\n isValidAllowedChildren(child, MetaConstants.ListItemText) ||\n isValidAllowedChildren(child, MetaConstants.ListItemCode)\n ) {\n return child;\n } else if (__DEV__) {\n throwBladeError({\n message: `You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,\n moduleName: 'ListItem',\n });\n }\n return null;\n });\n // Get child that is a List component\n const childList = childrenArray.filter((child) =>\n getComponentId(child) === MetaConstants.List ? child : null,\n );\n const hasIcon = Boolean(ItemIcon);\n\n return (\n <StyledListItem\n level={level}\n variant={variant}\n hasIcon={hasIcon}\n {...metaAttribute({ name: MetaConstants.ListItem, testID })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginBottom={listItemMarginBottom}\n >\n {variant === 'unordered' ? (\n <BaseBox\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={\n listItemBulletMarginTop[`${variant}${hasIcon ? 'WithIcon' : ''}`][platform][size]\n }\n display=\"flex\"\n alignSelf=\"flex-start\"\n >\n {ItemIcon ? (\n <ItemIcon size={size} color={iconColorToken} />\n ) : (\n <UnorderedItemIcon level={level} />\n )}\n </BaseBox>\n ) : (\n <BaseBox\n width={listItemOrderedBulletBoxSize[variant][platform][size]}\n height={listItemOrderedBulletBoxSize[variant][platform][size]}\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={listItemBulletMarginTop[variant][platform][size]}\n display=\"flex\"\n flexShrink={0}\n justifyContent=\"center\"\n alignSelf=\"flex-start\"\n alignItems=\"center\"\n borderRadius={variant === 'ordered-filled' ? 'max' : undefined}\n backgroundColor={\n variant === 'ordered-filled'\n ? getIn(theme.colors, 'feedback.background.neutral.subtle')\n : undefined\n }\n >\n <Text\n variant=\"body\"\n color=\"surface.text.gray.muted\"\n size={variant === 'ordered' ? size : 'xsmall'}\n >\n {`${getOrderedListItemBullet({\n itemNumber: _itemNumber ?? 1,\n level: level ?? 1,\n })}${variant === 'ordered' ? '.' : ''}`}\n </Text>\n </BaseBox>\n )}\n <ListItemContentChildren size={size}>{validChildItem}</ListItemContentChildren>\n </BaseBox>\n {childList}\n </StyledListItem>\n );\n};\n\nconst ListItem = assignWithoutSideEffects(_ListItem, { componentId: MetaConstants.ListItem });\n\nexport { ListItem };\nexport type { ListItemProps };\n"],"names":["StyledListItem","styled","ListItemElement","withConfig","displayName","componentId","_ref","level","theme","variant","hasIcon","marginLeft","getIn","listItemMarginLeft","concat","ListItemContentChildren","_ref2","children","size","getPlatformType","_jsx","BaseBox","display","flexDirection","flexWrap","map","child","index","Text","_ListItem","_ref3","_ref4","Icon","icon","listItemIconColor","iconColor","_itemNumber","testID","_useListContext","useListContext","ListContextIcon","_useTheme","useTheme","platform","ItemIcon","iconColorToken","throwBladeError","message","moduleName","childrenArray","React","Children","toArray","validChildItem","filter","getComponentId","MetaConstants","List","isValidAllowedChildren","ListItemLink","ListItemText","ListItemCode","childList","Boolean","_jsxs","_objectSpread","metaAttribute","name","ListItem","alignItems","marginBottom","listItemMarginBottom","marginRight","listItemBulletMarginRight","marginTop","listItemBulletMarginTop","alignSelf","color","UnorderedItemIcon","width","listItemOrderedBulletBoxSize","height","flexShrink","justifyContent","borderRadius","undefined","backgroundColor","colors","getOrderedListItemBullet","itemNumber","assignWithoutSideEffects"],"mappings":"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"}
1
+ {"version":3,"file":"ListItem.js","sources":["../../../../../../src/components/List/ListItem.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport React from 'react';\nimport { useListContext } from './ListContext';\nimport { UnorderedItemIcon } from './ListItemIcons';\nimport { ListItemElement } from './ListItemElement';\nimport {\n listItemBulletMarginRight,\n listItemBulletMarginTop,\n listItemOrderedBulletBoxSize,\n listItemMarginBottom,\n listItemMarginLeft,\n} from './listTokens';\nimport type { ListProps } from './List';\nimport { getOrderedListItemBullet } from './getOrderedListItemBullet';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Text } from '~components/Typography';\nimport type { IconComponent } from '~components/Icons';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { TestID } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { getPlatformType } from '~utils/getPlatformType';\nimport { throwBladeError } from '~utils/logger';\n\ntype ListItemProps = {\n /**\n * Children to be rendered for ListItem. This can be a text, ListItemLink or another List.\n *\n */\n children: React.ReactNode;\n /**\n * Icon to be rendered for a ListItem's bullet.\n *\n */\n icon?: IconComponent;\n /**\n * Icon color of the ListItem's bullet.\n *\n */\n iconColor?: ListProps['iconColor'];\n /**\n * This is a private prop to be used only for internal logic purposes.\n *\n */\n _itemNumber?: undefined;\n} & TestID;\n\nconst StyledListItem = styled(ListItemElement)<{\n level?: number;\n variant: NonNullable<ListProps['variant']>;\n hasIcon: boolean;\n}>(({ level, theme, variant, hasIcon }) => ({\n marginLeft: level\n ? getIn(\n theme,\n listItemMarginLeft[\n `${variant}${variant === 'unordered' && hasIcon ? 'WithIcon' : ''}` as NonNullable<\n ListProps['variant'] | 'unorderedWithIcon'\n >\n ][level],\n )\n : 0,\n}));\n\nconst ListItemContentChildren = ({\n children,\n size,\n}: {\n children: React.ReactNode[];\n size: NonNullable<ListProps['size']>;\n}): React.ReactElement => {\n /* Having a <View><Text>...</Text><View/> inside <Text /> breaks vertical alignment. Issue: https://github.com/facebook/react-native/issues/31955\n As a workaround, we wrap individual strings in their own <Text /> and handle alignment with a parent <View> (BaseBox).\n */\n return getPlatformType() === 'react-native' ? (\n <BaseBox display=\"flex\" flexDirection=\"row\" flexWrap=\"wrap\">\n {children.map((child, index) => {\n if (typeof child === 'string') {\n return (\n <Text key={index} variant=\"body\" size={size}>\n {child}\n </Text>\n );\n }\n return child;\n })}\n </BaseBox>\n ) : (\n <Text variant=\"body\" size={size}>\n {children}\n </Text>\n );\n};\n\nconst _ListItem = ({\n children,\n icon: Icon,\n iconColor: listItemIconColor,\n _itemNumber,\n testID,\n}: ListItemProps): React.ReactElement => {\n const { level, size, icon: ListContextIcon, variant, iconColor } = useListContext();\n const { theme, platform } = useTheme();\n const ItemIcon = Icon ?? ListContextIcon;\n const iconColorToken = listItemIconColor ?? iconColor ?? 'surface.icon.gray.muted';\n\n if (__DEV__) {\n if (level && level > 3) {\n throwBladeError({\n message: 'List Nesting is allowed only upto 3 levels.',\n moduleName: 'List',\n });\n }\n }\n\n const childrenArray = React.Children.toArray(children);\n\n // Get children that are not a List component and are valid allowed children\n const validChildItem = childrenArray.filter((child) => {\n if (getComponentId(child) === MetaConstants.List) return null;\n\n if (\n typeof child === 'string' ||\n typeof child === 'number' ||\n isValidAllowedChildren(child, MetaConstants.ListItemLink) ||\n isValidAllowedChildren(child, MetaConstants.ListItemText) ||\n isValidAllowedChildren(child, MetaConstants.ListItemCode)\n ) {\n return child;\n } else if (__DEV__) {\n throwBladeError({\n message: `You can only pass a List, ListItemLink, ListItemCode, ListItemText or a string as a child to ListItem.`,\n moduleName: 'ListItem',\n });\n }\n return null;\n });\n // Get child that is a List component\n const childList = childrenArray.filter((child) =>\n getComponentId(child) === MetaConstants.List ? child : null,\n );\n const hasIcon = Boolean(ItemIcon);\n\n return (\n <StyledListItem\n level={level}\n variant={variant}\n hasIcon={hasIcon}\n {...metaAttribute({ name: MetaConstants.ListItem, testID })}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginBottom={listItemMarginBottom}\n >\n {variant === 'unordered' ? (\n <BaseBox\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={\n listItemBulletMarginTop[`${variant}${hasIcon ? 'WithIcon' : ''}`][platform][size]\n }\n display=\"flex\"\n alignSelf=\"flex-start\"\n >\n {ItemIcon ? (\n <ItemIcon size={size} color={iconColorToken} />\n ) : (\n <UnorderedItemIcon level={level} />\n )}\n </BaseBox>\n ) : (\n <BaseBox\n width={listItemOrderedBulletBoxSize[variant][platform][size]}\n height={listItemOrderedBulletBoxSize[variant][platform][size]}\n marginRight={listItemBulletMarginRight[variant]}\n marginTop={listItemBulletMarginTop[variant][platform][size]}\n display=\"flex\"\n flexShrink={0}\n justifyContent=\"center\"\n alignSelf=\"flex-start\"\n alignItems=\"center\"\n borderRadius={variant === 'ordered-filled' ? 'max' : undefined}\n backgroundColor={\n variant === 'ordered-filled'\n ? getIn(theme.colors, 'feedback.background.neutral.subtle')\n : undefined\n }\n >\n <Text\n variant=\"body\"\n color=\"surface.text.gray.muted\"\n size={variant === 'ordered' ? size : 'xsmall'}\n >\n {`${getOrderedListItemBullet({\n itemNumber: _itemNumber ?? 1,\n level: level ?? 1,\n })}${variant === 'ordered' ? '.' : ''}`}\n </Text>\n </BaseBox>\n )}\n <ListItemContentChildren size={size}>{validChildItem}</ListItemContentChildren>\n </BaseBox>\n {childList}\n </StyledListItem>\n );\n};\n\nconst ListItem = assignWithoutSideEffects(_ListItem, { componentId: MetaConstants.ListItem });\n\nexport { ListItem };\nexport type { ListItemProps };\n"],"names":["StyledListItem","styled","ListItemElement","withConfig","displayName","componentId","_ref","level","theme","variant","hasIcon","marginLeft","getIn","listItemMarginLeft","concat","ListItemContentChildren","_ref2","children","size","getPlatformType","_jsx","BaseBox","display","flexDirection","flexWrap","map","child","index","Text","_ListItem","_ref3","_ref4","Icon","icon","listItemIconColor","iconColor","_itemNumber","testID","_useListContext","useListContext","ListContextIcon","_useTheme","useTheme","platform","ItemIcon","iconColorToken","throwBladeError","message","moduleName","childrenArray","React","Children","toArray","validChildItem","filter","getComponentId","MetaConstants","List","isValidAllowedChildren","ListItemLink","ListItemText","ListItemCode","childList","Boolean","_jsxs","_objectSpread","metaAttribute","name","ListItem","alignItems","marginBottom","listItemMarginBottom","marginRight","listItemBulletMarginRight","marginTop","listItemBulletMarginTop","alignSelf","color","UnorderedItemIcon","width","listItemOrderedBulletBoxSize","height","flexShrink","justifyContent","borderRadius","undefined","backgroundColor","colors","getOrderedListItemBullet","itemNumber","assignWithoutSideEffects"],"mappings":"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"}
@@ -27,10 +27,10 @@ import { makeSize } from '../../utils/makeSize/makeSize.js';
27
27
  import useTheme from '../BladeProvider/useTheme.js';
28
28
  import { logger } from '../../utils/logger/logger.js';
29
29
  import { Box } from '../Box/Box.js';
30
- import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
31
30
  import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
32
31
  import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
33
32
  import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
33
+ import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
34
34
 
35
35
  var _excluded = ["isOpen", "children", "onDismiss", "initialFocusRef", "size", "accessibilityLabel", "zIndex"];
36
36
  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; }
@@ -110,18 +110,17 @@ var Modal = function Modal(_ref2) {
110
110
  initialFocus: initialFocusRef !== null && initialFocusRef !== void 0 ? initialFocusRef : defaultInitialFocusRef,
111
111
  context: context,
112
112
  modal: true,
113
- children: /*#__PURE__*/jsxs(Box, _objectSpread(_objectSpread({
113
+ children: /*#__PURE__*/jsxs(Box, {
114
114
  zIndex: zIndex,
115
115
  position: "fixed",
116
- testID: "modal-wrapper"
117
- }, makeAnalyticsAttribute(rest)), {}, {
118
- children: [/*#__PURE__*/jsx(ModalBackdrop, {}), /*#__PURE__*/jsx(ModalContent, _objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
116
+ testID: "modal-wrapper",
117
+ children: [/*#__PURE__*/jsx(ModalBackdrop, {}), /*#__PURE__*/jsx(ModalContent, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
119
118
  name: MetaConstants.Modal
120
119
  })), makeAccessible({
121
120
  role: 'dialog',
122
121
  modal: true,
123
122
  label: accessibilityLabel
124
- })), {}, {
123
+ })), makeAnalyticsAttribute(rest)), {}, {
125
124
  maxWidth: size === 'full' ? '100%' : makeSize(modalMaxWidth[size]),
126
125
  minWidth: makeSize(modalMinWidth),
127
126
  maxHeight: modalMaxHeight[size],
@@ -139,7 +138,7 @@ var Modal = function Modal(_ref2) {
139
138
  overflow: "hidden",
140
139
  children: children
141
140
  }))]
142
- }))
141
+ })
143
142
  }) : null
144
143
  })
145
144
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.web.js","sources":["../../../../../../src/components/Modal/Modal.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport usePresence from 'use-presence';\nimport { ModalHeader } from './ModalHeader';\nimport type { ModalHeaderProps } from './ModalHeader';\nimport { ModalFooter } from './ModalFooter';\nimport type { ModalFooterProps } from './ModalFooter';\nimport { ModalBody } from './ModalBody';\nimport type { ModalBodyProps } from './ModalBody';\nimport { ModalContext } from './ModalContext';\nimport { ModalBackdrop } from './ModalBackdrop';\nimport {\n modalBorderRadius,\n modalMaxHeight,\n modalMaxWidth,\n modalMinWidth,\n modalResponsiveScreenGap,\n modalMargin,\n} from './modalTokens';\nimport type { ModalProps } from './types';\nimport { castWebType, makeMotionTime, makeSize } from '~utils';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { Box } from '~components/Box';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { logger } from '~utils/logger';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst ModalContent = styled(BaseBox)<{ isVisible: boolean; size: NonNullable<ModalProps['size']> }>(\n ({ isVisible, theme, size }) => {\n const scale = isVisible ? 1 : 0.9;\n const transform = size !== 'full' ? `translate(-50%, -50%) scale(${scale})` : ``;\n\n return css`\n box-shadow: ${theme.elevation.highRaised};\n opacity: ${isVisible ? 1 : 0};\n position: fixed;\n transform: ${transform};\n transition-property: opacity, transform;\n transition-duration: ${castWebType(makeMotionTime(theme.motion.duration.moderate))};\n transition-timing-function: ${isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit)};\n\n ${size === 'full' &&\n css`\n top: ${makeSize(modalMargin[size])};\n left: ${makeSize(modalMargin[size])};\n right: ${makeSize(modalMargin[size])};\n bottom: ${makeSize(modalMargin[size])};\n `}\n `;\n },\n);\n\nconst Modal = ({\n isOpen = false,\n children,\n onDismiss,\n initialFocusRef,\n size = 'small',\n accessibilityLabel,\n zIndex = componentZIndices.modal,\n ...rest\n}: ModalProps): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { isMounted, isVisible } = usePresence(isOpen, {\n transitionDuration: theme.motion.duration.moderate,\n initialEnter: true,\n });\n\n // Warn consumer if modal is opened on mobile\n useEffect(() => {\n if (__DEV__) {\n if (platform === 'onMobile') {\n logger({\n message: 'Modal is not supported on mobile devices. Please use BottomSheet instead.',\n moduleName: 'Modal',\n type: 'warn',\n });\n }\n }\n }, [platform]);\n\n // required by floating ui to handle focus\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n const defaultInitialFocusRef = React.useRef<any>(null);\n\n const modalContext = React.useMemo(\n () => ({\n isOpen,\n close: onDismiss,\n defaultInitialFocusRef,\n isVisible,\n }),\n [isOpen, onDismiss, defaultInitialFocusRef, isVisible],\n );\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n // close modal on escape key press\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n };\n\n return (\n <FloatingPortal>\n <ModalContext.Provider value={modalContext}>\n {isMounted ? (\n <FloatingFocusManager\n returnFocus\n initialFocus={initialFocusRef ?? defaultInitialFocusRef}\n context={context}\n modal={true}\n >\n <Box\n zIndex={zIndex}\n position=\"fixed\"\n testID=\"modal-wrapper\"\n {...makeAnalyticsAttribute(rest)}\n >\n <ModalBackdrop />\n <ModalContent\n {...metaAttribute({\n name: MetaConstants.Modal,\n })}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n maxWidth={size === 'full' ? '100%' : makeSize(modalMaxWidth[size])}\n minWidth={makeSize(modalMinWidth)}\n maxHeight={modalMaxHeight[size]}\n width={\n size === 'full'\n ? `calc(100vw - ${makeSize(modalMargin[size] * 2)})`\n : `calc(100vw - ${makeSize(modalResponsiveScreenGap)})`\n }\n borderRadius={modalBorderRadius}\n backgroundColor=\"popup.background.subtle\"\n display=\"flex\"\n flexDirection=\"column\"\n top=\"50%\"\n left=\"50%\"\n onKeyDown={handleKeyDown}\n isVisible={isVisible}\n size={size}\n ref={refs.setFloating}\n overflow=\"hidden\"\n >\n {children}\n </ModalContent>\n </Box>\n </FloatingFocusManager>\n ) : null}\n </ModalContext.Provider>\n </FloatingPortal>\n );\n};\n\nexport { Modal, ModalHeader, ModalFooter, ModalBody };\nexport type { ModalProps, ModalHeaderProps, ModalFooterProps, ModalBodyProps };\n"],"names":["ModalContent","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","theme","size","scale","transform","concat","css","elevation","highRaised","castWebType","makeMotionTime","motion","duration","moderate","easing","entrance","exit","makeSize","modalMargin","Modal","_ref2","_ref2$isOpen","isOpen","children","onDismiss","initialFocusRef","_ref2$size","accessibilityLabel","_ref2$zIndex","zIndex","componentZIndices","modal","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_usePresence","usePresence","transitionDuration","initialEnter","isMounted","useEffect","logger","message","moduleName","type","_useFloating","useFloating","open","refs","context","defaultInitialFocusRef","React","useRef","modalContext","useMemo","close","handleKeyDown","event","key","code","_jsx","FloatingPortal","ModalContext","Provider","value","FloatingFocusManager","returnFocus","initialFocus","_jsxs","Box","_objectSpread","position","testID","makeAnalyticsAttribute","ModalBackdrop","metaAttribute","name","MetaConstants","makeAccessible","role","label","maxWidth","modalMaxWidth","minWidth","modalMinWidth","maxHeight","modalMaxHeight","width","modalResponsiveScreenGap","borderRadius","modalBorderRadius","backgroundColor","display","flexDirection","top","left","onKeyDown","ref","setFloating","overflow"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.web.js","sources":["../../../../../../src/components/Modal/Modal.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport usePresence from 'use-presence';\nimport { ModalHeader } from './ModalHeader';\nimport type { ModalHeaderProps } from './ModalHeader';\nimport { ModalFooter } from './ModalFooter';\nimport type { ModalFooterProps } from './ModalFooter';\nimport { ModalBody } from './ModalBody';\nimport type { ModalBodyProps } from './ModalBody';\nimport { ModalContext } from './ModalContext';\nimport { ModalBackdrop } from './ModalBackdrop';\nimport {\n modalBorderRadius,\n modalMaxHeight,\n modalMaxWidth,\n modalMinWidth,\n modalResponsiveScreenGap,\n modalMargin,\n} from './modalTokens';\nimport type { ModalProps } from './types';\nimport { castWebType, makeMotionTime, makeSize } from '~utils';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { Box } from '~components/Box';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { logger } from '~utils/logger';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst ModalContent = styled(BaseBox)<{ isVisible: boolean; size: NonNullable<ModalProps['size']> }>(\n ({ isVisible, theme, size }) => {\n const scale = isVisible ? 1 : 0.9;\n const transform = size !== 'full' ? `translate(-50%, -50%) scale(${scale})` : ``;\n\n return css`\n box-shadow: ${theme.elevation.highRaised};\n opacity: ${isVisible ? 1 : 0};\n position: fixed;\n transform: ${transform};\n transition-property: opacity, transform;\n transition-duration: ${castWebType(makeMotionTime(theme.motion.duration.moderate))};\n transition-timing-function: ${isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit)};\n\n ${size === 'full' &&\n css`\n top: ${makeSize(modalMargin[size])};\n left: ${makeSize(modalMargin[size])};\n right: ${makeSize(modalMargin[size])};\n bottom: ${makeSize(modalMargin[size])};\n `}\n `;\n },\n);\n\nconst Modal = ({\n isOpen = false,\n children,\n onDismiss,\n initialFocusRef,\n size = 'small',\n accessibilityLabel,\n zIndex = componentZIndices.modal,\n ...rest\n}: ModalProps): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { isMounted, isVisible } = usePresence(isOpen, {\n transitionDuration: theme.motion.duration.moderate,\n initialEnter: true,\n });\n\n // Warn consumer if modal is opened on mobile\n useEffect(() => {\n if (__DEV__) {\n if (platform === 'onMobile') {\n logger({\n message: 'Modal is not supported on mobile devices. Please use BottomSheet instead.',\n moduleName: 'Modal',\n type: 'warn',\n });\n }\n }\n }, [platform]);\n\n // required by floating ui to handle focus\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n const defaultInitialFocusRef = React.useRef<any>(null);\n\n const modalContext = React.useMemo(\n () => ({\n isOpen,\n close: onDismiss,\n defaultInitialFocusRef,\n isVisible,\n }),\n [isOpen, onDismiss, defaultInitialFocusRef, isVisible],\n );\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n // close modal on escape key press\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n };\n\n return (\n <FloatingPortal>\n <ModalContext.Provider value={modalContext}>\n {isMounted ? (\n <FloatingFocusManager\n returnFocus\n initialFocus={initialFocusRef ?? defaultInitialFocusRef}\n context={context}\n modal={true}\n >\n <Box zIndex={zIndex} position=\"fixed\" testID=\"modal-wrapper\">\n <ModalBackdrop />\n <ModalContent\n {...metaAttribute({\n name: MetaConstants.Modal,\n })}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n {...makeAnalyticsAttribute(rest)}\n maxWidth={size === 'full' ? '100%' : makeSize(modalMaxWidth[size])}\n minWidth={makeSize(modalMinWidth)}\n maxHeight={modalMaxHeight[size]}\n width={\n size === 'full'\n ? `calc(100vw - ${makeSize(modalMargin[size] * 2)})`\n : `calc(100vw - ${makeSize(modalResponsiveScreenGap)})`\n }\n borderRadius={modalBorderRadius}\n backgroundColor=\"popup.background.subtle\"\n display=\"flex\"\n flexDirection=\"column\"\n top=\"50%\"\n left=\"50%\"\n onKeyDown={handleKeyDown}\n isVisible={isVisible}\n size={size}\n ref={refs.setFloating}\n overflow=\"hidden\"\n >\n {children}\n </ModalContent>\n </Box>\n </FloatingFocusManager>\n ) : null}\n </ModalContext.Provider>\n </FloatingPortal>\n );\n};\n\nexport { Modal, ModalHeader, ModalFooter, ModalBody };\nexport type { ModalProps, ModalHeaderProps, ModalFooterProps, ModalBodyProps };\n"],"names":["ModalContent","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","theme","size","scale","transform","concat","css","elevation","highRaised","castWebType","makeMotionTime","motion","duration","moderate","easing","entrance","exit","makeSize","modalMargin","Modal","_ref2","_ref2$isOpen","isOpen","children","onDismiss","initialFocusRef","_ref2$size","accessibilityLabel","_ref2$zIndex","zIndex","componentZIndices","modal","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_usePresence","usePresence","transitionDuration","initialEnter","isMounted","useEffect","logger","message","moduleName","type","_useFloating","useFloating","open","refs","context","defaultInitialFocusRef","React","useRef","modalContext","useMemo","close","handleKeyDown","event","key","code","_jsx","FloatingPortal","ModalContext","Provider","value","FloatingFocusManager","returnFocus","initialFocus","_jsxs","Box","position","testID","ModalBackdrop","_objectSpread","metaAttribute","name","MetaConstants","makeAccessible","role","label","makeAnalyticsAttribute","maxWidth","modalMaxWidth","minWidth","modalMinWidth","maxHeight","modalMaxHeight","width","modalResponsiveScreenGap","borderRadius","modalBorderRadius","backgroundColor","display","flexDirection","top","left","onKeyDown","ref","setFloating","overflow"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAMA,YAAY,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAClC,CAAA,CAAA,UAAAC,IAAA,EAAgC;AAAA,EAAA,IAA7BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI,CAAA;AACvB,EAAA,IAAMC,KAAK,GAAGH,SAAS,GAAG,CAAC,GAAG,GAAG,CAAA;EACjC,IAAMI,SAAS,GAAGF,IAAI,KAAK,MAAM,GAAAG,8BAAAA,CAAAA,MAAA,CAAkCF,KAAK,EAAQ,GAAA,CAAA,GAAA,EAAA,CAAA;AAEhF,EAAA,OAAOG,GAAG,CACML,CAAAA,aAAAA,EAAAA,WAAAA,EAAAA,4BAAAA,EAAAA,6DAAAA,EAAAA,8BAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,CAACM,SAAS,CAACC,UAAU,EAC7BR,SAAS,GAAG,CAAC,GAAG,CAAC,EAEfI,SAAS,EAECK,WAAW,CAACC,cAAc,CAACT,KAAK,CAACU,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAAC,CAAC,EACpDb,SAAS,GACnCS,WAAW,CAACR,KAAK,CAACU,MAAM,CAACG,MAAM,CAACC,QAAQ,CAAC,GACzCN,WAAW,CAACR,KAAK,CAACU,MAAM,CAACG,MAAM,CAACE,IAAI,CAAC,EAEvCd,IAAI,KAAK,MAAM,IACjBI,GAAG,CAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,GAAA,CAAA,EACMW,QAAQ,CAACC,WAAW,CAAChB,IAAI,CAAC,CAAC,EAC1Be,QAAQ,CAACC,WAAW,CAAChB,IAAI,CAAC,CAAC,EAC1Be,QAAQ,CAACC,WAAW,CAAChB,IAAI,CAAC,CAAC,EAC1Be,QAAQ,CAACC,WAAW,CAAChB,IAAI,CAAC,CAAC,CACtC,CAAA,CAAA;AAEL,CAAC,CACF,CAAA;AAED,IAAMiB,KAAK,GAAG,SAARA,KAAKA,CAAAC,KAAA,EAS2B;AAAA,EAAA,IAAAC,YAAA,GAAAD,KAAA,CARpCE,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IACdE,QAAQ,GAAAH,KAAA,CAARG,QAAQ;IACRC,SAAS,GAAAJ,KAAA,CAATI,SAAS;IACTC,eAAe,GAAAL,KAAA,CAAfK,eAAe;IAAAC,UAAA,GAAAN,KAAA,CACflB,IAAI;AAAJA,IAAAA,IAAI,GAAAwB,UAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,UAAA;IACdC,kBAAkB,GAAAP,KAAA,CAAlBO,kBAAkB;IAAAC,YAAA,GAAAR,KAAA,CAClBS,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAA,KAAA,CAAA,GAAGE,iBAAiB,CAACC,KAAK,GAAAH,YAAA;AAC7BI,IAAAA,IAAI,GAAAC,wBAAA,CAAAb,KAAA,EAAAc,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,SAAA,GAA4BC,QAAQ,EAAE;IAA9BnC,KAAK,GAAAkC,SAAA,CAALlC,KAAK;IAAEoC,QAAQ,GAAAF,SAAA,CAARE,QAAQ,CAAA;AACvB,EAAA,IAAAC,YAAA,GAAiCC,WAAW,CAACjB,MAAM,EAAE;AACnDkB,MAAAA,kBAAkB,EAAEvC,KAAK,CAACU,MAAM,CAACC,QAAQ,CAACC,QAAQ;AAClD4B,MAAAA,YAAY,EAAE,IAAA;AAChB,KAAC,CAAC;IAHMC,SAAS,GAAAJ,YAAA,CAATI,SAAS;IAAE1C,SAAS,GAAAsC,YAAA,CAATtC,SAAS,CAAA;;AAK5B;AACA2C,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAI,IAAO,EAAE;MACX,IAAIN,QAAQ,KAAK,UAAU,EAAE;AAC3BO,QAAAA,MAAM,CAAC;AACLC,UAAAA,OAAO,EAAE,2EAA2E;AACpFC,UAAAA,UAAU,EAAE,OAAO;AACnBC,UAAAA,IAAI,EAAE,MAAA;AACR,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAACV,QAAQ,CAAC,CAAC,CAAA;;AAEd;EACA,IAAAW,YAAA,GAA0BC,WAAW,CAAC;AACpCC,MAAAA,IAAI,EAAER,SAAAA;AACR,KAAC,CAAC;IAFMS,IAAI,GAAAH,YAAA,CAAJG,IAAI;IAAEC,OAAO,GAAAJ,YAAA,CAAPI,OAAO,CAAA;AAIrB,EAAA,IAAMC,sBAAsB,GAAGC,cAAK,CAACC,MAAM,CAAM,IAAI,CAAC,CAAA;AAEtD,EAAA,IAAMC,YAAY,GAAGF,cAAK,CAACG,OAAO,CAChC,YAAA;IAAA,OAAO;AACLnC,MAAAA,MAAM,EAANA,MAAM;AACNoC,MAAAA,KAAK,EAAElC,SAAS;AAChB6B,MAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBrD,MAAAA,SAAS,EAATA,SAAAA;KACD,CAAA;GAAC,EACF,CAACsB,MAAM,EAAEE,SAAS,EAAE6B,sBAAsB,EAAErD,SAAS,CACvD,CAAC,CAAA;AACD,EAAA,IAAM2D,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAA0B,EAAW;AAC1D;IACA,IAAI,CAAAA,KAAK,KAALA,IAAAA,IAAAA,KAAK,uBAALA,KAAK,CAAEC,GAAG,MAAK,QAAQ,IAAI,CAAAD,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEE,IAAI,MAAK,QAAQ,EAAE;AACvDtC,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;GACD,CAAA;EAED,oBACEuC,GAAA,CAACC,cAAc,EAAA;AAAAzC,IAAAA,QAAA,eACbwC,GAAA,CAACE,YAAY,CAACC,QAAQ,EAAA;AAACC,MAAAA,KAAK,EAAEX,YAAa;AAAAjC,MAAAA,QAAA,EACxCmB,SAAS,gBACRqB,GAAA,CAACK,oBAAoB,EAAA;QACnBC,WAAW,EAAA,IAAA;AACXC,QAAAA,YAAY,EAAE7C,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI4B,sBAAuB;AACxDD,QAAAA,OAAO,EAAEA,OAAQ;AACjBrB,QAAAA,KAAK,EAAE,IAAK;QAAAR,QAAA,eAEZgD,IAAA,CAACC,GAAG,EAAA;AAAC3C,UAAAA,MAAM,EAAEA,MAAO;AAAC4C,UAAAA,QAAQ,EAAC,OAAO;AAACC,UAAAA,MAAM,EAAC,eAAe;UAAAnD,QAAA,EAAA,cAC1DwC,GAAA,CAACY,aAAa,IAAE,CAAC,eACjBZ,GAAA,CAACtE,YAAY,EAAAmF,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA,EAAA,EACPC,aAAa,CAAC;YAChBC,IAAI,EAAEC,aAAa,CAAC5D,KAAAA;WACrB,CAAC,CACE6D,EAAAA,cAAc,CAAC;AACjBC,YAAAA,IAAI,EAAE,QAAQ;AACdlD,YAAAA,KAAK,EAAE,IAAI;AACXmD,YAAAA,KAAK,EAAEvD,kBAAAA;AACT,WAAC,CAAC,CAAA,EACEwD,sBAAsB,CAACnD,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;AAChCoD,YAAAA,QAAQ,EAAElF,IAAI,KAAK,MAAM,GAAG,MAAM,GAAGe,QAAQ,CAACoE,aAAa,CAACnF,IAAI,CAAC,CAAE;AACnEoF,YAAAA,QAAQ,EAAErE,QAAQ,CAACsE,aAAa,CAAE;AAClCC,YAAAA,SAAS,EAAEC,cAAc,CAACvF,IAAI,CAAE;YAChCwF,KAAK,EACHxF,IAAI,KAAK,MAAM,mBAAAG,MAAA,CACKY,QAAQ,CAACC,WAAW,CAAChB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAAG,GAAAA,CAAAA,GAAAA,eAAAA,CAAAA,MAAA,CAC/BY,QAAQ,CAAC0E,wBAAwB,CAAC,EACvD,GAAA,CAAA;AACDC,YAAAA,YAAY,EAAEC,iBAAkB;AAChCC,YAAAA,eAAe,EAAC,yBAAyB;AACzCC,YAAAA,OAAO,EAAC,MAAM;AACdC,YAAAA,aAAa,EAAC,QAAQ;AACtBC,YAAAA,GAAG,EAAC,KAAK;AACTC,YAAAA,IAAI,EAAC,KAAK;AACVC,YAAAA,SAAS,EAAExC,aAAc;AACzB3D,YAAAA,SAAS,EAAEA,SAAU;AACrBE,YAAAA,IAAI,EAAEA,IAAK;YACXkG,GAAG,EAAEjD,IAAI,CAACkD,WAAY;AACtBC,YAAAA,QAAQ,EAAC,QAAQ;AAAA/E,YAAAA,QAAA,EAEhBA,QAAAA;AAAQ,WAAA,CACG,CAAC,CAAA;SACZ,CAAA;AAAC,OACc,CAAC,GACrB,IAAA;KACiB,CAAA;AAAC,GACV,CAAC,CAAA;AAErB;;;;"}
@@ -55,7 +55,8 @@ var _PreviewHeader = function _PreviewHeader(_ref) {
55
55
  children: /*#__PURE__*/jsx(Button, {
56
56
  icon: isFullScreen ? FullScreenExitIcon : FullScreenEnterIcon,
57
57
  variant: "tertiary",
58
- onClick: _onFullScreen
58
+ onClick: _onFullScreen,
59
+ accessibilityLabel: isFullScreen ? 'Exit Full Screen' : 'Enter Full Screen'
59
60
  })
60
61
  }), trailing]
61
62
  });
@@ -154,7 +155,7 @@ var _PreviewFooter = function _PreviewFooter(PreviewFooterProps) {
154
155
  icon: ZoomInIcon,
155
156
  onClick: handleZoomIn,
156
157
  variant: "tertiary",
157
- "aria-label": "Zoom in",
158
+ accessibilityLabel: "Zoom In",
158
159
  isDisabled: zoom >= 8
159
160
  }), /*#__PURE__*/jsxs(Text, {
160
161
  size: "medium",
@@ -163,7 +164,7 @@ var _PreviewFooter = function _PreviewFooter(PreviewFooterProps) {
163
164
  icon: ZoomOutIcon,
164
165
  onClick: handleZoomOut,
165
166
  variant: "tertiary",
166
- "aria-label": "Zoom out",
167
+ accessibilityLabel: "Zoom Out",
167
168
  isDisabled: zoom <= 0.1
168
169
  }), /*#__PURE__*/jsx(Button, {
169
170
  icon: RefreshIcon,
@@ -171,7 +172,7 @@ var _PreviewFooter = function _PreviewFooter(PreviewFooterProps) {
171
172
  return handleReset();
172
173
  },
173
174
  variant: "tertiary",
174
- "aria-label": "Reset zoom"
175
+ accessibilityLabel: "Reset Zoom"
175
176
  })]
176
177
  }) : /*#__PURE__*/jsxs(BaseBox, {
177
178
  display: "flex",
@@ -182,18 +183,18 @@ var _PreviewFooter = function _PreviewFooter(PreviewFooterProps) {
182
183
  children: [/*#__PURE__*/jsx(Button, {
183
184
  icon: ZoomInIcon,
184
185
  onClick: handleZoomIn,
185
- "aria-label": "Zoom in"
186
+ accessibilityLabel: "Zoom In"
186
187
  }), /*#__PURE__*/jsx(Button, {
187
188
  icon: ZoomOutIcon,
188
189
  onClick: handleZoomOut,
189
- "aria-label": "Zoom out"
190
+ accessibilityLabel: "Zoom Out"
190
191
  })]
191
192
  }), /*#__PURE__*/jsx(Button, {
192
193
  icon: RefreshIcon,
193
194
  onClick: function onClick() {
194
195
  return handleReset();
195
196
  },
196
- "aria-label": "Reset zoom",
197
+ accessibilityLabel: "Reset Zoom",
197
198
  variant: "tertiary"
198
199
  })]
199
200
  })