@rpcbase/ui 0.224.0 → 0.226.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (832) hide show
  1. package/dist/components/DayPickerField/index.d.ts.map +1 -1
  2. package/dist/components/Dialog/index.d.ts +13 -9
  3. package/dist/components/Dialog/index.d.ts.map +1 -1
  4. package/dist/components/FilesUploadField/index.d.ts.map +1 -1
  5. package/dist/components/HourPickerField/index.d.ts.map +1 -1
  6. package/dist/components/PhoneNumberInput/index.d.ts.map +1 -1
  7. package/dist/components/PhoneNumberInput/suggestions.d.ts.map +1 -1
  8. package/dist/components/Select/index.d.ts +16 -10
  9. package/dist/components/Select/index.d.ts.map +1 -1
  10. package/dist/index10.js +102 -103
  11. package/dist/index10.js.map +1 -1
  12. package/dist/index100.js +11 -4
  13. package/dist/index100.js.map +1 -1
  14. package/dist/index101.js +69 -52
  15. package/dist/index101.js.map +1 -1
  16. package/dist/index102.js +38 -5
  17. package/dist/index102.js.map +1 -1
  18. package/dist/index103.js +14 -5
  19. package/dist/index103.js.map +1 -1
  20. package/dist/index104.js +23 -15
  21. package/dist/index104.js.map +1 -1
  22. package/dist/index105.js +110 -5
  23. package/dist/index105.js.map +1 -1
  24. package/dist/index106.js +13 -8
  25. package/dist/index106.js.map +1 -1
  26. package/dist/index107.js +4 -16
  27. package/dist/index107.js.map +1 -1
  28. package/dist/index108.js +4 -5
  29. package/dist/index108.js.map +1 -1
  30. package/dist/index109.js +5 -5
  31. package/dist/index109.js.map +1 -1
  32. package/dist/index110.js +11 -5
  33. package/dist/index110.js.map +1 -1
  34. package/dist/index111.js +19 -5
  35. package/dist/index111.js.map +1 -1
  36. package/dist/index112.js +13 -5
  37. package/dist/index112.js.map +1 -1
  38. package/dist/index113.js +261 -4
  39. package/dist/index113.js.map +1 -1
  40. package/dist/index114.js +4 -6
  41. package/dist/index114.js.map +1 -1
  42. package/dist/index115.js +28 -25
  43. package/dist/index115.js.map +1 -1
  44. package/dist/index116.js +126 -6
  45. package/dist/index116.js.map +1 -1
  46. package/dist/index117.js +5 -4
  47. package/dist/index117.js.map +1 -1
  48. package/dist/index118.js +78 -6
  49. package/dist/index118.js.map +1 -1
  50. package/dist/index119.js +66 -5
  51. package/dist/index119.js.map +1 -1
  52. package/dist/index12.js +1 -1
  53. package/dist/index120.js +8 -4
  54. package/dist/index120.js.map +1 -1
  55. package/dist/index121.js +16 -6
  56. package/dist/index121.js.map +1 -1
  57. package/dist/index122.js +92 -4
  58. package/dist/index122.js.map +1 -1
  59. package/dist/index123.js +65 -8
  60. package/dist/index123.js.map +1 -1
  61. package/dist/index124.js +45 -5
  62. package/dist/index124.js.map +1 -1
  63. package/dist/index125.js +52 -5
  64. package/dist/index125.js.map +1 -1
  65. package/dist/index126.js +4 -4
  66. package/dist/index126.js.map +1 -1
  67. package/dist/index127.js +4 -6
  68. package/dist/index127.js.map +1 -1
  69. package/dist/index128.js +15 -145
  70. package/dist/index128.js.map +1 -1
  71. package/dist/index129.js +5 -39
  72. package/dist/index129.js.map +1 -1
  73. package/dist/index130.js +7 -4
  74. package/dist/index130.js.map +1 -1
  75. package/dist/index131.js +16 -7
  76. package/dist/index131.js.map +1 -1
  77. package/dist/index132.js +4 -13
  78. package/dist/index132.js.map +1 -1
  79. package/dist/index133.js +4 -13
  80. package/dist/index133.js.map +1 -1
  81. package/dist/index134.js +5 -7
  82. package/dist/index134.js.map +1 -1
  83. package/dist/index135.js +5 -31
  84. package/dist/index135.js.map +1 -1
  85. package/dist/index136.js +4 -10
  86. package/dist/index136.js.map +1 -1
  87. package/dist/index137.js +4 -10
  88. package/dist/index137.js.map +1 -1
  89. package/dist/index138.js +6 -8
  90. package/dist/index138.js.map +1 -1
  91. package/dist/index139.js +24 -13
  92. package/dist/index139.js.map +1 -1
  93. package/dist/index140.js +6 -101
  94. package/dist/index140.js.map +1 -1
  95. package/dist/index141.js +5 -20
  96. package/dist/index141.js.map +1 -1
  97. package/dist/index142.js +6 -53
  98. package/dist/index142.js.map +1 -1
  99. package/dist/index143.js +5 -72
  100. package/dist/index143.js.map +1 -1
  101. package/dist/index144.js +4 -9
  102. package/dist/index144.js.map +1 -1
  103. package/dist/index145.js +5 -20
  104. package/dist/index145.js.map +1 -1
  105. package/dist/index146.js +4 -16
  106. package/dist/index146.js.map +1 -1
  107. package/dist/index147.js +8 -23
  108. package/dist/index147.js.map +1 -1
  109. package/dist/index148.js +5 -6
  110. package/dist/index148.js.map +1 -1
  111. package/dist/index149.js +4 -5
  112. package/dist/index149.js.map +1 -1
  113. package/dist/index150.js +3 -22
  114. package/dist/index150.js.map +1 -1
  115. package/dist/index151.js +7 -35
  116. package/dist/index151.js.map +1 -1
  117. package/dist/index152.js +146 -16
  118. package/dist/index152.js.map +1 -1
  119. package/dist/index153.js +39 -6
  120. package/dist/index153.js.map +1 -1
  121. package/dist/index154.js +4 -4
  122. package/dist/index154.js.map +1 -1
  123. package/dist/index155.js +7 -4
  124. package/dist/index155.js.map +1 -1
  125. package/dist/index156.js +13 -4
  126. package/dist/index156.js.map +1 -1
  127. package/dist/index157.js +13 -4
  128. package/dist/index157.js.map +1 -1
  129. package/dist/index158.js +7 -3
  130. package/dist/index158.js.map +1 -1
  131. package/dist/index159.js +31 -6
  132. package/dist/index159.js.map +1 -1
  133. package/dist/index16.js +77 -72
  134. package/dist/index16.js.map +1 -1
  135. package/dist/index160.js +11 -24
  136. package/dist/index160.js.map +1 -1
  137. package/dist/index161.js +10 -7
  138. package/dist/index161.js.map +1 -1
  139. package/dist/index162.js +8 -6
  140. package/dist/index162.js.map +1 -1
  141. package/dist/index163.js +13 -5
  142. package/dist/index163.js.map +1 -1
  143. package/dist/index164.js +101 -3
  144. package/dist/index164.js.map +1 -1
  145. package/dist/index165.js +20 -4
  146. package/dist/index165.js.map +1 -1
  147. package/dist/index166.js +53 -4
  148. package/dist/index166.js.map +1 -1
  149. package/dist/index167.js +72 -3
  150. package/dist/index167.js.map +1 -1
  151. package/dist/index168.js +9 -4
  152. package/dist/index168.js.map +1 -1
  153. package/dist/index169.js +20 -3
  154. package/dist/index169.js.map +1 -1
  155. package/dist/index170.js +16 -3
  156. package/dist/index170.js.map +1 -1
  157. package/dist/index171.js +23 -3
  158. package/dist/index171.js.map +1 -1
  159. package/dist/index172.js +6 -46
  160. package/dist/index172.js.map +1 -1
  161. package/dist/index173.js +5 -229
  162. package/dist/index173.js.map +1 -1
  163. package/dist/index174.js +24 -22
  164. package/dist/index174.js.map +1 -1
  165. package/dist/index175.js +35 -25
  166. package/dist/index175.js.map +1 -1
  167. package/dist/index176.js +16 -401
  168. package/dist/index176.js.map +1 -1
  169. package/dist/index177.js +6 -13
  170. package/dist/index177.js.map +1 -1
  171. package/dist/index178.js +4 -154
  172. package/dist/index178.js.map +1 -1
  173. package/dist/index179.js +4 -30
  174. package/dist/index179.js.map +1 -1
  175. package/dist/index18.js +205 -186
  176. package/dist/index18.js.map +1 -1
  177. package/dist/index180.js +4 -9
  178. package/dist/index180.js.map +1 -1
  179. package/dist/index181.js +4 -48
  180. package/dist/index181.js.map +1 -1
  181. package/dist/index182.js +3 -11
  182. package/dist/index182.js.map +1 -1
  183. package/dist/index183.js +6 -44
  184. package/dist/index183.js.map +1 -1
  185. package/dist/index184.js +24 -96
  186. package/dist/index184.js.map +1 -1
  187. package/dist/index185.js +7 -86
  188. package/dist/index185.js.map +1 -1
  189. package/dist/index186.js +6 -105
  190. package/dist/index186.js.map +1 -1
  191. package/dist/index187.js +5 -52
  192. package/dist/index187.js.map +1 -1
  193. package/dist/index188.js +3 -11
  194. package/dist/index188.js.map +1 -1
  195. package/dist/index189.js +3 -37
  196. package/dist/index189.js.map +1 -1
  197. package/dist/index19.js +280 -208
  198. package/dist/index19.js.map +1 -1
  199. package/dist/index190.js +4 -8
  200. package/dist/index190.js.map +1 -1
  201. package/dist/index191.js +3 -116
  202. package/dist/index191.js.map +1 -1
  203. package/dist/index192.js +4 -17
  204. package/dist/index192.js.map +1 -1
  205. package/dist/index193.js +3 -15
  206. package/dist/index193.js.map +1 -1
  207. package/dist/index194.js +3 -3
  208. package/dist/index194.js.map +1 -1
  209. package/dist/index195.js +3 -36
  210. package/dist/index195.js.map +1 -1
  211. package/dist/index196.js +13 -20
  212. package/dist/index196.js.map +1 -1
  213. package/dist/index197.js +154 -9
  214. package/dist/index197.js.map +1 -1
  215. package/dist/index198.js +30 -8
  216. package/dist/index198.js.map +1 -1
  217. package/dist/index199.js +9 -19
  218. package/dist/index199.js.map +1 -1
  219. package/dist/index200.js +45 -25
  220. package/dist/index200.js.map +1 -1
  221. package/dist/index201.js +11 -16
  222. package/dist/index201.js.map +1 -1
  223. package/dist/index202.js +44 -58
  224. package/dist/index202.js.map +1 -1
  225. package/dist/index203.js +95 -8
  226. package/dist/index203.js.map +1 -1
  227. package/dist/index204.js +81 -61
  228. package/dist/index204.js.map +1 -1
  229. package/dist/index205.js +103 -17
  230. package/dist/index205.js.map +1 -1
  231. package/dist/index206.js +50 -14
  232. package/dist/index206.js.map +1 -1
  233. package/dist/index207.js +10 -4
  234. package/dist/index207.js.map +1 -1
  235. package/dist/index208.js +36 -4
  236. package/dist/index208.js.map +1 -1
  237. package/dist/index209.js +8 -6
  238. package/dist/index209.js.map +1 -1
  239. package/dist/index210.js +116 -4
  240. package/dist/index210.js.map +1 -1
  241. package/dist/index211.js +17 -6
  242. package/dist/index211.js.map +1 -1
  243. package/dist/index212.js +15 -16
  244. package/dist/index212.js.map +1 -1
  245. package/dist/index213.js +3 -4
  246. package/dist/index213.js.map +1 -1
  247. package/dist/index214.js +36 -4
  248. package/dist/index214.js.map +1 -1
  249. package/dist/index215.js +20 -12
  250. package/dist/index215.js.map +1 -1
  251. package/dist/index216.js +9 -9
  252. package/dist/index216.js.map +1 -1
  253. package/dist/index217.js +8 -13
  254. package/dist/index217.js.map +1 -1
  255. package/dist/index218.js +19 -13
  256. package/dist/index218.js.map +1 -1
  257. package/dist/index219.js +28 -4
  258. package/dist/index219.js.map +1 -1
  259. package/dist/index220.js +16 -5
  260. package/dist/index220.js.map +1 -1
  261. package/dist/index221.js +66 -6
  262. package/dist/index221.js.map +1 -1
  263. package/dist/index222.js +8 -5
  264. package/dist/index222.js.map +1 -1
  265. package/dist/index223.js +11 -54
  266. package/dist/index223.js.map +1 -1
  267. package/dist/index224.js +8 -8
  268. package/dist/index224.js.map +1 -1
  269. package/dist/index225.js +5 -4
  270. package/dist/index225.js.map +1 -1
  271. package/dist/index226.js +13 -4
  272. package/dist/index226.js.map +1 -1
  273. package/dist/index227.js +3 -8
  274. package/dist/index227.js.map +1 -1
  275. package/dist/index228.js +3 -4
  276. package/dist/index228.js.map +1 -1
  277. package/dist/index229.js +99 -4
  278. package/dist/index229.js.map +1 -1
  279. package/dist/index230.js +29 -3
  280. package/dist/index230.js.map +1 -1
  281. package/dist/index231.js +51 -10
  282. package/dist/index231.js.map +1 -1
  283. package/dist/index232.js +17 -9
  284. package/dist/index232.js.map +1 -1
  285. package/dist/index233.js +5 -9
  286. package/dist/index233.js.map +1 -1
  287. package/dist/index234.js +122 -10
  288. package/dist/index234.js.map +1 -1
  289. package/dist/index235.js +27 -10
  290. package/dist/index235.js.map +1 -1
  291. package/dist/index236.js +32 -9
  292. package/dist/index236.js.map +1 -1
  293. package/dist/index237.js +73 -6
  294. package/dist/index237.js.map +1 -1
  295. package/dist/index238.js +262 -5
  296. package/dist/index238.js.map +1 -1
  297. package/dist/index239.js +28 -4
  298. package/dist/index239.js.map +1 -1
  299. package/dist/index240.js +6 -5
  300. package/dist/index240.js.map +1 -1
  301. package/dist/index241.js +142 -6
  302. package/dist/index241.js.map +1 -1
  303. package/dist/index242.js +61 -5
  304. package/dist/index242.js.map +1 -1
  305. package/dist/index243.js +49 -16
  306. package/dist/index243.js.map +1 -1
  307. package/dist/index244.js +15 -8
  308. package/dist/index244.js.map +1 -1
  309. package/dist/index245.js +132 -9
  310. package/dist/index245.js.map +1 -1
  311. package/dist/index246.js +7 -9
  312. package/dist/index246.js.map +1 -1
  313. package/dist/index247.js +5 -22
  314. package/dist/index247.js.map +1 -1
  315. package/dist/index248.js +4 -11
  316. package/dist/index248.js.map +1 -1
  317. package/dist/index249.js +11 -9
  318. package/dist/index249.js.map +1 -1
  319. package/dist/index250.js +21 -9
  320. package/dist/index250.js.map +1 -1
  321. package/dist/index251.js +20 -5
  322. package/dist/index251.js.map +1 -1
  323. package/dist/index252.js +11 -5
  324. package/dist/index252.js.map +1 -1
  325. package/dist/index253.js +48 -14
  326. package/dist/index253.js.map +1 -1
  327. package/dist/index254.js +16 -9
  328. package/dist/index254.js.map +1 -1
  329. package/dist/index255.js +21 -18
  330. package/dist/index255.js.map +1 -1
  331. package/dist/index256.js +50 -14
  332. package/dist/index256.js.map +1 -1
  333. package/dist/index257.js +25 -12
  334. package/dist/index257.js.map +1 -1
  335. package/dist/index258.js +41 -29
  336. package/dist/index258.js.map +1 -1
  337. package/dist/index259.js +39 -12
  338. package/dist/index259.js.map +1 -1
  339. package/dist/index260.js +45 -26
  340. package/dist/index260.js.map +1 -1
  341. package/dist/index261.js +20 -5
  342. package/dist/index261.js.map +1 -1
  343. package/dist/index262.js +68 -22
  344. package/dist/index262.js.map +1 -1
  345. package/dist/index263.js +18 -29
  346. package/dist/index263.js.map +1 -1
  347. package/dist/index264.js +12 -5
  348. package/dist/index264.js.map +1 -1
  349. package/dist/index265.js +12 -19
  350. package/dist/index265.js.map +1 -1
  351. package/dist/index266.js +18 -4
  352. package/dist/index266.js.map +1 -1
  353. package/dist/index267.js +36 -17
  354. package/dist/index267.js.map +1 -1
  355. package/dist/index268.js +278 -12
  356. package/dist/index268.js.map +1 -1
  357. package/dist/index269.js +69 -5
  358. package/dist/index269.js.map +1 -1
  359. package/dist/index270.js +84 -3
  360. package/dist/index270.js.map +1 -1
  361. package/dist/index271.js +3 -23
  362. package/dist/index271.js.map +1 -1
  363. package/dist/index272.js +28 -111
  364. package/dist/index272.js.map +1 -1
  365. package/dist/index273.js +16 -15
  366. package/dist/index273.js.map +1 -1
  367. package/dist/index274.js +32 -527
  368. package/dist/index274.js.map +1 -1
  369. package/dist/index275.js +14 -123
  370. package/dist/index275.js.map +1 -1
  371. package/dist/index276.js +3 -133
  372. package/dist/index276.js.map +1 -1
  373. package/dist/index277.js +26 -4
  374. package/dist/index277.js.map +1 -1
  375. package/dist/index278.js +4 -5
  376. package/dist/index278.js.map +1 -1
  377. package/dist/index279.js +79 -4
  378. package/dist/index279.js.map +1 -1
  379. package/dist/index28.js +1 -1
  380. package/dist/index280.js +269 -15
  381. package/dist/index280.js.map +1 -1
  382. package/dist/index281.js +11 -8
  383. package/dist/index281.js.map +1 -1
  384. package/dist/index282.js +10 -5
  385. package/dist/index282.js.map +1 -1
  386. package/dist/index283.js +25 -4
  387. package/dist/index283.js.map +1 -1
  388. package/dist/index284.js +16 -545
  389. package/dist/index284.js.map +1 -1
  390. package/dist/index285.js +123 -44
  391. package/dist/index285.js.map +1 -1
  392. package/dist/index286.js +5 -17
  393. package/dist/index286.js.map +1 -1
  394. package/dist/index287.js +40 -5
  395. package/dist/index287.js.map +1 -1
  396. package/dist/index288.js +65 -7
  397. package/dist/index288.js.map +1 -1
  398. package/dist/index289.js +14 -7
  399. package/dist/index289.js.map +1 -1
  400. package/dist/index290.js +7 -7
  401. package/dist/index290.js.map +1 -1
  402. package/dist/index291.js +5 -11
  403. package/dist/index291.js.map +1 -1
  404. package/dist/index292.js +3 -8
  405. package/dist/index292.js.map +1 -1
  406. package/dist/index293.js +10 -12
  407. package/dist/index293.js.map +1 -1
  408. package/dist/index294.js +8 -69
  409. package/dist/index294.js.map +1 -1
  410. package/dist/index295.js +398 -7
  411. package/dist/index295.js.map +1 -1
  412. package/dist/index296.js +53 -14
  413. package/dist/index296.js.map +1 -1
  414. package/dist/index297.js +12 -66
  415. package/dist/index297.js.map +1 -1
  416. package/dist/index298.js +11 -64
  417. package/dist/index298.js.map +1 -1
  418. package/dist/index299.js +58 -4
  419. package/dist/index299.js.map +1 -1
  420. package/dist/index30.js +1 -1
  421. package/dist/index300.js +9 -56
  422. package/dist/index300.js.map +1 -1
  423. package/dist/index301.js +66 -67
  424. package/dist/index301.js.map +1 -1
  425. package/dist/index302.js +20 -31
  426. package/dist/index302.js.map +1 -1
  427. package/dist/index303.js +17 -9
  428. package/dist/index303.js.map +1 -1
  429. package/dist/index304.js +5 -152
  430. package/dist/index304.js.map +1 -1
  431. package/dist/index305.js +5 -107
  432. package/dist/index305.js.map +1 -1
  433. package/dist/index306.js +6 -3
  434. package/dist/index306.js.map +1 -1
  435. package/dist/index307.js +4 -22
  436. package/dist/index307.js.map +1 -1
  437. package/dist/index308.js +6 -15
  438. package/dist/index308.js.map +1 -1
  439. package/dist/index309.js +16 -28
  440. package/dist/index309.js.map +1 -1
  441. package/dist/index31.js +227 -120
  442. package/dist/index31.js.map +1 -1
  443. package/dist/index310.js +4 -12
  444. package/dist/index310.js.map +1 -1
  445. package/dist/index311.js +4 -6
  446. package/dist/index311.js.map +1 -1
  447. package/dist/index312.js +13 -23
  448. package/dist/index312.js.map +1 -1
  449. package/dist/index313.js +10 -13
  450. package/dist/index313.js.map +1 -1
  451. package/dist/index314.js +13 -27
  452. package/dist/index314.js.map +1 -1
  453. package/dist/index315.js +14 -5
  454. package/dist/index315.js.map +1 -1
  455. package/dist/index316.js +8 -0
  456. package/dist/index316.js.map +1 -0
  457. package/dist/index317.js +9 -0
  458. package/dist/index317.js.map +1 -0
  459. package/dist/index318.js +10 -0
  460. package/dist/index318.js.map +1 -0
  461. package/dist/index319.js +9 -0
  462. package/dist/index319.js.map +1 -0
  463. package/dist/index32.js +21 -229
  464. package/dist/index32.js.map +1 -1
  465. package/dist/index320.js +58 -0
  466. package/dist/index320.js.map +1 -0
  467. package/dist/index321.js +12 -0
  468. package/dist/index321.js.map +1 -0
  469. package/dist/index322.js +8 -0
  470. package/dist/index322.js.map +1 -0
  471. package/dist/index323.js +8 -0
  472. package/dist/index323.js.map +1 -0
  473. package/dist/index324.js +12 -0
  474. package/dist/index324.js.map +1 -0
  475. package/dist/index325.js +8 -0
  476. package/dist/index325.js.map +1 -0
  477. package/dist/index326.js +8 -0
  478. package/dist/index326.js.map +1 -0
  479. package/dist/index327.js +7 -0
  480. package/dist/index327.js.map +1 -0
  481. package/dist/index328.js +14 -0
  482. package/dist/index328.js.map +1 -0
  483. package/dist/index329.js +13 -0
  484. package/dist/index329.js.map +1 -0
  485. package/dist/index33.js +4 -23
  486. package/dist/index33.js.map +1 -1
  487. package/dist/index330.js +13 -0
  488. package/dist/index330.js.map +1 -0
  489. package/dist/index331.js +14 -0
  490. package/dist/index331.js.map +1 -0
  491. package/dist/index332.js +14 -0
  492. package/dist/index332.js.map +1 -0
  493. package/dist/index333.js +13 -0
  494. package/dist/index333.js.map +1 -0
  495. package/dist/index334.js +10 -0
  496. package/dist/index334.js.map +1 -0
  497. package/dist/index335.js +9 -0
  498. package/dist/index335.js.map +1 -0
  499. package/dist/index336.js +8 -0
  500. package/dist/index336.js.map +1 -0
  501. package/dist/index337.js +9 -0
  502. package/dist/index337.js.map +1 -0
  503. package/dist/index338.js +10 -0
  504. package/dist/index338.js.map +1 -0
  505. package/dist/index339.js +9 -0
  506. package/dist/index339.js.map +1 -0
  507. package/dist/index34.js +62 -51
  508. package/dist/index34.js.map +1 -1
  509. package/dist/index340.js +20 -0
  510. package/dist/index340.js.map +1 -0
  511. package/dist/index341.js +11 -0
  512. package/dist/index341.js.map +1 -0
  513. package/dist/index342.js +14 -0
  514. package/dist/index342.js.map +1 -0
  515. package/dist/index343.js +14 -0
  516. package/dist/index343.js.map +1 -0
  517. package/dist/index344.js +25 -0
  518. package/dist/index344.js.map +1 -0
  519. package/dist/index345.js +14 -0
  520. package/dist/index345.js.map +1 -0
  521. package/dist/index346.js +13 -0
  522. package/dist/index346.js.map +1 -0
  523. package/dist/index347.js +13 -0
  524. package/dist/index347.js.map +1 -0
  525. package/dist/index348.js +8 -0
  526. package/dist/index348.js.map +1 -0
  527. package/dist/index349.js +9 -0
  528. package/dist/index349.js.map +1 -0
  529. package/dist/index35.js +38 -21
  530. package/dist/index35.js.map +1 -1
  531. package/dist/index350.js +20 -0
  532. package/dist/index350.js.map +1 -0
  533. package/dist/index351.js +13 -0
  534. package/dist/index351.js.map +1 -0
  535. package/dist/index352.js +22 -0
  536. package/dist/index352.js.map +1 -0
  537. package/dist/index353.js +19 -0
  538. package/dist/index353.js.map +1 -0
  539. package/dist/index354.js +16 -0
  540. package/dist/index354.js.map +1 -0
  541. package/dist/index355.js +33 -0
  542. package/dist/index355.js.map +1 -0
  543. package/dist/index356.js +16 -0
  544. package/dist/index356.js.map +1 -0
  545. package/dist/index357.js +29 -0
  546. package/dist/index357.js.map +1 -0
  547. package/dist/index358.js +9 -0
  548. package/dist/index358.js.map +1 -0
  549. package/dist/index359.js +24 -0
  550. package/dist/index359.js.map +1 -0
  551. package/dist/index36.js +75 -127
  552. package/dist/index36.js.map +1 -1
  553. package/dist/index360.js +12 -0
  554. package/dist/index360.js.map +1 -0
  555. package/dist/index361.js +29 -0
  556. package/dist/index361.js.map +1 -0
  557. package/dist/index362.js +30 -0
  558. package/dist/index362.js.map +1 -0
  559. package/dist/index363.js +141 -0
  560. package/dist/index363.js.map +1 -0
  561. package/dist/index364.js +16 -0
  562. package/dist/index364.js.map +1 -0
  563. package/dist/index365.js +230 -0
  564. package/dist/index365.js.map +1 -0
  565. package/dist/index366.js +7 -0
  566. package/dist/index366.js.map +1 -0
  567. package/dist/index367.js +23 -0
  568. package/dist/index367.js.map +1 -0
  569. package/dist/index368.js +81 -0
  570. package/dist/index368.js.map +1 -0
  571. package/dist/index369.js +15 -0
  572. package/dist/index369.js.map +1 -0
  573. package/dist/index37.js +22 -221
  574. package/dist/index37.js.map +1 -1
  575. package/dist/index370.js +7 -0
  576. package/dist/index370.js.map +1 -0
  577. package/dist/index371.js +81 -0
  578. package/dist/index371.js.map +1 -0
  579. package/dist/index372.js +204 -0
  580. package/dist/index372.js.map +1 -0
  581. package/dist/index373.js +75 -0
  582. package/dist/index373.js.map +1 -0
  583. package/dist/index374.js +12 -0
  584. package/dist/index374.js.map +1 -0
  585. package/dist/index375.js +20 -0
  586. package/dist/index375.js.map +1 -0
  587. package/dist/index376.js +19 -0
  588. package/dist/index376.js.map +1 -0
  589. package/dist/index377.js +7 -0
  590. package/dist/index377.js.map +1 -0
  591. package/dist/index378.js +15 -0
  592. package/dist/index378.js.map +1 -0
  593. package/dist/index379.js +9 -0
  594. package/dist/index379.js.map +1 -0
  595. package/dist/index38.js +37 -90
  596. package/dist/index38.js.map +1 -1
  597. package/dist/index380.js +24 -0
  598. package/dist/index380.js.map +1 -0
  599. package/dist/index381.js +48 -0
  600. package/dist/index381.js.map +1 -0
  601. package/dist/index382.js +21 -0
  602. package/dist/index382.js.map +1 -0
  603. package/dist/index383.js +8 -0
  604. package/dist/index383.js.map +1 -0
  605. package/dist/index384.js +8 -0
  606. package/dist/index384.js.map +1 -0
  607. package/dist/index385.js +21 -0
  608. package/dist/index385.js.map +1 -0
  609. package/dist/index386.js +16 -0
  610. package/dist/index386.js.map +1 -0
  611. package/dist/index387.js +18 -0
  612. package/dist/index387.js.map +1 -0
  613. package/dist/index388.js +495 -0
  614. package/dist/index388.js.map +1 -0
  615. package/dist/index389.js +6 -0
  616. package/dist/index389.js.map +1 -0
  617. package/dist/index39.js +28 -119
  618. package/dist/index39.js.map +1 -1
  619. package/dist/index390.js +6 -0
  620. package/dist/index390.js.map +1 -0
  621. package/dist/index391.js +8 -0
  622. package/dist/index391.js.map +1 -0
  623. package/dist/index392.js +8 -0
  624. package/dist/index392.js.map +1 -0
  625. package/dist/index393.js +7 -0
  626. package/dist/index393.js.map +1 -0
  627. package/dist/index394.js +19 -0
  628. package/dist/index394.js.map +1 -0
  629. package/dist/index395.js +12 -0
  630. package/dist/index395.js.map +1 -0
  631. package/dist/index396.js +9 -0
  632. package/dist/index396.js.map +1 -0
  633. package/dist/index397.js +8 -0
  634. package/dist/index397.js.map +1 -0
  635. package/dist/index398.js +549 -0
  636. package/dist/index398.js.map +1 -0
  637. package/dist/index399.js +50 -0
  638. package/dist/index399.js.map +1 -0
  639. package/dist/index40.js +23 -6
  640. package/dist/index40.js.map +1 -1
  641. package/dist/index400.js +21 -0
  642. package/dist/index400.js.map +1 -0
  643. package/dist/index401.js +9 -0
  644. package/dist/index401.js.map +1 -0
  645. package/dist/index402.js +11 -0
  646. package/dist/index402.js.map +1 -0
  647. package/dist/index403.js +10 -0
  648. package/dist/index403.js.map +1 -0
  649. package/dist/index404.js +11 -0
  650. package/dist/index404.js.map +1 -0
  651. package/dist/index405.js +15 -0
  652. package/dist/index405.js.map +1 -0
  653. package/dist/index406.js +12 -0
  654. package/dist/index406.js.map +1 -0
  655. package/dist/index407.js +16 -0
  656. package/dist/index407.js.map +1 -0
  657. package/dist/index408.js +11 -0
  658. package/dist/index408.js.map +1 -0
  659. package/dist/index409.js +5 -0
  660. package/dist/index409.js.map +1 -0
  661. package/dist/index41.js +51 -817
  662. package/dist/index41.js.map +1 -1
  663. package/dist/index410.js +47 -0
  664. package/dist/index410.js.map +1 -0
  665. package/dist/index411.js +59 -0
  666. package/dist/index411.js.map +1 -0
  667. package/dist/index412.js +11 -0
  668. package/dist/index412.js.map +1 -0
  669. package/dist/index413.js +5 -0
  670. package/dist/index413.js.map +1 -0
  671. package/dist/index414.js +58 -0
  672. package/dist/index414.js.map +1 -0
  673. package/dist/index415.js +59 -0
  674. package/dist/index415.js.map +1 -0
  675. package/dist/index416.js +8 -0
  676. package/dist/index416.js.map +1 -0
  677. package/dist/index417.js +59 -0
  678. package/dist/index417.js.map +1 -0
  679. package/dist/index418.js +71 -0
  680. package/dist/index418.js.map +1 -0
  681. package/dist/index419.js +34 -0
  682. package/dist/index419.js.map +1 -0
  683. package/dist/index42.js +51 -57
  684. package/dist/index42.js.map +1 -1
  685. package/dist/index420.js +12 -0
  686. package/dist/index420.js.map +1 -0
  687. package/dist/index421.js +156 -0
  688. package/dist/index421.js.map +1 -0
  689. package/dist/index422.js +111 -0
  690. package/dist/index422.js.map +1 -0
  691. package/dist/index423.js +5 -0
  692. package/dist/index423.js.map +1 -0
  693. package/dist/index424.js +5 -0
  694. package/dist/index424.js.map +1 -0
  695. package/dist/index425.js +5 -0
  696. package/dist/index425.js.map +1 -0
  697. package/dist/index426.js +5 -0
  698. package/dist/index426.js.map +1 -0
  699. package/dist/index427.js +19 -0
  700. package/dist/index427.js.map +1 -0
  701. package/dist/index428.js +32 -0
  702. package/dist/index428.js.map +1 -0
  703. package/dist/index429.js +16 -0
  704. package/dist/index429.js.map +1 -0
  705. package/dist/index43.js +21 -7
  706. package/dist/index43.js.map +1 -1
  707. package/dist/index430.js +10 -0
  708. package/dist/index430.js.map +1 -0
  709. package/dist/index44.js +130 -2
  710. package/dist/index44.js.map +1 -1
  711. package/dist/index45.js +221 -11
  712. package/dist/index45.js.map +1 -1
  713. package/dist/index46.js +90 -18
  714. package/dist/index46.js.map +1 -1
  715. package/dist/index47.js +126 -7
  716. package/dist/index47.js.map +1 -1
  717. package/dist/index48.js +6 -2
  718. package/dist/index48.js.map +1 -1
  719. package/dist/index49.js +326 -23
  720. package/dist/index49.js.map +1 -1
  721. package/dist/index50.js +247 -221
  722. package/dist/index50.js.map +1 -1
  723. package/dist/index51.js +27 -2
  724. package/dist/index51.js.map +1 -1
  725. package/dist/index52.js +129 -2
  726. package/dist/index52.js.map +1 -1
  727. package/dist/index53.js +26 -2
  728. package/dist/index53.js.map +1 -1
  729. package/dist/index54.js +23 -2
  730. package/dist/index54.js.map +1 -1
  731. package/dist/index55.js +145 -6
  732. package/dist/index55.js.map +1 -1
  733. package/dist/index56.js +34 -33
  734. package/dist/index56.js.map +1 -1
  735. package/dist/index57.js +28 -48
  736. package/dist/index57.js.map +1 -1
  737. package/dist/index58.js +41 -8
  738. package/dist/index58.js.map +1 -1
  739. package/dist/index59.js +21 -12
  740. package/dist/index59.js.map +1 -1
  741. package/dist/index6.js +84 -85
  742. package/dist/index6.js.map +1 -1
  743. package/dist/index60.js +132 -6
  744. package/dist/index60.js.map +1 -1
  745. package/dist/index61.js +51 -8
  746. package/dist/index61.js.map +1 -1
  747. package/dist/index62.js +30 -6
  748. package/dist/index62.js.map +1 -1
  749. package/dist/index63.js +57 -4
  750. package/dist/index63.js.map +1 -1
  751. package/dist/index64.js +7 -47
  752. package/dist/index64.js.map +1 -1
  753. package/dist/index65.js +2 -51
  754. package/dist/index65.js.map +1 -1
  755. package/dist/index66.js +11 -7
  756. package/dist/index66.js.map +1 -1
  757. package/dist/index67.js +17 -13
  758. package/dist/index67.js.map +1 -1
  759. package/dist/index68.js +7 -133
  760. package/dist/index68.js.map +1 -1
  761. package/dist/index69.js +2 -11
  762. package/dist/index69.js.map +1 -1
  763. package/dist/index7.js +123 -98
  764. package/dist/index7.js.map +1 -1
  765. package/dist/index70.js +22 -215
  766. package/dist/index70.js.map +1 -1
  767. package/dist/index71.js +234 -13
  768. package/dist/index71.js.map +1 -1
  769. package/dist/index72.js +5 -46
  770. package/dist/index72.js.map +1 -1
  771. package/dist/index73.js +7 -49
  772. package/dist/index73.js.map +1 -1
  773. package/dist/index74.js +6 -4
  774. package/dist/index74.js.map +1 -1
  775. package/dist/index75.js +2 -6
  776. package/dist/index75.js.map +1 -1
  777. package/dist/index76.js +2 -28
  778. package/dist/index76.js.map +1 -1
  779. package/dist/index77.js +2 -50
  780. package/dist/index77.js.map +1 -1
  781. package/dist/index78.js +2 -9
  782. package/dist/index78.js.map +1 -1
  783. package/dist/index79.js +5 -46
  784. package/dist/index79.js.map +1 -1
  785. package/dist/index8.js +53 -54
  786. package/dist/index8.js.map +1 -1
  787. package/dist/index80.js +68 -5
  788. package/dist/index80.js.map +1 -1
  789. package/dist/index81.js +2 -69
  790. package/dist/index81.js.map +1 -1
  791. package/dist/index82.js +364 -2
  792. package/dist/index82.js.map +1 -1
  793. package/dist/index83.js +201 -303
  794. package/dist/index83.js.map +1 -1
  795. package/dist/index84.js +46 -247
  796. package/dist/index84.js.map +1 -1
  797. package/dist/index85.js +42 -56
  798. package/dist/index85.js.map +1 -1
  799. package/dist/index86.js +169 -46
  800. package/dist/index86.js.map +1 -1
  801. package/dist/index87.js +96 -156
  802. package/dist/index87.js.map +1 -1
  803. package/dist/index88.js +24 -109
  804. package/dist/index88.js.map +1 -1
  805. package/dist/index89.js +8 -25
  806. package/dist/index89.js.map +1 -1
  807. package/dist/index9.js +1 -1
  808. package/dist/index90.js +5 -8
  809. package/dist/index90.js.map +1 -1
  810. package/dist/index91.js +5 -4
  811. package/dist/index91.js.map +1 -1
  812. package/dist/index92.js +4 -5
  813. package/dist/index92.js.map +1 -1
  814. package/dist/index93.js +466 -4
  815. package/dist/index93.js.map +1 -1
  816. package/dist/index94.js +139 -420
  817. package/dist/index94.js.map +1 -1
  818. package/dist/index95.js +71 -149
  819. package/dist/index95.js.map +1 -1
  820. package/dist/index96.js +229 -74
  821. package/dist/index96.js.map +1 -1
  822. package/dist/index97.js +9 -262
  823. package/dist/index97.js.map +1 -1
  824. package/dist/index98.js +42 -9
  825. package/dist/index98.js.map +1 -1
  826. package/dist/index99.js +4 -42
  827. package/dist/index99.js.map +1 -1
  828. package/dist/lib/render-as-child.d.ts +5 -0
  829. package/dist/lib/render-as-child.d.ts.map +1 -0
  830. package/package.json +3 -6
  831. package/dist/lib/react-compose-refs.d.ts +0 -5
  832. package/dist/lib/react-compose-refs.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index18.js","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 DEFAULT_COUNTRY,\n COMMON_IDD_PREFIXES,\n buildFallbackSelectedCountry,\n getCachedCountryOptions,\n getLocaleCacheKey,\n getValidCountry,\n normalizeSearchValue,\n optionMatchIndex,\n parseLocaleCacheKey,\n toSelectedCountry,\n} from \"./country-options\"\nimport {\n detectNationalPrefixForDisplay,\n formatWithAsYouType,\n getLengthIssue,\n getSuggestionState,\n injectNationalPrefixDisplay,\n normalizeInputValue,\n sanitizeDigits,\n shouldDisplayExplicitCountrySelection,\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\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 hasConfiguredCountry =\n typeof defaultCountry === \"string\" || typeof countryProp === \"string\"\n\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 fallbackCountry = 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 hasResolvedCountryRef = React.useRef<boolean>(hasConfiguredCountry)\n\n const initialStateRef = React.useRef<{\n country: CountryCode\n inputValue: string\n normalizedValue: string\n hasExplicitCountrySelection: boolean\n } | null>(null)\n const lastNormalizedRef = React.useRef<string>(\"\")\n\n if (!initialStateRef.current) {\n if (!value) {\n initialStateRef.current = {\n country: fallbackCountry,\n inputValue: \"\",\n normalizedValue: \"\",\n hasExplicitCountrySelection: false,\n }\n lastNormalizedRef.current = \"\"\n } else {\n const baseCountryForInit = hasConfiguredCountry ? fallbackCountry : undefined\n const normalized = normalizeInputValue(value, baseCountryForInit, { allowJustPlus: true })\n if (!normalized) {\n initialStateRef.current = {\n country: fallbackCountry,\n inputValue: \"\",\n normalizedValue: \"\",\n hasExplicitCountrySelection: false,\n }\n lastNormalizedRef.current = \"\"\n } else {\n const {\n international,\n phoneNumber,\n detectedCountry,\n inferredCountry,\n hasExplicitInternationalPrefix,\n } = formatWithAsYouType(normalized, baseCountryForInit)\n const canonicalDetectedCountry = detectedCountry ?? undefined\n let resolvedCountry = canonicalDetectedCountry ?? fallbackCountry\n const rawDigits = sanitizeDigits(value ?? \"\")\n const hasExplicitPlus = typeof value === \"string\" ? /^\\s*\\+/.test(value) : false\n const internationalDigits = sanitizeDigits(international)\n const initialDialCode = getCountryCallingCode(resolvedCountry)\n const initialHasPrefix = detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n initialDialCode,\n hasExplicitPlus\n )\n\n const suggestion = getSuggestionState(\n normalized,\n baseCountryForInit,\n phoneNumber ?? undefined,\n {\n hasRemovedNationalPrefix: initialHasPrefix,\n detectedCountry: canonicalDetectedCountry,\n hasExplicitInternationalPrefix,\n }\n )\n\n const inferredCountryToApply =\n !suggestion.shouldSuggest && !canonicalDetectedCountry ? inferredCountry : undefined\n\n\n if (inferredCountryToApply) {\n resolvedCountry = inferredCountryToApply\n }\n\n const resolvedFromValue =\n Boolean(canonicalDetectedCountry) || Boolean(inferredCountryToApply)\n if (resolvedFromValue) {\n hasResolvedCountryRef.current = true\n }\n\n const nextDialCode = getCountryCallingCode(resolvedCountry)\n const finalHasPrefix = inferredCountryToApply\n ? detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n nextDialCode,\n hasExplicitPlus\n )\n : initialHasPrefix\n\n const displayValue = injectNationalPrefixDisplay(international, nextDialCode, {\n force: finalHasPrefix,\n })\n\n const displayDetectedCountry = canonicalDetectedCountry ?? undefined\n const allowInlineFlag = hasResolvedCountryRef.current\n initialStateRef.current = {\n country: resolvedCountry,\n inputValue: displayValue,\n normalizedValue: normalized,\n hasExplicitCountrySelection:\n allowInlineFlag &&\n shouldDisplayExplicitCountrySelection(suggestion, {\n detectedCountry: displayDetectedCountry,\n hasExplicitInternationalPrefix,\n }),\n }\n lastNormalizedRef.current = normalized\n }\n }\n }\n\n const initialState = initialStateRef.current\n\n const [uncontrolledCountry, setUncontrolledCountry] = React.useState(initialState.country)\n const [inputValueState, setInputValueState] = React.useState(initialState.inputValue)\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 [lengthIssue, setLengthIssue] = React.useState<LengthIssue | null>(null)\n const [hasExplicitCountrySelection, setHasExplicitCountrySelection] = React.useState(\n initialState.hasExplicitCountrySelection\n )\n const manualSelectionCountryRef = React.useRef<CountryCode | null>(null)\n\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 consumeScrollBehavior = React.useCallback(() => {\n const behavior = scrollBehaviorRef.current\n scrollBehaviorRef.current = \"smooth\"\n return behavior\n }, [])\n\n const isCountryControlled = typeof countryProp === \"string\"\n const selectedCountry = isCountryControlled ? countryProp : uncontrolledCountry\n const activeCountry = selectedCountry ?? fallbackCountry\n\n const inputRef = React.useRef<HTMLInputElement | null>(null)\n\n React.useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement, [])\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 {\n styles: userSelectStyles,\n components: userSelectComponents,\n classNamePrefix: userClassNamePrefix,\n formatOptionLabel: userFormatOptionLabel,\n ...forwardedSelectProps\n } = selectOverrides\n const { noOptionsMessage, ...restForwardedSelectProps } = forwardedSelectProps\n\n const mergedSelectStyles = React.useMemo<StylesConfig<CountryOption, false>>(\n () => ({\n ...suggestionSelectStyles,\n ...(userSelectStyles ?? {}),\n }),\n [userSelectStyles]\n )\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 const hasAnnouncedCountryRef = React.useRef(false)\n\n const notifyCountryChange = React.useCallback(\n (country: CountryCode) => {\n hasAnnouncedCountryRef.current = true\n const selection = resolveSelectedCountry(country)\n onCountryChange?.(country, selection)\n return selection\n },\n [onCountryChange, resolveSelectedCountry]\n )\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 baseCountryForSync = hasResolvedCountryRef.current ? activeCountry : undefined\n const previousNormalized = lastNormalizedRef.current\n const normalized = normalizeInputValue(value, baseCountryForSync, {\n allowJustPlus: true,\n previousValue: previousNormalized,\n })\n lastNormalizedRef.current = normalized\n keyboardBufferRef.current = \"\"\n\n if (!normalized) {\n setInputValueState(\"\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n return\n }\n\n if (normalized === \"0\") {\n setInputValueState(\"0\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n return\n }\n\n if (normalized === \"+\") {\n setInputValueState(\"+\")\n setShowSuggestions(true)\n setCountryQuery(\"\")\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n return\n }\n\n const {\n international,\n phoneNumber,\n detectedCountry,\n inferredCountry,\n hasExplicitInternationalPrefix,\n } = formatWithAsYouType(normalized, baseCountryForSync)\n const canonicalDetectedCountry = detectedCountry ?? undefined\n let nextCountry = canonicalDetectedCountry ?? baseCountryForSync ?? activeCountry\n const rawDigits = sanitizeDigits(value ?? \"\")\n const hasExplicitPlus = typeof value === \"string\" ? /^\\s*\\+/.test(value) : false\n const internationalDigits = sanitizeDigits(international)\n const initialDialCode = getCountryCallingCode(nextCountry)\n const initialHasTypedTrunk = detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n initialDialCode,\n hasExplicitPlus\n )\n\n const suggestion = getSuggestionState(\n normalized,\n baseCountryForSync,\n phoneNumber ?? undefined,\n {\n hasRemovedNationalPrefix: initialHasTypedTrunk,\n detectedCountry: canonicalDetectedCountry,\n hasExplicitInternationalPrefix,\n }\n )\n\n const inferredCountryToApply =\n !suggestion.shouldSuggest && !canonicalDetectedCountry ? inferredCountry : undefined\n const finalCountry = inferredCountryToApply ?? nextCountry\n\n const resolvedFromValue =\n Boolean(canonicalDetectedCountry) || Boolean(inferredCountryToApply)\n if (resolvedFromValue) {\n hasResolvedCountryRef.current = true\n }\n\n if (!isCountryControlled && finalCountry !== uncontrolledCountry) {\n setUncontrolledCountry(finalCountry)\n notifyCountryChange(finalCountry)\n }\n\n nextCountry = finalCountry\n\n if (\n manualSelectionCountryRef.current &&\n manualSelectionCountryRef.current !== nextCountry\n ) {\n manualSelectionCountryRef.current = null\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n const hasTypedTrunk = inferredCountryToApply\n ? detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n nextDialCode,\n hasExplicitPlus\n )\n : initialHasTypedTrunk\n\n const displayValue = injectNationalPrefixDisplay(international, nextDialCode, {\n force: hasTypedTrunk,\n })\n const displayDetectedCountry = canonicalDetectedCountry ?? undefined\n const manualSelectionActive = manualSelectionCountryRef.current != null\n const shouldShowInlineFlag =\n manualSelectionActive ||\n shouldDisplayExplicitCountrySelection(suggestion, {\n detectedCountry: displayDetectedCountry,\n hasExplicitInternationalPrefix,\n })\n\n setInputValueState(displayValue)\n setShowSuggestions(suggestion.shouldSuggest)\n setCountryQuery(suggestion.query)\n setLengthIssue(hasResolvedCountryRef.current ? getLengthIssue(normalized, nextCountry) : null)\n setHasExplicitCountrySelection(hasResolvedCountryRef.current && shouldShowInlineFlag)\n }, [\n value,\n activeCountry,\n fallbackCountry,\n hasConfiguredCountry,\n isCountryControlled,\n notifyCountryChange,\n uncontrolledCountry,\n ])\n\n React.useEffect(() => {\n if (hasAnnouncedCountryRef.current) {\n return\n }\n if (!hasResolvedCountryRef.current) {\n return\n }\n const current = selectedCountry ?? fallbackCountry\n if (!current) {\n return\n }\n notifyCountryChange(current)\n }, [fallbackCountry, notifyCountryChange, selectedCountry])\n\n React.useEffect(() => {\n if (isCountryControlled && countryProp && countryProp !== uncontrolledCountry) {\n setUncontrolledCountry(countryProp)\n }\n }, [countryProp, isCountryControlled, uncontrolledCountry])\n\n const emitChange = React.useCallback(\n (details: Omit<PhoneNumberChangeDetails, \"selectedCountry\">) => {\n const selection = resolveSelectedCountry(details.country)\n onChange?.({\n ...details,\n selectedCountry: selection,\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 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 baseCountryForInput = hasResolvedCountryRef.current ? activeCountry : undefined\n const dialCode = baseCountryForInput ? getCountryCallingCode(baseCountryForInput) : \"\"\n const typedDigits = sanitizeDigits(raw)\n const hasExplicitPlus = raw.trim().startsWith(\"+\")\n const startsWithDialCode = dialCode ? typedDigits.startsWith(dialCode) : false\n const hasLeadingZero = typedDigits.startsWith(\"0\")\n const isIddPrefix = COMMON_IDD_PREFIXES.some((prefix) => typedDigits.startsWith(prefix))\n\n const shouldRemoveNationalPrefix =\n Boolean(baseCountryForInput) &&\n !isIddPrefix &&\n ((startsWithDialCode && typedDigits.slice(dialCode.length).startsWith(\"0\")) ||\n (!hasExplicitPlus && hasLeadingZero && typedDigits.length > 1) ||\n (hasExplicitPlus && hasLeadingZero && typedDigits.length > 1 && !startsWithDialCode))\n\n const previousNormalized = lastNormalizedRef.current\n const normalized = normalizeInputValue(raw, baseCountryForInput, {\n allowJustPlus: true,\n removeNationalPrefix: shouldRemoveNationalPrefix,\n previousValue: previousNormalized,\n })\n lastNormalizedRef.current = normalized\n\n if (!normalized) {\n setInputValueState(\"\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n pendingSelectionRef.current = resolveSelection(snapshot, \"\")\n\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n emitChange({\n formattedInternational: \"\",\n formattedNational: \"\",\n e164: null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: \"\",\n rawInput: \"\",\n isValid: false,\n })\n return\n }\n\n if (normalized === \"0\") {\n setInputValueState(\"0\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n pendingSelectionRef.current = resolveSelection(snapshot, \"0\")\n\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n emitChange({\n formattedInternational: \"0\",\n formattedNational: \"0\",\n e164: null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: \"0\",\n rawInput: \"0\",\n isValid: false,\n })\n return\n }\n\n if (normalized === \"+\") {\n setInputValueState(\"+\")\n setShowSuggestions(true)\n setCountryQuery(\"\")\n setHighlightedIndex(0)\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n pendingSelectionRef.current = resolveSelection(snapshot, \"+\")\n\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n emitChange({\n formattedInternational: \"+\",\n formattedNational: \"\",\n e164: null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: \"\",\n rawInput: \"+\",\n isValid: false,\n })\n return\n }\n\n const {\n international,\n national,\n phoneNumber,\n detectedCountry,\n inferredCountry,\n hasExplicitInternationalPrefix,\n } = formatWithAsYouType(normalized, baseCountryForInput)\n const canonicalDetectedCountry = detectedCountry ?? undefined\n let nextCountry = canonicalDetectedCountry ?? baseCountryForInput ?? activeCountry\n\n const internationalDigits = sanitizeDigits(international)\n const initialDialCode = getCountryCallingCode(nextCountry)\n const initialHasTypedTrunk = detectNationalPrefixForDisplay(\n typedDigits,\n internationalDigits,\n initialDialCode,\n hasExplicitPlus\n )\n\n const suggestion = getSuggestionState(\n normalized,\n baseCountryForInput,\n phoneNumber ?? undefined,\n {\n hasRemovedNationalPrefix: initialHasTypedTrunk,\n detectedCountry: canonicalDetectedCountry,\n hasExplicitInternationalPrefix,\n }\n )\n\n const inferredCountryToApply =\n !suggestion.shouldSuggest && !canonicalDetectedCountry ? inferredCountry : undefined\n const finalCountry = inferredCountryToApply ?? nextCountry\n\n const resolvedFromInput =\n Boolean(canonicalDetectedCountry) || Boolean(inferredCountryToApply)\n if (resolvedFromInput) {\n hasResolvedCountryRef.current = true\n }\n\n if (!isCountryControlled && finalCountry !== uncontrolledCountry) {\n setUncontrolledCountry(finalCountry)\n notifyCountryChange(finalCountry)\n }\n\n nextCountry = finalCountry\n\n if (\n manualSelectionCountryRef.current &&\n manualSelectionCountryRef.current !== nextCountry\n ) {\n manualSelectionCountryRef.current = null\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n const normalizedDigits = sanitizeDigits(normalized)\n const nationalDigits = stripPrefix(normalizedDigits, nextDialCode)\n const hasTypedTrunk = inferredCountryToApply\n ? detectNationalPrefixForDisplay(\n typedDigits,\n internationalDigits,\n nextDialCode,\n hasExplicitPlus\n )\n : initialHasTypedTrunk\n\n const displayValue = injectNationalPrefixDisplay(international, nextDialCode, {\n force: hasTypedTrunk,\n })\n\n const displayDetectedCountry = canonicalDetectedCountry ?? undefined\n\n pendingSelectionRef.current = resolveSelection(snapshot, displayValue)\n setInputValueState(displayValue)\n setShowSuggestions(suggestion.shouldSuggest)\n setCountryQuery(suggestion.query)\n setHighlightedIndex(suggestion.shouldSuggest ? 0 : -1)\n setLengthIssue(hasResolvedCountryRef.current ? getLengthIssue(normalized, nextCountry) : null)\n const manualSelectionActive = manualSelectionCountryRef.current != null\n const shouldShowInlineFlag =\n manualSelectionActive ||\n shouldDisplayExplicitCountrySelection(suggestion, {\n detectedCountry: displayDetectedCountry,\n hasExplicitInternationalPrefix,\n })\n setHasExplicitCountrySelection(hasResolvedCountryRef.current && shouldShowInlineFlag)\n emitChange({\n formattedInternational: international,\n formattedNational: national,\n e164: phoneNumber?.number ?? null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: nationalDigits,\n rawInput: normalized,\n isValid: phoneNumber?.isValid() ?? false,\n })\n },\n [\n activeCountry,\n emitChange,\n fallbackCountry,\n hasConfiguredCountry,\n isCountryControlled,\n notifyCountryChange,\n uncontrolledCountry,\n ]\n )\n\n const handleCountrySelect = React.useCallback(\n (option: SingleValue<CountryOption>) => {\n if (!option) {\n return\n }\n\n const previousDigits = sanitizeDigits(lastNormalizedRef.current || inputValueState)\n const currentDial = getCountryCallingCode(activeCountry)\n const digitsWithoutCurrentDial = previousDigits.startsWith(currentDial)\n ? previousDigits.slice(currentDial.length)\n : previousDigits\n let rebasedDigits = digitsWithoutCurrentDial\n if (!rebasedDigits) {\n rebasedDigits = option.dialCode\n } else if (!rebasedDigits.startsWith(option.dialCode)) {\n rebasedDigits = `${option.dialCode}${rebasedDigits}`\n }\n const normalized = `+${rebasedDigits}`\n lastNormalizedRef.current = normalized\n const { international, national, phoneNumber } = formatWithAsYouType(\n normalized,\n option.value\n )\n const nextCountry = option.value\n manualSelectionCountryRef.current = nextCountry\n hasResolvedCountryRef.current = true\n\n setInputValueState(international)\n pendingSelectionRef.current = {\n start: international.length,\n end: international.length,\n }\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(getLengthIssue(normalized, nextCountry))\n\n if (!isCountryControlled && nextCountry !== uncontrolledCountry) {\n setUncontrolledCountry(nextCountry)\n }\n\n notifyCountryChange(nextCountry)\n\n const normalizedDigits = sanitizeDigits(normalized)\n const dialCode = phoneNumber?.countryCallingCode ?? option.dialCode\n const nationalDigits = stripPrefix(normalizedDigits, dialCode)\n setHasExplicitCountrySelection(true)\n emitChange({\n formattedInternational: international,\n formattedNational: national,\n e164: phoneNumber?.number ?? null,\n country: nextCountry,\n countryCallingCode: dialCode,\n nationalNumber: nationalDigits,\n rawInput: normalized,\n isValid: phoneNumber?.isValid() ?? false,\n })\n\n requestAnimationFrame(() => {\n inputRef.current?.focus()\n })\n },\n [activeCountry, emitChange, inputValueState, isCountryControlled, notifyCountryChange, uncontrolledCountry]\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) => {\n if (!results.some((existing) => existing.value === option.value)) {\n results.push(option)\n }\n }\n\n const fallbackOption = countryOptions.find((option) => option.value === fallbackCountry)\n const currentOption = countryOptions.find((option) => option.value === activeCountry)\n const query = countryQuery.trim()\n const digitQuery = sanitizeDigits(query)\n const normalizedQuery = normalizeSearchValue(query)\n\n if (!digitQuery && !normalizedQuery) {\n if (fallbackOption) {\n pushUnique(fallbackOption)\n }\n if (currentOption) {\n pushUnique(currentOption)\n }\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 if (currentOption) {\n pushUnique(currentOption)\n }\n if (fallbackOption) {\n pushUnique(fallbackOption)\n }\n if (results.length === 0) {\n countryOptions.forEach(pushUnique)\n }\n\n return results\n }, [activeCountry, countryOptions, countryQuery, fallbackCountry, 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 React.useEffect(() => {\n if (highlightedIndex < 0) {\n scrollBehaviorRef.current = \"smooth\"\n }\n }, [highlightedIndex])\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 = countryOptions.find((option) => option.value === activeCountry)\n const activeFlag = activeOption?.flag ?? \"\"\n const inlineFlagLabel = hasExplicitCountrySelection\n ? resolvedMessages.selectedCountryLabel(activeOption?.name ?? activeCountry ?? null)\n : resolvedMessages.selectCountryLabel\n const hasInlineFlag = hasExplicitCountrySelection && Boolean(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 target = highlightedOption ?? filteredOptions[0]\n handleCountrySelect(target)\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 <SuggestionContext.Provider value={highlightContextValue}>\n <Select<CountryOption, false>\n {...restForwardedSelectProps}\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 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 </div>\n\n {validationNode}\n </div>\n )\n }\n)\n\nPhoneNumberInput.displayName = \"PhoneNumberInput\"\n"],"names":["PhoneNumberInput","React","forwardRef","props","forwardedRef","value","defaultCountry","country","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","hasConfiguredCountry","localeCacheKey","getLocaleCacheKey","localeForBuild","useMemo","parseLocaleCacheKey","resolvedMessages","resolveMessages","countryOptions","getCachedCountryOptions","resolveSelectedCountry","useCallback","match","find","candidate","toSelectedCountry","buildFallbackSelectedCountry","fallbackCountry","getValidCountry","DEFAULT_COUNTRY","some","option","hasResolvedCountryRef","useRef","initialStateRef","lastNormalizedRef","current","inputValue","normalizedValue","hasExplicitCountrySelection","baseCountryForInit","undefined","normalized","normalizeInputValue","allowJustPlus","international","phoneNumber","detectedCountry","inferredCountry","hasExplicitInternationalPrefix","formatWithAsYouType","canonicalDetectedCountry","resolvedCountry","rawDigits","sanitizeDigits","hasExplicitPlus","test","internationalDigits","initialDialCode","getCountryCallingCode","initialHasPrefix","detectNationalPrefixForDisplay","suggestion","getSuggestionState","hasRemovedNationalPrefix","inferredCountryToApply","shouldSuggest","nextDialCode","finalHasPrefix","displayValue","injectNationalPrefixDisplay","force","displayDetectedCountry","allowInlineFlag","shouldDisplayExplicitCountrySelection","initialState","uncontrolledCountry","setUncontrolledCountry","useState","inputValueState","setInputValueState","countryQuery","setCountryQuery","showSuggestions","setShowSuggestions","highlightedIndex","setHighlightedIndex","isFocused","setIsFocused","lengthIssue","setLengthIssue","setHasExplicitCountrySelection","manualSelectionCountryRef","keyboardBufferRef","bufferTimeoutRef","scrollBehaviorRef","pendingSelectionRef","consumeScrollBehavior","behavior","isCountryControlled","selectedCountry","activeCountry","inputRef","useImperativeHandle","useLayoutEffect","selection","input","start","end","setSelectionRange","selectOverrides","styles","userSelectStyles","components","userSelectComponents","classNamePrefix","userClassNamePrefix","formatOptionLabel","userFormatOptionLabel","forwardedSelectProps","noOptionsMessage","restForwardedSelectProps","mergedSelectStyles","suggestionSelectStyles","mergedSelectComponents","baseComponents","Control","HiddenControl","IndicatorsContainer","NullComponent","DropdownIndicator","IndicatorSeparator","ValueContainer","overrides","Option","SuggestionOption","hasAnnouncedCountryRef","notifyCountryChange","useEffect","window","clearTimeout","baseCountryForSync","previousNormalized","previousValue","nextCountry","initialHasTypedTrunk","finalCountry","hasTypedTrunk","shouldShowInlineFlag","query","getLengthIssue","emitChange","details","scheduleBufferReset","setTimeout","handleInputChange","event","target","snapshot","captureSelectionSnapshot","raw","baseCountryForInput","dialCode","typedDigits","trim","startsWith","startsWithDialCode","hasLeadingZero","isIddPrefix","COMMON_IDD_PREFIXES","prefix","shouldRemoveNationalPrefix","Boolean","slice","length","removeNationalPrefix","resolveSelection","formattedInternational","formattedNational","e164","countryCallingCode","nationalNumber","rawInput","isValid","national","normalizedDigits","nationalDigits","stripPrefix","number","handleCountrySelect","previousDigits","currentDial","rebasedDigits","requestAnimationFrame","focus","filteredOptions","results","pushUnique","existing","push","fallbackOption","currentOption","digitQuery","normalizedQuery","normalizeSearchValue","forEach","filter","sort","a","b","aExact","bExact","normalizedSearchableTokens","token","includes","aIndex","optionMatchIndex","bIndex","localeCompare","suggestionMenuIsOpen","highlightedOption","updateHighlightedOption","index","findIndex","selectFormatOptionLabel","meta","formatCountryOption","optionLabelRenderer","context","selectValue","highlightContextValue","highlightedValue","setHighlightedOption","renderOptionLabel","activeOption","activeFlag","flag","inlineFlagLabel","selectedCountryLabel","selectCountryLabel","hasInlineFlag","lengthHint","lengthTooLong","countryName","validationNode","rendered","message","code","jsx","appendToBuffer","char","popBuffer","handleKeyDown","defaultPrevented","key","metaKey","ctrlKey","altKey","currentTarget","selectionStart","selectionEnd","isCollapsedSelection","nextStart","skipFormattingCharactersLeft","preventDefault","skipFormattingCharactersRight","repeat","toLowerCase","handleFocus","handleBlur","openCountryMenu","shimName","cn","jsxs","pointerEvents","width","SuggestionContext","Select","noMatches","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"index18.js","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 DEFAULT_COUNTRY,\n COMMON_IDD_PREFIXES,\n buildFallbackSelectedCountry,\n getCachedCountryOptions,\n getLocaleCacheKey,\n getValidCountry,\n normalizeSearchValue,\n optionMatchIndex,\n parseLocaleCacheKey,\n toSelectedCountry,\n} from \"./country-options\"\nimport {\n detectNationalPrefixForDisplay,\n formatWithAsYouType,\n getLengthIssue,\n getSuggestionState,\n injectNationalPrefixDisplay,\n normalizeInputValue,\n sanitizeDigits,\n shouldDisplayExplicitCountrySelection,\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\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 hasConfiguredCountry =\n typeof defaultCountry === \"string\" || typeof countryProp === \"string\"\n\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 fallbackCountry = 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 hasResolvedCountryRef = React.useRef<boolean>(hasConfiguredCountry)\n\n const initialStateRef = React.useRef<{\n country: CountryCode\n inputValue: string\n normalizedValue: string\n hasExplicitCountrySelection: boolean\n } | null>(null)\n const lastNormalizedRef = React.useRef<string>(\"\")\n\n if (!initialStateRef.current) {\n if (!value) {\n initialStateRef.current = {\n country: fallbackCountry,\n inputValue: \"\",\n normalizedValue: \"\",\n hasExplicitCountrySelection: false,\n }\n lastNormalizedRef.current = \"\"\n } else {\n const baseCountryForInit = hasConfiguredCountry ? fallbackCountry : undefined\n const normalized = normalizeInputValue(value, baseCountryForInit, { allowJustPlus: true })\n if (!normalized) {\n initialStateRef.current = {\n country: fallbackCountry,\n inputValue: \"\",\n normalizedValue: \"\",\n hasExplicitCountrySelection: false,\n }\n lastNormalizedRef.current = \"\"\n } else {\n const {\n international,\n phoneNumber,\n detectedCountry,\n inferredCountry,\n hasExplicitInternationalPrefix,\n } = formatWithAsYouType(normalized, baseCountryForInit)\n const canonicalDetectedCountry = detectedCountry ?? undefined\n let resolvedCountry = canonicalDetectedCountry ?? fallbackCountry\n const rawDigits = sanitizeDigits(value ?? \"\")\n const hasExplicitPlus = typeof value === \"string\" ? /^\\s*\\+/.test(value) : false\n const internationalDigits = sanitizeDigits(international)\n const initialDialCode = getCountryCallingCode(resolvedCountry)\n const initialHasPrefix = detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n initialDialCode,\n hasExplicitPlus\n )\n\n const suggestion = getSuggestionState(\n normalized,\n baseCountryForInit,\n phoneNumber ?? undefined,\n {\n hasRemovedNationalPrefix: initialHasPrefix,\n detectedCountry: canonicalDetectedCountry,\n hasExplicitInternationalPrefix,\n }\n )\n\n const inferredCountryToApply =\n !suggestion.shouldSuggest && !canonicalDetectedCountry ? inferredCountry : undefined\n\n\n if (inferredCountryToApply) {\n resolvedCountry = inferredCountryToApply\n }\n\n const resolvedFromValue =\n Boolean(canonicalDetectedCountry) || Boolean(inferredCountryToApply)\n if (resolvedFromValue) {\n hasResolvedCountryRef.current = true\n }\n\n const nextDialCode = getCountryCallingCode(resolvedCountry)\n const finalHasPrefix = inferredCountryToApply\n ? detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n nextDialCode,\n hasExplicitPlus\n )\n : initialHasPrefix\n\n const displayValue = injectNationalPrefixDisplay(international, nextDialCode, {\n force: finalHasPrefix,\n })\n\n const displayDetectedCountry = canonicalDetectedCountry ?? undefined\n const allowInlineFlag = hasResolvedCountryRef.current\n initialStateRef.current = {\n country: resolvedCountry,\n inputValue: displayValue,\n normalizedValue: normalized,\n hasExplicitCountrySelection:\n allowInlineFlag &&\n shouldDisplayExplicitCountrySelection(suggestion, {\n detectedCountry: displayDetectedCountry,\n hasExplicitInternationalPrefix,\n }),\n }\n lastNormalizedRef.current = normalized\n }\n }\n }\n\n const initialState = initialStateRef.current\n\n const [uncontrolledCountry, setUncontrolledCountry] = React.useState(initialState.country)\n const [inputValueState, setInputValueState] = React.useState(initialState.inputValue)\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 [lengthIssue, setLengthIssue] = React.useState<LengthIssue | null>(null)\n const [hasExplicitCountrySelection, setHasExplicitCountrySelection] = React.useState(\n initialState.hasExplicitCountrySelection\n )\n const manualSelectionCountryRef = React.useRef<CountryCode | null>(null)\n\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 consumeScrollBehavior = React.useCallback(() => {\n const behavior = scrollBehaviorRef.current\n scrollBehaviorRef.current = \"smooth\"\n return behavior\n }, [])\n\n const isCountryControlled = typeof countryProp === \"string\"\n const selectedCountry = isCountryControlled ? countryProp : uncontrolledCountry\n const activeCountry = selectedCountry ?? fallbackCountry\n\n const inputRef = React.useRef<HTMLInputElement | null>(null)\n\n React.useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement, [])\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 {\n styles: userSelectStyles,\n components: userSelectComponents,\n classNamePrefix: userClassNamePrefix,\n formatOptionLabel: userFormatOptionLabel,\n menuPortalTarget: userMenuPortalTarget,\n menuPosition: userMenuPosition,\n ...forwardedSelectProps\n } = selectOverrides\n const { noOptionsMessage, ...restForwardedSelectProps } = forwardedSelectProps\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 base = {\n ...provided,\n zIndex: 1300,\n }\n\n return userMenuPortal ? userMenuPortal(base, state) : base\n },\n }\n },\n [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 const hasAnnouncedCountryRef = React.useRef(false)\n\n const notifyCountryChange = React.useCallback(\n (country: CountryCode) => {\n hasAnnouncedCountryRef.current = true\n const selection = resolveSelectedCountry(country)\n onCountryChange?.(country, selection)\n return selection\n },\n [onCountryChange, resolveSelectedCountry]\n )\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 baseCountryForSync = hasResolvedCountryRef.current ? activeCountry : undefined\n const previousNormalized = lastNormalizedRef.current\n const normalized = normalizeInputValue(value, baseCountryForSync, {\n allowJustPlus: true,\n previousValue: previousNormalized,\n })\n lastNormalizedRef.current = normalized\n keyboardBufferRef.current = \"\"\n\n if (!normalized) {\n setInputValueState(\"\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n return\n }\n\n if (normalized === \"0\") {\n setInputValueState(\"0\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n return\n }\n\n if (normalized === \"+\") {\n setInputValueState(\"+\")\n setShowSuggestions(true)\n setCountryQuery(\"\")\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n return\n }\n\n const {\n international,\n phoneNumber,\n detectedCountry,\n inferredCountry,\n hasExplicitInternationalPrefix,\n } = formatWithAsYouType(normalized, baseCountryForSync)\n const canonicalDetectedCountry = detectedCountry ?? undefined\n let nextCountry = canonicalDetectedCountry ?? baseCountryForSync ?? activeCountry\n const rawDigits = sanitizeDigits(value ?? \"\")\n const hasExplicitPlus = typeof value === \"string\" ? /^\\s*\\+/.test(value) : false\n const internationalDigits = sanitizeDigits(international)\n const initialDialCode = getCountryCallingCode(nextCountry)\n const initialHasTypedTrunk = detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n initialDialCode,\n hasExplicitPlus\n )\n\n const suggestion = getSuggestionState(\n normalized,\n baseCountryForSync,\n phoneNumber ?? undefined,\n {\n hasRemovedNationalPrefix: initialHasTypedTrunk,\n detectedCountry: canonicalDetectedCountry,\n hasExplicitInternationalPrefix,\n }\n )\n\n const inferredCountryToApply =\n !suggestion.shouldSuggest && !canonicalDetectedCountry ? inferredCountry : undefined\n const finalCountry = inferredCountryToApply ?? nextCountry\n\n const resolvedFromValue =\n Boolean(canonicalDetectedCountry) || Boolean(inferredCountryToApply)\n if (resolvedFromValue) {\n hasResolvedCountryRef.current = true\n }\n\n if (!isCountryControlled && finalCountry !== uncontrolledCountry) {\n setUncontrolledCountry(finalCountry)\n notifyCountryChange(finalCountry)\n }\n\n nextCountry = finalCountry\n\n if (\n manualSelectionCountryRef.current &&\n manualSelectionCountryRef.current !== nextCountry\n ) {\n manualSelectionCountryRef.current = null\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n const hasTypedTrunk = inferredCountryToApply\n ? detectNationalPrefixForDisplay(\n rawDigits,\n internationalDigits,\n nextDialCode,\n hasExplicitPlus\n )\n : initialHasTypedTrunk\n\n const displayValue = injectNationalPrefixDisplay(international, nextDialCode, {\n force: hasTypedTrunk,\n })\n const displayDetectedCountry = canonicalDetectedCountry ?? undefined\n const manualSelectionActive = manualSelectionCountryRef.current != null\n const shouldShowInlineFlag =\n manualSelectionActive ||\n shouldDisplayExplicitCountrySelection(suggestion, {\n detectedCountry: displayDetectedCountry,\n hasExplicitInternationalPrefix,\n })\n\n setInputValueState(displayValue)\n setShowSuggestions(suggestion.shouldSuggest)\n setCountryQuery(suggestion.query)\n setLengthIssue(hasResolvedCountryRef.current ? getLengthIssue(normalized, nextCountry) : null)\n setHasExplicitCountrySelection(hasResolvedCountryRef.current && shouldShowInlineFlag)\n }, [\n value,\n activeCountry,\n fallbackCountry,\n hasConfiguredCountry,\n isCountryControlled,\n notifyCountryChange,\n uncontrolledCountry,\n ])\n\n React.useEffect(() => {\n if (hasAnnouncedCountryRef.current) {\n return\n }\n if (!hasResolvedCountryRef.current) {\n return\n }\n const current = selectedCountry ?? fallbackCountry\n if (!current) {\n return\n }\n notifyCountryChange(current)\n }, [fallbackCountry, notifyCountryChange, selectedCountry])\n\n React.useEffect(() => {\n if (isCountryControlled && countryProp && countryProp !== uncontrolledCountry) {\n setUncontrolledCountry(countryProp)\n }\n }, [countryProp, isCountryControlled, uncontrolledCountry])\n\n const emitChange = React.useCallback(\n (details: Omit<PhoneNumberChangeDetails, \"selectedCountry\">) => {\n const selection = resolveSelectedCountry(details.country)\n onChange?.({\n ...details,\n selectedCountry: selection,\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 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 baseCountryForInput = hasResolvedCountryRef.current ? activeCountry : undefined\n const dialCode = baseCountryForInput ? getCountryCallingCode(baseCountryForInput) : \"\"\n const typedDigits = sanitizeDigits(raw)\n const hasExplicitPlus = raw.trim().startsWith(\"+\")\n const startsWithDialCode = dialCode ? typedDigits.startsWith(dialCode) : false\n const hasLeadingZero = typedDigits.startsWith(\"0\")\n const isIddPrefix = COMMON_IDD_PREFIXES.some((prefix) => typedDigits.startsWith(prefix))\n\n const shouldRemoveNationalPrefix =\n Boolean(baseCountryForInput) &&\n !isIddPrefix &&\n ((startsWithDialCode && typedDigits.slice(dialCode.length).startsWith(\"0\")) ||\n (!hasExplicitPlus && hasLeadingZero && typedDigits.length > 1) ||\n (hasExplicitPlus && hasLeadingZero && typedDigits.length > 1 && !startsWithDialCode))\n\n const previousNormalized = lastNormalizedRef.current\n const normalized = normalizeInputValue(raw, baseCountryForInput, {\n allowJustPlus: true,\n removeNationalPrefix: shouldRemoveNationalPrefix,\n previousValue: previousNormalized,\n })\n lastNormalizedRef.current = normalized\n\n if (!normalized) {\n setInputValueState(\"\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n pendingSelectionRef.current = resolveSelection(snapshot, \"\")\n\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n emitChange({\n formattedInternational: \"\",\n formattedNational: \"\",\n e164: null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: \"\",\n rawInput: \"\",\n isValid: false,\n })\n return\n }\n\n if (normalized === \"0\") {\n setInputValueState(\"0\")\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n pendingSelectionRef.current = resolveSelection(snapshot, \"0\")\n\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n emitChange({\n formattedInternational: \"0\",\n formattedNational: \"0\",\n e164: null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: \"0\",\n rawInput: \"0\",\n isValid: false,\n })\n return\n }\n\n if (normalized === \"+\") {\n setInputValueState(\"+\")\n setShowSuggestions(true)\n setCountryQuery(\"\")\n setHighlightedIndex(0)\n setLengthIssue(null)\n manualSelectionCountryRef.current = null\n setHasExplicitCountrySelection(false)\n pendingSelectionRef.current = resolveSelection(snapshot, \"+\")\n\n const nextCountry = hasConfiguredCountry ? fallbackCountry : activeCountry\n\n if (!isCountryControlled && uncontrolledCountry !== nextCountry) {\n setUncontrolledCountry(nextCountry)\n notifyCountryChange(nextCountry)\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n emitChange({\n formattedInternational: \"+\",\n formattedNational: \"\",\n e164: null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: \"\",\n rawInput: \"+\",\n isValid: false,\n })\n return\n }\n\n const {\n international,\n national,\n phoneNumber,\n detectedCountry,\n inferredCountry,\n hasExplicitInternationalPrefix,\n } = formatWithAsYouType(normalized, baseCountryForInput)\n const canonicalDetectedCountry = detectedCountry ?? undefined\n let nextCountry = canonicalDetectedCountry ?? baseCountryForInput ?? activeCountry\n\n const internationalDigits = sanitizeDigits(international)\n const initialDialCode = getCountryCallingCode(nextCountry)\n const initialHasTypedTrunk = detectNationalPrefixForDisplay(\n typedDigits,\n internationalDigits,\n initialDialCode,\n hasExplicitPlus\n )\n\n const suggestion = getSuggestionState(\n normalized,\n baseCountryForInput,\n phoneNumber ?? undefined,\n {\n hasRemovedNationalPrefix: initialHasTypedTrunk,\n detectedCountry: canonicalDetectedCountry,\n hasExplicitInternationalPrefix,\n }\n )\n\n const inferredCountryToApply =\n !suggestion.shouldSuggest && !canonicalDetectedCountry ? inferredCountry : undefined\n const finalCountry = inferredCountryToApply ?? nextCountry\n\n const resolvedFromInput =\n Boolean(canonicalDetectedCountry) || Boolean(inferredCountryToApply)\n if (resolvedFromInput) {\n hasResolvedCountryRef.current = true\n }\n\n if (!isCountryControlled && finalCountry !== uncontrolledCountry) {\n setUncontrolledCountry(finalCountry)\n notifyCountryChange(finalCountry)\n }\n\n nextCountry = finalCountry\n\n if (\n manualSelectionCountryRef.current &&\n manualSelectionCountryRef.current !== nextCountry\n ) {\n manualSelectionCountryRef.current = null\n }\n\n const nextDialCode = getCountryCallingCode(nextCountry)\n const normalizedDigits = sanitizeDigits(normalized)\n const nationalDigits = stripPrefix(normalizedDigits, nextDialCode)\n const hasTypedTrunk = inferredCountryToApply\n ? detectNationalPrefixForDisplay(\n typedDigits,\n internationalDigits,\n nextDialCode,\n hasExplicitPlus\n )\n : initialHasTypedTrunk\n\n const displayValue = injectNationalPrefixDisplay(international, nextDialCode, {\n force: hasTypedTrunk,\n })\n\n const displayDetectedCountry = canonicalDetectedCountry ?? undefined\n\n pendingSelectionRef.current = resolveSelection(snapshot, displayValue)\n setInputValueState(displayValue)\n setShowSuggestions(suggestion.shouldSuggest)\n setCountryQuery(suggestion.query)\n setHighlightedIndex(suggestion.shouldSuggest ? 0 : -1)\n setLengthIssue(hasResolvedCountryRef.current ? getLengthIssue(normalized, nextCountry) : null)\n const manualSelectionActive = manualSelectionCountryRef.current != null\n const shouldShowInlineFlag =\n manualSelectionActive ||\n shouldDisplayExplicitCountrySelection(suggestion, {\n detectedCountry: displayDetectedCountry,\n hasExplicitInternationalPrefix,\n })\n setHasExplicitCountrySelection(hasResolvedCountryRef.current && shouldShowInlineFlag)\n emitChange({\n formattedInternational: international,\n formattedNational: national,\n e164: phoneNumber?.number ?? null,\n country: nextCountry,\n countryCallingCode: nextDialCode,\n nationalNumber: nationalDigits,\n rawInput: normalized,\n isValid: phoneNumber?.isValid() ?? false,\n })\n },\n [\n activeCountry,\n emitChange,\n fallbackCountry,\n hasConfiguredCountry,\n isCountryControlled,\n notifyCountryChange,\n uncontrolledCountry,\n ]\n )\n\n const handleCountrySelect = React.useCallback(\n (option: SingleValue<CountryOption>) => {\n if (!option) {\n return\n }\n\n const previousDigits = sanitizeDigits(lastNormalizedRef.current || inputValueState)\n const currentDial = getCountryCallingCode(activeCountry)\n const digitsWithoutCurrentDial = previousDigits.startsWith(currentDial)\n ? previousDigits.slice(currentDial.length)\n : previousDigits\n let rebasedDigits = digitsWithoutCurrentDial\n if (!rebasedDigits) {\n rebasedDigits = option.dialCode\n } else if (!rebasedDigits.startsWith(option.dialCode)) {\n rebasedDigits = `${option.dialCode}${rebasedDigits}`\n }\n const normalized = `+${rebasedDigits}`\n lastNormalizedRef.current = normalized\n const { international, national, phoneNumber } = formatWithAsYouType(\n normalized,\n option.value\n )\n const nextCountry = option.value\n manualSelectionCountryRef.current = nextCountry\n hasResolvedCountryRef.current = true\n\n setInputValueState(international)\n pendingSelectionRef.current = {\n start: international.length,\n end: international.length,\n }\n setShowSuggestions(false)\n setCountryQuery(\"\")\n setHighlightedIndex(-1)\n setLengthIssue(getLengthIssue(normalized, nextCountry))\n\n if (!isCountryControlled && nextCountry !== uncontrolledCountry) {\n setUncontrolledCountry(nextCountry)\n }\n\n notifyCountryChange(nextCountry)\n\n const normalizedDigits = sanitizeDigits(normalized)\n const dialCode = phoneNumber?.countryCallingCode ?? option.dialCode\n const nationalDigits = stripPrefix(normalizedDigits, dialCode)\n setHasExplicitCountrySelection(true)\n emitChange({\n formattedInternational: international,\n formattedNational: national,\n e164: phoneNumber?.number ?? null,\n country: nextCountry,\n countryCallingCode: dialCode,\n nationalNumber: nationalDigits,\n rawInput: normalized,\n isValid: phoneNumber?.isValid() ?? false,\n })\n\n requestAnimationFrame(() => {\n inputRef.current?.focus()\n })\n },\n [activeCountry, emitChange, inputValueState, isCountryControlled, notifyCountryChange, uncontrolledCountry]\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) => {\n if (!results.some((existing) => existing.value === option.value)) {\n results.push(option)\n }\n }\n\n const fallbackOption = countryOptions.find((option) => option.value === fallbackCountry)\n const currentOption = countryOptions.find((option) => option.value === activeCountry)\n const query = countryQuery.trim()\n const digitQuery = sanitizeDigits(query)\n const normalizedQuery = normalizeSearchValue(query)\n\n if (!digitQuery && !normalizedQuery) {\n if (fallbackOption) {\n pushUnique(fallbackOption)\n }\n if (currentOption) {\n pushUnique(currentOption)\n }\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 if (currentOption) {\n pushUnique(currentOption)\n }\n if (fallbackOption) {\n pushUnique(fallbackOption)\n }\n if (results.length === 0) {\n countryOptions.forEach(pushUnique)\n }\n\n return results\n }, [activeCountry, countryOptions, countryQuery, fallbackCountry, 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 React.useEffect(() => {\n if (highlightedIndex < 0) {\n scrollBehaviorRef.current = \"smooth\"\n }\n }, [highlightedIndex])\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 = countryOptions.find((option) => option.value === activeCountry)\n const activeFlag = activeOption?.flag ?? \"\"\n const inlineFlagLabel = hasExplicitCountrySelection\n ? resolvedMessages.selectedCountryLabel(activeOption?.name ?? activeCountry ?? null)\n : resolvedMessages.selectCountryLabel\n const hasInlineFlag = hasExplicitCountrySelection && Boolean(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 target = highlightedOption ?? filteredOptions[0]\n handleCountrySelect(target)\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 <SuggestionContext.Provider value={highlightContextValue}>\n <Select<CountryOption, false>\n {...restForwardedSelectProps}\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 </div>\n\n {validationNode}\n </div>\n )\n }\n)\n\nPhoneNumberInput.displayName = \"PhoneNumberInput\"\n"],"names":["PhoneNumberInput","React","forwardRef","props","forwardedRef","value","defaultCountry","country","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","hasConfiguredCountry","localeCacheKey","getLocaleCacheKey","localeForBuild","useMemo","parseLocaleCacheKey","resolvedMessages","resolveMessages","countryOptions","getCachedCountryOptions","resolveSelectedCountry","useCallback","match","find","candidate","toSelectedCountry","buildFallbackSelectedCountry","fallbackCountry","getValidCountry","DEFAULT_COUNTRY","some","option","hasResolvedCountryRef","useRef","initialStateRef","lastNormalizedRef","current","inputValue","normalizedValue","hasExplicitCountrySelection","baseCountryForInit","undefined","normalized","normalizeInputValue","allowJustPlus","international","phoneNumber","detectedCountry","inferredCountry","hasExplicitInternationalPrefix","formatWithAsYouType","canonicalDetectedCountry","resolvedCountry","rawDigits","sanitizeDigits","hasExplicitPlus","test","internationalDigits","initialDialCode","getCountryCallingCode","initialHasPrefix","detectNationalPrefixForDisplay","suggestion","getSuggestionState","hasRemovedNationalPrefix","inferredCountryToApply","shouldSuggest","nextDialCode","finalHasPrefix","displayValue","injectNationalPrefixDisplay","force","displayDetectedCountry","allowInlineFlag","shouldDisplayExplicitCountrySelection","initialState","uncontrolledCountry","setUncontrolledCountry","useState","inputValueState","setInputValueState","countryQuery","setCountryQuery","showSuggestions","setShowSuggestions","highlightedIndex","setHighlightedIndex","isFocused","setIsFocused","lengthIssue","setLengthIssue","setHasExplicitCountrySelection","manualSelectionCountryRef","keyboardBufferRef","bufferTimeoutRef","scrollBehaviorRef","pendingSelectionRef","consumeScrollBehavior","behavior","isCountryControlled","selectedCountry","activeCountry","inputRef","useImperativeHandle","useLayoutEffect","selection","input","start","end","setSelectionRange","selectOverrides","styles","userSelectStyles","components","userSelectComponents","classNamePrefix","userClassNamePrefix","formatOptionLabel","userFormatOptionLabel","menuPortalTarget","userMenuPortalTarget","menuPosition","userMenuPosition","forwardedSelectProps","noOptionsMessage","restForwardedSelectProps","defaultMenuPortalTarget","setDefaultMenuPortalTarget","hasUserMenuPortalTarget","mergedSelectStyles","userMenuPortal","menuPortal","suggestionSelectStyles","provided","state","base","zIndex","document","portalTarget","closest","body","mergedSelectComponents","baseComponents","Control","HiddenControl","IndicatorsContainer","NullComponent","DropdownIndicator","IndicatorSeparator","ValueContainer","overrides","Option","SuggestionOption","hasAnnouncedCountryRef","notifyCountryChange","useEffect","window","clearTimeout","baseCountryForSync","previousNormalized","previousValue","nextCountry","initialHasTypedTrunk","finalCountry","hasTypedTrunk","shouldShowInlineFlag","query","getLengthIssue","emitChange","details","scheduleBufferReset","setTimeout","handleInputChange","event","target","snapshot","captureSelectionSnapshot","raw","baseCountryForInput","dialCode","typedDigits","trim","startsWith","startsWithDialCode","hasLeadingZero","isIddPrefix","COMMON_IDD_PREFIXES","prefix","shouldRemoveNationalPrefix","Boolean","slice","length","removeNationalPrefix","resolveSelection","formattedInternational","formattedNational","e164","countryCallingCode","nationalNumber","rawInput","isValid","national","normalizedDigits","nationalDigits","stripPrefix","number","handleCountrySelect","previousDigits","currentDial","rebasedDigits","requestAnimationFrame","focus","filteredOptions","results","pushUnique","existing","push","fallbackOption","currentOption","digitQuery","normalizedQuery","normalizeSearchValue","forEach","filter","sort","a","b","aExact","bExact","normalizedSearchableTokens","token","includes","aIndex","optionMatchIndex","bIndex","localeCompare","suggestionMenuIsOpen","highlightedOption","updateHighlightedOption","index","findIndex","selectFormatOptionLabel","meta","formatCountryOption","optionLabelRenderer","context","selectValue","highlightContextValue","highlightedValue","setHighlightedOption","renderOptionLabel","activeOption","activeFlag","flag","inlineFlagLabel","selectedCountryLabel","selectCountryLabel","hasInlineFlag","lengthHint","lengthTooLong","countryName","validationNode","rendered","message","code","jsx","appendToBuffer","char","popBuffer","handleKeyDown","defaultPrevented","key","metaKey","ctrlKey","altKey","currentTarget","selectionStart","selectionEnd","isCollapsedSelection","nextStart","skipFormattingCharactersLeft","preventDefault","skipFormattingCharactersRight","repeat","toLowerCase","handleFocus","handleBlur","openCountryMenu","shimName","cn","jsxs","pointerEvents","width","SuggestionContext","Select","noMatches","displayName"],"mappings":"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"}
package/dist/index180.js CHANGED
@@ -1,13 +1,8 @@
1
- import m from "./index94.js";
2
- import o from "./index194.js";
3
- import u from "./index181.js";
4
- function b(e, n, r) {
5
- if (n = n || {}, r = new m(r), r.selectNumberingPlan(e.country, e.countryCallingCode), r.hasTypes())
6
- return u(e, n, r.metadata) !== void 0;
7
- var l = n.v2 ? e.nationalNumber : e.phone;
8
- return o(l, r.nationalNumberPattern());
1
+ import { DateLib as t } from "./index152.js";
2
+ function a(c, e, r) {
3
+ return (r ?? new t(e)).format(c, "cccccc");
9
4
  }
10
5
  export {
11
- b as default
6
+ a as formatWeekdayName
12
7
  };
13
8
  //# sourceMappingURL=index180.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index180.js","sources":["../../../node_modules/libphonenumber-js/es6/isValid.js"],"sourcesContent":["import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n\n // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n }\n\n // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map"],"names":["isValidNumber","input","options","metadata","Metadata","getNumberType","nationalNumber","matchesEntirely"],"mappings":";;;AAsCe,SAASA,EAAcC,GAAOC,GAASC,GAAU;AAS9D,MANAD,IAAUA,KAAW,CAAA,GACrBC,IAAW,IAAIC,EAASD,CAAQ,GAChCA,EAAS,oBAAoBF,EAAM,SAASA,EAAM,kBAAkB,GAIhEE,EAAS;AACX,WAAOE,EAAcJ,GAAOC,GAASC,EAAS,QAAQ,MAAM;AAK9D,MAAIG,IAAiBJ,EAAQ,KAAKD,EAAM,iBAAiBA,EAAM;AAC/D,SAAOM,EAAgBD,GAAgBH,EAAS,sBAAqB,CAAE;AACzE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index180.js","sources":["../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js"],"sourcesContent":["import { DateLib } from \"../classes/DateLib.js\";\n/**\n * Formats the name of a weekday to be displayed in the weekdays header.\n *\n * @defaultValue `cccccc` (e.g., \"Mo\" for Monday).\n * @param weekday The date representing the weekday.\n * @param options Configuration options for the date library.\n * @param dateLib The date library to use for formatting. If not provided, a new\n * instance is created.\n * @returns The formatted weekday name as a string.\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekdayName(weekday, options, dateLib) {\n return (dateLib ?? new DateLib(options)).format(weekday, \"cccccc\");\n}\n"],"names":["formatWeekdayName","weekday","options","dateLib","DateLib"],"mappings":";AAaO,SAASA,EAAkBC,GAASC,GAASC,GAAS;AACzD,UAAQA,KAAW,IAAIC,EAAQF,CAAO,GAAG,OAAOD,GAAS,QAAQ;AACrE;","x_google_ignoreList":[0]}
package/dist/index181.js CHANGED
@@ -1,52 +1,8 @@
1
- import a from "./index94.js";
2
- import f from "./index194.js";
3
- function I(e, n) {
4
- var r = typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"];
5
- if (r) return (r = r.call(e)).next.bind(r);
6
- if (Array.isArray(e) || (r = y(e)) || n) {
7
- r && (e = r);
8
- var t = 0;
9
- return function() {
10
- return t >= e.length ? { done: !0 } : { done: !1, value: e[t++] };
11
- };
12
- }
13
- throw new TypeError(`Invalid attempt to iterate non-iterable instance.
14
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
15
- }
16
- function y(e, n) {
17
- if (e) {
18
- if (typeof e == "string") return l(e, n);
19
- var r = {}.toString.call(e).slice(8, -1);
20
- return r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set" ? Array.from(e) : r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? l(e, n) : void 0;
21
- }
22
- }
23
- function l(e, n) {
24
- (n == null || n > e.length) && (n = e.length);
25
- for (var r = 0, t = Array(n); r < n; r++) t[r] = e[r];
26
- return t;
27
- }
28
- var c = ["MOBILE", "PREMIUM_RATE", "TOLL_FREE", "SHARED_COST", "VOIP", "PERSONAL_NUMBER", "PAGER", "UAN", "VOICEMAIL"];
29
- function O(e, n, r) {
30
- if (n = n || {}, !(!e.country && !e.countryCallingCode)) {
31
- r = new a(r), r.selectNumberingPlan(e.country, e.countryCallingCode);
32
- var t = n.v2 ? e.nationalNumber : e.phone;
33
- if (f(t, r.nationalNumberPattern())) {
34
- if (o(t, "FIXED_LINE", r))
35
- return r.type("MOBILE") && r.type("MOBILE").pattern() === "" || !r.type("MOBILE") || o(t, "MOBILE", r) ? "FIXED_LINE_OR_MOBILE" : "FIXED_LINE";
36
- for (var E = I(c), i; !(i = E()).done; ) {
37
- var u = i.value;
38
- if (o(t, u, r))
39
- return u;
40
- }
41
- }
42
- }
43
- }
44
- function o(e, n, r) {
45
- var t = r.type(n);
46
- return !t || !t.pattern() || t.possibleLengths() && t.possibleLengths().indexOf(e.length) < 0 ? !1 : f(e, t.pattern());
1
+ import { defaultDateLib as o } from "./index152.js";
2
+ function a(r, t = o) {
3
+ return r < 10 ? t.formatNumber(`0${r.toLocaleString()}`) : t.formatNumber(`${r.toLocaleString()}`);
47
4
  }
48
5
  export {
49
- O as default,
50
- o as isNumberTypeEqualTo
6
+ a as formatWeekNumber
51
7
  };
52
8
  //# sourceMappingURL=index181.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index181.js","sources":["../../../node_modules/libphonenumber-js/es6/helpers/getNumberType.js"],"sourcesContent":["function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL'];\n\n// Finds out national phone number type (fixed line, mobile, etc)\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n\n // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n\n // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n\n // Is this national number even valid for this country\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n }\n\n // Is it fixed line number\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n /* istanbul ignore if */\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n return 'FIXED_LINE';\n }\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n var typeDefinition = metadata.type(type);\n if (!typeDefinition || !typeDefinition.pattern()) {\n return false;\n }\n\n // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n if (typeDefinition.possibleLengths() && typeDefinition.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n return matchesEntirely(nationalNumber, typeDefinition.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map"],"names":["_createForOfIteratorHelperLoose","r","e","t","_unsupportedIterableToArray","o","a","_arrayLikeToArray","n","NON_FIXED_LINE_PHONE_TYPES","getNumberType","input","options","metadata","Metadata","nationalNumber","matchesEntirely","isNumberTypeEqualTo","_iterator","_step","type","typeDefinition"],"mappings":";;AAAA,SAASA,EAAgCC,GAAGC,GAAG;AAAE,MAAIC,IAAmB,OAAO,SAAtB,OAAgCF,EAAE,OAAO,QAAQ,KAAKA,EAAE,YAAY;AAAG,MAAIE,EAAG,SAAQA,IAAIA,EAAE,KAAKF,CAAC,GAAG,KAAK,KAAKE,CAAC;AAAG,MAAI,MAAM,QAAQF,CAAC,MAAME,IAAIC,EAA4BH,CAAC,MAAMC,GAAuC;AAAE,IAAAC,MAAMF,IAAIE;AAAI,QAAIE,IAAI;AAAG,WAAO,WAAY;AAAE,aAAOA,KAAKJ,EAAE,SAAS,EAAE,MAAM,GAAE,IAAK,EAAE,MAAM,IAAI,OAAOA,EAAEI,GAAG,EAAC;AAAA,IAAI;AAAA,EAAG;AAAE,QAAM,IAAI,UAAU;AAAA,mFAAuI;AAAG;AACziB,SAASD,EAA4BH,GAAGK,GAAG;AAAE,MAAIL,GAAG;AAAE,QAAgB,OAAOA,KAAnB,SAAsB,QAAOM,EAAkBN,GAAGK,CAAC;AAAG,QAAIH,IAAI,CAAA,EAAG,SAAS,KAAKF,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAoBE,MAAb,YAAkBF,EAAE,gBAAgBE,IAAIF,EAAE,YAAY,OAAiBE,MAAV,SAAyBA,MAAV,QAAc,MAAM,KAAKF,CAAC,IAAoBE,MAAhB,eAAqB,2CAA2C,KAAKA,CAAC,IAAII,EAAkBN,GAAGK,CAAC,IAAI;AAAA,EAAQ;AAAE;AACzX,SAASC,EAAkBN,GAAGK,GAAG;AAAE,GAASA,KAAR,QAAaA,IAAIL,EAAE,YAAYK,IAAIL,EAAE;AAAS,WAASC,IAAI,GAAGM,IAAI,MAAMF,CAAC,GAAGJ,IAAII,GAAGJ,IAAK,CAAAM,EAAEN,CAAC,IAAID,EAAEC,CAAC;AAAG,SAAOM;AAAG;AAGnJ,IAAIC,IAA6B,CAAC,UAAU,gBAAgB,aAAa,eAAe,QAAQ,mBAAmB,SAAS,OAAO,WAAW;AAG/H,SAASC,EAAcC,GAAOC,GAASC,GAAU;AAQ9D,MALAD,IAAUA,KAAW,CAAA,GAKjB,GAACD,EAAM,WAAW,CAACA,EAAM,qBAG7B;AAAA,IAAAE,IAAW,IAAIC,EAASD,CAAQ,GAChCA,EAAS,oBAAoBF,EAAM,SAASA,EAAM,kBAAkB;AACpE,QAAII,IAAiBH,EAAQ,KAAKD,EAAM,iBAAiBA,EAAM;AAM/D,QAAKK,EAAgBD,GAAgBF,EAAS,sBAAqB,CAAE,GAKrE;AAAA,UAAII,EAAoBF,GAAgB,cAAcF,CAAQ;AAuB5D,eAlBIA,EAAS,KAAK,QAAQ,KAAKA,EAAS,KAAK,QAAQ,EAAE,QAAO,MAAO,MAWjE,CAACA,EAAS,KAAK,QAAQ,KAOvBI,EAAoBF,GAAgB,UAAUF,CAAQ,IACjD,yBAEF;AAET,eAASK,IAAYlB,EAAgCS,CAA0B,GAAGU,GAAO,EAAEA,IAAQD,EAAS,GAAI,QAAO;AACrH,YAAIE,IAAOD,EAAM;AACjB,YAAIF,EAAoBF,GAAgBK,GAAMP,CAAQ;AACpD,iBAAOO;AAAA,MAEX;AAAA;AAAA;AACF;AACO,SAASH,EAAoBF,GAAgBK,GAAMP,GAAU;AAClE,MAAIQ,IAAiBR,EAAS,KAAKO,CAAI;AAWvC,SAVI,CAACC,KAAkB,CAACA,EAAe,QAAO,KAU1CA,EAAe,gBAAe,KAAMA,EAAe,kBAAkB,QAAQN,EAAe,MAAM,IAAI,IACjG,KAEFC,EAAgBD,GAAgBM,EAAe,QAAO,CAAE;AACjE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index181.js","sources":["../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js"],"sourcesContent":["import { defaultDateLib } from \"../classes/DateLib.js\";\n/**\n * Formats the week number.\n *\n * @defaultValue The week number as a string, with a leading zero for single-digit numbers.\n * @param weekNumber The week number to format.\n * @param dateLib The date library to use for formatting. Defaults to\n * `defaultDateLib`.\n * @returns The formatted week number as a string.\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekNumber(weekNumber, dateLib = defaultDateLib) {\n if (weekNumber < 10) {\n return dateLib.formatNumber(`0${weekNumber.toLocaleString()}`);\n }\n return dateLib.formatNumber(`${weekNumber.toLocaleString()}`);\n}\n"],"names":["formatWeekNumber","weekNumber","dateLib","defaultDateLib"],"mappings":";AAYO,SAASA,EAAiBC,GAAYC,IAAUC,GAAgB;AACnE,SAAIF,IAAa,KACNC,EAAQ,aAAa,IAAID,EAAW,eAAc,CAAE,EAAE,IAE1DC,EAAQ,aAAa,GAAGD,EAAW,eAAc,CAAE,EAAE;AAChE;","x_google_ignoreList":[0]}
package/dist/index182.js CHANGED
@@ -1,15 +1,7 @@
1
- import u from "./index94.js";
2
- function s(r, t, e) {
3
- var n = new u(e), o = n.getCountryCodesForCallingCode(r);
4
- return o ? o.filter(function(a) {
5
- return i(t, a, e);
6
- }) : [];
7
- }
8
- function i(r, t, e) {
9
- var n = new u(e);
10
- return n.selectNumberingPlan(t), n.numberingPlan.possibleLengths().indexOf(r.length) >= 0;
1
+ function e() {
2
+ return "";
11
3
  }
12
4
  export {
13
- s as default
5
+ e as formatWeekNumberHeader
14
6
  };
15
7
  //# sourceMappingURL=index182.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index182.js","sources":["../../../node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js"],"sourcesContent":["import Metadata from '../metadata.js';\n\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n if (!possibleCountries) {\n return [];\n }\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n _metadata.selectNumberingPlan(country);\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map"],"names":["getPossibleCountriesForNumber","callingCode","nationalNumber","metadata","_metadata","Metadata","possibleCountries","country","couldNationalNumberBelongToCountry"],"mappings":";AASe,SAASA,EAA8BC,GAAaC,GAAgBC,GAAU;AAC3F,MAAIC,IAAY,IAAIC,EAASF,CAAQ,GACjCG,IAAoBF,EAAU,8BAA8BH,CAAW;AAC3E,SAAKK,IAGEA,EAAkB,OAAO,SAAUC,GAAS;AACjD,WAAOC,EAAmCN,GAAgBK,GAASJ,CAAQ;AAAA,EAC7E,CAAC,IAJQ,CAAA;AAKX;AACA,SAASK,EAAmCN,GAAgBK,GAASJ,GAAU;AAC7E,MAAIC,IAAY,IAAIC,EAASF,CAAQ;AAErC,SADAC,EAAU,oBAAoBG,CAAO,GACjCH,EAAU,cAAc,gBAAe,EAAG,QAAQF,EAAe,MAAM,KAAK;AAIlF;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index182.js","sources":["../../../node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js"],"sourcesContent":["/**\n * Formats the header for the week number column.\n *\n * @defaultValue An empty string `\"\"`.\n * @returns The formatted week number header as a string.\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekNumberHeader() {\n return ``;\n}\n"],"names":["formatWeekNumberHeader"],"mappings":"AAQO,SAASA,IAAyB;AACrC,SAAO;AACX;","x_google_ignoreList":[0]}
package/dist/index183.js CHANGED
@@ -1,48 +1,10 @@
1
- import t from "./index201.js";
2
- import I from "./index199.js";
3
- import R from "./index94.js";
4
- import { MAX_LENGTH_COUNTRY_CODE as S } from "./index90.js";
5
- function O(r, e, f, _, i) {
6
- if (!r)
7
- return {};
8
- var n;
9
- if (r[0] !== "+") {
10
- var l = t(r, e || f, _, i);
11
- if (l && l !== r)
12
- n = !0, r = "+" + l;
13
- else {
14
- if (e || f || _) {
15
- var s = I(r, e, f, _, i), M = s.countryCallingCode, c = s.number;
16
- if (M)
17
- return {
18
- countryCallingCodeSource: "FROM_NUMBER_WITHOUT_PLUS_SIGN",
19
- countryCallingCode: M,
20
- number: c
21
- };
22
- }
23
- return {
24
- // No need to set it to `UNSPECIFIED`. It can be just `undefined`.
25
- // countryCallingCodeSource: 'UNSPECIFIED',
26
- number: r
27
- };
28
- }
29
- }
30
- if (r[1] === "0")
31
- return {};
32
- i = new R(i);
33
- for (var o = 2; o - 1 <= S && o <= r.length; ) {
34
- var N = r.slice(1, o);
35
- if (i.hasCallingCode(N))
36
- return i.selectNumberingPlan(N), {
37
- countryCallingCodeSource: n ? "FROM_NUMBER_WITH_IDD" : "FROM_NUMBER_WITH_PLUS_SIGN",
38
- countryCallingCode: N,
39
- number: r.slice(o)
40
- };
41
- o++;
42
- }
43
- return {};
1
+ import { defaultDateLib as t } from "./index152.js";
2
+ function a(o, r = t) {
3
+ return r.format(o, "yyyy");
44
4
  }
5
+ const f = a;
45
6
  export {
46
- O as default
7
+ f as formatYearCaption,
8
+ a as formatYearDropdown
47
9
  };
48
10
  //# sourceMappingURL=index183.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index183.js","sources":["../../../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js"],"sourcesContent":["import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Country.\r\n * @param {string} [defaultCountry] — Default country.\r\n * @param {string} [defaultCallingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', null, 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', null, 'RU', null, metadata)\r\n */\nexport default function extractCountryCallingCode(number, country, defaultCountry, defaultCallingCode, metadata) {\n if (!number) {\n return {};\n }\n var isNumberWithIddPrefix;\n\n // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country || defaultCountry, defaultCallingCode, metadata);\n // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || defaultCountry || defaultCallingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, defaultCountry, defaultCallingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n }\n\n // `number` can only be international at this point.\n\n // Fast abortion: country codes do not begin with a '0'\n if (number[1] === '0') {\n return {};\n }\n metadata = new Metadata(metadata);\n\n // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n var i = 2;\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n i++;\n }\n return {};\n}\n\n// The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map"],"names":["extractCountryCallingCode","number","country","defaultCountry","defaultCallingCode","metadata","isNumberWithIddPrefix","numberWithoutIDD","stripIddPrefix","_extractCountryCallin","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","countryCallingCode","shorterNumber","Metadata","i","MAX_LENGTH_COUNTRY_CODE","_countryCallingCode"],"mappings":";;;;AAwBe,SAASA,EAA0BC,GAAQC,GAASC,GAAgBC,GAAoBC,GAAU;AAC/G,MAAI,CAACJ;AACH,WAAO,CAAA;AAET,MAAIK;AASJ,MAAIL,EAAO,CAAC,MAAM,KAAK;AAGrB,QAAIM,IAAmBC,EAAeP,GAAQC,KAAWC,GAAgBC,GAAoBC,CAAQ;AAIrG,QAAIE,KAAoBA,MAAqBN;AAC3C,MAAAK,IAAwB,IACxBL,IAAS,MAAMM;AAAA,SACV;AAKL,UAAIL,KAAWC,KAAkBC,GAAoB;AACnD,YAAIK,IAAwBC,EAAgET,GAAQC,GAASC,GAAgBC,GAAoBC,CAAQ,GACvJM,IAAqBF,EAAsB,oBAC3CG,IAAgBH,EAAsB;AACxC,YAAIE;AACF,iBAAO;AAAA,YACL,0BAA0B;AAAA,YAC1B,oBAAoBA;AAAA,YACpB,QAAQC;AAAA,UACpB;AAAA,MAEM;AACA,aAAO;AAAA;AAAA;AAAA,QAGL,QAAQX;AAAA,MAChB;AAAA,IACI;AAAA,EACF;AAKA,MAAIA,EAAO,CAAC,MAAM;AAChB,WAAO,CAAA;AAET,EAAAI,IAAW,IAAIQ,EAASR,CAAQ;AAYhC,WADIS,IAAI,GACDA,IAAI,KAAKC,KAA2BD,KAAKb,EAAO,UAAQ;AAC7D,QAAIe,IAAsBf,EAAO,MAAM,GAAGa,CAAC;AAC3C,QAAIT,EAAS,eAAeW,CAAmB;AAC7C,aAAAX,EAAS,oBAAoBW,CAAmB,GACzC;AAAA,QACL,0BAA0BV,IAAwB,yBAAyB;AAAA,QAC3E,oBAAoBU;AAAA,QACpB,QAAQf,EAAO,MAAMa,CAAC;AAAA,MAC9B;AAEI,IAAAA;AAAA,EACF;AACA,SAAO,CAAA;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index183.js","sources":["../../../node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js"],"sourcesContent":["import { defaultDateLib } from \"../classes/DateLib.js\";\n/**\n * Formats the year for the dropdown option label.\n *\n * @param year The year to format.\n * @param dateLib The date library to use for formatting. Defaults to\n * `defaultDateLib`.\n * @returns The formatted year as a string.\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatYearDropdown(year, dateLib = defaultDateLib) {\n return dateLib.format(year, \"yyyy\");\n}\n/**\n * @private\n * @deprecated Use `formatYearDropdown` instead.\n * @group Formatters\n */\nexport const formatYearCaption = formatYearDropdown;\n"],"names":["formatYearDropdown","year","dateLib","defaultDateLib","formatYearCaption"],"mappings":";AAWO,SAASA,EAAmBC,GAAMC,IAAUC,GAAgB;AAC/D,SAAOD,EAAQ,OAAOD,GAAM,MAAM;AACtC;AAMY,MAACG,IAAoBJ;","x_google_ignoreList":[0]}