@razorpay/blade 11.8.2 → 11.9.1

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 (230) hide show
  1. package/build/lib/native/components/Checkbox/Checkbox.js +4 -3
  2. package/build/lib/native/components/Checkbox/Checkbox.js.map +1 -1
  3. package/build/lib/native/components/Checkbox/CheckboxGroup/CheckboxGroup.js +1 -1
  4. package/build/lib/native/components/Checkbox/CheckboxGroup/CheckboxGroup.js.map +1 -1
  5. package/build/lib/native/components/Checkbox/CheckboxIcon/CheckboxIcon.js +1 -1
  6. package/build/lib/native/components/Checkbox/CheckboxIcon/CheckboxIcon.js.map +1 -1
  7. package/build/lib/native/components/Checkbox/checkboxTokens.js +1 -1
  8. package/build/lib/native/components/Checkbox/checkboxTokens.js.map +1 -1
  9. package/build/lib/native/components/Form/CharacterCounter/CharacterCounter.js +2 -1
  10. package/build/lib/native/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
  11. package/build/lib/native/components/Form/FormHint.js +2 -1
  12. package/build/lib/native/components/Form/FormHint.js.map +1 -1
  13. package/build/lib/native/components/Form/FormLabel.js +3 -1
  14. package/build/lib/native/components/Form/FormLabel.js.map +1 -1
  15. package/build/lib/native/components/Form/Selector/SelectorSupportText.js +1 -1
  16. package/build/lib/native/components/Form/Selector/SelectorSupportText.js.map +1 -1
  17. package/build/lib/native/components/Form/Selector/SelectorTitle.js.map +1 -1
  18. package/build/lib/native/components/Form/formTokens.js +8 -0
  19. package/build/lib/native/components/Form/formTokens.js.map +1 -0
  20. package/build/lib/native/components/Input/BaseInput/AnimatedBaseInputWrapper.native.js +5 -3
  21. package/build/lib/native/components/Input/BaseInput/AnimatedBaseInputWrapper.native.js.map +1 -1
  22. package/build/lib/native/components/Input/BaseInput/BaseInput.js +8 -2
  23. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  24. package/build/lib/native/components/Input/BaseInput/BaseInputTagSlot.native.js +2 -2
  25. package/build/lib/native/components/Input/BaseInput/BaseInputTagSlot.native.js.map +1 -1
  26. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +4 -2
  27. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  28. package/build/lib/native/components/Input/BaseInput/BaseInputWrapper.js +2 -3
  29. package/build/lib/native/components/Input/BaseInput/BaseInputWrapper.js.map +1 -1
  30. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js +2 -1
  31. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js.map +1 -1
  32. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js +6 -3
  33. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  34. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js +8 -0
  35. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js.map +1 -0
  36. package/build/lib/native/components/Input/BaseInput/getBaseInputBorderStyles.native.js +4 -0
  37. package/build/lib/native/components/Input/BaseInput/getBaseInputBorderStyles.native.js.map +1 -0
  38. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +1 -1
  39. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  40. package/build/lib/native/components/Input/OTPInput/OTPInput.js +1 -1
  41. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  42. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js +1 -1
  43. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  44. package/build/lib/native/components/Input/TextArea/TextArea.js +2 -1
  45. package/build/lib/native/components/Input/TextArea/TextArea.js.map +1 -1
  46. package/build/lib/native/components/Input/TextInput/TextInput.js +2 -1
  47. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  48. package/build/lib/native/components/Radio/Radio.js +4 -3
  49. package/build/lib/native/components/Radio/Radio.js.map +1 -1
  50. package/build/lib/native/components/Radio/RadioGroup/RadioGroup.js +1 -1
  51. package/build/lib/native/components/Radio/RadioGroup/RadioGroup.js.map +1 -1
  52. package/build/lib/native/components/Radio/radioTokens.js +1 -1
  53. package/build/lib/native/components/Radio/radioTokens.js.map +1 -1
  54. package/build/lib/native/components/Tag/Tag.js +1 -1
  55. package/build/lib/native/components/Tag/Tag.js.map +1 -1
  56. package/build/lib/native/components/Tag/getTagsGroup.js +1 -1
  57. package/build/lib/native/components/Tag/getTagsGroup.js.map +1 -1
  58. package/build/lib/native/components/Typography/Heading/Heading.js +2 -2
  59. package/build/lib/native/components/Typography/Heading/Heading.js.map +1 -1
  60. package/build/lib/native/components/Typography/Heading/getHeadingStyles.js +7 -0
  61. package/build/lib/native/components/Typography/Heading/getHeadingStyles.js.map +1 -0
  62. package/build/lib/native/components/Typography/Text/Text.js +1 -1
  63. package/build/lib/native/components/Typography/Text/Text.js.map +1 -1
  64. package/build/lib/native/components/index.js +1 -1
  65. package/build/lib/native/tokens/global/size.js +1 -1
  66. package/build/lib/native/tokens/global/size.js.map +1 -1
  67. package/build/lib/native/utils/getFocusRingStyles/getFocusRingStyles.native.js.map +1 -1
  68. package/build/lib/web/development/components/Checkbox/Checkbox.js +17 -3
  69. package/build/lib/web/development/components/Checkbox/Checkbox.js.map +1 -1
  70. package/build/lib/web/development/components/Checkbox/CheckboxGroup/CheckboxGroup.js +2 -0
  71. package/build/lib/web/development/components/Checkbox/CheckboxGroup/CheckboxGroup.js.map +1 -1
  72. package/build/lib/web/development/components/Checkbox/CheckboxIcon/CheckboxIcon.js +4 -0
  73. package/build/lib/web/development/components/Checkbox/CheckboxIcon/CheckboxIcon.js.map +1 -1
  74. package/build/lib/web/development/components/Checkbox/checkboxTokens.js +12 -4
  75. package/build/lib/web/development/components/Checkbox/checkboxTokens.js.map +1 -1
  76. package/build/lib/web/development/components/Form/CharacterCounter/CharacterCounter.js +5 -1
  77. package/build/lib/web/development/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
  78. package/build/lib/web/development/components/Form/FormHint.js +34 -17
  79. package/build/lib/web/development/components/Form/FormHint.js.map +1 -1
  80. package/build/lib/web/development/components/Form/FormLabel.js +10 -7
  81. package/build/lib/web/development/components/Form/FormLabel.js.map +1 -1
  82. package/build/lib/web/development/components/Form/Selector/SelectorSupportText.js +8 -2
  83. package/build/lib/web/development/components/Form/Selector/SelectorSupportText.js.map +1 -1
  84. package/build/lib/web/development/components/Form/Selector/SelectorTitle.js.map +1 -1
  85. package/build/lib/web/development/components/Form/formTokens.js +53 -0
  86. package/build/lib/web/development/components/Form/formTokens.js.map +1 -0
  87. package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +23 -37
  88. package/build/lib/web/development/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
  89. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +200 -155
  90. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  91. package/build/lib/web/development/components/Input/BaseInput/BaseInputTagSlot.web.js +4 -3
  92. package/build/lib/web/development/components/Input/BaseInput/BaseInputTagSlot.web.js.map +1 -1
  93. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +101 -34
  94. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  95. package/build/lib/web/development/components/Input/BaseInput/BaseInputWrapper.js +3 -7
  96. package/build/lib/web/development/components/Input/BaseInput/BaseInputWrapper.js.map +1 -1
  97. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js +14 -5
  98. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  99. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js +119 -67
  100. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  101. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js +88 -0
  102. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js.map +1 -0
  103. package/build/lib/web/development/components/Input/BaseInput/getBaseInputBorderStyles.web.js +23 -0
  104. package/build/lib/web/development/components/Input/BaseInput/getBaseInputBorderStyles.web.js.map +1 -0
  105. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +11 -6
  106. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  107. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +9 -3
  108. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  109. package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js +5 -2
  110. package/build/lib/web/development/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  111. package/build/lib/web/development/components/Input/TextArea/TextArea.js +7 -3
  112. package/build/lib/web/development/components/Input/TextArea/TextArea.js.map +1 -1
  113. package/build/lib/web/development/components/Input/TextInput/TextInput.js +17 -6
  114. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  115. package/build/lib/web/development/components/Radio/Radio.js +10 -3
  116. package/build/lib/web/development/components/Radio/Radio.js.map +1 -1
  117. package/build/lib/web/development/components/Radio/RadioGroup/RadioGroup.js +2 -0
  118. package/build/lib/web/development/components/Radio/RadioGroup/RadioGroup.js.map +1 -1
  119. package/build/lib/web/development/components/Radio/radioTokens.js +13 -4
  120. package/build/lib/web/development/components/Radio/radioTokens.js.map +1 -1
  121. package/build/lib/web/development/components/Table/TableBody.web.js +3 -0
  122. package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
  123. package/build/lib/web/development/components/Tag/AnimatedTag.web.js +4 -1
  124. package/build/lib/web/development/components/Tag/AnimatedTag.web.js.map +1 -1
  125. package/build/lib/web/development/components/Tag/Tag.js +2 -2
  126. package/build/lib/web/development/components/Tag/Tag.js.map +1 -1
  127. package/build/lib/web/development/components/Tag/getTagsGroup.js +4 -1
  128. package/build/lib/web/development/components/Tag/getTagsGroup.js.map +1 -1
  129. package/build/lib/web/development/components/Typography/Heading/Heading.js +3 -3
  130. package/build/lib/web/development/components/Typography/Heading/Heading.js.map +1 -1
  131. package/build/lib/web/development/components/Typography/Heading/getHeadingStyles.js +22 -0
  132. package/build/lib/web/development/components/Typography/Heading/getHeadingStyles.js.map +1 -0
  133. package/build/lib/web/development/components/Typography/Heading/index.js +1 -1
  134. package/build/lib/web/development/components/Typography/Text/Text.js +8 -3
  135. package/build/lib/web/development/components/Typography/Text/Text.js.map +1 -1
  136. package/build/lib/web/development/components/index.js +1 -1
  137. package/build/lib/web/development/tokens/global/size.js +2 -0
  138. package/build/lib/web/development/tokens/global/size.js.map +1 -1
  139. package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js +1 -0
  140. package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
  141. package/build/lib/web/production/components/Checkbox/Checkbox.js +17 -3
  142. package/build/lib/web/production/components/Checkbox/Checkbox.js.map +1 -1
  143. package/build/lib/web/production/components/Checkbox/CheckboxGroup/CheckboxGroup.js +2 -0
  144. package/build/lib/web/production/components/Checkbox/CheckboxGroup/CheckboxGroup.js.map +1 -1
  145. package/build/lib/web/production/components/Checkbox/CheckboxIcon/CheckboxIcon.js +4 -0
  146. package/build/lib/web/production/components/Checkbox/CheckboxIcon/CheckboxIcon.js.map +1 -1
  147. package/build/lib/web/production/components/Checkbox/checkboxTokens.js +12 -4
  148. package/build/lib/web/production/components/Checkbox/checkboxTokens.js.map +1 -1
  149. package/build/lib/web/production/components/Form/CharacterCounter/CharacterCounter.js +5 -1
  150. package/build/lib/web/production/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
  151. package/build/lib/web/production/components/Form/FormHint.js +34 -17
  152. package/build/lib/web/production/components/Form/FormHint.js.map +1 -1
  153. package/build/lib/web/production/components/Form/FormLabel.js +10 -7
  154. package/build/lib/web/production/components/Form/FormLabel.js.map +1 -1
  155. package/build/lib/web/production/components/Form/Selector/SelectorSupportText.js +8 -2
  156. package/build/lib/web/production/components/Form/Selector/SelectorSupportText.js.map +1 -1
  157. package/build/lib/web/production/components/Form/Selector/SelectorTitle.js.map +1 -1
  158. package/build/lib/web/production/components/Form/formTokens.js +53 -0
  159. package/build/lib/web/production/components/Form/formTokens.js.map +1 -0
  160. package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js +23 -37
  161. package/build/lib/web/production/components/Input/BaseInput/AnimatedBaseInputWrapper.web.js.map +1 -1
  162. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +200 -155
  163. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  164. package/build/lib/web/production/components/Input/BaseInput/BaseInputTagSlot.web.js +4 -3
  165. package/build/lib/web/production/components/Input/BaseInput/BaseInputTagSlot.web.js.map +1 -1
  166. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +101 -34
  167. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  168. package/build/lib/web/production/components/Input/BaseInput/BaseInputWrapper.js +3 -7
  169. package/build/lib/web/production/components/Input/BaseInput/BaseInputWrapper.js.map +1 -1
  170. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js +14 -5
  171. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  172. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js +119 -67
  173. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  174. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js +88 -0
  175. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js.map +1 -0
  176. package/build/lib/web/production/components/Input/BaseInput/getBaseInputBorderStyles.web.js +23 -0
  177. package/build/lib/web/production/components/Input/BaseInput/getBaseInputBorderStyles.web.js.map +1 -0
  178. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +11 -6
  179. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  180. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +9 -3
  181. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  182. package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js +5 -2
  183. package/build/lib/web/production/components/Input/PasswordInput/PasswordInput.js.map +1 -1
  184. package/build/lib/web/production/components/Input/TextArea/TextArea.js +7 -3
  185. package/build/lib/web/production/components/Input/TextArea/TextArea.js.map +1 -1
  186. package/build/lib/web/production/components/Input/TextInput/TextInput.js +17 -6
  187. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  188. package/build/lib/web/production/components/Radio/Radio.js +10 -3
  189. package/build/lib/web/production/components/Radio/Radio.js.map +1 -1
  190. package/build/lib/web/production/components/Radio/RadioGroup/RadioGroup.js +2 -0
  191. package/build/lib/web/production/components/Radio/RadioGroup/RadioGroup.js.map +1 -1
  192. package/build/lib/web/production/components/Radio/radioTokens.js +13 -4
  193. package/build/lib/web/production/components/Radio/radioTokens.js.map +1 -1
  194. package/build/lib/web/production/components/Table/TableBody.web.js +3 -0
  195. package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
  196. package/build/lib/web/production/components/Tag/AnimatedTag.web.js +4 -1
  197. package/build/lib/web/production/components/Tag/AnimatedTag.web.js.map +1 -1
  198. package/build/lib/web/production/components/Tag/Tag.js +2 -2
  199. package/build/lib/web/production/components/Tag/Tag.js.map +1 -1
  200. package/build/lib/web/production/components/Tag/getTagsGroup.js +4 -1
  201. package/build/lib/web/production/components/Tag/getTagsGroup.js.map +1 -1
  202. package/build/lib/web/production/components/Typography/Heading/Heading.js +3 -3
  203. package/build/lib/web/production/components/Typography/Heading/Heading.js.map +1 -1
  204. package/build/lib/web/production/components/Typography/Heading/getHeadingStyles.js +22 -0
  205. package/build/lib/web/production/components/Typography/Heading/getHeadingStyles.js.map +1 -0
  206. package/build/lib/web/production/components/Typography/Heading/index.js +1 -1
  207. package/build/lib/web/production/components/Typography/Text/Text.js +8 -3
  208. package/build/lib/web/production/components/Typography/Text/Text.js.map +1 -1
  209. package/build/lib/web/production/components/index.js +1 -1
  210. package/build/lib/web/production/tokens/global/size.js +2 -0
  211. package/build/lib/web/production/tokens/global/size.js.map +1 -1
  212. package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js +1 -0
  213. package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
  214. package/build/types/components/index.d.ts +36 -15
  215. package/build/types/components/index.native.d.ts +36 -15
  216. package/build/types/tokens/index.d.ts +2 -0
  217. package/build/types/tokens/index.native.d.ts +2 -0
  218. package/package.json +1 -1
  219. package/build/lib/native/components/Input/BaseInput/BaseInputAnimatedBorder.native.js +0 -16
  220. package/build/lib/native/components/Input/BaseInput/BaseInputAnimatedBorder.native.js.map +0 -1
  221. package/build/lib/native/components/Input/BaseInput/baseInputConfig.js +0 -8
  222. package/build/lib/native/components/Input/BaseInput/baseInputConfig.js.map +0 -1
  223. package/build/lib/web/development/components/Input/BaseInput/BaseInputAnimatedBorder.web.js +0 -43
  224. package/build/lib/web/development/components/Input/BaseInput/BaseInputAnimatedBorder.web.js.map +0 -1
  225. package/build/lib/web/development/components/Input/BaseInput/baseInputConfig.js +0 -26
  226. package/build/lib/web/development/components/Input/BaseInput/baseInputConfig.js.map +0 -1
  227. package/build/lib/web/production/components/Input/BaseInput/BaseInputAnimatedBorder.web.js +0 -43
  228. package/build/lib/web/production/components/Input/BaseInput/BaseInputAnimatedBorder.web.js.map +0 -1
  229. package/build/lib/web/production/components/Input/BaseInput/baseInputConfig.js +0 -26
  230. package/build/lib/web/production/components/Input/BaseInput/baseInputConfig.js.map +0 -1
@@ -1,98 +1,124 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { getInputVisualsToBeRendered } from './BaseInputVisuals.js';
3
- import { BASEINPUT_DEFAULT_HEIGHT } from './baseInputConfig.js';
3
+ import { getBaseInputBorderStyles } from './getBaseInputBorderStyles.web.js';
4
+ import { baseInputBackgroundColor, baseInputBorderColor, baseInputBorderWidth, baseInputPaddingTokens, baseInputHeight, baseInputWrapperMaxHeight } from './baseInputTokens.js';
4
5
  import getTextStyles from '../../Typography/Text/getTextStyles.js';
5
6
  import '../../../utils/makeSpace/index.js';
6
7
  import '../../../utils/makeBorderSize/index.js';
7
8
  import '../../../utils/index.js';
9
+ import getIn from '../../../utils/lodashButBetter/get.js';
10
+ import getHeadingStyles from '../../Typography/Heading/getHeadingStyles.js';
8
11
  import { makeBorderSize } from '../../../utils/makeBorderSize/makeBorderSize.js';
9
12
  import { getPlatformType } from '../../../utils/getPlatformType/getPlatformType.js';
10
13
  import { makeSpace } from '../../../utils/makeSpace/makeSpace.js';
11
14
 
12
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
- var getInputBackgroundAndBorderStyles = function getInputBackgroundAndBorderStyles(_ref) {
15
- var theme = _ref.theme,
17
+ var getBaseInputState = function getBaseInputState(_ref) {
18
+ var isFocused = _ref.isFocused,
16
19
  isHovered = _ref.isHovered,
17
- isFocused = _ref.isFocused,
18
- isDisabled = _ref.isDisabled,
19
- validationState = _ref.validationState,
20
- isTextArea = _ref.isTextArea,
21
- isDropdownTrigger = _ref.isDropdownTrigger;
22
- // normal state
23
- var backgroundColor = theme.colors.interactive.background.gray["default"];
24
- var borderBottomColor = theme.colors.interactive.background.gray.highlighted;
25
-
26
- // hoverState
27
- if (isHovered) {
28
- backgroundColor = theme.colors.interactive.background.gray.highlighted;
29
- }
30
-
31
- // focused state
32
- if (isFocused) {
33
- backgroundColor = theme.colors.interactive.background.primary.faded;
34
- }
35
-
36
- // disabled state
20
+ isDisabled = _ref.isDisabled;
37
21
  if (isDisabled) {
38
- backgroundColor = theme.colors.interactive.background.gray.disabled;
39
- borderBottomColor = 'transparent';
22
+ return 'disabled';
23
+ } else if (isFocused) {
24
+ return 'focused';
25
+ } else if (isHovered) {
26
+ return 'hovered';
27
+ } else {
28
+ return 'default';
40
29
  }
41
-
42
- // validation state
30
+ };
31
+ var getInputBackgroundAndBorderStyles = function getInputBackgroundAndBorderStyles(_ref2) {
32
+ var theme = _ref2.theme,
33
+ isHovered = _ref2.isHovered,
34
+ isFocused = _ref2.isFocused,
35
+ isDisabled = _ref2.isDisabled,
36
+ validationState = _ref2.validationState,
37
+ isTextArea = _ref2.isTextArea,
38
+ isDropdownTrigger = _ref2.isDropdownTrigger;
39
+ // normal state
40
+ var backgroundColor = getIn(theme.colors, baseInputBackgroundColor["default"]);
41
+ var borderColor = getIn(theme.colors, baseInputBorderColor["default"]);
42
+ var borderWidth = getIn(theme.border.width, baseInputBorderWidth["default"]);
43
+ var baseInputState = getBaseInputState({
44
+ isFocused: isFocused,
45
+ isHovered: isHovered,
46
+ isDisabled: isDisabled
47
+ });
48
+ backgroundColor = getIn(theme.colors, baseInputBackgroundColor[baseInputState]);
49
+ borderColor = getIn(theme.colors, baseInputBorderColor[baseInputState]);
50
+ borderWidth = getIn(theme.border.width, baseInputBorderWidth[baseInputState]);
43
51
  if (validationState === 'error') {
44
- backgroundColor = theme.colors.interactive.background.negative.faded;
45
- borderBottomColor = theme.colors.interactive.background.negative["default"];
52
+ borderColor = getIn(theme.colors, baseInputBorderColor.error);
53
+ borderWidth = getIn(theme.border.width, baseInputBorderWidth.error);
46
54
  } else if (validationState === 'success') {
47
- backgroundColor = theme.colors.interactive.background.positive.faded;
48
- borderBottomColor = theme.colors.interactive.background.positive["default"];
55
+ borderColor = getIn(theme.colors, baseInputBorderColor.success);
56
+ borderWidth = getIn(theme.border.width, baseInputBorderWidth.success);
49
57
  }
50
- return {
58
+ return _objectSpread({
51
59
  backgroundColor: backgroundColor,
52
- borderBottomColor: borderBottomColor,
53
- borderTopLeftRadius: makeBorderSize(theme.border.radius.small),
54
- borderTopRightRadius: makeBorderSize(theme.border.radius.small),
55
- borderBottomWidth: makeBorderSize(theme.border.width.thin),
56
- borderBottomStyle: 'solid',
60
+ borderRadius: makeBorderSize(theme.border.radius.medium),
61
+ borderStyle: 'solid',
57
62
  display: 'flex',
58
63
  flexDirection: 'row',
59
64
  width: '100%',
60
65
  alignItems: isTextArea ? 'flex-start' : undefined,
61
66
  position: 'relative',
62
- height: isDropdownTrigger ? 'auto' : undefined
63
- };
67
+ height: isDropdownTrigger ? 'auto' : undefined,
68
+ border: 'none'
69
+ }, getBaseInputBorderStyles({
70
+ theme: theme,
71
+ borderColor: borderColor,
72
+ borderWidth: borderWidth,
73
+ isFocused: isFocused
74
+ }));
64
75
  };
65
- var getLeftPadding = function getLeftPadding(_ref2) {
66
- var theme = _ref2.theme,
67
- isDropdownTrigger = _ref2.isDropdownTrigger,
68
- hasLeadingIcon = _ref2.hasLeadingIcon,
69
- hasPrefix = _ref2.hasPrefix;
76
+ var getLeftPadding = function getLeftPadding(_ref3) {
77
+ var theme = _ref3.theme,
78
+ isDropdownTrigger = _ref3.isDropdownTrigger,
79
+ hasLeadingIcon = _ref3.hasLeadingIcon,
80
+ hasPrefix = _ref3.hasPrefix,
81
+ size = _ref3.size;
70
82
  if (isDropdownTrigger) {
71
83
  return theme.spacing[0];
72
84
  }
73
85
  if (hasLeadingIcon || hasPrefix) {
74
86
  return theme.spacing[3];
75
87
  }
76
- return theme.spacing[4];
88
+ return theme.spacing[baseInputPaddingTokens.left[size]];
77
89
  };
78
- var getBaseInputStyles = function getBaseInputStyles(_ref3) {
79
- var theme = _ref3.theme,
80
- isDisabled = _ref3.isDisabled,
81
- leadingIcon = _ref3.leadingIcon,
82
- prefix = _ref3.prefix,
83
- interactionElement = _ref3.interactionElement,
84
- suffix = _ref3.suffix,
85
- trailingIcon = _ref3.trailingIcon,
86
- textAlign = _ref3.textAlign,
87
- isTextArea = _ref3.isTextArea,
88
- hasTags = _ref3.hasTags,
89
- isDropdownTrigger = _ref3.isDropdownTrigger;
90
+ var getRightPadding = function getRightPadding(_ref4) {
91
+ var theme = _ref4.theme,
92
+ hasInteractionElement = _ref4.hasInteractionElement,
93
+ hasSuffix = _ref4.hasSuffix,
94
+ hasTrailingIcon = _ref4.hasTrailingIcon,
95
+ size = _ref4.size;
96
+ if (hasInteractionElement || hasSuffix || hasTrailingIcon) {
97
+ return theme.spacing[3];
98
+ }
99
+ return theme.spacing[baseInputPaddingTokens.right[size]];
100
+ };
101
+ var getBaseInputStyles = function getBaseInputStyles(_ref5) {
102
+ var theme = _ref5.theme,
103
+ isDisabled = _ref5.isDisabled,
104
+ leadingIcon = _ref5.leadingIcon,
105
+ prefix = _ref5.prefix,
106
+ interactionElement = _ref5.interactionElement,
107
+ suffix = _ref5.suffix,
108
+ trailingIcon = _ref5.trailingIcon,
109
+ textAlign = _ref5.textAlign,
110
+ isTextArea = _ref5.isTextArea,
111
+ hasTags = _ref5.hasTags,
112
+ isDropdownTrigger = _ref5.isDropdownTrigger,
113
+ size = _ref5.size,
114
+ valueComponentType = _ref5.valueComponentType;
90
115
  var _getInputVisualsToBeR = getInputVisualsToBeRendered({
91
116
  leadingIcon: leadingIcon,
92
117
  prefix: prefix,
93
118
  interactionElement: interactionElement,
94
119
  suffix: suffix,
95
- trailingIcon: trailingIcon
120
+ trailingIcon: trailingIcon,
121
+ size: size
96
122
  }),
97
123
  hasLeadingIcon = _getInputVisualsToBeR.hasLeadingIcon,
98
124
  hasPrefix = _getInputVisualsToBeR.hasPrefix,
@@ -101,8 +127,13 @@ var getBaseInputStyles = function getBaseInputStyles(_ref3) {
101
127
  hasTrailingIcon = _getInputVisualsToBeR.hasTrailingIcon;
102
128
  var isDropdownWithTags = isDropdownTrigger && hasTags;
103
129
  var isReactNative = getPlatformType() === 'react-native';
104
- return _objectSpread(_objectSpread({}, getTextStyles({
105
- size: 'medium',
130
+ return _objectSpread(_objectSpread({}, valueComponentType === 'heading' ? getHeadingStyles({
131
+ size: size,
132
+ weight: 'regular',
133
+ color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',
134
+ theme: theme
135
+ }) : getTextStyles({
136
+ size: size,
106
137
  variant: 'body',
107
138
  weight: 'regular',
108
139
  color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',
@@ -111,23 +142,44 @@ var getBaseInputStyles = function getBaseInputStyles(_ref3) {
111
142
  // take the full available width of parent container for input field
112
143
  flex: 1,
113
144
  backgroundColor: 'transparent',
114
- paddingTop: makeSpace(theme.spacing[3]),
115
- paddingBottom: makeSpace(theme.spacing[3]),
145
+ paddingTop: makeSpace(theme.spacing[baseInputPaddingTokens.top[size]]),
146
+ paddingBottom: makeSpace(theme.spacing[baseInputPaddingTokens.bottom[size]]),
116
147
  paddingLeft: makeSpace(getLeftPadding({
117
148
  theme: theme,
118
149
  isDropdownTrigger: isDropdownTrigger,
119
150
  hasLeadingIcon: hasLeadingIcon,
120
- hasPrefix: hasPrefix
151
+ hasPrefix: hasPrefix,
152
+ size: size
121
153
  })),
122
- paddingRight: hasInteractionElement || hasSuffix || hasTrailingIcon ? makeSpace(theme.spacing[3]) : makeSpace(theme.spacing[4]),
154
+ paddingRight: getRightPadding({
155
+ theme: theme,
156
+ hasInteractionElement: hasInteractionElement,
157
+ hasSuffix: hasSuffix,
158
+ hasTrailingIcon: hasTrailingIcon,
159
+ size: size
160
+ }),
123
161
  textAlign: textAlign,
124
162
  width: '100%',
125
- height: isTextArea || isDropdownWithTags ? undefined : makeSpace(BASEINPUT_DEFAULT_HEIGHT),
126
- minHeight: isDropdownWithTags ? undefined : makeSpace(BASEINPUT_DEFAULT_HEIGHT)
163
+ height: isTextArea || isDropdownWithTags ? undefined : makeSpace(baseInputHeight[size]),
164
+ minHeight: isDropdownWithTags ? undefined : makeSpace(baseInputHeight[size])
127
165
  }, isReactNative ? {} : {
128
166
  resize: 'none'
129
167
  });
130
168
  };
169
+ var getAnimatedBaseInputWrapperMaxHeight = function getAnimatedBaseInputWrapperMaxHeight(_ref6) {
170
+ var maxTagRows = _ref6.maxTagRows,
171
+ showAllTags = _ref6.showAllTags,
172
+ size = _ref6.size;
173
+ if (maxTagRows === 'single') {
174
+ return baseInputHeight[size];
175
+ }
176
+ if (maxTagRows === 'multiple') {
177
+ return baseInputWrapperMaxHeight[size];
178
+ }
179
+
180
+ // In expandable, max-height depends on the state
181
+ return showAllTags ? baseInputWrapperMaxHeight[size] : baseInputHeight[size];
182
+ };
131
183
 
132
- export { getBaseInputStyles, getInputBackgroundAndBorderStyles };
184
+ export { getAnimatedBaseInputWrapperMaxHeight, getBaseInputState, getBaseInputStyles, getInputBackgroundAndBorderStyles };
133
185
  //# sourceMappingURL=baseInputStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseInputStyles.js","sources":["../../../../../../../src/components/Input/BaseInput/baseInputStyles.ts"],"sourcesContent":["import type { CSSObject } from 'styled-components';\nimport type { BaseInputProps } from './BaseInput';\nimport { getInputVisualsToBeRendered } from './BaseInputVisuals';\nimport { BASEINPUT_DEFAULT_HEIGHT } from './baseInputConfig';\nimport type { Theme } from '~components/BladeProvider';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeBorderSize } from '~utils/makeBorderSize';\nimport { getPlatformType } from '~utils';\n\ntype GetInputStyles = Pick<\n BaseInputProps,\n | 'isDisabled'\n | 'validationState'\n | 'leadingIcon'\n | 'prefix'\n | 'interactionElement'\n | 'suffix'\n | 'trailingIcon'\n | 'textAlign'\n | 'isDropdownTrigger'\n> & {\n isHovered?: boolean;\n isFocused?: boolean;\n isTextArea?: boolean;\n hasTags?: boolean;\n theme: Theme;\n};\n\nexport const getInputBackgroundAndBorderStyles = ({\n theme,\n isHovered,\n isFocused,\n isDisabled,\n validationState,\n isTextArea,\n isDropdownTrigger,\n}: Pick<\n GetInputStyles,\n | 'theme'\n | 'isFocused'\n | 'isDisabled'\n | 'validationState'\n | 'isHovered'\n | 'isTextArea'\n | 'isDropdownTrigger'\n>): CSSObject => {\n // normal state\n let backgroundColor = theme.colors.interactive.background.gray.default;\n let borderBottomColor = theme.colors.interactive.background.gray.highlighted;\n\n // hoverState\n if (isHovered) {\n backgroundColor = theme.colors.interactive.background.gray.highlighted;\n }\n\n // focused state\n if (isFocused) {\n backgroundColor = theme.colors.interactive.background.primary.faded;\n }\n\n // disabled state\n if (isDisabled) {\n backgroundColor = theme.colors.interactive.background.gray.disabled;\n borderBottomColor = 'transparent';\n }\n\n // validation state\n if (validationState === 'error') {\n backgroundColor = theme.colors.interactive.background.negative.faded;\n borderBottomColor = theme.colors.interactive.background.negative.default;\n } else if (validationState === 'success') {\n backgroundColor = theme.colors.interactive.background.positive.faded;\n borderBottomColor = theme.colors.interactive.background.positive.default;\n }\n\n return {\n backgroundColor,\n borderBottomColor,\n borderTopLeftRadius: makeBorderSize(theme.border.radius.small),\n borderTopRightRadius: makeBorderSize(theme.border.radius.small),\n borderBottomWidth: makeBorderSize(theme.border.width.thin),\n borderBottomStyle: 'solid',\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n alignItems: isTextArea ? 'flex-start' : undefined,\n position: 'relative',\n height: isDropdownTrigger ? 'auto' : undefined,\n };\n};\n\nconst getLeftPadding = ({\n theme,\n isDropdownTrigger,\n hasLeadingIcon,\n hasPrefix,\n}: {\n theme: Theme;\n hasLeadingIcon: boolean;\n hasPrefix: boolean;\n isDropdownTrigger: GetInputStyles['isDropdownTrigger'];\n}): number => {\n if (isDropdownTrigger) {\n return theme.spacing[0];\n }\n\n if (hasLeadingIcon || hasPrefix) {\n return theme.spacing[3];\n }\n\n return theme.spacing[4];\n};\n\nexport const getBaseInputStyles = ({\n theme,\n isDisabled,\n leadingIcon,\n prefix,\n interactionElement,\n suffix,\n trailingIcon,\n textAlign,\n isTextArea,\n hasTags,\n isDropdownTrigger,\n}: GetInputStyles): CSSObject => {\n const {\n hasLeadingIcon,\n hasPrefix,\n hasInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n } = getInputVisualsToBeRendered({\n leadingIcon,\n prefix,\n interactionElement,\n suffix,\n trailingIcon,\n });\n\n const isDropdownWithTags = isDropdownTrigger && hasTags;\n const isReactNative = getPlatformType() === 'react-native';\n\n return {\n ...getTextStyles({\n size: 'medium',\n variant: 'body',\n weight: 'regular',\n color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',\n theme,\n }),\n // take the full available width of parent container for input field\n flex: 1,\n backgroundColor: 'transparent',\n paddingTop: makeSpace(theme.spacing[3]),\n paddingBottom: makeSpace(theme.spacing[3]),\n paddingLeft: makeSpace(getLeftPadding({ theme, isDropdownTrigger, hasLeadingIcon, hasPrefix })),\n paddingRight:\n hasInteractionElement || hasSuffix || hasTrailingIcon\n ? makeSpace(theme.spacing[3])\n : makeSpace(theme.spacing[4]),\n textAlign,\n width: '100%',\n height: isTextArea || isDropdownWithTags ? undefined : makeSpace(BASEINPUT_DEFAULT_HEIGHT),\n minHeight: isDropdownWithTags ? undefined : makeSpace(BASEINPUT_DEFAULT_HEIGHT),\n ...(isReactNative ? {} : { resize: 'none' }),\n };\n};\n"],"names":["getInputBackgroundAndBorderStyles","_ref","theme","isHovered","isFocused","isDisabled","validationState","isTextArea","isDropdownTrigger","backgroundColor","colors","interactive","background","gray","borderBottomColor","highlighted","primary","faded","disabled","negative","positive","borderTopLeftRadius","makeBorderSize","border","radius","small","borderTopRightRadius","borderBottomWidth","width","thin","borderBottomStyle","display","flexDirection","alignItems","undefined","position","height","getLeftPadding","_ref2","hasLeadingIcon","hasPrefix","spacing","getBaseInputStyles","_ref3","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","hasTags","_getInputVisualsToBeR","getInputVisualsToBeRendered","hasInteractionElement","hasSuffix","hasTrailingIcon","isDropdownWithTags","isReactNative","getPlatformType","_objectSpread","getTextStyles","size","variant","weight","color","flex","paddingTop","makeSpace","paddingBottom","paddingLeft","paddingRight","BASEINPUT_DEFAULT_HEIGHT","minHeight","resize"],"mappings":"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"}
1
+ {"version":3,"file":"baseInputStyles.js","sources":["../../../../../../../src/components/Input/BaseInput/baseInputStyles.ts"],"sourcesContent":["import type { CSSObject } from 'styled-components';\nimport type { BaseInputProps } from './BaseInput';\nimport { getInputVisualsToBeRendered } from './BaseInputVisuals';\nimport { getBaseInputBorderStyles } from './getBaseInputBorderStyles';\nimport {\n baseInputBackgroundColor,\n baseInputBorderColor,\n baseInputBorderWidth,\n baseInputHeight,\n baseInputPaddingTokens,\n baseInputWrapperMaxHeight,\n} from './baseInputTokens';\nimport type { BaseInputWrapperProps } from './types';\nimport type { Theme } from '~components/BladeProvider';\nimport getTextStyles from '~components/Typography/Text/getTextStyles';\nimport { makeSpace } from '~utils/makeSpace';\nimport { makeBorderSize } from '~utils/makeBorderSize';\nimport { getPlatformType } from '~utils';\nimport getIn from '~utils/lodashButBetter/get';\nimport getHeadingStyles from '~components/Typography/Heading/getHeadingStyles';\n\ntype GetInputStyles = Pick<\n BaseInputProps,\n | 'isDisabled'\n | 'validationState'\n | 'leadingIcon'\n | 'prefix'\n | 'interactionElement'\n | 'suffix'\n | 'trailingIcon'\n | 'textAlign'\n | 'isDropdownTrigger'\n | 'valueComponentType'\n> & {\n isHovered?: boolean;\n isFocused?: boolean;\n isTextArea?: boolean;\n hasTags?: boolean;\n theme: Theme;\n size: NonNullable<BaseInputProps['size']>;\n};\n\nexport const getBaseInputState = ({\n isFocused,\n isHovered,\n isDisabled,\n}: {\n isFocused?: boolean;\n isHovered?: boolean;\n isDisabled?: boolean;\n}): 'focused' | 'hovered' | 'disabled' | 'default' => {\n if (isDisabled) {\n return 'disabled';\n } else if (isFocused) {\n return 'focused';\n } else if (isHovered) {\n return 'hovered';\n } else {\n return 'default';\n }\n};\n\nexport const getInputBackgroundAndBorderStyles = ({\n theme,\n isHovered,\n isFocused,\n isDisabled,\n validationState,\n isTextArea,\n isDropdownTrigger,\n}: Pick<\n GetInputStyles,\n | 'theme'\n | 'isFocused'\n | 'isDisabled'\n | 'validationState'\n | 'isHovered'\n | 'isTextArea'\n | 'isDropdownTrigger'\n>): CSSObject => {\n // normal state\n let backgroundColor = getIn(theme.colors, baseInputBackgroundColor.default);\n let borderColor = getIn(theme.colors, baseInputBorderColor.default);\n let borderWidth = getIn(theme.border.width, baseInputBorderWidth.default);\n\n const baseInputState = getBaseInputState({ isFocused, isHovered, isDisabled });\n\n backgroundColor = getIn(theme.colors, baseInputBackgroundColor[baseInputState]);\n borderColor = getIn(theme.colors, baseInputBorderColor[baseInputState]);\n borderWidth = getIn(theme.border.width, baseInputBorderWidth[baseInputState]);\n\n if (validationState === 'error') {\n borderColor = getIn(theme.colors, baseInputBorderColor.error);\n borderWidth = getIn(theme.border.width, baseInputBorderWidth.error);\n } else if (validationState === 'success') {\n borderColor = getIn(theme.colors, baseInputBorderColor.success);\n borderWidth = getIn(theme.border.width, baseInputBorderWidth.success);\n }\n\n return {\n backgroundColor,\n borderRadius: makeBorderSize(theme.border.radius.medium),\n borderStyle: 'solid',\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n alignItems: isTextArea ? 'flex-start' : undefined,\n position: 'relative',\n height: isDropdownTrigger ? 'auto' : undefined,\n border: 'none',\n ...getBaseInputBorderStyles({ theme, borderColor, borderWidth, isFocused }),\n };\n};\n\nconst getLeftPadding = ({\n theme,\n isDropdownTrigger,\n hasLeadingIcon,\n hasPrefix,\n size,\n}: {\n theme: Theme;\n hasLeadingIcon: boolean;\n hasPrefix: boolean;\n isDropdownTrigger: GetInputStyles['isDropdownTrigger'];\n size: GetInputStyles['size'];\n}): number => {\n if (isDropdownTrigger) {\n return theme.spacing[0];\n }\n\n if (hasLeadingIcon || hasPrefix) {\n return theme.spacing[3];\n }\n\n return theme.spacing[baseInputPaddingTokens.left[size]];\n};\n\nconst getRightPadding = ({\n theme,\n hasInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n size,\n}: {\n theme: Theme;\n hasInteractionElement: boolean;\n hasSuffix: boolean;\n hasTrailingIcon: boolean;\n size: GetInputStyles['size'];\n}): number => {\n if (hasInteractionElement || hasSuffix || hasTrailingIcon) {\n return theme.spacing[3];\n }\n return theme.spacing[baseInputPaddingTokens.right[size]];\n};\n\nexport const getBaseInputStyles = ({\n theme,\n isDisabled,\n leadingIcon,\n prefix,\n interactionElement,\n suffix,\n trailingIcon,\n textAlign,\n isTextArea,\n hasTags,\n isDropdownTrigger,\n size,\n valueComponentType,\n}: GetInputStyles): CSSObject => {\n const {\n hasLeadingIcon,\n hasPrefix,\n hasInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n } = getInputVisualsToBeRendered({\n leadingIcon,\n prefix,\n interactionElement,\n suffix,\n trailingIcon,\n size,\n });\n\n const isDropdownWithTags = isDropdownTrigger && hasTags;\n const isReactNative = getPlatformType() === 'react-native';\n\n return {\n ...(valueComponentType === 'heading'\n ? getHeadingStyles({\n size,\n weight: 'regular',\n color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',\n theme,\n })\n : getTextStyles({\n size,\n variant: 'body',\n weight: 'regular',\n color: isDisabled ? 'surface.text.gray.disabled' : 'surface.text.gray.subtle',\n theme,\n })),\n\n // take the full available width of parent container for input field\n flex: 1,\n backgroundColor: 'transparent',\n\n paddingTop: makeSpace(theme.spacing[baseInputPaddingTokens.top[size]]),\n paddingBottom: makeSpace(theme.spacing[baseInputPaddingTokens.bottom[size]]),\n paddingLeft: makeSpace(\n getLeftPadding({ theme, isDropdownTrigger, hasLeadingIcon, hasPrefix, size }),\n ),\n paddingRight: getRightPadding({\n theme,\n hasInteractionElement,\n hasSuffix,\n hasTrailingIcon,\n size,\n }),\n\n textAlign,\n width: '100%',\n height: isTextArea || isDropdownWithTags ? undefined : makeSpace(baseInputHeight[size]),\n minHeight: isDropdownWithTags ? undefined : makeSpace(baseInputHeight[size]),\n ...(isReactNative ? {} : { resize: 'none' }),\n };\n};\n\nexport const getAnimatedBaseInputWrapperMaxHeight = ({\n maxTagRows,\n showAllTags,\n size,\n}: Pick<BaseInputWrapperProps, 'maxTagRows' | 'showAllTags' | 'size'>): number => {\n if (maxTagRows === 'single') {\n return baseInputHeight[size];\n }\n\n if (maxTagRows === 'multiple') {\n return baseInputWrapperMaxHeight[size];\n }\n\n // In expandable, max-height depends on the state\n return showAllTags ? baseInputWrapperMaxHeight[size] : baseInputHeight[size];\n};\n"],"names":["getBaseInputState","_ref","isFocused","isHovered","isDisabled","getInputBackgroundAndBorderStyles","_ref2","theme","validationState","isTextArea","isDropdownTrigger","backgroundColor","getIn","colors","baseInputBackgroundColor","borderColor","baseInputBorderColor","borderWidth","border","width","baseInputBorderWidth","baseInputState","error","success","_objectSpread","borderRadius","makeBorderSize","radius","medium","borderStyle","display","flexDirection","alignItems","undefined","position","height","getBaseInputBorderStyles","getLeftPadding","_ref3","hasLeadingIcon","hasPrefix","size","spacing","baseInputPaddingTokens","left","getRightPadding","_ref4","hasInteractionElement","hasSuffix","hasTrailingIcon","right","getBaseInputStyles","_ref5","leadingIcon","prefix","interactionElement","suffix","trailingIcon","textAlign","hasTags","valueComponentType","_getInputVisualsToBeR","getInputVisualsToBeRendered","isDropdownWithTags","isReactNative","getPlatformType","getHeadingStyles","weight","color","getTextStyles","variant","flex","paddingTop","makeSpace","top","paddingBottom","bottom","paddingLeft","paddingRight","baseInputHeight","minHeight","resize","getAnimatedBaseInputWrapperMaxHeight","_ref6","maxTagRows","showAllTags","baseInputWrapperMaxHeight"],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import '../../../tokens/global/index.js';
2
+ import { size } from '../../../tokens/global/size.js';
3
+ import { spacing } from '../../../tokens/global/spacing.js';
4
+
5
+ var BASEINPUT_MAX_ROWS = 4;
6
+ var TAG_HEIGHT = size['20'];
7
+ var TAG_GAP = spacing['3'];
8
+
9
+ /**
10
+ * 36px
11
+ */
12
+ var baseInputHeight = {
13
+ medium: size['36'],
14
+ large: size['48']
15
+ };
16
+
17
+ /**
18
+ * medium - 144px (36px height * 4 rows)
19
+ * large - 192px (48px height * 4 rows)
20
+ */
21
+ // we don't want exact number but rough number to be able to animate correctly in height.
22
+ var baseInputWrapperMaxHeight = {
23
+ medium: baseInputHeight.medium * BASEINPUT_MAX_ROWS,
24
+ large: baseInputHeight.large * BASEINPUT_MAX_ROWS
25
+ };
26
+ var baseInputBorderColor = {
27
+ "default": 'interactive.border.gray.default',
28
+ hovered: 'interactive.border.gray.highlighted',
29
+ focused: 'interactive.border.primary.default',
30
+ disabled: 'interactive.border.gray.disabled',
31
+ error: 'interactive.border.negative.default',
32
+ success: 'interactive.border.positive.default'
33
+ };
34
+ var baseInputBackgroundColor = {
35
+ "default": 'surface.background.gray.intense',
36
+ hovered: 'surface.background.gray.moderate',
37
+ focused: 'surface.background.gray.moderate',
38
+ disabled: 'surface.background.gray.intense',
39
+ error: 'surface.background.gray.intense',
40
+ success: 'surface.background.gray.intense'
41
+ };
42
+ var baseInputBorderWidth = {
43
+ "default": 'thin',
44
+ hovered: 'thin',
45
+ disabled: 'thin',
46
+ focused: 'thick',
47
+ error: 'thick',
48
+ success: 'thick'
49
+ };
50
+ var baseInputBorderBackgroundMotion = {
51
+ enter: {
52
+ duration: 'xgentle',
53
+ easing: 'standard.revealing'
54
+ },
55
+ exit: {
56
+ duration: 'gentle',
57
+ easing: 'standard.effective'
58
+ }
59
+ };
60
+ var baseInputPaddingTokens = {
61
+ top: {
62
+ medium: 3,
63
+ large: 4
64
+ },
65
+ bottom: {
66
+ medium: 3,
67
+ large: 4
68
+ },
69
+ left: {
70
+ medium: 4,
71
+ large: 4
72
+ },
73
+ right: {
74
+ medium: 4,
75
+ large: 4
76
+ }
77
+ };
78
+
79
+ /* the magic number 192 is basically max-width of label
80
+ i.e 176 and then right margin
81
+ i.e 16 which is the spacing between label and input field */
82
+ var formHintLeftLabelMarginLeft = {
83
+ medium: 136,
84
+ large: 192
85
+ };
86
+
87
+ export { BASEINPUT_MAX_ROWS, TAG_GAP, TAG_HEIGHT, baseInputBackgroundColor, baseInputBorderBackgroundMotion, baseInputBorderColor, baseInputBorderWidth, baseInputHeight, baseInputPaddingTokens, baseInputWrapperMaxHeight, formHintLeftLabelMarginLeft };
88
+ //# sourceMappingURL=baseInputTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseInputTokens.js","sources":["../../../../../../../src/components/Input/BaseInput/baseInputTokens.ts"],"sourcesContent":["import type { BaseInputProps } from './BaseInput';\nimport { size, spacing } from '~tokens/global';\n\nexport const BASEINPUT_MAX_ROWS = 4;\n\nexport const TAG_HEIGHT = size['20'];\nexport const TAG_GAP = spacing['3'];\n\n/**\n * 36px\n */\nexport const baseInputHeight: Record<\n NonNullable<BaseInputProps['size']>,\n typeof size[keyof typeof size]\n> = {\n medium: size['36'],\n large: size['48'],\n};\n\n/**\n * medium - 144px (36px height * 4 rows)\n * large - 192px (48px height * 4 rows)\n */\n// we don't want exact number but rough number to be able to animate correctly in height.\nexport const baseInputWrapperMaxHeight = {\n medium: baseInputHeight.medium * BASEINPUT_MAX_ROWS,\n large: baseInputHeight.large * BASEINPUT_MAX_ROWS,\n} as const;\n\nexport const baseInputBorderColor = {\n default: 'interactive.border.gray.default',\n hovered: 'interactive.border.gray.highlighted',\n focused: 'interactive.border.primary.default',\n disabled: 'interactive.border.gray.disabled',\n error: 'interactive.border.negative.default',\n success: 'interactive.border.positive.default',\n} as const;\n\nexport const baseInputBackgroundColor = {\n default: 'surface.background.gray.intense',\n hovered: 'surface.background.gray.moderate',\n focused: 'surface.background.gray.moderate',\n disabled: 'surface.background.gray.intense',\n error: 'surface.background.gray.intense',\n success: 'surface.background.gray.intense',\n} as const;\n\nexport const baseInputBorderWidth = {\n default: 'thin',\n hovered: 'thin',\n disabled: 'thin',\n focused: 'thick',\n error: 'thick',\n success: 'thick',\n} as const;\n\nexport const baseInputBorderBackgroundMotion = {\n enter: { duration: 'xgentle', easing: 'standard.revealing' },\n exit: { duration: 'gentle', easing: 'standard.effective' },\n} as const;\n\nexport const baseInputPaddingTokens = {\n top: {\n medium: 3,\n large: 4,\n },\n bottom: {\n medium: 3,\n large: 4,\n },\n left: {\n medium: 4,\n large: 4,\n },\n right: {\n medium: 4,\n large: 4,\n },\n} as const;\n\n/* the magic number 192 is basically max-width of label \ni.e 176 and then right margin \ni.e 16 which is the spacing between label and input field */\nexport const formHintLeftLabelMarginLeft = {\n medium: 136,\n large: 192,\n} as const;\n"],"names":["BASEINPUT_MAX_ROWS","TAG_HEIGHT","size","TAG_GAP","spacing","baseInputHeight","medium","large","baseInputWrapperMaxHeight","baseInputBorderColor","hovered","focused","disabled","error","success","baseInputBackgroundColor","baseInputBorderWidth","baseInputBorderBackgroundMotion","enter","duration","easing","exit","baseInputPaddingTokens","top","bottom","left","right","formHintLeftLabelMarginLeft"],"mappings":";;;;AAGO,IAAMA,kBAAkB,GAAG,EAAC;IAEtBC,UAAU,GAAGC,IAAI,CAAC,IAAI,EAAC;IACvBC,OAAO,GAAGC,OAAO,CAAC,GAAG,EAAC;;AAEnC;AACA;AACA;AACO,IAAMC,eAGZ,GAAG;AACFC,EAAAA,MAAM,EAAEJ,IAAI,CAAC,IAAI,CAAC;EAClBK,KAAK,EAAEL,IAAI,CAAC,IAAI,CAAA;AAClB,EAAC;;AAED;AACA;AACA;AACA;AACA;AACO,IAAMM,yBAAyB,GAAG;AACvCF,EAAAA,MAAM,EAAED,eAAe,CAACC,MAAM,GAAGN,kBAAkB;AACnDO,EAAAA,KAAK,EAAEF,eAAe,CAACE,KAAK,GAAGP,kBAAAA;AACjC,EAAU;AAEH,IAAMS,oBAAoB,GAAG;AAClC,EAAA,SAAA,EAAS,iCAAiC;AAC1CC,EAAAA,OAAO,EAAE,qCAAqC;AAC9CC,EAAAA,OAAO,EAAE,oCAAoC;AAC7CC,EAAAA,QAAQ,EAAE,kCAAkC;AAC5CC,EAAAA,KAAK,EAAE,qCAAqC;AAC5CC,EAAAA,OAAO,EAAE,qCAAA;AACX,EAAU;AAEH,IAAMC,wBAAwB,GAAG;AACtC,EAAA,SAAA,EAAS,iCAAiC;AAC1CL,EAAAA,OAAO,EAAE,kCAAkC;AAC3CC,EAAAA,OAAO,EAAE,kCAAkC;AAC3CC,EAAAA,QAAQ,EAAE,iCAAiC;AAC3CC,EAAAA,KAAK,EAAE,iCAAiC;AACxCC,EAAAA,OAAO,EAAE,iCAAA;AACX,EAAU;AAEH,IAAME,oBAAoB,GAAG;AAClC,EAAA,SAAA,EAAS,MAAM;AACfN,EAAAA,OAAO,EAAE,MAAM;AACfE,EAAAA,QAAQ,EAAE,MAAM;AAChBD,EAAAA,OAAO,EAAE,OAAO;AAChBE,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,OAAO,EAAE,OAAA;AACX,EAAU;AAEH,IAAMG,+BAA+B,GAAG;AAC7CC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAS;AAAEC,IAAAA,MAAM,EAAE,oBAAA;GAAsB;AAC5DC,EAAAA,IAAI,EAAE;AAAEF,IAAAA,QAAQ,EAAE,QAAQ;AAAEC,IAAAA,MAAM,EAAE,oBAAA;AAAqB,GAAA;AAC3D,EAAU;AAEH,IAAME,sBAAsB,GAAG;AACpCC,EAAAA,GAAG,EAAE;AACHjB,IAAAA,MAAM,EAAE,CAAC;AACTC,IAAAA,KAAK,EAAE,CAAA;GACR;AACDiB,EAAAA,MAAM,EAAE;AACNlB,IAAAA,MAAM,EAAE,CAAC;AACTC,IAAAA,KAAK,EAAE,CAAA;GACR;AACDkB,EAAAA,IAAI,EAAE;AACJnB,IAAAA,MAAM,EAAE,CAAC;AACTC,IAAAA,KAAK,EAAE,CAAA;GACR;AACDmB,EAAAA,KAAK,EAAE;AACLpB,IAAAA,MAAM,EAAE,CAAC;AACTC,IAAAA,KAAK,EAAE,CAAA;AACT,GAAA;AACF,EAAU;;AAEV;AACA;AACA;AACO,IAAMoB,2BAA2B,GAAG;AACzCrB,EAAAA,MAAM,EAAE,GAAG;AACXC,EAAAA,KAAK,EAAE,GAAA;AACT;;;;"}
@@ -0,0 +1,23 @@
1
+ import { baseInputBorderBackgroundMotion } from './baseInputTokens.js';
2
+ import '../../../utils/index.js';
3
+ import getIn from '../../../utils/lodashButBetter/get.js';
4
+ import { makeBorderSize } from '../../../utils/makeBorderSize/makeBorderSize.js';
5
+ import { castWebType } from '../../../utils/platform/castUtils.js';
6
+ import { makeMotionTime } from '../../../utils/makeMotionTime/makeMotionTime.web.js';
7
+
8
+ var getBaseInputBorderStyles = function getBaseInputBorderStyles(_ref) {
9
+ var theme = _ref.theme,
10
+ borderWidth = _ref.borderWidth,
11
+ borderColor = _ref.borderColor,
12
+ isFocused = _ref.isFocused;
13
+ return {
14
+ borderWidth: makeBorderSize(theme.border.width.none),
15
+ boxShadow: "".concat(borderColor, " 0px 0px 0px ").concat(makeBorderSize(borderWidth)),
16
+ transitionProperty: 'box-shadow, background-color',
17
+ transitionDuration: castWebType(makeMotionTime(getIn(theme.motion.duration, baseInputBorderBackgroundMotion[isFocused ? 'enter' : 'exit'].duration))),
18
+ transitionEasing: castWebType(getIn(theme.motion.easing, baseInputBorderBackgroundMotion[isFocused ? 'enter' : 'exit'].easing))
19
+ };
20
+ };
21
+
22
+ export { getBaseInputBorderStyles };
23
+ //# sourceMappingURL=getBaseInputBorderStyles.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBaseInputBorderStyles.web.js","sources":["../../../../../../../src/components/Input/BaseInput/getBaseInputBorderStyles.web.ts"],"sourcesContent":["import type { CSSObject } from 'styled-components';\nimport { baseInputBorderBackgroundMotion } from './baseInputTokens';\nimport type { Theme } from '~components/BladeProvider';\nimport { castWebType, makeBorderSize, makeMotionTime } from '~utils';\nimport getIn from '~utils/lodashButBetter/get';\n\nconst getBaseInputBorderStyles = ({\n theme,\n borderWidth,\n borderColor,\n isFocused,\n}: {\n theme: Theme;\n borderWidth: number;\n borderColor: string;\n isFocused?: boolean;\n}): CSSObject => ({\n borderWidth: makeBorderSize(theme.border.width.none),\n boxShadow: `${borderColor} 0px 0px 0px ${makeBorderSize(borderWidth)}`,\n transitionProperty: 'box-shadow, background-color',\n transitionDuration: castWebType(\n makeMotionTime(\n getIn(\n theme.motion.duration,\n baseInputBorderBackgroundMotion[isFocused ? 'enter' : 'exit'].duration,\n ),\n ),\n ),\n transitionEasing: castWebType(\n getIn(\n theme.motion.easing,\n baseInputBorderBackgroundMotion[isFocused ? 'enter' : 'exit'].easing,\n ),\n ),\n});\n\nexport { getBaseInputBorderStyles };\n"],"names":["getBaseInputBorderStyles","_ref","theme","borderWidth","borderColor","isFocused","makeBorderSize","border","width","none","boxShadow","concat","transitionProperty","transitionDuration","castWebType","makeMotionTime","getIn","motion","duration","baseInputBorderBackgroundMotion","transitionEasing","easing"],"mappings":";;;;;;;AAMA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAC5BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IACXC,SAAS,GAAAJ,IAAA,CAATI,SAAS,CAAA;EAAA,OAMO;IAChBF,WAAW,EAAEG,cAAc,CAACJ,KAAK,CAACK,MAAM,CAACC,KAAK,CAACC,IAAI,CAAC;IACpDC,SAAS,EAAA,EAAA,CAAAC,MAAA,CAAKP,WAAW,EAAA,eAAA,CAAA,CAAAO,MAAA,CAAgBL,cAAc,CAACH,WAAW,CAAC,CAAE;AACtES,IAAAA,kBAAkB,EAAE,8BAA8B;IAClDC,kBAAkB,EAAEC,WAAW,CAC7BC,cAAc,CACZC,KAAK,CACHd,KAAK,CAACe,MAAM,CAACC,QAAQ,EACrBC,+BAA+B,CAACd,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC,CAACa,QAChE,CACF,CACF,CAAC;IACDE,gBAAgB,EAAEN,WAAW,CAC3BE,KAAK,CACHd,KAAK,CAACe,MAAM,CAACI,MAAM,EACnBF,+BAA+B,CAACd,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC,CAACgB,MAChE,CACF,CAAA;GACD,CAAA;AAAA;;;;"}
@@ -171,19 +171,21 @@ var _BaseDropdownInputTrigger = function _BaseDropdownInputTrigger(props, ref) {
171
171
  return props.inputValue;
172
172
  };
173
173
  var getTags = React__default.useMemo(function () {
174
- return function () {
174
+ return function (_ref) {
175
+ var size = _ref.size;
175
176
  if (selectionType === 'single') {
176
177
  return undefined;
177
178
  }
178
179
  return getTagsGroup({
180
+ size: size,
179
181
  tags: selectedIndices.map(function (selectedIndex) {
180
182
  var _options$selectedInde;
181
183
  return (_options$selectedInde = options[selectedIndex]) === null || _options$selectedInde === void 0 ? void 0 : _options$selectedInde.title;
182
184
  }),
183
185
  activeTagIndex: activeTagIndex,
184
186
  isDisabled: props.isDisabled,
185
- onDismiss: function onDismiss(_ref) {
186
- var tagIndex = _ref.tagIndex;
187
+ onDismiss: function onDismiss(_ref2) {
188
+ var tagIndex = _ref2.tagIndex;
187
189
  if (isTagDismissedRef.current) {
188
190
  isTagDismissedRef.current.value = true;
189
191
  }
@@ -218,7 +220,9 @@ var _BaseDropdownInputTrigger = function _BaseDropdownInputTrigger(props, ref) {
218
220
  triggererWrapperRef.current = wrapperNode;
219
221
  },
220
222
  maxTagRows: (_props$maxRows = props.maxRows) !== null && _props$maxRows !== void 0 ? _props$maxRows : 'single',
221
- tags: getTags(),
223
+ tags: getTags({
224
+ size: props.size || 'medium'
225
+ }),
222
226
  showAllTags: getShowAllTags(),
223
227
  activeTagIndex: activeTagIndex,
224
228
  setActiveTagIndex: setActiveTagIndex,
@@ -255,9 +259,9 @@ var _BaseDropdownInputTrigger = function _BaseDropdownInputTrigger(props, ref) {
255
259
  (_props$onTriggerClick = props.onTriggerClick) === null || _props$onTriggerClick === void 0 ? void 0 : _props$onTriggerClick.call(props, e);
256
260
  },
257
261
  onFocus: props.onFocus,
258
- onBlur: function onBlur(_ref2) {
262
+ onBlur: function onBlur(_ref3) {
259
263
  var _props$onBlur;
260
- var name = _ref2.name;
264
+ var name = _ref3.name;
261
265
  (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 ? void 0 : _props$onBlur.call(props, {
262
266
  name: name,
263
267
  value: value
@@ -280,6 +284,7 @@ var _BaseDropdownInputTrigger = function _BaseDropdownInputTrigger(props, ref) {
280
284
  ,
281
285
  onChange: props.isSelectInput ? undefined : props.onInputValueChange,
282
286
  onKeyDown: props.onTriggerKeydown,
287
+ size: props.size,
283
288
  interactionElement: isAutoCompleteInHeader ? null : /*#__PURE__*/jsx(InputChevronIcon, {
284
289
  onClick: function onClick() {
285
290
  if (!props.isDisabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDropdownInputTrigger.js","sources":["../../../../../../../src/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseInput } from '../BaseInput';\nimport { InputChevronIcon } from './InputChevronIcon';\nimport type { BaseDropdownInputTriggerProps } from './types';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport { isReactNative } from '~utils';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { getTagsGroup } from '~components/Tag/getTagsGroup';\nimport type { BladeElementRef } from '~utils/types';\nimport { useFirstRender } from '~utils/useFirstRender';\n\nconst useControlledDropdownInput = (\n props: Pick<\n BaseDropdownInputTriggerProps,\n | 'onChange'\n | 'name'\n | 'value'\n | 'defaultValue'\n | 'onInputValueChange'\n | 'syncInputValueWithSelection'\n | 'isSelectInput'\n >,\n): void => {\n const isFirstRender = useFirstRender();\n const {\n changeCallbackTriggerer,\n isControlled,\n options,\n selectedIndices,\n controlledValueIndices,\n setSelectedIndices,\n selectionType,\n setIsControlled,\n } = useDropdown();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n const selectValues = (valuesToSelect: string | string[]): void => {\n if (options.length > 0) {\n // we use empty `''` for clearing the input\n if (isEmpty(valuesToSelect)) {\n setSelectedIndices([]);\n } else if (typeof valuesToSelect === 'string') {\n // single select control\n const selectedItemIndex = options.findIndex((option) => option.value === valuesToSelect);\n if (selectedItemIndex >= 0) {\n setSelectedIndices([selectedItemIndex]);\n }\n } else {\n // multiselect control\n\n // Handles repeated values in user state\n const uniqueValues = Array.from(new Set(valuesToSelect));\n // Handle selectionType single with multiselect values\n const userValues = selectionType === 'single' ? [valuesToSelect?.[0]] : uniqueValues;\n\n const selectedItemIndices = userValues\n .map((optionValue) => options.findIndex((option) => option.value === optionValue))\n .filter((value) => value >= 0);\n\n setSelectedIndices(selectedItemIndices);\n }\n }\n };\n\n // Handles `defaultValue` prop\n React.useEffect(() => {\n if (options.length > 0 && props.defaultValue) {\n selectValues(props.defaultValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options.length]);\n\n // Handles `value` prop\n React.useEffect(() => {\n if (options.length > 0 && props.value !== undefined) {\n if (!isControlled) {\n setIsControlled(true);\n }\n\n selectValues(props.value);\n\n // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.\n if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {\n props.syncInputValueWithSelection?.(props.value);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n // onChange behaviour\n React.useEffect(() => {\n // Ignore calling onChange on mount\n\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name,\n values: getValuesArrayFromIndices(),\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n};\n\nconst _BaseDropdownInputTrigger = (\n props: BaseDropdownInputTriggerProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n isOpen,\n activeTagIndex,\n setActiveTagIndex,\n displayValue,\n selectionType,\n dropdownTriggerer,\n dropdownBaseId,\n selectedIndices,\n triggererRef,\n triggererWrapperRef,\n isTagDismissedRef,\n onTriggerClick,\n value,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n activeIndex,\n hasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n options,\n removeOption,\n setChangeCallbackTriggerer,\n changeCallbackTriggerer,\n } = useDropdown();\n\n const dropdownTriggerPlaceholder = props.placeholder ?? 'Select Option';\n const isAutoCompleteInHeader = !props.isSelectInput && hasAutoCompleteInBottomSheetHeader;\n\n const getShowAllTags = React.useCallback((): boolean => {\n if (hasAutoCompleteInBottomSheetHeader) {\n // When AutoComplete is in bottomsheet header, we never want to show all tags in outer select input\n if (props.isSelectInput) {\n return false;\n }\n\n // ... And we always want to show all tags in inner AutoComplete\n return true;\n }\n\n return isOpen;\n }, [hasAutoCompleteInBottomSheetHeader, props.isSelectInput, isOpen]);\n\n useControlledDropdownInput({\n onChange: props.onChange,\n name: props.name,\n value: props.value,\n defaultValue: props.defaultValue,\n syncInputValueWithSelection: props.syncInputValueWithSelection,\n isSelectInput: props.isSelectInput,\n });\n\n const getValue = (): string | undefined => {\n let prefix = '';\n if (props.labelPosition === 'inside-input' && props.label) {\n prefix = `${props.label}: `;\n }\n\n if (props.isSelectInput) {\n if (selectionType === 'single') {\n return `${prefix}${displayValue}`;\n }\n\n // In multiselect, we return tags so no display value is required\n return undefined;\n }\n\n // In AutoComplete, input has a special value too\n return props.inputValue;\n };\n\n const getTags = React.useMemo(\n () => () => {\n if (selectionType === 'single') {\n return undefined;\n }\n\n return getTagsGroup({\n tags: selectedIndices.map((selectedIndex) => options[selectedIndex]?.title),\n activeTagIndex,\n isDisabled: props.isDisabled,\n onDismiss: ({ tagIndex }) => {\n if (isTagDismissedRef.current) {\n isTagDismissedRef.current.value = true;\n }\n\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n\n removeOption(selectedIndices[tagIndex]);\n setChangeCallbackTriggerer(Number(changeCallbackTriggerer) + 1);\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedIndices, selectionType, activeTagIndex, changeCallbackTriggerer, options],\n );\n\n return (\n <BaseInput\n as={props.isSelectInput ? 'button' : 'input'}\n ref={\n (!isReactNative()\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (node: any) => {\n triggererRef.current = node;\n if (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n }\n : null) as never\n }\n isDropdownTrigger={true}\n setInputWrapperRef={(wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }}\n maxTagRows={props.maxRows ?? 'single'}\n tags={getTags()}\n showAllTags={getShowAllTags()}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n shouldIgnoreBlurAnimation={shouldIgnoreBlurAnimation}\n setShouldIgnoreBlurAnimation={setShouldIgnoreBlurAnimation}\n textAlign=\"left\"\n // Form Props\n label={props.label as string}\n placeholder={\n selectionType === 'multiple' && selectedIndices.length > 0\n ? undefined\n : dropdownTriggerPlaceholder\n }\n hideLabelText={props.label?.length === 0}\n accessibilityLabel={props.accessibilityLabel}\n labelPosition={props.labelPosition === 'inside-input' ? undefined : props.labelPosition}\n isLabelInsideInput={props.labelPosition === 'inside-input'}\n necessityIndicator={props.necessityIndicator}\n autoCompleteSuggestionType=\"none\"\n validationState={props.validationState}\n helpText={props.helpText}\n errorText={props.errorText}\n successText={props.successText}\n name={props.name}\n isDisabled={props.isDisabled}\n isRequired={props.isRequired}\n prefix={props.prefix}\n suffix={props.suffix}\n autoFocus={props.autoFocus} // eslint-disable-line jsx-a11y/no-autofocus\n value={getValue()}\n onClick={(e) => {\n if (props.isDisabled) {\n return;\n }\n props.onTriggerClick?.(e);\n }}\n onFocus={props.onFocus}\n onBlur={({ name }) => {\n props.onBlur?.({ name, value });\n }}\n leadingIcon={props.icon}\n // Meta Props\n componentName={props.isSelectInput ? MetaConstants.SelectInput : MetaConstants.AutoComplete}\n testID={props.testID}\n // a11y Props\n id={`${dropdownBaseId}-trigger`}\n labelId={`${dropdownBaseId}-label`}\n hasPopup={getActionListContainerRole(hasFooterAction, dropdownTriggerer)}\n isPopupExpanded={isOpen}\n activeDescendant={activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined}\n popupId={`${dropdownBaseId}-actionlist`}\n // Special Props for Unique behaviour between Select and AutoComplete\n onChange={props.isSelectInput ? undefined : props.onInputValueChange}\n onKeyDown={props.onTriggerKeydown}\n interactionElement={\n isAutoCompleteInHeader ? null : (\n <InputChevronIcon\n onClick={() => {\n if (!props.isDisabled) {\n // Icon onClicks to the SelectInput itself\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n onTriggerClick();\n }\n }}\n isDisabled={props.isDisabled}\n isOpen={isOpen}\n />\n )\n }\n />\n );\n};\n\nconst BaseDropdownInputTrigger = React.forwardRef(_BaseDropdownInputTrigger);\n\nexport { BaseDropdownInputTrigger };\n"],"names":["useControlledDropdownInput","props","isFirstRender","useFirstRender","_useDropdown","useDropdown","changeCallbackTriggerer","isControlled","options","selectedIndices","controlledValueIndices","setSelectedIndices","selectionType","setIsControlled","getValuesArrayFromIndices","indices","map","selectionIndex","value","selectValues","valuesToSelect","length","isEmpty","selectedItemIndex","findIndex","option","uniqueValues","Array","from","Set","userValues","selectedItemIndices","optionValue","filter","React","useEffect","defaultValue","undefined","isArray","isSelectInput","_props$syncInputValue","syncInputValueWithSelection","call","_props$onChange","onChange","name","values","_BaseDropdownInputTrigger","ref","_props$placeholder","_props$maxRows","_props$label","_useDropdown2","isOpen","activeTagIndex","setActiveTagIndex","displayValue","dropdownTriggerer","dropdownBaseId","triggererRef","triggererWrapperRef","isTagDismissedRef","onTriggerClick","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","activeIndex","hasFooterAction","hasAutoCompleteInBottomSheetHeader","removeOption","setChangeCallbackTriggerer","dropdownTriggerPlaceholder","placeholder","isAutoCompleteInHeader","getShowAllTags","useCallback","getValue","prefix","labelPosition","label","concat","inputValue","getTags","useMemo","getTagsGroup","tags","selectedIndex","_options$selectedInde","title","isDisabled","onDismiss","_ref","tagIndex","current","isReactNative","_triggererRef$current","focus","Number","_jsx","BaseInput","as","node","isDropdownTrigger","setInputWrapperRef","wrapperNode","maxTagRows","maxRows","showAllTags","textAlign","hideLabelText","accessibilityLabel","isLabelInsideInput","necessityIndicator","autoCompleteSuggestionType","validationState","helpText","errorText","successText","isRequired","suffix","autoFocus","onClick","e","_props$onTriggerClick","onFocus","onBlur","_ref2","_props$onBlur","leadingIcon","icon","componentName","MetaConstants","SelectInput","AutoComplete","testID","id","labelId","hasPopup","getActionListContainerRole","isPopupExpanded","activeDescendant","popupId","onInputValueChange","onKeyDown","onTriggerKeydown","interactionElement","InputChevronIcon","_triggererRef$current2","BaseDropdownInputTrigger","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"BaseDropdownInputTrigger.js","sources":["../../../../../../../src/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseInput } from '../BaseInput';\nimport type { BaseInputProps } from '../BaseInput';\nimport { InputChevronIcon } from './InputChevronIcon';\nimport type { BaseDropdownInputTriggerProps } from './types';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport { isReactNative } from '~utils';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport { getTagsGroup } from '~components/Tag/getTagsGroup';\nimport type { BladeElementRef } from '~utils/types';\nimport { useFirstRender } from '~utils/useFirstRender';\n\nconst useControlledDropdownInput = (\n props: Pick<\n BaseDropdownInputTriggerProps,\n | 'onChange'\n | 'name'\n | 'value'\n | 'defaultValue'\n | 'onInputValueChange'\n | 'syncInputValueWithSelection'\n | 'isSelectInput'\n >,\n): void => {\n const isFirstRender = useFirstRender();\n const {\n changeCallbackTriggerer,\n isControlled,\n options,\n selectedIndices,\n controlledValueIndices,\n setSelectedIndices,\n selectionType,\n setIsControlled,\n } = useDropdown();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n const selectValues = (valuesToSelect: string | string[]): void => {\n if (options.length > 0) {\n // we use empty `''` for clearing the input\n if (isEmpty(valuesToSelect)) {\n setSelectedIndices([]);\n } else if (typeof valuesToSelect === 'string') {\n // single select control\n const selectedItemIndex = options.findIndex((option) => option.value === valuesToSelect);\n if (selectedItemIndex >= 0) {\n setSelectedIndices([selectedItemIndex]);\n }\n } else {\n // multiselect control\n\n // Handles repeated values in user state\n const uniqueValues = Array.from(new Set(valuesToSelect));\n // Handle selectionType single with multiselect values\n const userValues = selectionType === 'single' ? [valuesToSelect?.[0]] : uniqueValues;\n\n const selectedItemIndices = userValues\n .map((optionValue) => options.findIndex((option) => option.value === optionValue))\n .filter((value) => value >= 0);\n\n setSelectedIndices(selectedItemIndices);\n }\n }\n };\n\n // Handles `defaultValue` prop\n React.useEffect(() => {\n if (options.length > 0 && props.defaultValue) {\n selectValues(props.defaultValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options.length]);\n\n // Handles `value` prop\n React.useEffect(() => {\n if (options.length > 0 && props.value !== undefined) {\n if (!isControlled) {\n setIsControlled(true);\n }\n\n selectValues(props.value);\n\n // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.\n if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {\n props.syncInputValueWithSelection?.(props.value);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n // onChange behaviour\n React.useEffect(() => {\n // Ignore calling onChange on mount\n\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name,\n values: getValuesArrayFromIndices(),\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n};\n\nconst _BaseDropdownInputTrigger = (\n props: BaseDropdownInputTriggerProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n isOpen,\n activeTagIndex,\n setActiveTagIndex,\n displayValue,\n selectionType,\n dropdownTriggerer,\n dropdownBaseId,\n selectedIndices,\n triggererRef,\n triggererWrapperRef,\n isTagDismissedRef,\n onTriggerClick,\n value,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n activeIndex,\n hasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n options,\n removeOption,\n setChangeCallbackTriggerer,\n changeCallbackTriggerer,\n } = useDropdown();\n\n const dropdownTriggerPlaceholder = props.placeholder ?? 'Select Option';\n const isAutoCompleteInHeader = !props.isSelectInput && hasAutoCompleteInBottomSheetHeader;\n\n const getShowAllTags = React.useCallback((): boolean => {\n if (hasAutoCompleteInBottomSheetHeader) {\n // When AutoComplete is in bottomsheet header, we never want to show all tags in outer select input\n if (props.isSelectInput) {\n return false;\n }\n\n // ... And we always want to show all tags in inner AutoComplete\n return true;\n }\n\n return isOpen;\n }, [hasAutoCompleteInBottomSheetHeader, props.isSelectInput, isOpen]);\n\n useControlledDropdownInput({\n onChange: props.onChange,\n name: props.name,\n value: props.value,\n defaultValue: props.defaultValue,\n syncInputValueWithSelection: props.syncInputValueWithSelection,\n isSelectInput: props.isSelectInput,\n });\n\n const getValue = (): string | undefined => {\n let prefix = '';\n if (props.labelPosition === 'inside-input' && props.label) {\n prefix = `${props.label}: `;\n }\n\n if (props.isSelectInput) {\n if (selectionType === 'single') {\n return `${prefix}${displayValue}`;\n }\n\n // In multiselect, we return tags so no display value is required\n return undefined;\n }\n\n // In AutoComplete, input has a special value too\n return props.inputValue;\n };\n\n const getTags = React.useMemo(\n () => ({ size }: { size: NonNullable<BaseInputProps['size']> }) => {\n if (selectionType === 'single') {\n return undefined;\n }\n\n return getTagsGroup({\n size,\n tags: selectedIndices.map((selectedIndex) => options[selectedIndex]?.title),\n activeTagIndex,\n isDisabled: props.isDisabled,\n onDismiss: ({ tagIndex }) => {\n if (isTagDismissedRef.current) {\n isTagDismissedRef.current.value = true;\n }\n\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n\n removeOption(selectedIndices[tagIndex]);\n setChangeCallbackTriggerer(Number(changeCallbackTriggerer) + 1);\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedIndices, selectionType, activeTagIndex, changeCallbackTriggerer, options],\n );\n\n return (\n <BaseInput\n as={props.isSelectInput ? 'button' : 'input'}\n ref={\n (!isReactNative()\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (node: any) => {\n triggererRef.current = node;\n if (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n }\n : null) as never\n }\n isDropdownTrigger={true}\n setInputWrapperRef={(wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }}\n maxTagRows={props.maxRows ?? 'single'}\n tags={getTags({ size: props.size || 'medium' })}\n showAllTags={getShowAllTags()}\n activeTagIndex={activeTagIndex}\n setActiveTagIndex={setActiveTagIndex}\n shouldIgnoreBlurAnimation={shouldIgnoreBlurAnimation}\n setShouldIgnoreBlurAnimation={setShouldIgnoreBlurAnimation}\n textAlign=\"left\"\n // Form Props\n label={props.label as string}\n placeholder={\n selectionType === 'multiple' && selectedIndices.length > 0\n ? undefined\n : dropdownTriggerPlaceholder\n }\n hideLabelText={props.label?.length === 0}\n accessibilityLabel={props.accessibilityLabel}\n labelPosition={props.labelPosition === 'inside-input' ? undefined : props.labelPosition}\n isLabelInsideInput={props.labelPosition === 'inside-input'}\n necessityIndicator={props.necessityIndicator}\n autoCompleteSuggestionType=\"none\"\n validationState={props.validationState}\n helpText={props.helpText}\n errorText={props.errorText}\n successText={props.successText}\n name={props.name}\n isDisabled={props.isDisabled}\n isRequired={props.isRequired}\n prefix={props.prefix}\n suffix={props.suffix}\n autoFocus={props.autoFocus} // eslint-disable-line jsx-a11y/no-autofocus\n value={getValue()}\n onClick={(e) => {\n if (props.isDisabled) {\n return;\n }\n props.onTriggerClick?.(e);\n }}\n onFocus={props.onFocus}\n onBlur={({ name }) => {\n props.onBlur?.({ name, value });\n }}\n leadingIcon={props.icon}\n // Meta Props\n componentName={props.isSelectInput ? MetaConstants.SelectInput : MetaConstants.AutoComplete}\n testID={props.testID}\n // a11y Props\n id={`${dropdownBaseId}-trigger`}\n labelId={`${dropdownBaseId}-label`}\n hasPopup={getActionListContainerRole(hasFooterAction, dropdownTriggerer)}\n isPopupExpanded={isOpen}\n activeDescendant={activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined}\n popupId={`${dropdownBaseId}-actionlist`}\n // Special Props for Unique behaviour between Select and AutoComplete\n onChange={props.isSelectInput ? undefined : props.onInputValueChange}\n onKeyDown={props.onTriggerKeydown}\n size={props.size}\n interactionElement={\n isAutoCompleteInHeader ? null : (\n <InputChevronIcon\n onClick={() => {\n if (!props.isDisabled) {\n // Icon onClicks to the SelectInput itself\n if (!isReactNative()) {\n triggererRef.current?.focus();\n }\n onTriggerClick();\n }\n }}\n isDisabled={props.isDisabled}\n isOpen={isOpen}\n />\n )\n }\n />\n );\n};\n\nconst BaseDropdownInputTrigger = React.forwardRef(_BaseDropdownInputTrigger);\n\nexport { BaseDropdownInputTrigger };\n"],"names":["useControlledDropdownInput","props","isFirstRender","useFirstRender","_useDropdown","useDropdown","changeCallbackTriggerer","isControlled","options","selectedIndices","controlledValueIndices","setSelectedIndices","selectionType","setIsControlled","getValuesArrayFromIndices","indices","map","selectionIndex","value","selectValues","valuesToSelect","length","isEmpty","selectedItemIndex","findIndex","option","uniqueValues","Array","from","Set","userValues","selectedItemIndices","optionValue","filter","React","useEffect","defaultValue","undefined","isArray","isSelectInput","_props$syncInputValue","syncInputValueWithSelection","call","_props$onChange","onChange","name","values","_BaseDropdownInputTrigger","ref","_props$placeholder","_props$maxRows","_props$label","_useDropdown2","isOpen","activeTagIndex","setActiveTagIndex","displayValue","dropdownTriggerer","dropdownBaseId","triggererRef","triggererWrapperRef","isTagDismissedRef","onTriggerClick","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","activeIndex","hasFooterAction","hasAutoCompleteInBottomSheetHeader","removeOption","setChangeCallbackTriggerer","dropdownTriggerPlaceholder","placeholder","isAutoCompleteInHeader","getShowAllTags","useCallback","getValue","prefix","labelPosition","label","concat","inputValue","getTags","useMemo","_ref","size","getTagsGroup","tags","selectedIndex","_options$selectedInde","title","isDisabled","onDismiss","_ref2","tagIndex","current","isReactNative","_triggererRef$current","focus","Number","_jsx","BaseInput","as","node","isDropdownTrigger","setInputWrapperRef","wrapperNode","maxTagRows","maxRows","showAllTags","textAlign","hideLabelText","accessibilityLabel","isLabelInsideInput","necessityIndicator","autoCompleteSuggestionType","validationState","helpText","errorText","successText","isRequired","suffix","autoFocus","onClick","e","_props$onTriggerClick","onFocus","onBlur","_ref3","_props$onBlur","leadingIcon","icon","componentName","MetaConstants","SelectInput","AutoComplete","testID","id","labelId","hasPopup","getActionListContainerRole","isPopupExpanded","activeDescendant","popupId","onInputValueChange","onKeyDown","onTriggerKeydown","interactionElement","InputChevronIcon","_triggererRef$current2","BaseDropdownInputTrigger","forwardRef"],"mappings":"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"}