@mvf/external-components 3.30.0 → 3.31.1-dev.4

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 (240) hide show
  1. package/Components/Atoms/CardButton/CardButton.js +17 -7
  2. package/Components/Atoms/CardButton/CardButton.js.map +1 -1
  3. package/Components/Atoms/CardButton/CardButtonStory.js +17 -7
  4. package/Components/Atoms/CardButton/CardButtonStory.js.map +1 -1
  5. package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.js +17 -7
  6. package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.js.map +1 -1
  7. package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js +17 -7
  8. package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js.map +1 -1
  9. package/Components/Atoms/FormControl/FormControl.js +3 -1
  10. package/Components/Atoms/FormControl/FormControl.js.map +1 -1
  11. package/Components/Atoms/FormControl/makeFormControlStyles.d.ts +3 -1
  12. package/Components/Atoms/FormControl/makeFormControlStyles.js +1 -2
  13. package/Components/Atoms/FormControl/makeFormControlStyles.js.map +1 -1
  14. package/Components/Atoms/InfoPanel/InfoPanelStory.js +17 -7
  15. package/Components/Atoms/InfoPanel/InfoPanelStory.js.map +1 -1
  16. package/Components/Atoms/Input/IInputProps.d.ts +5 -0
  17. package/Components/Atoms/Input/Input.js +20 -9
  18. package/Components/Atoms/Input/Input.js.map +1 -1
  19. package/Components/Molecules/CheckBox/CheckBox.js +17 -7
  20. package/Components/Molecules/CheckBox/CheckBox.js.map +1 -1
  21. package/Components/Molecules/DatePicker/DatePickerStory.js +17 -7
  22. package/Components/Molecules/DatePicker/DatePickerStory.js.map +1 -1
  23. package/Components/Molecules/DropDownSelect/DropDownSelectStory.js +17 -7
  24. package/Components/Molecules/DropDownSelect/DropDownSelectStory.js.map +1 -1
  25. package/Components/Molecules/IconTileCheckBox/IconTileCheckBox.test.js +17 -7
  26. package/Components/Molecules/IconTileCheckBox/IconTileCheckBox.test.js.map +1 -1
  27. package/Components/Molecules/IconTileRadioButton/IconTileRadioButton.test.js +17 -7
  28. package/Components/Molecules/IconTileRadioButton/IconTileRadioButton.test.js.map +1 -1
  29. package/Components/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js +17 -7
  30. package/Components/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js.map +1 -1
  31. package/Components/Molecules/PhoneNumberTextField/CountryDropdown.d.ts +12 -0
  32. package/Components/Molecules/PhoneNumberTextField/CountryDropdown.js +146 -0
  33. package/Components/Molecules/PhoneNumberTextField/CountryDropdown.js.map +1 -0
  34. package/Components/Molecules/PhoneNumberTextField/CountryDropdown.test.d.ts +1 -0
  35. package/Components/Molecules/PhoneNumberTextField/CountryDropdown.test.js +49 -0
  36. package/Components/Molecules/PhoneNumberTextField/CountryDropdown.test.js.map +1 -0
  37. package/Components/Molecules/PhoneNumberTextField/CountryModal.d.ts +11 -0
  38. package/Components/Molecules/PhoneNumberTextField/CountryModal.js +180 -0
  39. package/Components/Molecules/PhoneNumberTextField/CountryModal.js.map +1 -0
  40. package/Components/Molecules/PhoneNumberTextField/CountryModal.test.d.ts +1 -0
  41. package/Components/Molecules/PhoneNumberTextField/CountryModal.test.js +54 -0
  42. package/Components/Molecules/PhoneNumberTextField/CountryModal.test.js.map +1 -0
  43. package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js +5 -3
  44. package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js.map +1 -1
  45. package/Components/Molecules/PhoneNumberTextField/__tests__/PhoneNumberTextField.test.d.ts +1 -0
  46. package/Components/Molecules/PhoneNumberTextField/__tests__/PhoneNumberTextField.test.js +215 -0
  47. package/Components/Molecules/PhoneNumberTextField/__tests__/PhoneNumberTextField.test.js.map +1 -0
  48. package/Components/Molecules/PhoneNumberTextField/countryData.d.ts +13 -0
  49. package/Components/Molecules/PhoneNumberTextField/countryData.js +743 -0
  50. package/Components/Molecules/PhoneNumberTextField/countryData.js.map +1 -0
  51. package/Components/Molecules/PhoneNumberTextField/makePhoneInputStyles.d.ts +50 -0
  52. package/Components/Molecules/PhoneNumberTextField/makePhoneInputStyles.js +147 -0
  53. package/Components/Molecules/PhoneNumberTextField/makePhoneInputStyles.js.map +1 -0
  54. package/Components/Molecules/PhoneNumberTextField/phoneNumberValidation.d.ts +12 -0
  55. package/Components/Molecules/PhoneNumberTextField/phoneNumberValidation.js +66 -0
  56. package/Components/Molecules/PhoneNumberTextField/phoneNumberValidation.js.map +1 -0
  57. package/Components/Molecules/PhoneNumberTextField/phoneValidation.d.ts +12 -0
  58. package/Components/Molecules/PhoneNumberTextField/phoneValidation.js +71 -0
  59. package/Components/Molecules/PhoneNumberTextField/phoneValidation.js.map +1 -0
  60. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.d.ts +12 -0
  61. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.js +206 -0
  62. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.js.map +1 -0
  63. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.test.d.ts +1 -0
  64. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.test.js +187 -0
  65. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.test.js.map +1 -0
  66. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.d.ts +10 -0
  67. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.js +229 -0
  68. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.js.map +1 -0
  69. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.test.d.ts +1 -0
  70. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.test.js +281 -0
  71. package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.test.js.map +1 -0
  72. package/Components/Molecules/PhoneNumberTextFieldCustom/CountrySelector.d.ts +10 -0
  73. package/Components/Molecules/PhoneNumberTextFieldCustom/CountrySelector.js +32 -0
  74. package/Components/Molecules/PhoneNumberTextFieldCustom/CountrySelector.js.map +1 -0
  75. package/Components/Molecules/PhoneNumberTextFieldCustom/ErrorDisplay.d.ts +9 -0
  76. package/Components/Molecules/PhoneNumberTextFieldCustom/ErrorDisplay.js +26 -0
  77. package/Components/Molecules/PhoneNumberTextFieldCustom/ErrorDisplay.js.map +1 -0
  78. package/Components/Molecules/PhoneNumberTextFieldCustom/FlagIcon.d.ts +10 -0
  79. package/Components/Molecules/PhoneNumberTextFieldCustom/FlagIcon.js +114 -0
  80. package/Components/Molecules/PhoneNumberTextFieldCustom/FlagIcon.js.map +1 -0
  81. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.d.ts +57 -0
  82. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js +3 -0
  83. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js.map +1 -0
  84. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.d.ts +22 -0
  85. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.js +59 -0
  86. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.js.map +1 -0
  87. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.test.d.ts +1 -0
  88. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.test.js +159 -0
  89. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.test.js.map +1 -0
  90. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.d.ts +33 -0
  91. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js +3 -0
  92. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js.map +1 -0
  93. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.d.ts +7 -0
  94. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js +195 -0
  95. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js.map +1 -0
  96. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.d.ts +1 -0
  97. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js +450 -0
  98. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js.map +1 -0
  99. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.d.ts +37 -0
  100. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.js +154 -0
  101. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.js.map +1 -0
  102. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.d.ts +17 -0
  103. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.js +29 -0
  104. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.js.map +1 -0
  105. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.d.ts +11 -0
  106. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js +34 -0
  107. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js.map +1 -0
  108. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.d.ts +12 -0
  109. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.js +70 -0
  110. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.js.map +1 -0
  111. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.d.ts +32 -0
  112. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js +133 -0
  113. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js.map +1 -0
  114. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/DebouncedValidationStory.d.ts +20 -0
  115. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/DebouncedValidationStory.js +60 -0
  116. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/DebouncedValidationStory.js.map +1 -0
  117. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.d.ts +18 -0
  118. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js +18 -0
  119. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js.map +1 -0
  120. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/StrictModeStory.d.ts +18 -0
  121. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/StrictModeStory.js +101 -0
  122. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/StrictModeStory.js.map +1 -0
  123. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.d.ts +10 -0
  124. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js +138 -0
  125. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js.map +1 -0
  126. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.d.ts +12 -0
  127. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js +509 -0
  128. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js.map +1 -0
  129. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataFull.d.ts +13 -0
  130. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataFull.js +513 -0
  131. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataFull.js.map +1 -0
  132. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataOptimized.d.ts +0 -0
  133. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataOptimized.js +2 -0
  134. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataOptimized.js.map +1 -0
  135. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.d.ts +21 -0
  136. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js +33 -0
  137. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js.map +1 -0
  138. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.d.ts +15 -0
  139. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js +120 -0
  140. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js.map +1 -0
  141. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.d.ts +1 -0
  142. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js +157 -0
  143. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js.map +1 -0
  144. package/Components/Molecules/PhoneNumberTextFieldCustom/countryData.d.ts +12 -0
  145. package/Components/Molecules/PhoneNumberTextFieldCustom/countryData.js +507 -0
  146. package/Components/Molecules/PhoneNumberTextFieldCustom/countryData.js.map +1 -0
  147. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.d.ts +21 -0
  148. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js +33 -0
  149. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js.map +1 -0
  150. package/Components/Molecules/PhoneNumberTextFieldCustom/index.d.ts +10 -0
  151. package/Components/Molecules/PhoneNumberTextFieldCustom/index.js +21 -0
  152. package/Components/Molecules/PhoneNumberTextFieldCustom/index.js.map +1 -0
  153. package/Components/Molecules/PhoneNumberTextFieldCustom/makeFormControlPhoneNumberStyling.d.ts +8 -0
  154. package/Components/Molecules/PhoneNumberTextFieldCustom/makeFormControlPhoneNumberStyling.js +139 -0
  155. package/Components/Molecules/PhoneNumberTextFieldCustom/makeFormControlPhoneNumberStyling.js.map +1 -0
  156. package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.d.ts +15 -0
  157. package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.js +120 -0
  158. package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.js.map +1 -0
  159. package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.test.d.ts +1 -0
  160. package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.test.js +157 -0
  161. package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.test.js.map +1 -0
  162. package/Components/Molecules/PhoneNumberTextFieldCustom/useCountrySelector.d.ts +12 -0
  163. package/Components/Molecules/PhoneNumberTextFieldCustom/useCountrySelector.js +34 -0
  164. package/Components/Molecules/PhoneNumberTextFieldCustom/useCountrySelector.js.map +1 -0
  165. package/Components/Molecules/PhoneNumberTextFieldCustom/usePhoneNumber.d.ts +31 -0
  166. package/Components/Molecules/PhoneNumberTextFieldCustom/usePhoneNumber.js +130 -0
  167. package/Components/Molecules/PhoneNumberTextFieldCustom/usePhoneNumber.js.map +1 -0
  168. package/Components/Molecules/ScrollContainer/ScrollContainer.js +17 -7
  169. package/Components/Molecules/ScrollContainer/ScrollContainer.js.map +1 -1
  170. package/Components/Molecules/index.d.ts +1 -0
  171. package/Components/Molecules/index.js +3 -1
  172. package/Components/Molecules/index.js.map +1 -1
  173. package/Components/Organisms/RadioGroup/RadioGroup.js +17 -7
  174. package/Components/Organisms/RadioGroup/RadioGroup.js.map +1 -1
  175. package/Components/Organisms/TileLayout/IconTileCheckBoxStory.js +17 -7
  176. package/Components/Organisms/TileLayout/IconTileCheckBoxStory.js.map +1 -1
  177. package/Components/Organisms/TileLayout/IconTileRadioButtonStory.js +17 -7
  178. package/Components/Organisms/TileLayout/IconTileRadioButtonStory.js.map +1 -1
  179. package/Components/Organisms/__helpers__/Options.js +17 -7
  180. package/Components/Organisms/__helpers__/Options.js.map +1 -1
  181. package/Components/index.d.ts +1 -1
  182. package/Components/index.js +2 -1
  183. package/Components/index.js.map +1 -1
  184. package/Experiments/CRO-584/Atoms/CardButton/CardButton.js +17 -7
  185. package/Experiments/CRO-584/Atoms/CardButton/CardButton.js.map +1 -1
  186. package/Experiments/CRO-584/Atoms/CardButton/CardButtonStory.js +17 -7
  187. package/Experiments/CRO-584/Atoms/CardButton/CardButtonStory.js.map +1 -1
  188. package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.js +17 -7
  189. package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.js.map +1 -1
  190. package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js +17 -7
  191. package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js.map +1 -1
  192. package/Experiments/CRO-584/Atoms/Input/Input.js +17 -7
  193. package/Experiments/CRO-584/Atoms/Input/Input.js.map +1 -1
  194. package/Experiments/CRO-584/Molecules/CheckBox/CheckBox.js +17 -7
  195. package/Experiments/CRO-584/Molecules/CheckBox/CheckBox.js.map +1 -1
  196. package/Experiments/CRO-584/Molecules/IconTileCheckBox/IconTileCheckBox.test.js +17 -7
  197. package/Experiments/CRO-584/Molecules/IconTileCheckBox/IconTileCheckBox.test.js.map +1 -1
  198. package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButton.test.js +17 -7
  199. package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButton.test.js.map +1 -1
  200. package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js +17 -7
  201. package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js.map +1 -1
  202. package/Experiments/CRO-584/Organisms/RadioGroup/RadioGroup.js +17 -7
  203. package/Experiments/CRO-584/Organisms/RadioGroup/RadioGroup.js.map +1 -1
  204. package/Experiments/CRO-584/Organisms/TileLayout/IconTileCheckBoxStory.js +17 -7
  205. package/Experiments/CRO-584/Organisms/TileLayout/IconTileCheckBoxStory.js.map +1 -1
  206. package/Experiments/CRO-584/Organisms/TileLayout/IconTileRadioButtonStory.js +17 -7
  207. package/Experiments/CRO-584/Organisms/TileLayout/IconTileRadioButtonStory.js.map +1 -1
  208. package/Experiments/CRO-584/Organisms/__helpers__/Options.js +17 -7
  209. package/Experiments/CRO-584/Organisms/__helpers__/Options.js.map +1 -1
  210. package/Experiments/Example/Atoms/CardButton/CardButton.js +17 -7
  211. package/Experiments/Example/Atoms/CardButton/CardButton.js.map +1 -1
  212. package/Experiments/Example/Atoms/CardButton/CardButtonStory.js +17 -7
  213. package/Experiments/Example/Atoms/CardButton/CardButtonStory.js.map +1 -1
  214. package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.js +17 -7
  215. package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.js.map +1 -1
  216. package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js +17 -7
  217. package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js.map +1 -1
  218. package/Experiments/Example/Atoms/Input/Input.js +17 -7
  219. package/Experiments/Example/Atoms/Input/Input.js.map +1 -1
  220. package/Experiments/Example/Molecules/CheckBox/CheckBox.js +17 -7
  221. package/Experiments/Example/Molecules/CheckBox/CheckBox.js.map +1 -1
  222. package/Themes/apricotTheme.d.ts +172 -0
  223. package/Themes/apricotTheme.js +37 -0
  224. package/Themes/apricotTheme.js.map +1 -0
  225. package/Themes/auroraTheme.d.ts +172 -0
  226. package/Themes/auroraTheme.js +37 -0
  227. package/Themes/auroraTheme.js.map +1 -0
  228. package/Themes/index.d.ts +2 -0
  229. package/Themes/index.js +7 -1
  230. package/Themes/index.js.map +1 -1
  231. package/Themes/palettes.d.ts +54 -0
  232. package/Themes/palettes.js +4 -0
  233. package/Themes/palettes.js.map +1 -1
  234. package/Themes/themes.d.ts +288 -0
  235. package/Themes/themes.js +27 -7
  236. package/Themes/themes.js.map +1 -1
  237. package/index.d.ts +1 -1
  238. package/index.js +2 -1
  239. package/index.js.map +1 -1
  240. package/package.json +4 -1
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
29
+ /** @jsxImportSource @emotion/react */
30
+ var FormControl_1 = __importDefault(require("@mui/material/FormControl"));
31
+ var FormHelperText_1 = __importDefault(require("@mui/material/FormHelperText"));
32
+ var ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
33
+ var react_1 = require("react");
34
+ var Input_1 = __importDefault(require("../../../Components/Atoms/Input"));
35
+ var InputLabel_1 = __importDefault(require("../../../Components/Atoms/InputLabel"));
36
+ var makeFormControlPhoneNumberStyling_1 = __importDefault(require("./makeFormControlPhoneNumberStyling"));
37
+ var makeFormControlStyles_1 = __importDefault(require("../../../Components/Atoms/FormControl/makeFormControlStyles"));
38
+ var CountryDropdown_1 = __importDefault(require("./CountryDropdown"));
39
+ var CountryModal_1 = __importDefault(require("./CountryModal"));
40
+ var FlagIcon_1 = __importDefault(require("./FlagIcon"));
41
+ var usePhoneNumber_1 = require("./usePhoneNumber");
42
+ var useCountrySelector_1 = require("./useCountrySelector");
43
+ var defaultProps = {
44
+ disabled: false,
45
+ isAnswered: false,
46
+ isSafari: false,
47
+ isAutoFilledActive: false,
48
+ enableCountryChange: true,
49
+ enableCountrySearch: false,
50
+ useModalForCountrySelection: false,
51
+ label: '',
52
+ value: '',
53
+ onBlur: function () { },
54
+ onClick: function () { },
55
+ };
56
+ var PhoneNumberTextFieldRefactored = function (_a) {
57
+ var
58
+ // Core props
59
+ id = _a.id, _b = _a.value, value = _b === void 0 ? '' : _b, label = _a.label, errorMessage = _a.errorMessage, disabled = _a.disabled, placeholder = _a.placeholder,
60
+ // Country settings
61
+ initialCountry = _a.initialCountry, enableCountryChange = _a.enableCountryChange, enableCountrySearch = _a.enableCountrySearch, useModalForCountrySelection = _a.useModalForCountrySelection,
62
+ // UI state
63
+ isAnswered = _a.isAnswered, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, experimentName = _a.experimentName,
64
+ // Callbacks
65
+ onPhoneNumberChange = _a.onPhoneNumberChange, onCountryChange = _a.onCountryChange, onChange = _a.onChange, // Legacy support
66
+ // Event handlers
67
+ onBlur = _a.onBlur, onClick = _a.onClick, props = __rest(_a, ["id", "value", "label", "errorMessage", "disabled", "placeholder", "initialCountry", "enableCountryChange", "enableCountrySearch", "useModalForCountrySelection", "isAnswered", "isSafari", "isAutoFilledActive", "experimentName", "onPhoneNumberChange", "onCountryChange", "onChange", "onBlur", "onClick"]);
68
+ var countrySelectorRef = (0, react_1.useRef)(null);
69
+ var inputRef = (0, react_1.useRef)(null);
70
+ // Custom hooks for clean separation of concerns
71
+ var phoneNumber = (0, usePhoneNumber_1.usePhoneNumber)({
72
+ initialCountry: initialCountry,
73
+ initialValue: value,
74
+ });
75
+ var countrySelector = (0, useCountrySelector_1.useCountrySelector)({
76
+ enableCountryChange: enableCountryChange,
77
+ });
78
+ // Handle phone number change events
79
+ (0, react_1.useEffect)(function () {
80
+ if (phoneNumber.phoneNumber || phoneNumber.validationResult) {
81
+ var event_1 = {
82
+ id: id,
83
+ phoneNumber: phoneNumber.phoneNumber,
84
+ e164Number: phoneNumber.formattedE164,
85
+ isValid: phoneNumber.isValid,
86
+ selectedCountry: phoneNumber.selectedCountry,
87
+ validationResult: phoneNumber.validationResult,
88
+ };
89
+ onPhoneNumberChange === null || onPhoneNumberChange === void 0 ? void 0 : onPhoneNumberChange(event_1);
90
+ onChange === null || onChange === void 0 ? void 0 : onChange(event_1); // Legacy support
91
+ }
92
+ }, [
93
+ id,
94
+ phoneNumber.phoneNumber,
95
+ phoneNumber.formattedE164,
96
+ phoneNumber.isValid,
97
+ phoneNumber.selectedCountry,
98
+ phoneNumber.validationResult,
99
+ onPhoneNumberChange,
100
+ onChange,
101
+ ]);
102
+ // Handle input changes
103
+ var handlePhoneChange = (0, react_1.useCallback)(function (params) {
104
+ phoneNumber.setPhoneNumber(params.value);
105
+ }, [phoneNumber]);
106
+ // Handle country changes
107
+ var handleCountryChange = (0, react_1.useCallback)(function (country) {
108
+ var previousCountry = phoneNumber.selectedCountry;
109
+ phoneNumber.setSelectedCountry(country);
110
+ // Call country change callback
111
+ var event = {
112
+ id: id,
113
+ selectedCountry: country,
114
+ previousCountry: previousCountry,
115
+ };
116
+ onCountryChange === null || onCountryChange === void 0 ? void 0 : onCountryChange(event);
117
+ }, [phoneNumber, id, onCountryChange]);
118
+ // Determine error state
119
+ var shouldShowError = errorMessage ||
120
+ (phoneNumber.validationResult && !phoneNumber.validationResult.isValid && phoneNumber.phoneNumber.length > 0);
121
+ var finalErrorMessage = errorMessage || phoneNumber.errorMessage;
122
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(FormControl_1.default, __assign({ variant: "standard", error: !!shouldShowError, fullWidth: true, css: [
123
+ (0, makeFormControlPhoneNumberStyling_1.default)({
124
+ isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false,
125
+ isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false,
126
+ isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false,
127
+ hasError: !!shouldShowError,
128
+ }),
129
+ (0, makeFormControlStyles_1.default)({
130
+ isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false,
131
+ isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false
132
+ }),
133
+ ], sx: { position: 'relative' } }, { children: [label && ((0, jsx_runtime_1.jsx)(InputLabel_1.default, __assign({ isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false, htmlFor: id, shrink: true, experimentName: experimentName }, { children: label }))), (0, jsx_runtime_1.jsxs)("div", __assign({ className: "phone-input-container" }, { children: [(0, jsx_runtime_1.jsxs)("div", __assign({ ref: countrySelectorRef, className: "country-selector", onClick: enableCountryChange ? countrySelector.handleCountrySelectClick : undefined, style: {
134
+ display: 'flex',
135
+ alignItems: 'center',
136
+ padding: '8px 12px',
137
+ cursor: enableCountryChange ? 'pointer' : 'default',
138
+ minWidth: '80px',
139
+ justifyContent: 'center',
140
+ }, role: enableCountryChange ? 'button' : undefined, tabIndex: enableCountryChange ? 0 : undefined, "aria-label": enableCountryChange
141
+ ? "Select country, currently ".concat(phoneNumber.selectedCountry.name)
142
+ : "Country: ".concat(phoneNumber.selectedCountry.name), onKeyDown: countrySelector.handleKeyDown }, { children: [(0, jsx_runtime_1.jsx)(FlagIcon_1.default, { countryCode: phoneNumber.selectedCountry.code, style: { marginRight: '8px' } }), enableCountryChange && ((0, jsx_runtime_1.jsx)(ExpandMore_1.default, { style: {
143
+ fontSize: '16px',
144
+ color: 'rgba(0, 0, 0, 1)',
145
+ marginLeft: '4px',
146
+ transform: countrySelector.isCountryMenuOpen
147
+ ? 'rotate(180deg)'
148
+ : 'rotate(0deg)',
149
+ transition: 'transform 0.1s ease-in-out',
150
+ } }))] })), (0, jsx_runtime_1.jsx)(Input_1.default, __assign({ error: !!shouldShowError, id: id, onChange: handlePhoneChange, isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false, value: phoneNumber.phoneNumber, isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false, isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false, experimentName: experimentName, type: "tel", placeholder: placeholder || phoneNumber.selectedCountry.example, inputRef: inputRef, disabled: disabled, onBlur: onBlur, onClick: onClick }, props))] })), finalErrorMessage && ((0, jsx_runtime_1.jsx)(FormHelperText_1.default, { children: finalErrorMessage }))] })), enableCountryChange && useModalForCountrySelection ? ((0, jsx_runtime_1.jsx)(CountryModal_1.default, { selectedCountry: phoneNumber.selectedCountry, onCountryChange: handleCountryChange, enableCountrySearch: enableCountrySearch, open: countrySelector.isCountryMenuOpen, onClose: countrySelector.closeCountryMenu })) : ((0, jsx_runtime_1.jsx)(CountryDropdown_1.default, { selectedCountry: phoneNumber.selectedCountry, onCountryChange: handleCountryChange, enableCountrySearch: enableCountrySearch, anchorEl: countrySelectorRef.current, open: countrySelector.isCountryMenuOpen, onClose: countrySelector.closeCountryMenu }))] }));
151
+ };
152
+ PhoneNumberTextFieldRefactored.defaultProps = defaultProps;
153
+ exports.default = PhoneNumberTextFieldRefactored;
154
+ //# sourceMappingURL=PhoneNumberTextFieldRefactored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhoneNumberTextFieldRefactored.js","sourceRoot":"","sources":["../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ type StoryType = React.FunctionComponent<{
3
+ disabled: boolean;
4
+ errorMessage: string;
5
+ isAnswered: boolean;
6
+ label: string;
7
+ placeholder: string;
8
+ type: 'tel' | 'text';
9
+ parentContainerMaxWidth: number;
10
+ isSafari: boolean;
11
+ isAutoFilledActive: boolean;
12
+ enableCountryChange: boolean;
13
+ enableCountrySearch: boolean;
14
+ useModalForCountrySelection: boolean;
15
+ }>;
16
+ declare const PhoneNumberTextFieldStory: StoryType;
17
+ export default PhoneNumberTextFieldStory;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
18
+ var addon_actions_1 = require("@storybook/addon-actions");
19
+ var PhoneNumberTextField_1 = __importDefault(require("./PhoneNumberTextField"));
20
+ var handleChange = function (_a) {
21
+ var id = _a.id, value = _a.value;
22
+ (0, addon_actions_1.action)('Input Change')({ phone: value });
23
+ };
24
+ var PhoneNumberTextFieldStory = function (_a) {
25
+ var disabled = _a.disabled, errorMessage = _a.errorMessage, type = _a.type, isAnswered = _a.isAnswered, label = _a.label, placeholder = _a.placeholder, parentContainerMaxWidth = _a.parentContainerMaxWidth, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, enableCountryChange = _a.enableCountryChange, enableCountrySearch = _a.enableCountrySearch, useModalForCountrySelection = _a.useModalForCountrySelection;
26
+ return ((0, jsx_runtime_1.jsx)("div", __assign({ style: { maxWidth: parentContainerMaxWidth } }, { children: (0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { disabled: disabled, errorMessage: errorMessage, onChange: handleChange, type: type, id: "id", isAnswered: isAnswered, label: label, placeholder: placeholder, isSafari: isSafari, isAutoFilledActive: isAutoFilledActive, experimentName: "default", enableCountryChange: enableCountryChange, enableCountrySearch: enableCountrySearch, useModalForCountrySelection: useModalForCountrySelection }) })));
27
+ };
28
+ exports.default = PhoneNumberTextFieldStory;
29
+ //# sourceMappingURL=PhoneNumberTextFieldStory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhoneNumberTextFieldStory.js","sourceRoot":"","sources":["../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAkD;AAGlD,gFAA0D;AAiB1D,IAAM,YAAY,GAAG,UAAC,EAAkD;QAAhD,EAAE,QAAA,EAAE,KAAK,WAAA;IAC/B,IAAA,sBAAM,EAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,IAAM,yBAAyB,GAAc,UAAC,EAa7C;QAZC,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,IAAI,UAAA,EACJ,UAAU,gBAAA,EACV,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,uBAAuB,6BAAA,EACvB,QAAQ,cAAA,EACR,kBAAkB,wBAAA,EAClB,mBAAmB,yBAAA,EACnB,mBAAmB,yBAAA,EACnB,2BAA2B,iCAAA;IAE3B,OAAO,CACL,yCAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE,gBAC/C,uBAAC,8BAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,IAAI,EACV,EAAE,EAAC,IAAI,EACP,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAC,SAAS,EACxB,mBAAmB,EAAE,mBAAmB,EACxC,mBAAmB,EAAE,mBAAmB,EACxC,2BAA2B,EAAE,2BAA2B,GACxD,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,yBAAyB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface UseCountrySelectorOptions {
2
+ enableCountryChange?: boolean;
3
+ }
4
+ export interface UseCountrySelectorReturn {
5
+ isCountryMenuOpen: boolean;
6
+ openCountryMenu: () => void;
7
+ closeCountryMenu: () => void;
8
+ handleCountrySelectClick: () => void;
9
+ handleKeyDown: (e: React.KeyboardEvent) => void;
10
+ }
11
+ export declare const useCountrySelector: ({ enableCountryChange, }?: UseCountrySelectorOptions) => UseCountrySelectorReturn;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useCountrySelector = void 0;
4
+ var react_1 = require("react");
5
+ var useCountrySelector = function (_a) {
6
+ var _b = _a === void 0 ? {} : _a, _c = _b.enableCountryChange, enableCountryChange = _c === void 0 ? true : _c;
7
+ var _d = (0, react_1.useState)(false), isCountryMenuOpen = _d[0], setIsCountryMenuOpen = _d[1];
8
+ var openCountryMenu = (0, react_1.useCallback)(function () {
9
+ if (enableCountryChange) {
10
+ setIsCountryMenuOpen(true);
11
+ }
12
+ }, [enableCountryChange]);
13
+ var closeCountryMenu = (0, react_1.useCallback)(function () {
14
+ setIsCountryMenuOpen(false);
15
+ }, []);
16
+ var handleCountrySelectClick = (0, react_1.useCallback)(function () {
17
+ openCountryMenu();
18
+ }, [openCountryMenu]);
19
+ var handleKeyDown = (0, react_1.useCallback)(function (e) {
20
+ if (enableCountryChange && (e.key === 'Enter' || e.key === ' ')) {
21
+ e.preventDefault();
22
+ openCountryMenu();
23
+ }
24
+ }, [enableCountryChange, openCountryMenu]);
25
+ return {
26
+ isCountryMenuOpen: isCountryMenuOpen,
27
+ openCountryMenu: openCountryMenu,
28
+ closeCountryMenu: closeCountryMenu,
29
+ handleCountrySelectClick: handleCountrySelectClick,
30
+ handleKeyDown: handleKeyDown,
31
+ };
32
+ };
33
+ exports.useCountrySelector = useCountrySelector;
34
+ //# sourceMappingURL=useCountrySelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCountrySelector.js","sourceRoot":"","sources":["../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.ts"],"names":[],"mappings":";;;AAAA,+BAA8C;AAcvC,IAAM,kBAAkB,GAAG,UAAC,EAEF;QAFE,qBAEJ,EAAE,KAAA,EAD/B,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAA;IAEpB,IAAA,KAA4C,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAA1D,iBAAiB,QAAA,EAAE,oBAAoB,QAAmB,CAAC;IAElE,IAAM,eAAe,GAAG,IAAA,mBAAW,EAAC;QAClC,IAAI,mBAAmB,EAAE,CAAC;YACxB,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,IAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC;QACnC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,wBAAwB,GAAG,IAAA,mBAAW,EAAC;QAC3C,eAAe,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,CAAsB;QACrB,IAAI,mBAAmB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YAChE,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,mBAAmB,EAAE,eAAe,CAAC,CACvC,CAAC;IAEF,OAAO;QACL,iBAAiB,mBAAA;QACjB,eAAe,iBAAA;QACf,gBAAgB,kBAAA;QAChB,wBAAwB,0BAAA;QACxB,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,kBAAkB,sBAoC7B"}
@@ -0,0 +1,12 @@
1
+ import { PhoneValidationResult } from '../utils/phoneValidation';
2
+ export interface DebouncedValidationOptions {
3
+ validationFunction: () => PhoneValidationResult | null;
4
+ delay?: number;
5
+ immediate?: boolean;
6
+ }
7
+ export interface DebouncedValidationReturn {
8
+ debouncedResult: PhoneValidationResult | null;
9
+ isValidating: boolean;
10
+ validateNow: () => void;
11
+ }
12
+ export declare const useDebouncedValidation: ({ validationFunction, delay, immediate, }: DebouncedValidationOptions) => DebouncedValidationReturn;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDebouncedValidation = void 0;
4
+ var react_1 = require("react");
5
+ var useDebouncedValidation = function (_a) {
6
+ var validationFunction = _a.validationFunction, _b = _a.delay, delay = _b === void 0 ? 300 : _b, _c = _a.immediate, immediate = _c === void 0 ? false : _c;
7
+ var _d = (0, react_1.useState)(null), debouncedResult = _d[0], setDebouncedResult = _d[1];
8
+ var _e = (0, react_1.useState)(false), isValidating = _e[0], setIsValidating = _e[1];
9
+ var timeoutRef = (0, react_1.useRef)(null);
10
+ var isFirstCall = (0, react_1.useRef)(true);
11
+ var validationFunctionRef = (0, react_1.useRef)(validationFunction);
12
+ // Update the ref when validationFunction changes instead of recreating callbacks
13
+ (0, react_1.useEffect)(function () {
14
+ validationFunctionRef.current = validationFunction;
15
+ }, [validationFunction]);
16
+ var validateNow = (0, react_1.useCallback)(function () {
17
+ if (timeoutRef.current) {
18
+ clearTimeout(timeoutRef.current);
19
+ timeoutRef.current = null;
20
+ }
21
+ setIsValidating(false);
22
+ var result = validationFunctionRef.current();
23
+ setDebouncedResult(result);
24
+ }, []); // No dependencies since we use ref
25
+ var debouncedValidate = (0, react_1.useCallback)(function () {
26
+ if (timeoutRef.current) {
27
+ clearTimeout(timeoutRef.current);
28
+ }
29
+ // If it's the first call and immediate validation is enabled, validate right away
30
+ if (isFirstCall.current && immediate) {
31
+ isFirstCall.current = false;
32
+ validateNow();
33
+ return;
34
+ }
35
+ isFirstCall.current = false;
36
+ setIsValidating(true);
37
+ timeoutRef.current = setTimeout(function () {
38
+ validateNow();
39
+ }, delay);
40
+ }, [delay, immediate, validateNow]);
41
+ // Only trigger validation when the validation function actually changes
42
+ // Use a ref to track the previous function to avoid infinite loops
43
+ var prevValidationFunctionRef = (0, react_1.useRef)(validationFunction);
44
+ (0, react_1.useEffect)(function () {
45
+ // Only re-validate if the function reference actually changed
46
+ if (prevValidationFunctionRef.current !== validationFunction) {
47
+ prevValidationFunctionRef.current = validationFunction;
48
+ debouncedValidate();
49
+ }
50
+ return function () {
51
+ if (timeoutRef.current) {
52
+ clearTimeout(timeoutRef.current);
53
+ }
54
+ };
55
+ }, [validationFunction, debouncedValidate]);
56
+ (0, react_1.useEffect)(function () {
57
+ return function () {
58
+ if (timeoutRef.current) {
59
+ clearTimeout(timeoutRef.current);
60
+ }
61
+ };
62
+ }, []);
63
+ return {
64
+ debouncedResult: debouncedResult,
65
+ isValidating: isValidating,
66
+ validateNow: validateNow,
67
+ };
68
+ };
69
+ exports.useDebouncedValidation = useDebouncedValidation;
70
+ //# sourceMappingURL=useDebouncedValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedValidation.js","sourceRoot":"","sources":["../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.ts"],"names":[],"mappings":";;;AAAA,+BAAiE;AAe1D,IAAM,sBAAsB,GAAG,UAAC,EAIV;QAH3B,kBAAkB,wBAAA,EAClB,aAAW,EAAX,KAAK,mBAAG,GAAG,KAAA,EACX,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA;IAEX,IAAA,KACJ,IAAA,gBAAQ,EAA+B,IAAI,CAAC,EADvC,eAAe,QAAA,EAAE,kBAAkB,QACI,CAAC;IACzC,IAAA,KAAkC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IACxD,IAAM,UAAU,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAC;IACvD,IAAM,WAAW,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IACjC,IAAM,qBAAqB,GAAG,IAAA,cAAM,EAAC,kBAAkB,CAAC,CAAC;IAEzD,iFAAiF;IACjF,IAAA,iBAAS,EAAC;QACR,qBAAqB,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACrD,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,IAAM,WAAW,GAAG,IAAA,mBAAW,EAAC;QAC9B,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACjC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;SAC3B;QAED,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,IAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,CAAC;QAC/C,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mCAAmC;IAE3C,IAAM,iBAAiB,GAAG,IAAA,mBAAW,EAAC;QACpC,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAClC;QAED,kFAAkF;QAClF,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;YACpC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,WAAW,EAAE,CAAC;YACd,OAAO;SACR;QAED,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC;YAC9B,WAAW,EAAE,CAAC;QAChB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEpC,wEAAwE;IACxE,mEAAmE;IACnE,IAAM,yBAAyB,GAAG,IAAA,cAAM,EAAC,kBAAkB,CAAC,CAAC;IAC7D,IAAA,iBAAS,EAAC;QACR,8DAA8D;QAC9D,IAAI,yBAAyB,CAAC,OAAO,KAAK,kBAAkB,EAAE;YAC5D,yBAAyB,CAAC,OAAO,GAAG,kBAAkB,CAAC;YACvD,iBAAiB,EAAE,CAAC;SACrB;QAED,OAAO;YACL,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAClC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE5C,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAClC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,eAAe,iBAAA;QACf,YAAY,cAAA;QACZ,WAAW,aAAA;KACZ,CAAC;AACJ,CAAC,CAAC;AA9EW,QAAA,sBAAsB,0BA8EjC"}
@@ -0,0 +1,32 @@
1
+ import { CountryData } from '../utils/countryData';
2
+ import { PhoneValidationResult } from '../utils/phoneValidation';
3
+ export interface UsePhoneNumberOptions {
4
+ initialCountry?: string;
5
+ initialValue?: string;
6
+ onPhoneNumberChange?: (params: {
7
+ phoneNumber: string;
8
+ e164Number: string;
9
+ }) => void;
10
+ onCountryChange?: (params: {
11
+ selectedCountry: CountryData;
12
+ previousCountry: CountryData;
13
+ }) => void;
14
+ onValidationChange?: (params: {
15
+ isValid: boolean;
16
+ validationResult: PhoneValidationResult;
17
+ phoneNumber: string;
18
+ }) => void;
19
+ }
20
+ export interface UsePhoneNumberReturn {
21
+ phoneNumber: string;
22
+ selectedCountry: CountryData;
23
+ validationResult: PhoneValidationResult | null;
24
+ countries: CountryData[];
25
+ setPhoneNumber: (value: string) => void;
26
+ setSelectedCountry: (country: CountryData) => void;
27
+ isValid: boolean;
28
+ errorMessage?: string;
29
+ formattedE164: string;
30
+ phoneNumberType?: string;
31
+ }
32
+ export declare const usePhoneNumber: ({ initialCountry, initialValue, }?: Omit<UsePhoneNumberOptions, "onPhoneNumberChange" | "onCountryChange" | "onValidationChange">) => UsePhoneNumberReturn;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePhoneNumber = void 0;
4
+ var react_1 = require("react");
5
+ var countryData_1 = require("../utils/countryData");
6
+ var phoneValidation_1 = require("../utils/phoneValidation");
7
+ var usePhoneNumber = function (_a) {
8
+ var _b, _c;
9
+ var _d = _a === void 0 ? {} : _a, initialCountry = _d.initialCountry, _e = _d.initialValue, initialValue = _e === void 0 ? '' : _e;
10
+ // Memoize countries data to prevent unnecessary recalculations
11
+ var countries = (0, react_1.useMemo)(function () { return (0, countryData_1.getCountryData)(); }, []);
12
+ // Initialize selected country
13
+ var _f = (0, react_1.useState)(function () {
14
+ if (initialCountry) {
15
+ var initialCountryData = countries.find(function (c) { return c.code === initialCountry; });
16
+ if (initialCountryData)
17
+ return initialCountryData;
18
+ }
19
+ return countries[0]; // Fallback to first country
20
+ }), selectedCountry = _f[0], setSelectedCountryState = _f[1];
21
+ var _g = (0, react_1.useState)(''), phoneNumber = _g[0], setPhoneNumberState = _g[1];
22
+ var _h = (0, react_1.useState)(null), validationResult = _h[0], setValidationResult = _h[1];
23
+ var previousValueRef = (0, react_1.useRef)('');
24
+ // Process phone number with country-specific formatting and validation
25
+ var processPhoneNumber = (0, react_1.useCallback)(function (phoneValue, countryCode, useNationalFormat) {
26
+ if (useNationalFormat === void 0) { useNationalFormat = true; }
27
+ var validation = (0, phoneValidation_1.validatePhoneNumber)(phoneValue, countryCode);
28
+ if (useNationalFormat && validation.nationalFormatted) {
29
+ return { formattedNumber: validation.nationalFormatted, validation: validation };
30
+ }
31
+ var formattedNumber = (0, phoneValidation_1.formatAsYouType)(phoneValue, countryCode);
32
+ return { formattedNumber: formattedNumber, validation: validation };
33
+ }, []);
34
+ // Update country if different from current
35
+ var updateCountryIfDifferent = (0, react_1.useCallback)(function (detectedCountryCode) {
36
+ var detectedCountry = countries.find(function (c) { return c.code === detectedCountryCode; });
37
+ if (detectedCountry && detectedCountry.code !== selectedCountry.code) {
38
+ return detectedCountry;
39
+ }
40
+ return null;
41
+ }, [countries, selectedCountry.code]);
42
+ // Handle external value changes (controlled component behavior)
43
+ (0, react_1.useEffect)(function () {
44
+ if (previousValueRef.current === initialValue)
45
+ return;
46
+ previousValueRef.current = initialValue || '';
47
+ if (!initialValue) {
48
+ setPhoneNumberState('');
49
+ setValidationResult(null);
50
+ return;
51
+ }
52
+ // Try to extract country code from the input value
53
+ var detectedCountryCode = (0, phoneValidation_1.extractCountryCodeFromNumber)(initialValue, selectedCountry.code);
54
+ if (detectedCountryCode) {
55
+ // Update country if different
56
+ var newCountry = updateCountryIfDifferent(detectedCountryCode);
57
+ if (newCountry) {
58
+ setSelectedCountryState(newCountry);
59
+ }
60
+ // Process with detected country
61
+ var _a = processPhoneNumber(initialValue, detectedCountryCode, true), formattedNumber = _a.formattedNumber, validation = _a.validation;
62
+ setPhoneNumberState(formattedNumber);
63
+ setValidationResult(validation);
64
+ }
65
+ else {
66
+ // Use current selected country
67
+ var _b = processPhoneNumber(initialValue, selectedCountry.code, false), formattedNumber = _b.formattedNumber, validation = _b.validation;
68
+ setPhoneNumberState(formattedNumber);
69
+ setValidationResult(validation);
70
+ }
71
+ }, [
72
+ initialValue,
73
+ selectedCountry.code,
74
+ processPhoneNumber,
75
+ updateCountryIfDifferent,
76
+ ]);
77
+ // Handle phone number changes
78
+ var setPhoneNumber = (0, react_1.useCallback)(function (newPhoneNumber) {
79
+ // Format as you type
80
+ var formattedNumber = (0, phoneValidation_1.formatAsYouType)(newPhoneNumber, selectedCountry.code);
81
+ setPhoneNumberState(formattedNumber);
82
+ // Validate with auto-detection first, then fallback to selected country
83
+ var validation = (0, phoneValidation_1.validatePhoneNumber)(formattedNumber);
84
+ if (!validation.countryCode || !validation.isValid) {
85
+ validation = (0, phoneValidation_1.validatePhoneNumber)(formattedNumber, selectedCountry.code);
86
+ }
87
+ setValidationResult(validation);
88
+ // Auto-update country if detected
89
+ if (validation.countryCode &&
90
+ validation.countryCode !== selectedCountry.code) {
91
+ var detectedCountry = countries.find(function (c) { return c.code === validation.countryCode; });
92
+ if (detectedCountry) {
93
+ setSelectedCountryState(detectedCountry);
94
+ }
95
+ }
96
+ }, [selectedCountry, countries]);
97
+ // Handle country changes
98
+ var setSelectedCountry = (0, react_1.useCallback)(function (country) {
99
+ setSelectedCountryState(country);
100
+ // Reformat existing phone number with new country's rules
101
+ if (phoneNumber) {
102
+ var reformattedNumber = (0, phoneValidation_1.formatAsYouType)(phoneNumber, country.code);
103
+ setPhoneNumberState(reformattedNumber);
104
+ // Re-validate with new country
105
+ var validation = (0, phoneValidation_1.validatePhoneNumber)(reformattedNumber, country.code);
106
+ setValidationResult(validation);
107
+ // Note: callbacks will be triggered by the main component useEffect
108
+ }
109
+ else {
110
+ setValidationResult(null);
111
+ }
112
+ // Note: callbacks will be triggered by the main component useEffect
113
+ }, [selectedCountry, phoneNumber]);
114
+ return {
115
+ // State
116
+ phoneNumber: phoneNumber,
117
+ selectedCountry: selectedCountry,
118
+ validationResult: validationResult,
119
+ countries: countries,
120
+ // Actions
121
+ setPhoneNumber: setPhoneNumber,
122
+ setSelectedCountry: setSelectedCountry,
123
+ // Computed
124
+ isValid: (_b = validationResult === null || validationResult === void 0 ? void 0 : validationResult.isValid) !== null && _b !== void 0 ? _b : false,
125
+ errorMessage: validationResult === null || validationResult === void 0 ? void 0 : validationResult.errorMessage,
126
+ formattedE164: (_c = validationResult === null || validationResult === void 0 ? void 0 : validationResult.formattedNumber) !== null && _c !== void 0 ? _c : '',
127
+ phoneNumberType: (validationResult === null || validationResult === void 0 ? void 0 : validationResult.phoneNumberType) !== undefined
128
+ ? String(validationResult.phoneNumberType)
129
+ : undefined,
130
+ };
131
+ };
132
+ exports.usePhoneNumber = usePhoneNumber;
133
+ //# sourceMappingURL=usePhoneNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePhoneNumber.js","sourceRoot":"","sources":["../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ type DebouncedValidationStoryType = React.FunctionComponent<{
3
+ disabled: boolean;
4
+ errorMessage?: string;
5
+ isAnswered: boolean;
6
+ label: string;
7
+ placeholder?: string;
8
+ type: 'tel' | 'text';
9
+ parentContainerMaxWidth: number;
10
+ isSafari: boolean;
11
+ isAutoFilledActive: boolean;
12
+ enableCountryChange: boolean;
13
+ enableCountrySearch: boolean;
14
+ useModalForCountrySelection: boolean;
15
+ enableDebouncedValidation: boolean;
16
+ validationDelay: number;
17
+ strictMode?: boolean;
18
+ }>;
19
+ declare const DebouncedValidationStory: DebouncedValidationStoryType;
20
+ export default DebouncedValidationStory;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
18
+ var addon_actions_1 = require("@storybook/addon-actions");
19
+ var react_1 = require("react");
20
+ var PhoneNumberTextField_1 = __importDefault(require("../../PhoneNumberTextField"));
21
+ var DebouncedValidationStory = function (_a) {
22
+ var disabled = _a.disabled, errorMessage = _a.errorMessage, type = _a.type, isAnswered = _a.isAnswered, label = _a.label, placeholder = _a.placeholder, parentContainerMaxWidth = _a.parentContainerMaxWidth, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, enableCountryChange = _a.enableCountryChange, enableCountrySearch = _a.enableCountrySearch, useModalForCountrySelection = _a.useModalForCountrySelection, enableDebouncedValidation = _a.enableDebouncedValidation, validationDelay = _a.validationDelay, strictMode = _a.strictMode;
23
+ var _b = (0, react_1.useState)(''), phoneValue = _b[0], setPhoneValue = _b[1];
24
+ var _c = (0, react_1.useState)({
25
+ isValid: false,
26
+ }), validationInfo = _c[0], setValidationInfo = _c[1];
27
+ var handlePhoneNumberChange = function (params) {
28
+ (0, addon_actions_1.action)('Phone Number Change')(params);
29
+ setPhoneValue(params.phoneNumber);
30
+ };
31
+ var handleValidationChange = function (params) {
32
+ (0, addon_actions_1.action)('Validation Change')(params);
33
+ setValidationInfo({
34
+ isValid: params.isValid,
35
+ errorMessage: params.validationResult.errorMessage,
36
+ isValidating: false,
37
+ });
38
+ };
39
+ var handleFormattedValueChange = function (params) {
40
+ (0, addon_actions_1.action)('Formatted Value Change')(params);
41
+ };
42
+ var handleCountryChange = function (params) {
43
+ (0, addon_actions_1.action)('Country Change')(params);
44
+ };
45
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { maxWidth: parentContainerMaxWidth, padding: '20px' } }, { children: [(0, jsx_runtime_1.jsxs)("div", __assign({ style: {
46
+ backgroundColor: '#f5f5f5',
47
+ padding: '16px',
48
+ borderRadius: '8px',
49
+ marginBottom: '20px',
50
+ fontFamily: 'monospace',
51
+ } }, { children: [(0, jsx_runtime_1.jsx)("h3", __assign({ style: { margin: '0 0 12px 0', color: '#333' } }, { children: "Debounced Validation Demo" })), (0, jsx_runtime_1.jsxs)("div", __assign({ style: { fontSize: '14px', lineHeight: '1.5' } }, { children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Debounced Validation:" }), ' ', enableDebouncedValidation ? 'Enabled' : 'Disabled'] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Validation Delay:" }), " ", validationDelay, "ms"] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Current Value:" }), " \"", phoneValue, "\""] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Is Valid:" }), ' ', (0, jsx_runtime_1.jsx)("span", __assign({ style: { color: validationInfo.isValid ? 'green' : 'red' } }, { children: validationInfo.isValid ? 'Yes' : 'No' }))] }), validationInfo.errorMessage && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Error:" }), ' ', (0, jsx_runtime_1.jsx)("span", __assign({ style: { color: 'red' } }, { children: validationInfo.errorMessage }))] })), validationInfo.isValidating && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Status:" }), ' ', (0, jsx_runtime_1.jsx)("span", __assign({ style: { color: 'orange' } }, { children: "Validating..." }))] }))] }))] })), (0, jsx_runtime_1.jsxs)("div", __assign({ style: {
52
+ backgroundColor: '#e3f2fd',
53
+ padding: '16px',
54
+ borderRadius: '8px',
55
+ marginBottom: '20px',
56
+ fontSize: '14px',
57
+ } }, { children: [(0, jsx_runtime_1.jsx)("h4", __assign({ style: { margin: '0 0 8px 0', color: '#1976d2' } }, { children: "How to Test Debounced Validation:" })), (0, jsx_runtime_1.jsxs)("ol", __assign({ style: { margin: 0, paddingLeft: '20px' } }, { children: [(0, jsx_runtime_1.jsx)("li", { children: "Type quickly in the phone field - notice validation is delayed" }), (0, jsx_runtime_1.jsx)("li", { children: "When debounced validation is enabled, you'll see \"Validating...\" during the delay" }), (0, jsx_runtime_1.jsx)("li", { children: "Try typing: \"+1555555\" then pause to see validation kick in" }), (0, jsx_runtime_1.jsx)("li", { children: "Compare behavior with debounced validation enabled vs disabled" }), (0, jsx_runtime_1.jsx)("li", { children: "Check the Actions panel to see when callbacks are fired" })] }))] })), (0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { disabled: disabled, errorMessage: errorMessage, onPhoneNumberChange: handlePhoneNumberChange, onValidationChange: handleValidationChange, onFormattedValueChange: handleFormattedValueChange, onCountryChange: handleCountryChange, type: type, id: "debounced-phone-input", isAnswered: isAnswered, label: label, placeholder: placeholder, value: phoneValue, isSafari: isSafari, isAutoFilledActive: isAutoFilledActive, experimentName: "debounced-validation-story", enableCountryChange: enableCountryChange, enableCountrySearch: enableCountrySearch, useModalForCountrySelection: useModalForCountrySelection, enableDebouncedValidation: enableDebouncedValidation, validationDelay: validationDelay, strictMode: strictMode })] })));
58
+ };
59
+ exports.default = DebouncedValidationStory;
60
+ //# sourceMappingURL=DebouncedValidationStory.js.map