@mvf/external-components 3.31.1-dev.7 → 3.31.1-dev.8

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 (99) hide show
  1. package/Components/Atoms/FormControl/FormControl.js +3 -1
  2. package/Components/Atoms/FormControl/FormControl.js.map +1 -1
  3. package/Components/Atoms/FormControl/makeFormControlStyles.d.ts +3 -1
  4. package/Components/Atoms/FormControl/makeFormControlStyles.js +1 -2
  5. package/Components/Atoms/FormControl/makeFormControlStyles.js.map +1 -1
  6. package/Components/Atoms/Input/IInputProps.d.ts +5 -0
  7. package/Components/Atoms/Input/Input.js +3 -2
  8. package/Components/Atoms/Input/Input.js.map +1 -1
  9. package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js +5 -3
  10. package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js.map +1 -1
  11. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.d.ts +57 -0
  12. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js +3 -0
  13. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js.map +1 -0
  14. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.d.ts +33 -0
  15. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js +3 -0
  16. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js.map +1 -0
  17. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.d.ts +7 -0
  18. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js +216 -0
  19. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js.map +1 -0
  20. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.d.ts +1 -0
  21. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js +596 -0
  22. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js.map +1 -0
  23. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.d.ts +7 -0
  24. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.js +28 -0
  25. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.js.map +1 -0
  26. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.d.ts +8 -0
  27. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js +17 -0
  28. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js.map +1 -0
  29. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.d.ts +22 -0
  30. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js +56 -0
  31. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js.map +1 -0
  32. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.d.ts +1 -0
  33. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js +159 -0
  34. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js.map +1 -0
  35. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.d.ts +12 -0
  36. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js +206 -0
  37. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js.map +1 -0
  38. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.d.ts +1 -0
  39. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js +187 -0
  40. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js.map +1 -0
  41. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.d.ts +10 -0
  42. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js +229 -0
  43. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js.map +1 -0
  44. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.d.ts +1 -0
  45. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js +281 -0
  46. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js.map +1 -0
  47. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.d.ts +11 -0
  48. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js +34 -0
  49. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js.map +1 -0
  50. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.d.ts +10 -0
  51. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js +114 -0
  52. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js.map +1 -0
  53. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useAutofillDetection.d.ts +10 -0
  54. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useAutofillDetection.js +105 -0
  55. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useAutofillDetection.js.map +1 -0
  56. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.d.ts +12 -0
  57. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js +36 -0
  58. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js.map +1 -0
  59. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.d.ts +38 -0
  60. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js +181 -0
  61. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js.map +1 -0
  62. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.d.ts +21 -0
  63. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js +41 -0
  64. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js.map +1 -0
  65. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.d.ts +10 -0
  66. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js +144 -0
  67. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js.map +1 -0
  68. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.d.ts +12 -0
  69. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js +509 -0
  70. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js.map +1 -0
  71. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.d.ts +21 -0
  72. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js +33 -0
  73. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js.map +1 -0
  74. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.d.ts +15 -0
  75. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js +130 -0
  76. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js.map +1 -0
  77. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.d.ts +1 -0
  78. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js +157 -0
  79. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js.map +1 -0
  80. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.d.ts +21 -0
  81. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js +33 -0
  82. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js.map +1 -0
  83. package/Components/Molecules/PhoneNumberTextFieldCustom/index.d.ts +10 -0
  84. package/Components/Molecules/PhoneNumberTextFieldCustom/index.js +21 -0
  85. package/Components/Molecules/PhoneNumberTextFieldCustom/index.js.map +1 -0
  86. package/Components/Molecules/ScrollContainer/ScrollContainer.js +0 -25
  87. package/Components/Molecules/ScrollContainer/ScrollContainer.js.map +1 -1
  88. package/Components/Molecules/index.d.ts +1 -0
  89. package/Components/Molecules/index.js +3 -1
  90. package/Components/Molecules/index.js.map +1 -1
  91. package/Components/index.d.ts +1 -1
  92. package/Components/index.js +2 -1
  93. package/Components/index.js.map +1 -1
  94. package/Themes/auroraTheme.js +1 -1
  95. package/Themes/auroraTheme.js.map +1 -1
  96. package/index.d.ts +1 -1
  97. package/index.js +2 -1
  98. package/index.js.map +1 -1
  99. package/package.json +3 -1
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
4
+ var react_1 = require("react");
5
+ var useAutofillDetection_1 = require("../../hooks/useAutofillDetection");
6
+ /**
7
+ * Demo component to showcase the autofill detection functionality
8
+ * This can be used for testing and development purposes
9
+ */
10
+ var AutofillDemo = function () {
11
+ var _a = (0, react_1.useState)(''), phoneNumber = _a[0], setPhoneNumber = _a[1];
12
+ var _b = (0, useAutofillDetection_1.useAutofillDetection)(), isAutoFilledActive = _b.isAutoFilledActive, inputRef = _b.inputRef;
13
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { padding: '20px', maxWidth: '400px' }, children: [(0, jsx_runtime_1.jsx)("h3", { children: "Autofill Detection Demo" }), (0, jsx_runtime_1.jsxs)("div", { style: { marginBottom: '20px' }, children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "phone-demo", children: "Phone Number:" }), (0, jsx_runtime_1.jsx)("input", { ref: inputRef, id: "phone-demo", type: "tel", value: phoneNumber, onChange: function (e) { return setPhoneNumber(e.target.value); }, placeholder: "Enter phone number", style: {
14
+ width: '100%',
15
+ padding: '10px',
16
+ marginTop: '5px',
17
+ border: '1px solid #ccc',
18
+ borderRadius: '4px',
19
+ backgroundColor: isAutoFilledActive ? '#e8f0fe' : 'white',
20
+ } })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
21
+ padding: '10px',
22
+ backgroundColor: isAutoFilledActive ? '#e8f0fe' : '#f5f5f5',
23
+ borderRadius: '4px',
24
+ border: "2px solid ".concat(isAutoFilledActive ? '#4285f4' : '#ddd')
25
+ }, children: [(0, jsx_runtime_1.jsx)("strong", { children: "Autofill Status:" }), " ", isAutoFilledActive ? 'ACTIVE' : 'Inactive'] }), (0, jsx_runtime_1.jsxs)("div", { style: { marginTop: '20px', fontSize: '14px', color: '#666' }, children: [(0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsx)("strong", { children: "Instructions:" }) }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: "Type in the phone number field" }), (0, jsx_runtime_1.jsx)("li", { children: "Use browser autofill (Ctrl+Shift+L or right-click \u2192 Fill)" }), (0, jsx_runtime_1.jsx)("li", { children: "Watch the status change to \"ACTIVE\"" }), (0, jsx_runtime_1.jsx)("li", { children: "The input background will change to blue when autofilled" })] })] })] }));
26
+ };
27
+ exports.default = AutofillDemo;
28
+ //# sourceMappingURL=AutofillDemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutofillDemo.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.tsx"],"names":[],"mappings":";;;AAAA,+BAAwC;AACxC,yEAAwE;AAExE;;;GAGG;AACH,IAAM,YAAY,GAAa;IACvB,IAAA,KAAgC,IAAA,gBAAQ,EAAC,EAAE,CAAC,EAA3C,WAAW,QAAA,EAAE,cAAc,QAAgB,CAAC;IAC7C,IAAA,KAAmC,IAAA,2CAAoB,GAAE,EAAvD,kBAAkB,wBAAA,EAAE,QAAQ,cAA2B,CAAC;IAEhE,OAAO,CACL,iCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAChD,qEAAgC,EAEhC,iCAAK,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,aAClC,kCAAO,OAAO,EAAC,YAAY,8BAAsB,EACjD,kCACE,GAAG,EAAE,QAAQ,EACb,EAAE,EAAC,YAAY,EACf,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAA9B,CAA8B,EAC/C,WAAW,EAAC,oBAAoB,EAChC,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM;4BACb,OAAO,EAAE,MAAM;4BACf,SAAS,EAAE,KAAK;4BAChB,MAAM,EAAE,gBAAgB;4BACxB,YAAY,EAAE,KAAK;4BACnB,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;yBAC1D,GACD,IACE,EAEN,iCAAK,KAAK,EAAE;oBACV,OAAO,EAAE,MAAM;oBACf,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC3D,YAAY,EAAE,KAAK;oBACnB,MAAM,EAAE,oBAAa,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAE;iBAC/D,aACC,kEAAiC,OAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,IACzE,EAEN,iCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAChE,wCAAG,+DAA8B,GAAI,EACrC,2CACE,4EAAuC,EACvC,4GAAkE,EAClE,mFAA4C,EAC5C,sGAAiE,IAC9D,IACD,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface ErrorDisplayProps {
2
+ id?: string;
3
+ errorMessage?: string;
4
+ role?: string;
5
+ 'aria-live'?: 'off' | 'polite' | 'assertive';
6
+ }
7
+ declare const ErrorDisplay: React.FC<ErrorDisplayProps>;
8
+ export default ErrorDisplay;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
7
+ /** @jsxImportSource @emotion/react */
8
+ var FormHelperText_1 = __importDefault(require("@mui/material/FormHelperText"));
9
+ var ErrorDisplay = function (_a) {
10
+ var id = _a.id, errorMessage = _a.errorMessage, role = _a.role, ariaLive = _a["aria-live"];
11
+ if (errorMessage) {
12
+ return ((0, jsx_runtime_1.jsx)(FormHelperText_1.default, { id: id, error: true, role: role, "aria-live": ariaLive, children: errorMessage }));
13
+ }
14
+ return null;
15
+ };
16
+ exports.default = ErrorDisplay;
17
+ //# sourceMappingURL=ErrorDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorDisplay.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.tsx"],"names":[],"mappings":";;;;;;AAAA,sCAAsC;AACtC,gFAA0D;AAS1D,IAAM,YAAY,GAAgC,UAAC,EAKlD;QAJC,EAAE,QAAA,EACF,YAAY,kBAAA,EACZ,IAAI,UAAA,EACS,QAAQ,kBAAA;IAErB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CACL,uBAAC,wBAAc,IAAC,EAAE,EAAE,EAAE,EAAE,KAAK,QAAC,IAAI,EAAE,IAAI,eAAa,QAAQ,YAC1D,YAAY,GACE,CAClB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ export interface PhoneInputProps {
2
+ id: string;
3
+ value: string;
4
+ placeholder?: string;
5
+ disabled?: boolean;
6
+ error?: boolean;
7
+ isAnswered?: boolean;
8
+ isSafari?: boolean;
9
+ isAutoFilledActive?: boolean;
10
+ experimentName?: string;
11
+ type?: string;
12
+ onChange: (params: {
13
+ id: string;
14
+ value: string;
15
+ }) => void;
16
+ onBlur?: () => void;
17
+ onClick?: (event: React.MouseEvent<HTMLInputElement>) => void;
18
+ strictMode?: boolean;
19
+ [key: string]: any;
20
+ }
21
+ declare const PhoneInput: import("react").ForwardRefExoticComponent<Omit<PhoneInputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
22
+ export default PhoneInput;
@@ -0,0 +1,56 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
26
+ /** @jsxImportSource @emotion/react */
27
+ var react_1 = require("react");
28
+ var index_1 = require("../../../../../Atoms/index");
29
+ var PhoneInput = (0, react_1.forwardRef)(function (_a, ref) {
30
+ var id = _a.id, value = _a.value, placeholder = _a.placeholder, disabled = _a.disabled, error = _a.error, isAnswered = _a.isAnswered, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, experimentName = _a.experimentName, _b = _a.type, type = _b === void 0 ? 'tel' : _b, onChange = _a.onChange, onBlur = _a.onBlur, onClick = _a.onClick, strictMode = _a.strictMode, props = __rest(_a, ["id", "value", "placeholder", "disabled", "error", "isAnswered", "isSafari", "isAutoFilledActive", "experimentName", "type", "onChange", "onBlur", "onClick", "strictMode"]);
31
+ var sanitizeStrict = function (raw) {
32
+ var MAX_DIGITS = 15; // E.164 allows up to 15 digits
33
+ var input = raw || '';
34
+ var cleaned = input.replace(/[^\d+]/g, '');
35
+ if (cleaned.startsWith('+')) {
36
+ var digitsOnly_1 = cleaned
37
+ .slice(1)
38
+ .replace(/\+/g, '')
39
+ .replace(/[^\d]/g, '');
40
+ return "+".concat(digitsOnly_1.slice(0, MAX_DIGITS));
41
+ }
42
+ var digitsOnly = cleaned.replace(/\+/g, '').replace(/[^\d]/g, '');
43
+ return digitsOnly.slice(0, MAX_DIGITS);
44
+ };
45
+ var handleChange = function (params) {
46
+ if (!strictMode) {
47
+ onChange(params);
48
+ return;
49
+ }
50
+ onChange({ id: params.id, value: sanitizeStrict(params.value) });
51
+ };
52
+ return ((0, jsx_runtime_1.jsx)(index_1.Input, __assign({ error: error, id: id, onChange: handleChange, valueTransform: strictMode ? sanitizeStrict : undefined, isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false, value: value, isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false, isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false, experimentName: experimentName !== null && experimentName !== void 0 ? experimentName : '', type: type, placeholder: placeholder, inputRef: ref, disabled: disabled, onBlur: onBlur, onClick: onClick, "aria-invalid": error }, props)));
53
+ });
54
+ PhoneInput.displayName = 'PhoneInput';
55
+ exports.default = PhoneInput;
56
+ //# sourceMappingURL=PhoneInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhoneInput.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAAmC;AACnC,oDAAmD;AAqBnD,IAAM,UAAU,GAAG,IAAA,kBAAU,EAC3B,UACE,EAgBC,EACD,GAAG;IAhBD,IAAA,EAAE,QAAA,EACF,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,KAAK,WAAA,EACL,UAAU,gBAAA,EACV,QAAQ,cAAA,EACR,kBAAkB,wBAAA,EAClB,cAAc,oBAAA,EACd,YAAY,EAAZ,IAAI,mBAAG,KAAK,KAAA,EACZ,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,OAAO,aAAA,EACP,UAAU,gBAAA,EACP,KAAK,cAfV,4KAgBC,CADS;IAIV,IAAM,cAAc,GAAG,UAAC,GAAW;QACjC,IAAM,UAAU,GAAG,EAAE,CAAC,CAAC,+BAA+B;QACtD,IAAM,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC;QACxB,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAM,YAAU,GAAG,OAAO;iBACvB,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;iBAClB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzB,OAAO,WAAI,YAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAE,CAAC;QAC/C,CAAC;QACD,IAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,MAAqC;QACzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,OAAO,CACL,uBAAC,aAAK,aACJ,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EACvD,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,EAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAK,EAC3B,kBAAkB,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,KAAK,EAC/C,cAAc,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,EACpC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,kBACF,KAAK,IACf,KAAK,EACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,159 @@
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
+ var react_1 = require("@testing-library/react");
30
+ var PhoneInput_1 = __importDefault(require("./PhoneInput"));
31
+ // Mock the Input component
32
+ jest.mock('../../../../Components/Atoms/Input', function () {
33
+ return function MockInput(_a) {
34
+ var onChange = _a.onChange, props = __rest(_a, ["onChange"]);
35
+ return ((0, jsx_runtime_1.jsx)("input", __assign({}, props, { onChange: function (e) {
36
+ onChange({ id: props.id, value: e.target.value });
37
+ }, "data-testid": "phone-input" })));
38
+ };
39
+ });
40
+ describe('PhoneInput', function () {
41
+ var defaultProps = {
42
+ id: 'test-phone',
43
+ value: '',
44
+ onChange: jest.fn(),
45
+ };
46
+ beforeEach(function () {
47
+ jest.clearAllMocks();
48
+ });
49
+ it('renders without crashing', function () {
50
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps)));
51
+ expect(react_1.screen.getByTestId('phone-input')).toBeInTheDocument();
52
+ });
53
+ it('calls onChange when input changes', function () {
54
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps)));
55
+ var input = react_1.screen.getByTestId('phone-input');
56
+ react_1.fireEvent.change(input, { target: { value: '123' } });
57
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
58
+ id: 'test-phone',
59
+ value: '123',
60
+ });
61
+ });
62
+ describe('strictMode disabled (default)', function () {
63
+ it('allows all characters when strictMode is false', function () {
64
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: false })));
65
+ var input = react_1.screen.getByTestId('phone-input');
66
+ react_1.fireEvent.change(input, { target: { value: 'abc123def' } });
67
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
68
+ id: 'test-phone',
69
+ value: 'abc123def',
70
+ });
71
+ });
72
+ it('allows special characters when strictMode is false', function () {
73
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: false })));
74
+ var input = react_1.screen.getByTestId('phone-input');
75
+ react_1.fireEvent.change(input, { target: { value: '123-456-7890' } });
76
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
77
+ id: 'test-phone',
78
+ value: '123-456-7890',
79
+ });
80
+ });
81
+ it('allows multiple plus signs when strictMode is false', function () {
82
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: false })));
83
+ var input = react_1.screen.getByTestId('phone-input');
84
+ react_1.fireEvent.change(input, { target: { value: '++123++456' } });
85
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
86
+ id: 'test-phone',
87
+ value: '++123++456',
88
+ });
89
+ });
90
+ });
91
+ describe('strictMode enabled', function () {
92
+ it('filters out non-numeric characters when strictMode is true', function () {
93
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
94
+ var input = react_1.screen.getByTestId('phone-input');
95
+ react_1.fireEvent.change(input, { target: { value: 'abc123def' } });
96
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
97
+ id: 'test-phone',
98
+ value: '123',
99
+ });
100
+ });
101
+ it('filters out special characters when strictMode is true', function () {
102
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
103
+ var input = react_1.screen.getByTestId('phone-input');
104
+ react_1.fireEvent.change(input, { target: { value: '123-456-7890' } });
105
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
106
+ id: 'test-phone',
107
+ value: '1234567890',
108
+ });
109
+ });
110
+ it('keeps only the first plus sign at the beginning when strictMode is true', function () {
111
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
112
+ var input = react_1.screen.getByTestId('phone-input');
113
+ react_1.fireEvent.change(input, { target: { value: '++123++456' } });
114
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
115
+ id: 'test-phone',
116
+ value: '+123456',
117
+ });
118
+ });
119
+ it('removes plus signs that are not at the beginning when strictMode is true', function () {
120
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
121
+ var input = react_1.screen.getByTestId('phone-input');
122
+ react_1.fireEvent.change(input, { target: { value: '123+456+789' } });
123
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
124
+ id: 'test-phone',
125
+ value: '123456789',
126
+ });
127
+ });
128
+ it('allows valid phone number format when strictMode is true', function () {
129
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
130
+ var input = react_1.screen.getByTestId('phone-input');
131
+ react_1.fireEvent.change(input, { target: { value: '+15551234567' } });
132
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
133
+ id: 'test-phone',
134
+ value: '+15551234567',
135
+ });
136
+ });
137
+ it('caps length at maximum valid phone number length when strictMode is true', function () {
138
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
139
+ var input = react_1.screen.getByTestId('phone-input');
140
+ // Try to input more than 16 characters (max allowed)
141
+ var longInput = '+155512345678901234567890';
142
+ react_1.fireEvent.change(input, { target: { value: longInput } });
143
+ expect(defaultProps.onChange).toHaveBeenCalledWith({
144
+ id: 'test-phone',
145
+ value: '+155512345678901', // Should be capped at 15 digits + 1 plus sign = 16 characters
146
+ });
147
+ });
148
+ });
149
+ it('passes through other props to Input component', function () {
150
+ var customProps = __assign(__assign({}, defaultProps), { placeholder: 'Enter phone number', disabled: true, 'data-custom': 'test-value' });
151
+ (0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, customProps)));
152
+ var input = react_1.screen.getByTestId('phone-input');
153
+ expect(input).toHaveAttribute('placeholder', 'Enter phone number');
154
+ expect(input).toBeDisabled();
155
+ expect(input).toHaveAttribute('data-custom', 'test-value');
156
+ });
157
+ // Note: Empty input test is covered by the basic onChange test above
158
+ });
159
+ //# sourceMappingURL=PhoneInput.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhoneInput.test.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { CountryData } from '../../utils/countryData';
3
+ interface CountryDropdownProps {
4
+ selectedCountry: CountryData;
5
+ onCountryChange: (country: CountryData) => void;
6
+ enableCountrySearch?: boolean;
7
+ anchorEl?: HTMLElement | null;
8
+ open: boolean;
9
+ onClose: () => void;
10
+ }
11
+ declare const CountryDropdown: React.FC<CountryDropdownProps>;
12
+ export default CountryDropdown;
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
40
+ /** @jsxImportSource @emotion/react */
41
+ var Popover_1 = __importDefault(require("@mui/material/Popover"));
42
+ var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
43
+ var InputBase_1 = __importDefault(require("@mui/material/InputBase"));
44
+ var react_1 = __importStar(require("react"));
45
+ var countryData_1 = require("../../utils/countryData");
46
+ var FlagIcon_1 = __importDefault(require("./FlagIcon"));
47
+ // Memoized country item component for better performance
48
+ var CountryItem = react_1.default.memo(function (_a) {
49
+ var country = _a.country, index = _a.index, isSelected = _a.isSelected, onSelect = _a.onSelect, onMouseEnter = _a.onMouseEnter;
50
+ return ((0, jsx_runtime_1.jsxs)(MenuItem_1.default, { id: "country-option-".concat(index), selected: isSelected, onClick: function () { return onSelect(country); }, onMouseEnter: function () { return onMouseEnter(index); }, role: "option", "aria-selected": isSelected, "aria-label": "".concat(country.name, ", ").concat(country.dialCode), sx: {
51
+ padding: '8px 16px',
52
+ minHeight: '48px',
53
+ transition: 'background-color 0.2s ease',
54
+ display: 'flex',
55
+ alignItems: 'center',
56
+ width: '100%',
57
+ '&.Mui-selected': {
58
+ backgroundColor: 'rgba(0, 0, 0, 0.08)',
59
+ },
60
+ '&:hover': {
61
+ backgroundColor: 'rgba(0, 0, 0, 0.04)',
62
+ },
63
+ }, children: [(0, jsx_runtime_1.jsx)(FlagIcon_1.default, { countryCode: country.code, style: { marginRight: '8px' } }), (0, jsx_runtime_1.jsx)("span", { style: {
64
+ flex: 1,
65
+ fontSize: '14px',
66
+ fontFamily: 'inherit',
67
+ }, children: country.name }), (0, jsx_runtime_1.jsx)("span", { style: {
68
+ opacity: 0.7,
69
+ fontSize: '12px',
70
+ fontFamily: 'inherit',
71
+ marginLeft: '8px',
72
+ }, children: country.dialCode })] }, country.code));
73
+ });
74
+ CountryItem.displayName = 'CountryItem';
75
+ var CountryDropdown = function (_a) {
76
+ var onCountryChange = _a.onCountryChange, _b = _a.enableCountrySearch, enableCountrySearch = _b === void 0 ? false : _b, anchorEl = _a.anchorEl, open = _a.open, onClose = _a.onClose;
77
+ var _c = (0, react_1.useState)(''), searchTerm = _c[0], setSearchTerm = _c[1];
78
+ var _d = (0, react_1.useState)(-1), selectedIndex = _d[0], setSelectedIndex = _d[1];
79
+ var searchInputRef = (0, react_1.useRef)(null);
80
+ var countries = (0, react_1.useMemo)(function () { return (0, countryData_1.getCountryData)(); }, []);
81
+ var filteredCountries = (0, react_1.useMemo)(function () {
82
+ if (!searchTerm.trim())
83
+ return countries;
84
+ var term = searchTerm.toLowerCase().trim();
85
+ return countries.filter(function (country) {
86
+ return country.name.toLowerCase().includes(term) ||
87
+ country.dialCode.toLowerCase().includes(term) ||
88
+ country.code.toLowerCase().includes(term);
89
+ });
90
+ }, [countries, searchTerm]);
91
+ // Reset search state when dropdown opens/closes
92
+ (0, react_1.useEffect)(function () {
93
+ if (open) {
94
+ setSearchTerm('');
95
+ setSelectedIndex(-1);
96
+ }
97
+ }, [open]);
98
+ // Auto-focus search input when dropdown opens and blur when closing
99
+ (0, react_1.useEffect)(function () {
100
+ if (open && enableCountrySearch) {
101
+ var timer_1 = setTimeout(function () {
102
+ var _a;
103
+ (_a = searchInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
104
+ }, 100);
105
+ return function () { return clearTimeout(timer_1); };
106
+ }
107
+ else if (!open) {
108
+ // When closing, ensure any focused element inside the popover is blurred
109
+ // to prevent aria-hidden violations
110
+ var activeElement = document.activeElement;
111
+ if (activeElement && activeElement.closest('#country-selector-listbox')) {
112
+ activeElement.blur();
113
+ }
114
+ }
115
+ return undefined;
116
+ }, [open, enableCountrySearch]);
117
+ // Memoized callbacks for better performance
118
+ var handleCountrySelect = (0, react_1.useCallback)(function (country) {
119
+ // Blur any focused element to prevent aria-hidden violations
120
+ var activeElement = document.activeElement;
121
+ if (activeElement && activeElement.closest('#country-selector-listbox')) {
122
+ activeElement.blur();
123
+ }
124
+ onCountryChange(country);
125
+ onClose();
126
+ }, [onCountryChange, onClose]);
127
+ var handleSearchChange = (0, react_1.useCallback)(function (event) {
128
+ var value = event.target.value;
129
+ setSearchTerm(value);
130
+ setSelectedIndex(-1);
131
+ }, []);
132
+ var handleKeyDown = (0, react_1.useCallback)(function (event) {
133
+ switch (event.key) {
134
+ case 'ArrowDown':
135
+ event.preventDefault();
136
+ setSelectedIndex(function (prev) {
137
+ return prev < filteredCountries.length - 1 ? prev + 1 : prev;
138
+ });
139
+ break;
140
+ case 'ArrowUp':
141
+ event.preventDefault();
142
+ setSelectedIndex(function (prev) { return (prev > 0 ? prev - 1 : -1); });
143
+ break;
144
+ case 'Enter':
145
+ event.preventDefault();
146
+ if (selectedIndex >= 0 && selectedIndex < filteredCountries.length) {
147
+ var country = filteredCountries[selectedIndex];
148
+ handleCountrySelect(country);
149
+ }
150
+ break;
151
+ case 'Escape':
152
+ event.preventDefault();
153
+ onClose();
154
+ break;
155
+ }
156
+ }, [filteredCountries.length, selectedIndex, handleCountrySelect, onClose]);
157
+ return ((0, jsx_runtime_1.jsxs)(Popover_1.default, { open: open, anchorEl: anchorEl, onClose: onClose, anchorOrigin: {
158
+ vertical: 'bottom',
159
+ horizontal: 'left',
160
+ }, transformOrigin: {
161
+ vertical: 'top',
162
+ horizontal: 'left',
163
+ }, disableRestoreFocus: true, disableEnforceFocus: true, slotProps: {
164
+ paper: {
165
+ id: 'country-selector-listbox',
166
+ role: 'dialog',
167
+ 'aria-label': 'Select country',
168
+ sx: {
169
+ maxHeight: 400,
170
+ width: 300,
171
+ overflow: 'hidden',
172
+ display: 'flex',
173
+ flexDirection: 'column',
174
+ },
175
+ },
176
+ }, children: [enableCountrySearch && ((0, jsx_runtime_1.jsx)("div", { style: {
177
+ padding: '12px 16px',
178
+ borderBottom: '1px solid rgba(0, 0, 0, 0.12)',
179
+ backgroundColor: '#ffffff',
180
+ }, children: (0, jsx_runtime_1.jsx)(InputBase_1.default, { ref: searchInputRef, placeholder: "Search countries...", value: searchTerm, onChange: handleSearchChange, onKeyDown: handleKeyDown, fullWidth: true, sx: {
181
+ fontSize: '14px',
182
+ padding: '6px 8px',
183
+ border: '1px solid rgba(0, 0, 0, 0.23)',
184
+ borderRadius: '4px',
185
+ backgroundColor: '#ffffff',
186
+ '&:focus-within': {
187
+ borderColor: 'primary.main',
188
+ boxShadow: '0 0 0 2px rgba(25, 118, 210, 0.2)',
189
+ },
190
+ }, inputProps: {
191
+ 'aria-label': 'Search countries',
192
+ autoComplete: 'off',
193
+ spellCheck: false,
194
+ } }) })), (0, jsx_runtime_1.jsx)("div", { style: {
195
+ flex: 1,
196
+ overflowY: 'auto',
197
+ backgroundColor: '#ffffff',
198
+ }, role: "listbox", "aria-label": "Country list", "aria-activedescendant": selectedIndex >= 0 ? "country-option-".concat(selectedIndex) : undefined, children: filteredCountries.length === 0 ? ((0, jsx_runtime_1.jsx)("div", { style: {
199
+ padding: '16px',
200
+ textAlign: 'center',
201
+ color: 'rgba(0, 0, 0, 0.6)',
202
+ fontSize: '14px',
203
+ }, children: "No countries found" })) : (filteredCountries.map(function (country, index) { return ((0, jsx_runtime_1.jsx)(CountryItem, { country: country, index: index, isSelected: index === selectedIndex, onSelect: handleCountrySelect, onMouseEnter: setSelectedIndex }, country.code)); })) })] }));
204
+ };
205
+ exports.default = CountryDropdown;
206
+ //# sourceMappingURL=CountryDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountryDropdown.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,kEAA4C;AAC5C,oEAA8C;AAC9C,sEAAgD;AAChD,6CAMe;AACf,uDAAsE;AACtE,wDAAkC;AAWlC,yDAAyD;AACzD,IAAM,WAAW,GAAG,eAAK,CAAC,IAAI,CAM3B,UAAC,EAAsD;QAApD,OAAO,aAAA,EAAE,KAAK,WAAA,EAAE,UAAU,gBAAA,EAAE,QAAQ,cAAA,EAAE,YAAY,kBAAA;IAAO,OAAA,CAC7D,wBAAC,kBAAQ,IAEP,EAAE,EAAE,yBAAkB,KAAK,CAAE,EAC7B,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,cAAM,OAAA,QAAQ,CAAC,OAAO,CAAC,EAAjB,CAAiB,EAChC,YAAY,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EACvC,IAAI,EAAC,QAAQ,mBACE,UAAU,gBACb,UAAG,OAAO,CAAC,IAAI,eAAK,OAAO,CAAC,QAAQ,CAAE,EAClD,EAAE,EAAE;YACF,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,4BAA4B;YACxC,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,MAAM;YACb,gBAAgB,EAAE;gBAChB,eAAe,EAAE,qBAAqB;aACvC;YACD,SAAS,EAAE;gBACT,eAAe,EAAE,qBAAqB;aACvC;SACF,aAED,uBAAC,kBAAQ,IAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAI,EACtE,iCACE,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,SAAS;iBACtB,YAEA,OAAO,CAAC,IAAI,GACR,EACP,iCACE,KAAK,EAAE;oBACL,OAAO,EAAE,GAAG;oBACZ,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,SAAS;oBACrB,UAAU,EAAE,KAAK;iBAClB,YAEA,OAAO,CAAC,QAAQ,GACZ,KA1CF,OAAO,CAAC,IAAI,CA2CR,CACZ;AA9C8D,CA8C9D,CAAC,CAAC;AAEH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,IAAM,eAAe,GAAmC,UAAC,EAMxD;QALC,eAAe,qBAAA,EACf,2BAA2B,EAA3B,mBAAmB,mBAAG,KAAK,KAAA,EAC3B,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,OAAO,aAAA;IAED,IAAA,KAA8B,IAAA,gBAAQ,EAAC,EAAE,CAAC,EAAzC,UAAU,QAAA,EAAE,aAAa,QAAgB,CAAC;IAC3C,IAAA,KAAoC,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC,EAA/C,aAAa,QAAA,EAAE,gBAAgB,QAAgB,CAAC;IACvD,IAAM,cAAc,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAEtD,IAAM,SAAS,GAAG,IAAA,eAAO,EAAC,cAAM,OAAA,IAAA,4BAAc,GAAE,EAAhB,CAAgB,EAAE,EAAE,CAAC,CAAC;IAEtD,IAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QACzC,IAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC,MAAM,CACrB,UAAC,OAAO;YACN,OAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAFzC,CAEyC,CAC5C,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5B,gDAAgD;IAChD,IAAA,iBAAS,EAAC;QACR,IAAI,IAAI,EAAE,CAAC;YACT,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,oEAAoE;IACpE,IAAA,iBAAS,EAAC;QACR,IAAI,IAAI,IAAI,mBAAmB,EAAE,CAAC;YAChC,IAAM,OAAK,GAAG,UAAU,CAAC;;gBACvB,MAAA,cAAc,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;YAClC,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,OAAO,cAAM,OAAA,YAAY,CAAC,OAAK,CAAC,EAAnB,CAAmB,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,yEAAyE;YACzE,oCAAoC;YACpC,IAAM,aAAa,GAAG,QAAQ,CAAC,aAA4B,CAAC;YAC5D,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACxE,aAAa,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEhC,4CAA4C;IAC5C,IAAM,mBAAmB,GAAG,IAAA,mBAAW,EACrC,UAAC,OAAoB;QACnB,6DAA6D;QAC7D,IAAM,aAAa,GAAG,QAAQ,CAAC,aAA4B,CAAC;QAC5D,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACxE,aAAa,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAED,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC,EACD,CAAC,eAAe,EAAE,OAAO,CAAC,CAC3B,CAAC;IAEF,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,UAAC,KAA0C;QACzC,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,KAA0B;QACzB,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,gBAAgB,CAAC,UAAC,IAAI;oBACpB,OAAA,IAAI,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBAArD,CAAqD,CACtD,CAAC;gBACF,MAAM;YACR,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,gBAAgB,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B,CAAC,CAAC;gBACvD,MAAM;YACR,KAAK,OAAO;gBACV,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;oBACnE,IAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;oBACjD,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO,EAAE,CAAC;gBACV,MAAM;QACV,CAAC;IACH,CAAC,EACD,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,CAAC,CACxE,CAAC;IAEF,OAAO,CACL,wBAAC,iBAAO,IACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE;YACZ,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,MAAM;SACnB,EACD,eAAe,EAAE;YACf,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,MAAM;SACnB,EACD,mBAAmB,QACnB,mBAAmB,QACnB,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,EAAE,EAAE,0BAA0B;gBAC9B,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,gBAAgB;gBAC9B,EAAE,EAAE;oBACF,SAAS,EAAE,GAAG;oBACd,KAAK,EAAE,GAAG;oBACV,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,QAAQ;iBACxB;aACF;SACF,aAEA,mBAAmB,IAAI,CACtB,gCACE,KAAK,EAAE;oBACL,OAAO,EAAE,WAAW;oBACpB,YAAY,EAAE,+BAA+B;oBAC7C,eAAe,EAAE,SAAS;iBAC3B,YAED,uBAAC,mBAAS,IACR,GAAG,EAAE,cAAc,EACnB,WAAW,EAAC,qBAAqB,EACjC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,aAAa,EACxB,SAAS,QACT,EAAE,EAAE;wBACF,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,SAAS;wBAClB,MAAM,EAAE,+BAA+B;wBACvC,YAAY,EAAE,KAAK;wBACnB,eAAe,EAAE,SAAS;wBAC1B,gBAAgB,EAAE;4BAChB,WAAW,EAAE,cAAc;4BAC3B,SAAS,EAAE,mCAAmC;yBAC/C;qBACF,EACD,UAAU,EAAE;wBACV,YAAY,EAAE,kBAAkB;wBAChC,YAAY,EAAE,KAAK;wBACnB,UAAU,EAAE,KAAK;qBAClB,GACD,GACE,CACP,EAED,gCACE,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC;oBACP,SAAS,EAAE,MAAM;oBACjB,eAAe,EAAE,SAAS;iBAC3B,EACD,IAAI,EAAC,SAAS,gBACH,cAAc,2BAEvB,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAkB,aAAa,CAAE,CAAC,CAAC,CAAC,SAAS,YAGnE,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAChC,gCACE,KAAK,EAAE;wBACL,OAAO,EAAE,MAAM;wBACf,SAAS,EAAE,QAAQ;wBACnB,KAAK,EAAE,oBAAoB;wBAC3B,QAAQ,EAAE,MAAM;qBACjB,mCAGG,CACP,CAAC,CAAC,CAAC,CACF,iBAAiB,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,KAAK,IAAK,OAAA,CACxC,uBAAC,WAAW,IAEV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,KAAK,KAAK,aAAa,EACnC,QAAQ,EAAE,mBAAmB,EAC7B,YAAY,EAAE,gBAAgB,IALzB,OAAO,CAAC,IAAI,CAMjB,CACH,EATyC,CASzC,CAAC,CACH,GACG,IACE,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}