@rpcbase/ui 0.260.0 → 0.262.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/sha256.worker-BEf4_Y9w.js.map +1 -0
- package/dist/components/FilesUploadField/index.d.ts +19 -6
- package/dist/components/FilesUploadField/index.d.ts.map +1 -1
- package/dist/components/FilesUploadField/sha256.d.ts +5 -0
- package/dist/components/FilesUploadField/sha256.d.ts.map +1 -0
- package/dist/components/FilesUploadField/sha256.worker.d.ts +4 -0
- package/dist/components/FilesUploadField/sha256.worker.d.ts.map +1 -0
- package/dist/components/ImagesField/index.d.ts +4 -2
- package/dist/components/ImagesField/index.d.ts.map +1 -1
- package/dist/index.js +10 -10
- package/dist/index298.js +11 -803
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +865 -28
- package/dist/index299.js.map +1 -1
- package/dist/index300.js +26 -510
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +481 -755
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +786 -7428
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +7429 -7
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +6 -12
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +12 -5
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +3 -3
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +5 -469
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +464 -32
- package/dist/index308.js.map +1 -1
- package/dist/index309.js +36 -18
- package/dist/index309.js.map +1 -1
- package/dist/index310.js +17 -28
- package/dist/index310.js.map +1 -1
- package/dist/index311.js +30 -4
- package/dist/index311.js.map +1 -1
- package/dist/index312.js +4 -59
- package/dist/index312.js.map +1 -1
- package/dist/index313.js +59 -9
- package/dist/index313.js.map +1 -1
- package/dist/index314.js +9 -5
- package/dist/index314.js.map +1 -1
- package/dist/index315.js +5 -9
- package/dist/index315.js.map +1 -1
- package/dist/index316.js +9 -12
- package/dist/index316.js.map +1 -1
- package/dist/index317.js +13 -3
- package/dist/index317.js.map +1 -1
- package/dist/index318.js +3 -17
- package/dist/index318.js.map +1 -1
- package/dist/index319.js +14 -23
- package/dist/index319.js.map +1 -1
- package/dist/index320.js +23 -39
- package/dist/index320.js.map +1 -1
- package/dist/index321.js +41 -5
- package/dist/index321.js.map +1 -1
- package/dist/index322.js +5 -25
- package/dist/index322.js.map +1 -1
- package/dist/index323.js +24 -18
- package/dist/index323.js.map +1 -1
- package/dist/index324.js +17 -32
- package/dist/index324.js.map +1 -1
- package/dist/index325.js +34 -5
- package/dist/index325.js.map +1 -1
- package/dist/index326.js +5 -9
- package/dist/index326.js.map +1 -1
- package/dist/index327.js +8 -7
- package/dist/index327.js.map +1 -1
- package/dist/index328.js +8 -9
- package/dist/index328.js.map +1 -1
- package/dist/index329.js +9 -10
- package/dist/index329.js.map +1 -1
- package/dist/index330.js +10 -7
- package/dist/index330.js.map +1 -1
- package/dist/index331.js +7 -75
- package/dist/index331.js.map +1 -1
- package/dist/index332.js +66 -153
- package/dist/index332.js.map +1 -1
- package/dist/index333.js +147 -99
- package/dist/index333.js.map +1 -1
- package/dist/index334.js +113 -13
- package/dist/index334.js.map +1 -1
- package/dist/index335.js +12 -78
- package/dist/index335.js.map +1 -1
- package/dist/index336.js +57 -23
- package/dist/index336.js.map +1 -1
- package/dist/index337.js +45 -12
- package/dist/index337.js.map +1 -1
- package/dist/index338.js +13 -16
- package/dist/index338.js.map +1 -1
- package/dist/index339.js +15 -100
- package/dist/index339.js.map +1 -1
- package/dist/index340.js +95 -50
- package/dist/index340.js.map +1 -1
- package/dist/index341.js +5 -57
- package/dist/index341.js.map +1 -1
- package/dist/index342.js +78 -41
- package/dist/index342.js.map +1 -1
- package/dist/index343.js +58 -100
- package/dist/index343.js.map +1 -1
- package/dist/index344.js +104 -46
- package/dist/index344.js.map +1 -1
- package/dist/index345.js +51 -39
- package/dist/index345.js.map +1 -1
- package/dist/index346.js +42 -142
- package/dist/index346.js.map +1 -1
- package/dist/index347.js +123 -120
- package/dist/index347.js.map +1 -1
- package/dist/index348.js +108 -224
- package/dist/index348.js.map +1 -1
- package/dist/index349.js +174 -158
- package/dist/index349.js.map +1 -1
- package/dist/index350.js +144 -213
- package/dist/index350.js.map +1 -1
- package/dist/index351.js +309 -5
- package/dist/index351.js.map +1 -1
- package/dist/index352.js +5 -6
- package/dist/index352.js.map +1 -1
- package/dist/index353.js +6 -7
- package/dist/index353.js.map +1 -1
- package/dist/index354.js +5 -4
- package/dist/index354.js.map +1 -1
- package/dist/index355.js +4 -4
- package/dist/index355.js.map +1 -1
- package/dist/index356.js +6 -21
- package/dist/index356.js.map +1 -1
- package/dist/index357.js +21 -10
- package/dist/index357.js.map +1 -1
- package/dist/index358.js +10 -128
- package/dist/index358.js.map +1 -1
- package/dist/index359.js +122 -36
- package/dist/index359.js.map +1 -1
- package/dist/index360.js +38 -64
- package/dist/index360.js.map +1 -1
- package/dist/index361.js +66 -115
- package/dist/index361.js.map +1 -1
- package/dist/index362.js +112 -485
- package/dist/index362.js.map +1 -1
- package/dist/index363.js +490 -13
- package/dist/index363.js.map +1 -1
- package/dist/index364.js +13 -4
- package/dist/index364.js.map +1 -1
- package/dist/index365.js +4 -47
- package/dist/index365.js.map +1 -1
- package/dist/index366.js +44 -15
- package/dist/index366.js.map +1 -1
- package/dist/index367.js +19 -5
- package/dist/index367.js.map +1 -1
- package/dist/index368.js +5 -27
- package/dist/index368.js.map +1 -1
- package/dist/index369.js +27 -48
- package/dist/index369.js.map +1 -1
- package/dist/index370.js +46 -27
- package/dist/index370.js.map +1 -1
- package/dist/index371.js +27 -16
- package/dist/index371.js.map +1 -1
- package/dist/index372.js +16 -41
- package/dist/index372.js.map +1 -1
- package/dist/index373.js +42 -14
- package/dist/index373.js.map +1 -1
- package/dist/index374.js +14 -10
- package/dist/index374.js.map +1 -1
- package/dist/index375.js +9 -51
- package/dist/index375.js.map +1 -1
- package/dist/index376.js +53 -43
- package/dist/index376.js.map +1 -1
- package/dist/index377.js +43 -16
- package/dist/index377.js.map +1 -1
- package/dist/index378.js +15 -4
- package/dist/index378.js.map +1 -1
- package/dist/index379.js +4 -4
- package/dist/index379.js.map +1 -1
- package/dist/index380.js +4 -9
- package/dist/index380.js.map +1 -1
- package/dist/index381.js +9 -340
- package/dist/index381.js.map +1 -1
- package/dist/index382.js +339 -4
- package/dist/index382.js.map +1 -1
- package/dist/index383.js +5 -16
- package/dist/index383.js.map +1 -1
- package/dist/index384.js +16 -111
- package/dist/index384.js.map +1 -1
- package/dist/index385.js +109 -19
- package/dist/index385.js.map +1 -1
- package/dist/index386.js +18 -18
- package/dist/index386.js.map +1 -1
- package/dist/index387.js +21 -5
- package/dist/index387.js.map +1 -1
- package/dist/index388.js +5 -20
- package/dist/index388.js.map +1 -1
- package/dist/index389.js +19 -13
- package/dist/index389.js.map +1 -1
- package/dist/index390.js +13 -84
- package/dist/index390.js.map +1 -1
- package/dist/index391.js +84 -7
- package/dist/index391.js.map +1 -1
- package/dist/index392.js +9 -29
- package/dist/index392.js.map +1 -1
- package/dist/index393.js +28 -9
- package/dist/index393.js.map +1 -1
- package/dist/index394.js +9 -5
- package/dist/index394.js.map +1 -1
- package/dist/index395.js +6 -252
- package/dist/index395.js.map +1 -1
- package/dist/index396.js +250 -10
- package/dist/index396.js.map +1 -1
- package/dist/index397.js +11 -10
- package/dist/index397.js.map +1 -1
- package/dist/index398.js +10 -6
- package/dist/index398.js.map +1 -1
- package/dist/index399.js +6 -22
- package/dist/index399.js.map +1 -1
- package/dist/index400.js +21 -21
- package/dist/index400.js.map +1 -1
- package/dist/index401.js +21 -107
- package/dist/index401.js.map +1 -1
- package/dist/index402.js +109 -15
- package/dist/index402.js.map +1 -1
- package/dist/index403.js +15 -12
- package/dist/index403.js.map +1 -1
- package/dist/index404.js +10 -8
- package/dist/index404.js.map +1 -1
- package/dist/index405.js +8 -242
- package/dist/index405.js.map +1 -1
- package/dist/index406.js +238 -25
- package/dist/index406.js.map +1 -1
- package/dist/index407.js +29 -51
- package/dist/index407.js.map +1 -1
- package/dist/index408.js +51 -10
- package/dist/index408.js.map +1 -1
- package/dist/index409.js +11 -128
- package/dist/index409.js.map +1 -1
- package/dist/index410.js +124 -35
- package/dist/index410.js.map +1 -1
- package/dist/index411.js +36 -23
- package/dist/index411.js.map +1 -1
- package/dist/index412.js +26 -11
- package/dist/index412.js.map +1 -1
- package/dist/index413.js +11 -23
- package/dist/index413.js.map +1 -1
- package/dist/index414.js +19 -13
- package/dist/index414.js.map +1 -1
- package/dist/index415.js +14 -13
- package/dist/index415.js.map +1 -1
- package/dist/index416.js +14 -322
- package/dist/index416.js.map +1 -1
- package/dist/index417.js +323 -61
- package/dist/index417.js.map +1 -1
- package/dist/index418.js +63 -4
- package/dist/index418.js.map +1 -1
- package/dist/index419.js +4 -28
- package/dist/index419.js.map +1 -1
- package/dist/index420.js +25 -468
- package/dist/index420.js.map +1 -1
- package/dist/index421.js +452 -250
- package/dist/index421.js.map +1 -1
- package/dist/index422.js +272 -0
- package/dist/index422.js.map +1 -0
- package/package.json +2 -1
package/dist/index362.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index362.js","names":["React","CountryCode","getCountryCallingCode","Select","Props","SelectProps","SingleValue","StylesConfig","cn","CountryOption","PhoneNumberChangeDetails","PhoneNumberInputProps","PhoneNumberSelectedCountry","resolveMessages","COMMON_IDD_PREFIXES","DEFAULT_COUNTRY","buildFallbackSelectedCountry","getCachedCountryOptions","getLocaleCacheKey","getValidCountry","normalizeSearchValue","optionMatchIndex","parseLocaleCacheKey","toSelectedCountry","formatWithAsYouType","getLengthIssue","sanitizeDigits","stripPrefix","LengthIssue","captureSelectionSnapshot","resolveSelection","skipFormattingCharactersLeft","skipFormattingCharactersRight","HiddenControl","NullComponent","SuggestionContext","SuggestionOption","formatCountryOption","suggestionSelectStyles","SuggestionContextValue","PhoneNumberInputMessages","PhoneNumberInputValidationCode","INVISIBLE_FORMATTING_CHARACTERS","ParsedInput","Omit","displayValue","lengthIssue","stripInvisibleFormatting","value","replace","stripIddPrefix","digits","prefix","startsWith","slice","length","normalizeImplicitInternationalInput","candidate","phoneNumber","detectedCountry","isValid","normalizeExplicitInternationalInput","cleaned","trim","digitsWithoutIdd","normalizeInternationalInput","explicitInternational","getDialCode","country","parsedDialCode","getInputValueForSelectedCountry","option","Pick","options","allowImplicitInternational","dialCode","normalizedInternational","normalizedDigits","currentDialCode","countryCallingCode","nationalDigits","nationalNumber","preferSelectedCountry","parsed","rawInput","parsePhoneInput","rawValue","baseCountry","formattedInternational","formattedNational","e164","shouldFormat","normalized","international","national","formatted","hasInternationalPrefix","formatInternational","formatNational","number","PhoneNumberInput","forwardRef","HTMLInputElement","props","forwardedRef","defaultCountry","countryProp","locale","onChange","onCountryChange","className","inputClassName","disabled","readOnly","selectProps","autofillShimName","messages","messagesProp","renderValidationMessage","restProps","onFocus","onInputFocus","onBlur","onInputBlur","onKeyDown","onInputKeyDown","name","inputName","autoComplete","inputAutoComplete","restInputProps","controlledCountry","localeCacheKey","localeForBuild","useMemo","resolvedMessages","countryOptions","resolveSelectedCountry","useCallback","match","find","menuPriorityCountry","some","initialStateRef","useRef","current","initialState","undefined","uncontrolledCountry","setUncontrolledCountry","useState","inputValueState","setInputValueState","countryQuery","setCountryQuery","showSuggestions","setShowSuggestions","highlightedIndex","setHighlightedIndex","isFocused","setIsFocused","shouldRenderSelect","setShouldRenderSelect","setLengthIssue","manualSelectionCountryRef","keyboardBufferRef","bufferTimeoutRef","scrollBehaviorRef","ScrollBehavior","pendingSelectionRef","start","end","hasNotifiedCountryRef","lastNotifiedCountryRef","inputRef","activeCountry","explicitFormattingCountry","useImperativeHandle","useLayoutEffect","selection","input","setSelectionRange","selectOverrides","generatedSelectInstanceId","useId","styles","userSelectStyles","components","userSelectComponents","classNamePrefix","userClassNamePrefix","formatOptionLabel","userFormatOptionLabel","menuPortalTarget","userMenuPortalTarget","menuPosition","userMenuPosition","forwardedSelectProps","instanceId","userSelectInstanceId","noOptionsMessage","restForwardedSelectProps","selectInstanceId","defaultMenuPortalTarget","setDefaultMenuPortalTarget","HTMLElement","hasUserMenuPortalTarget","mergedSelectStyles","userMenuPortal","menuPortal","provided","state","baseWithZIndex","zIndex","base","document","body","portalRect","getBoundingClientRect","left","top","portalTarget","closest","mergedSelectComponents","baseComponents","Control","IndicatorsContainer","DropdownIndicator","IndicatorSeparator","ValueContainer","overrides","Option","useEffect","window","clearTimeout","emitChange","details","selectedCountry","scheduleBufferReset","setTimeout","applyParsedInput","snapshot","ReturnType","handleInputChange","event","ChangeEvent","target","raw","normalizedExplicitInternational","manualCountry","manualDialCode","activeManualCountry","rawDigits","manualOption","handleCountrySelect","nextInputValue","requestAnimationFrame","focus","filteredOptions","results","pushUnique","existing","push","priorityOption","currentOption","query","digitQuery","normalizedQuery","forEach","dialMatches","filter","sort","a","b","aExact","bExact","nameMatches","normalizedSearchableTokens","token","includes","aIndex","bIndex","localeCompare","suggestionMenuIsOpen","highlightedOption","consumeScrollBehavior","behavior","updateHighlightedOption","index","findIndex","selectFormatOptionLabel","NonNullable","meta","optionLabelRenderer","context","inputValue","selectValue","highlightContextValue","highlightedValue","setHighlightedOption","renderOptionLabel","activeOption","activeFlag","flag","inlineFlagLabel","selectedCountryLabel","selectCountryLabel","hasInlineFlag","Boolean","lengthHint","lengthTooLong","countryName","validationNode","ReactNode","rendered","message","code","appendToBuffer","char","popBuffer","handleKeyDown","KeyboardEvent","defaultPrevented","key","metaKey","ctrlKey","altKey","currentTarget","selectionStart","selectionEnd","isCollapsedSelection","nextStart","preventDefault","repeat","next","test","toLowerCase","targetOption","handleFocus","FocusEvent","handleBlur","openCountryMenu","shimName","pointerEvents","width","noMatches","displayName"],"sources":["../src/components/PhoneNumberInput/index.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { CountryCode } from \"libphonenumber-js\"\nimport { getCountryCallingCode } from \"libphonenumber-js\"\nimport Select, {\n type Props as SelectProps,\n type SingleValue,\n type StylesConfig,\n} from \"react-select\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport type {\n CountryOption,\n PhoneNumberChangeDetails,\n PhoneNumberInputProps,\n PhoneNumberSelectedCountry,\n} from \"./types\"\nimport { resolveMessages } from \"./messages\"\nimport {\n COMMON_IDD_PREFIXES,\n DEFAULT_COUNTRY,\n buildFallbackSelectedCountry,\n getCachedCountryOptions,\n getLocaleCacheKey,\n getValidCountry,\n normalizeSearchValue,\n optionMatchIndex,\n parseLocaleCacheKey,\n toSelectedCountry,\n} from \"./country-options\"\nimport {\n formatWithAsYouType,\n getLengthIssue,\n sanitizeDigits,\n stripPrefix,\n type LengthIssue,\n} from \"./normalization\"\nimport {\n captureSelectionSnapshot,\n resolveSelection,\n skipFormattingCharactersLeft,\n skipFormattingCharactersRight,\n} from \"./selection\"\nimport {\n HiddenControl,\n NullComponent,\n SuggestionContext,\n SuggestionOption,\n formatCountryOption,\n suggestionSelectStyles,\n type SuggestionContextValue,\n} from \"./suggestions\"\n\n\nexport type {\n CountryOption,\n PhoneNumberChangeDetails,\n PhoneNumberInputMessages,\n PhoneNumberInputProps,\n PhoneNumberInputValidationCode,\n PhoneNumberSelectedCountry,\n} from \"./types\"\n\nconst INVISIBLE_FORMATTING_CHARACTERS =\n /[\\u061C\\u200B-\\u200F\\u202A-\\u202E\\u2066-\\u2069\\uFEFF]/g\n\ntype ParsedInput = Omit<PhoneNumberChangeDetails, \"selectedCountry\"> & {\n displayValue: string\n lengthIssue: LengthIssue | null\n}\n\nfunction stripInvisibleFormatting(value: string) {\n return value.replace(INVISIBLE_FORMATTING_CHARACTERS, \"\")\n}\n\nfunction stripIddPrefix(digits: string) {\n for (const prefix of COMMON_IDD_PREFIXES) {\n if (digits.startsWith(prefix)) {\n return digits.slice(prefix.length)\n }\n }\n return digits\n}\n\nfunction normalizeImplicitInternationalInput(digits: string) {\n const candidate = `+${digits}`\n const { phoneNumber, detectedCountry } = formatWithAsYouType(candidate)\n\n if (phoneNumber?.isValid() && detectedCountry) {\n return candidate\n }\n\n return null\n}\n\nfunction normalizeExplicitInternationalInput(value: string) {\n const cleaned = stripInvisibleFormatting(value).trim()\n if (!cleaned) {\n return null\n }\n\n if (cleaned.startsWith(\"+\")) {\n const digits = sanitizeDigits(cleaned)\n if (!digits) {\n return \"+\"\n }\n\n const digitsWithoutIdd = stripIddPrefix(digits)\n return digitsWithoutIdd ? `+${digitsWithoutIdd}` : \"+\"\n }\n\n const digits = sanitizeDigits(cleaned)\n if (!digits) {\n return null\n }\n\n const digitsWithoutIdd = stripIddPrefix(digits)\n if (digitsWithoutIdd !== digits) {\n return digitsWithoutIdd ? `+${digitsWithoutIdd}` : \"+\"\n }\n\n return null\n}\n\nfunction normalizeInternationalInput(value: string) {\n const explicitInternational = normalizeExplicitInternationalInput(value)\n if (explicitInternational != null) {\n return explicitInternational\n }\n\n const cleaned = stripInvisibleFormatting(value).trim()\n const digits = sanitizeDigits(cleaned)\n if (!digits) {\n return null\n }\n\n return normalizeImplicitInternationalInput(digits)\n}\n\nfunction getDialCode(country: CountryCode | null, parsedDialCode: string | undefined) {\n if (parsedDialCode) {\n return parsedDialCode\n }\n return country ? getCountryCallingCode(country) : null\n}\n\nfunction getInputValueForSelectedCountry(\n value: string,\n option: Pick<CountryOption, \"dialCode\" | \"value\">,\n options?: { allowImplicitInternational?: boolean }\n) {\n const cleaned = stripInvisibleFormatting(value).trim()\n const digits = sanitizeDigits(cleaned)\n\n if (!digits) {\n return `+${option.dialCode}`\n }\n\n const normalizedInternational =\n options?.allowImplicitInternational === false\n ? normalizeExplicitInternationalInput(cleaned)\n : normalizeInternationalInput(cleaned)\n if (normalizedInternational) {\n const normalizedDigits = sanitizeDigits(normalizedInternational)\n if (normalizedDigits.startsWith(option.dialCode)) {\n return normalizedInternational\n }\n\n const { phoneNumber } = formatWithAsYouType(normalizedInternational)\n const currentDialCode = phoneNumber?.countryCallingCode\n const nationalDigits =\n currentDialCode && normalizedDigits.startsWith(currentDialCode)\n ? normalizedDigits.slice(currentDialCode.length)\n : phoneNumber?.nationalNumber ?? normalizedDigits\n\n return `+${option.dialCode}${nationalDigits}`\n }\n\n const { phoneNumber } = formatWithAsYouType(cleaned, option.value)\n return `+${option.dialCode}${phoneNumber?.nationalNumber ?? digits}`\n}\n\nfunction preferSelectedCountry(\n parsed: ParsedInput,\n option: Pick<CountryOption, \"dialCode\" | \"value\">\n): ParsedInput {\n return {\n ...parsed,\n country: option.value,\n countryCallingCode: option.dialCode,\n lengthIssue: getLengthIssue(parsed.rawInput, option.value),\n }\n}\n\nfunction parsePhoneInput(rawValue: string | undefined, baseCountry?: CountryCode): ParsedInput {\n const cleaned = stripInvisibleFormatting(rawValue ?? \"\").trim()\n\n if (!cleaned) {\n const country = baseCountry ?? null\n const countryCallingCode = country ? getCountryCallingCode(country) : null\n\n return {\n displayValue: \"\",\n formattedInternational: \"\",\n formattedNational: \"\",\n e164: null,\n country,\n countryCallingCode,\n nationalNumber: \"\",\n rawInput: \"\",\n isValid: false,\n lengthIssue: null,\n }\n }\n\n const normalizedInternational = normalizeInternationalInput(cleaned)\n const shouldFormat = normalizedInternational != null || baseCountry != null\n\n if (!shouldFormat) {\n return {\n displayValue: cleaned,\n formattedInternational: cleaned,\n formattedNational: cleaned,\n e164: null,\n country: null,\n countryCallingCode: null,\n nationalNumber: sanitizeDigits(cleaned),\n rawInput: cleaned,\n isValid: false,\n lengthIssue: null,\n }\n }\n\n const normalized = normalizedInternational ?? cleaned\n const {\n international,\n national,\n formatted,\n phoneNumber,\n detectedCountry,\n } = formatWithAsYouType(normalized, baseCountry)\n const hasInternationalPrefix = normalizedInternational != null\n const country = hasInternationalPrefix\n ? detectedCountry ?? baseCountry ?? null\n : baseCountry ?? detectedCountry ?? null\n const countryCallingCode = getDialCode(country, phoneNumber?.countryCallingCode)\n const normalizedDigits = sanitizeDigits(normalized)\n const nationalNumber =\n phoneNumber?.nationalNumber ??\n (countryCallingCode && normalized.startsWith(\"+\")\n ? stripPrefix(normalizedDigits, countryCallingCode)\n : sanitizeDigits(cleaned))\n const displayValue = hasInternationalPrefix ? international : formatted\n\n return {\n displayValue,\n formattedInternational: phoneNumber?.formatInternational() ?? international,\n formattedNational: phoneNumber?.formatNational() ?? national,\n e164: phoneNumber?.number ?? null,\n country,\n countryCallingCode,\n nationalNumber,\n rawInput: normalized,\n isValid: phoneNumber?.isValid() ?? false,\n lengthIssue: country ? getLengthIssue(normalized, country) : null,\n }\n}\n\nexport const PhoneNumberInput = React.forwardRef<HTMLInputElement, PhoneNumberInputProps>(\n function PhoneNumberInput(props, forwardedRef) {\n const {\n value,\n defaultCountry,\n country: countryProp,\n locale,\n onChange,\n onCountryChange,\n className,\n inputClassName,\n disabled,\n readOnly,\n selectProps,\n autofillShimName,\n messages: messagesProp,\n renderValidationMessage,\n ...restProps\n } = props\n\n const {\n onFocus: onInputFocus,\n onBlur: onInputBlur,\n onKeyDown: onInputKeyDown,\n name: inputName,\n autoComplete: inputAutoComplete,\n ...restInputProps\n } = restProps\n\n const controlledCountry = typeof countryProp === \"string\" ? countryProp : null\n const localeCacheKey = getLocaleCacheKey(locale)\n const localeForBuild = React.useMemo(\n () => parseLocaleCacheKey(localeCacheKey),\n [localeCacheKey]\n )\n const resolvedMessages = React.useMemo(\n () => resolveMessages(localeForBuild, messagesProp),\n [localeForBuild, messagesProp]\n )\n const countryOptions = React.useMemo(\n () => getCachedCountryOptions(localeForBuild, localeCacheKey),\n [localeCacheKey, localeForBuild]\n )\n const resolveSelectedCountry = React.useCallback(\n (country: CountryCode): PhoneNumberSelectedCountry => {\n const match = countryOptions.find((candidate) => candidate.value === country)\n if (match) {\n return toSelectedCountry(match)\n }\n return buildFallbackSelectedCountry(country)\n },\n [countryOptions]\n )\n const menuPriorityCountry = React.useMemo(() => {\n const candidate = getValidCountry(defaultCountry ?? countryProp ?? DEFAULT_COUNTRY)\n if (countryOptions.some((option) => option.value === candidate)) {\n return candidate\n }\n return countryOptions[0]?.value ?? DEFAULT_COUNTRY\n }, [countryOptions, countryProp, defaultCountry])\n\n const initialStateRef = React.useRef<ParsedInput | null>(null)\n\n if (!initialStateRef.current) {\n const initialState = parsePhoneInput(value, controlledCountry ?? undefined)\n initialStateRef.current = initialState\n }\n\n const initialState = initialStateRef.current\n\n const [uncontrolledCountry, setUncontrolledCountry] = React.useState<CountryCode | null>(\n controlledCountry ? null : initialState.country\n )\n const [inputValueState, setInputValueState] = React.useState(initialState.displayValue)\n const [countryQuery, setCountryQuery] = React.useState(\"\")\n const [showSuggestions, setShowSuggestions] = React.useState(false)\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1)\n const [isFocused, setIsFocused] = React.useState(false)\n const [shouldRenderSelect, setShouldRenderSelect] = React.useState(false)\n const [lengthIssue, setLengthIssue] = React.useState<LengthIssue | null>(\n initialState.lengthIssue\n )\n\n const manualSelectionCountryRef = React.useRef<CountryCode | null>(null)\n const keyboardBufferRef = React.useRef(\"\")\n const bufferTimeoutRef = React.useRef<number | null>(null)\n const scrollBehaviorRef = React.useRef<ScrollBehavior>(\"smooth\")\n const pendingSelectionRef = React.useRef<{ start: number; end: number } | null>(null)\n const hasNotifiedCountryRef = React.useRef(false)\n const lastNotifiedCountryRef = React.useRef<CountryCode | null>(null)\n const inputRef = React.useRef<HTMLInputElement | null>(null)\n\n const activeCountry = controlledCountry ?? uncontrolledCountry\n const explicitFormattingCountry = controlledCountry ?? manualSelectionCountryRef.current ?? undefined\n\n React.useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement, [])\n\n React.useLayoutEffect(() => {\n setShouldRenderSelect(true)\n }, [])\n\n React.useLayoutEffect(() => {\n const selection = pendingSelectionRef.current\n if (!selection) {\n return\n }\n\n const input = inputRef.current\n pendingSelectionRef.current = null\n if (!input) {\n return\n }\n\n const { start, end } = selection\n input.setSelectionRange(start, end)\n }, [inputValueState])\n\n const selectOverrides = selectProps ?? {}\n const generatedSelectInstanceId = React.useId()\n const {\n styles: userSelectStyles,\n components: userSelectComponents,\n classNamePrefix: userClassNamePrefix,\n formatOptionLabel: userFormatOptionLabel,\n menuPortalTarget: userMenuPortalTarget,\n menuPosition: userMenuPosition,\n ...forwardedSelectProps\n } = selectOverrides\n const {\n instanceId: userSelectInstanceId,\n noOptionsMessage,\n ...restForwardedSelectProps\n } = forwardedSelectProps\n const selectInstanceId = userSelectInstanceId ?? generatedSelectInstanceId\n const [defaultMenuPortalTarget, setDefaultMenuPortalTarget] =\n React.useState<HTMLElement | null>(null)\n const hasUserMenuPortalTarget = \"menuPortalTarget\" in selectOverrides\n const menuPortalTarget = hasUserMenuPortalTarget\n ? userMenuPortalTarget\n : defaultMenuPortalTarget\n\n const mergedSelectStyles = React.useMemo<StylesConfig<CountryOption, false>>(\n () => {\n const userMenuPortal = userSelectStyles?.menuPortal\n\n return {\n ...suggestionSelectStyles,\n ...(userSelectStyles ?? {}),\n menuPortal: (provided, state) => {\n const baseWithZIndex = {\n ...provided,\n zIndex: 1300,\n }\n const base = userMenuPortal ? userMenuPortal(baseWithZIndex, state) : baseWithZIndex\n\n if (typeof document === \"undefined\" || !menuPortalTarget || menuPortalTarget === document.body) {\n return base\n }\n\n const portalRect = menuPortalTarget.getBoundingClientRect()\n return {\n ...base,\n left: typeof base.left === \"number\" ? base.left - portalRect.left : base.left,\n top: typeof base.top === \"number\" ? base.top - portalRect.top : base.top,\n }\n },\n }\n },\n [menuPortalTarget, userSelectStyles]\n )\n\n React.useLayoutEffect(() => {\n if (hasUserMenuPortalTarget || typeof document === \"undefined\") {\n return\n }\n\n const portalTarget =\n inputRef.current?.closest<HTMLElement>(\n \"[data-slot='dialog-content'], [data-slot='sheet-content'], [role='dialog']\"\n ) ?? document.body\n setDefaultMenuPortalTarget(portalTarget)\n }, [hasUserMenuPortalTarget])\n\n const mergedSelectComponents = React.useMemo(() => {\n const baseComponents = {\n Control: HiddenControl,\n IndicatorsContainer: NullComponent,\n DropdownIndicator: NullComponent,\n IndicatorSeparator: NullComponent,\n ValueContainer: NullComponent,\n }\n\n const overrides = userSelectComponents ?? {}\n\n if (!overrides.Option) {\n return {\n ...baseComponents,\n ...overrides,\n Option: SuggestionOption,\n }\n }\n\n return {\n ...baseComponents,\n ...overrides,\n }\n }, [userSelectComponents])\n\n React.useEffect(() => () => {\n if (bufferTimeoutRef.current != null && typeof window !== \"undefined\") {\n window.clearTimeout(bufferTimeoutRef.current)\n }\n }, [])\n\n React.useEffect(() => {\n if (value == null) {\n return\n }\n\n const parsed = parsePhoneInput(value, explicitFormattingCountry)\n keyboardBufferRef.current = \"\"\n\n setInputValueState(parsed.displayValue)\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(parsed.lengthIssue)\n\n if (!controlledCountry && parsed.country !== uncontrolledCountry) {\n setUncontrolledCountry(parsed.country)\n }\n }, [controlledCountry, explicitFormattingCountry, uncontrolledCountry, value])\n\n React.useEffect(() => {\n const country = activeCountry ?? null\n if (!hasNotifiedCountryRef.current && country == null) {\n return\n }\n\n if (hasNotifiedCountryRef.current && lastNotifiedCountryRef.current === country) {\n return\n }\n\n hasNotifiedCountryRef.current = true\n lastNotifiedCountryRef.current = country\n onCountryChange?.(country, country ? resolveSelectedCountry(country) : null)\n }, [activeCountry, onCountryChange, resolveSelectedCountry])\n\n const emitChange = React.useCallback(\n (details: Omit<PhoneNumberChangeDetails, \"selectedCountry\">) => {\n onChange?.({\n ...details,\n selectedCountry: details.country ? resolveSelectedCountry(details.country) : null,\n })\n },\n [onChange, resolveSelectedCountry]\n )\n\n const scheduleBufferReset = React.useCallback(() => {\n if (typeof window === \"undefined\") {\n return\n }\n\n if (bufferTimeoutRef.current != null) {\n window.clearTimeout(bufferTimeoutRef.current)\n }\n\n bufferTimeoutRef.current = window.setTimeout(() => {\n keyboardBufferRef.current = \"\"\n bufferTimeoutRef.current = null\n }, 800)\n }, [])\n\n const applyParsedInput = React.useCallback(\n (parsed: ParsedInput, snapshot: ReturnType<typeof captureSelectionSnapshot> | null) => {\n setInputValueState(parsed.displayValue)\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(parsed.lengthIssue)\n\n if (!controlledCountry && parsed.country !== uncontrolledCountry) {\n setUncontrolledCountry(parsed.country)\n }\n\n if (snapshot) {\n pendingSelectionRef.current = resolveSelection(snapshot, parsed.displayValue)\n }\n\n emitChange({\n formattedInternational: parsed.formattedInternational,\n formattedNational: parsed.formattedNational,\n e164: parsed.e164,\n country: parsed.country,\n countryCallingCode: parsed.countryCallingCode,\n nationalNumber: parsed.nationalNumber,\n rawInput: parsed.rawInput,\n isValid: parsed.isValid,\n })\n },\n [controlledCountry, emitChange, uncontrolledCountry]\n )\n\n const handleInputChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const target = event.target\n const snapshot = captureSelectionSnapshot(target)\n const raw = target.value\n keyboardBufferRef.current = \"\"\n\n const normalizedExplicitInternational = normalizeExplicitInternationalInput(raw)\n const manualCountry = manualSelectionCountryRef.current\n if (normalizedExplicitInternational != null && manualCountry) {\n const manualDialCode = getCountryCallingCode(manualCountry)\n if (!sanitizeDigits(normalizedExplicitInternational).startsWith(manualDialCode)) {\n manualSelectionCountryRef.current = null\n }\n } else if (normalizedExplicitInternational != null) {\n manualSelectionCountryRef.current = null\n }\n\n const activeManualCountry = manualSelectionCountryRef.current\n const rawDigits = sanitizeDigits(raw)\n if (\n !controlledCountry &&\n activeManualCountry &&\n normalizedExplicitInternational == null &&\n rawDigits\n ) {\n const manualOption = {\n value: activeManualCountry,\n dialCode: getCountryCallingCode(activeManualCountry),\n }\n const parsed = preferSelectedCountry(\n parsePhoneInput(\n getInputValueForSelectedCountry(\n raw,\n {\n value: manualOption.value,\n dialCode: manualOption.dialCode,\n },\n { allowImplicitInternational: false }\n ),\n activeManualCountry\n ),\n manualOption\n )\n applyParsedInput(parsed, snapshot)\n return\n }\n\n const baseCountry = controlledCountry ?? activeManualCountry ?? undefined\n const parsed = parsePhoneInput(raw, baseCountry)\n applyParsedInput(parsed, snapshot)\n },\n [applyParsedInput, controlledCountry]\n )\n\n const handleCountrySelect = React.useCallback(\n (option: SingleValue<CountryOption>) => {\n if (!option) {\n return\n }\n\n manualSelectionCountryRef.current = option.value\n const nextInputValue = getInputValueForSelectedCountry(inputValueState, option)\n const parsed = preferSelectedCountry(\n parsePhoneInput(nextInputValue, option.value),\n option\n )\n\n setInputValueState(parsed.displayValue)\n pendingSelectionRef.current = {\n start: parsed.displayValue.length,\n end: parsed.displayValue.length,\n }\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(parsed.lengthIssue)\n\n if (!controlledCountry) {\n setUncontrolledCountry(option.value)\n }\n\n emitChange({\n formattedInternational: parsed.formattedInternational,\n formattedNational: parsed.formattedNational,\n e164: parsed.e164,\n country: parsed.country,\n countryCallingCode: parsed.countryCallingCode,\n nationalNumber: parsed.nationalNumber,\n rawInput: parsed.rawInput,\n isValid: parsed.isValid,\n })\n\n requestAnimationFrame(() => {\n inputRef.current?.focus()\n })\n },\n [controlledCountry, emitChange, inputValueState]\n )\n\n const filteredOptions = React.useMemo(() => {\n if (!showSuggestions) {\n return [] as CountryOption[]\n }\n\n const results: CountryOption[] = []\n\n const pushUnique = (option: CountryOption | undefined) => {\n if (option && !results.some((existing) => existing.value === option.value)) {\n results.push(option)\n }\n }\n\n const priorityOption = countryOptions.find((option) => option.value === menuPriorityCountry)\n const currentOption = activeCountry\n ? countryOptions.find((option) => option.value === activeCountry)\n : undefined\n const query = countryQuery.trim()\n const digitQuery = sanitizeDigits(query)\n const normalizedQuery = normalizeSearchValue(query)\n\n if (!digitQuery && !normalizedQuery) {\n pushUnique(currentOption)\n pushUnique(priorityOption)\n countryOptions.forEach(pushUnique)\n return results\n }\n\n if (digitQuery) {\n const dialMatches = countryOptions\n .filter((option) => option.dialCode.startsWith(digitQuery))\n .sort((a, b) => {\n const aExact = a.dialCode === digitQuery\n const bExact = b.dialCode === digitQuery\n if (aExact && !bExact) {\n return -1\n }\n if (!aExact && bExact) {\n return 1\n }\n return a.dialCode.length - b.dialCode.length\n })\n dialMatches.forEach(pushUnique)\n }\n\n if (normalizedQuery) {\n const nameMatches = countryOptions\n .filter((option) =>\n option.normalizedSearchableTokens.some((token) => token.includes(normalizedQuery))\n )\n .sort((a, b) => {\n const aIndex = optionMatchIndex(a.normalizedSearchableTokens, normalizedQuery)\n const bIndex = optionMatchIndex(b.normalizedSearchableTokens, normalizedQuery)\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n return a.name.localeCompare(b.name)\n })\n nameMatches.forEach(pushUnique)\n }\n\n pushUnique(currentOption)\n pushUnique(priorityOption)\n if (results.length === 0) {\n countryOptions.forEach(pushUnique)\n }\n\n return results\n }, [activeCountry, countryOptions, countryQuery, menuPriorityCountry, showSuggestions])\n\n const suggestionMenuIsOpen = isFocused && showSuggestions && filteredOptions.length > 0\n\n React.useEffect(() => {\n if (!suggestionMenuIsOpen) {\n scrollBehaviorRef.current = \"smooth\"\n }\n }, [suggestionMenuIsOpen])\n\n React.useEffect(() => {\n if (!suggestionMenuIsOpen) {\n setHighlightedIndex(-1)\n return\n }\n\n if (filteredOptions.length === 0) {\n setHighlightedIndex(-1)\n return\n }\n\n setHighlightedIndex((current) => {\n if (current < 0 || current >= filteredOptions.length) {\n return 0\n }\n return current\n })\n }, [filteredOptions, suggestionMenuIsOpen])\n\n const highlightedOption =\n highlightedIndex >= 0 ? filteredOptions[highlightedIndex] ?? null : null\n\n React.useEffect(() => {\n if (highlightedIndex < 0) {\n scrollBehaviorRef.current = \"smooth\"\n }\n }, [highlightedIndex])\n\n const consumeScrollBehavior = React.useCallback(() => {\n const behavior = scrollBehaviorRef.current\n scrollBehaviorRef.current = \"smooth\"\n return behavior\n }, [])\n\n const updateHighlightedOption = React.useCallback(\n (option: CountryOption) => {\n const index = filteredOptions.findIndex((candidate) => candidate.value === option.value)\n if (index !== -1) {\n setHighlightedIndex(index)\n }\n },\n [filteredOptions]\n )\n\n const selectFormatOptionLabel = React.useCallback<\n NonNullable<SelectProps<CountryOption, false>[\"formatOptionLabel\"]>\n >(\n (option, meta) => {\n if (userFormatOptionLabel) {\n return userFormatOptionLabel(option, meta)\n }\n return formatCountryOption(option)\n },\n [userFormatOptionLabel]\n )\n\n const optionLabelRenderer = React.useCallback(\n (option: CountryOption) =>\n selectFormatOptionLabel(option, {\n context: \"menu\",\n inputValue: countryQuery,\n selectValue: [],\n }),\n [countryQuery, selectFormatOptionLabel]\n )\n\n const highlightContextValue = React.useMemo<SuggestionContextValue>(\n () => ({\n highlightedValue: highlightedOption?.value ?? null,\n setHighlightedOption: updateHighlightedOption,\n renderOptionLabel: optionLabelRenderer,\n consumeScrollBehavior,\n }),\n [consumeScrollBehavior, highlightedOption, optionLabelRenderer, updateHighlightedOption]\n )\n\n const activeOption = activeCountry\n ? countryOptions.find((option) => option.value === activeCountry)\n : undefined\n const activeFlag = activeOption?.flag ?? \"\"\n const inlineFlagLabel = activeCountry\n ? resolvedMessages.selectedCountryLabel(activeOption?.name ?? activeCountry)\n : resolvedMessages.selectCountryLabel\n const hasInlineFlag = Boolean(activeCountry && activeFlag)\n const lengthHint =\n lengthIssue === \"TOO_LONG\"\n ? resolvedMessages.lengthTooLong(activeOption?.name ?? activeCountry ?? null)\n : null\n const countryName = activeOption?.name ?? activeCountry ?? null\n\n let validationNode: React.ReactNode = null\n if (lengthHint) {\n const rendered = renderValidationMessage?.({\n message: lengthHint,\n code: \"TOO_LONG\",\n countryName,\n })\n validationNode =\n rendered === undefined ? (\n <p className=\"mt-1 text-xs text-destructive\">\n <span>{lengthHint}</span>\n </p>\n ) : (\n rendered\n )\n }\n\n const appendToBuffer = React.useCallback(\n (char: string) => {\n keyboardBufferRef.current = `${keyboardBufferRef.current}${char}`.slice(-12)\n setCountryQuery(keyboardBufferRef.current)\n setShowSuggestions(true)\n scheduleBufferReset()\n },\n [scheduleBufferReset]\n )\n\n const popBuffer = React.useCallback(() => {\n const current = keyboardBufferRef.current\n if (!current) {\n return\n }\n keyboardBufferRef.current = current.slice(0, -1)\n setCountryQuery(keyboardBufferRef.current)\n if (keyboardBufferRef.current) {\n scheduleBufferReset()\n }\n }, [scheduleBufferReset])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n onInputKeyDown?.(event)\n if (event.defaultPrevented) {\n return\n }\n\n const key = event.key\n\n if (event.metaKey || event.ctrlKey || event.altKey) {\n return\n }\n\n const target = event.currentTarget\n const value = target.value\n const selectionStart = target.selectionStart ?? 0\n const selectionEnd = target.selectionEnd ?? selectionStart\n const isCollapsedSelection = selectionStart === selectionEnd\n\n if (key === \"Backspace\" && isCollapsedSelection) {\n const nextStart = skipFormattingCharactersLeft(value, selectionStart)\n if (nextStart !== selectionStart) {\n target.setSelectionRange(nextStart, nextStart)\n }\n } else if (key === \"ArrowLeft\" && isCollapsedSelection) {\n const nextStart = skipFormattingCharactersLeft(value, selectionStart)\n if (nextStart !== selectionStart) {\n event.preventDefault()\n target.setSelectionRange(nextStart, nextStart)\n return\n }\n } else if (key === \"ArrowRight\" && isCollapsedSelection) {\n const nextStart = skipFormattingCharactersRight(value, selectionEnd)\n if (nextStart !== selectionEnd) {\n event.preventDefault()\n target.setSelectionRange(nextStart, nextStart)\n return\n }\n }\n\n if (key === \"ArrowDown\") {\n scrollBehaviorRef.current = event.repeat ? \"auto\" : \"smooth\"\n event.preventDefault()\n if (!showSuggestions) {\n setShowSuggestions(true)\n setHighlightedIndex(filteredOptions.length > 0 ? 0 : -1)\n return\n }\n\n if (filteredOptions.length > 0) {\n setHighlightedIndex((current) => {\n const next = current < 0 ? 0 : (current + 1) % filteredOptions.length\n return next\n })\n }\n return\n }\n\n if (key === \"ArrowUp\") {\n scrollBehaviorRef.current = event.repeat ? \"auto\" : \"smooth\"\n event.preventDefault()\n if (!showSuggestions) {\n setShowSuggestions(true)\n setHighlightedIndex(filteredOptions.length > 0 ? filteredOptions.length - 1 : -1)\n return\n }\n\n if (filteredOptions.length > 0) {\n setHighlightedIndex((current) => {\n if (current < 0) {\n return filteredOptions.length - 1\n }\n return (current - 1 + filteredOptions.length) % filteredOptions.length\n })\n }\n return\n }\n\n if (/^[a-z]$/i.test(key)) {\n event.preventDefault()\n if (!showSuggestions) {\n setShowSuggestions(true)\n setHighlightedIndex(filteredOptions.length > 0 ? 0 : -1)\n }\n appendToBuffer(key.toLowerCase())\n return\n }\n\n if (suggestionMenuIsOpen) {\n if (key === \"Backspace\" && keyboardBufferRef.current) {\n event.preventDefault()\n popBuffer()\n return\n }\n\n if (key === \"Escape\") {\n event.preventDefault()\n keyboardBufferRef.current = \"\"\n setCountryQuery(\"\")\n setShowSuggestions(false)\n return\n }\n\n if (key === \"Enter\" && filteredOptions.length > 0) {\n event.preventDefault()\n const targetOption = highlightedOption ?? filteredOptions[0]\n handleCountrySelect(targetOption)\n return\n }\n }\n },\n [\n appendToBuffer,\n filteredOptions,\n handleCountrySelect,\n highlightedOption,\n onInputKeyDown,\n popBuffer,\n showSuggestions,\n suggestionMenuIsOpen,\n ]\n )\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true)\n onInputFocus?.(event)\n },\n [onInputFocus]\n )\n\n const handleBlur = React.useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false)\n setShowSuggestions(false)\n keyboardBufferRef.current = \"\"\n setCountryQuery(\"\")\n onInputBlur?.(event)\n },\n [onInputBlur]\n )\n\n const openCountryMenu = React.useCallback(() => {\n if (disabled || readOnly) {\n return\n }\n\n keyboardBufferRef.current = \"\"\n setCountryQuery(\"\")\n setShowSuggestions(true)\n setHighlightedIndex((current) => (current < 0 ? 0 : current))\n\n requestAnimationFrame(() => {\n inputRef.current?.focus()\n })\n }, [disabled, readOnly])\n\n const shimName = autofillShimName ?? (inputName ? `${inputName}_shim` : undefined)\n\n return (\n <div className={cn(\"relative flex flex-col\", className)}>\n <div className=\"relative\">\n <input\n {...restInputProps}\n ref={inputRef}\n type=\"tel\"\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background py-2 text-base ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"pl-11 pr-3\",\n inputClassName\n )}\n name={inputName}\n value={inputValueState}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n autoComplete={inputAutoComplete ?? \"off\"}\n />\n <button\n type=\"button\"\n className={cn(\n \"absolute left-3 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded border text-lg leading-none transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n hasInlineFlag\n ? \"border-transparent\"\n : \"border-dashed border-border text-muted-foreground\",\n disabled\n ? \"cursor-not-allowed opacity-50\"\n : readOnly\n ? \"cursor-default\"\n : \"cursor-pointer hover:bg-muted\"\n )}\n aria-label={inlineFlagLabel}\n onMouseDown={(event) => event.preventDefault()}\n onClick={openCountryMenu}\n tabIndex={-1}\n disabled={disabled}\n >\n <span aria-hidden=\"true\">\n {hasInlineFlag ? activeFlag : \"?\"}\n </span>\n </button>\n </div>\n\n {shimName ? (\n <input\n tabIndex={-1}\n autoComplete=\"tel\"\n name={shimName}\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute left-0 top-0 h-0 w-0 opacity-0\"\n />\n ) : null}\n\n <div\n className=\"absolute left-0 top-full z-30 mt-1\"\n style={{\n pointerEvents: suggestionMenuIsOpen ? \"auto\" : \"none\",\n width: \"min(260px, 100%)\",\n }}\n onMouseDown={(event) => event.preventDefault()}\n >\n {shouldRenderSelect ? (\n <SuggestionContext.Provider value={highlightContextValue}>\n <Select<CountryOption, false>\n {...restForwardedSelectProps}\n instanceId={selectInstanceId}\n menuIsOpen={suggestionMenuIsOpen}\n options={filteredOptions}\n value={null}\n components={mergedSelectComponents}\n styles={mergedSelectStyles}\n isClearable={false}\n isSearchable={false}\n backspaceRemovesValue={false}\n tabSelectsValue={false}\n menuShouldScrollIntoView={false}\n menuPortalTarget={menuPortalTarget}\n menuPosition={userMenuPosition ?? (menuPortalTarget ? \"fixed\" : \"absolute\")}\n onChange={handleCountrySelect}\n classNamePrefix={userClassNamePrefix ?? \"phone-number-suggestions\"}\n placeholder=\"\"\n formatOptionLabel={selectFormatOptionLabel}\n noOptionsMessage={\n noOptionsMessage ?? (() => resolvedMessages.noMatches)\n }\n />\n </SuggestionContext.Provider>\n ) : null}\n </div>\n\n {validationNode}\n </div>\n )\n }\n)\n\nPhoneNumberInput.displayName = \"PhoneNumberInput\"\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index362.js","names":["React","CountryCode","ControlProps","OptionProps","StylesConfig","cn","CountryOption","SuggestionContextValue","highlightedValue","setHighlightedOption","option","renderOptionLabel","ReactNode","consumeScrollBehavior","ScrollBehavior","SuggestionContext","createContext","assignOptionRef","ref","Ref","HTMLDivElement","node","Reflect","set","SuggestionOption","props","$","_c","context","useContext","isActive","data","value","onMouseMove","receivedClassName","restInnerProps","innerProps","className","t0","_temp","renderLabel","optionRef","useRef","innerRef","t1","current","assignRef","t2","behavior","target","parent","parentElement","top","offsetTop","bottom","offsetHeight","viewTop","scrollTop","viewBottom","clientHeight","scrollIntoView","block","t3","useEffect","t4","event","handleMouseMove","t5","t6","t7","t8","suggestionSelectStyles","control","display","menu","provided","marginTop","borderRadius","boxShadow","backgroundColor","overflow","zIndex","menuList","maxHeight","padding","state","fontSize","isFocused","isSelected","color","cursor","noOptionsMessage","HiddenControl","children","Symbol","for","height","minHeight","opacity","pointerEvents","NullComponent","formatCountryOption","flag","name","dialCode"],"sources":["../src/components/PhoneNumberInput/suggestions.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { CountryCode } from \"libphonenumber-js\"\nimport type { ControlProps, OptionProps, StylesConfig } from \"react-select\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport type { CountryOption } from \"./types\"\n\n\nexport type SuggestionContextValue = {\n highlightedValue: CountryCode | null\n setHighlightedOption: (option: CountryOption) => void\n renderOptionLabel: (option: CountryOption) => React.ReactNode\n consumeScrollBehavior: () => ScrollBehavior\n}\n\nexport const SuggestionContext = React.createContext<SuggestionContextValue | null>(null)\n\nfunction assignOptionRef(ref: React.Ref<HTMLDivElement> | undefined, node: HTMLDivElement | null) {\n if (typeof ref === \"function\") {\n ref(node)\n return\n }\n if (ref && typeof ref === \"object\") {\n Reflect.set(ref, \"current\", node)\n }\n}\n\nexport const SuggestionOption = (props: OptionProps<CountryOption, false>) => {\n const context = React.useContext(SuggestionContext)\n const isActive = context?.highlightedValue === props.data.value\n const { onMouseMove, className: receivedClassName, ...restInnerProps } = props.innerProps\n const renderLabel =\n context?.renderOptionLabel ?? ((option: CountryOption) => formatCountryOption(option))\n const optionRef = React.useRef<HTMLDivElement | null>(null)\n const { innerRef } = props\n\n const assignRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n optionRef.current = node\n assignOptionRef(innerRef, node)\n },\n [innerRef]\n )\n\n React.useEffect(() => {\n if (!isActive) {\n return\n }\n\n const consumeScrollBehavior = context?.consumeScrollBehavior\n const behavior = consumeScrollBehavior ? consumeScrollBehavior() : \"smooth\"\n\n const target = optionRef.current\n if (!target) {\n return\n }\n\n const parent = target.parentElement\n if (!parent) {\n return\n }\n\n const top = target.offsetTop\n const bottom = top + target.offsetHeight\n const viewTop = parent.scrollTop\n const viewBottom = viewTop + parent.clientHeight\n\n if (top >= viewTop && bottom <= viewBottom) {\n return\n }\n\n target.scrollIntoView({\n block: \"nearest\",\n behavior,\n })\n }, [context, isActive])\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseMove?.(event)\n context?.setHighlightedOption(props.data)\n }\n\n return (\n <div\n ref={assignRef}\n {...restInnerProps}\n onMouseMove={handleMouseMove}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-3 px-3 py-2 text-sm\",\n receivedClassName,\n isActive ? \"bg-muted text-foreground\" : \"text-foreground hover:bg-muted\"\n )}\n >\n {renderLabel(props.data)}\n </div>\n )\n}\n\nexport const suggestionSelectStyles: StylesConfig<CountryOption, false> = {\n control: () => ({\n display: \"none\",\n }),\n menu: (provided) => ({\n ...provided,\n marginTop: 4,\n borderRadius: \"var(--radius)\",\n boxShadow: \"0 18px 36px rgba(15, 23, 42, 0.18)\",\n backgroundColor: \"hsl(var(--popover))\",\n overflow: \"hidden\",\n zIndex: 20,\n }),\n menuList: (provided) => ({\n ...provided,\n maxHeight: 240,\n padding: 0,\n }),\n option: (provided, state) => ({\n ...provided,\n fontSize: \"0.875rem\",\n backgroundColor: state.isFocused\n ? \"hsl(var(--muted))\"\n : state.isSelected\n ? \"hsl(var(--accent))\"\n : \"transparent\",\n color: state.isSelected\n ? \"hsl(var(--accent-foreground))\"\n : \"hsl(var(--foreground))\",\n cursor: \"pointer\",\n }),\n noOptionsMessage: (provided) => ({\n ...provided,\n fontSize: \"0.875rem\",\n color: \"hsl(var(--muted-foreground))\",\n }),\n}\n\nexport const HiddenControl = (props: ControlProps<CountryOption, false>) => {\n const { children, innerProps, innerRef } = props\n\n return (\n <div\n {...innerProps}\n ref={innerRef}\n style={{\n height: 0,\n minHeight: 0,\n opacity: 0,\n overflow: \"hidden\",\n pointerEvents: \"none\",\n }}\n >\n {children}\n </div>\n )\n}\n\nexport const NullComponent = () => null\n\nexport function formatCountryOption(option: CountryOption) {\n return (\n <>\n <span className=\"flex min-w-0 items-center gap-2\">\n {option.flag ? (\n <span aria-hidden=\"true\" className=\"text-lg leading-none\">\n {option.flag}\n </span>\n ) : null}\n <span className=\"truncate\">{option.name}</span>\n </span>\n <span className=\"text-xs text-muted-foreground\">+{option.dialCode}</span>\n </>\n )\n}\n"],"mappings":";;;;;AAgBA,IAAae,IAAoBf,EAAMgB,cAA6C,IAAI;AAExF,SAASC,EAAgBC,GAA4CG,GAA6B;CAChG,IAAI,OAAOH,KAAQ,YAAY;EAC7BA,EAAIG,CAAI;EACR;CACF;CACA,AAAIH,KAAO,OAAOA,KAAQ,YACxBI,QAAQC,IAAIL,GAAK,WAAWG,CAAI;AAEpC;AAEA,IAAaG,KAAmBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAC9BC,IAAgB5B,EAAK6B,WAAYd,CAAiB,GAClDe,IAAiBF,GAAOpB,qBAAuBiB,EAAKM,KAAKC,OAAMC,GAAAC,GAAAC;CAAA,AAAAT,EAAA,OAAAD,EAAAW,cAC0BH,IAAAP,EAAA,IAAAQ,IAAAR,EAAA,IAAAS,IAAAT,EAAA,OAAzF,iBAAAW,WAAAH,MAAAC,KAAyEV,EAAKW,YAAWV,EAAA,KAAAD,EAAAW,YAAAV,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,GAAAR,EAAA,KAAAS;CAAA,IAAAG;CAAA,AAAAZ,EAAA,OAAAE,GAAAjB,oBAED2B,IAAAZ,EAAA,MAAtFY,IAAAV,GAAOjB,qBAAP4B,GAAsFb,EAAA,KAAAE,GAAAjB,mBAAAe,EAAA,KAAAY;CADxF,IAAAE,IACEF,GACFG,IAAkBzC,EAAK0C,OAA+B,IAAI,GAC1D,EAAAC,gBAAqBlB,GAAKmB;CAAA,AAAAlB,EAAA,OAAAiB,IAMvBC,IAAAlB,EAAA,MAHDkB,KAAAvB,MAAA;EAEEJ,AADAwB,EAASI,UAAWxB,GACpBJ,EAAgB0B,GAAUtB,CAAI;CAAC,GAChCK,EAAA,KAAAiB,GAAAjB,EAAA,KAAAkB;CAJH,IAAAE,IAAkBF,GAMjBG;CAAA,AAAArB,EAAA,OAAAE,GAAAf,yBAAAa,EAAA,OAAAI,KAEeiB,UAAA;EACd,IAAI,CAACjB,GAAQ;EAIb,IAAAjB,IAA8Be,GAAOf,uBACrCmC,IAAiBnC,IAAwBA,EAAiC,IAAzD,UAEjBoC,IAAeR,EAASI;EACxB,IAAI,CAACI,GAAM;EAIX,IAAAC,IAAeD,EAAME;EACrB,IAAI,CAACD,GAAM;EAIX,IAAAE,IAAYH,EAAMI,WAClBC,IAAeF,IAAMH,EAAMM,cAC3BC,IAAgBN,EAAMO,WACtBC,IAAmBF,IAAUN,EAAMS;EAE/BP,KAAOI,KAAWF,KAAUI,KAIhCT,EAAMW,eAAgB;GAAAC,OACb;GAASb;EAElB,CAAC;CAAC,GACHtB,EAAA,KAAAE,GAAAf,uBAAAa,EAAA,KAAAI,GAAAJ,EAAA,MAAAqB,KAAAA,IAAArB,EAAA;CAAA,IAAAoC;CA/BD9D,AA+BC0B,EAAA,QAAAE,KAAAF,EAAA,QAAAI,KAAEgC,IAAA,CAAClC,GAASE,CAAQ,GAACJ,EAAA,MAAAE,GAAAF,EAAA,MAAAI,GAAAJ,EAAA,MAAAoC,KAAAA,IAAApC,EAAA,KA/BtB1B,EAAK+D,UAAWhB,GA+Bbe,CAAmB;CAAC,IAAAE;CAAA,AAAAtC,EAAA,QAAAE,KAAAF,EAAA,QAAAO,KAAAP,EAAA,QAAAD,EAAAM,QAECiC,KAAAC,MAAA;EAEtBrC,AADAK,IAAcgC,CAAK,GACnBrC,GAAOnB,qBAAuBgB,EAAKM,IAAK;CAAC,GAC1CL,EAAA,MAAAE,GAAAF,EAAA,MAAAO,GAAAP,EAAA,MAAAD,EAAAM,MAAAL,EAAA,MAAAsC,KAAAA,IAAAtC,EAAA;CAHD,IAAAwC,IAAwBF,GAalBG,IAAArC,IAAA,6BAAA,kCAAwEsC;CAAA,AAAA1C,EAAA,QAAAQ,KAAAR,EAAA,QAAAyC,KAH/DC,IAAA/D,EACT,4EACA6B,GACAiC,CACF,GAACzC,EAAA,MAAAQ,GAAAR,EAAA,MAAAyC,GAAAzC,EAAA,MAAA0C,KAAAA,IAAA1C,EAAA;CAAA,IAAA2C;CAAA,AAAA3C,EAAA,QAAAD,EAAAM,QAAAL,EAAA,QAAAc,KAEA6B,IAAA7B,EAAYf,EAAKM,IAAK,GAACL,EAAA,MAAAD,EAAAM,MAAAL,EAAA,MAAAc,GAAAd,EAAA,MAAA2C,KAAAA,IAAA3C,EAAA;CAAA,IAAA4C;CACpB,OADoB5C,EAAA,QAAAoB,KAAApB,EAAA,QAAAwC,KAAAxC,EAAA,QAAAS,KAAAT,EAAA,QAAA0C,KAAA1C,EAAA,QAAA2C,KAV1BC,IAAA,kBAAA,OAAA;EACOxB,KAAAA;EAAS,GACVX;EACS+B,aAAAA;EACF,WAAAE;YAMVC;CACG,CAAA,GAAA3C,EAAA,MAAAoB,GAAApB,EAAA,MAAAwC,GAAAxC,EAAA,MAAAS,GAAAT,EAAA,MAAA0C,GAAA1C,EAAA,MAAA2C,GAAA3C,EAAA,MAAA4C,KAAAA,IAAA5C,EAAA,KAXN4C;AAWM,GAIGC,IAA6D;CACxEC,gBAAgB,EACdC,SAAS,OACX;CACAC,OAAOC,OAAc;EACnB,GAAGA;EACHC,WAAW;EACXC,cAAc;EACdC,WAAW;EACXC,iBAAiB;EACjBC,UAAU;EACVC,QAAQ;CACV;CACAC,WAAWP,OAAc;EACvB,GAAGA;EACHQ,WAAW;EACXC,SAAS;CACX;CACA1E,SAASiE,GAAUU,OAAW;EAC5B,GAAGV;EACHW,UAAU;EACVP,iBAAiBM,EAAME,YACnB,sBACAF,EAAMG,aACJ,uBACA;EACNC,OAAOJ,EAAMG,aACT,kCACA;EACJE,QAAQ;CACV;CACAC,mBAAmBhB,OAAc;EAC/B,GAAGA;EACHW,UAAU;EACVG,OAAO;CACT;AACF,GAEaG,KAAgBnE,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAC3B,EAAAkE,aAAAzD,eAAAO,gBAA2ClB,GAAKa;CAAA,AAAAZ,EAAA,OAAAoE,OAAAC,IAAA,2BAAA,KAMrCzD,IAAA;EAAA0D,QACG;EAACC,WACE;EAACC,SACH;EAAClB,UACA;EAAQmB,eACH;CACjB,GAACzE,EAAA,KAAAY,KAAAA,IAAAZ,EAAA;CAAA,IAAAkB;CAGG,OAHHlB,EAAA,OAAAmE,KAAAnE,EAAA,OAAAU,KAAAV,EAAA,OAAAiB,KATHC,IAAA,kBAAA,OAAA;EAYM,GAXAR;EACCO,KAAAA;EACE,OAAAL;EAQNuD;CACG,CAAA,GAAAnE,EAAA,KAAAmE,GAAAnE,EAAA,KAAAU,GAAAV,EAAA,KAAAiB,GAAAjB,EAAA,KAAAkB,KAAAA,IAAAlB,EAAA,IAZNkB;AAYM,GAIGwD,UAAsB;AAEnC,SAAgBC,EAAoB3F,GAAuB;CACzD,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,QAAD;EAAM,WAAU;YAAhB,CACGA,EAAO4F,OACN,kBAAC,QAAD;GAAM,eAAY;GAAO,WAAU;aAChC5F,EAAO4F;EACJ,CAAA,IACJ,MACJ,kBAAC,QAAD;GAAM,WAAU;aAAY5F,EAAO6F;EAAW,CAAA,CAC1C;KACN,kBAAC,QAAD;EAAM,WAAU;YAAhB,CAAgD,KAAE7F,EAAO8F,QAAe;GAC1E,EAAA,CAAA;AAEJ;AAjJgC,SAAAjE,EAAA7B,GAAA;CAAA,OAK8B2F,EAAoB3F,CAAM;AAAC"}
|