@bikdotai/bik-component-library 0.0.839 → 0.0.840-beta.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 (185) hide show
  1. package/dist/cjs/components/SearchFilter/index.js +1 -1
  2. package/dist/cjs/components/SearchFilter/index.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
  4. package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js +51 -39
  6. package/dist/cjs/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/components/AgentBuilderFooter.js +1 -1
  8. package/dist/cjs/components/agent-builder/components/AgentBuilderFooter.js.map +1 -1
  9. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js +1 -1
  10. package/dist/cjs/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  11. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +2 -2
  12. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  13. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +1 -1
  14. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  15. package/dist/cjs/components/agent-builder/components/DiscardModal.js +1 -1
  16. package/dist/cjs/components/agent-builder/components/DiscardModal.js.map +1 -1
  17. package/dist/cjs/components/agent-builder/components/GoLiveModal.js +1 -1
  18. package/dist/cjs/components/agent-builder/components/GoLiveModal.js.map +1 -1
  19. package/dist/cjs/components/agent-builder/components/MentionEditor.js +1 -1
  20. package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
  21. package/dist/cjs/components/agent-builder/components/MentionPicker.js +22 -22
  22. package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
  23. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +4 -4
  24. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  25. package/dist/cjs/components/agent-builder/components/SelectableListSection.js +6 -6
  26. package/dist/cjs/components/agent-builder/components/SelectableListSection.js.map +1 -1
  27. package/dist/cjs/components/agent-builder/components/StepSectionHeader.js +1 -1
  28. package/dist/cjs/components/agent-builder/components/StepSectionHeader.js.map +1 -1
  29. package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
  30. package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
  31. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
  32. package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  33. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js +3 -1
  34. package/dist/cjs/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  35. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
  36. package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  37. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +1 -1
  38. package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  39. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +5 -3
  40. package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  41. package/dist/cjs/components/agent-listing/AgentListing.js +1 -1
  42. package/dist/cjs/components/agent-listing/AgentListing.js.map +1 -1
  43. package/dist/cjs/components/agent-listing/AgentTable.js +1 -1
  44. package/dist/cjs/components/agent-listing/AgentTable.js.map +1 -1
  45. package/dist/cjs/components/agent-listing/AgentTableRow.js +1 -1
  46. package/dist/cjs/components/agent-listing/AgentTableRow.js.map +1 -1
  47. package/dist/cjs/components/agent-listing/AgentTableShimmer.js +2 -0
  48. package/dist/cjs/components/agent-listing/AgentTableShimmer.js.map +1 -0
  49. package/dist/cjs/components/agent-listing/DeleteAgentModal.js +1 -1
  50. package/dist/cjs/components/agent-listing/DeleteAgentModal.js.map +1 -1
  51. package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsChip.js +1 -1
  52. package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsChip.js.map +1 -1
  53. package/dist/cjs/components/button/Button.styled.js +1 -0
  54. package/dist/cjs/components/button/Button.styled.js.map +1 -1
  55. package/dist/cjs/components/dashboard-review-popup/DashboardReviewPopUp.js +1 -1
  56. package/dist/cjs/components/dashboard-review-popup/DashboardReviewPopUp.js.map +1 -1
  57. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  58. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  59. package/dist/cjs/components/input/Input.js +1 -1
  60. package/dist/cjs/components/input/Input.js.map +1 -1
  61. package/dist/cjs/components/multi-level-dropdown/MenuItem.js +1 -1
  62. package/dist/cjs/components/multi-level-dropdown/MenuItem.js.map +1 -1
  63. package/dist/cjs/components/radioButton/RadioButton.js +1 -1
  64. package/dist/cjs/components/radioButton/RadioButton.js.map +1 -1
  65. package/dist/cjs/components/radioList/RadioList.js +1 -1
  66. package/dist/cjs/components/radioList/RadioList.js.map +1 -1
  67. package/dist/cjs/components/searchBar/searchBar.js +1 -1
  68. package/dist/cjs/components/searchBar/searchBar.js.map +1 -1
  69. package/dist/cjs/components/side-modal/SideModal.js +1 -1
  70. package/dist/cjs/components/side-modal/SideModal.js.map +1 -1
  71. package/dist/cjs/components/star-rating/Star.js +1 -1
  72. package/dist/cjs/components/star-rating/Star.js.map +1 -1
  73. package/dist/cjs/components/star-rating/StarRating.js +2 -2
  74. package/dist/cjs/components/star-rating/StarRating.js.map +1 -1
  75. package/dist/cjs/components/template-preview/TemplatePreview.js +1 -1
  76. package/dist/cjs/components/template-preview/TemplatePreview.js.map +1 -1
  77. package/dist/cjs/components/thumbnail/Thumbnail.js +1 -1
  78. package/dist/cjs/components/thumbnail/Thumbnail.js.map +1 -1
  79. package/dist/cjs/components/zeroState/ZeroState.js +3 -3
  80. package/dist/cjs/components/zeroState/ZeroState.js.map +1 -1
  81. package/dist/cjs/editor/BikEditor.js +1 -1
  82. package/dist/cjs/editor/BikEditor.js.map +1 -1
  83. package/dist/cjs/editor/BikEditor.styles.js +97 -54
  84. package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
  85. package/dist/cjs/editor/extensions/jsonHighlight/JsonHighlightExtension.js +3 -3
  86. package/dist/cjs/editor/extensions/jsonHighlight/JsonHighlightExtension.js.map +1 -1
  87. package/dist/esm/components/SearchFilter/index.js +11 -10
  88. package/dist/esm/components/SearchFilter/index.js.map +1 -1
  89. package/dist/esm/components/agent-builder/AgentBuilder.js +106 -102
  90. package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
  91. package/dist/esm/components/agent-builder/AgentBuilder.styled.d.ts +3 -6
  92. package/dist/esm/components/agent-builder/AgentBuilder.styled.js +118 -106
  93. package/dist/esm/components/agent-builder/AgentBuilder.styled.js.map +1 -1
  94. package/dist/esm/components/agent-builder/__fixtures__/agentValue.d.ts +11 -0
  95. package/dist/esm/components/agent-builder/components/AgentBuilderFooter.js +29 -21
  96. package/dist/esm/components/agent-builder/components/AgentBuilderFooter.js.map +1 -1
  97. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js +27 -26
  98. package/dist/esm/components/agent-builder/components/AgentBuilderTopBar.js.map +1 -1
  99. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +25 -25
  100. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  101. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +24 -23
  102. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  103. package/dist/esm/components/agent-builder/components/DiscardModal.d.ts +3 -1
  104. package/dist/esm/components/agent-builder/components/DiscardModal.js +33 -24
  105. package/dist/esm/components/agent-builder/components/DiscardModal.js.map +1 -1
  106. package/dist/esm/components/agent-builder/components/GoLiveModal.js +23 -21
  107. package/dist/esm/components/agent-builder/components/GoLiveModal.js.map +1 -1
  108. package/dist/esm/components/agent-builder/components/MentionEditor.js +19 -19
  109. package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
  110. package/dist/esm/components/agent-builder/components/MentionPicker.js +177 -147
  111. package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
  112. package/dist/esm/components/agent-builder/components/RestApiToolPanel.d.ts +2 -0
  113. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +111 -105
  114. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  115. package/dist/esm/components/agent-builder/components/SelectableListSection.d.ts +13 -4
  116. package/dist/esm/components/agent-builder/components/SelectableListSection.js +173 -148
  117. package/dist/esm/components/agent-builder/components/SelectableListSection.js.map +1 -1
  118. package/dist/esm/components/agent-builder/components/StepSectionHeader.js +7 -7
  119. package/dist/esm/components/agent-builder/components/StepSectionHeader.js.map +1 -1
  120. package/dist/esm/components/agent-builder/constants/tools.js +1 -1
  121. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  122. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +104 -103
  123. package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
  124. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js +101 -102
  125. package/dist/esm/components/agent-builder/steps/Step2WhenItStepsIn.js.map +1 -1
  126. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +144 -142
  127. package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
  128. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +23 -79
  129. package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
  130. package/dist/esm/components/agent-builder/utils/mentionSerialization.js +35 -23
  131. package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
  132. package/dist/esm/components/agent-listing/AgentListing.js +70 -65
  133. package/dist/esm/components/agent-listing/AgentListing.js.map +1 -1
  134. package/dist/esm/components/agent-listing/AgentTable.d.ts +2 -0
  135. package/dist/esm/components/agent-listing/AgentTable.js +16 -15
  136. package/dist/esm/components/agent-listing/AgentTable.js.map +1 -1
  137. package/dist/esm/components/agent-listing/AgentTableRow.js +11 -11
  138. package/dist/esm/components/agent-listing/AgentTableRow.js.map +1 -1
  139. package/dist/esm/components/agent-listing/AgentTableShimmer.d.ts +12 -0
  140. package/dist/esm/components/agent-listing/AgentTableShimmer.js +20 -0
  141. package/dist/esm/components/agent-listing/AgentTableShimmer.js.map +1 -0
  142. package/dist/esm/components/agent-listing/DeleteAgentModal.js +8 -8
  143. package/dist/esm/components/agent-listing/DeleteAgentModal.js.map +1 -1
  144. package/dist/esm/components/agent-listing/__fixtures__/agents.d.ts +3 -0
  145. package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsChip.js +11 -10
  146. package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsChip.js.map +1 -1
  147. package/dist/esm/components/button/Button.styled.js +25 -19
  148. package/dist/esm/components/button/Button.styled.js.map +1 -1
  149. package/dist/esm/components/dashboard-review-popup/DashboardReviewPopUp.js +28 -21
  150. package/dist/esm/components/dashboard-review-popup/DashboardReviewPopUp.js.map +1 -1
  151. package/dist/esm/components/dropdown/Dropdown.js +18 -13
  152. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  153. package/dist/esm/components/input/Input.js +35 -34
  154. package/dist/esm/components/input/Input.js.map +1 -1
  155. package/dist/esm/components/input/Input.model.d.ts +1 -0
  156. package/dist/esm/components/multi-level-dropdown/MenuItem.js +28 -27
  157. package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
  158. package/dist/esm/components/radioButton/RadioButton.js +10 -9
  159. package/dist/esm/components/radioButton/RadioButton.js.map +1 -1
  160. package/dist/esm/components/radioList/RadioList.js +28 -19
  161. package/dist/esm/components/radioList/RadioList.js.map +1 -1
  162. package/dist/esm/components/searchBar/searchBar.js +11 -10
  163. package/dist/esm/components/searchBar/searchBar.js.map +1 -1
  164. package/dist/esm/components/side-modal/SideModal.js +13 -5
  165. package/dist/esm/components/side-modal/SideModal.js.map +1 -1
  166. package/dist/esm/components/star-rating/Star.d.ts +1 -0
  167. package/dist/esm/components/star-rating/Star.js +32 -27
  168. package/dist/esm/components/star-rating/Star.js.map +1 -1
  169. package/dist/esm/components/star-rating/StarRating.js +17 -16
  170. package/dist/esm/components/star-rating/StarRating.js.map +1 -1
  171. package/dist/esm/components/template-preview/TemplatePreview.js +41 -40
  172. package/dist/esm/components/template-preview/TemplatePreview.js.map +1 -1
  173. package/dist/esm/components/thumbnail/Thumbnail.js +3 -3
  174. package/dist/esm/components/thumbnail/Thumbnail.js.map +1 -1
  175. package/dist/esm/components/zeroState/ZeroState.js +20 -13
  176. package/dist/esm/components/zeroState/ZeroState.js.map +1 -1
  177. package/dist/esm/editor/BikEditor.js +173 -160
  178. package/dist/esm/editor/BikEditor.js.map +1 -1
  179. package/dist/esm/editor/BikEditor.styles.d.ts +20 -3
  180. package/dist/esm/editor/BikEditor.styles.js +102 -57
  181. package/dist/esm/editor/BikEditor.styles.js.map +1 -1
  182. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.d.ts +5 -8
  183. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.js +87 -68
  184. package/dist/esm/editor/extensions/jsonHighlight/JsonHighlightExtension.js.map +1 -1
  185. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../../src/components/input/Input.tsx"],"sourcesContent":["import InfoIcon from '@src/assets/icons/info.svg';\nimport React, {\n\tforwardRef,\n\tMutableRefObject,\n\tRef,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { Button } from '@src/components/button';\nimport {\n\tisFunction,\n\tsanitizeUnsafeInput,\n\tshouldSanitizeForType,\n\tvalidateInput,\n} from '@src/components/input/Input-helper';\nimport { Tooltip } from '@src/components/tooltips';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport ErrorIcon from '../../assets/icons/errorInfo.svg';\nimport { InputStyleContext } from './context/InputStyleProvider';\nimport { InputProps, InputTypeI, InputVariant } from './Input.model';\nimport * as SC from './Input.styled';\nimport { PrefixHolder, SuffixHolder } from './Input.styled';\n\nexport const Input = forwardRef(\n\t(\n\t\tprops: InputProps,\n\t\tfRef: React.ForwardedRef<HTMLInputElement | HTMLTextAreaElement | null>,\n\t) => {\n\t\tconst {\n\t\t\tplaceholder,\n\t\t\tleftIcon,\n\t\t\trightIcon,\n\t\t\tlabelText,\n\t\t\tmaxCharLimit,\n\t\t\tisRequired,\n\t\t\thintText,\n\t\t\ttype,\n\t\t\tstate,\n\t\t\tvalidate,\n\t\t\tvariant,\n\t\t\tbutton,\n\t\t\tsuffixText,\n\t\t\tprefixText,\n\t\t\tonChangeText,\n\t\t\tvalue,\n\t\t\tnoErrorHint,\n\t\t\treset,\n\t\t\trangeValidation,\n\t\t\tnoKeyDownChange,\n\t\t\tversion,\n\t\t\tnoMaxCharCheck,\n\t\t\tlabelElement,\n\t\t\tautoGrow,\n\t\t\tminHeight,\n\t\t\tmaxHeight,\n\t\t\tlabelTextBold,\n\t\t\ttruncateText,\n\t\t\tmaxCharLimitPosition,\n\t\t\tmaxCharStyle,\n\t\t\thightlightInputColor,\n\t\t\tonKeyDownEvent,\n\t\t\thideInputHeader,\n\t\t\thideBorder,\n\t\t\tinputWrapperStyles,\n\t\t\tminCharsToTrigger,\n\t\t\tmaxCharAlignment,\n\t\t\tisDisabled = false,\n\t\t\tallowUnsafeInput,\n\t\t\tleftIconStyle,\n\t\t} = {\n\t\t\tmaxCharLimit: 0,\n\t\t\ttype: 'text' as InputTypeI,\n\t\t\tvariant: 'default' as InputVariant,\n\t\t\tmaxCharLimitPosition: 'TOP',\n\t\t\tminCharsToTrigger: 0,\n\t\t\tmaxCharAlignment: false,\n\t\t\t...props,\n\t\t};\n\t\tconst LeftIcon = leftIcon?.icon;\n\t\tconst RightIcon = rightIcon?.icon;\n\t\tconst [isInvalid, setIsInvalid] = useState<boolean>(false);\n\t\tconst [isActive, setIsActive] = useState<boolean>(false);\n\t\tconst [errorMessage, setErrorMessage] = useState<string>();\n\t\tconst iconSize =\n\t\t\tvariant === 'x-small' ? '12px' : variant === 'small' ? '18px' : '22px';\n\t\tconst stylesFromOutside = useContext(InputStyleContext);\n\t\tconst [inputValue, setInputValue] = useState<string>('');\n\t\tconst _ref = useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\t\tconst inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement> =\n\t\t\t(fRef ?? _ref) as MutableRefObject<\n\t\t\t\tHTMLInputElement | HTMLTextAreaElement\n\t\t\t>;\n\n\t\tuseEffect(() => {\n\t\t\tsetInputValue(value || '');\n\t\t\tif (!value && autoGrow) {\n\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t}\n\t\t}, [value]);\n\n\t\tuseEffect(() => {\n\t\t\tif (!inputRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tprops.onReferenceInit?.(inputRef.current);\n\t\t}, [inputRef]);\n\n\t\tuseEffect(() => {\n\t\t\tconst numberInput = inputRef.current;\n\t\t\tif (numberInput && ['phonenumber', 'zip', 'number'].includes(type)) {\n\t\t\t\tnumberInput.addEventListener('wheel', onWheel, { passive: false });\n\n\t\t\t\treturn () => {\n\t\t\t\t\tnumberInput.removeEventListener('wheel', onWheel);\n\t\t\t\t};\n\t\t\t}\n\t\t}, []);\n\n\t\tuseEffect(() => {\n\t\t\tif (!reset) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetInputValue('');\n\t\t}, [reset]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsActive(!!props.isActive);\n\t\t\tif (props.isActive) {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.isActive]);\n\n\t\tuseEffect(() => {\n\t\t\tsetErrorMessage(props.errorMessage);\n\t\t}, [props.errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(false);\n\t\t\tif (\n\t\t\t\tprops.state === 'invalid' ||\n\t\t\t\terrorMessage ||\n\t\t\t\tprops.state === 'disabled-invalid'\n\t\t\t) {\n\t\t\t\tsetIsInvalid(true);\n\t\t\t}\n\t\t\tif (props.state === 'active') {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.state, errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(!!errorMessage || props.state === 'invalid');\n\t\t}, [errorMessage, props.state]);\n\n\t\tconst executeCallback = (cb: any, ...params: any[]): void => {\n\t\t\tif (!isFunction(cb)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcb(...params);\n\t\t};\n\n\t\tconst getMaxChar = () => {\n\t\t\tif (type === 'zip') {\n\t\t\t\treturn 6;\n\t\t\t}\n\t\t\treturn 2000;\n\t\t};\n\n\t\tconst onKeyDown = (e) => {\n\t\t\tconst MAX_CHAR_LIMIT = maxCharLimit !== 0 ? maxCharLimit : getMaxChar();\n\t\t\tconst KEY_CODES_TO_BE_EXCLUDED = [8];\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\t\t\tconst inputText = e.target.value;\n\t\t\tif (\n\t\t\t\tonKeyDownEvent &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonKeyDownEvent(e);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noKeyDownChange &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonChangeText(value || '', e);\n\t\t\t}\n\t\t\tif (noMaxCharCheck) return;\n\n\t\t\tif (\n\t\t\t\t!KEY_CODES_TO_BE_EXCLUDED.includes(e.which) &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t};\n\n\t\tconst onWheel = (event) => {\n\t\t\tevent.preventDefault(); // Prevent the default scroll behavior\n\t\t};\n\n\t\tconst onChange = (e) => {\n\t\t\tlet inputText = e.target.value;\n\t\t\tconst MAX_CHAR_LIMIT =\n\t\t\t\tmaxCharLimit !== 0 ? maxCharLimit + 1 : getMaxChar();\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\n\t\t\tif (!allowUnsafeInput && shouldSanitizeForType(type)) {\n\t\t\t\tinputText = sanitizeUnsafeInput(inputText);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noMaxCharCheck &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\t// letting user to copy paste text upto max limit instead of blank action\n\t\t\t\tinputText = inputText.substring(0, MAX_CHAR_LIMIT - 1);\n\t\t\t}\n\n\t\t\tif (!props.textControl) {\n\t\t\t\tsetInputValue(inputText || '');\n\t\t\t}\n\t\t\tif (MIN_CHAR_LIMIT && inputText && inputText.length < MIN_CHAR_LIMIT) {\n\t\t\t\t// if minCharsToTrigger exists and is not reached, do nothing\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonChangeText(inputText, e);\n\t\t\tif (autoGrow) {\n\t\t\t\tinputRef.current.style.height = `${inputRef.current.scrollHeight}px`;\n\t\t\t\tif (!inputText) {\n\t\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst validateFunction = validate || validateInput;\n\t\t\tif (!validateFunction || !isFunction(validateFunction)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [isValid, error] = validateFunction(\n\t\t\t\tinputText,\n\t\t\t\ttype,\n\t\t\t\trangeValidation,\n\t\t\t);\n\n\t\t\tsetIsInvalid(!isValid);\n\t\t\tsetErrorMessage(props.errorMessage ? props.errorMessage : error);\n\t\t};\n\n\t\tconst onFocus = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(true);\n\t\t\t}\n\t\t\texecuteCallback(props.onFocus?.(e));\n\t\t};\n\n\t\tconst onBlur = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(false);\n\t\t\t}\n\t\t\texecuteCallback(props.onBlur?.(e));\n\t\t};\n\n\t\tconst getInputHTML = () => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{type !== 'multiline' && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tclassName={truncateText ? 'truncate-class' : ''}\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tid={props.id}\n\t\t\t\t\t\t\tstyle={stylesFromOutside?.input ?? {}}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLInputElement>}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\ttype={\n\t\t\t\t\t\t\t\t['phonenumber', 'zip', 'number'].includes(type)\n\t\t\t\t\t\t\t\t\t? 'number'\n\t\t\t\t\t\t\t\t\t: type\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{type === 'multiline' && (\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLTextAreaElement>}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t\tmaxLength={maxCharLimit > 0 ? maxCharLimit : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<SC.RootContainer\n\t\t\t\twidth={props.width}\n\t\t\t\theight={props.height}\n\t\t\t\tstate={state}\n\t\t\t\ttype={type}\n\t\t\t\tstyle={stylesFromOutside?.RootContainer ?? {}}\n\t\t\t>\n\t\t\t\t<div className=\"flex-align-center\">\n\t\t\t\t\t{!noErrorHint && (!!hintText || !!errorMessage) && (\n\t\t\t\t\t\t<SC.InputFooter invalid={!!errorMessage}>\n\t\t\t\t\t\t\t{!!errorMessage && <ErrorIcon width={16} height={16} />}\n\t\t\t\t\t\t\t{errorMessage || hintText}\n\t\t\t\t\t\t</SC.InputFooter>\n\t\t\t\t\t)}\n\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'BOTTOM' && (\n\t\t\t\t\t\t<SC.MaxCharStyle position={'BOTTOM'} style={maxCharStyle}>\n\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<SC.InputWrapper\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\tstate={state}\n\t\t\t\t\twidth={props.width}\n\t\t\t\t\tisActive={state === 'active' || isActive}\n\t\t\t\t\tisInvalid={isInvalid}\n\t\t\t\t\tstyle={stylesFromOutside?.InputWrapper ?? inputWrapperStyles ?? {}}\n\t\t\t\t\tversion={version}\n\t\t\t\t\theight={props.height}\n\t\t\t\t\thightlightInputColor={hightlightInputColor}\n\t\t\t\t\thideBorder={hideBorder}\n\t\t\t\t>\n\t\t\t\t\t{!!LeftIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(leftIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={true}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t...(stylesFromOutside?.IconHolder ?? {}),\n\t\t\t\t\t\t\t\t...leftIconStyle,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LeftIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!prefixText && (\n\t\t\t\t\t\t<PrefixHolder variant={variant}>{prefixText}</PrefixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'default' && (\n\t\t\t\t\t\t<SC.InputContainer\n\t\t\t\t\t\t\theight={props.height}\n\t\t\t\t\t\t\ttype={props.type}\n\t\t\t\t\t\t\tminHeight={minHeight}\n\t\t\t\t\t\t\tmaxHeight={maxHeight}\n\t\t\t\t\t\t\tautoGrow={autoGrow}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainer>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'small' && (\n\t\t\t\t\t\t<SC.InputContainerSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'x-small' && (\n\t\t\t\t\t\t<SC.InputContainerXSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerXSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!RightIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(rightIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={false}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RightIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!suffixText && (\n\t\t\t\t\t\t<SuffixHolder variant={variant}>{suffixText}</SuffixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.text && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tbuttonText={button.text}\n\t\t\t\t\t\t\tbuttonType={button.buttonType}\n\t\t\t\t\t\t\tonClick={() => executeCallback(button?.onClick)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.buttonProps && <Button {...button.buttonProps} />}\n\t\t\t\t</SC.InputWrapper>\n\t\t\t\t{!hideInputHeader && (!!labelText || !!maxCharLimit) && (\n\t\t\t\t\t<SC.InputHeader\n\t\t\t\t\t\tinvalid={isInvalid}\n\t\t\t\t\t\tmaxCharAlignment={maxCharAlignment}\n\t\t\t\t\t>\n\t\t\t\t\t\t{labelElement && labelElement}\n\t\t\t\t\t\t<div className=\"label__container\">\n\t\t\t\t\t\t\t{labelTextBold ? (\n\t\t\t\t\t\t\t\t<TitleSmall>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<BodySecondary>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.tooltipText && (\n\t\t\t\t\t\t\t\t<Tooltip body={props.tooltipText} placement={'top'}>\n\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t<InfoIcon\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginTop: -3 }}\n\t\t\t\t\t\t\t\t\t\t\twidth={18}\n\t\t\t\t\t\t\t\t\t\t\theight={18}\n\t\t\t\t\t\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\tisInvalid\n\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.negative\n\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'TOP' && (\n\t\t\t\t\t\t\t<SC.MaxCharStyle style={maxCharStyle}>\n\t\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</SC.InputHeader>\n\t\t\t\t)}\n\t\t\t</SC.RootContainer>\n\t\t);\n\t},\n);\n\nInput.displayName = 'Input';\n"],"names":["Input","forwardRef","props","fRef","placeholder","leftIcon","rightIcon","labelText","maxCharLimit","isRequired","hintText","type","state","validate","variant","button","suffixText","prefixText","onChangeText","value","noErrorHint","reset","rangeValidation","noKeyDownChange","version","noMaxCharCheck","labelElement","autoGrow","minHeight","maxHeight","labelTextBold","truncateText","maxCharLimitPosition","maxCharStyle","hightlightInputColor","onKeyDownEvent","hideInputHeader","hideBorder","inputWrapperStyles","minCharsToTrigger","maxCharAlignment","isDisabled","allowUnsafeInput","leftIconStyle","LeftIcon","RightIcon","isInvalid","setIsInvalid","useState","isActive","setIsActive","errorMessage","setErrorMessage","iconSize","stylesFromOutside","useContext","InputStyleContext","inputValue","setInputValue","_ref","useRef","inputRef","useEffect","numberInput","onWheel","executeCallback","cb","params","isFunction","getMaxChar","onKeyDown","e","MAX_CHAR_LIMIT","KEY_CODES_TO_BE_EXCLUDED","MIN_CHAR_LIMIT","inputText","event","onChange","shouldSanitizeForType","sanitizeUnsafeInput","validateFunction","validateInput","isValid","error","onFocus","onBlur","getInputHTML","jsxs","Fragment","jsx","SC.RootContainer","SC.InputFooter","ErrorIcon","SC.MaxCharStyle","SC.InputWrapper","SC.IconHolder","PrefixHolder","SC.InputContainer","SC.InputContainerSmall","SC.InputContainerXSmall","SuffixHolder","Button","SC.InputHeader","TitleSmall","BodySecondary","Tooltip","InfoIcon","COLORS"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../../../../src/components/input/Input.tsx"],"sourcesContent":["import InfoIcon from '@src/assets/icons/info.svg';\nimport React, {\n\tforwardRef,\n\tMutableRefObject,\n\tRef,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { Button } from '@src/components/button';\nimport {\n\tisFunction,\n\tsanitizeUnsafeInput,\n\tshouldSanitizeForType,\n\tvalidateInput,\n} from '@src/components/input/Input-helper';\nimport { Tooltip } from '@src/components/tooltips';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport ErrorIcon from '../../assets/icons/errorInfo.svg';\nimport { InputStyleContext } from './context/InputStyleProvider';\nimport { InputProps, InputTypeI, InputVariant } from './Input.model';\nimport * as SC from './Input.styled';\nimport { PrefixHolder, SuffixHolder } from './Input.styled';\n\nexport const Input = forwardRef(\n\t(\n\t\tprops: InputProps,\n\t\tfRef: React.ForwardedRef<HTMLInputElement | HTMLTextAreaElement | null>,\n\t) => {\n\t\tconst {\n\t\t\tplaceholder,\n\t\t\tleftIcon,\n\t\t\trightIcon,\n\t\t\tlabelText,\n\t\t\tmaxCharLimit,\n\t\t\tisRequired,\n\t\t\thintText,\n\t\t\ttype,\n\t\t\tstate,\n\t\t\tvalidate,\n\t\t\tvariant,\n\t\t\tbutton,\n\t\t\tsuffixText,\n\t\t\tprefixText,\n\t\t\tonChangeText,\n\t\t\tvalue,\n\t\t\tnoErrorHint,\n\t\t\treset,\n\t\t\trangeValidation,\n\t\t\tnoKeyDownChange,\n\t\t\tversion,\n\t\t\tnoMaxCharCheck,\n\t\t\tlabelElement,\n\t\t\tautoGrow,\n\t\t\tminHeight,\n\t\t\tmaxHeight,\n\t\t\tlabelTextBold,\n\t\t\ttruncateText,\n\t\t\tmaxCharLimitPosition,\n\t\t\tmaxCharStyle,\n\t\t\thightlightInputColor,\n\t\t\tonKeyDownEvent,\n\t\t\thideInputHeader,\n\t\t\thideBorder,\n\t\t\tinputWrapperStyles,\n\t\t\tminCharsToTrigger,\n\t\t\tmaxCharAlignment,\n\t\t\tisDisabled = false,\n\t\t\tallowUnsafeInput,\n\t\t\tleftIconStyle,\n\t\t} = {\n\t\t\tmaxCharLimit: 0,\n\t\t\ttype: 'text' as InputTypeI,\n\t\t\tvariant: 'default' as InputVariant,\n\t\t\tmaxCharLimitPosition: 'TOP',\n\t\t\tminCharsToTrigger: 0,\n\t\t\tmaxCharAlignment: false,\n\t\t\t...props,\n\t\t};\n\t\tconst LeftIcon = leftIcon?.icon;\n\t\tconst RightIcon = rightIcon?.icon;\n\t\tconst [isInvalid, setIsInvalid] = useState<boolean>(false);\n\t\tconst [isActive, setIsActive] = useState<boolean>(false);\n\t\tconst [errorMessage, setErrorMessage] = useState<string>();\n\t\tconst iconSize =\n\t\t\tvariant === 'x-small' ? '12px' : variant === 'small' ? '18px' : '22px';\n\t\tconst stylesFromOutside = useContext(InputStyleContext);\n\t\tconst [inputValue, setInputValue] = useState<string>('');\n\t\tconst _ref = useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\t\tconst inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement> =\n\t\t\t(fRef ?? _ref) as MutableRefObject<\n\t\t\t\tHTMLInputElement | HTMLTextAreaElement\n\t\t\t>;\n\n\t\tuseEffect(() => {\n\t\t\tsetInputValue(value || '');\n\t\t\tif (!value && autoGrow) {\n\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t}\n\t\t}, [value]);\n\n\t\tuseEffect(() => {\n\t\t\tif (!inputRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tprops.onReferenceInit?.(inputRef.current);\n\t\t}, [inputRef]);\n\n\t\tuseEffect(() => {\n\t\t\tconst numberInput = inputRef.current;\n\t\t\tif (numberInput && ['phonenumber', 'zip', 'number'].includes(type)) {\n\t\t\t\tnumberInput.addEventListener('wheel', onWheel, { passive: false });\n\n\t\t\t\treturn () => {\n\t\t\t\t\tnumberInput.removeEventListener('wheel', onWheel);\n\t\t\t\t};\n\t\t\t}\n\t\t}, []);\n\n\t\tuseEffect(() => {\n\t\t\tif (!reset) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetInputValue('');\n\t\t}, [reset]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsActive(!!props.isActive);\n\t\t\tif (props.isActive) {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.isActive]);\n\n\t\tuseEffect(() => {\n\t\t\tsetErrorMessage(props.errorMessage);\n\t\t}, [props.errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(false);\n\t\t\tif (\n\t\t\t\tprops.state === 'invalid' ||\n\t\t\t\terrorMessage ||\n\t\t\t\tprops.state === 'disabled-invalid'\n\t\t\t) {\n\t\t\t\tsetIsInvalid(true);\n\t\t\t}\n\t\t\tif (props.state === 'active') {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.state, errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(!!errorMessage || props.state === 'invalid');\n\t\t}, [errorMessage, props.state]);\n\n\t\tconst executeCallback = (cb: any, ...params: any[]): void => {\n\t\t\tif (!isFunction(cb)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcb(...params);\n\t\t};\n\n\t\tconst getMaxChar = () => {\n\t\t\tif (type === 'zip') {\n\t\t\t\treturn 6;\n\t\t\t}\n\t\t\treturn 2000;\n\t\t};\n\n\t\tconst onKeyDown = (e) => {\n\t\t\tconst MAX_CHAR_LIMIT = maxCharLimit !== 0 ? maxCharLimit : getMaxChar();\n\t\t\tconst KEY_CODES_TO_BE_EXCLUDED = [8];\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\t\t\tconst inputText = e.target.value;\n\t\t\tif (\n\t\t\t\tonKeyDownEvent &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonKeyDownEvent(e);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noKeyDownChange &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonChangeText(value || '', e);\n\t\t\t}\n\t\t\tif (noMaxCharCheck) return;\n\n\t\t\tif (\n\t\t\t\t!KEY_CODES_TO_BE_EXCLUDED.includes(e.which) &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t};\n\n\t\tconst onWheel = (event) => {\n\t\t\tevent.preventDefault(); // Prevent the default scroll behavior\n\t\t};\n\n\t\tconst onChange = (e) => {\n\t\t\tlet inputText = e.target.value;\n\t\t\tconst MAX_CHAR_LIMIT =\n\t\t\t\tmaxCharLimit !== 0 ? maxCharLimit + 1 : getMaxChar();\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\n\t\t\tif (!allowUnsafeInput && shouldSanitizeForType(type)) {\n\t\t\t\tinputText = sanitizeUnsafeInput(inputText);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noMaxCharCheck &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\t// letting user to copy paste text upto max limit instead of blank action\n\t\t\t\tinputText = inputText.substring(0, MAX_CHAR_LIMIT - 1);\n\t\t\t}\n\n\t\t\tif (!props.textControl) {\n\t\t\t\tsetInputValue(inputText || '');\n\t\t\t}\n\t\t\tif (MIN_CHAR_LIMIT && inputText && inputText.length < MIN_CHAR_LIMIT) {\n\t\t\t\t// if minCharsToTrigger exists and is not reached, do nothing\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonChangeText(inputText, e);\n\t\t\tif (autoGrow) {\n\t\t\t\tinputRef.current.style.height = `${inputRef.current.scrollHeight}px`;\n\t\t\t\tif (!inputText) {\n\t\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst validateFunction = validate || validateInput;\n\t\t\tif (!validateFunction || !isFunction(validateFunction)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [isValid, error] = validateFunction(\n\t\t\t\tinputText,\n\t\t\t\ttype,\n\t\t\t\trangeValidation,\n\t\t\t);\n\n\t\t\tsetIsInvalid(!isValid);\n\t\t\tsetErrorMessage(props.errorMessage ? props.errorMessage : error);\n\t\t};\n\n\t\tconst onFocus = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(true);\n\t\t\t}\n\t\t\texecuteCallback(props.onFocus?.(e));\n\t\t};\n\n\t\tconst onBlur = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(false);\n\t\t\t}\n\t\t\texecuteCallback(props.onBlur?.(e));\n\t\t};\n\n\t\tconst getInputHTML = () => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{type !== 'multiline' && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tclassName={truncateText ? 'truncate-class' : ''}\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tid={props.id}\n\t\t\t\t\t\t\tstyle={stylesFromOutside?.input ?? {}}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLInputElement>}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\ttype={\n\t\t\t\t\t\t\t\t['phonenumber', 'zip', 'number'].includes(type)\n\t\t\t\t\t\t\t\t\t? 'number'\n\t\t\t\t\t\t\t\t\t: type\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{type === 'multiline' && (\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLTextAreaElement>}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t\tmaxLength={maxCharLimit > 0 ? maxCharLimit : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<SC.RootContainer\n\t\t\t\twidth={props.width}\n\t\t\t\theight={props.height}\n\t\t\t\tstate={state}\n\t\t\t\ttype={type}\n\t\t\t\tstyle={stylesFromOutside?.RootContainer ?? {}}\n\t\t\t>\n\t\t\t\t<div className=\"flex-align-center\">\n\t\t\t\t\t{!noErrorHint && (!!hintText || !!errorMessage) && (\n\t\t\t\t\t\t<SC.InputFooter invalid={!!errorMessage}>\n\t\t\t\t\t\t\t{!!errorMessage && <ErrorIcon width={16} height={16} />}\n\t\t\t\t\t\t\t{errorMessage || hintText}\n\t\t\t\t\t\t</SC.InputFooter>\n\t\t\t\t\t)}\n\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'BOTTOM' && (\n\t\t\t\t\t\t<SC.MaxCharStyle position={'BOTTOM'} style={maxCharStyle}>\n\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<SC.InputWrapper\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\tstate={state}\n\t\t\t\t\twidth={props.width}\n\t\t\t\t\tisActive={state === 'active' || isActive}\n\t\t\t\t\tisInvalid={isInvalid}\n\t\t\t\t\tstyle={stylesFromOutside?.InputWrapper ?? inputWrapperStyles ?? {}}\n\t\t\t\t\tversion={version}\n\t\t\t\t\theight={props.height}\n\t\t\t\t\thightlightInputColor={hightlightInputColor}\n\t\t\t\t\thideBorder={hideBorder}\n\t\t\t\t>\n\t\t\t\t\t{!!LeftIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(leftIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={true}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t...(stylesFromOutside?.IconHolder ?? {}),\n\t\t\t\t\t\t\t\t...leftIconStyle,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LeftIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!prefixText && (\n\t\t\t\t\t\t<PrefixHolder variant={variant}>{prefixText}</PrefixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'default' && (\n\t\t\t\t\t\t<SC.InputContainer\n\t\t\t\t\t\t\theight={props.height}\n\t\t\t\t\t\t\ttype={props.type}\n\t\t\t\t\t\t\tminHeight={minHeight}\n\t\t\t\t\t\t\tmaxHeight={maxHeight}\n\t\t\t\t\t\t\tautoGrow={autoGrow}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainer>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'small' && (\n\t\t\t\t\t\t<SC.InputContainerSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'x-small' && (\n\t\t\t\t\t\t<SC.InputContainerXSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerXSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!RightIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(rightIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={false}\n\t\t\t\t\t\t\tdata-test={rightIcon?.['data-test']}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RightIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!suffixText && (\n\t\t\t\t\t\t<SuffixHolder variant={variant}>{suffixText}</SuffixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.text && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tbuttonText={button.text}\n\t\t\t\t\t\t\tbuttonType={button.buttonType}\n\t\t\t\t\t\t\tonClick={() => executeCallback(button?.onClick)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.buttonProps && <Button {...button.buttonProps} />}\n\t\t\t\t</SC.InputWrapper>\n\t\t\t\t{!hideInputHeader && (!!labelText || !!maxCharLimit) && (\n\t\t\t\t\t<SC.InputHeader\n\t\t\t\t\t\tinvalid={isInvalid}\n\t\t\t\t\t\tmaxCharAlignment={maxCharAlignment}\n\t\t\t\t\t>\n\t\t\t\t\t\t{labelElement && labelElement}\n\t\t\t\t\t\t<div className=\"label__container\">\n\t\t\t\t\t\t\t{labelTextBold ? (\n\t\t\t\t\t\t\t\t<TitleSmall>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<BodySecondary>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.tooltipText && (\n\t\t\t\t\t\t\t\t<Tooltip body={props.tooltipText} placement={'top'}>\n\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t<InfoIcon\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginTop: -3 }}\n\t\t\t\t\t\t\t\t\t\t\twidth={18}\n\t\t\t\t\t\t\t\t\t\t\theight={18}\n\t\t\t\t\t\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\tisInvalid\n\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.negative\n\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'TOP' && (\n\t\t\t\t\t\t\t<SC.MaxCharStyle style={maxCharStyle}>\n\t\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</SC.InputHeader>\n\t\t\t\t)}\n\t\t\t</SC.RootContainer>\n\t\t);\n\t},\n);\n\nInput.displayName = 'Input';\n"],"names":["Input","forwardRef","props","fRef","placeholder","leftIcon","rightIcon","labelText","maxCharLimit","isRequired","hintText","type","state","validate","variant","button","suffixText","prefixText","onChangeText","value","noErrorHint","reset","rangeValidation","noKeyDownChange","version","noMaxCharCheck","labelElement","autoGrow","minHeight","maxHeight","labelTextBold","truncateText","maxCharLimitPosition","maxCharStyle","hightlightInputColor","onKeyDownEvent","hideInputHeader","hideBorder","inputWrapperStyles","minCharsToTrigger","maxCharAlignment","isDisabled","allowUnsafeInput","leftIconStyle","LeftIcon","RightIcon","isInvalid","setIsInvalid","useState","isActive","setIsActive","errorMessage","setErrorMessage","iconSize","stylesFromOutside","useContext","InputStyleContext","inputValue","setInputValue","_ref","useRef","inputRef","useEffect","numberInput","onWheel","executeCallback","cb","params","isFunction","getMaxChar","onKeyDown","e","MAX_CHAR_LIMIT","KEY_CODES_TO_BE_EXCLUDED","MIN_CHAR_LIMIT","inputText","event","onChange","shouldSanitizeForType","sanitizeUnsafeInput","validateFunction","validateInput","isValid","error","onFocus","onBlur","getInputHTML","jsxs","Fragment","jsx","SC.RootContainer","SC.InputFooter","ErrorIcon","SC.MaxCharStyle","SC.InputWrapper","SC.IconHolder","PrefixHolder","SC.InputContainer","SC.InputContainerSmall","SC.InputContainerXSmall","SuffixHolder","Button","SC.InputHeader","TitleSmall","BodySecondary","Tooltip","InfoIcon","COLORS"],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface InputProps {
17
17
  rightIcon?: {
18
18
  icon: React.FC;
19
19
  callback?: () => void;
20
+ 'data-test'?: string;
20
21
  };
21
22
  labelElement?: React.ReactNode;
22
23
  labelText?: string;
@@ -1,37 +1,37 @@
1
1
  import { jsxs as c, jsx as n, Fragment as T } from "react/jsx-runtime";
2
2
  import P from "../../assets/icons/chevronRight2.svg.js";
3
- import u, { useRef as B } from "react";
3
+ import u, { useRef as W } from "react";
4
4
  import { COLORS as t } from "../../constants/Theme.js";
5
- import { BodyCaption as H, BodyTiny as L } from "../TypographyStyle.js";
6
- import { MenuItemWrapper as W, MenuItemContainer as j, ContentContainer as k, LeadingIconContainer as E, TrailingIconContainer as p, SubMenuContainer as _, StyledSubMenuWrapper as w, SubMenuListContainer as D } from "./MultiLevelDropdown.styled.js";
5
+ import { BodyCaption as B, BodyTiny as H } from "../TypographyStyle.js";
6
+ import { MenuItemWrapper as L, MenuItemContainer as j, ContentContainer as k, LeadingIconContainer as E, TrailingIconContainer as C, SubMenuContainer as _, StyledSubMenuWrapper as w, SubMenuListContainer as D } from "./MultiLevelDropdown.styled.js";
7
7
  const J = ({
8
8
  width: o,
9
9
  onDropdownItemClick: f,
10
10
  option: e,
11
- parents: h,
11
+ parents: m,
12
12
  allowParentSelection: y,
13
- maxLevels: m,
13
+ maxLevels: h,
14
14
  currentLevel: b,
15
15
  renderNestedMenu: I,
16
16
  version: r
17
17
  }) => {
18
- const [g, M] = u.useState(!1), [l, S] = u.useState(!1), [C, v] = u.useState({
18
+ const [g, M] = u.useState(!1), [a, p] = u.useState(!1), [S, v] = u.useState({
19
19
  top: 0,
20
20
  left: 0
21
- }), x = B({ top: 0, left: 0 }), i = !!e.children && e.children.length > 0, d = i && (m === void 0 || b < m), O = () => {
22
- !f || (e.disabled ?? !1) || (!i || y) && f(e, h);
21
+ }), x = W({ top: 0, left: 0 }), i = !!e.children && e.children.length > 0, d = i && (h === void 0 || b < h), O = () => {
22
+ !f || (e.disabled ?? !1) || (!i || y) && f(e, m);
23
23
  }, R = (s) => {
24
- const a = s.currentTarget.getBoundingClientRect();
24
+ const l = s.currentTarget.getBoundingClientRect();
25
25
  v({
26
- top: a.top,
27
- left: a.right
26
+ top: l.top,
27
+ left: l.right
28
28
  }), x.current = {
29
- top: a.top,
30
- left: a.right
29
+ top: l.top,
30
+ left: l.right
31
31
  };
32
32
  };
33
33
  return /* @__PURE__ */ c(
34
- W,
34
+ L,
35
35
  {
36
36
  version: r,
37
37
  onMouseEnter: (s) => {
@@ -44,6 +44,7 @@ const J = ({
44
44
  s.stopPropagation(), O();
45
45
  },
46
46
  id: "menuItemWrapper",
47
+ "data-testid": "menuItemWrapper",
47
48
  style: {
48
49
  cursor: e.disabled ?? !1 ? "not-allowed" : "pointer",
49
50
  backgroundColor: e.disabled ?? !1 ? t.surface.standard : "transparent"
@@ -54,7 +55,7 @@ const J = ({
54
55
  {
55
56
  isSelected: e.selected,
56
57
  isSubMenuOpen: g,
57
- isHovered: l,
58
+ isHovered: a,
58
59
  isDisabled: e.disabled ?? !1,
59
60
  version: r,
60
61
  children: [
@@ -62,19 +63,19 @@ const J = ({
62
63
  e.leadingIcon && /* @__PURE__ */ n(E, { children: e.leadingIcon }),
63
64
  /* @__PURE__ */ c("div", { children: [
64
65
  /* @__PURE__ */ n(
65
- H,
66
+ B,
66
67
  {
67
68
  style: {
68
- color: e.disabled ?? !1 ? t.content.inactive : e.selected || l ? r === "3.0" ? t.text.primary : t.content.positive : t.content.primary
69
+ color: e.disabled ?? !1 ? t.content.inactive : e.selected || a ? r === "3.0" ? t.text.primary : t.content.positive : t.content.primary
69
70
  },
70
71
  children: e.label
71
72
  }
72
73
  ),
73
74
  e.subText && /* @__PURE__ */ n(
74
- L,
75
+ H,
75
76
  {
76
77
  style: {
77
- color: e.disabled ?? !1 ? t.content.inactive : e.selected || l ? r === "3.0" ? t.text.primary : t.content.positive : t.content.secondary,
78
+ color: e.disabled ?? !1 ? t.content.inactive : e.selected || a ? r === "3.0" ? t.text.primary : t.content.positive : t.content.secondary,
78
79
  marginTop: "2px"
79
80
  },
80
81
  children: e.subText
@@ -82,14 +83,14 @@ const J = ({
82
83
  )
83
84
  ] })
84
85
  ] }),
85
- i ? /* @__PURE__ */ n(p, { children: /* @__PURE__ */ n(
86
+ i ? /* @__PURE__ */ n(C, { children: /* @__PURE__ */ n(
86
87
  P,
87
88
  {
88
89
  width: 16,
89
90
  height: 16,
90
- color: !d || (e.disabled ?? !1) ? t.content.inactive : e.selected || l ? r === "3.0" ? t.text.primary : t.content.positive : t.content.primary
91
+ color: !d || (e.disabled ?? !1) ? t.content.inactive : e.selected || a ? r === "3.0" ? t.text.primary : t.content.positive : t.content.primary
91
92
  }
92
- ) }) : e.trailingIcon ? /* @__PURE__ */ n(p, { children: e.trailingIcon }) : /* @__PURE__ */ n(T, {})
93
+ ) }) : e.trailingIcon ? /* @__PURE__ */ n(C, { children: e.trailingIcon }) : /* @__PURE__ */ n(T, {})
93
94
  ]
94
95
  }
95
96
  ),
@@ -98,17 +99,17 @@ const J = ({
98
99
  {
99
100
  width: o,
100
101
  className: "submenu",
101
- onMouseEnter: () => S(!0),
102
- onMouseLeave: () => S(!1),
102
+ onMouseEnter: () => p(!0),
103
+ onMouseLeave: () => p(!1),
103
104
  children: /* @__PURE__ */ n(
104
105
  w,
105
106
  {
106
107
  width: o,
107
- top: C.top,
108
- left: C.left,
108
+ top: S.top,
109
+ left: S.left,
109
110
  children: /* @__PURE__ */ n(D, { version: r, children: I(
110
111
  e.children,
111
- [...h, e],
112
+ [...m, e],
112
113
  b + 1
113
114
  ) })
114
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sources":["../../../../src/components/multi-level-dropdown/MenuItem.tsx"],"sourcesContent":["import ChevronRightIcon from '@src/assets/icons/chevronRight2.svg';\nimport React, { useRef } from 'react';\nimport { COLORS } from '@src/constants/Theme';\nimport { BodyCaption, BodyTiny } from '../TypographyStyle';\nimport {\n\tContentContainer,\n\tLeadingIconContainer,\n\tMenuItemContainer,\n\tMenuItemWrapper,\n\tStyledSubMenuWrapper,\n\tSubMenuContainer,\n\tSubMenuListContainer,\n\tTrailingIconContainer,\n} from './MultiLevelDropdown.styled';\nimport {\n\tMultiLevelDropdownOption,\n\tRenderNestedMenu,\n\tSingleOption,\n} from './type';\n\nexport const MenuItem: React.FC<{\n\twidth: string;\n\tonDropdownItemClick?: (\n\t\toption: MultiLevelDropdownOption,\n\t\tparents: MultiLevelDropdownOption[],\n\t) => void;\n\toption: SingleOption;\n\tparents: MultiLevelDropdownOption[];\n\tallowParentSelection?: boolean;\n\tmaxLevels?: number;\n\tcurrentLevel: number;\n\trenderNestedMenu: RenderNestedMenu;\n\tversion?: '1.0' | '2.0' | '3.0';\n}> = ({\n\twidth,\n\tonDropdownItemClick,\n\toption,\n\tparents,\n\tallowParentSelection,\n\tmaxLevels,\n\tcurrentLevel,\n\trenderNestedMenu,\n\tversion,\n}) => {\n\tconst [isSubMenuOpen, setIsSubMenuOpen] = React.useState(false);\n\tconst [isSubMenuHovered, setIsSubMenuHovered] = React.useState(false);\n\tconst [subMenuPosition, setSubMenuPosition] = React.useState({\n\t\ttop: 0,\n\t\tleft: 0,\n\t});\n\tconst positionRef = useRef<any>({ top: 0, left: 0 });\n\tconst hasChildren = !!option.children && option.children.length > 0;\n\tconst canOpenSubMenu =\n\t\thasChildren && (maxLevels === undefined || currentLevel < maxLevels);\n\n\tconst handleDropdownOptionClick = () => {\n\t\tif (!onDropdownItemClick || (option.disabled ?? false)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!hasChildren || allowParentSelection) {\n\t\t\tonDropdownItemClick(option, parents);\n\t\t}\n\t};\n\n\tconst calculateSubMenuPosition = (event: React.MouseEvent) => {\n\t\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n\t\tsetSubMenuPosition({\n\t\t\ttop: rect.top,\n\t\t\tleft: rect.right,\n\t\t});\n\t\tpositionRef.current = {\n\t\t\ttop: rect.top,\n\t\t\tleft: rect.right,\n\t\t};\n\t};\n\n\treturn (\n\t\t<MenuItemWrapper\n\t\t\tversion={version}\n\t\t\tonMouseEnter={(event) => {\n\t\t\t\tif (canOpenSubMenu) {\n\t\t\t\t\tsetIsSubMenuOpen(true);\n\t\t\t\t\tcalculateSubMenuPosition(event);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tonMouseLeave={() => {\n\t\t\t\tsetIsSubMenuOpen(false);\n\t\t\t}}\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\thandleDropdownOptionClick();\n\t\t\t}}\n\t\t\tid=\"menuItemWrapper\"\n\t\t\tstyle={{\n\t\t\t\tcursor: option.disabled ?? false ? 'not-allowed' : 'pointer',\n\t\t\t\tbackgroundColor:\n\t\t\t\t\toption.disabled ?? false ? COLORS.surface.standard : 'transparent',\n\t\t\t}}\n\t\t>\n\t\t\t{option.customComponent ? (\n\t\t\t\toption.customComponent\n\t\t\t) : (\n\t\t\t\t<MenuItemContainer\n\t\t\t\t\tisSelected={option.selected}\n\t\t\t\t\tisSubMenuOpen={isSubMenuOpen}\n\t\t\t\t\tisHovered={isSubMenuHovered}\n\t\t\t\t\tisDisabled={option.disabled ?? false}\n\t\t\t\t\tversion={version}\n\t\t\t\t>\n\t\t\t\t\t<ContentContainer>\n\t\t\t\t\t\t{option.leadingIcon && (\n\t\t\t\t\t\t\t<LeadingIconContainer>{option.leadingIcon}</LeadingIconContainer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\toption.disabled ?? false\n\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.inactive\n\t\t\t\t\t\t\t\t\t\t\t: option.selected || isSubMenuHovered\n\t\t\t\t\t\t\t\t\t\t\t? version === '3.0'\n\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.text.primary\n\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t{option.subText && (\n\t\t\t\t\t\t\t\t<BodyTiny\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t\toption.disabled ?? false\n\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.inactive\n\t\t\t\t\t\t\t\t\t\t\t\t: option.selected || isSubMenuHovered\n\t\t\t\t\t\t\t\t\t\t\t\t? version === '3.0'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.text.primary\n\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.secondary,\n\t\t\t\t\t\t\t\t\t\tmarginTop: '2px',\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{option.subText}\n\t\t\t\t\t\t\t\t</BodyTiny>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ContentContainer>\n\t\t\t\t\t{hasChildren ? (\n\t\t\t\t\t\t<TrailingIconContainer>\n\t\t\t\t\t\t\t<ChevronRightIcon\n\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\t\t\t!canOpenSubMenu || (option.disabled ?? false)\n\t\t\t\t\t\t\t\t\t\t? COLORS.content.inactive\n\t\t\t\t\t\t\t\t\t\t: option.selected || isSubMenuHovered\n\t\t\t\t\t\t\t\t\t\t? version === '3.0'\n\t\t\t\t\t\t\t\t\t\t\t? COLORS.text.primary\n\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TrailingIconContainer>\n\t\t\t\t\t) : option.trailingIcon ? (\n\t\t\t\t\t\t<TrailingIconContainer>{option.trailingIcon}</TrailingIconContainer>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<></>\n\t\t\t\t\t)}\n\t\t\t\t</MenuItemContainer>\n\t\t\t)}\n\n\t\t\t{!(option.disabled ?? false) &&\n\t\t\t\toption.children &&\n\t\t\t\toption.children.length > 0 &&\n\t\t\t\tcanOpenSubMenu &&\n\t\t\t\tisSubMenuOpen && (\n\t\t\t\t\t<SubMenuContainer\n\t\t\t\t\t\twidth={width}\n\t\t\t\t\t\tclassName=\"submenu\"\n\t\t\t\t\t\tonMouseEnter={() => setIsSubMenuHovered(true)}\n\t\t\t\t\t\tonMouseLeave={() => setIsSubMenuHovered(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<StyledSubMenuWrapper\n\t\t\t\t\t\t\twidth={width}\n\t\t\t\t\t\t\ttop={subMenuPosition.top}\n\t\t\t\t\t\t\tleft={subMenuPosition.left}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SubMenuListContainer version={version}>\n\t\t\t\t\t\t\t\t{renderNestedMenu(\n\t\t\t\t\t\t\t\t\toption.children,\n\t\t\t\t\t\t\t\t\t[...parents, option],\n\t\t\t\t\t\t\t\t\tcurrentLevel + 1,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</SubMenuListContainer>\n\t\t\t\t\t\t</StyledSubMenuWrapper>\n\t\t\t\t\t</SubMenuContainer>\n\t\t\t\t)}\n\t\t</MenuItemWrapper>\n\t);\n};\n"],"names":["MenuItem","width","onDropdownItemClick","option","parents","allowParentSelection","maxLevels","currentLevel","renderNestedMenu","version","isSubMenuOpen","setIsSubMenuOpen","React","isSubMenuHovered","setIsSubMenuHovered","subMenuPosition","setSubMenuPosition","positionRef","useRef","hasChildren","canOpenSubMenu","handleDropdownOptionClick","calculateSubMenuPosition","event","rect","jsxs","MenuItemWrapper","e","COLORS","MenuItemContainer","ContentContainer","jsx","LeadingIconContainer","BodyCaption","BodyTiny","TrailingIconContainer","ChevronRightIcon","Fragment","SubMenuContainer","StyledSubMenuWrapper","SubMenuListContainer"],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.js","sources":["../../../../src/components/multi-level-dropdown/MenuItem.tsx"],"sourcesContent":["import ChevronRightIcon from '@src/assets/icons/chevronRight2.svg';\nimport React, { useRef } from 'react';\nimport { COLORS } from '@src/constants/Theme';\nimport { BodyCaption, BodyTiny } from '../TypographyStyle';\nimport {\n\tContentContainer,\n\tLeadingIconContainer,\n\tMenuItemContainer,\n\tMenuItemWrapper,\n\tStyledSubMenuWrapper,\n\tSubMenuContainer,\n\tSubMenuListContainer,\n\tTrailingIconContainer,\n} from './MultiLevelDropdown.styled';\nimport {\n\tMultiLevelDropdownOption,\n\tRenderNestedMenu,\n\tSingleOption,\n} from './type';\n\nexport const MenuItem: React.FC<{\n\twidth: string;\n\tonDropdownItemClick?: (\n\t\toption: MultiLevelDropdownOption,\n\t\tparents: MultiLevelDropdownOption[],\n\t) => void;\n\toption: SingleOption;\n\tparents: MultiLevelDropdownOption[];\n\tallowParentSelection?: boolean;\n\tmaxLevels?: number;\n\tcurrentLevel: number;\n\trenderNestedMenu: RenderNestedMenu;\n\tversion?: '1.0' | '2.0' | '3.0';\n}> = ({\n\twidth,\n\tonDropdownItemClick,\n\toption,\n\tparents,\n\tallowParentSelection,\n\tmaxLevels,\n\tcurrentLevel,\n\trenderNestedMenu,\n\tversion,\n}) => {\n\tconst [isSubMenuOpen, setIsSubMenuOpen] = React.useState(false);\n\tconst [isSubMenuHovered, setIsSubMenuHovered] = React.useState(false);\n\tconst [subMenuPosition, setSubMenuPosition] = React.useState({\n\t\ttop: 0,\n\t\tleft: 0,\n\t});\n\tconst positionRef = useRef<any>({ top: 0, left: 0 });\n\tconst hasChildren = !!option.children && option.children.length > 0;\n\tconst canOpenSubMenu =\n\t\thasChildren && (maxLevels === undefined || currentLevel < maxLevels);\n\n\tconst handleDropdownOptionClick = () => {\n\t\tif (!onDropdownItemClick || (option.disabled ?? false)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!hasChildren || allowParentSelection) {\n\t\t\tonDropdownItemClick(option, parents);\n\t\t}\n\t};\n\n\tconst calculateSubMenuPosition = (event: React.MouseEvent) => {\n\t\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n\t\tsetSubMenuPosition({\n\t\t\ttop: rect.top,\n\t\t\tleft: rect.right,\n\t\t});\n\t\tpositionRef.current = {\n\t\t\ttop: rect.top,\n\t\t\tleft: rect.right,\n\t\t};\n\t};\n\n\treturn (\n\t\t<MenuItemWrapper\n\t\t\tversion={version}\n\t\t\tonMouseEnter={(event) => {\n\t\t\t\tif (canOpenSubMenu) {\n\t\t\t\t\tsetIsSubMenuOpen(true);\n\t\t\t\t\tcalculateSubMenuPosition(event);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tonMouseLeave={() => {\n\t\t\t\tsetIsSubMenuOpen(false);\n\t\t\t}}\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\thandleDropdownOptionClick();\n\t\t\t}}\n\t\t\tid=\"menuItemWrapper\"\n\t\t\tdata-testid=\"menuItemWrapper\"\n\t\t\tstyle={{\n\t\t\t\tcursor: option.disabled ?? false ? 'not-allowed' : 'pointer',\n\t\t\t\tbackgroundColor:\n\t\t\t\t\toption.disabled ?? false ? COLORS.surface.standard : 'transparent',\n\t\t\t}}\n\t\t>\n\t\t\t{option.customComponent ? (\n\t\t\t\toption.customComponent\n\t\t\t) : (\n\t\t\t\t<MenuItemContainer\n\t\t\t\t\tisSelected={option.selected}\n\t\t\t\t\tisSubMenuOpen={isSubMenuOpen}\n\t\t\t\t\tisHovered={isSubMenuHovered}\n\t\t\t\t\tisDisabled={option.disabled ?? false}\n\t\t\t\t\tversion={version}\n\t\t\t\t>\n\t\t\t\t\t<ContentContainer>\n\t\t\t\t\t\t{option.leadingIcon && (\n\t\t\t\t\t\t\t<LeadingIconContainer>{option.leadingIcon}</LeadingIconContainer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\toption.disabled ?? false\n\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.inactive\n\t\t\t\t\t\t\t\t\t\t\t: option.selected || isSubMenuHovered\n\t\t\t\t\t\t\t\t\t\t\t? version === '3.0'\n\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.text.primary\n\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t{option.subText && (\n\t\t\t\t\t\t\t\t<BodyTiny\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\t\t\toption.disabled ?? false\n\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.inactive\n\t\t\t\t\t\t\t\t\t\t\t\t: option.selected || isSubMenuHovered\n\t\t\t\t\t\t\t\t\t\t\t\t? version === '3.0'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.text.primary\n\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.secondary,\n\t\t\t\t\t\t\t\t\t\tmarginTop: '2px',\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{option.subText}\n\t\t\t\t\t\t\t\t</BodyTiny>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ContentContainer>\n\t\t\t\t\t{hasChildren ? (\n\t\t\t\t\t\t<TrailingIconContainer>\n\t\t\t\t\t\t\t<ChevronRightIcon\n\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\t\t\t!canOpenSubMenu || (option.disabled ?? false)\n\t\t\t\t\t\t\t\t\t\t? COLORS.content.inactive\n\t\t\t\t\t\t\t\t\t\t: option.selected || isSubMenuHovered\n\t\t\t\t\t\t\t\t\t\t? version === '3.0'\n\t\t\t\t\t\t\t\t\t\t\t? COLORS.text.primary\n\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TrailingIconContainer>\n\t\t\t\t\t) : option.trailingIcon ? (\n\t\t\t\t\t\t<TrailingIconContainer>{option.trailingIcon}</TrailingIconContainer>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<></>\n\t\t\t\t\t)}\n\t\t\t\t</MenuItemContainer>\n\t\t\t)}\n\n\t\t\t{!(option.disabled ?? false) &&\n\t\t\t\toption.children &&\n\t\t\t\toption.children.length > 0 &&\n\t\t\t\tcanOpenSubMenu &&\n\t\t\t\tisSubMenuOpen && (\n\t\t\t\t\t<SubMenuContainer\n\t\t\t\t\t\twidth={width}\n\t\t\t\t\t\tclassName=\"submenu\"\n\t\t\t\t\t\tonMouseEnter={() => setIsSubMenuHovered(true)}\n\t\t\t\t\t\tonMouseLeave={() => setIsSubMenuHovered(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<StyledSubMenuWrapper\n\t\t\t\t\t\t\twidth={width}\n\t\t\t\t\t\t\ttop={subMenuPosition.top}\n\t\t\t\t\t\t\tleft={subMenuPosition.left}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SubMenuListContainer version={version}>\n\t\t\t\t\t\t\t\t{renderNestedMenu(\n\t\t\t\t\t\t\t\t\toption.children,\n\t\t\t\t\t\t\t\t\t[...parents, option],\n\t\t\t\t\t\t\t\t\tcurrentLevel + 1,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</SubMenuListContainer>\n\t\t\t\t\t\t</StyledSubMenuWrapper>\n\t\t\t\t\t</SubMenuContainer>\n\t\t\t\t)}\n\t\t</MenuItemWrapper>\n\t);\n};\n"],"names":["MenuItem","width","onDropdownItemClick","option","parents","allowParentSelection","maxLevels","currentLevel","renderNestedMenu","version","isSubMenuOpen","setIsSubMenuOpen","React","isSubMenuHovered","setIsSubMenuHovered","subMenuPosition","setSubMenuPosition","positionRef","useRef","hasChildren","canOpenSubMenu","handleDropdownOptionClick","calculateSubMenuPosition","event","rect","jsxs","MenuItemWrapper","e","COLORS","MenuItemContainer","ContentContainer","jsx","LeadingIconContainer","BodyCaption","BodyTiny","TrailingIconContainer","ChevronRightIcon","Fragment","SubMenuContainer","StyledSubMenuWrapper","SubMenuListContainer"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { jsxs as c, jsx as t, Fragment as x } from "react/jsx-runtime";
2
- import { useState as n, useEffect as h, useMemo as r } from "react";
1
+ import { jsxs as c, jsx as t, Fragment as u } from "react/jsx-runtime";
2
+ import { useState as n, useEffect as x, useMemo as r } from "react";
3
3
  import { RadioButtonContainer as S, RadioButtonIcon as y } from "./RadioButton.styled.js";
4
- import { BodyCaption as m, TitleSmall as C, BodySecondary as k, BodyPrimary as D } from "../TypographyStyle.js";
4
+ import { BodyCaption as m, TitleSmall as k, BodySecondary as C, BodyPrimary as D } from "../TypographyStyle.js";
5
5
  import { COLORS as i } from "../../constants/Theme.js";
6
6
  const g = (e) => {
7
7
  const l = r(
@@ -33,6 +33,7 @@ const g = (e) => {
33
33
  e.isActive && /* @__PURE__ */ t(
34
34
  "circle",
35
35
  {
36
+ "data-test": "radio-checked-indicator",
36
37
  cx: e.isSmall ? "8" : "10",
37
38
  cy: e.isSmall ? "8" : "10",
38
39
  r: e.isSmall ? 3 : 5,
@@ -49,11 +50,11 @@ const g = (e) => {
49
50
  a(o), e.onValueChange?.(o, e.value);
50
51
  }
51
52
  };
52
- h(() => {
53
+ x(() => {
53
54
  a(e.isActive);
54
55
  }, [e.isActive]);
55
- const u = () => e.label ? e.boldOnChecked && l || e.alwaysBold ? /* @__PURE__ */ t(
56
- C,
56
+ const h = () => e.label ? e.boldOnChecked && l || e.alwaysBold ? /* @__PURE__ */ t(
57
+ k,
57
58
  {
58
59
  color: e.isDisabled ? i.text.disabled : i.text.primary,
59
60
  children: e.label
@@ -65,7 +66,7 @@ const g = (e) => {
65
66
  children: e.label
66
67
  }
67
68
  ) : e.labelSize === "MEDIUM" ? /* @__PURE__ */ t(
68
- k,
69
+ C,
69
70
  {
70
71
  color: e.isDisabled ? i.text.disabled : i.text.primary,
71
72
  children: e.label
@@ -76,7 +77,7 @@ const g = (e) => {
76
77
  color: e.isDisabled ? i.text.disabled : i.text.primary,
77
78
  children: e.label
78
79
  }
79
- ) : /* @__PURE__ */ t(x, {});
80
+ ) : /* @__PURE__ */ t(u, {});
80
81
  return /* @__PURE__ */ c(
81
82
  S,
82
83
  {
@@ -117,7 +118,7 @@ const g = (e) => {
117
118
  gap: e.gapBetweenBodyAndCaption || "0px"
118
119
  },
119
120
  children: [
120
- u(),
121
+ h(),
121
122
  e.caption && /* @__PURE__ */ t(
122
123
  m,
123
124
  {
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButton.js","sources":["../../../../src/components/radioButton/RadioButton.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n\tRadioButtonContainer,\n\tRadioButtonIcon,\n} from '@src/components/radioButton/RadioButton.styled';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport type RadioButtonProps = {\n\tisActive: boolean;\n\tisDisabled?: boolean;\n\tvalue?: string;\n\tlabel?: string;\n\tcaption?: string;\n\tonValueChange: (checked: boolean, value?: string) => void;\n\tskipHoverState?: boolean;\n\tsize?: 'DEFAULT' | 'SMALL';\n\tskipSelectingOff?: boolean;\n\tlabelSize?: 'DEFAULT' | 'MEDIUM';\n\tboldOnChecked?: boolean;\n\talwaysBold?: boolean;\n\tactiveColor?: string;\n\tgapBetweenBodyAndCaption?: string;\n\t'data-test'?: string;\n};\n\nconst CheckMark: React.FC<{\n\tisActive: boolean;\n\tisDisabled: boolean;\n\tisSmall: boolean;\n\tactiveColor?: string;\n}> = (props) => {\n\tconst fillColor = useMemo(\n\t\t() => props?.activeColor || COLORS.background.positive.vibrant,\n\t\t[props.activeColor],\n\t);\n\n\tconst strokeColor = useMemo(\n\t\t() =>\n\t\t\tprops.isDisabled\n\t\t\t\t? COLORS.content.inactive\n\t\t\t\t: props.isActive\n\t\t\t\t? fillColor\n\t\t\t\t: COLORS.content.primary,\n\t\t[props.isDisabled, props.isActive, fillColor],\n\t);\n\n\treturn (\n\t\t<svg\n\t\t\twidth={props.isSmall ? '16' : '20'}\n\t\t\theight={props.isSmall ? '16' : '20'}\n\t\t\tviewBox={props.isSmall ? '0 0 16 16' : '0 0 20 20'}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<circle\n\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\tr={props.isSmall ? 6 : 9}\n\t\t\t\tstroke={strokeColor}\n\t\t\t\tstrokeWidth={props.isSmall ? 1.5 : 2}\n\t\t\t/>\n\t\t\t{props.isActive && (\n\t\t\t\t<circle\n\t\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\t\tr={props.isSmall ? 3 : 5}\n\t\t\t\t\tfill={props.isDisabled ? COLORS.content.inactive : fillColor}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</svg>\n\t);\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = (props) => {\n\tconst [isActive, setIsActive] = useState(props.isActive || false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isClicked, setIsClicked] = useState(false);\n\n\tconst handleCheck = () => {\n\t\tif (props.skipSelectingOff) {\n\t\t\treturn;\n\t\t}\n\t\tif (!props.isDisabled) {\n\t\t\tconst newVal = !isActive;\n\t\t\tsetIsActive(newVal);\n\t\t\tprops.onValueChange?.(newVal, props.value);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsActive(props.isActive);\n\t}, [props.isActive]);\n\n\tconst renderLabel = () => {\n\t\tif (!props.label) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tif ((props.boldOnChecked && isActive) || props.alwaysBold) {\n\t\t\treturn (\n\t\t\t\t<TitleSmall\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</TitleSmall>\n\t\t\t);\n\t\t}\n\n\t\tif (props.size === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodyCaption\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodyCaption>\n\t\t\t);\n\t\t}\n\n\t\tif (props.labelSize === 'MEDIUM') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BodyPrimary\n\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t>\n\t\t\t\t{props.label}\n\t\t\t</BodyPrimary>\n\t\t);\n\t};\n\n\treturn (\n\t\t<RadioButtonContainer\n\t\t\tdata-test={props['data-test']}\n\t\t\tonClick={handleCheck}\n\t\t\tonMouseEnter={() => setIsHovered(!props.skipHoverState)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t\tonMouseDown={() => setIsClicked(!props.skipHoverState)}\n\t\t\tonMouseUp={() => setIsClicked(false)}\n\t\t\tstyle={props.caption ? { alignItems: 'flex-start' } : {}}\n\t\t>\n\t\t\t<RadioButtonIcon\n\t\t\t\tchecked={isActive}\n\t\t\t\thovered={isHovered}\n\t\t\t\tclicked={isClicked}\n\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\tsize={props.size}\n\t\t\t\tstyle={props.caption ? { margin: '2px 0' } : {}}\n\t\t\t>\n\t\t\t\t<CheckMark\n\t\t\t\t\tisSmall={props.size === 'SMALL'}\n\t\t\t\t\tisActive={isActive}\n\t\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\t\tactiveColor={props.activeColor}\n\t\t\t\t/>\n\t\t\t</RadioButtonIcon>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tgap: props.gapBetweenBodyAndCaption || '0px',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{renderLabel()}\n\t\t\t\t{props.caption && (\n\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tprops.isDisabled ? COLORS.text.disabled : COLORS.text.secondary\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.caption}\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</RadioButtonContainer>\n\t);\n};\n"],"names":["CheckMark","props","fillColor","useMemo","COLORS","strokeColor","jsxs","jsx","RadioButton","isActive","setIsActive","useState","isHovered","setIsHovered","isClicked","setIsClicked","handleCheck","newVal","useEffect","renderLabel","TitleSmall","BodyCaption","BodySecondary","BodyPrimary","Fragment","RadioButtonContainer","RadioButtonIcon"],"mappings":"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"}
1
+ {"version":3,"file":"RadioButton.js","sources":["../../../../src/components/radioButton/RadioButton.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n\tRadioButtonContainer,\n\tRadioButtonIcon,\n} from '@src/components/radioButton/RadioButton.styled';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport type RadioButtonProps = {\n\tisActive: boolean;\n\tisDisabled?: boolean;\n\tvalue?: string;\n\tlabel?: string;\n\tcaption?: string;\n\tonValueChange: (checked: boolean, value?: string) => void;\n\tskipHoverState?: boolean;\n\tsize?: 'DEFAULT' | 'SMALL';\n\tskipSelectingOff?: boolean;\n\tlabelSize?: 'DEFAULT' | 'MEDIUM';\n\tboldOnChecked?: boolean;\n\talwaysBold?: boolean;\n\tactiveColor?: string;\n\tgapBetweenBodyAndCaption?: string;\n\t'data-test'?: string;\n};\n\nconst CheckMark: React.FC<{\n\tisActive: boolean;\n\tisDisabled: boolean;\n\tisSmall: boolean;\n\tactiveColor?: string;\n}> = (props) => {\n\tconst fillColor = useMemo(\n\t\t() => props?.activeColor || COLORS.background.positive.vibrant,\n\t\t[props.activeColor],\n\t);\n\n\tconst strokeColor = useMemo(\n\t\t() =>\n\t\t\tprops.isDisabled\n\t\t\t\t? COLORS.content.inactive\n\t\t\t\t: props.isActive\n\t\t\t\t? fillColor\n\t\t\t\t: COLORS.content.primary,\n\t\t[props.isDisabled, props.isActive, fillColor],\n\t);\n\n\treturn (\n\t\t<svg\n\t\t\twidth={props.isSmall ? '16' : '20'}\n\t\t\theight={props.isSmall ? '16' : '20'}\n\t\t\tviewBox={props.isSmall ? '0 0 16 16' : '0 0 20 20'}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<circle\n\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\tr={props.isSmall ? 6 : 9}\n\t\t\t\tstroke={strokeColor}\n\t\t\t\tstrokeWidth={props.isSmall ? 1.5 : 2}\n\t\t\t/>\n\t\t\t{props.isActive && (\n\t\t\t\t<circle\n\t\t\t\t\tdata-test=\"radio-checked-indicator\"\n\t\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\t\tr={props.isSmall ? 3 : 5}\n\t\t\t\t\tfill={props.isDisabled ? COLORS.content.inactive : fillColor}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</svg>\n\t);\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = (props) => {\n\tconst [isActive, setIsActive] = useState(props.isActive || false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isClicked, setIsClicked] = useState(false);\n\n\tconst handleCheck = () => {\n\t\tif (props.skipSelectingOff) {\n\t\t\treturn;\n\t\t}\n\t\tif (!props.isDisabled) {\n\t\t\tconst newVal = !isActive;\n\t\t\tsetIsActive(newVal);\n\t\t\tprops.onValueChange?.(newVal, props.value);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsActive(props.isActive);\n\t}, [props.isActive]);\n\n\tconst renderLabel = () => {\n\t\tif (!props.label) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tif ((props.boldOnChecked && isActive) || props.alwaysBold) {\n\t\t\treturn (\n\t\t\t\t<TitleSmall\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</TitleSmall>\n\t\t\t);\n\t\t}\n\n\t\tif (props.size === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodyCaption\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodyCaption>\n\t\t\t);\n\t\t}\n\n\t\tif (props.labelSize === 'MEDIUM') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BodyPrimary\n\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t>\n\t\t\t\t{props.label}\n\t\t\t</BodyPrimary>\n\t\t);\n\t};\n\n\treturn (\n\t\t<RadioButtonContainer\n\t\t\tdata-test={props['data-test']}\n\t\t\tonClick={handleCheck}\n\t\t\tonMouseEnter={() => setIsHovered(!props.skipHoverState)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t\tonMouseDown={() => setIsClicked(!props.skipHoverState)}\n\t\t\tonMouseUp={() => setIsClicked(false)}\n\t\t\tstyle={props.caption ? { alignItems: 'flex-start' } : {}}\n\t\t>\n\t\t\t<RadioButtonIcon\n\t\t\t\tchecked={isActive}\n\t\t\t\thovered={isHovered}\n\t\t\t\tclicked={isClicked}\n\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\tsize={props.size}\n\t\t\t\tstyle={props.caption ? { margin: '2px 0' } : {}}\n\t\t\t>\n\t\t\t\t<CheckMark\n\t\t\t\t\tisSmall={props.size === 'SMALL'}\n\t\t\t\t\tisActive={isActive}\n\t\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\t\tactiveColor={props.activeColor}\n\t\t\t\t/>\n\t\t\t</RadioButtonIcon>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tgap: props.gapBetweenBodyAndCaption || '0px',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{renderLabel()}\n\t\t\t\t{props.caption && (\n\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tprops.isDisabled ? COLORS.text.disabled : COLORS.text.secondary\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.caption}\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</RadioButtonContainer>\n\t);\n};\n"],"names":["CheckMark","props","fillColor","useMemo","COLORS","strokeColor","jsxs","jsx","RadioButton","isActive","setIsActive","useState","isHovered","setIsHovered","isClicked","setIsClicked","handleCheck","newVal","useEffect","renderLabel","TitleSmall","BodyCaption","BodySecondary","BodyPrimary","Fragment","RadioButtonContainer","RadioButtonIcon"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { jsxs as a, jsx as l } from "react/jsx-runtime";
1
+ import { jsxs as c, jsx as l } from "react/jsx-runtime";
2
2
  import { useState as m, useEffect as u } from "react";
3
3
  import { RadioListStyled as f } from "./RadioList.styled.js";
4
4
  import { TitleRegular as h, BodySecondary as O } from "../TypographyStyle.js";
5
- import { COLORS as C } from "../../constants/Theme.js";
6
- import { RadioButton as v } from "../radioButton/RadioButton.js";
5
+ import { COLORS as v } from "../../constants/Theme.js";
6
+ import { RadioButton as C } from "../radioButton/RadioButton.js";
7
7
  const T = (t) => {
8
8
  const [n, s] = m(
9
9
  t.listItems
@@ -12,26 +12,35 @@ const T = (t) => {
12
12
  s(t.listItems);
13
13
  }, [t.listItems]);
14
14
  const d = (e, r) => {
15
- let o;
16
- const c = [...n];
17
- c.forEach((i) => {
18
- i.value === r ? (o = i, i.isActive = e) : i.isActive = !e;
19
- }), s(c), t.onChange(o);
15
+ let a;
16
+ const o = [...n];
17
+ o.forEach((i) => {
18
+ i.value === r ? (a = i, i.isActive = e) : i.isActive = !e;
19
+ }), s(o), t.onChange(a);
20
20
  };
21
- return /* @__PURE__ */ a(f, { children: [
22
- (t.title || t.subTitle) && /* @__PURE__ */ a("div", { className: "title__container", children: [
21
+ return /* @__PURE__ */ c(f, { children: [
22
+ (t.title || t.subTitle) && /* @__PURE__ */ c("div", { className: "title__container", children: [
23
23
  t.title && /* @__PURE__ */ l(h, { children: t.title }),
24
- t.subTitle && /* @__PURE__ */ l(O, { color: C.text.secondary, children: t.subTitle })
24
+ t.subTitle && /* @__PURE__ */ l(O, { color: v.text.secondary, children: t.subTitle })
25
25
  ] }),
26
- /* @__PURE__ */ l("div", { style: t.listContainerStyles ?? {}, className: "list__container", children: n.map((e) => /* @__PURE__ */ l(
27
- v,
26
+ /* @__PURE__ */ l(
27
+ "div",
28
28
  {
29
- ...e,
30
- onValueChange: d,
31
- boldOnChecked: t.boldOnChecked
32
- },
33
- e.value
34
- )) })
29
+ "data-test": "radio-list-container",
30
+ style: t.listContainerStyles ?? {},
31
+ className: "list__container",
32
+ children: n.map((e) => /* @__PURE__ */ l(
33
+ C,
34
+ {
35
+ "data-test": e.value,
36
+ ...e,
37
+ onValueChange: d,
38
+ boldOnChecked: t.boldOnChecked
39
+ },
40
+ e.value
41
+ ))
42
+ }
43
+ )
35
44
  ] });
36
45
  };
37
46
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"RadioList.js","sources":["../../../../src/components/radioList/RadioList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { RadioButton, RadioButtonProps } from '@src/components/radioButton';\nimport { RadioListStyled } from '@src/components/radioList/RadioList.styled';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\ntype RadioListItem = Omit<RadioButtonProps, 'onValueChange'> & {\n\tvalue: string;\n};\n\nexport type RadioListProps = {\n\ttitle?: string;\n\tsubTitle?: string;\n\tlistItems: RadioListItem[];\n\tonChange: (option: RadioListItem) => void;\n\tlistContainerStyles?: React.CSSProperties;\n\tboldOnChecked?: boolean;\n};\n\nexport const RadioList: React.FC<RadioListProps> = (props) => {\n\tconst [listOptions, setListOptions] = useState<RadioListItem[]>(\n\t\tprops.listItems,\n\t);\n\n\tuseEffect(() => {\n\t\tsetListOptions(props.listItems);\n\t}, [props.listItems]);\n\n\tconst onOptionClicked = (checked: boolean, value: string | undefined) => {\n\t\tlet selectedOption;\n\t\tconst temptListOptions = [...listOptions];\n\t\ttemptListOptions.forEach((option) => {\n\t\t\tif (option.value === value) {\n\t\t\t\tselectedOption = option;\n\t\t\t\toption['isActive'] = checked;\n\t\t\t} else {\n\t\t\t\toption['isActive'] = !checked;\n\t\t\t}\n\t\t});\n\t\tsetListOptions(temptListOptions);\n\t\tprops.onChange(selectedOption);\n\t};\n\n\treturn (\n\t\t<RadioListStyled>\n\t\t\t{(props.title || props.subTitle) && (\n\t\t\t\t<div className=\"title__container\">\n\t\t\t\t\t{props.title && <TitleRegular>{props.title}</TitleRegular>}\n\t\t\t\t\t{props.subTitle && (\n\t\t\t\t\t\t<BodySecondary color={COLORS.text.secondary}>\n\t\t\t\t\t\t\t{props.subTitle}\n\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div style={props.listContainerStyles ?? {}} className=\"list__container\">\n\t\t\t\t{listOptions.map((listItem) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\tkey={listItem.value}\n\t\t\t\t\t\t\t{...listItem}\n\t\t\t\t\t\t\tonValueChange={onOptionClicked}\n\t\t\t\t\t\t\tboldOnChecked={props.boldOnChecked}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</RadioListStyled>\n\t);\n};\n"],"names":["RadioList","props","listOptions","setListOptions","useState","useEffect","onOptionClicked","checked","value","selectedOption","temptListOptions","option","RadioListStyled","jsxs","jsx","TitleRegular","BodySecondary","COLORS","listItem","RadioButton"],"mappings":";;;;;;AAmBO,MAAMA,IAAsC,CAACC,MAAU;AAC7D,QAAM,CAACC,GAAaC,CAAc,IAAIC;AAAA,IACrCH,EAAM;AAAA,EAAA;AAGP,EAAAI,EAAU,MAAM;AACf,IAAAF,EAAeF,EAAM,SAAS;AAAA,EAC/B,GAAG,CAACA,EAAM,SAAS,CAAC;AAEpB,QAAMK,IAAkB,CAACC,GAAkBC,MAA8B;AACxE,QAAIC;AACJ,UAAMC,IAAmB,CAAC,GAAGR,CAAW;AACxC,IAAAQ,EAAiB,QAAQ,CAACC,MAAW;AACpC,MAAIA,EAAO,UAAUH,KACpBC,IAAiBE,GACjBA,EAAO,WAAcJ,KAErBI,EAAO,WAAc,CAACJ;AAAA,IAExB,CAAC,GACDJ,EAAeO,CAAgB,GAC/BT,EAAM,SAASQ,CAAc;AAAA,EAC9B;AAEA,2BACEG,GAAA,EACE,UAAA;AAAA,KAAAX,EAAM,SAASA,EAAM,aACtB,gBAAAY,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,MAAAZ,EAAM,SAAS,gBAAAa,EAACC,GAAA,EAAc,UAAAd,EAAM,OAAM;AAAA,MAC1CA,EAAM,YACN,gBAAAa,EAACE,GAAA,EAAc,OAAOC,EAAO,KAAK,WAChC,UAAAhB,EAAM,SAAA,CACR;AAAA,IAAA,GAEF;AAAA,IAED,gBAAAa,EAAC,OAAA,EAAI,OAAOb,EAAM,uBAAuB,CAAA,GAAI,WAAU,mBACrD,UAAAC,EAAY,IAAI,CAACgB,MAEhB,gBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QAEC,GAAGD;AAAA,QACJ,eAAeZ;AAAA,QACf,eAAeL,EAAM;AAAA,MAAA;AAAA,MAHhBiB,EAAS;AAAA,IAAA,CAMhB,EAAA,CACF;AAAA,EAAA,GACD;AAEF;"}
1
+ {"version":3,"file":"RadioList.js","sources":["../../../../src/components/radioList/RadioList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { RadioButton, RadioButtonProps } from '@src/components/radioButton';\nimport { RadioListStyled } from '@src/components/radioList/RadioList.styled';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\ntype RadioListItem = Omit<RadioButtonProps, 'onValueChange'> & {\n\tvalue: string;\n};\n\nexport type RadioListProps = {\n\ttitle?: string;\n\tsubTitle?: string;\n\tlistItems: RadioListItem[];\n\tonChange: (option: RadioListItem) => void;\n\tlistContainerStyles?: React.CSSProperties;\n\tboldOnChecked?: boolean;\n};\n\nexport const RadioList: React.FC<RadioListProps> = (props) => {\n\tconst [listOptions, setListOptions] = useState<RadioListItem[]>(\n\t\tprops.listItems,\n\t);\n\n\tuseEffect(() => {\n\t\tsetListOptions(props.listItems);\n\t}, [props.listItems]);\n\n\tconst onOptionClicked = (checked: boolean, value: string | undefined) => {\n\t\tlet selectedOption;\n\t\tconst temptListOptions = [...listOptions];\n\t\ttemptListOptions.forEach((option) => {\n\t\t\tif (option.value === value) {\n\t\t\t\tselectedOption = option;\n\t\t\t\toption['isActive'] = checked;\n\t\t\t} else {\n\t\t\t\toption['isActive'] = !checked;\n\t\t\t}\n\t\t});\n\t\tsetListOptions(temptListOptions);\n\t\tprops.onChange(selectedOption);\n\t};\n\n\treturn (\n\t\t<RadioListStyled>\n\t\t\t{(props.title || props.subTitle) && (\n\t\t\t\t<div className=\"title__container\">\n\t\t\t\t\t{props.title && <TitleRegular>{props.title}</TitleRegular>}\n\t\t\t\t\t{props.subTitle && (\n\t\t\t\t\t\t<BodySecondary color={COLORS.text.secondary}>\n\t\t\t\t\t\t\t{props.subTitle}\n\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tdata-test=\"radio-list-container\"\n\t\t\t\tstyle={props.listContainerStyles ?? {}}\n\t\t\t\tclassName=\"list__container\"\n\t\t\t>\n\t\t\t\t{listOptions.map((listItem) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\tkey={listItem.value}\n\t\t\t\t\t\t\tdata-test={listItem.value}\n\t\t\t\t\t\t\t{...listItem}\n\t\t\t\t\t\t\tonValueChange={onOptionClicked}\n\t\t\t\t\t\t\tboldOnChecked={props.boldOnChecked}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</RadioListStyled>\n\t);\n};\n"],"names":["RadioList","props","listOptions","setListOptions","useState","useEffect","onOptionClicked","checked","value","selectedOption","temptListOptions","option","RadioListStyled","jsxs","jsx","TitleRegular","BodySecondary","COLORS","listItem","RadioButton"],"mappings":";;;;;;AAmBO,MAAMA,IAAsC,CAACC,MAAU;AAC7D,QAAM,CAACC,GAAaC,CAAc,IAAIC;AAAA,IACrCH,EAAM;AAAA,EAAA;AAGP,EAAAI,EAAU,MAAM;AACf,IAAAF,EAAeF,EAAM,SAAS;AAAA,EAC/B,GAAG,CAACA,EAAM,SAAS,CAAC;AAEpB,QAAMK,IAAkB,CAACC,GAAkBC,MAA8B;AACxE,QAAIC;AACJ,UAAMC,IAAmB,CAAC,GAAGR,CAAW;AACxC,IAAAQ,EAAiB,QAAQ,CAACC,MAAW;AACpC,MAAIA,EAAO,UAAUH,KACpBC,IAAiBE,GACjBA,EAAO,WAAcJ,KAErBI,EAAO,WAAc,CAACJ;AAAA,IAExB,CAAC,GACDJ,EAAeO,CAAgB,GAC/BT,EAAM,SAASQ,CAAc;AAAA,EAC9B;AAEA,2BACEG,GAAA,EACE,UAAA;AAAA,KAAAX,EAAM,SAASA,EAAM,aACtB,gBAAAY,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,MAAAZ,EAAM,SAAS,gBAAAa,EAACC,GAAA,EAAc,UAAAd,EAAM,OAAM;AAAA,MAC1CA,EAAM,YACN,gBAAAa,EAACE,GAAA,EAAc,OAAOC,EAAO,KAAK,WAChC,UAAAhB,EAAM,SAAA,CACR;AAAA,IAAA,GAEF;AAAA,IAED,gBAAAa;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,OAAOb,EAAM,uBAAuB,CAAA;AAAA,QACpC,WAAU;AAAA,QAET,UAAAC,EAAY,IAAI,CAACgB,MAEhB,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YAEA,aAAWD,EAAS;AAAA,YACnB,GAAGA;AAAA,YACJ,eAAeZ;AAAA,YACf,eAAeL,EAAM;AAAA,UAAA;AAAA,UAJhBiB,EAAS;AAAA,QAAA,CAOhB;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACD;AAEF;"}
@@ -1,27 +1,27 @@
1
1
  import { jsx as B } from "react/jsx-runtime";
2
2
  import { SearchIcon as E } from "../../assets/icons/searchIcon.js";
3
- import { useState as c, useEffect as d } from "react";
3
+ import { useState as o, useEffect as d } from "react";
4
4
  import w from "../../assets/icons/cross.svg.js";
5
5
  import { Input as x } from "../input/Input.js";
6
6
  const O = (e) => {
7
7
  const {
8
- isEnabled: o,
8
+ isEnabled: c,
9
9
  onEnter: h,
10
10
  placeholder: C,
11
11
  width: v,
12
12
  variant: b,
13
13
  validate: S,
14
14
  isActive: i
15
- } = e, [f, t] = c("search"), [m, s] = c("default"), [k, n] = c(
16
- i ? "active" : o ? "none" : "disabled"
17
- ), [l, r] = c(
15
+ } = e, [f, t] = o("search"), [m, s] = o("default"), [k, n] = o(
16
+ i ? "active" : c ? "none" : "disabled"
17
+ ), [l, r] = o(
18
18
  e.initialValue || e.searchValue || ""
19
19
  );
20
20
  d(() => {
21
21
  r(e.searchValue ?? ""), e.searchValue?.trim()?.length ? t("cross") : t("search");
22
22
  }, [e.searchValue]), d(() => {
23
- n(i ? "active" : o ? "none" : "disabled");
24
- }, [o, i]), d(() => {
23
+ n(i ? "active" : c ? "none" : "disabled");
24
+ }, [c, i]), d(() => {
25
25
  e.reset && g();
26
26
  }, [e?.reset]);
27
27
  const I = (a, u) => {
@@ -31,7 +31,7 @@ const O = (e) => {
31
31
  }
32
32
  a.trim().length ? t("cross") : t("search");
33
33
  }, V = (a) => {
34
- o && h(a);
34
+ c && h(a);
35
35
  }, g = () => {
36
36
  t("search"), s("default"), r(""), e.onChange(""), n("none"), h("");
37
37
  };
@@ -42,7 +42,7 @@ const O = (e) => {
42
42
  id: "search-bar",
43
43
  validate: S,
44
44
  onFocus: () => {
45
- l.length && t("cross"), m === "default" && o && (s("clicked"), n("active"));
45
+ l.length && t("cross"), m === "default" && c && (s("clicked"), n("active"));
46
46
  },
47
47
  width: v,
48
48
  state: k,
@@ -53,7 +53,8 @@ const O = (e) => {
53
53
  icon: w,
54
54
  callback: () => {
55
55
  g(), e.onClickCross && e.onClickCross();
56
- }
56
+ },
57
+ "data-test": "search-clear-icon"
57
58
  } : void 0,
58
59
  onChangeText: I,
59
60
  placeholder: C,
@@ -1 +1 @@
1
- {"version":3,"file":"searchBar.js","sources":["../../../../src/components/searchBar/searchBar.tsx"],"sourcesContent":["import { SearchIcon } from '@src/assets/icons/searchIcon';\nimport { useEffect, useState } from 'react';\nimport CrossIcon from '../../assets/icons/cross.svg';\nimport { ButtonProps } from '../button/model';\nimport { Input } from '../input/Input';\nimport { InputVariant } from '../input/Input.model';\n\nexport interface SearchBarProps {\n\twidth: string;\n\tisEnabled: boolean;\n\tonChange: (searchText: string) => void;\n\tonEnter: (searchText: string) => void;\n\tplaceholder: string;\n\tvariant: InputVariant;\n\tvalidate?: (input?: string | number) => [boolean, string];\n\tinitialValue?: string;\n\treset?: boolean;\n\tonClickCross?: () => void;\n\tisActive?: boolean;\n\tsuffixButton?: ButtonProps;\n\tsearchValue?: string;\n\t'data-test'?: string;\n}\n\ntype ActiveStates = 'none' | 'disabled' | 'active';\ntype Mode = 'default' | 'clicked';\n\nexport const SearchBar = (props: SearchBarProps) => {\n\tconst {\n\t\tisEnabled,\n\t\tonEnter,\n\t\tplaceholder,\n\t\twidth,\n\t\tvariant,\n\t\tvalidate,\n\t\tisActive,\n\t} = props;\n\tconst [icon, setIcon] = useState<string>('search');\n\tconst [mode, setMode] = useState<Mode>('default');\n\tconst [inputState, setInputState] = useState<ActiveStates>(\n\t\tisActive ? 'active' : isEnabled ? 'none' : 'disabled',\n\t);\n\tconst [value, setValue] = useState<string>(\n\t\tprops.initialValue || props.searchValue || '',\n\t);\n\n\tuseEffect(() => {\n\t\tsetValue(props.searchValue ?? '');\n\t\tif (props.searchValue?.trim()?.length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t}, [props.searchValue]);\n\n\tuseEffect(() => {\n\t\tisActive\n\t\t\t? setInputState('active')\n\t\t\t: isEnabled\n\t\t\t? setInputState('none')\n\t\t\t: setInputState('disabled');\n\t}, [isEnabled, isActive]);\n\n\tuseEffect(() => {\n\t\tprops.reset && resetSearch();\n\t}, [props?.reset]);\n\n\tconst handleOnChange = (searchText: string, event: any) => {\n\t\tprops.onChange(searchText);\n\t\tsetValue(searchText);\n\n\t\tif (\n\t\t\tevent?.type === 'keydown' &&\n\t\t\t(event.which === 13 || event.keyCode === 13)\n\t\t) {\n\t\t\thandleEnter(searchText);\n\t\t\treturn;\n\t\t}\n\n\t\tif (searchText.trim().length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t};\n\n\tconst handleEnter = (searchText: string) => {\n\t\tisEnabled && onEnter(searchText);\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetIcon('search');\n\t\tsetMode('default');\n\t\tsetValue('');\n\t\tprops.onChange('');\n\t\tsetInputState('none');\n\t\tonEnter('');\n\t};\n\n\treturn (\n\t\t<Input\n\t\t\tdata-test={props['data-test']}\n\t\t\tid=\"search-bar\"\n\t\t\tvalidate={validate}\n\t\t\tonFocus={() => {\n\t\t\t\tif (value.length) setIcon('cross');\n\t\t\t\tif (mode === 'default') {\n\t\t\t\t\tif (isEnabled) {\n\t\t\t\t\t\tsetMode('clicked');\n\t\t\t\t\t\tsetInputState('active');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t\twidth={width}\n\t\t\tstate={inputState}\n\t\t\tleftIcon={\n\t\t\t\ticon === 'search' && mode === 'default'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: SearchIcon,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\trightIcon={\n\t\t\t\ticon === 'cross' && !props.suffixButton\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: CrossIcon,\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tresetSearch();\n\t\t\t\t\t\t\t\tprops.onClickCross && props.onClickCross();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonChangeText={handleOnChange}\n\t\t\tplaceholder={placeholder}\n\t\t\tvariant={variant}\n\t\t\tvalue={value}\n\t\t\tonBlur={() => {\n\t\t\t\tif (!value.length) {\n\t\t\t\t\tsetMode('default');\n\t\t\t\t}\n\t\t\t\tsetInputState('none');\n\t\t\t}}\n\t\t\tbutton={{ text: '', buttonProps: props.suffixButton }}\n\t\t/>\n\t);\n};\n"],"names":["SearchBar","props","isEnabled","onEnter","placeholder","width","variant","validate","isActive","icon","setIcon","useState","mode","setMode","inputState","setInputState","value","setValue","useEffect","resetSearch","handleOnChange","searchText","event","handleEnter","jsx","Input","SearchIcon","CrossIcon"],"mappings":";;;;;AA2BO,MAAMA,IAAY,CAACC,MAA0B;AACnD,QAAM;AAAA,IACL,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACGP,GACE,CAACQ,GAAMC,CAAO,IAAIC,EAAiB,QAAQ,GAC3C,CAACC,GAAMC,CAAO,IAAIF,EAAe,SAAS,GAC1C,CAACG,GAAYC,CAAa,IAAIJ;AAAA,IACnCH,IAAW,WAAWN,IAAY,SAAS;AAAA,EAAA,GAEtC,CAACc,GAAOC,CAAQ,IAAIN;AAAA,IACzBV,EAAM,gBAAgBA,EAAM,eAAe;AAAA,EAAA;AAG5C,EAAAiB,EAAU,MAAM;AACf,IAAAD,EAAShB,EAAM,eAAe,EAAE,GAC5BA,EAAM,aAAa,KAAA,GAAQ,SAC9BS,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAAG,CAACT,EAAM,WAAW,CAAC,GAEtBiB,EAAU,MAAM;AACf,IACGH,EADHP,IACiB,WACdN,IACc,SACA,UAHQ;AAAA,EAI1B,GAAG,CAACA,GAAWM,CAAQ,CAAC,GAExBU,EAAU,MAAM;AACf,IAAAjB,EAAM,SAASkB,EAAA;AAAA,EAChB,GAAG,CAAClB,GAAO,KAAK,CAAC;AAEjB,QAAMmB,IAAiB,CAACC,GAAoBC,MAAe;AAI1D,QAHArB,EAAM,SAASoB,CAAU,GACzBJ,EAASI,CAAU,GAGlBC,GAAO,SAAS,cACfA,EAAM,UAAU,MAAMA,EAAM,YAAY,KACxC;AACD,MAAAC,EAAYF,CAAU;AACtB;AAAA,IACD;AAEA,IAAIA,EAAW,KAAA,EAAO,SACrBX,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAEMa,IAAc,CAACF,MAAuB;AAC3C,IAAAnB,KAAaC,EAAQkB,CAAU;AAAA,EAChC,GAEMF,IAAc,MAAM;AACzB,IAAAT,EAAQ,QAAQ,GAChBG,EAAQ,SAAS,GACjBI,EAAS,EAAE,GACXhB,EAAM,SAAS,EAAE,GACjBc,EAAc,MAAM,GACpBZ,EAAQ,EAAE;AAAA,EACX;AAEA,SACC,gBAAAqB;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,aAAWxB,EAAM,WAAW;AAAA,MAC5B,IAAG;AAAA,MACH,UAAAM;AAAA,MACA,SAAS,MAAM;AACd,QAAIS,EAAM,UAAQN,EAAQ,OAAO,GAC7BE,MAAS,aACRV,MACHW,EAAQ,SAAS,GACjBE,EAAc,QAAQ;AAAA,MAGzB;AAAA,MACA,OAAAV;AAAA,MACA,OAAOS;AAAA,MACP,UACCL,MAAS,YAAYG,MAAS,YAC3B;AAAA,QACA,MAAMc;AAAA,MAAA,IAEN;AAAA,MAEJ,WACCjB,MAAS,WAAW,CAACR,EAAM,eACxB;AAAA,QACA,MAAM0B;AAAAA,QACN,UAAU,MAAM;AACf,UAAAR,EAAA,GACAlB,EAAM,gBAAgBA,EAAM,aAAA;AAAA,QAC7B;AAAA,MAAA,IAEA;AAAA,MAEJ,cAAcmB;AAAA,MACd,aAAAhB;AAAA,MACA,SAAAE;AAAA,MACA,OAAAU;AAAA,MACA,QAAQ,MAAM;AACb,QAAKA,EAAM,UACVH,EAAQ,SAAS,GAElBE,EAAc,MAAM;AAAA,MACrB;AAAA,MACA,QAAQ,EAAE,MAAM,IAAI,aAAad,EAAM,aAAA;AAAA,IAAa;AAAA,EAAA;AAGvD;"}
1
+ {"version":3,"file":"searchBar.js","sources":["../../../../src/components/searchBar/searchBar.tsx"],"sourcesContent":["import { SearchIcon } from '@src/assets/icons/searchIcon';\nimport { useEffect, useState } from 'react';\nimport CrossIcon from '../../assets/icons/cross.svg';\nimport { ButtonProps } from '../button/model';\nimport { Input } from '../input/Input';\nimport { InputVariant } from '../input/Input.model';\n\nexport interface SearchBarProps {\n\twidth: string;\n\tisEnabled: boolean;\n\tonChange: (searchText: string) => void;\n\tonEnter: (searchText: string) => void;\n\tplaceholder: string;\n\tvariant: InputVariant;\n\tvalidate?: (input?: string | number) => [boolean, string];\n\tinitialValue?: string;\n\treset?: boolean;\n\tonClickCross?: () => void;\n\tisActive?: boolean;\n\tsuffixButton?: ButtonProps;\n\tsearchValue?: string;\n\t'data-test'?: string;\n}\n\ntype ActiveStates = 'none' | 'disabled' | 'active';\ntype Mode = 'default' | 'clicked';\n\nexport const SearchBar = (props: SearchBarProps) => {\n\tconst {\n\t\tisEnabled,\n\t\tonEnter,\n\t\tplaceholder,\n\t\twidth,\n\t\tvariant,\n\t\tvalidate,\n\t\tisActive,\n\t} = props;\n\tconst [icon, setIcon] = useState<string>('search');\n\tconst [mode, setMode] = useState<Mode>('default');\n\tconst [inputState, setInputState] = useState<ActiveStates>(\n\t\tisActive ? 'active' : isEnabled ? 'none' : 'disabled',\n\t);\n\tconst [value, setValue] = useState<string>(\n\t\tprops.initialValue || props.searchValue || '',\n\t);\n\n\tuseEffect(() => {\n\t\tsetValue(props.searchValue ?? '');\n\t\tif (props.searchValue?.trim()?.length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t}, [props.searchValue]);\n\n\tuseEffect(() => {\n\t\tisActive\n\t\t\t? setInputState('active')\n\t\t\t: isEnabled\n\t\t\t? setInputState('none')\n\t\t\t: setInputState('disabled');\n\t}, [isEnabled, isActive]);\n\n\tuseEffect(() => {\n\t\tprops.reset && resetSearch();\n\t}, [props?.reset]);\n\n\tconst handleOnChange = (searchText: string, event: any) => {\n\t\tprops.onChange(searchText);\n\t\tsetValue(searchText);\n\n\t\tif (\n\t\t\tevent?.type === 'keydown' &&\n\t\t\t(event.which === 13 || event.keyCode === 13)\n\t\t) {\n\t\t\thandleEnter(searchText);\n\t\t\treturn;\n\t\t}\n\n\t\tif (searchText.trim().length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t};\n\n\tconst handleEnter = (searchText: string) => {\n\t\tisEnabled && onEnter(searchText);\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetIcon('search');\n\t\tsetMode('default');\n\t\tsetValue('');\n\t\tprops.onChange('');\n\t\tsetInputState('none');\n\t\tonEnter('');\n\t};\n\n\treturn (\n\t\t<Input\n\t\t\tdata-test={props['data-test']}\n\t\t\tid=\"search-bar\"\n\t\t\tvalidate={validate}\n\t\t\tonFocus={() => {\n\t\t\t\tif (value.length) setIcon('cross');\n\t\t\t\tif (mode === 'default') {\n\t\t\t\t\tif (isEnabled) {\n\t\t\t\t\t\tsetMode('clicked');\n\t\t\t\t\t\tsetInputState('active');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t\twidth={width}\n\t\t\tstate={inputState}\n\t\t\tleftIcon={\n\t\t\t\ticon === 'search' && mode === 'default'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: SearchIcon,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\trightIcon={\n\t\t\t\ticon === 'cross' && !props.suffixButton\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: CrossIcon,\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tresetSearch();\n\t\t\t\t\t\t\t\tprops.onClickCross && props.onClickCross();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t'data-test': 'search-clear-icon',\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonChangeText={handleOnChange}\n\t\t\tplaceholder={placeholder}\n\t\t\tvariant={variant}\n\t\t\tvalue={value}\n\t\t\tonBlur={() => {\n\t\t\t\tif (!value.length) {\n\t\t\t\t\tsetMode('default');\n\t\t\t\t}\n\t\t\t\tsetInputState('none');\n\t\t\t}}\n\t\t\tbutton={{ text: '', buttonProps: props.suffixButton }}\n\t\t/>\n\t);\n};\n"],"names":["SearchBar","props","isEnabled","onEnter","placeholder","width","variant","validate","isActive","icon","setIcon","useState","mode","setMode","inputState","setInputState","value","setValue","useEffect","resetSearch","handleOnChange","searchText","event","handleEnter","jsx","Input","SearchIcon","CrossIcon"],"mappings":";;;;;AA2BO,MAAMA,IAAY,CAACC,MAA0B;AACnD,QAAM;AAAA,IACL,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACGP,GACE,CAACQ,GAAMC,CAAO,IAAIC,EAAiB,QAAQ,GAC3C,CAACC,GAAMC,CAAO,IAAIF,EAAe,SAAS,GAC1C,CAACG,GAAYC,CAAa,IAAIJ;AAAA,IACnCH,IAAW,WAAWN,IAAY,SAAS;AAAA,EAAA,GAEtC,CAACc,GAAOC,CAAQ,IAAIN;AAAA,IACzBV,EAAM,gBAAgBA,EAAM,eAAe;AAAA,EAAA;AAG5C,EAAAiB,EAAU,MAAM;AACf,IAAAD,EAAShB,EAAM,eAAe,EAAE,GAC5BA,EAAM,aAAa,KAAA,GAAQ,SAC9BS,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAAG,CAACT,EAAM,WAAW,CAAC,GAEtBiB,EAAU,MAAM;AACf,IACGH,EADHP,IACiB,WACdN,IACc,SACA,UAHQ;AAAA,EAI1B,GAAG,CAACA,GAAWM,CAAQ,CAAC,GAExBU,EAAU,MAAM;AACf,IAAAjB,EAAM,SAASkB,EAAA;AAAA,EAChB,GAAG,CAAClB,GAAO,KAAK,CAAC;AAEjB,QAAMmB,IAAiB,CAACC,GAAoBC,MAAe;AAI1D,QAHArB,EAAM,SAASoB,CAAU,GACzBJ,EAASI,CAAU,GAGlBC,GAAO,SAAS,cACfA,EAAM,UAAU,MAAMA,EAAM,YAAY,KACxC;AACD,MAAAC,EAAYF,CAAU;AACtB;AAAA,IACD;AAEA,IAAIA,EAAW,KAAA,EAAO,SACrBX,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAEMa,IAAc,CAACF,MAAuB;AAC3C,IAAAnB,KAAaC,EAAQkB,CAAU;AAAA,EAChC,GAEMF,IAAc,MAAM;AACzB,IAAAT,EAAQ,QAAQ,GAChBG,EAAQ,SAAS,GACjBI,EAAS,EAAE,GACXhB,EAAM,SAAS,EAAE,GACjBc,EAAc,MAAM,GACpBZ,EAAQ,EAAE;AAAA,EACX;AAEA,SACC,gBAAAqB;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,aAAWxB,EAAM,WAAW;AAAA,MAC5B,IAAG;AAAA,MACH,UAAAM;AAAA,MACA,SAAS,MAAM;AACd,QAAIS,EAAM,UAAQN,EAAQ,OAAO,GAC7BE,MAAS,aACRV,MACHW,EAAQ,SAAS,GACjBE,EAAc,QAAQ;AAAA,MAGzB;AAAA,MACA,OAAAV;AAAA,MACA,OAAOS;AAAA,MACP,UACCL,MAAS,YAAYG,MAAS,YAC3B;AAAA,QACA,MAAMc;AAAA,MAAA,IAEN;AAAA,MAEJ,WACCjB,MAAS,WAAW,CAACR,EAAM,eACxB;AAAA,QACA,MAAM0B;AAAAA,QACN,UAAU,MAAM;AACf,UAAAR,EAAA,GACAlB,EAAM,gBAAgBA,EAAM,aAAA;AAAA,QAC7B;AAAA,QACA,aAAa;AAAA,MAAA,IAEb;AAAA,MAEJ,cAAcmB;AAAA,MACd,aAAAhB;AAAA,MACA,SAAAE;AAAA,MACA,OAAAU;AAAA,MACA,QAAQ,MAAM;AACb,QAAKA,EAAM,UACVH,EAAQ,SAAS,GAElBE,EAAc,MAAM;AAAA,MACrB;AAAA,MACA,QAAQ,EAAE,MAAM,IAAI,aAAad,EAAM,aAAA;AAAA,IAAa;AAAA,EAAA;AAGvD;"}