@razorpay/blade 12.31.5 → 12.32.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 (65) hide show
  1. package/build/lib/native/components/Input/BaseInput/BaseInput.js +2 -1
  2. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  3. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js +1 -1
  4. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  5. package/build/lib/native/components/InputGroup/InputGroup.native.js +12 -0
  6. package/build/lib/native/components/InputGroup/InputGroup.native.js.map +1 -0
  7. package/build/lib/native/components/InputGroup/InputGroupContext.js +6 -0
  8. package/build/lib/native/components/InputGroup/InputGroupContext.js.map +1 -0
  9. package/build/lib/native/components/InputGroup/InputRow.native.js +12 -0
  10. package/build/lib/native/components/InputGroup/InputRow.native.js.map +1 -0
  11. package/build/lib/native/components/index.js +2 -0
  12. package/build/lib/native/components/index.js.map +1 -1
  13. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  14. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  15. package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +2 -1
  16. package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
  17. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +23 -16
  18. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  19. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js +4 -1
  20. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  21. package/build/lib/web/development/components/InputGroup/InputGroup.web.js +139 -0
  22. package/build/lib/web/development/components/InputGroup/InputGroup.web.js.map +1 -0
  23. package/build/lib/web/development/components/InputGroup/InputGroupContext.js +12 -0
  24. package/build/lib/web/development/components/InputGroup/InputGroupContext.js.map +1 -0
  25. package/build/lib/web/development/components/InputGroup/InputRow.web.js +27 -0
  26. package/build/lib/web/development/components/InputGroup/InputRow.web.js.map +1 -0
  27. package/build/lib/web/development/components/InputGroup/StyledInputGroup.js +17 -0
  28. package/build/lib/web/development/components/InputGroup/StyledInputGroup.js.map +1 -0
  29. package/build/lib/web/development/components/InputGroup/index.js +3 -0
  30. package/build/lib/web/development/components/InputGroup/index.js.map +1 -0
  31. package/build/lib/web/development/components/Modal/Modal.web.js +0 -10
  32. package/build/lib/web/development/components/Modal/Modal.web.js.map +1 -1
  33. package/build/lib/web/development/components/index.js +3 -0
  34. package/build/lib/web/development/components/index.js.map +1 -1
  35. package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js +2 -1
  36. package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
  37. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +1 -0
  38. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  39. package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +2 -1
  40. package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
  41. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +23 -16
  42. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  43. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js +4 -1
  44. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  45. package/build/lib/web/production/components/InputGroup/InputGroup.web.js +139 -0
  46. package/build/lib/web/production/components/InputGroup/InputGroup.web.js.map +1 -0
  47. package/build/lib/web/production/components/InputGroup/InputGroupContext.js +12 -0
  48. package/build/lib/web/production/components/InputGroup/InputGroupContext.js.map +1 -0
  49. package/build/lib/web/production/components/InputGroup/InputRow.web.js +27 -0
  50. package/build/lib/web/production/components/InputGroup/InputRow.web.js.map +1 -0
  51. package/build/lib/web/production/components/InputGroup/StyledInputGroup.js +17 -0
  52. package/build/lib/web/production/components/InputGroup/StyledInputGroup.js.map +1 -0
  53. package/build/lib/web/production/components/InputGroup/index.js +3 -0
  54. package/build/lib/web/production/components/InputGroup/index.js.map +1 -0
  55. package/build/lib/web/production/components/Modal/Modal.web.js +0 -10
  56. package/build/lib/web/production/components/Modal/Modal.web.js.map +1 -1
  57. package/build/lib/web/production/components/index.js +3 -0
  58. package/build/lib/web/production/components/index.js.map +1 -1
  59. package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js +2 -1
  60. package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
  61. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +1 -0
  62. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  63. package/build/types/components/index.d.ts +644 -1
  64. package/build/types/components/index.native.d.ts +77 -1
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BaseInput.js","sources":["../../../../../../../src/components/Input/BaseInput/BaseInput.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport type { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { StyledBaseInput } from './StyledBaseInput';\nimport { BaseInputVisuals } from './BaseInputVisuals';\nimport { BaseInputWrapper } from './BaseInputWrapper';\nimport { BaseInputTagSlot } from './BaseInputTagSlot';\nimport type { InputWrapperRef } from './types';\nimport { baseInputBorderBackgroundMotion, formHintLeftLabelMarginLeft } from './baseInputTokens';\nimport type {\n FormInputLabelProps,\n FormInputValidationProps,\n FormInputHandleOnEvent,\n FormInputOnEvent,\n FormHintProps,\n} from '~components/Form';\nimport { FormHint, FormLabel } from '~components/Form';\nimport type { IconComponent } from '~components/Icons';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport {\n castWebType,\n getPlatformType,\n isReactNative,\n makeBorderSize,\n makeMotionTime,\n useBreakpoint,\n} from '~utils';\nimport type { Platform } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useFormId } from '~components/Form/useFormId';\nimport { useTheme } from '~components/BladeProvider';\nimport useInteraction from '~utils/useInteraction';\nimport type { ActionStates } from '~utils/useInteraction';\nimport type {\n FormInputHandleOnClickEvent,\n FormInputHandleOnKeyDownEvent,\n} from '~components/Form/FormTypes';\nimport type {\n BladeElementRef,\n ContainerElementType,\n DataAnalyticsAttribute,\n TestID,\n} from '~utils/types';\nimport { makeSize } from '~utils/makeSize';\nimport type { AriaAttributes } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { throwBladeError } from '~utils/logger';\nimport { announce } from '~components/LiveAnnouncer/LiveAnnouncer';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { LinkProps } from '~components/Link';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport getIn from '~utils/lodashButBetter/get';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type { MotionMetaProp } from '~components/BaseMotion';\nimport { getInnerMotionRef, getOuterMotionRef } from '~utils/getMotionRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype CommonAutoCompleteSuggestionTypes =\n | 'none'\n | 'name'\n | 'email'\n | 'username'\n | 'password'\n | 'newPassword'\n | 'oneTimeCode'\n | 'telephone'\n | 'postalCode'\n | 'countryName'\n | 'creditCardNumber'\n | 'creditCardCSC'\n | 'creditCardExpiry'\n | 'creditCardExpiryMonth'\n | 'creditCardExpiryYear';\n\ntype WebAutoCompleteSuggestionType = CommonAutoCompleteSuggestionTypes | 'on';\n\ntype BaseInputCommonProps = FormInputLabelProps &\n DataAnalyticsAttribute &\n FormInputValidationProps & {\n /**\n * Determines if it needs to be rendered as input, textarea or button\n */\n as?: 'input' | 'textarea' | 'button';\n /**\n * ID that will be used for accessibility\n */\n id: string;\n /**\n * Placeholder text to be displayed inside the input field\n */\n placeholder?: string;\n /**\n * Type of Input Field to be rendered.\n *\n * @default text\n */\n type?: 'text' | 'telephone' | 'email' | 'url' | 'number' | 'search' | 'password';\n /**\n * Used to set the default value of input field when it's uncontrolled\n */\n defaultValue?: string;\n /**\n * The name of the input field.\n *\n * Useful in form submissions\n */\n name?: string;\n /**\n * The callback function to be invoked when the input field gets focus\n */\n onFocus?: FormInputOnEvent;\n /**\n * The callback function to be invoked when the value of the input field changes\n */\n onChange?: FormInputOnEvent;\n /**\n * The callback function to be invoked when input is clicked\n */\n onClick?: FormInputOnEvent;\n /**\n * The callback function to be invoked when the value of the input field has any input\n */\n onInput?: FormInputOnEvent;\n /**\n * The callback function to be invoked whenever there is a keyDown event\n */\n onKeyDown?: FormInputHandleOnKeyDownEvent;\n /**\n * The callback function to be invoked when the the input field loses focus\n *\n * For React Native this will call `onEndEditing` event since we want to get the last value of the input field\n */\n onBlur?: FormInputOnEvent;\n /**\n * Ignores the blur event animation (Used in Select to ignore blur animation when item in option is clicked)\n */\n shouldIgnoreBlurAnimation?: boolean;\n /**\n * sets boolean that ignores the blur animations on baseinput\n */\n setShouldIgnoreBlurAnimation?: (shouldIgnoreBlurAnimation: boolean) => void;\n /**\n * Used to turn the input field to controlled so user can control the value\n */\n value?: string;\n /**\n * Used to disable the input field\n */\n isDisabled?: boolean;\n /**\n * If true, the input is marked as required, and `required` attribute will be added\n */\n isRequired?: boolean;\n /**\n * Icon to be shown at the start of the input field\n */\n leadingIcon?: IconComponent;\n /**\n * Prefix symbol to be displayed at the beginning of the input field. If leadingIcon is provided it'll be placed after it\n */\n prefix?: string;\n /**\n * Element to be rendered before suffix. This is decided by the component which is extending BaseInput\n *\n * eg: consumers can render a loader or they could render a clear button\n */\n trailingInteractionElement?: ReactNode;\n /**\n * Callback to be invoked when the TrailingInteractionElement is clicked\n */\n onTrailingInteractionElementClick?: () => void;\n /**\n * Element to be rendered before prefix. This is decided by the component which is extending BaseInput\n *\n * eg: consumers can render a country selector or button\n */\n leadingInteractionElement?: ReactNode;\n /**\n * Suffix symbol to be displayed at the end of the input field. If trailingIcon is provided it'll be placed before it\n */\n suffix?: string;\n /**\n * Icon to be displayed at the end of the input field\n */\n trailingIcon?: IconComponent;\n /**\n * Displays the character counter under the input field\n */\n maxCharacters?: number;\n /**\n * alignment of the text inside input field\n */\n textAlign?: 'left' | 'center' | 'right';\n /**\n * If true, focuses the input field on load\n *\n * **Note:**\n * Automatically focusing a form control can confuse visually-impaired people using screen-reading technology and people with cognitive impairments.\n * When autofocus is assigned, screen-readers \"teleport\" their user to the form control without warning them beforehand.\n */\n autoFocus?: boolean;\n /**\n * Hints the platform to display an appropriate virtual keyboard\n *\n * **Native:** Passes as is the `keyboardType` attribute\n *\n * **Web:** Passes the value to the `inputMode` attribute\n */\n keyboardType?: 'text' | 'search' | 'telephone' | 'email' | 'url' | 'decimal';\n /**\n * determines what return key to show on the keyboard of mobile devices/virtual keyboard\n * **Note**: Few values are platform dependent and might not render on all the platforms\n *\n * `default` is only available on native. it'll be mapped to `enter` for web\n * `previous` is only available on native android\n */\n keyboardReturnKeyType?: 'default' | 'go' | 'done' | 'next' | 'previous' | 'search' | 'send';\n /**\n * Element to be rendered on the trailing slot of input field label\n */\n trailingHeaderSlot?: (value?: string) => ReactNode;\n /**\n * Element to be rendered on the trailing slot of input field footer\n */\n trailingFooterSlot?: (value?: string) => ReactNode;\n /**\n * Sets the textarea's number of lines\n */\n numberOfLines?: 1 | 2 | 3 | 4 | 5;\n /**\n * Sets the accessibility label for the input\n */\n accessibilityLabel?: string;\n /**\n * Sets the id of the label\n *\n * (Useful when assigning one label to multiple elements using aria-labelledby)\n */\n labelId?: string;\n /**\n * Can be used in select to set the id of the active descendant from the listbox\n */\n activeDescendant?: string;\n /**\n * Hides the label text\n */\n hideLabelText?: boolean;\n /**\n * Hides the form hint text\n */\n hideFormHint?: boolean;\n /**\n * componentName prop sets the data-blade-component attribute name\n * for internal metric collection purposes\n */\n componentName?: string;\n /**\n * whether the input has a popup\n */\n hasPopup?: AriaAttributes['hasPopup'];\n /**\n * id of the popup\n */\n popupId?: string;\n /**\n * true if popup is in expanded state\n */\n isPopupExpanded?: boolean;\n setInputWrapperRef?: (node: ContainerElementType) => void;\n /**\n * sets the autocapitalize behavior for the input\n */\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n\n /**\n * constraints the height of input to given number rows\n *\n * When set to expandable, input takes 1 row in the begining and expands to take 3 when active\n *\n * @default 'single'\n */\n maxTagRows?: 'single' | 'multiple' | 'expandable';\n\n /**\n * A slot for adding tags to input\n */\n tags?: React.ReactElement[] | null;\n\n /**\n * Disables stripping of tags and shows all tags\n */\n showAllTags?: boolean;\n\n /**\n * State variable of active tag index\n */\n activeTagIndex?: number;\n\n /**\n * Is this input SelectInput or AutoComplete\n */\n isDropdownTrigger?: boolean;\n\n /**\n * Is the label expected to be rendered inside input?\n * Used in AutoComplete and Select when label can't exist outside\n *\n */\n isLabelInsideInput?: boolean;\n\n /**\n * State setter for active tag index\n */\n setActiveTagIndex?: (activeTagIndex: number) => void;\n /**\n * Sets the size of the input field\n * @default medium\n */\n size?: 'medium' | 'large';\n /**\n * Link button to be rendered at the end of the input field.\n * **Note:** `size` of the Link will be set to the same size as the input field, `isDisabled` will follow Input's `isDisabled`, & `variant` will be set to `button`.\n * Example:\n * ```tsx\n * trailingButton={<Link onClick={handleClick}>Apply</Link>}\n * ```\n */\n trailingButton?: React.ReactElement<LinkProps>;\n /**\n * Whether to use Text or Heading component for Input text\n * @default text\n **/\n valueComponentType?: 'text' | 'heading';\n /**\n * Whether to render the input as a table cell\n * @default true\n **/\n isTableInputCell?: boolean;\n /**\n * Hides the form hints and shows them as tooltip of trailing\n */\n showHintsAsTooltip?: boolean;\n\n role?: AriaAttributes['role'];\n\n /**\n * Tab Index of the input field\n *\n * @default undefined\n */\n tabIndex?: number;\n } & TestID &\n Platform.Select<{\n native: {\n /**\n * The callback function to be invoked when the value of the input field is submitted.\n */\n onSubmit?: FormInputOnEvent;\n /**\n * determines what autoComplete suggestion type to show\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: CommonAutoCompleteSuggestionTypes;\n };\n web: {\n /**\n * This is a react-native only prop and has no effect on web.\n */\n onSubmit?: undefined;\n /**\n * determines what autoComplete suggestion type to show\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: WebAutoCompleteSuggestionType;\n };\n }> &\n StyledPropsBlade &\n MotionMetaProp;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype BaseInputPropsWithA11yLabel = {\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 BaseInputPropsWithLabel = {\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\nexport type BaseInputProps = (BaseInputPropsWithA11yLabel | BaseInputPropsWithLabel) &\n BaseInputCommonProps;\n\nconst autoCompleteSuggestionTypeValues = [\n 'none',\n 'on',\n 'name',\n 'email',\n 'username',\n 'password',\n 'newPassword',\n 'oneTimeCode',\n 'telephone',\n 'postalCode',\n 'countryName',\n 'creditCardNumber',\n 'creditCardCSC',\n 'creditCardExpiry',\n 'creditCardExpiryMonth',\n 'creditCardExpiryYear',\n];\n\ntype OnInputKeydownTagHandlerType = (key: string | undefined) => void;\nconst useTags = (\n tags: BaseInputProps['tags'],\n activeTagIndex: number,\n setActiveTagIndex?: (activeTagIndex: number) => void,\n): {\n onInputKeydownTagHandler: OnInputKeydownTagHandlerType;\n visibleTagsCountRef: React.MutableRefObject<number>;\n} => {\n const visibleTagsCountRef = React.useRef<number>(0);\n\n React.useEffect(() => {\n if (tags && activeTagIndex >= 0 && activeTagIndex < tags.length) {\n const tagTitle = tags[activeTagIndex]?.props?.children;\n if (tagTitle) {\n announce(`Close ${tagTitle} Tag`);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeTagIndex, tags?.length]);\n\n const onTagLeft = (): void => {\n if (activeTagIndex < 0) {\n setActiveTagIndex?.(visibleTagsCountRef.current - 1);\n }\n\n if (activeTagIndex > 0) {\n setActiveTagIndex?.(activeTagIndex - 1);\n }\n };\n\n const onTagRight = (): void => {\n if (activeTagIndex < visibleTagsCountRef.current - 1) {\n setActiveTagIndex?.(activeTagIndex + 1);\n }\n };\n\n const onTagRemove = (): void => {\n if (activeTagIndex >= 0 && activeTagIndex < visibleTagsCountRef.current && tags) {\n tags[activeTagIndex].props.onDismiss({ tagIndex: activeTagIndex });\n }\n };\n\n const onInputKeydownTagHandler: OnInputKeydownTagHandlerType = (key) => {\n if (tags && tags.length > 0) {\n if (key === 'ArrowRight') {\n onTagRight();\n }\n\n if (key === 'ArrowLeft') {\n onTagLeft();\n }\n\n if (key === 'Backspace') {\n onTagRemove();\n }\n }\n };\n\n return {\n onInputKeydownTagHandler,\n visibleTagsCountRef,\n };\n};\n\nconst useInput = ({\n value,\n defaultValue,\n onClick,\n onFocus,\n onChange,\n onBlur,\n onSubmit,\n onInput,\n onKeyDown,\n onInputKeydownTagHandler,\n}: Pick<\n BaseInputProps,\n | 'value'\n | 'defaultValue'\n | 'onFocus'\n | 'onChange'\n | 'onBlur'\n | 'onInput'\n | 'onKeyDown'\n | 'onClick'\n | 'onSubmit'\n> & {\n onInputKeydownTagHandler: OnInputKeydownTagHandlerType;\n}): {\n handleOnFocus: FormInputHandleOnEvent;\n handleOnClick: FormInputHandleOnClickEvent;\n handleOnChange: FormInputHandleOnEvent;\n handleOnBlur: FormInputHandleOnEvent;\n handleOnSubmit: FormInputHandleOnEvent;\n handleOnInput: FormInputHandleOnEvent;\n handleOnKeyDown: FormInputHandleOnKeyDownEvent;\n inputValue?: string;\n} => {\n if (__DEV__) {\n if (value && defaultValue) {\n throwBladeError({\n message: `Either 'value' or 'defaultValue' shall be passed. This decides if the input field is controlled or uncontrolled`,\n moduleName: 'Input',\n });\n }\n }\n\n const [inputValue, setInputValue] = React.useState(defaultValue ?? value);\n\n const handleOnFocus: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onFocus?.({\n name,\n value: _value,\n });\n },\n [onFocus],\n );\n\n const handleOnClick: FormInputHandleOnClickEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.currentTarget.value ?? '';\n }\n\n onClick?.({\n name,\n value: _value,\n });\n },\n [onClick],\n );\n\n const handleOnSubmit: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n if (isReactNative()) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error\n //@ts-ignore need to ignore this since it will throw a TS error for web but not for native\n onSubmit?.({\n name,\n value: _value,\n });\n }\n },\n [onSubmit],\n );\n\n const handleOnBlur: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n if (getPlatformType() === 'react-native' && typeof value == 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onBlur?.({\n name,\n value: _value,\n });\n },\n [onBlur],\n );\n\n const handleOnChange: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onChange?.({\n name,\n value: _value,\n });\n setInputValue(_value);\n },\n [onChange],\n );\n\n const handleOnInput: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n if (getPlatformType() === 'react-native' && typeof value == 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onInput?.({\n name,\n value: _value,\n });\n },\n [onInput],\n );\n\n const handleOnKeyDown: FormInputHandleOnKeyDownEvent = React.useCallback(\n ({ name, key, code, event }) => {\n onInputKeydownTagHandler(key);\n onKeyDown?.({\n name,\n key,\n code,\n event,\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onKeyDown],\n );\n\n return {\n handleOnFocus,\n handleOnClick,\n handleOnChange,\n handleOnBlur,\n handleOnSubmit,\n handleOnInput,\n handleOnKeyDown,\n inputValue,\n };\n};\n\nexport const getHintType = ({\n validationState,\n hasHelpText,\n}: {\n validationState: BaseInputProps['validationState'];\n hasHelpText: boolean;\n}): FormHintProps['type'] => {\n if (validationState === 'error') {\n return 'error';\n }\n\n if (validationState === 'success') {\n return 'success';\n }\n\n if (hasHelpText) {\n return 'help';\n }\n\n return 'help';\n};\n\nconst getDescribedByElementId = ({\n validationState,\n hasErrorText,\n hasSuccessText,\n hasHelpText,\n errorTextId,\n successTextId,\n helpTextId,\n}: {\n validationState: BaseInputProps['validationState'];\n hasErrorText: boolean;\n hasSuccessText: boolean;\n hasHelpText: boolean;\n errorTextId: string;\n successTextId: string;\n helpTextId: string;\n}): string => {\n if (validationState === 'error' && hasErrorText) {\n return errorTextId;\n }\n\n if (validationState === 'success' && hasSuccessText) {\n return successTextId;\n }\n\n if (hasHelpText) {\n return helpTextId;\n }\n\n return '';\n};\n\nconst FocusRingWrapper = styled(BaseBox)<{\n currentInteraction: ActionStates;\n isTableInputCell: NonNullable<BaseInputProps['isTableInputCell']>;\n}>(({ theme, currentInteraction, isTableInputCell }) => ({\n borderRadius: makeBorderSize(\n isTableInputCell ? theme.border.radius.none : theme.border.radius.medium,\n ),\n width: '100%',\n '&:focus-within': !isTableInputCell\n ? {\n ...getFocusRingStyles({\n theme,\n }),\n transitionDuration: castWebType(\n makeMotionTime(\n getIn(\n theme.motion.duration,\n baseInputBorderBackgroundMotion[currentInteraction === 'focus' ? 'enter' : 'exit']\n .duration,\n ),\n ),\n ),\n transitionTimingFunction: castWebType(\n theme.motion.easing[\n baseInputBorderBackgroundMotion[currentInteraction === 'focus' ? 'enter' : 'exit']\n .easing\n ],\n ),\n }\n : {},\n}));\n\nconst _BaseInput: React.ForwardRefRenderFunction<BladeElementRef, BaseInputProps> = (\n {\n as = 'input',\n label,\n labelPosition = 'top',\n placeholder,\n type = 'text',\n defaultValue,\n tags,\n showAllTags = false,\n activeTagIndex = -1,\n setActiveTagIndex,\n name,\n value,\n onFocus,\n onChange,\n onInput,\n onBlur,\n onSubmit,\n onClick,\n onKeyDown,\n isDisabled,\n necessityIndicator,\n validationState,\n errorText,\n helpText,\n successText,\n isRequired,\n leadingIcon,\n prefix,\n trailingInteractionElement,\n onTrailingInteractionElementClick,\n leadingInteractionElement,\n suffix,\n trailingIcon,\n maxCharacters,\n textAlign,\n autoFocus,\n keyboardReturnKeyType,\n keyboardType,\n autoCompleteSuggestionType,\n trailingHeaderSlot,\n trailingFooterSlot,\n numberOfLines,\n id,\n componentName,\n accessibilityLabel,\n labelId,\n activeDescendant,\n hideLabelText,\n hideFormHint,\n hasPopup,\n popupId,\n isPopupExpanded,\n maxTagRows,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n autoCapitalize,\n setInputWrapperRef,\n testID,\n isDropdownTrigger,\n isLabelInsideInput,\n size = 'medium',\n trailingButton,\n valueComponentType = 'text',\n isTableInputCell = false,\n showHintsAsTooltip = false,\n _motionMeta,\n role,\n tabIndex,\n ...rest\n },\n ref,\n) => {\n const { theme } = useTheme();\n const inputRef = React.useRef<BladeElementRef>(null);\n const mergedInputRef = useMergeRefs(ref, inputRef);\n const inputWrapperRef: InputWrapperRef = React.useRef(null);\n const { onInputKeydownTagHandler, visibleTagsCountRef } = useTags(\n tags,\n activeTagIndex,\n setActiveTagIndex,\n );\n const [showAllTagsWithAnimation, setShowAllTagsWithAnimation] = React.useState(false);\n const isReactNative = getPlatformType() === 'react-native';\n const defaultRole = hasPopup ? 'combobox' : undefined;\n\n React.useEffect(() => {\n if (showAllTags) {\n setShowAllTagsWithAnimation(true);\n } else if (maxTagRows !== 'expandable') {\n setShowAllTagsWithAnimation(false);\n }\n }, [showAllTags, maxTagRows]);\n\n const {\n handleOnFocus,\n handleOnChange,\n handleOnClick,\n handleOnBlur,\n handleOnSubmit,\n handleOnInput,\n handleOnKeyDown,\n inputValue,\n } = useInput({\n defaultValue,\n value,\n onFocus,\n onClick,\n onChange,\n onBlur,\n onSubmit,\n onInput,\n onKeyDown,\n onInputKeydownTagHandler,\n });\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId(id);\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';\n const { currentInteraction, setCurrentInteraction } = useInteraction();\n const _isRequired = isRequired || necessityIndicator === 'required';\n\n const accessibilityProps = makeAccessible({\n required: Boolean(_isRequired),\n disabled: Boolean(isDisabled),\n invalid: Boolean(validationState === 'error'),\n describedBy: getDescribedByElementId({\n validationState,\n hasErrorText: Boolean(errorText),\n hasSuccessText: Boolean(successText),\n hasHelpText: Boolean(helpText),\n errorTextId,\n successTextId,\n helpTextId,\n }),\n label: accessibilityLabel,\n hasPopup,\n expanded: hasPopup ? isPopupExpanded : undefined,\n controls: hasPopup ? popupId : undefined,\n role: role ?? defaultRole,\n activeDescendant,\n });\n\n const willRenderHintText =\n Boolean(helpText) ||\n (validationState === 'success' && Boolean(successText)) ||\n (validationState === 'error' && Boolean(errorText));\n\n if (__DEV__) {\n if (\n autoCompleteSuggestionType &&\n !autoCompleteSuggestionTypeValues.includes(autoCompleteSuggestionType)\n ) {\n throwBladeError({\n message: `Expected autoCompleteSuggestionType to be one of ${autoCompleteSuggestionTypeValues.join(\n ', ',\n )} but received ${autoCompleteSuggestionType}`,\n moduleName: 'Input',\n });\n }\n }\n\n const isTextArea = as === 'textarea';\n return (\n <BaseBox\n ref={getOuterMotionRef({ _motionMeta, ref })}\n {...metaAttribute({ name: componentName, testID })}\n {...getStyledProps(rest)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n justifyContent={isLabelLeftPositioned ? 'center' : undefined}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {!hideLabelText && !isLabelInsideInput && label && (\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'column' : 'row'}\n justifyContent=\"space-between\"\n alignSelf={isTextArea ? 'flex-start' : undefined}\n marginY={isTextArea && isLabelLeftPositioned ? 'spacing.3' : 'spacing.0'}\n >\n <FormLabel\n as=\"label\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n htmlFor={inputId}\n size={size}\n >\n {label}\n </FormLabel>\n {trailingHeaderSlot?.(value ?? inputValue)}\n </BaseBox>\n )}\n <FocusRingWrapper\n currentInteraction={currentInteraction}\n isTableInputCell={isTableInputCell}\n >\n <BaseInputWrapper\n isDropdownTrigger={isDropdownTrigger}\n isTextArea={isTextArea}\n isDisabled={isDisabled}\n validationState={validationState}\n currentInteraction={currentInteraction}\n isLabelLeftPositioned={isLabelLeftPositioned}\n showAllTags={showAllTags}\n setShowAllTagsWithAnimation={setShowAllTagsWithAnimation}\n ref={(refNode) => {\n if (refNode) {\n setInputWrapperRef?.(refNode);\n inputWrapperRef.current = refNode;\n }\n }}\n maxTagRows={maxTagRows}\n size={size}\n numberOfLines={numberOfLines}\n onClick={() => {\n if (!isReactNative) {\n inputRef.current?.focus();\n }\n }}\n isTableInputCell={isTableInputCell}\n >\n <BaseInputVisuals\n size={size}\n leadingIcon={leadingIcon}\n prefix={prefix}\n isDisabled={isDisabled}\n leadingInteractionElement={leadingInteractionElement}\n />\n <BaseInputTagSlot\n renderAs={as}\n tags={tags}\n isDisabled={isDisabled}\n showAllTags={showAllTagsWithAnimation}\n setFocusOnInput={() => {\n const innerRef = getInnerMotionRef({ _motionMeta, ref });\n if (innerRef && !isReactNative && 'current' in innerRef) {\n innerRef.current?.focus();\n }\n }}\n labelPrefix={isLabelInsideInput ? label : undefined}\n isDropdownTrigger={isDropdownTrigger}\n visibleTagsCountRef={visibleTagsCountRef}\n handleOnInputClick={(e) => {\n handleOnClick({ name, value: isReactNative ? value : e });\n }}\n setShouldIgnoreBlurAnimation={setShouldIgnoreBlurAnimation}\n maxTagRows={maxTagRows}\n inputWrapperRef={inputWrapperRef}\n size={size}\n numberOfLines={numberOfLines}\n isTextArea={isTextArea}\n >\n <StyledBaseInput\n as={as}\n id={inputId}\n ref={getInnerMotionRef({ _motionMeta, ref: mergedInputRef as any }) as never}\n name={name}\n type={type}\n defaultValue={defaultValue}\n value={value}\n placeholder={placeholder}\n isDisabled={isDisabled}\n validationState={validationState}\n isRequired={_isRequired}\n handleOnFocus={handleOnFocus}\n handleOnChange={handleOnChange}\n handleOnBlur={handleOnBlur}\n handleOnSubmit={handleOnSubmit}\n handleOnInput={handleOnInput}\n handleOnKeyDown={handleOnKeyDown}\n handleOnClick={handleOnClick}\n leadingIcon={leadingIcon}\n prefix={prefix}\n trailingInteractionElement={trailingInteractionElement}\n leadingInteractionElement={leadingInteractionElement}\n suffix={suffix}\n trailingIcon={trailingIcon}\n maxCharacters={maxCharacters}\n textAlign={textAlign}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n keyboardReturnKeyType={keyboardReturnKeyType}\n keyboardType={keyboardType}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n accessibilityProps={accessibilityProps}\n currentInteraction={currentInteraction}\n setCurrentInteraction={setCurrentInteraction}\n numberOfLines={numberOfLines}\n isTextArea={isTextArea || maxTagRows === 'multiple' || maxTagRows === 'expandable'}\n hasPopup={hasPopup}\n hasTags={!!(tags && tags.length > 0)}\n shouldIgnoreBlurAnimation={shouldIgnoreBlurAnimation}\n autoCapitalize={autoCapitalize}\n isDropdownTrigger={isDropdownTrigger}\n $size={size}\n valueComponentType={valueComponentType}\n isTableInputCell={isTableInputCell}\n tabIndex={tabIndex}\n {...metaAttribute({ name: MetaConstants.StyledBaseInput })}\n {...makeAnalyticsAttribute(rest)}\n />\n </BaseInputTagSlot>\n <BaseInputVisuals\n trailingInteractionElement={trailingInteractionElement}\n onTrailingInteractionElementClick={onTrailingInteractionElementClick}\n suffix={suffix}\n trailingIcon={trailingIcon}\n isDisabled={isDisabled}\n validationState={validationState}\n trailingButton={trailingButton}\n size={size}\n errorText={errorText}\n successText={successText}\n showHintsAsTooltip={showHintsAsTooltip}\n />\n </BaseInputWrapper>\n </FocusRingWrapper>\n </BaseBox>\n\n {hideFormHint || showHintsAsTooltip ? null : (\n <BaseBox\n marginLeft={makeSize(\n isLabelLeftPositioned && !hideLabelText ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent={willRenderHintText ? 'space-between' : 'flex-end'}\n >\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n {trailingFooterSlot?.(value ?? inputValue)}\n </BaseBox>\n </BaseBox>\n )}\n </BaseBox>\n );\n};\n\nconst BaseInputWithRef = React.forwardRef(_BaseInput);\nconst BaseInput = assignWithoutSideEffects(BaseInputWithRef, { displayName: 'BaseInput' });\n\nexport { BaseInput };\n"],"names":["autoCompleteSuggestionTypeValues","useTags","tags","activeTagIndex","setActiveTagIndex","visibleTagsCountRef","React","useRef","useEffect","length","_tags$activeTagIndex","_tags$activeTagIndex$","tagTitle","props","children","announce","concat","onTagLeft","current","onTagRight","onTagRemove","onDismiss","tagIndex","onInputKeydownTagHandler","key","useInput","_ref","value","defaultValue","onClick","onFocus","onChange","onBlur","onSubmit","onInput","onKeyDown","throwBladeError","message","moduleName","_React$useState","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","handleOnFocus","useCallback","_ref2","name","_value","getPlatformType","_value$target$value","target","handleOnClick","_ref3","_value$currentTarget$","currentTarget","handleOnSubmit","_ref4","_value$target$value2","isReactNative","handleOnBlur","_ref5","_value$target$value3","handleOnChange","_ref6","_value$target$value4","handleOnInput","_ref7","_value$target$value5","handleOnKeyDown","_ref8","code","event","getHintType","_ref9","validationState","hasHelpText","getDescribedByElementId","_ref10","hasErrorText","hasSuccessText","errorTextId","successTextId","helpTextId","FocusRingWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref11","theme","currentInteraction","isTableInputCell","borderRadius","makeBorderSize","border","radius","none","medium","width","_objectSpread","getFocusRingStyles","transitionDuration","castWebType","makeMotionTime","getIn","motion","duration","baseInputBorderBackgroundMotion","transitionTimingFunction","easing","_BaseInput","_ref12","ref","_ref12$as","as","label","_ref12$labelPosition","labelPosition","placeholder","_ref12$type","type","_ref12$showAllTags","showAllTags","_ref12$activeTagIndex","isDisabled","necessityIndicator","errorText","helpText","successText","isRequired","leadingIcon","prefix","trailingInteractionElement","onTrailingInteractionElementClick","leadingInteractionElement","suffix","trailingIcon","maxCharacters","textAlign","autoFocus","keyboardReturnKeyType","keyboardType","autoCompleteSuggestionType","trailingHeaderSlot","trailingFooterSlot","numberOfLines","id","componentName","accessibilityLabel","labelId","activeDescendant","hideLabelText","hideFormHint","hasPopup","popupId","isPopupExpanded","maxTagRows","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","autoCapitalize","setInputWrapperRef","testID","isDropdownTrigger","isLabelInsideInput","_ref12$size","size","trailingButton","_ref12$valueComponent","valueComponentType","_ref12$isTableInputCe","_ref12$showHintsAsToo","showHintsAsTooltip","_motionMeta","role","tabIndex","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","inputRef","mergedInputRef","useMergeRefs","inputWrapperRef","_useTags","_React$useState3","_React$useState4","showAllTagsWithAnimation","setShowAllTagsWithAnimation","defaultRole","undefined","_useInput","_useFormId","useFormId","inputId","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isLabelLeftPositioned","_useInteraction","useInteraction","setCurrentInteraction","_isRequired","accessibilityProps","makeAccessible","required","Boolean","disabled","invalid","describedBy","expanded","controls","willRenderHintText","includes","join","isTextArea","_jsxs","getOuterMotionRef","metaAttribute","getStyledProps","display","flexDirection","justifyContent","alignItems","position","alignSelf","marginY","_jsx","FormLabel","htmlFor","BaseInputWrapper","refNode","_inputRef$current","focus","BaseInputVisuals","BaseInputTagSlot","renderAs","setFocusOnInput","innerRef","getInnerMotionRef","_innerRef$current","labelPrefix","handleOnInputClick","e","StyledBaseInput","hasTags","$size","MetaConstants","makeAnalyticsAttribute","marginLeft","makeSize","formHintLeftLabelMarginLeft","FormHint","BaseInputWithRef","forwardRef","BaseInput","assignWithoutSideEffects"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyaA,IAAMA,gCAAgC,GAAG,CACvC,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,CACvB,CAAA;AAGD,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CACXC,IAA4B,EAC5BC,cAAsB,EACtBC,iBAAoD,EAIjD;AACH,EAAA,IAAMC,mBAAmB,GAAGC,cAAK,CAACC,MAAM,CAAS,CAAC,CAAC,CAAA;EAEnDD,cAAK,CAACE,SAAS,CAAC,YAAM;IACpB,IAAIN,IAAI,IAAIC,cAAc,IAAI,CAAC,IAAIA,cAAc,GAAGD,IAAI,CAACO,MAAM,EAAE;MAAA,IAAAC,oBAAA,EAAAC,qBAAA,CAAA;MAC/D,IAAMC,QAAQ,IAAAF,oBAAA,GAAGR,IAAI,CAACC,cAAc,CAAC,MAAAO,IAAAA,IAAAA,oBAAA,wBAAAC,qBAAA,GAApBD,oBAAA,CAAsBG,KAAK,cAAAF,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA3BA,qBAAA,CAA6BG,QAAQ,CAAA;AACtD,MAAA,IAAIF,QAAQ,EAAE;AACZG,QAAAA,QAAQ,CAAAC,QAAAA,CAAAA,MAAA,CAAUJ,QAAQ,SAAM,CAAC,CAAA;AACnC,OAAA;AACF,KAAA;AACA;AACF,GAAC,EAAE,CAACT,cAAc,EAAED,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEO,MAAM,CAAC,CAAC,CAAA;AAElC,EAAA,IAAMQ,SAAS,GAAG,SAAZA,SAASA,GAAe;IAC5B,IAAId,cAAc,GAAG,CAAC,EAAE;MACtBC,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAGC,mBAAmB,CAACa,OAAO,GAAG,CAAC,CAAC,CAAA;AACtD,KAAA;IAEA,IAAIf,cAAc,GAAG,CAAC,EAAE;MACtBC,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAiB,CAAGD,cAAc,GAAG,CAAC,CAAC,CAAA;AACzC,KAAA;GACD,CAAA;AAED,EAAA,IAAMgB,UAAU,GAAG,SAAbA,UAAUA,GAAe;AAC7B,IAAA,IAAIhB,cAAc,GAAGE,mBAAmB,CAACa,OAAO,GAAG,CAAC,EAAE;MACpDd,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAiB,CAAGD,cAAc,GAAG,CAAC,CAAC,CAAA;AACzC,KAAA;GACD,CAAA;AAED,EAAA,IAAMiB,WAAW,GAAG,SAAdA,WAAWA,GAAe;IAC9B,IAAIjB,cAAc,IAAI,CAAC,IAAIA,cAAc,GAAGE,mBAAmB,CAACa,OAAO,IAAIhB,IAAI,EAAE;AAC/EA,MAAAA,IAAI,CAACC,cAAc,CAAC,CAACU,KAAK,CAACQ,SAAS,CAAC;AAAEC,QAAAA,QAAQ,EAAEnB,cAAAA;AAAe,OAAC,CAAC,CAAA;AACpE,KAAA;GACD,CAAA;AAED,EAAA,IAAMoB,wBAAsD,GAAG,SAAzDA,wBAAsDA,CAAIC,GAAG,EAAK;AACtE,IAAA,IAAItB,IAAI,IAAIA,IAAI,CAACO,MAAM,GAAG,CAAC,EAAE;MAC3B,IAAIe,GAAG,KAAK,YAAY,EAAE;AACxBL,QAAAA,UAAU,EAAE,CAAA;AACd,OAAA;MAEA,IAAIK,GAAG,KAAK,WAAW,EAAE;AACvBP,QAAAA,SAAS,EAAE,CAAA;AACb,OAAA;MAEA,IAAIO,GAAG,KAAK,WAAW,EAAE;AACvBJ,QAAAA,WAAW,EAAE,CAAA;AACf,OAAA;AACF,KAAA;GACD,CAAA;EAED,OAAO;AACLG,IAAAA,wBAAwB,EAAxBA,wBAAwB;AACxBlB,IAAAA,mBAAmB,EAAnBA,mBAAAA;GACD,CAAA;AACH,CAAC,CAAA;AAED,IAAMoB,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAiCT;AAAA,EAAA,IAhCHC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,YAAY,GAAAF,IAAA,CAAZE,YAAY;IACZC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,MAAM,GAAAN,IAAA,CAANM,MAAM;IACNC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IACRC,OAAO,GAAAR,IAAA,CAAPQ,OAAO;IACPC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTZ,wBAAwB,GAAAG,IAAA,CAAxBH,wBAAwB,CAAA;AAwBxB,EAAA,IAAI,IAAO,EAAE;IACX,IAAII,KAAK,IAAIC,YAAY,EAAE;AACzBQ,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAmH,iHAAA;AAC1HC,QAAAA,UAAU,EAAE,OAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,IAAAC,eAAA,GAAoCjC,cAAK,CAACkC,QAAQ,CAACZ,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAZA,YAAY,GAAID,KAAK,CAAC;IAAAc,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAAlEI,IAAAA,UAAU,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;EAEhC,IAAMI,aAAqC,GAAGvC,cAAK,CAACwC,WAAW,CAC7D,UAAAC,KAAA,EAAqB;AAAA,IAAA,IAAlBC,IAAI,GAAAD,KAAA,CAAJC,IAAI;MAAErB,KAAK,GAAAoB,KAAA,CAALpB,KAAK,CAAA;IACZ,IAAIsB,MAAM,GAAG,EAAE,CAAA;IAEf,IAAIC,eAAe,EAAE,KAAK,cAAc,IAAI,OAAOvB,KAAK,KAAK,QAAQ,EAAE;AACrEsB,MAAAA,MAAM,GAAGtB,KAAK,CAAA;AAChB,KAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAAwB,mBAAA,CAAA;AACpC;AACAF,MAAAA,MAAM,IAAAE,mBAAA,GAAGxB,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEyB,MAAM,CAACzB,KAAK,MAAA,IAAA,IAAAwB,mBAAA,KAAAA,KAAAA,CAAAA,GAAAA,mBAAA,GAAI,EAAE,CAAA;AACpC,KAAA;AAEArB,IAAAA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAG;AACRkB,MAAAA,IAAI,EAAJA,IAAI;AACJrB,MAAAA,KAAK,EAAEsB,MAAAA;AACT,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACnB,OAAO,CACV,CAAC,CAAA;EAED,IAAMuB,aAA0C,GAAG/C,cAAK,CAACwC,WAAW,CAClE,UAAAQ,KAAA,EAAqB;AAAA,IAAA,IAAlBN,IAAI,GAAAM,KAAA,CAAJN,IAAI;MAAErB,KAAK,GAAA2B,KAAA,CAAL3B,KAAK,CAAA;IACZ,IAAIsB,MAAM,GAAG,EAAE,CAAA;IAEf,IAAIC,eAAe,EAAE,KAAK,cAAc,IAAI,OAAOvB,KAAK,KAAK,QAAQ,EAAE;AACrEsB,MAAAA,MAAM,GAAGtB,KAAK,CAAA;AAChB,KAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAA4B,qBAAA,CAAA;AACpC;AACAN,MAAAA,MAAM,IAAAM,qBAAA,GAAG5B,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAE6B,aAAa,CAAC7B,KAAK,MAAA,IAAA,IAAA4B,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAA;AAC3C,KAAA;AAEA1B,IAAAA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAG;AACRmB,MAAAA,IAAI,EAAJA,IAAI;AACJrB,MAAAA,KAAK,EAAEsB,MAAAA;AACT,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACpB,OAAO,CACV,CAAC,CAAA;EAED,IAAM4B,cAAsC,GAAGnD,cAAK,CAACwC,WAAW,CAC9D,UAAAY,KAAA,EAAqB;AAAA,IAAA,IAAlBV,IAAI,GAAAU,KAAA,CAAJV,IAAI;MAAErB,KAAK,GAAA+B,KAAA,CAAL/B,KAAK,CAAA;IACZ,IAAIsB,MAAM,GAAG,EAAE,CAAA;IAEf,IAAIC,eAAe,EAAE,KAAK,cAAc,IAAI,OAAOvB,KAAK,KAAK,QAAQ,EAAE;AACrEsB,MAAAA,MAAM,GAAGtB,KAAK,CAAA;AAChB,KAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAAgC,oBAAA,CAAA;AACpC;AACAV,MAAAA,MAAM,IAAAU,oBAAA,GAAGhC,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEyB,MAAM,CAACzB,KAAK,MAAA,IAAA,IAAAgC,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAI,EAAE,CAAA;AACpC,KAAA;IACA,IAAIC,aAAa,EAAE,EAAE;AACnB;AACA;AACA3B,MAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAG;AACTe,QAAAA,IAAI,EAAJA,IAAI;AACJrB,QAAAA,KAAK,EAAEsB,MAAAA;AACT,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EACD,CAAChB,QAAQ,CACX,CAAC,CAAA;EAED,IAAM4B,YAAoC,GAAGvD,cAAK,CAACwC,WAAW,CAC5D,UAAAgB,KAAA,EAAqB;AAAA,IAAA,IAAlBd,IAAI,GAAAc,KAAA,CAAJd,IAAI;MAAErB,KAAK,GAAAmC,KAAA,CAALnC,KAAK,CAAA;IACZ,IAAIsB,MAAM,GAAG,EAAE,CAAA;IACf,IAAIC,eAAe,EAAE,KAAK,cAAc,IAAI,OAAOvB,KAAK,IAAI,QAAQ,EAAE;AACpEsB,MAAAA,MAAM,GAAGtB,KAAK,CAAA;AAChB,KAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAAoC,oBAAA,CAAA;AACpC;AACAd,MAAAA,MAAM,IAAAc,oBAAA,GAAGpC,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEyB,MAAM,CAACzB,KAAK,MAAA,IAAA,IAAAoC,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAI,EAAE,CAAA;AACpC,KAAA;AAEA/B,IAAAA,MAAM,KAANA,IAAAA,IAAAA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAG;AACPgB,MAAAA,IAAI,EAAJA,IAAI;AACJrB,MAAAA,KAAK,EAAEsB,MAAAA;AACT,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACjB,MAAM,CACT,CAAC,CAAA;EAED,IAAMgC,cAAsC,GAAG1D,cAAK,CAACwC,WAAW,CAC9D,UAAAmB,KAAA,EAAqB;AAAA,IAAA,IAAlBjB,IAAI,GAAAiB,KAAA,CAAJjB,IAAI;MAAErB,KAAK,GAAAsC,KAAA,CAALtC,KAAK,CAAA;IACZ,IAAIsB,MAAM,GAAG,EAAE,CAAA;IAEf,IAAIC,eAAe,EAAE,KAAK,cAAc,IAAI,OAAOvB,KAAK,KAAK,QAAQ,EAAE;AACrEsB,MAAAA,MAAM,GAAGtB,KAAK,CAAA;AAChB,KAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAAuC,oBAAA,CAAA;AACpC;AACAjB,MAAAA,MAAM,IAAAiB,oBAAA,GAAGvC,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEyB,MAAM,CAACzB,KAAK,MAAA,IAAA,IAAAuC,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAI,EAAE,CAAA;AACpC,KAAA;AAEAnC,IAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAG;AACTiB,MAAAA,IAAI,EAAJA,IAAI;AACJrB,MAAAA,KAAK,EAAEsB,MAAAA;AACT,KAAC,CAAC,CAAA;IACFL,aAAa,CAACK,MAAM,CAAC,CAAA;AACvB,GAAC,EACD,CAAClB,QAAQ,CACX,CAAC,CAAA;EAED,IAAMoC,aAAqC,GAAG7D,cAAK,CAACwC,WAAW,CAC7D,UAAAsB,KAAA,EAAqB;AAAA,IAAA,IAAlBpB,IAAI,GAAAoB,KAAA,CAAJpB,IAAI;MAAErB,KAAK,GAAAyC,KAAA,CAALzC,KAAK,CAAA;IACZ,IAAIsB,MAAM,GAAG,EAAE,CAAA;IACf,IAAIC,eAAe,EAAE,KAAK,cAAc,IAAI,OAAOvB,KAAK,IAAI,QAAQ,EAAE;AACpEsB,MAAAA,MAAM,GAAGtB,KAAK,CAAA;AAChB,KAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAA0C,oBAAA,CAAA;AACpC;AACApB,MAAAA,MAAM,IAAAoB,oBAAA,GAAG1C,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEyB,MAAM,CAACzB,KAAK,MAAA,IAAA,IAAA0C,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAI,EAAE,CAAA;AACpC,KAAA;AAEAnC,IAAAA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAG;AACRc,MAAAA,IAAI,EAAJA,IAAI;AACJrB,MAAAA,KAAK,EAAEsB,MAAAA;AACT,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACf,OAAO,CACV,CAAC,CAAA;EAED,IAAMoC,eAA8C,GAAGhE,cAAK,CAACwC,WAAW,CACtE,UAAAyB,KAAA,EAAgC;AAAA,IAAA,IAA7BvB,IAAI,GAAAuB,KAAA,CAAJvB,IAAI;MAAExB,GAAG,GAAA+C,KAAA,CAAH/C,GAAG;MAAEgD,IAAI,GAAAD,KAAA,CAAJC,IAAI;MAAEC,KAAK,GAAAF,KAAA,CAALE,KAAK,CAAA;IACvBlD,wBAAwB,CAACC,GAAG,CAAC,CAAA;AAC7BW,IAAAA,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAG;AACVa,MAAAA,IAAI,EAAJA,IAAI;AACJxB,MAAAA,GAAG,EAAHA,GAAG;AACHgD,MAAAA,IAAI,EAAJA,IAAI;AACJC,MAAAA,KAAK,EAALA,KAAAA;AACF,KAAC,CAAC,CAAA;GACH;AACD;EACA,CAACtC,SAAS,CACZ,CAAC,CAAA;EAED,OAAO;AACLU,IAAAA,aAAa,EAAbA,aAAa;AACbQ,IAAAA,aAAa,EAAbA,aAAa;AACbW,IAAAA,cAAc,EAAdA,cAAc;AACdH,IAAAA,YAAY,EAAZA,YAAY;AACZJ,IAAAA,cAAc,EAAdA,cAAc;AACdU,IAAAA,aAAa,EAAbA,aAAa;AACbG,IAAAA,eAAe,EAAfA,eAAe;AACf3B,IAAAA,UAAU,EAAVA,UAAAA;GACD,CAAA;AACH,CAAC,CAAA;IAEY+B,WAAW,GAAG,SAAdA,WAAWA,CAAAC,KAAA,EAMK;AAAA,EAAA,IAL3BC,eAAe,GAAAD,KAAA,CAAfC,eAAe;IACfC,WAAW,GAAAF,KAAA,CAAXE,WAAW,CAAA;EAKX,IAAID,eAAe,KAAK,OAAO,EAAE;AAC/B,IAAA,OAAO,OAAO,CAAA;AAChB,GAAA;EAEA,IAAIA,eAAe,KAAK,SAAS,EAAE;AACjC,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,IAAIC,WAAW,EAAE;AACf,IAAA,OAAO,MAAM,CAAA;AACf,GAAA;AAEA,EAAA,OAAO,MAAM,CAAA;AACf,EAAC;AAED,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,MAAA,EAgBf;AAAA,EAAA,IAfZH,eAAe,GAAAG,MAAA,CAAfH,eAAe;IACfI,YAAY,GAAAD,MAAA,CAAZC,YAAY;IACZC,cAAc,GAAAF,MAAA,CAAdE,cAAc;IACdJ,WAAW,GAAAE,MAAA,CAAXF,WAAW;IACXK,WAAW,GAAAH,MAAA,CAAXG,WAAW;IACXC,aAAa,GAAAJ,MAAA,CAAbI,aAAa;IACbC,UAAU,GAAAL,MAAA,CAAVK,UAAU,CAAA;AAUV,EAAA,IAAIR,eAAe,KAAK,OAAO,IAAII,YAAY,EAAE;AAC/C,IAAA,OAAOE,WAAW,CAAA;AACpB,GAAA;AAEA,EAAA,IAAIN,eAAe,KAAK,SAAS,IAAIK,cAAc,EAAE;AACnD,IAAA,OAAOE,aAAa,CAAA;AACtB,GAAA;AAEA,EAAA,IAAIN,WAAW,EAAE;AACf,IAAA,OAAOO,UAAU,CAAA;AACnB,GAAA;AAEA,EAAA,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,IAAMC,gBAAgB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAGrC,UAAAC,MAAA,EAAA;AAAA,EAAA,IAAGC,KAAK,GAAAD,MAAA,CAALC,KAAK;IAAEC,kBAAkB,GAAAF,MAAA,CAAlBE,kBAAkB;IAAEC,gBAAgB,GAAAH,MAAA,CAAhBG,gBAAgB,CAAA;EAAA,OAAQ;IACvDC,YAAY,EAAEC,cAAc,CAC1BF,gBAAgB,GAAGF,KAAK,CAACK,MAAM,CAACC,MAAM,CAACC,IAAI,GAAGP,KAAK,CAACK,MAAM,CAACC,MAAM,CAACE,MACpE,CAAC;AACDC,IAAAA,KAAK,EAAE,MAAM;IACb,gBAAgB,EAAE,CAACP,gBAAgB,GAAAQ,aAAA,CAAAA,aAAA,CAE1BC,EAAAA,EAAAA,kBAAkB,CAAC;AACpBX,MAAAA,KAAK,EAALA,KAAAA;AACF,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;MACFY,kBAAkB,EAAEC,WAAW,CAC7BC,cAAc,CACZC,KAAK,CACHf,KAAK,CAACgB,MAAM,CAACC,QAAQ,EACrBC,+BAA+B,CAACjB,kBAAkB,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,CAC/EgB,QACL,CACF,CACF,CAAC;MACDE,wBAAwB,EAAEN,WAAW,CACnCb,KAAK,CAACgB,MAAM,CAACI,MAAM,CACjBF,+BAA+B,CAACjB,kBAAkB,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,CAC/EmB,MAAM,CAEb,CAAA;AAAC,KAAA,CAAA,GAEH,EAAC;GACN,CAAA;AAAA,CAAC,CAAC,CAAA;AAEH,IAAMC,UAA2E,GAAG,SAA9EA,UAA2EA,CAAAC,MAAA,EAwE/EC,GAAG,EACA;AAAA,EAAA,IAAAC,SAAA,GAAAF,MAAA,CAvEDG,EAAE;AAAFA,IAAAA,EAAE,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,SAAA;IACZE,KAAK,GAAAJ,MAAA,CAALI,KAAK;IAAAC,oBAAA,GAAAL,MAAA,CACLM,aAAa;AAAbA,IAAAA,aAAa,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA;IACrBE,WAAW,GAAAP,MAAA,CAAXO,WAAW;IAAAC,WAAA,GAAAR,MAAA,CACXS,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,WAAA;IACb9F,YAAY,GAAAsF,MAAA,CAAZtF,YAAY;IACZ1B,IAAI,GAAAgH,MAAA,CAAJhH,IAAI;IAAA0H,kBAAA,GAAAV,MAAA,CACJW,WAAW;AAAXA,IAAAA,WAAW,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA;IAAAE,qBAAA,GAAAZ,MAAA,CACnB/G,cAAc;AAAdA,IAAAA,cAAc,GAAA2H,qBAAA,KAAA,KAAA,CAAA,GAAG,CAAC,CAAC,GAAAA,qBAAA;IACnB1H,iBAAiB,GAAA8G,MAAA,CAAjB9G,iBAAiB;IACjB4C,IAAI,GAAAkE,MAAA,CAAJlE,IAAI;IACJrB,KAAK,GAAAuF,MAAA,CAALvF,KAAK;IACLG,OAAO,GAAAoF,MAAA,CAAPpF,OAAO;IACPC,QAAQ,GAAAmF,MAAA,CAARnF,QAAQ;IACRG,OAAO,GAAAgF,MAAA,CAAPhF,OAAO;IACPF,MAAM,GAAAkF,MAAA,CAANlF,MAAM;IACNC,QAAQ,GAAAiF,MAAA,CAARjF,QAAQ;IACRJ,OAAO,GAAAqF,MAAA,CAAPrF,OAAO;IACPM,SAAS,GAAA+E,MAAA,CAAT/E,SAAS;IACT4F,UAAU,GAAAb,MAAA,CAAVa,UAAU;IACVC,kBAAkB,GAAAd,MAAA,CAAlBc,kBAAkB;IAClBpD,eAAe,GAAAsC,MAAA,CAAftC,eAAe;IACfqD,SAAS,GAAAf,MAAA,CAATe,SAAS;IACTC,QAAQ,GAAAhB,MAAA,CAARgB,QAAQ;IACRC,WAAW,GAAAjB,MAAA,CAAXiB,WAAW;IACXC,UAAU,GAAAlB,MAAA,CAAVkB,UAAU;IACVC,WAAW,GAAAnB,MAAA,CAAXmB,WAAW;IACXC,MAAM,GAAApB,MAAA,CAANoB,MAAM;IACNC,0BAA0B,GAAArB,MAAA,CAA1BqB,0BAA0B;IAC1BC,iCAAiC,GAAAtB,MAAA,CAAjCsB,iCAAiC;IACjCC,yBAAyB,GAAAvB,MAAA,CAAzBuB,yBAAyB;IACzBC,MAAM,GAAAxB,MAAA,CAANwB,MAAM;IACNC,YAAY,GAAAzB,MAAA,CAAZyB,YAAY;IACZC,aAAa,GAAA1B,MAAA,CAAb0B,aAAa;IACbC,SAAS,GAAA3B,MAAA,CAAT2B,SAAS;IACTC,SAAS,GAAA5B,MAAA,CAAT4B,SAAS;IACTC,qBAAqB,GAAA7B,MAAA,CAArB6B,qBAAqB;IACrBC,YAAY,GAAA9B,MAAA,CAAZ8B,YAAY;IACZC,0BAA0B,GAAA/B,MAAA,CAA1B+B,0BAA0B;IAC1BC,kBAAkB,GAAAhC,MAAA,CAAlBgC,kBAAkB;IAClBC,kBAAkB,GAAAjC,MAAA,CAAlBiC,kBAAkB;IAClBC,aAAa,GAAAlC,MAAA,CAAbkC,aAAa;IACbC,EAAE,GAAAnC,MAAA,CAAFmC,EAAE;IACFC,aAAa,GAAApC,MAAA,CAAboC,aAAa;IACbC,kBAAkB,GAAArC,MAAA,CAAlBqC,kBAAkB;IAClBC,OAAO,GAAAtC,MAAA,CAAPsC,OAAO;IACPC,gBAAgB,GAAAvC,MAAA,CAAhBuC,gBAAgB;IAChBC,aAAa,GAAAxC,MAAA,CAAbwC,aAAa;IACbC,YAAY,GAAAzC,MAAA,CAAZyC,YAAY;IACZC,QAAQ,GAAA1C,MAAA,CAAR0C,QAAQ;IACRC,OAAO,GAAA3C,MAAA,CAAP2C,OAAO;IACPC,eAAe,GAAA5C,MAAA,CAAf4C,eAAe;IACfC,UAAU,GAAA7C,MAAA,CAAV6C,UAAU;IACVC,yBAAyB,GAAA9C,MAAA,CAAzB8C,yBAAyB;IACzBC,4BAA4B,GAAA/C,MAAA,CAA5B+C,4BAA4B;IAC5BC,cAAc,GAAAhD,MAAA,CAAdgD,cAAc;IACdC,kBAAkB,GAAAjD,MAAA,CAAlBiD,kBAAkB;IAClBC,MAAM,GAAAlD,MAAA,CAANkD,MAAM;IACNC,iBAAiB,GAAAnD,MAAA,CAAjBmD,iBAAiB;IACjBC,kBAAkB,GAAApD,MAAA,CAAlBoD,kBAAkB;IAAAC,WAAA,GAAArD,MAAA,CAClBsD,IAAI;AAAJA,IAAAA,IAAI,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,WAAA;IACfE,cAAc,GAAAvD,MAAA,CAAduD,cAAc;IAAAC,qBAAA,GAAAxD,MAAA,CACdyD,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,qBAAA;IAAAE,qBAAA,GAAA1D,MAAA,CAC3BpB,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAA8E,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAAAC,qBAAA,GAAA3D,MAAA,CACxB4D,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAC1BE,WAAW,GAAA7D,MAAA,CAAX6D,WAAW;IACXC,IAAI,GAAA9D,MAAA,CAAJ8D,IAAI;IACJC,QAAQ,GAAA/D,MAAA,CAAR+D,QAAQ;AACLC,IAAAA,IAAI,GAAAC,wBAAA,CAAAjE,MAAA,EAAAkE,SAAA,CAAA,CAAA;AAIT,EAAA,IAAAC,SAAA,GAAkBC,QAAQ,EAAE;IAApB1F,KAAK,GAAAyF,SAAA,CAALzF,KAAK,CAAA;AACb,EAAA,IAAM2F,QAAQ,GAAGjL,cAAK,CAACC,MAAM,CAAkB,IAAI,CAAC,CAAA;AACpD,EAAA,IAAMiL,cAAc,GAAGC,YAAY,CAACtE,GAAG,EAAEoE,QAAQ,CAAC,CAAA;AAClD,EAAA,IAAMG,eAAgC,GAAGpL,cAAK,CAACC,MAAM,CAAC,IAAI,CAAC,CAAA;EAC3D,IAAAoL,QAAA,GAA0D1L,OAAO,CAC/DC,IAAI,EACJC,cAAc,EACdC,iBACF,CAAC;IAJOmB,wBAAwB,GAAAoK,QAAA,CAAxBpK,wBAAwB;IAAElB,mBAAmB,GAAAsL,QAAA,CAAnBtL,mBAAmB,CAAA;AAKrD,EAAA,IAAAuL,gBAAA,GAAgEtL,cAAK,CAACkC,QAAQ,CAAC,KAAK,CAAC;IAAAqJ,gBAAA,GAAAnJ,cAAA,CAAAkJ,gBAAA,EAAA,CAAA,CAAA;AAA9EE,IAAAA,wBAAwB,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,2BAA2B,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AAC5D,EAAA,IAAMjI,aAAa,GAAGV,eAAe,EAAE,KAAK,cAAc,CAAA;AAC1D,EAAA,IAAM8I,WAAW,GAAGpC,QAAQ,GAAG,UAAU,GAAGqC,SAAS,CAAA;EAErD3L,cAAK,CAACE,SAAS,CAAC,YAAM;AACpB,IAAA,IAAIqH,WAAW,EAAE;MACfkE,2BAA2B,CAAC,IAAI,CAAC,CAAA;AACnC,KAAC,MAAM,IAAIhC,UAAU,KAAK,YAAY,EAAE;MACtCgC,2BAA2B,CAAC,KAAK,CAAC,CAAA;AACpC,KAAA;AACF,GAAC,EAAE,CAAClE,WAAW,EAAEkC,UAAU,CAAC,CAAC,CAAA;EAE7B,IAAAmC,SAAA,GASIzK,QAAQ,CAAC;AACXG,MAAAA,YAAY,EAAZA,YAAY;AACZD,MAAAA,KAAK,EAALA,KAAK;AACLG,MAAAA,OAAO,EAAPA,OAAO;AACPD,MAAAA,OAAO,EAAPA,OAAO;AACPE,MAAAA,QAAQ,EAARA,QAAQ;AACRC,MAAAA,MAAM,EAANA,MAAM;AACNC,MAAAA,QAAQ,EAARA,QAAQ;AACRC,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,SAAS,EAATA,SAAS;AACTZ,MAAAA,wBAAwB,EAAxBA,wBAAAA;AACF,KAAC,CAAC;IAnBAsB,aAAa,GAAAqJ,SAAA,CAAbrJ,aAAa;IACbmB,cAAc,GAAAkI,SAAA,CAAdlI,cAAc;IACdX,aAAa,GAAA6I,SAAA,CAAb7I,aAAa;IACbQ,YAAY,GAAAqI,SAAA,CAAZrI,YAAY;IACZJ,cAAc,GAAAyI,SAAA,CAAdzI,cAAc;IACdU,aAAa,GAAA+H,SAAA,CAAb/H,aAAa;IACbG,eAAe,GAAA4H,SAAA,CAAf5H,eAAe;IACf3B,UAAU,GAAAuJ,SAAA,CAAVvJ,UAAU,CAAA;AAaZ,EAAA,IAAAwJ,UAAA,GAA4DC,SAAS,CAAC/C,EAAE,CAAC;IAAjEgD,OAAO,GAAAF,UAAA,CAAPE,OAAO;IAAEjH,UAAU,GAAA+G,UAAA,CAAV/G,UAAU;IAAEF,WAAW,GAAAiH,UAAA,CAAXjH,WAAW;IAAEC,aAAa,GAAAgH,UAAA,CAAbhH,aAAa,CAAA;EACvD,IAAAmH,cAAA,GAA8BC,aAAa,CAAC;MAAEC,WAAW,EAAE5G,KAAK,CAAC4G,WAAAA;AAAY,KAAC,CAAC;IAAvEC,iBAAiB,GAAAH,cAAA,CAAjBG,iBAAiB,CAAA;EACzB,IAAMC,qBAAqB,GAAGlF,aAAa,KAAK,MAAM,IAAIiF,iBAAiB,KAAK,SAAS,CAAA;AACzF,EAAA,IAAAE,eAAA,GAAsDC,cAAc,EAAE;IAA9D/G,kBAAkB,GAAA8G,eAAA,CAAlB9G,kBAAkB;IAAEgH,qBAAqB,GAAAF,eAAA,CAArBE,qBAAqB,CAAA;AACjD,EAAA,IAAMC,WAAW,GAAG1E,UAAU,IAAIJ,kBAAkB,KAAK,UAAU,CAAA;EAEnE,IAAM+E,kBAAkB,GAAGC,cAAc,CAAC;AACxCC,IAAAA,QAAQ,EAAEC,OAAO,CAACJ,WAAW,CAAC;AAC9BK,IAAAA,QAAQ,EAAED,OAAO,CAACnF,UAAU,CAAC;AAC7BqF,IAAAA,OAAO,EAAEF,OAAO,CAACtI,eAAe,KAAK,OAAO,CAAC;IAC7CyI,WAAW,EAAEvI,uBAAuB,CAAC;AACnCF,MAAAA,eAAe,EAAfA,eAAe;AACfI,MAAAA,YAAY,EAAEkI,OAAO,CAACjF,SAAS,CAAC;AAChChD,MAAAA,cAAc,EAAEiI,OAAO,CAAC/E,WAAW,CAAC;AACpCtD,MAAAA,WAAW,EAAEqI,OAAO,CAAChF,QAAQ,CAAC;AAC9BhD,MAAAA,WAAW,EAAXA,WAAW;AACXC,MAAAA,aAAa,EAAbA,aAAa;AACbC,MAAAA,UAAU,EAAVA,UAAAA;AACF,KAAC,CAAC;AACFkC,IAAAA,KAAK,EAAEiC,kBAAkB;AACzBK,IAAAA,QAAQ,EAARA,QAAQ;AACR0D,IAAAA,QAAQ,EAAE1D,QAAQ,GAAGE,eAAe,GAAGmC,SAAS;AAChDsB,IAAAA,QAAQ,EAAE3D,QAAQ,GAAGC,OAAO,GAAGoC,SAAS;AACxCjB,IAAAA,IAAI,EAAEA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,IAAI,GAAIgB,WAAW;AACzBvC,IAAAA,gBAAgB,EAAhBA,gBAAAA;AACF,GAAC,CAAC,CAAA;EAEF,IAAM+D,kBAAkB,GACtBN,OAAO,CAAChF,QAAQ,CAAC,IAChBtD,eAAe,KAAK,SAAS,IAAIsI,OAAO,CAAC/E,WAAW,CAAE,IACtDvD,eAAe,KAAK,OAAO,IAAIsI,OAAO,CAACjF,SAAS,CAAE,CAAA;AAErD,EAAA,IAAI,IAAO,EAAE;IACX,IACEgB,0BAA0B,IAC1B,CAACjJ,gCAAgC,CAACyN,QAAQ,CAACxE,0BAA0B,CAAC,EACtE;AACA7G,MAAAA,eAAe,CAAC;AACdC,QAAAA,OAAO,EAAArB,mDAAAA,CAAAA,MAAA,CAAsDhB,gCAAgC,CAAC0N,IAAI,CAChG,IACF,CAAC,EAAA,gBAAA,CAAA,CAAA1M,MAAA,CAAiBiI,0BAA0B,CAAE;AAC9C3G,QAAAA,UAAU,EAAE,OAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;AAEA,EAAA,IAAMqL,UAAU,GAAGtG,EAAE,KAAK,UAAU,CAAA;EACpC,oBACEuG,IAAA,CAACrI,OAAO,EAAAe,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;IACNa,GAAG,EAAE0G,iBAAiB,CAAC;AAAE9C,MAAAA,WAAW,EAAXA,WAAW;AAAE5D,MAAAA,GAAG,EAAHA,GAAAA;KAAK,CAAA;AAAE,GAAA,EACzC2G,aAAa,CAAC;AAAE9K,IAAAA,IAAI,EAAEsG,aAAa;AAAEc,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA,EAC9C2D,cAAc,CAAC7C,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;IAAApK,QAAA,EAAA,cAExB8M,IAAA,CAACrI,OAAO,EAAA;AACNyI,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,aAAa,EAAEvB,qBAAqB,GAAG,KAAK,GAAG,QAAS;AACxDwB,MAAAA,cAAc,EAAExB,qBAAqB,GAAG,QAAQ,GAAGT,SAAU;AAC7DkC,MAAAA,UAAU,EAAEzB,qBAAqB,GAAG,QAAQ,GAAGT,SAAU;AACzDmC,MAAAA,QAAQ,EAAC,UAAU;AACnB/H,MAAAA,KAAK,EAAC,MAAM;MAAAvF,QAAA,EAAA,CAEX,CAAC4I,aAAa,IAAI,CAACY,kBAAkB,IAAIhD,KAAK,iBAC7CsG,IAAA,CAACrI,OAAO,EAAA;AACNyI,QAAAA,OAAO,EAAC,MAAM;AACdC,QAAAA,aAAa,EAAEvB,qBAAqB,GAAG,QAAQ,GAAG,KAAM;AACxDwB,QAAAA,cAAc,EAAC,eAAe;AAC9BG,QAAAA,SAAS,EAAEV,UAAU,GAAG,YAAY,GAAG1B,SAAU;AACjDqC,QAAAA,OAAO,EAAEX,UAAU,IAAIjB,qBAAqB,GAAG,WAAW,GAAG,WAAY;QAAA5L,QAAA,EAAA,cAEzEyN,GAAA,CAACC,SAAS,EAAA;AACRnH,UAAAA,EAAE,EAAC,OAAO;AACVW,UAAAA,kBAAkB,EAAEA,kBAAmB;AACvCoG,UAAAA,QAAQ,EAAE5G,aAAc;AACxB6B,UAAAA,EAAE,EAAEG,OAAQ;AACZiF,UAAAA,OAAO,EAAEpC,OAAQ;AACjB7B,UAAAA,IAAI,EAAEA,IAAK;AAAA1J,UAAAA,QAAA,EAEVwG,KAAAA;AAAK,SACG,CAAC,EACX4B,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAkB,CAAGvH,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAIgB,UAAU,CAAC,CAAA;AAAA,OACnC,CACV,eACD4L,GAAA,CAAClJ,gBAAgB,EAAA;AACfQ,QAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,QAAAA,gBAAgB,EAAEA,gBAAiB;QAAAhF,QAAA,eAEnC8M,IAAA,CAACc,gBAAgB,EAAA;AACfrE,UAAAA,iBAAiB,EAAEA,iBAAkB;AACrCsD,UAAAA,UAAU,EAAEA,UAAW;AACvB5F,UAAAA,UAAU,EAAEA,UAAW;AACvBnD,UAAAA,eAAe,EAAEA,eAAgB;AACjCiB,UAAAA,kBAAkB,EAAEA,kBAAmB;AACvC6G,UAAAA,qBAAqB,EAAEA,qBAAsB;AAC7C7E,UAAAA,WAAW,EAAEA,WAAY;AACzBkE,UAAAA,2BAA2B,EAAEA,2BAA4B;AACzD5E,UAAAA,GAAG,EAAE,SAAAA,GAACwH,CAAAA,OAAO,EAAK;AAChB,YAAA,IAAIA,OAAO,EAAE;AACXxE,cAAAA,kBAAkB,aAAlBA,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,kBAAkB,CAAGwE,OAAO,CAAC,CAAA;cAC7BjD,eAAe,CAACxK,OAAO,GAAGyN,OAAO,CAAA;AACnC,aAAA;WACA;AACF5E,UAAAA,UAAU,EAAEA,UAAW;AACvBS,UAAAA,IAAI,EAAEA,IAAK;AACXpB,UAAAA,aAAa,EAAEA,aAAc;UAC7BvH,OAAO,EAAE,SAAAA,OAAAA,GAAM;YACb,IAAI,CAAC+B,aAAa,EAAE;AAAA,cAAA,IAAAgL,iBAAA,CAAA;AAClB,cAAA,CAAAA,iBAAA,GAAArD,QAAQ,CAACrK,OAAO,MAAA,IAAA,IAAA0N,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,iBAAA,CAAkBC,KAAK,EAAE,CAAA;AAC3B,aAAA;WACA;AACF/I,UAAAA,gBAAgB,EAAEA,gBAAiB;UAAAhF,QAAA,EAAA,cAEnCyN,GAAA,CAACO,gBAAgB,EAAA;AACftE,YAAAA,IAAI,EAAEA,IAAK;AACXnC,YAAAA,WAAW,EAAEA,WAAY;AACzBC,YAAAA,MAAM,EAAEA,MAAO;AACfP,YAAAA,UAAU,EAAEA,UAAW;AACvBU,YAAAA,yBAAyB,EAAEA,yBAAAA;AAA0B,WACtD,CAAC,eACF8F,GAAA,CAACQ,gBAAgB,EAAA;AACfC,YAAAA,QAAQ,EAAE3H,EAAG;AACbnH,YAAAA,IAAI,EAAEA,IAAK;AACX6H,YAAAA,UAAU,EAAEA,UAAW;AACvBF,YAAAA,WAAW,EAAEiE,wBAAyB;YACtCmD,eAAe,EAAE,SAAAA,eAAAA,GAAM;cACrB,IAAMC,QAAQ,GAAGC,iBAAiB,CAAC;AAAEpE,gBAAAA,WAAW,EAAXA,WAAW;AAAE5D,gBAAAA,GAAG,EAAHA,GAAAA;AAAI,eAAC,CAAC,CAAA;cACxD,IAAI+H,QAAQ,IAAI,CAACtL,aAAa,IAAI,SAAS,IAAIsL,QAAQ,EAAE;AAAA,gBAAA,IAAAE,iBAAA,CAAA;AACvD,gBAAA,CAAAA,iBAAA,GAAAF,QAAQ,CAAChO,OAAO,MAAA,IAAA,IAAAkO,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,iBAAA,CAAkBP,KAAK,EAAE,CAAA;AAC3B,eAAA;aACA;AACFQ,YAAAA,WAAW,EAAE/E,kBAAkB,GAAGhD,KAAK,GAAG2E,SAAU;AACpD5B,YAAAA,iBAAiB,EAAEA,iBAAkB;AACrChK,YAAAA,mBAAmB,EAAEA,mBAAoB;AACzCiP,YAAAA,kBAAkB,EAAE,SAAAA,kBAACC,CAAAA,CAAC,EAAK;AACzBlM,cAAAA,aAAa,CAAC;AAAEL,gBAAAA,IAAI,EAAJA,IAAI;AAAErB,gBAAAA,KAAK,EAAEiC,aAAa,GAAGjC,KAAK,GAAG4N,CAAAA;AAAE,eAAC,CAAC,CAAA;aACzD;AACFtF,YAAAA,4BAA4B,EAAEA,4BAA6B;AAC3DF,YAAAA,UAAU,EAAEA,UAAW;AACvB2B,YAAAA,eAAe,EAAEA,eAAgB;AACjClB,YAAAA,IAAI,EAAEA,IAAK;AACXpB,YAAAA,aAAa,EAAEA,aAAc;AAC7BuE,YAAAA,UAAU,EAAEA,UAAW;AAAA7M,YAAAA,QAAA,eAEvByN,GAAA,CAACiB,eAAe,EAAAlJ,aAAA,CAAAA,aAAA,CAAA;AACde,cAAAA,EAAE,EAAEA,EAAG;AACPgC,cAAAA,EAAE,EAAEgD,OAAQ;cACZlF,GAAG,EAAEgI,iBAAiB,CAAC;AAAEpE,gBAAAA,WAAW,EAAXA,WAAW;AAAE5D,gBAAAA,GAAG,EAAEqE,cAAAA;AAAsB,eAAC,CAAW;AAC7ExI,cAAAA,IAAI,EAAEA,IAAK;AACX2E,cAAAA,IAAI,EAAEA,IAAK;AACX/F,cAAAA,YAAY,EAAEA,YAAa;AAC3BD,cAAAA,KAAK,EAAEA,KAAM;AACb8F,cAAAA,WAAW,EAAEA,WAAY;AACzBM,cAAAA,UAAU,EAAEA,UAAW;AACvBnD,cAAAA,eAAe,EAAEA,eAAgB;AACjCwD,cAAAA,UAAU,EAAE0E,WAAY;AACxBjK,cAAAA,aAAa,EAAEA,aAAc;AAC7BmB,cAAAA,cAAc,EAAEA,cAAe;AAC/BH,cAAAA,YAAY,EAAEA,YAAa;AAC3BJ,cAAAA,cAAc,EAAEA,cAAe;AAC/BU,cAAAA,aAAa,EAAEA,aAAc;AAC7BG,cAAAA,eAAe,EAAEA,eAAgB;AACjCjB,cAAAA,aAAa,EAAEA,aAAc;AAC7BgF,cAAAA,WAAW,EAAEA,WAAY;AACzBC,cAAAA,MAAM,EAAEA,MAAO;AACfC,cAAAA,0BAA0B,EAAEA,0BAA2B;AACvDE,cAAAA,yBAAyB,EAAEA,yBAA0B;AACrDC,cAAAA,MAAM,EAAEA,MAAO;AACfC,cAAAA,YAAY,EAAEA,YAAa;AAC3BC,cAAAA,aAAa,EAAEA,aAAc;AAC7BC,cAAAA,SAAS,EAAEA,SAAAA;AACX;AAAA;AACAC,cAAAA,SAAS,EAAEA,SAAU;AACrBC,cAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CC,cAAAA,YAAY,EAAEA,YAAa;AAC3BC,cAAAA,0BAA0B,EAAEA,0BAA2B;AACvD8D,cAAAA,kBAAkB,EAAEA,kBAAmB;AACvClH,cAAAA,kBAAkB,EAAEA,kBAAmB;AACvCgH,cAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CzD,cAAAA,aAAa,EAAEA,aAAc;cAC7BuE,UAAU,EAAEA,UAAU,IAAI5D,UAAU,KAAK,UAAU,IAAIA,UAAU,KAAK,YAAa;AACnFH,cAAAA,QAAQ,EAAEA,QAAS;cACnB6F,OAAO,EAAE,CAAC,EAAEvP,IAAI,IAAIA,IAAI,CAACO,MAAM,GAAG,CAAC,CAAE;AACrCuJ,cAAAA,yBAAyB,EAAEA,yBAA0B;AACrDE,cAAAA,cAAc,EAAEA,cAAe;AAC/BG,cAAAA,iBAAiB,EAAEA,iBAAkB;AACrCqF,cAAAA,KAAK,EAAElF,IAAK;AACZG,cAAAA,kBAAkB,EAAEA,kBAAmB;AACvC7E,cAAAA,gBAAgB,EAAEA,gBAAiB;AACnCmF,cAAAA,QAAQ,EAAEA,QAAAA;AAAS,aAAA,EACf6C,aAAa,CAAC;cAAE9K,IAAI,EAAE2M,aAAa,CAACH,eAAAA;AAAgB,aAAC,CAAC,CACtDI,EAAAA,sBAAsB,CAAC1E,IAAI,CAAC,CACjC,CAAA;AAAC,WACc,CAAC,eACnBqD,GAAA,CAACO,gBAAgB,EAAA;AACfvG,YAAAA,0BAA0B,EAAEA,0BAA2B;AACvDC,YAAAA,iCAAiC,EAAEA,iCAAkC;AACrEE,YAAAA,MAAM,EAAEA,MAAO;AACfC,YAAAA,YAAY,EAAEA,YAAa;AAC3BZ,YAAAA,UAAU,EAAEA,UAAW;AACvBnD,YAAAA,eAAe,EAAEA,eAAgB;AACjC6F,YAAAA,cAAc,EAAEA,cAAe;AAC/BD,YAAAA,IAAI,EAAEA,IAAK;AACXvC,YAAAA,SAAS,EAAEA,SAAU;AACrBE,YAAAA,WAAW,EAAEA,WAAY;AACzB2C,YAAAA,kBAAkB,EAAEA,kBAAAA;AAAmB,WACxC,CAAC,CAAA;SACc,CAAA;AAAC,OACH,CAAC,CAAA;KACZ,CAAC,EAETnB,YAAY,IAAImB,kBAAkB,GAAG,IAAI,gBACxCyD,GAAA,CAAChJ,OAAO,EAAA;AACNsK,MAAAA,UAAU,EAAEC,QAAQ,CAClBpD,qBAAqB,IAAI,CAAChD,aAAa,GAAGqG,2BAA2B,CAACvF,IAAI,CAAC,GAAG,CAChF,CAAE;MAAA1J,QAAA,eAEF8M,IAAA,CAACrI,OAAO,EAAA;AACNyI,QAAAA,OAAO,EAAC,MAAM;AACdC,QAAAA,aAAa,EAAC,KAAK;AACnBC,QAAAA,cAAc,EAAEV,kBAAkB,GAAG,eAAe,GAAG,UAAW;QAAA1M,QAAA,EAAA,cAElEyN,GAAA,CAACyB,QAAQ,EAAA;UACPrI,IAAI,EAAEjD,WAAW,CAAC;AAAEE,YAAAA,eAAe,EAAfA,eAAe;YAAEC,WAAW,EAAEqI,OAAO,CAAChF,QAAQ,CAAA;AAAE,WAAC,CAAE;AACvEA,UAAAA,QAAQ,EAAEA,QAAS;AACnBD,UAAAA,SAAS,EAAEA,SAAU;AACrBE,UAAAA,WAAW,EAAEA,WAAY;AACzB/C,UAAAA,UAAU,EAAEA,UAAW;AACvBF,UAAAA,WAAW,EAAEA,WAAY;AACzBC,UAAAA,aAAa,EAAEA,aAAc;AAC7BqF,UAAAA,IAAI,EAAEA,IAAAA;AAAK,SACZ,CAAC,EACDrB,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAkB,CAAGxH,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAIgB,UAAU,CAAC,CAAA;OACnC,CAAA;AAAC,KACH,CACV,CAAA;AAAA,GAAA,CACM,CAAC,CAAA;AAEd,CAAC,CAAA;AAED,IAAMsN,gBAAgB,gBAAG3P,cAAK,CAAC4P,UAAU,CAACjJ,UAAU,CAAC,CAAA;AACrD,IAAMkJ,SAAS,gBAAGC,wBAAwB,CAACH,gBAAgB,EAAE;AAAExK,EAAAA,WAAW,EAAE,WAAA;AAAY,CAAC;;;;"}
1
+ {"version":3,"file":"BaseInput.js","sources":["../../../../../../../src/components/Input/BaseInput/BaseInput.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport type { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { StyledBaseInput } from './StyledBaseInput';\nimport { BaseInputVisuals } from './BaseInputVisuals';\nimport { BaseInputWrapper } from './BaseInputWrapper';\nimport { BaseInputTagSlot } from './BaseInputTagSlot';\nimport type { InputWrapperRef } from './types';\nimport { baseInputBorderBackgroundMotion, formHintLeftLabelMarginLeft } from './baseInputTokens';\nimport type {\n FormInputLabelProps,\n FormInputValidationProps,\n FormInputHandleOnEvent,\n FormInputOnEvent,\n FormHintProps,\n} from '~components/Form';\nimport { FormHint, FormLabel } from '~components/Form';\nimport type { IconComponent } from '~components/Icons';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport {\n castWebType,\n getPlatformType,\n isReactNative,\n makeBorderSize,\n makeMotionTime,\n useBreakpoint,\n} from '~utils';\nimport type { Platform } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useFormId } from '~components/Form/useFormId';\nimport { useTheme } from '~components/BladeProvider';\nimport useInteraction from '~utils/useInteraction';\nimport type { ActionStates } from '~utils/useInteraction';\nimport type {\n FormInputHandleOnClickEvent,\n FormInputHandleOnKeyDownEvent,\n} from '~components/Form/FormTypes';\nimport type {\n BladeElementRef,\n ContainerElementType,\n DataAnalyticsAttribute,\n TestID,\n} from '~utils/types';\nimport { makeSize } from '~utils/makeSize';\nimport type { AriaAttributes } from '~utils/makeAccessible';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { throwBladeError } from '~utils/logger';\nimport { announce } from '~components/LiveAnnouncer/LiveAnnouncer';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { LinkProps } from '~components/Link';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport getIn from '~utils/lodashButBetter/get';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type { MotionMetaProp } from '~components/BaseMotion';\nimport { getInnerMotionRef, getOuterMotionRef } from '~utils/getMotionRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useInputGroupContext } from '~components/InputGroup/InputGroupContext';\n\ntype CommonAutoCompleteSuggestionTypes =\n | 'none'\n | 'name'\n | 'email'\n | 'username'\n | 'password'\n | 'newPassword'\n | 'oneTimeCode'\n | 'telephone'\n | 'postalCode'\n | 'countryName'\n | 'creditCardNumber'\n | 'creditCardCSC'\n | 'creditCardExpiry'\n | 'creditCardExpiryMonth'\n | 'creditCardExpiryYear';\n\ntype WebAutoCompleteSuggestionType = CommonAutoCompleteSuggestionTypes | 'on';\n\ntype BaseInputCommonProps = FormInputLabelProps &\n DataAnalyticsAttribute &\n FormInputValidationProps & {\n /**\n * Determines if it needs to be rendered as input, textarea or button\n */\n as?: 'input' | 'textarea' | 'button';\n /**\n * ID that will be used for accessibility\n */\n id: string;\n /**\n * Placeholder text to be displayed inside the input field\n */\n placeholder?: string;\n /**\n * Type of Input Field to be rendered.\n *\n * @default text\n */\n type?: 'text' | 'telephone' | 'email' | 'url' | 'number' | 'search' | 'password';\n /**\n * Used to set the default value of input field when it's uncontrolled\n */\n defaultValue?: string;\n /**\n * The name of the input field.\n *\n * Useful in form submissions\n */\n name?: string;\n /**\n * The callback function to be invoked when the input field gets focus\n */\n onFocus?: FormInputOnEvent;\n /**\n * The callback function to be invoked when the value of the input field changes\n */\n onChange?: FormInputOnEvent;\n /**\n * The callback function to be invoked when input is clicked\n */\n onClick?: FormInputOnEvent;\n /**\n * The callback function to be invoked when the value of the input field has any input\n */\n onInput?: FormInputOnEvent;\n /**\n * The callback function to be invoked whenever there is a keyDown event\n */\n onKeyDown?: FormInputHandleOnKeyDownEvent;\n /**\n * The callback function to be invoked when the the input field loses focus\n *\n * For React Native this will call `onEndEditing` event since we want to get the last value of the input field\n */\n onBlur?: FormInputOnEvent;\n /**\n * Ignores the blur event animation (Used in Select to ignore blur animation when item in option is clicked)\n */\n shouldIgnoreBlurAnimation?: boolean;\n /**\n * sets boolean that ignores the blur animations on baseinput\n */\n setShouldIgnoreBlurAnimation?: (shouldIgnoreBlurAnimation: boolean) => void;\n /**\n * Used to turn the input field to controlled so user can control the value\n */\n value?: string;\n /**\n * Used to disable the input field\n */\n isDisabled?: boolean;\n /**\n * If true, the input is marked as required, and `required` attribute will be added\n */\n isRequired?: boolean;\n /**\n * Icon to be shown at the start of the input field\n */\n leadingIcon?: IconComponent;\n /**\n * Prefix symbol to be displayed at the beginning of the input field. If leadingIcon is provided it'll be placed after it\n */\n prefix?: string;\n /**\n * Element to be rendered before suffix. This is decided by the component which is extending BaseInput\n *\n * eg: consumers can render a loader or they could render a clear button\n */\n trailingInteractionElement?: ReactNode;\n /**\n * Callback to be invoked when the TrailingInteractionElement is clicked\n */\n onTrailingInteractionElementClick?: () => void;\n /**\n * Element to be rendered before prefix. This is decided by the component which is extending BaseInput\n *\n * eg: consumers can render a country selector or button\n */\n leadingInteractionElement?: ReactNode;\n /**\n * Suffix symbol to be displayed at the end of the input field. If trailingIcon is provided it'll be placed before it\n */\n suffix?: string;\n /**\n * Icon to be displayed at the end of the input field\n */\n trailingIcon?: IconComponent;\n /**\n * Displays the character counter under the input field\n */\n maxCharacters?: number;\n /**\n * alignment of the text inside input field\n */\n textAlign?: 'left' | 'center' | 'right';\n /**\n * If true, focuses the input field on load\n *\n * **Note:**\n * Automatically focusing a form control can confuse visually-impaired people using screen-reading technology and people with cognitive impairments.\n * When autofocus is assigned, screen-readers \"teleport\" their user to the form control without warning them beforehand.\n */\n autoFocus?: boolean;\n /**\n * Hints the platform to display an appropriate virtual keyboard\n *\n * **Native:** Passes as is the `keyboardType` attribute\n *\n * **Web:** Passes the value to the `inputMode` attribute\n */\n keyboardType?: 'text' | 'search' | 'telephone' | 'email' | 'url' | 'decimal';\n /**\n * determines what return key to show on the keyboard of mobile devices/virtual keyboard\n * **Note**: Few values are platform dependent and might not render on all the platforms\n *\n * `default` is only available on native. it'll be mapped to `enter` for web\n * `previous` is only available on native android\n */\n keyboardReturnKeyType?: 'default' | 'go' | 'done' | 'next' | 'previous' | 'search' | 'send';\n /**\n * Element to be rendered on the trailing slot of input field label\n */\n trailingHeaderSlot?: (value?: string) => ReactNode;\n /**\n * Element to be rendered on the trailing slot of input field footer\n */\n trailingFooterSlot?: (value?: string) => ReactNode;\n /**\n * Sets the textarea's number of lines\n */\n numberOfLines?: 1 | 2 | 3 | 4 | 5;\n /**\n * Sets the accessibility label for the input\n */\n accessibilityLabel?: string;\n /**\n * Sets the id of the label\n *\n * (Useful when assigning one label to multiple elements using aria-labelledby)\n */\n labelId?: string;\n /**\n * Can be used in select to set the id of the active descendant from the listbox\n */\n activeDescendant?: string;\n /**\n * Hides the label text\n */\n hideLabelText?: boolean;\n /**\n * Hides the form hint text\n */\n hideFormHint?: boolean;\n /**\n * componentName prop sets the data-blade-component attribute name\n * for internal metric collection purposes\n */\n componentName?: string;\n /**\n * whether the input has a popup\n */\n hasPopup?: AriaAttributes['hasPopup'];\n /**\n * id of the popup\n */\n popupId?: string;\n /**\n * true if popup is in expanded state\n */\n isPopupExpanded?: boolean;\n setInputWrapperRef?: (node: ContainerElementType) => void;\n /**\n * sets the autocapitalize behavior for the input\n */\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n\n /**\n * constraints the height of input to given number rows\n *\n * When set to expandable, input takes 1 row in the begining and expands to take 3 when active\n *\n * @default 'single'\n */\n maxTagRows?: 'single' | 'multiple' | 'expandable';\n\n /**\n * A slot for adding tags to input\n */\n tags?: React.ReactElement[] | null;\n\n /**\n * Disables stripping of tags and shows all tags\n */\n showAllTags?: boolean;\n\n /**\n * State variable of active tag index\n */\n activeTagIndex?: number;\n\n /**\n * Is this input SelectInput or AutoComplete\n */\n isDropdownTrigger?: boolean;\n\n /**\n * Is the label expected to be rendered inside input?\n * Used in AutoComplete and Select when label can't exist outside\n *\n */\n isLabelInsideInput?: boolean;\n\n /**\n * State setter for active tag index\n */\n setActiveTagIndex?: (activeTagIndex: number) => void;\n /**\n * Sets the size of the input field\n * @default medium\n */\n size?: 'medium' | 'large';\n /**\n * Link button to be rendered at the end of the input field.\n * **Note:** `size` of the Link will be set to the same size as the input field, `isDisabled` will follow Input's `isDisabled`, & `variant` will be set to `button`.\n * Example:\n * ```tsx\n * trailingButton={<Link onClick={handleClick}>Apply</Link>}\n * ```\n */\n trailingButton?: React.ReactElement<LinkProps>;\n /**\n * Whether to use Text or Heading component for Input text\n * @default text\n **/\n valueComponentType?: 'text' | 'heading';\n /**\n * Whether to render the input as a table cell\n * @default true\n **/\n isTableInputCell?: boolean;\n /**\n * Hides the form hints and shows them as tooltip of trailing\n */\n showHintsAsTooltip?: boolean;\n\n role?: AriaAttributes['role'];\n\n /**\n * Tab Index of the input field\n *\n * @default undefined\n */\n tabIndex?: number;\n } & TestID &\n Platform.Select<{\n native: {\n /**\n * The callback function to be invoked when the value of the input field is submitted.\n */\n onSubmit?: FormInputOnEvent;\n /**\n * determines what autoComplete suggestion type to show\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: CommonAutoCompleteSuggestionTypes;\n };\n web: {\n /**\n * This is a react-native only prop and has no effect on web.\n */\n onSubmit?: undefined;\n /**\n * determines what autoComplete suggestion type to show\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: WebAutoCompleteSuggestionType;\n };\n }> &\n StyledPropsBlade &\n MotionMetaProp;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype BaseInputPropsWithA11yLabel = {\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 BaseInputPropsWithLabel = {\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\nexport type BaseInputProps = (BaseInputPropsWithA11yLabel | BaseInputPropsWithLabel) &\n BaseInputCommonProps;\n\nconst autoCompleteSuggestionTypeValues = [\n 'none',\n 'on',\n 'name',\n 'email',\n 'username',\n 'password',\n 'newPassword',\n 'oneTimeCode',\n 'telephone',\n 'postalCode',\n 'countryName',\n 'creditCardNumber',\n 'creditCardCSC',\n 'creditCardExpiry',\n 'creditCardExpiryMonth',\n 'creditCardExpiryYear',\n];\n\ntype OnInputKeydownTagHandlerType = (key: string | undefined) => void;\nconst useTags = (\n tags: BaseInputProps['tags'],\n activeTagIndex: number,\n setActiveTagIndex?: (activeTagIndex: number) => void,\n): {\n onInputKeydownTagHandler: OnInputKeydownTagHandlerType;\n visibleTagsCountRef: React.MutableRefObject<number>;\n} => {\n const visibleTagsCountRef = React.useRef<number>(0);\n\n React.useEffect(() => {\n if (tags && activeTagIndex >= 0 && activeTagIndex < tags.length) {\n const tagTitle = tags[activeTagIndex]?.props?.children;\n if (tagTitle) {\n announce(`Close ${tagTitle} Tag`);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeTagIndex, tags?.length]);\n\n const onTagLeft = (): void => {\n if (activeTagIndex < 0) {\n setActiveTagIndex?.(visibleTagsCountRef.current - 1);\n }\n\n if (activeTagIndex > 0) {\n setActiveTagIndex?.(activeTagIndex - 1);\n }\n };\n\n const onTagRight = (): void => {\n if (activeTagIndex < visibleTagsCountRef.current - 1) {\n setActiveTagIndex?.(activeTagIndex + 1);\n }\n };\n\n const onTagRemove = (): void => {\n if (activeTagIndex >= 0 && activeTagIndex < visibleTagsCountRef.current && tags) {\n tags[activeTagIndex].props.onDismiss({ tagIndex: activeTagIndex });\n }\n };\n\n const onInputKeydownTagHandler: OnInputKeydownTagHandlerType = (key) => {\n if (tags && tags.length > 0) {\n if (key === 'ArrowRight') {\n onTagRight();\n }\n\n if (key === 'ArrowLeft') {\n onTagLeft();\n }\n\n if (key === 'Backspace') {\n onTagRemove();\n }\n }\n };\n\n return {\n onInputKeydownTagHandler,\n visibleTagsCountRef,\n };\n};\n\nconst useInput = ({\n value,\n defaultValue,\n onClick,\n onFocus,\n onChange,\n onBlur,\n onSubmit,\n onInput,\n onKeyDown,\n onInputKeydownTagHandler,\n}: Pick<\n BaseInputProps,\n | 'value'\n | 'defaultValue'\n | 'onFocus'\n | 'onChange'\n | 'onBlur'\n | 'onInput'\n | 'onKeyDown'\n | 'onClick'\n | 'onSubmit'\n> & {\n onInputKeydownTagHandler: OnInputKeydownTagHandlerType;\n}): {\n handleOnFocus: FormInputHandleOnEvent;\n handleOnClick: FormInputHandleOnClickEvent;\n handleOnChange: FormInputHandleOnEvent;\n handleOnBlur: FormInputHandleOnEvent;\n handleOnSubmit: FormInputHandleOnEvent;\n handleOnInput: FormInputHandleOnEvent;\n handleOnKeyDown: FormInputHandleOnKeyDownEvent;\n inputValue?: string;\n} => {\n if (__DEV__) {\n if (value && defaultValue) {\n throwBladeError({\n message: `Either 'value' or 'defaultValue' shall be passed. This decides if the input field is controlled or uncontrolled`,\n moduleName: 'Input',\n });\n }\n }\n\n const [inputValue, setInputValue] = React.useState(defaultValue ?? value);\n\n const handleOnFocus: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onFocus?.({\n name,\n value: _value,\n });\n },\n [onFocus],\n );\n\n const handleOnClick: FormInputHandleOnClickEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.currentTarget.value ?? '';\n }\n\n onClick?.({\n name,\n value: _value,\n });\n },\n [onClick],\n );\n\n const handleOnSubmit: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n if (isReactNative()) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error\n //@ts-ignore need to ignore this since it will throw a TS error for web but not for native\n onSubmit?.({\n name,\n value: _value,\n });\n }\n },\n [onSubmit],\n );\n\n const handleOnBlur: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n if (getPlatformType() === 'react-native' && typeof value == 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onBlur?.({\n name,\n value: _value,\n });\n },\n [onBlur],\n );\n\n const handleOnChange: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n\n if (getPlatformType() === 'react-native' && typeof value === 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onChange?.({\n name,\n value: _value,\n });\n setInputValue(_value);\n },\n [onChange],\n );\n\n const handleOnInput: FormInputHandleOnEvent = React.useCallback(\n ({ name, value }) => {\n let _value = '';\n if (getPlatformType() === 'react-native' && typeof value == 'string') {\n _value = value;\n } else if (typeof value !== 'string') {\n // Could have just done \"getPlatformType() === 'react-native' ? value : value?.target.value\" but TS doesn't understands that\n _value = value?.target.value ?? '';\n }\n\n onInput?.({\n name,\n value: _value,\n });\n },\n [onInput],\n );\n\n const handleOnKeyDown: FormInputHandleOnKeyDownEvent = React.useCallback(\n ({ name, key, code, event }) => {\n onInputKeydownTagHandler(key);\n onKeyDown?.({\n name,\n key,\n code,\n event,\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onKeyDown],\n );\n\n return {\n handleOnFocus,\n handleOnClick,\n handleOnChange,\n handleOnBlur,\n handleOnSubmit,\n handleOnInput,\n handleOnKeyDown,\n inputValue,\n };\n};\n\nexport const getHintType = ({\n validationState,\n hasHelpText,\n}: {\n validationState: BaseInputProps['validationState'];\n hasHelpText: boolean;\n}): FormHintProps['type'] => {\n if (validationState === 'error') {\n return 'error';\n }\n\n if (validationState === 'success') {\n return 'success';\n }\n\n if (hasHelpText) {\n return 'help';\n }\n\n return 'help';\n};\n\nconst getDescribedByElementId = ({\n validationState,\n hasErrorText,\n hasSuccessText,\n hasHelpText,\n errorTextId,\n successTextId,\n helpTextId,\n}: {\n validationState: BaseInputProps['validationState'];\n hasErrorText: boolean;\n hasSuccessText: boolean;\n hasHelpText: boolean;\n errorTextId: string;\n successTextId: string;\n helpTextId: string;\n}): string => {\n if (validationState === 'error' && hasErrorText) {\n return errorTextId;\n }\n\n if (validationState === 'success' && hasSuccessText) {\n return successTextId;\n }\n\n if (hasHelpText) {\n return helpTextId;\n }\n\n return '';\n};\n\nconst FocusRingWrapper = styled(BaseBox)<{\n currentInteraction: ActionStates;\n isTableInputCell: NonNullable<BaseInputProps['isTableInputCell']>;\n className: string;\n}>(({ theme, currentInteraction, isTableInputCell }) => ({\n borderRadius: makeBorderSize(\n isTableInputCell ? theme.border.radius.none : theme.border.radius.medium,\n ),\n width: '100%',\n '&:focus-within': !isTableInputCell\n ? {\n ...getFocusRingStyles({\n theme,\n }),\n transitionDuration: castWebType(\n makeMotionTime(\n getIn(\n theme.motion.duration,\n baseInputBorderBackgroundMotion[currentInteraction === 'focus' ? 'enter' : 'exit']\n .duration,\n ),\n ),\n ),\n transitionTimingFunction: castWebType(\n theme.motion.easing[\n baseInputBorderBackgroundMotion[currentInteraction === 'focus' ? 'enter' : 'exit']\n .easing\n ],\n ),\n }\n : {},\n}));\n\nconst _BaseInput: React.ForwardRefRenderFunction<BladeElementRef, BaseInputProps> = (\n {\n as = 'input',\n label,\n labelPosition = 'top',\n placeholder,\n type = 'text',\n defaultValue,\n tags,\n showAllTags = false,\n activeTagIndex = -1,\n setActiveTagIndex,\n name,\n value,\n onFocus,\n onChange,\n onInput,\n onBlur,\n onSubmit,\n onClick,\n onKeyDown,\n isDisabled,\n necessityIndicator,\n validationState,\n errorText,\n helpText,\n successText,\n isRequired,\n leadingIcon,\n prefix,\n trailingInteractionElement,\n onTrailingInteractionElementClick,\n leadingInteractionElement,\n suffix,\n trailingIcon,\n maxCharacters,\n textAlign,\n autoFocus,\n keyboardReturnKeyType,\n keyboardType,\n autoCompleteSuggestionType,\n trailingHeaderSlot,\n trailingFooterSlot,\n numberOfLines,\n id,\n componentName,\n accessibilityLabel,\n labelId,\n activeDescendant,\n hideLabelText,\n hideFormHint,\n hasPopup,\n popupId,\n isPopupExpanded,\n maxTagRows,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n autoCapitalize,\n setInputWrapperRef,\n testID,\n isDropdownTrigger,\n isLabelInsideInput,\n size = 'medium',\n trailingButton,\n valueComponentType = 'text',\n isTableInputCell = false,\n showHintsAsTooltip = false,\n _motionMeta,\n role,\n tabIndex,\n ...rest\n },\n ref,\n) => {\n const { theme } = useTheme();\n const inputRef = React.useRef<BladeElementRef>(null);\n const mergedInputRef = useMergeRefs(ref, inputRef);\n const inputWrapperRef: InputWrapperRef = React.useRef(null);\n const { onInputKeydownTagHandler, visibleTagsCountRef } = useTags(\n tags,\n activeTagIndex,\n setActiveTagIndex,\n );\n const [showAllTagsWithAnimation, setShowAllTagsWithAnimation] = React.useState(false);\n const isReactNative = getPlatformType() === 'react-native';\n const defaultRole = hasPopup ? 'combobox' : undefined;\n\n const inputGroupProps = useInputGroupContext();\n const { isInsideInputGroup } = inputGroupProps;\n const _isDisabled = inputGroupProps.isDisabled ?? isDisabled;\n const _size = inputGroupProps.size ?? size;\n\n React.useEffect(() => {\n if (showAllTags) {\n setShowAllTagsWithAnimation(true);\n } else if (maxTagRows !== 'expandable') {\n setShowAllTagsWithAnimation(false);\n }\n }, [showAllTags, maxTagRows]);\n\n const {\n handleOnFocus,\n handleOnChange,\n handleOnClick,\n handleOnBlur,\n handleOnSubmit,\n handleOnInput,\n handleOnKeyDown,\n inputValue,\n } = useInput({\n defaultValue,\n value,\n onFocus,\n onClick,\n onChange,\n onBlur,\n onSubmit,\n onInput,\n onKeyDown,\n onInputKeydownTagHandler,\n });\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId(id);\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';\n const { currentInteraction, setCurrentInteraction } = useInteraction();\n const _isRequired = isRequired || necessityIndicator === 'required';\n\n const accessibilityProps = makeAccessible({\n required: Boolean(_isRequired),\n disabled: Boolean(_isDisabled),\n invalid: Boolean(validationState === 'error'),\n describedBy: getDescribedByElementId({\n validationState,\n hasErrorText: Boolean(errorText),\n hasSuccessText: Boolean(successText),\n hasHelpText: Boolean(helpText),\n errorTextId,\n successTextId,\n helpTextId,\n }),\n label: accessibilityLabel,\n hasPopup,\n expanded: hasPopup ? isPopupExpanded : undefined,\n controls: hasPopup ? popupId : undefined,\n role: role ?? defaultRole,\n activeDescendant,\n });\n\n const willRenderHintText =\n Boolean(helpText) ||\n (validationState === 'success' && Boolean(successText)) ||\n (validationState === 'error' && Boolean(errorText));\n\n if (__DEV__) {\n if (\n autoCompleteSuggestionType &&\n !autoCompleteSuggestionTypeValues.includes(autoCompleteSuggestionType)\n ) {\n throwBladeError({\n message: `Expected autoCompleteSuggestionType to be one of ${autoCompleteSuggestionTypeValues.join(\n ', ',\n )} but received ${autoCompleteSuggestionType}`,\n moduleName: 'Input',\n });\n }\n }\n\n const isTextArea = as === 'textarea';\n return (\n <BaseBox\n ref={getOuterMotionRef({ _motionMeta, ref })}\n {...metaAttribute({ name: componentName, testID })}\n {...getStyledProps(rest)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n justifyContent={isLabelLeftPositioned ? 'center' : undefined}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n width=\"100%\"\n >\n {/* If the input is in an input group, we don't want to render the label */}\n {!hideLabelText && !isLabelInsideInput && label && !isInsideInputGroup && (\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'column' : 'row'}\n justifyContent=\"space-between\"\n alignSelf={isTextArea ? 'flex-start' : undefined}\n marginY={isTextArea && isLabelLeftPositioned ? 'spacing.3' : 'spacing.0'}\n >\n <FormLabel\n as=\"label\"\n necessityIndicator={necessityIndicator}\n position={labelPosition}\n id={labelId}\n htmlFor={inputId}\n size={_size}\n >\n {label}\n </FormLabel>\n {trailingHeaderSlot?.(value ?? inputValue)}\n </BaseBox>\n )}\n <FocusRingWrapper\n currentInteraction={currentInteraction}\n isTableInputCell={isTableInputCell}\n className=\"focus-ring-wrapper\"\n >\n <BaseInputWrapper\n isDropdownTrigger={isDropdownTrigger}\n isTextArea={isTextArea}\n isDisabled={_isDisabled}\n validationState={validationState}\n currentInteraction={currentInteraction}\n isLabelLeftPositioned={isLabelLeftPositioned}\n showAllTags={showAllTags}\n setShowAllTagsWithAnimation={setShowAllTagsWithAnimation}\n ref={(refNode) => {\n if (refNode) {\n setInputWrapperRef?.(refNode);\n inputWrapperRef.current = refNode;\n }\n }}\n maxTagRows={maxTagRows}\n size={_size}\n numberOfLines={numberOfLines}\n onClick={() => {\n if (!isReactNative) {\n inputRef.current?.focus();\n }\n }}\n isTableInputCell={isTableInputCell}\n >\n <BaseInputVisuals\n size={_size}\n leadingIcon={leadingIcon}\n prefix={prefix}\n isDisabled={_isDisabled}\n leadingInteractionElement={leadingInteractionElement}\n />\n <BaseInputTagSlot\n renderAs={as}\n tags={tags}\n isDisabled={_isDisabled}\n showAllTags={showAllTagsWithAnimation}\n setFocusOnInput={() => {\n const innerRef = getInnerMotionRef({ _motionMeta, ref });\n if (innerRef && !isReactNative && 'current' in innerRef) {\n innerRef.current?.focus();\n }\n }}\n labelPrefix={isLabelInsideInput ? label : undefined}\n isDropdownTrigger={isDropdownTrigger}\n visibleTagsCountRef={visibleTagsCountRef}\n handleOnInputClick={(e) => {\n handleOnClick({ name, value: isReactNative ? value : e });\n }}\n setShouldIgnoreBlurAnimation={setShouldIgnoreBlurAnimation}\n maxTagRows={maxTagRows}\n inputWrapperRef={inputWrapperRef}\n size={_size}\n numberOfLines={numberOfLines}\n isTextArea={isTextArea}\n >\n <StyledBaseInput\n as={as}\n id={inputId}\n ref={getInnerMotionRef({ _motionMeta, ref: mergedInputRef as any }) as never}\n name={name}\n type={type}\n defaultValue={defaultValue}\n value={value}\n placeholder={placeholder}\n isDisabled={_isDisabled}\n validationState={validationState}\n isRequired={_isRequired}\n handleOnFocus={handleOnFocus}\n handleOnChange={handleOnChange}\n handleOnBlur={handleOnBlur}\n handleOnSubmit={handleOnSubmit}\n handleOnInput={handleOnInput}\n handleOnKeyDown={handleOnKeyDown}\n handleOnClick={handleOnClick}\n leadingIcon={leadingIcon}\n prefix={prefix}\n trailingInteractionElement={trailingInteractionElement}\n leadingInteractionElement={leadingInteractionElement}\n suffix={suffix}\n trailingIcon={trailingIcon}\n maxCharacters={maxCharacters}\n textAlign={textAlign}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n keyboardReturnKeyType={keyboardReturnKeyType}\n keyboardType={keyboardType}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n accessibilityProps={accessibilityProps}\n currentInteraction={currentInteraction}\n setCurrentInteraction={setCurrentInteraction}\n numberOfLines={numberOfLines}\n isTextArea={isTextArea || maxTagRows === 'multiple' || maxTagRows === 'expandable'}\n hasPopup={hasPopup}\n hasTags={!!(tags && tags.length > 0)}\n shouldIgnoreBlurAnimation={shouldIgnoreBlurAnimation}\n autoCapitalize={autoCapitalize}\n isDropdownTrigger={isDropdownTrigger}\n $size={_size}\n valueComponentType={valueComponentType}\n isTableInputCell={isTableInputCell}\n tabIndex={tabIndex}\n {...metaAttribute({ name: MetaConstants.StyledBaseInput })}\n {...makeAnalyticsAttribute(rest)}\n />\n </BaseInputTagSlot>\n <BaseInputVisuals\n trailingInteractionElement={trailingInteractionElement}\n onTrailingInteractionElementClick={onTrailingInteractionElementClick}\n suffix={suffix}\n trailingIcon={trailingIcon}\n isDisabled={_isDisabled}\n validationState={validationState}\n trailingButton={trailingButton}\n size={_size}\n errorText={errorText}\n successText={successText}\n showHintsAsTooltip={showHintsAsTooltip}\n />\n </BaseInputWrapper>\n </FocusRingWrapper>\n </BaseBox>\n {/* If the input is in an input group, we don't want to render the hint text */}\n {hideFormHint || showHintsAsTooltip || isInsideInputGroup ? null : (\n <BaseBox\n marginLeft={makeSize(\n isLabelLeftPositioned && !hideLabelText ? formHintLeftLabelMarginLeft[_size] : 0,\n )}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent={willRenderHintText ? 'space-between' : 'flex-end'}\n >\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={_size}\n />\n {trailingFooterSlot?.(value ?? inputValue)}\n </BaseBox>\n </BaseBox>\n )}\n </BaseBox>\n );\n};\n\nconst BaseInputWithRef = React.forwardRef(_BaseInput);\nconst BaseInput = assignWithoutSideEffects(BaseInputWithRef, { displayName: 'BaseInput' });\n\nexport { BaseInput };\n"],"names":["autoCompleteSuggestionTypeValues","useTags","tags","activeTagIndex","setActiveTagIndex","visibleTagsCountRef","React","useRef","useEffect","length","_tags$activeTagIndex","_tags$activeTagIndex$","tagTitle","props","children","announce","concat","onTagLeft","current","onTagRight","onTagRemove","onDismiss","tagIndex","onInputKeydownTagHandler","key","useInput","_ref","value","defaultValue","onClick","onFocus","onChange","onBlur","onSubmit","onInput","onKeyDown","throwBladeError","message","moduleName","_React$useState","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","handleOnFocus","useCallback","_ref2","name","_value","getPlatformType","_value$target$value","target","handleOnClick","_ref3","_value$currentTarget$","currentTarget","handleOnSubmit","_ref4","_value$target$value2","isReactNative","handleOnBlur","_ref5","_value$target$value3","handleOnChange","_ref6","_value$target$value4","handleOnInput","_ref7","_value$target$value5","handleOnKeyDown","_ref8","code","event","getHintType","_ref9","validationState","hasHelpText","getDescribedByElementId","_ref10","hasErrorText","hasSuccessText","errorTextId","successTextId","helpTextId","FocusRingWrapper","styled","BaseBox","withConfig","displayName","componentId","_ref11","theme","currentInteraction","isTableInputCell","borderRadius","makeBorderSize","border","radius","none","medium","width","_objectSpread","getFocusRingStyles","transitionDuration","castWebType","makeMotionTime","getIn","motion","duration","baseInputBorderBackgroundMotion","transitionTimingFunction","easing","_BaseInput","_ref12","ref","_inputGroupProps$isDi","_inputGroupProps$size","_ref12$as","as","label","_ref12$labelPosition","labelPosition","placeholder","_ref12$type","type","_ref12$showAllTags","showAllTags","_ref12$activeTagIndex","isDisabled","necessityIndicator","errorText","helpText","successText","isRequired","leadingIcon","prefix","trailingInteractionElement","onTrailingInteractionElementClick","leadingInteractionElement","suffix","trailingIcon","maxCharacters","textAlign","autoFocus","keyboardReturnKeyType","keyboardType","autoCompleteSuggestionType","trailingHeaderSlot","trailingFooterSlot","numberOfLines","id","componentName","accessibilityLabel","labelId","activeDescendant","hideLabelText","hideFormHint","hasPopup","popupId","isPopupExpanded","maxTagRows","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","autoCapitalize","setInputWrapperRef","testID","isDropdownTrigger","isLabelInsideInput","_ref12$size","size","trailingButton","_ref12$valueComponent","valueComponentType","_ref12$isTableInputCe","_ref12$showHintsAsToo","showHintsAsTooltip","_motionMeta","role","tabIndex","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","inputRef","mergedInputRef","useMergeRefs","inputWrapperRef","_useTags","_React$useState3","_React$useState4","showAllTagsWithAnimation","setShowAllTagsWithAnimation","defaultRole","undefined","inputGroupProps","useInputGroupContext","isInsideInputGroup","_isDisabled","_size","_useInput","_useFormId","useFormId","inputId","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isLabelLeftPositioned","_useInteraction","useInteraction","setCurrentInteraction","_isRequired","accessibilityProps","makeAccessible","required","Boolean","disabled","invalid","describedBy","expanded","controls","willRenderHintText","includes","join","isTextArea","_jsxs","getOuterMotionRef","metaAttribute","getStyledProps","display","flexDirection","justifyContent","alignItems","position","alignSelf","marginY","_jsx","FormLabel","htmlFor","className","BaseInputWrapper","refNode","_inputRef$current","focus","BaseInputVisuals","BaseInputTagSlot","renderAs","setFocusOnInput","innerRef","getInnerMotionRef","_innerRef$current","labelPrefix","handleOnInputClick","e","StyledBaseInput","hasTags","$size","MetaConstants","makeAnalyticsAttribute","marginLeft","makeSize","formHintLeftLabelMarginLeft","FormHint","BaseInputWithRef","forwardRef","BaseInput","assignWithoutSideEffects"],"mappings":"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"}
@@ -42,6 +42,7 @@ var getInputBackgroundAndBorderStyles = function getInputBackgroundAndBorderStyl
42
42
  var backgroundColor = getIn(theme.colors, backgroundColorTokens["default"]);
43
43
  var borderColor = isTableInputCell ? theme.colors.transparent : getIn(theme.colors, baseInputBorderColor["default"]);
44
44
  var borderWidth = getIn(theme.border.width, baseInputBorderWidth["default"]);
45
+ var zIndex;
45
46
  var baseInputState = getBaseInputState({
46
47
  isFocused: isFocused,
47
48
  isHovered: isHovered,
@@ -53,6 +54,7 @@ var getInputBackgroundAndBorderStyles = function getInputBackgroundAndBorderStyl
53
54
  if (!isTableInputCell && validationState && validationState !== 'none') {
54
55
  borderColor = getIn(theme.colors, baseInputBorderColor[validationState]);
55
56
  borderWidth = getIn(theme.border.width, baseInputBorderWidth[validationState]);
57
+ zIndex = 1; // Prevent validation ring clipping by adjacent inputs in InputGroup
56
58
  } else if (validationState && validationState !== 'none') {
57
59
  backgroundColor = getIn(theme.colors, baseInputBorderlessBackgroundColor[validationState]);
58
60
  }
@@ -66,7 +68,8 @@ var getInputBackgroundAndBorderStyles = function getInputBackgroundAndBorderStyl
66
68
  alignItems: isTextArea ? 'flex-start' : undefined,
67
69
  position: 'relative',
68
70
  height: isDropdownTrigger && !isTextArea ? 'auto' : undefined,
69
- border: 'none'
71
+ border: 'none',
72
+ zIndex: zIndex
70
73
  }, getBaseInputBorderStyles({
71
74
  theme: theme,
72
75
  borderColor: borderColor,
@@ -1 +1 @@
1
- {"version":3,"file":"baseInputStyles.js","sources":["../../../../../../../src/components/Input/BaseInput/baseInputStyles.ts"],"sourcesContent":["import type { CSSObject } from 'styled-components';\nimport type { BaseInputProps } from './BaseInput';\nimport { getBaseInputBorderStyles } from './getBaseInputBorderStyles';\nimport {\n baseInputBackgroundColor,\n baseInputBorderColor,\n baseInputBorderWidth,\n baseInputBorderlessBackgroundColor,\n baseInputHeight,\n baseInputPaddingTokens,\n baseInputWrapperMaxHeight,\n} from './baseInputTokens';\nimport { getInputVisualsToBeRendered } from './BaseInputVisuals';\nimport type { BaseInputWrapperProps } from './types';\nimport type { Theme } from '~components/BladeProvider';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeBorderSize } from '~utils/makeBorderSize';\nimport { getPlatformType } from '~utils';\nimport getIn from '~utils/lodashButBetter/get';\nimport getHeadingStyles from '~components/Typography/Heading/getHeadingStyles';\n\ntype GetInputStyles = Pick<\n BaseInputProps,\n | 'isDisabled'\n | 'validationState'\n | 'leadingIcon'\n | 'prefix'\n | 'trailingInteractionElement'\n | 'leadingInteractionElement'\n | 'suffix'\n | 'trailingIcon'\n | 'textAlign'\n | 'isDropdownTrigger'\n | 'valueComponentType'\n> & {\n isHovered?: boolean;\n isFocused?: boolean;\n isTextArea?: boolean;\n hasTags?: boolean;\n theme: Theme;\n size: NonNullable<BaseInputProps['size']>;\n isTableInputCell: NonNullable<BaseInputProps['isTableInputCell']>;\n};\n\nexport const getBaseInputState = ({\n isFocused,\n isHovered,\n isDisabled,\n}: {\n isFocused?: boolean;\n isHovered?: boolean;\n isDisabled?: boolean;\n}): 'focused' | 'hovered' | 'disabled' | 'default' => {\n if (isDisabled) {\n return 'disabled';\n } else if (isFocused) {\n return 'focused';\n } else if (isHovered) {\n return 'hovered';\n } else {\n return 'default';\n }\n};\n\nexport const getInputBackgroundAndBorderStyles = ({\n theme,\n isHovered,\n isFocused,\n isDisabled,\n validationState,\n isTextArea,\n isDropdownTrigger,\n isTableInputCell,\n}: Pick<\n GetInputStyles,\n | 'theme'\n | 'isFocused'\n | 'isDisabled'\n | 'validationState'\n | 'isHovered'\n | 'isTextArea'\n | 'isDropdownTrigger'\n | 'isTableInputCell'\n>): CSSObject => {\n // normal state\n const backgroundColorTokens = isTableInputCell\n ? baseInputBorderlessBackgroundColor\n : baseInputBackgroundColor;\n let backgroundColor = getIn(theme.colors, backgroundColorTokens.default);\n let borderColor = isTableInputCell\n ? theme.colors.transparent\n : getIn(theme.colors, baseInputBorderColor.default);\n let borderWidth = getIn(theme.border.width, baseInputBorderWidth.default);\n\n const baseInputState = getBaseInputState({ isFocused, isHovered, isDisabled });\n\n backgroundColor = getIn(theme.colors, backgroundColorTokens[baseInputState]);\n borderColor =\n isTableInputCell && baseInputState !== 'focused'\n ? theme.colors.transparent\n : getIn(theme.colors, baseInputBorderColor[baseInputState]);\n borderWidth = getIn(theme.border.width, baseInputBorderWidth[baseInputState]);\n\n if (!isTableInputCell && validationState && validationState !== 'none') {\n borderColor = getIn(theme.colors, baseInputBorderColor[validationState]);\n borderWidth = getIn(theme.border.width, baseInputBorderWidth[validationState]);\n } else if (validationState && validationState !== 'none') {\n backgroundColor = getIn(theme.colors, baseInputBorderlessBackgroundColor[validationState]);\n }\n\n return {\n backgroundColor,\n borderRadius: makeBorderSize(\n isTableInputCell ? theme.border.radius.none : theme.border.radius.medium,\n ),\n borderStyle: 'solid',\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n alignItems: isTextArea ? 'flex-start' : undefined,\n position: 'relative',\n height: isDropdownTrigger && !isTextArea ? 'auto' : undefined,\n border: 'none',\n ...getBaseInputBorderStyles({ theme, borderColor, borderWidth, isFocused }),\n };\n};\n\nconst getLeftPadding = ({\n theme,\n isDropdownTrigger,\n hasLeadingIcon,\n hasPrefix,\n size,\n}: {\n theme: Theme;\n hasLeadingIcon: boolean;\n hasPrefix: boolean;\n isDropdownTrigger: GetInputStyles['isDropdownTrigger'];\n size: GetInputStyles['size'];\n}): number => {\n if (isDropdownTrigger) {\n return theme.spacing[0];\n }\n\n if (hasLeadingIcon || hasPrefix) {\n return theme.spacing[3];\n }\n\n return theme.spacing[baseInputPaddingTokens.left[size]];\n};\n\nconst getRightPadding = ({\n theme,\n hasTrailingInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n size,\n}: {\n theme: Theme;\n hasTrailingInteractionElement: boolean;\n hasSuffix: boolean;\n hasTrailingIcon: boolean;\n size: GetInputStyles['size'];\n}): number => {\n if (hasTrailingInteractionElement || hasSuffix || hasTrailingIcon) {\n return theme.spacing[3];\n }\n return theme.spacing[baseInputPaddingTokens.right[size]];\n};\n\nexport const getBaseInputStyles = ({\n theme,\n isDisabled,\n leadingIcon,\n prefix,\n trailingInteractionElement,\n leadingInteractionElement,\n suffix,\n trailingIcon,\n textAlign,\n isTextArea,\n hasTags,\n isDropdownTrigger,\n size,\n valueComponentType,\n}: GetInputStyles): CSSObject => {\n const {\n hasLeadingIcon,\n hasPrefix,\n hasTrailingInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n } = getInputVisualsToBeRendered({\n leadingIcon,\n prefix,\n trailingInteractionElement,\n leadingInteractionElement,\n suffix,\n trailingIcon,\n size,\n });\n\n const isDropdownWithTags = isDropdownTrigger && hasTags;\n const isReactNative = getPlatformType() === 'react-native';\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n const shouldHaveFlexibleHeight = isTextArea || isDropdownWithTags;\n\n return {\n ...(valueComponentType === 'heading'\n ? getHeadingStyles({\n size,\n weight: 'regular',\n color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',\n theme,\n })\n : getTextStyles({\n size,\n variant: 'body',\n weight: 'regular',\n color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',\n theme,\n })),\n\n // take the full available width of parent container for input field\n flex: 1,\n backgroundColor: theme.colors.transparent,\n\n paddingTop: makeSpace(theme.spacing[baseInputPaddingTokens.top[size]]),\n paddingBottom: makeSpace(theme.spacing[baseInputPaddingTokens.bottom[size]]),\n paddingLeft: makeSpace(\n getLeftPadding({ theme, isDropdownTrigger, hasLeadingIcon, hasPrefix, size }),\n ),\n paddingRight: getRightPadding({\n theme,\n hasTrailingInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n size,\n }),\n\n textAlign,\n width: '100%',\n height: shouldHaveFlexibleHeight ? undefined : makeSpace(baseInputHeight[size]),\n minHeight: shouldHaveFlexibleHeight ? undefined : makeSpace(baseInputHeight[size]),\n ...(isReactNative ? {} : { resize: 'none' }),\n };\n};\n\nexport const getAnimatedBaseInputWrapperMaxHeight = ({\n maxTagRows,\n showAllTags,\n size,\n}: Pick<BaseInputWrapperProps, 'maxTagRows' | 'showAllTags' | 'size'>): number => {\n if (maxTagRows === 'single') {\n return baseInputHeight[size];\n }\n\n if (maxTagRows === 'multiple') {\n return baseInputWrapperMaxHeight[size];\n }\n\n // In expandable, max-height depends on the state\n return showAllTags ? baseInputWrapperMaxHeight[size] : baseInputHeight[size];\n};\n"],"names":["getBaseInputState","_ref","isFocused","isHovered","isDisabled","getInputBackgroundAndBorderStyles","_ref2","theme","validationState","isTextArea","isDropdownTrigger","isTableInputCell","backgroundColorTokens","baseInputBorderlessBackgroundColor","baseInputBackgroundColor","backgroundColor","getIn","colors","borderColor","transparent","baseInputBorderColor","borderWidth","border","width","baseInputBorderWidth","baseInputState","_objectSpread","borderRadius","makeBorderSize","radius","none","medium","borderStyle","display","flexDirection","alignItems","undefined","position","height","getBaseInputBorderStyles","getLeftPadding","_ref3","hasLeadingIcon","hasPrefix","size","spacing","baseInputPaddingTokens","left","getRightPadding","_ref4","hasTrailingInteractionElement","hasSuffix","hasTrailingIcon","right","getBaseInputStyles","_ref5","leadingIcon","prefix","trailingInteractionElement","leadingInteractionElement","suffix","trailingIcon","textAlign","hasTags","valueComponentType","_getInputVisualsToBeR","getInputVisualsToBeRendered","isDropdownWithTags","isReactNative","getPlatformType","shouldHaveFlexibleHeight","getHeadingStyles","weight","color","getTextStyles","variant","flex","paddingTop","makeSpace","top","paddingBottom","bottom","paddingLeft","paddingRight","baseInputHeight","minHeight","resize","getAnimatedBaseInputWrapperMaxHeight","_ref6","maxTagRows","showAllTags","baseInputWrapperMaxHeight"],"mappings":"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"}
1
+ {"version":3,"file":"baseInputStyles.js","sources":["../../../../../../../src/components/Input/BaseInput/baseInputStyles.ts"],"sourcesContent":["import type { CSSObject } from 'styled-components';\nimport type { BaseInputProps } from './BaseInput';\nimport { getBaseInputBorderStyles } from './getBaseInputBorderStyles';\nimport {\n baseInputBackgroundColor,\n baseInputBorderColor,\n baseInputBorderWidth,\n baseInputBorderlessBackgroundColor,\n baseInputHeight,\n baseInputPaddingTokens,\n baseInputWrapperMaxHeight,\n} from './baseInputTokens';\nimport { getInputVisualsToBeRendered } from './BaseInputVisuals';\nimport type { BaseInputWrapperProps } from './types';\nimport type { Theme } from '~components/BladeProvider';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeBorderSize } from '~utils/makeBorderSize';\nimport { getPlatformType } from '~utils';\nimport getIn from '~utils/lodashButBetter/get';\nimport getHeadingStyles from '~components/Typography/Heading/getHeadingStyles';\n\ntype GetInputStyles = Pick<\n BaseInputProps,\n | 'isDisabled'\n | 'validationState'\n | 'leadingIcon'\n | 'prefix'\n | 'trailingInteractionElement'\n | 'leadingInteractionElement'\n | 'suffix'\n | 'trailingIcon'\n | 'textAlign'\n | 'isDropdownTrigger'\n | 'valueComponentType'\n> & {\n isHovered?: boolean;\n isFocused?: boolean;\n isTextArea?: boolean;\n hasTags?: boolean;\n theme: Theme;\n size: NonNullable<BaseInputProps['size']>;\n isTableInputCell: NonNullable<BaseInputProps['isTableInputCell']>;\n};\n\nexport const getBaseInputState = ({\n isFocused,\n isHovered,\n isDisabled,\n}: {\n isFocused?: boolean;\n isHovered?: boolean;\n isDisabled?: boolean;\n}): 'focused' | 'hovered' | 'disabled' | 'default' => {\n if (isDisabled) {\n return 'disabled';\n } else if (isFocused) {\n return 'focused';\n } else if (isHovered) {\n return 'hovered';\n } else {\n return 'default';\n }\n};\n\nexport const getInputBackgroundAndBorderStyles = ({\n theme,\n isHovered,\n isFocused,\n isDisabled,\n validationState,\n isTextArea,\n isDropdownTrigger,\n isTableInputCell,\n}: Pick<\n GetInputStyles,\n | 'theme'\n | 'isFocused'\n | 'isDisabled'\n | 'validationState'\n | 'isHovered'\n | 'isTextArea'\n | 'isDropdownTrigger'\n | 'isTableInputCell'\n>): CSSObject => {\n // normal state\n const backgroundColorTokens = isTableInputCell\n ? baseInputBorderlessBackgroundColor\n : baseInputBackgroundColor;\n let backgroundColor = getIn(theme.colors, backgroundColorTokens.default);\n let borderColor = isTableInputCell\n ? theme.colors.transparent\n : getIn(theme.colors, baseInputBorderColor.default);\n let borderWidth = getIn(theme.border.width, baseInputBorderWidth.default);\n let zIndex: number | undefined;\n\n const baseInputState = getBaseInputState({ isFocused, isHovered, isDisabled });\n\n backgroundColor = getIn(theme.colors, backgroundColorTokens[baseInputState]);\n borderColor =\n isTableInputCell && baseInputState !== 'focused'\n ? theme.colors.transparent\n : getIn(theme.colors, baseInputBorderColor[baseInputState]);\n borderWidth = getIn(theme.border.width, baseInputBorderWidth[baseInputState]);\n\n if (!isTableInputCell && validationState && validationState !== 'none') {\n borderColor = getIn(theme.colors, baseInputBorderColor[validationState]);\n borderWidth = getIn(theme.border.width, baseInputBorderWidth[validationState]);\n zIndex = 1; // Prevent validation ring clipping by adjacent inputs in InputGroup\n } else if (validationState && validationState !== 'none') {\n backgroundColor = getIn(theme.colors, baseInputBorderlessBackgroundColor[validationState]);\n }\n return {\n backgroundColor,\n borderRadius: makeBorderSize(\n isTableInputCell ? theme.border.radius.none : theme.border.radius.medium,\n ),\n borderStyle: 'solid',\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n alignItems: isTextArea ? 'flex-start' : undefined,\n position: 'relative',\n height: isDropdownTrigger && !isTextArea ? 'auto' : undefined,\n border: 'none',\n zIndex,\n ...getBaseInputBorderStyles({ theme, borderColor, borderWidth, isFocused }),\n };\n};\n\nconst getLeftPadding = ({\n theme,\n isDropdownTrigger,\n hasLeadingIcon,\n hasPrefix,\n size,\n}: {\n theme: Theme;\n hasLeadingIcon: boolean;\n hasPrefix: boolean;\n isDropdownTrigger: GetInputStyles['isDropdownTrigger'];\n size: GetInputStyles['size'];\n}): number => {\n if (isDropdownTrigger) {\n return theme.spacing[0];\n }\n\n if (hasLeadingIcon || hasPrefix) {\n return theme.spacing[3];\n }\n\n return theme.spacing[baseInputPaddingTokens.left[size]];\n};\n\nconst getRightPadding = ({\n theme,\n hasTrailingInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n size,\n}: {\n theme: Theme;\n hasTrailingInteractionElement: boolean;\n hasSuffix: boolean;\n hasTrailingIcon: boolean;\n size: GetInputStyles['size'];\n}): number => {\n if (hasTrailingInteractionElement || hasSuffix || hasTrailingIcon) {\n return theme.spacing[3];\n }\n return theme.spacing[baseInputPaddingTokens.right[size]];\n};\n\nexport const getBaseInputStyles = ({\n theme,\n isDisabled,\n leadingIcon,\n prefix,\n trailingInteractionElement,\n leadingInteractionElement,\n suffix,\n trailingIcon,\n textAlign,\n isTextArea,\n hasTags,\n isDropdownTrigger,\n size,\n valueComponentType,\n}: GetInputStyles): CSSObject => {\n const {\n hasLeadingIcon,\n hasPrefix,\n hasTrailingInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n } = getInputVisualsToBeRendered({\n leadingIcon,\n prefix,\n trailingInteractionElement,\n leadingInteractionElement,\n suffix,\n trailingIcon,\n size,\n });\n\n const isDropdownWithTags = isDropdownTrigger && hasTags;\n const isReactNative = getPlatformType() === 'react-native';\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n const shouldHaveFlexibleHeight = isTextArea || isDropdownWithTags;\n\n return {\n ...(valueComponentType === 'heading'\n ? getHeadingStyles({\n size,\n weight: 'regular',\n color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',\n theme,\n })\n : getTextStyles({\n size,\n variant: 'body',\n weight: 'regular',\n color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',\n theme,\n })),\n\n // take the full available width of parent container for input field\n flex: 1,\n backgroundColor: theme.colors.transparent,\n\n paddingTop: makeSpace(theme.spacing[baseInputPaddingTokens.top[size]]),\n paddingBottom: makeSpace(theme.spacing[baseInputPaddingTokens.bottom[size]]),\n paddingLeft: makeSpace(\n getLeftPadding({ theme, isDropdownTrigger, hasLeadingIcon, hasPrefix, size }),\n ),\n paddingRight: getRightPadding({\n theme,\n hasTrailingInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n size,\n }),\n\n textAlign,\n width: '100%',\n height: shouldHaveFlexibleHeight ? undefined : makeSpace(baseInputHeight[size]),\n minHeight: shouldHaveFlexibleHeight ? undefined : makeSpace(baseInputHeight[size]),\n ...(isReactNative ? {} : { resize: 'none' }),\n };\n};\n\nexport const getAnimatedBaseInputWrapperMaxHeight = ({\n maxTagRows,\n showAllTags,\n size,\n}: Pick<BaseInputWrapperProps, 'maxTagRows' | 'showAllTags' | 'size'>): number => {\n if (maxTagRows === 'single') {\n return baseInputHeight[size];\n }\n\n if (maxTagRows === 'multiple') {\n return baseInputWrapperMaxHeight[size];\n }\n\n // In expandable, max-height depends on the state\n return showAllTags ? baseInputWrapperMaxHeight[size] : baseInputHeight[size];\n};\n"],"names":["getBaseInputState","_ref","isFocused","isHovered","isDisabled","getInputBackgroundAndBorderStyles","_ref2","theme","validationState","isTextArea","isDropdownTrigger","isTableInputCell","backgroundColorTokens","baseInputBorderlessBackgroundColor","baseInputBackgroundColor","backgroundColor","getIn","colors","borderColor","transparent","baseInputBorderColor","borderWidth","border","width","baseInputBorderWidth","zIndex","baseInputState","_objectSpread","borderRadius","makeBorderSize","radius","none","medium","borderStyle","display","flexDirection","alignItems","undefined","position","height","getBaseInputBorderStyles","getLeftPadding","_ref3","hasLeadingIcon","hasPrefix","size","spacing","baseInputPaddingTokens","left","getRightPadding","_ref4","hasTrailingInteractionElement","hasSuffix","hasTrailingIcon","right","getBaseInputStyles","_ref5","leadingIcon","prefix","trailingInteractionElement","leadingInteractionElement","suffix","trailingIcon","textAlign","hasTags","valueComponentType","_getInputVisualsToBeR","getInputVisualsToBeRendered","isDropdownWithTags","isReactNative","getPlatformType","shouldHaveFlexibleHeight","getHeadingStyles","weight","color","getTextStyles","variant","flex","paddingTop","makeSpace","top","paddingBottom","bottom","paddingLeft","paddingRight","baseInputHeight","minHeight","resize","getAnimatedBaseInputWrapperMaxHeight","_ref6","maxTagRows","showAllTags","baseInputWrapperMaxHeight"],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import React__default, { useMemo } from 'react';
4
+ import { StyledInputGroup } from './StyledInputGroup.js';
5
+ import { InputGroupProvider } from './InputGroupContext.js';
6
+ import { formHintLeftLabelMarginLeft } from '../Input/BaseInput/baseInputTokens.js';
7
+ import '../Box/BaseBox/index.js';
8
+ import '../BladeProvider/index.js';
9
+ import '../../utils/index.js';
10
+ import { useFormId } from '../Form/useFormId.js';
11
+ import '../../utils/metaAttribute/index.js';
12
+ import '../Box/styledProps/index.js';
13
+ import '../../utils/makeAnalyticsAttribute/index.js';
14
+ import { FormLabel } from '../Form/FormLabel.js';
15
+ import { FormHint } from '../Form/FormHint.js';
16
+ import '../../utils/makeSize/index.js';
17
+ import { useId } from '../../utils/useId.js';
18
+ import { getHintType } from '../Input/BaseInput/BaseInput.js';
19
+ import { getOuterMotionRef } from '../../utils/getMotionRefs.js';
20
+ import '../../utils/assignWithoutSideEffects/index.js';
21
+ import { jsx, jsxs } from 'react/jsx-runtime';
22
+ import useTheme from '../BladeProvider/useTheme.js';
23
+ import { useBreakpoint } from '../../utils/useBreakpoint/useBreakpoint.js';
24
+ import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
25
+ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
26
+ import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
27
+ import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
28
+ import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
29
+ import { makeSize } from '../../utils/makeSize/makeSize.js';
30
+ import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
31
+
32
+ var _excluded = ["label", "labelPosition", "size", "helpText", "errorText", "successText", "validationState", "isDisabled", "children", "testID", "_motionMeta"];
33
+ 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; }
34
+ 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; }
35
+ var _InputGroup = function _InputGroup(_ref, ref) {
36
+ var label = _ref.label,
37
+ _ref$labelPosition = _ref.labelPosition,
38
+ labelPosition = _ref$labelPosition === void 0 ? 'top' : _ref$labelPosition,
39
+ _ref$size = _ref.size,
40
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
41
+ helpText = _ref.helpText,
42
+ errorText = _ref.errorText,
43
+ successText = _ref.successText,
44
+ _ref$validationState = _ref.validationState,
45
+ validationState = _ref$validationState === void 0 ? 'none' : _ref$validationState,
46
+ _ref$isDisabled = _ref.isDisabled,
47
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
48
+ children = _ref.children,
49
+ testID = _ref.testID,
50
+ _motionMeta = _ref._motionMeta,
51
+ rest = _objectWithoutProperties(_ref, _excluded);
52
+ var contextValue = useMemo(function () {
53
+ return {
54
+ isInsideInputGroup: true,
55
+ size: size,
56
+ isDisabled: isDisabled
57
+ };
58
+ }, [size, isDisabled]);
59
+ var _useFormId = useFormId('input-group'),
60
+ inputId = _useFormId.inputId,
61
+ helpTextId = _useFormId.helpTextId,
62
+ errorTextId = _useFormId.errorTextId,
63
+ successTextId = _useFormId.successTextId;
64
+ var idBase = useId('input-group');
65
+ var labelId = "".concat(idBase, "-label");
66
+ var _useTheme = useTheme(),
67
+ theme = _useTheme.theme;
68
+ var _useBreakpoint = useBreakpoint({
69
+ breakpoints: theme.breakpoints
70
+ }),
71
+ matchedDeviceType = _useBreakpoint.matchedDeviceType;
72
+ var isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';
73
+ var willRenderHintText = Boolean(helpText) || validationState === 'success' && Boolean(successText) || validationState === 'error' && Boolean(errorText);
74
+ var totalInputRows = React__default.Children.count(children);
75
+ return /*#__PURE__*/jsx(InputGroupProvider, {
76
+ value: contextValue,
77
+ children: /*#__PURE__*/jsx(StyledInputGroup, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
78
+ ref: getOuterMotionRef({
79
+ _motionMeta: _motionMeta,
80
+ ref: ref
81
+ })
82
+ }, metaAttribute({
83
+ name: MetaConstants.InputGroup,
84
+ testID: testID
85
+ })), getStyledProps(rest)), makeAnalyticsAttribute(rest)), {}, {
86
+ children: /*#__PURE__*/jsxs(BaseBox, {
87
+ display: "flex",
88
+ flexDirection: "column",
89
+ width: "100%",
90
+ "data-testid": testID,
91
+ role: "group",
92
+ children: [/*#__PURE__*/jsxs(BaseBox, {
93
+ display: "flex",
94
+ flexDirection: isLabelLeftPositioned ? 'row' : 'column',
95
+ alignItems: isLabelLeftPositioned && totalInputRows < 2 ? 'center' : undefined,
96
+ children: [label && /*#__PURE__*/jsx(FormLabel, {
97
+ as: "label",
98
+ position: labelPosition,
99
+ id: labelId,
100
+ htmlFor: inputId,
101
+ size: size,
102
+ children: label
103
+ }), /*#__PURE__*/jsx(BaseBox, {
104
+ display: "flex",
105
+ flexDirection: "column",
106
+ children: children
107
+ })]
108
+ }), willRenderHintText && /*#__PURE__*/jsx(BaseBox, {
109
+ marginLeft: makeSize(label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0),
110
+ children: /*#__PURE__*/jsx(BaseBox, {
111
+ display: "flex",
112
+ flexDirection: "row",
113
+ justifyContent: "space-between",
114
+ children: /*#__PURE__*/jsx(FormHint, {
115
+ type: getHintType({
116
+ validationState: validationState,
117
+ hasHelpText: Boolean(helpText)
118
+ }),
119
+ helpText: helpText,
120
+ errorText: errorText,
121
+ successText: successText,
122
+ helpTextId: helpTextId,
123
+ errorTextId: errorTextId,
124
+ successTextId: successTextId,
125
+ size: size
126
+ })
127
+ })
128
+ })]
129
+ })
130
+ }))
131
+ });
132
+ };
133
+ var InputGroup = /*#__PURE__*/assignWithoutSideEffects( /*#__PURE__*/React__default.forwardRef(_InputGroup), {
134
+ displayName: 'InputGroup',
135
+ componentId: 'InputGroup'
136
+ });
137
+
138
+ export { InputGroup };
139
+ //# sourceMappingURL=InputGroup.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputGroup.web.js","sources":["../../../../../../src/components/InputGroup/InputGroup.web.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport type { InputGroupProps } from './types';\nimport { StyledInputGroup } from './StyledInputGroup';\nimport { InputGroupProvider } from './InputGroupContext';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport type { BladeElementRef } from '~utils/types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils';\nimport { useFormId } from '~components/Form/useFormId';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { FormLabel } from '~components/Form/FormLabel';\nimport { FormHint } from '~components/Form/FormHint';\nimport { makeSize } from '~utils/makeSize';\nimport { useId } from '~utils/useId';\nimport { getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { getOuterMotionRef } from '~utils/getMotionRefs';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst _InputGroup: React.ForwardRefRenderFunction<BladeElementRef, InputGroupProps> = (\n {\n label,\n labelPosition = 'top',\n size = 'medium',\n helpText,\n errorText,\n successText,\n validationState = 'none',\n isDisabled = false,\n children,\n testID,\n _motionMeta,\n ...rest\n },\n ref,\n) => {\n const contextValue = useMemo(\n () => ({\n isInsideInputGroup: true,\n size,\n isDisabled,\n }),\n [size, isDisabled],\n );\n\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId('input-group');\n const idBase = useId('input-group');\n const labelId = `${idBase}-label`;\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';\n\n const willRenderHintText =\n Boolean(helpText) ||\n (validationState === 'success' && Boolean(successText)) ||\n (validationState === 'error' && Boolean(errorText));\n\n const totalInputRows = React.Children.count(children);\n\n return (\n <InputGroupProvider value={contextValue}>\n <StyledInputGroup\n ref={getOuterMotionRef({ _motionMeta, ref })}\n {...metaAttribute({ name: MetaConstants.InputGroup, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n data-testid={testID}\n role=\"group\"\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned && totalInputRows < 2 ? 'center' : undefined}\n >\n {label && (\n <FormLabel\n as=\"label\"\n position={labelPosition}\n id={labelId}\n htmlFor={inputId}\n size={size}\n >\n {label}\n </FormLabel>\n )}\n\n <BaseBox display=\"flex\" flexDirection=\"column\">\n {children}\n </BaseBox>\n </BaseBox>\n\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <BaseBox display=\"flex\" flexDirection=\"row\" justifyContent=\"space-between\">\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n </BaseBox>\n </BaseBox>\n )}\n </BaseBox>\n </StyledInputGroup>\n </InputGroupProvider>\n );\n};\n\nconst InputGroup = assignWithoutSideEffects(React.forwardRef(_InputGroup), {\n displayName: 'InputGroup',\n componentId: 'InputGroup',\n});\nexport { InputGroup };\n"],"names":["_InputGroup","_ref","ref","label","_ref$labelPosition","labelPosition","_ref$size","size","helpText","errorText","successText","_ref$validationState","validationState","_ref$isDisabled","isDisabled","children","testID","_motionMeta","rest","_objectWithoutProperties","_excluded","contextValue","useMemo","isInsideInputGroup","_useFormId","useFormId","inputId","helpTextId","errorTextId","successTextId","idBase","useId","labelId","concat","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isLabelLeftPositioned","willRenderHintText","Boolean","totalInputRows","React","Children","count","_jsx","InputGroupProvider","value","StyledInputGroup","_objectSpread","getOuterMotionRef","metaAttribute","name","MetaConstants","InputGroup","getStyledProps","makeAnalyticsAttribute","_jsxs","BaseBox","display","flexDirection","width","role","alignItems","undefined","FormLabel","as","position","id","htmlFor","marginLeft","makeSize","formHintLeftLabelMarginLeft","justifyContent","FormHint","type","getHintType","hasHelpText","assignWithoutSideEffects","forwardRef","displayName","componentId"],"mappings":"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"}