@particle-academy/react-fancy 6.11.1 → 6.12.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 (272) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/accordion-panel.cjs +7 -7
  3. package/dist/accordion-panel.js +1 -1
  4. package/dist/accordion.cjs +3 -3
  5. package/dist/accordion.js +1 -1
  6. package/dist/autocomplete.cjs +2 -2
  7. package/dist/autocomplete.js +1 -1
  8. package/dist/avatar.cjs +2 -2
  9. package/dist/avatar.js +1 -1
  10. package/dist/breadcrumbs.cjs +2 -2
  11. package/dist/breadcrumbs.js +1 -1
  12. package/dist/calendar.cjs +2 -2
  13. package/dist/calendar.js +1 -1
  14. package/dist/carousel.cjs +7 -7
  15. package/dist/carousel.js +1 -1
  16. package/dist/chart.cjs +2 -2
  17. package/dist/chart.js +1 -1
  18. package/dist/chat-drawer.cjs +2 -2
  19. package/dist/chat-drawer.js +1 -1
  20. package/dist/chat-thread.cjs +4 -4
  21. package/dist/chat-thread.js +2 -2
  22. package/dist/{chunk-GB2EGMVQ.cjs → chunk-2JNOPH3B.cjs} +3 -3
  23. package/dist/chunk-2JNOPH3B.cjs.map +1 -0
  24. package/dist/{chunk-R3PCZSBQ.js → chunk-2OCWIAGS.js} +4 -4
  25. package/dist/chunk-2OCWIAGS.js.map +1 -0
  26. package/dist/{chunk-KRECSPD3.js → chunk-2PNQTEXK.js} +3 -3
  27. package/dist/chunk-2PNQTEXK.js.map +1 -0
  28. package/dist/{chunk-RVBA4LEB.cjs → chunk-2SO4WS2E.cjs} +4 -4
  29. package/dist/{chunk-RVBA4LEB.cjs.map → chunk-2SO4WS2E.cjs.map} +1 -1
  30. package/dist/{chunk-NWP5EGSR.cjs → chunk-2U2VQ2QF.cjs} +4 -4
  31. package/dist/{chunk-NWP5EGSR.cjs.map → chunk-2U2VQ2QF.cjs.map} +1 -1
  32. package/dist/{chunk-LXEOBSEZ.js → chunk-32542ZE6.js} +3 -3
  33. package/dist/{chunk-LXEOBSEZ.js.map → chunk-32542ZE6.js.map} +1 -1
  34. package/dist/{chunk-XQF4HCOV.cjs → chunk-3ISEBGRC.cjs} +14 -14
  35. package/dist/chunk-3ISEBGRC.cjs.map +1 -0
  36. package/dist/{chunk-J57JSHDC.js → chunk-5EOVD46D.js} +5 -5
  37. package/dist/{chunk-J57JSHDC.js.map → chunk-5EOVD46D.js.map} +1 -1
  38. package/dist/{chunk-NFUKNVB7.cjs → chunk-7J7RHUGH.cjs} +5 -5
  39. package/dist/chunk-7J7RHUGH.cjs.map +1 -0
  40. package/dist/{chunk-NW2LQRUP.js → chunk-7YUXEZXU.js} +3 -3
  41. package/dist/{chunk-NW2LQRUP.js.map → chunk-7YUXEZXU.js.map} +1 -1
  42. package/dist/{chunk-AR5DLM4K.js → chunk-AADPWMZV.js} +3 -3
  43. package/dist/{chunk-AR5DLM4K.js.map → chunk-AADPWMZV.js.map} +1 -1
  44. package/dist/{chunk-5FA6V7JF.js → chunk-B4NXPUOF.js} +3 -3
  45. package/dist/{chunk-5FA6V7JF.js.map → chunk-B4NXPUOF.js.map} +1 -1
  46. package/dist/{chunk-FZQWFDUV.cjs → chunk-BDYIKGV5.cjs} +4 -4
  47. package/dist/chunk-BDYIKGV5.cjs.map +1 -0
  48. package/dist/{chunk-VOAC5OKY.cjs → chunk-BEKJQHOX.cjs} +3 -3
  49. package/dist/{chunk-VOAC5OKY.cjs.map → chunk-BEKJQHOX.cjs.map} +1 -1
  50. package/dist/{chunk-TBLKVTJC.cjs → chunk-CR3AZMQE.cjs} +3 -3
  51. package/dist/{chunk-TBLKVTJC.cjs.map → chunk-CR3AZMQE.cjs.map} +1 -1
  52. package/dist/{chunk-7K2C744H.cjs → chunk-CXR54P5L.cjs} +4 -4
  53. package/dist/chunk-CXR54P5L.cjs.map +1 -0
  54. package/dist/{chunk-5NJF7SQX.js → chunk-D4K666OI.js} +3 -3
  55. package/dist/{chunk-5NJF7SQX.js.map → chunk-D4K666OI.js.map} +1 -1
  56. package/dist/{chunk-C2VGO375.js → chunk-EVFWX2HA.js} +3 -3
  57. package/dist/{chunk-C2VGO375.js.map → chunk-EVFWX2HA.js.map} +1 -1
  58. package/dist/{chunk-UBLMYH6C.js → chunk-EXD56OPP.js} +4 -4
  59. package/dist/chunk-EXD56OPP.js.map +1 -0
  60. package/dist/{chunk-I65KXHYL.js → chunk-F6IRLWBS.js} +6 -6
  61. package/dist/{chunk-I65KXHYL.js.map → chunk-F6IRLWBS.js.map} +1 -1
  62. package/dist/{chunk-C6EVRWXZ.cjs → chunk-FUBGTLKL.cjs} +3 -3
  63. package/dist/{chunk-C6EVRWXZ.cjs.map → chunk-FUBGTLKL.cjs.map} +1 -1
  64. package/dist/{chunk-7N7XVBH7.cjs → chunk-GOIZT7CW.cjs} +6 -6
  65. package/dist/{chunk-7N7XVBH7.cjs.map → chunk-GOIZT7CW.cjs.map} +1 -1
  66. package/dist/{chunk-R4SANV3G.cjs → chunk-IHCG3EHP.cjs} +15 -15
  67. package/dist/chunk-IHCG3EHP.cjs.map +1 -0
  68. package/dist/{chunk-6B2GMKE4.cjs → chunk-IJIP6MWS.cjs} +9 -9
  69. package/dist/chunk-IJIP6MWS.cjs.map +1 -0
  70. package/dist/{chunk-TKGMH5PA.js → chunk-J6YPMR7E.js} +3 -3
  71. package/dist/{chunk-TKGMH5PA.js.map → chunk-J6YPMR7E.js.map} +1 -1
  72. package/dist/{chunk-LG2O26CG.js → chunk-JI4AI3K4.js} +5 -5
  73. package/dist/chunk-JI4AI3K4.js.map +1 -0
  74. package/dist/{chunk-CO2NEUFK.js → chunk-JUQGTTED.js} +4 -4
  75. package/dist/chunk-JUQGTTED.js.map +1 -0
  76. package/dist/{chunk-CG3RCQVL.cjs → chunk-K3NIG7O4.cjs} +6 -6
  77. package/dist/{chunk-CG3RCQVL.cjs.map → chunk-K3NIG7O4.cjs.map} +1 -1
  78. package/dist/{chunk-LJCQI6ZS.js → chunk-KHHTTAKZ.js} +3 -3
  79. package/dist/{chunk-LJCQI6ZS.js.map → chunk-KHHTTAKZ.js.map} +1 -1
  80. package/dist/{chunk-EEFU5BVM.cjs → chunk-KJUUCMHH.cjs} +7 -7
  81. package/dist/{chunk-EEFU5BVM.cjs.map → chunk-KJUUCMHH.cjs.map} +1 -1
  82. package/dist/{chunk-LHHELLMT.cjs → chunk-KRQZGVN3.cjs} +4 -4
  83. package/dist/chunk-KRQZGVN3.cjs.map +1 -0
  84. package/dist/{chunk-KDRBUF5S.js → chunk-LCBMI4WO.js} +3 -3
  85. package/dist/{chunk-KDRBUF5S.js.map → chunk-LCBMI4WO.js.map} +1 -1
  86. package/dist/{chunk-AXW55PQG.js → chunk-M5EKV5PK.js} +3 -3
  87. package/dist/{chunk-AXW55PQG.js.map → chunk-M5EKV5PK.js.map} +1 -1
  88. package/dist/{chunk-D6NISIKV.js → chunk-MSLAK77J.js} +4 -4
  89. package/dist/chunk-MSLAK77J.js.map +1 -0
  90. package/dist/{chunk-26GRLVCQ.js → chunk-N2XFWVF7.js} +3 -3
  91. package/dist/chunk-N2XFWVF7.js.map +1 -0
  92. package/dist/{chunk-3O3ZWWLG.js → chunk-NBIRHOM6.js} +4 -4
  93. package/dist/{chunk-3O3ZWWLG.js.map → chunk-NBIRHOM6.js.map} +1 -1
  94. package/dist/{chunk-FY2WDVKF.cjs → chunk-ND2T3PMH.cjs} +3 -3
  95. package/dist/{chunk-FY2WDVKF.cjs.map → chunk-ND2T3PMH.cjs.map} +1 -1
  96. package/dist/{chunk-GE2ZGE3A.cjs → chunk-O23KGVXS.cjs} +6 -6
  97. package/dist/chunk-O23KGVXS.cjs.map +1 -0
  98. package/dist/{chunk-4EQ336PQ.js → chunk-OIX3DCKN.js} +3 -3
  99. package/dist/{chunk-4EQ336PQ.js.map → chunk-OIX3DCKN.js.map} +1 -1
  100. package/dist/{chunk-JJYMRV62.js → chunk-OIYZCYEY.js} +3 -3
  101. package/dist/chunk-OIYZCYEY.js.map +1 -0
  102. package/dist/{chunk-TH7VP4CL.cjs → chunk-OKHXAI75.cjs} +3 -3
  103. package/dist/{chunk-TH7VP4CL.cjs.map → chunk-OKHXAI75.cjs.map} +1 -1
  104. package/dist/{chunk-5SVZX6WF.cjs → chunk-OLIYEZ4C.cjs} +6 -6
  105. package/dist/{chunk-5SVZX6WF.cjs.map → chunk-OLIYEZ4C.cjs.map} +1 -1
  106. package/dist/{chunk-FX37P4KR.js → chunk-OSNDO2ZF.js} +4 -4
  107. package/dist/{chunk-FX37P4KR.js.map → chunk-OSNDO2ZF.js.map} +1 -1
  108. package/dist/{chunk-K6Q542VL.js → chunk-OUG3YE6E.js} +6 -6
  109. package/dist/{chunk-K6Q542VL.js.map → chunk-OUG3YE6E.js.map} +1 -1
  110. package/dist/{chunk-TXQT6S4D.cjs → chunk-OXR2FUEV.cjs} +3 -3
  111. package/dist/chunk-OXR2FUEV.cjs.map +1 -0
  112. package/dist/{chunk-SD6YAMDH.cjs → chunk-PDE63TMC.cjs} +3 -3
  113. package/dist/{chunk-SD6YAMDH.cjs.map → chunk-PDE63TMC.cjs.map} +1 -1
  114. package/dist/{chunk-HKLBCA5X.cjs → chunk-PIPF34XD.cjs} +4 -4
  115. package/dist/{chunk-HKLBCA5X.cjs.map → chunk-PIPF34XD.cjs.map} +1 -1
  116. package/dist/{chunk-CDW7MFPG.js → chunk-Q5P5WG6Q.js} +4 -4
  117. package/dist/{chunk-CDW7MFPG.js.map → chunk-Q5P5WG6Q.js.map} +1 -1
  118. package/dist/{chunk-ISAHWGMD.cjs → chunk-QJVQEGB7.cjs} +4 -4
  119. package/dist/{chunk-ISAHWGMD.cjs.map → chunk-QJVQEGB7.cjs.map} +1 -1
  120. package/dist/{chunk-6EPM5JG7.cjs → chunk-QLFV2KUQ.cjs} +3 -3
  121. package/dist/{chunk-6EPM5JG7.cjs.map → chunk-QLFV2KUQ.cjs.map} +1 -1
  122. package/dist/{chunk-GISORLGW.cjs → chunk-QMNDEIOJ.cjs} +3 -3
  123. package/dist/{chunk-GISORLGW.cjs.map → chunk-QMNDEIOJ.cjs.map} +1 -1
  124. package/dist/{chunk-OUPHLIXV.cjs → chunk-RBM5VYQG.cjs} +11 -11
  125. package/dist/{chunk-OUPHLIXV.cjs.map → chunk-RBM5VYQG.cjs.map} +1 -1
  126. package/dist/{chunk-24RWB7Q3.js → chunk-RC76D7FD.js} +5 -4
  127. package/dist/chunk-RC76D7FD.js.map +1 -0
  128. package/dist/{chunk-FSLEFL4U.cjs → chunk-RKDQ7RRL.cjs} +3 -3
  129. package/dist/{chunk-FSLEFL4U.cjs.map → chunk-RKDQ7RRL.cjs.map} +1 -1
  130. package/dist/{chunk-Z6M3UELD.js → chunk-S2I4QQBM.js} +3 -3
  131. package/dist/{chunk-Z6M3UELD.js.map → chunk-S2I4QQBM.js.map} +1 -1
  132. package/dist/{chunk-EW2N52FD.js → chunk-SUVSEI7N.js} +4 -4
  133. package/dist/{chunk-EW2N52FD.js.map → chunk-SUVSEI7N.js.map} +1 -1
  134. package/dist/{chunk-FR3V5IAJ.cjs → chunk-T6CBYOES.cjs} +5 -4
  135. package/dist/chunk-T6CBYOES.cjs.map +1 -0
  136. package/dist/{chunk-FECD3WKN.js → chunk-TDY5YPSU.js} +3 -3
  137. package/dist/{chunk-FECD3WKN.js.map → chunk-TDY5YPSU.js.map} +1 -1
  138. package/dist/{chunk-ZFXCZ2QO.cjs → chunk-TQIE25DE.cjs} +11 -11
  139. package/dist/{chunk-ZFXCZ2QO.cjs.map → chunk-TQIE25DE.cjs.map} +1 -1
  140. package/dist/{chunk-GE6TSA3M.cjs → chunk-TRXMF2NG.cjs} +3 -3
  141. package/dist/{chunk-GE6TSA3M.cjs.map → chunk-TRXMF2NG.cjs.map} +1 -1
  142. package/dist/{chunk-AF33UCTN.cjs → chunk-ULEJD5SQ.cjs} +3 -3
  143. package/dist/chunk-ULEJD5SQ.cjs.map +1 -0
  144. package/dist/{chunk-PIYQPXLT.js → chunk-VDD5SLBI.js} +3 -3
  145. package/dist/{chunk-PIYQPXLT.js.map → chunk-VDD5SLBI.js.map} +1 -1
  146. package/dist/{chunk-VOGI7GX3.js → chunk-VKNQ2BGO.js} +3 -3
  147. package/dist/{chunk-VOGI7GX3.js.map → chunk-VKNQ2BGO.js.map} +1 -1
  148. package/dist/{chunk-3BBEVHSP.cjs → chunk-VQHM3UUK.cjs} +3 -3
  149. package/dist/{chunk-3BBEVHSP.cjs.map → chunk-VQHM3UUK.cjs.map} +1 -1
  150. package/dist/{chunk-QMZK7SRS.cjs → chunk-VWZCUKV5.cjs} +3 -3
  151. package/dist/{chunk-QMZK7SRS.cjs.map → chunk-VWZCUKV5.cjs.map} +1 -1
  152. package/dist/{chunk-3W6BKQVZ.js → chunk-X4SUHI3G.js} +4 -4
  153. package/dist/{chunk-3W6BKQVZ.js.map → chunk-X4SUHI3G.js.map} +1 -1
  154. package/dist/{chunk-DQWAG7YY.cjs → chunk-X6XUEM2V.cjs} +4 -4
  155. package/dist/{chunk-DQWAG7YY.cjs.map → chunk-X6XUEM2V.cjs.map} +1 -1
  156. package/dist/{chunk-EDIB6V6Y.cjs → chunk-XIP2TPSX.cjs} +4 -4
  157. package/dist/{chunk-EDIB6V6Y.cjs.map → chunk-XIP2TPSX.cjs.map} +1 -1
  158. package/dist/{chunk-MD7HUHJB.js → chunk-XKUIPBJD.js} +10 -10
  159. package/dist/chunk-XKUIPBJD.js.map +1 -0
  160. package/dist/{chunk-SOIGBPK6.js → chunk-Y3CBLOD6.js} +6 -6
  161. package/dist/chunk-Y3CBLOD6.js.map +1 -0
  162. package/dist/{chunk-YZW7HQXH.js → chunk-YAZGTSKS.js} +14 -14
  163. package/dist/chunk-YAZGTSKS.js.map +1 -0
  164. package/dist/{chunk-MKDTXMCE.js → chunk-YFFW4E77.js} +4 -4
  165. package/dist/{chunk-MKDTXMCE.js.map → chunk-YFFW4E77.js.map} +1 -1
  166. package/dist/{chunk-YPYZZLZ5.js → chunk-YMDFLW47.js} +9 -9
  167. package/dist/chunk-YMDFLW47.js.map +1 -0
  168. package/dist/{chunk-LREJ7AV2.cjs → chunk-Z3IM25W7.cjs} +4 -4
  169. package/dist/{chunk-LREJ7AV2.cjs.map → chunk-Z3IM25W7.cjs.map} +1 -1
  170. package/dist/{chunk-AE6ICNJR.js → chunk-Z5DMAMVG.js} +3 -3
  171. package/dist/{chunk-AE6ICNJR.js.map → chunk-Z5DMAMVG.js.map} +1 -1
  172. package/dist/{chunk-JN5DHZ6I.js → chunk-ZC2H5GM2.js} +6 -6
  173. package/dist/{chunk-JN5DHZ6I.js.map → chunk-ZC2H5GM2.js.map} +1 -1
  174. package/dist/{chunk-DPPDZOMY.cjs → chunk-ZEQXMUXE.cjs} +4 -4
  175. package/dist/chunk-ZEQXMUXE.cjs.map +1 -0
  176. package/dist/{chunk-OP7A4SZZ.cjs → chunk-ZGSSUUK2.cjs} +4 -4
  177. package/dist/{chunk-OP7A4SZZ.cjs.map → chunk-ZGSSUUK2.cjs.map} +1 -1
  178. package/dist/{chunk-3T3LBIQA.cjs → chunk-ZQE2Q3R2.cjs} +4 -4
  179. package/dist/{chunk-3T3LBIQA.cjs.map → chunk-ZQE2Q3R2.cjs.map} +1 -1
  180. package/dist/{chunk-HCIEXBEB.js → chunk-ZRV5TRYW.js} +3 -3
  181. package/dist/{chunk-HCIEXBEB.js.map → chunk-ZRV5TRYW.js.map} +1 -1
  182. package/dist/command.cjs +3 -3
  183. package/dist/command.js +1 -1
  184. package/dist/composer.cjs +4 -4
  185. package/dist/composer.js +2 -2
  186. package/dist/drawer.cjs +3 -3
  187. package/dist/drawer.js +1 -1
  188. package/dist/editor.cjs +3 -3
  189. package/dist/editor.js +1 -1
  190. package/dist/emoji-select.cjs +2 -2
  191. package/dist/emoji-select.js +1 -1
  192. package/dist/file-browser.cjs +5 -5
  193. package/dist/file-browser.js +1 -1
  194. package/dist/index.cjs +126 -126
  195. package/dist/index.js +40 -40
  196. package/dist/input-tag.cjs +6 -6
  197. package/dist/input-tag.js +1 -1
  198. package/dist/input.cjs +3 -3
  199. package/dist/input.js +2 -2
  200. package/dist/inputs.cjs +7 -7
  201. package/dist/inputs.js +4 -4
  202. package/dist/json-editor.cjs +15 -15
  203. package/dist/json-editor.js +4 -4
  204. package/dist/magic-wand.cjs +2 -2
  205. package/dist/magic-wand.js +1 -1
  206. package/dist/media-viewer.cjs +3 -3
  207. package/dist/media-viewer.js +2 -2
  208. package/dist/mobile-menu.cjs +3 -3
  209. package/dist/mobile-menu.js +1 -1
  210. package/dist/modal.cjs +3 -3
  211. package/dist/modal.js +1 -1
  212. package/dist/mood-meter.cjs +2 -2
  213. package/dist/mood-meter.js +1 -1
  214. package/dist/navbar.cjs +3 -3
  215. package/dist/navbar.js +1 -1
  216. package/dist/number-field.cjs +4 -4
  217. package/dist/number-field.js +3 -3
  218. package/dist/pagination.cjs +2 -2
  219. package/dist/pagination.js +1 -1
  220. package/dist/paste-pills.cjs +14 -14
  221. package/dist/paste-pills.js +1 -1
  222. package/dist/phone-input.cjs +6 -6
  223. package/dist/phone-input.js +3 -3
  224. package/dist/pillbox.cjs +2 -2
  225. package/dist/pillbox.js +1 -1
  226. package/dist/profile.cjs +3 -3
  227. package/dist/profile.js +2 -2
  228. package/dist/prompt-input.cjs +5 -5
  229. package/dist/prompt-input.js +2 -2
  230. package/dist/reason-tag.cjs +2 -2
  231. package/dist/reason-tag.js +1 -1
  232. package/dist/select.cjs +2 -2
  233. package/dist/select.js +1 -1
  234. package/dist/sidebar.cjs +3 -3
  235. package/dist/sidebar.js +1 -1
  236. package/dist/table.cjs +11 -11
  237. package/dist/table.js +1 -1
  238. package/dist/time-grid.cjs +2 -2
  239. package/dist/time-grid.js +1 -1
  240. package/dist/time-picker.cjs +2 -2
  241. package/dist/time-picker.js +1 -1
  242. package/dist/toast.cjs +3 -3
  243. package/dist/toast.js +1 -1
  244. package/dist/video-viewer.cjs +2 -2
  245. package/dist/video-viewer.js +1 -1
  246. package/package.json +1 -1
  247. package/dist/chunk-24RWB7Q3.js.map +0 -1
  248. package/dist/chunk-26GRLVCQ.js.map +0 -1
  249. package/dist/chunk-6B2GMKE4.cjs.map +0 -1
  250. package/dist/chunk-7K2C744H.cjs.map +0 -1
  251. package/dist/chunk-AF33UCTN.cjs.map +0 -1
  252. package/dist/chunk-CO2NEUFK.js.map +0 -1
  253. package/dist/chunk-D6NISIKV.js.map +0 -1
  254. package/dist/chunk-DPPDZOMY.cjs.map +0 -1
  255. package/dist/chunk-FR3V5IAJ.cjs.map +0 -1
  256. package/dist/chunk-FZQWFDUV.cjs.map +0 -1
  257. package/dist/chunk-GB2EGMVQ.cjs.map +0 -1
  258. package/dist/chunk-GE2ZGE3A.cjs.map +0 -1
  259. package/dist/chunk-JJYMRV62.js.map +0 -1
  260. package/dist/chunk-KRECSPD3.js.map +0 -1
  261. package/dist/chunk-LG2O26CG.js.map +0 -1
  262. package/dist/chunk-LHHELLMT.cjs.map +0 -1
  263. package/dist/chunk-MD7HUHJB.js.map +0 -1
  264. package/dist/chunk-NFUKNVB7.cjs.map +0 -1
  265. package/dist/chunk-R3PCZSBQ.js.map +0 -1
  266. package/dist/chunk-R4SANV3G.cjs.map +0 -1
  267. package/dist/chunk-SOIGBPK6.js.map +0 -1
  268. package/dist/chunk-TXQT6S4D.cjs.map +0 -1
  269. package/dist/chunk-UBLMYH6C.js.map +0 -1
  270. package/dist/chunk-XQF4HCOV.cjs.map +0 -1
  271. package/dist/chunk-YPYZZLZ5.js.map +0 -1
  272. package/dist/chunk-YZW7HQXH.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/PhoneInput/phone-countries.ts","../src/components/PhoneInput/phone.ts","../src/components/PhoneInput/PhoneInput.tsx"],"names":["PhoneInput"],"mappings":"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","file":"chunk-LJCQI6ZS.js","sourcesContent":["/**\n * Country to dial code and national-number length, first party.\n *\n * LENGTHS ARE A SANITY CHECK, NOT VALIDATION. They catch a number that is\n * plainly too short or too long for its country. They do not know which ranges\n * are allocated, whether a number is mobile or fixed, or whether it is in\n * service. Exact validation belongs on a server (Twilio Lookup, for example).\n *\n * Each row: [ISO 3166-1 alpha-2, dial code, min, max, trunk prefixes, status]\n *\n * - min / max count the NATIONAL SIGNIFICANT NUMBER (NSN): the digits after the\n * country code, without a trunk prefix.\n * - trunk prefixes are what a person types before the NSN when dialling within\n * the country. An empty list means the plan has none AND a leading 0 is part\n * of the number (Italy), so it must not be dropped.\n * - status is VERIFIED only where the length was checked against a source this\n * table cites (the WIKI rows). Every other row is UNVERIFIED, and its range is\n * the widest E.164 allows: 4 to (15 - dial-code digits). A range written from\n * memory that is too tight would refuse a real person's valid number, block\n * their form, and say `too_long` at once; accepting a wrong number is the\n * lesser harm, because the server validates. Each UNVERIFIED comment keeps the\n * range that was transcribed, so verifying a row is: check it against the\n * plan, put the range back, mark it VERIFIED and cite the source.\n *\n * Sources, recorded per row in its comment:\n *\n * E164 the dial code, from \"List of ITU-T Recommendation E.164 assigned\n * country codes\" (ITU-T, complement to E.164) and the index of national\n * numbering plans at https://www.itu.int/oth/T0202\n * NNP the length, from the national numbering plan the country has\n * notified to the ITU (same index)\n * NANPA the North American Numbering Plan: a 10-digit NSN everywhere\n * WIKI checked on 2026-11-05 against the \"Telephone numbers in <country>\"\n * article, which cites the plan, because the ITU document itself was\n * not readable as text\n * wide the plan is variable-length or the exact range was not confirmed,\n * so the range is deliberately wide. Wide ranges let more wrong numbers\n * through and refuse fewer right ones, which is the right way to be wrong\n * for a sanity check.\n *\n * Dial codes and trunk prefixes in UNVERIFIED rows were also transcribed, not\n * re-checked line by line; only their LENGTHS were widened. Treat a row as a\n * claim to correct, and correct it here with its source.\n *\n * Not listed, because they have no dial code of their own: AQ, BV, GS, HM,\n * PN, TF, UM. XK (Kosovo) is a user-assigned code, not ISO 3166-1, and is\n * listed because +383 is assigned to it and `Intl.DisplayNames` names it.\n */\nexport type LengthStatus = \"verified\" | \"unverified\";\n\nexport type CountryRow = readonly [\n code: string,\n dialCode: string,\n minLength: number,\n maxLength: number,\n trunkPrefixes: readonly string[],\n status: LengthStatus,\n];\n\nconst ZERO: readonly string[] = [\"0\"];\nconst NONE: readonly string[] = [];\nconst NANP_TRUNK: readonly string[] = [\"1\"];\nconst VERIFIED: LengthStatus = \"verified\";\nconst UNVERIFIED: LengthStatus = \"unverified\";\n\nexport const COUNTRY_ROWS: readonly CountryRow[] = [\n [\"AD\", \"376\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"AE\", \"971\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"AF\", \"93\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"AG\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 268))\n [\"AI\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 264))\n [\"AL\", \"355\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"AM\", \"374\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"AO\", \"244\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"AR\", \"54\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-11 from memory of NNP (mobile adds a 9 internationally))\n [\"AS\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 684))\n [\"AT\", \"43\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-13 from memory of NNP wide: open numbering plan)\n [\"AU\", \"61\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"AW\", \"297\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"AX\", \"358\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with FI, 358 18); length UNVERIFIED, widened to the E.164 maximum (was 5-12 from memory of NNP wide, as FI)\n [\"AZ\", \"994\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"BA\", \"387\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"BB\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 246))\n [\"BD\", \"880\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-10 from memory of NNP wide: fixed lines vary)\n [\"BE\", \"32\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"BF\", \"226\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BG\", \"359\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"BH\", \"973\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BI\", \"257\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BJ\", \"229\", 8, 10, NONE, VERIFIED], // E164; WIKI: \"01\" prefixed to every number on 2024-11-30; wide, 8 kept for the old form\n [\"BL\", \"590\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with GP, MF); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"BM\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 441))\n [\"BN\", \"673\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"BO\", \"591\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BQ\", \"599\", 4, 12, NONE, UNVERIFIED], // E164 (shared with CW: 599 3, 4, 7); length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"BR\", \"55\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-11 from memory of NNP)\n [\"BS\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 242))\n [\"BT\", \"975\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"BW\", \"267\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"BY\", \"375\", 4, 12, [\"80\", \"8\"], UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP (dialled 8 0XX nationally))\n [\"BZ\", \"501\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"CA\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA)\n [\"CC\", \"61\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with AU, 61 89162); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP, as AU)\n [\"CD\", \"243\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CF\", \"236\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"CG\", \"242\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP (the leading 0 is part of the number))\n [\"CH\", \"41\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CI\", \"225\", 10, 10, NONE, VERIFIED], // E164; WIKI: 10 digits since 2021-01-31, leading 0 is part of the number\n [\"CK\", \"682\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-5 from memory of NNP)\n [\"CL\", \"56\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CM\", \"237\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CN\", \"86\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-12 from memory of NNP wide: fixed lines vary by area code)\n [\"CO\", \"57\", 10, 10, ZERO, VERIFIED], // E164; WIKI: fixed and mobile 10 digits since 2021\n [\"CR\", \"506\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"CU\", \"53\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-8 from memory of NNP wide)\n [\"CV\", \"238\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"CW\", \"599\", 4, 12, NONE, UNVERIFIED], // E164 (shared with BQ: 599 9); length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"CX\", \"61\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with AU, 61 89164); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP, as AU)\n [\"CY\", \"357\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"CZ\", \"420\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"DE\", \"49\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-13 from memory of NNP wide: open numbering plan)\n [\"DJ\", \"253\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"DK\", \"45\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"DM\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 767))\n [\"DO\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 809, 829, 849))\n [\"DZ\", \"213\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"EC\", \"593\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"EE\", \"372\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"EG\", \"20\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"EH\", \"212\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with MA); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP, as MA)\n [\"ER\", \"291\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"ES\", \"34\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ET\", \"251\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"FI\", \"358\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-12 from memory of NNP wide: variable-length plan)\n [\"FJ\", \"679\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"FK\", \"500\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-5 from memory of NNP)\n [\"FM\", \"691\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"FO\", \"298\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"FR\", \"33\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GA\", \"241\", 7, 8, NONE, VERIFIED], // E164; WIKI: 7 digits, 8 for mobiles renumbered in 2019; the 0 is part of the number\n [\"GB\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-10 from memory of NNP (10 for almost all; a few 9 and 7))\n [\"GD\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 473))\n [\"GE\", \"995\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GF\", \"594\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GG\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with GB, 44 1481); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP, as GB)\n [\"GH\", \"233\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GI\", \"350\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"GL\", \"299\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"GM\", \"220\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"GN\", \"224\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP wide)\n [\"GP\", \"590\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with BL, MF); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GQ\", \"240\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GR\", \"30\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"GT\", \"502\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"GU\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 671))\n [\"GW\", \"245\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"GY\", \"592\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"HK\", \"852\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"HN\", \"504\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"HR\", \"385\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"HT\", \"509\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"HU\", \"36\", 4, 13, [\"06\"], UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP (trunk prefix 06))\n [\"ID\", \"62\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-12 from memory of NNP wide)\n [\"IE\", \"353\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP)\n [\"IL\", \"972\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"IM\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with GB, 44 1624); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP, as GB)\n [\"IN\", \"91\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"IO\", \"246\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"IQ\", \"964\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"IR\", \"98\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"IS\", \"354\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP)\n [\"IT\", \"39\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-11 from memory of NNP wide (the leading 0 of a fixed line is part of the number))\n [\"JE\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with GB, 44 1534); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP, as GB)\n [\"JM\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 876, 658))\n [\"JO\", \"962\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"JP\", \"81\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-10 from memory of NNP)\n [\"KE\", \"254\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-10 from memory of NNP wide)\n [\"KG\", \"996\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"KH\", \"855\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"KI\", \"686\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-8 from memory of NNP wide)\n [\"KM\", \"269\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"KN\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 869))\n [\"KP\", \"850\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-12 from memory of NNP wide: not confirmed)\n [\"KR\", \"82\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-11 from memory of NNP wide)\n [\"KW\", \"965\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"KY\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 345))\n [\"KZ\", \"7\", 10, 10, [\"8\"], VERIFIED], // E164 (shared with RU: 7 6, 7 7); WIKI: zones 6xx and 7xx\n [\"LA\", \"856\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"LB\", \"961\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"LC\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 758))\n [\"LI\", \"423\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP)\n [\"LK\", \"94\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"LR\", \"231\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"LS\", \"266\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"LT\", \"370\", 8, 8, [\"0\", \"8\"], VERIFIED], // E164; WIKI: trunk 0 since 2024-03-01, the old 8 still read\n [\"LU\", \"352\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-11 from memory of NNP wide: open numbering plan)\n [\"LV\", \"371\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"LY\", \"218\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"MA\", \"212\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MC\", \"377\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"MD\", \"373\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"ME\", \"382\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MF\", \"590\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with GP, BL); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MG\", \"261\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MH\", \"692\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"MK\", \"389\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"ML\", \"223\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MM\", \"95\", 7, 10, ZERO, VERIFIED], // E164; WIKI: 8 to 11 digits with the trunk 0, so 7 to 10; mobiles 8 to 10\n [\"MN\", \"976\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MO\", \"853\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MP\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 670))\n [\"MQ\", \"596\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MR\", \"222\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MS\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 664))\n [\"MT\", \"356\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MU\", \"230\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"MV\", \"960\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"MW\", \"265\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"MX\", \"52\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP (10 digits since 2019))\n [\"MY\", \"60\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP)\n [\"MZ\", \"258\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"NA\", \"264\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"NC\", \"687\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"NE\", \"227\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"NF\", \"672\", 4, 12, NONE, UNVERIFIED], // E164 (672 3); length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"NG\", \"234\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-10 from memory of NNP wide)\n [\"NI\", \"505\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"NL\", \"31\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"NO\", \"47\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-8 from memory of NNP (8, with a few 5-digit service numbers))\n [\"NP\", \"977\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"NR\", \"674\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"NU\", \"683\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-7 from memory of NNP wide)\n [\"NZ\", \"64\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP)\n [\"OM\", \"968\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"PA\", \"507\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"PE\", \"51\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"PF\", \"689\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-8 from memory of NNP wide (8 since 2017))\n [\"PG\", \"675\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"PH\", \"63\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP)\n [\"PK\", \"92\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"PL\", \"48\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"PM\", \"508\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"PR\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 787, 939))\n [\"PS\", \"970\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"PT\", \"351\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"PW\", \"680\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"PY\", \"595\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"QA\", \"974\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"RE\", \"262\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with YT); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"RO\", \"40\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"RS\", \"381\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"RU\", \"7\", 4, 14, [\"8\"], UNVERIFIED], // E164 (shared with KZ); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP (trunk prefix 8))\n [\"RW\", \"250\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SA\", \"966\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"SB\", \"677\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"SC\", \"248\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"SD\", \"249\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SE\", \"46\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-10 from memory of NNP wide: variable-length plan)\n [\"SG\", \"65\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SH\", \"290\", 5, 5, NONE, VERIFIED], // E164; WIKI: fixed five-digit plan since 2013-10-01\n [\"SI\", \"386\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SJ\", \"47\", 4, 13, NONE, UNVERIFIED], // E164 (shared with NO, 47 79); length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP, as NO)\n [\"SK\", \"421\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SL\", \"232\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SM\", \"378\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-10 from memory of NNP wide)\n [\"SN\", \"221\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SO\", \"252\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"SR\", \"597\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-7 from memory of NNP)\n [\"SS\", \"211\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ST\", \"239\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"SV\", \"503\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SX\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 721))\n [\"SY\", \"963\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"SZ\", \"268\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TC\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 649))\n [\"TD\", \"235\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TG\", \"228\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TH\", \"66\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"TJ\", \"992\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"TK\", \"690\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-7 from memory of NNP wide)\n [\"TL\", \"670\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"TM\", \"993\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TN\", \"216\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TO\", \"676\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"TR\", \"90\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"TT\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 868))\n [\"TV\", \"688\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-6 from memory of NNP)\n [\"TW\", \"886\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"TZ\", \"255\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"UA\", \"380\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"UG\", \"256\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"US\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA)\n [\"UY\", \"598\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"UZ\", \"998\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"VA\", \"39\", 4, 13, NONE, UNVERIFIED], // E164 (shared with IT, 39 06698); length UNVERIFIED, widened to the E.164 maximum (was 6-11 from memory of NNP, as IT)\n [\"VC\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 784))\n [\"VE\", \"58\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"VG\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 284))\n [\"VI\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 340))\n [\"VN\", \"84\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"VU\", \"678\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"WF\", \"681\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"WS\", \"685\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"XK\", \"383\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"YE\", \"967\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"YT\", \"262\", 9, 9, ZERO, VERIFIED], // E164 (shared with RE: 262 269, 639); WIKI\n [\"ZA\", \"27\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ZM\", \"260\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ZW\", \"263\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-10 from memory of NNP wide: fixed lines vary)\n];\n\n/**\n * Which country a shared dial code means when nothing else decides. This is a\n * convention (the country that holds most of the numbers), not a fact about\n * any one number.\n */\nexport const MAIN_COUNTRY: Readonly<Record<string, string>> = {\n \"1\": \"US\",\n \"7\": \"RU\",\n \"39\": \"IT\",\n \"44\": \"GB\",\n \"47\": \"NO\",\n \"61\": \"AU\",\n \"212\": \"MA\",\n \"262\": \"RE\",\n \"358\": \"FI\",\n \"590\": \"GP\",\n \"599\": \"CW\",\n};\n\n/**\n * Leading digits of the NSN that point at one country of a shared dial code.\n * APPROXIMATE, and documented as such: these name the country a number was\n * allocated to, and a ported or roaming number can say otherwise. The E.164\n * the component emits does not depend on them, only `detail.country` does.\n *\n * - +1: area codes (NPAs). Canada's list is the one in WIKI (\"Telephone numbers\n * in Canada\", last edited 2026-01-27; NANPA itself was not reached), the\n * others are NANPA's Caribbean and territory NPAs. A new Canadian NPA reads\n * as US until it is added here.\n * - +7: Kazakhstan holds zones 6xx and 7xx (WIKI).\n * - +44: the Crown Dependencies' fixed-line area codes only. Their mobile ranges\n * sit among UK mobiles and are not listed.\n * - +47 79 Svalbard, +61 89162 / 89164 Cocos and Christmas Islands, +262 269 /\n * 639 Mayotte (WIKI), +358 18 Aland, +39 06698 Vatican City, +599 3 / 4 / 7\n * Caribbean Netherlands.\n * - +212 (Western Sahara) and +590 (Saint Barthelemy, Saint Martin) have no\n * hint: their ranges were not confirmed, so they fall to the main country.\n */\nexport const LEADING_DIGIT_HINTS: Readonly<Record<string, Readonly<Record<string, readonly string[]>>>> = {\n \"1\": {\n CA: [\n \"204\", \"226\", \"236\", \"249\", \"250\", \"257\", \"263\", \"289\", \"306\", \"343\", \"354\", \"365\", \"367\",\n \"368\", \"382\", \"403\", \"416\", \"418\", \"428\", \"431\", \"437\", \"438\", \"450\", \"468\", \"474\", \"506\",\n \"514\", \"519\", \"548\", \"579\", \"581\", \"584\", \"587\", \"604\", \"613\", \"639\", \"647\", \"672\", \"683\",\n \"705\", \"709\", \"742\", \"753\", \"778\", \"780\", \"782\", \"807\", \"819\", \"825\", \"867\", \"873\", \"879\",\n \"902\", \"905\", \"942\",\n ],\n AG: [\"268\"],\n AI: [\"264\"],\n AS: [\"684\"],\n BB: [\"246\"],\n BM: [\"441\"],\n BS: [\"242\"],\n DM: [\"767\"],\n DO: [\"809\", \"829\", \"849\"],\n GD: [\"473\"],\n GU: [\"671\"],\n JM: [\"876\", \"658\"],\n KN: [\"869\"],\n KY: [\"345\"],\n LC: [\"758\"],\n MP: [\"670\"],\n MS: [\"664\"],\n PR: [\"787\", \"939\"],\n SX: [\"721\"],\n TC: [\"649\"],\n TT: [\"868\"],\n VC: [\"784\"],\n VG: [\"284\"],\n VI: [\"340\"],\n },\n \"7\": { KZ: [\"6\", \"7\"] },\n \"39\": { VA: [\"06698\"] },\n \"44\": { GG: [\"1481\"], JE: [\"1534\"], IM: [\"1624\"] },\n \"47\": { SJ: [\"79\"] },\n \"61\": { CC: [\"89162\"], CX: [\"89164\"] },\n \"262\": { YT: [\"269\", \"639\"] },\n \"358\": { AX: [\"18\"] },\n \"599\": { BQ: [\"3\", \"4\", \"7\"] },\n};\n","import { COUNTRY_ROWS, LEADING_DIGIT_HINTS, MAIN_COUNTRY } from \"./phone-countries\";\nimport type { PhoneCountry, PhoneInputReason, PhoneParse, ParsePhoneOptions } from \"./PhoneInput.types\";\n\n/**\n * Reading a phone number, by hand.\n *\n * Every step is a single pass over the characters, with no regular expression:\n * the text comes from a person or a paste, and a backtracking pattern over it is\n * a ReDoS waiting for the right input. Linear time is pinned by a test.\n */\n\nexport const PHONE_COUNTRIES: readonly PhoneCountry[] = COUNTRY_ROWS.map(\n ([code, dialCode, minLength, maxLength, trunkPrefixes, status]) => ({\n code,\n dialCode,\n minLength,\n maxLength,\n trunkPrefixes,\n lengthVerified: status === \"verified\",\n }),\n);\n\nconst BY_CODE = new Map(PHONE_COUNTRIES.map((c) => [c.code, c]));\n\nexport function findCountry(code: string | null | undefined): PhoneCountry | undefined {\n return code ? BY_CODE.get(code.toUpperCase()) : undefined;\n}\n\n/** The first code point of \"0\" in each script whose digits are read. */\nconst DIGIT_ZEROS = [\n 0x30, // ASCII\n 0x660, // Arabic-Indic\n 0x6f0, // Extended Arabic-Indic (Persian, Urdu)\n 0x966, // Devanagari\n 0x9e6, // Bengali\n 0xe50, // Thai\n 0x1040, // Myanmar\n 0xff10, // fullwidth\n];\n\nfunction digitOf(cp: number): number {\n for (const zero of DIGIT_ZEROS) {\n if (cp >= zero && cp <= zero + 9) return cp - zero;\n }\n return -1;\n}\n\n/** What people put between digits. Skipped. */\nfunction isSeparator(cp: number): boolean {\n return (\n cp === 0x20 || // space\n cp === 0x09 || // tab\n cp === 0xa0 || // no-break space\n cp === 0x2007 || // figure space\n cp === 0x2009 || // thin space\n cp === 0x202f || // narrow no-break space\n cp === 0x3000 || // ideographic space\n cp === 0x2d || // hyphen-minus\n (cp >= 0x2010 && cp <= 0x2015) || // hyphens and dashes\n cp === 0x2212 || // minus sign\n cp === 0xff0d || // fullwidth hyphen-minus\n cp === 0x2e || // full stop\n cp === 0x2f || // solidus\n cp === 0x28 || // (\n cp === 0x29 || // )\n cp === 0xff08 || // fullwidth (\n cp === 0xff09 // fullwidth )\n );\n}\n\n/**\n * Invisible direction controls. Text copied from a right-to-left page often\n * wraps a number in these, and they are not part of it.\n */\nfunction isDirectionMark(cp: number): boolean {\n return (\n cp === 0x200e ||\n cp === 0x200f ||\n cp === 0x061c ||\n cp === 0xfeff ||\n (cp >= 0x202a && cp <= 0x202e) ||\n (cp >= 0x2066 && cp <= 0x2069)\n );\n}\n\nfunction isPlus(cp: number): boolean {\n return cp === 0x2b || cp === 0xff0b;\n}\n\ninterface Scan {\n digits: string;\n plus: boolean;\n invalid: boolean;\n}\n\n/** One pass. Stops at the first character that cannot be in a phone number. */\nfunction scan(text: string): Scan {\n let digits = \"\";\n let plus = false;\n\n for (const ch of text) {\n const cp = ch.codePointAt(0)!;\n const d = digitOf(cp);\n if (d >= 0) {\n digits += String(d);\n } else if (isPlus(cp)) {\n // Only as the first thing typed: \"95+9\" is not a number.\n if (plus || digits.length > 0) return { digits, plus, invalid: true };\n plus = true;\n } else if (!isSeparator(cp) && !isDirectionMark(cp)) {\n return { digits, plus, invalid: true };\n }\n }\n\n return { digits, plus, invalid: false };\n}\n\nfunction lengthReason(nsn: string, country: PhoneCountry): PhoneInputReason | null {\n if (nsn.length < country.minLength) return \"too_short\";\n // E.164 caps the whole number at 15 digits, country code included.\n if (nsn.length > country.maxLength || nsn.length + country.dialCode.length > 15) return \"too_long\";\n return null;\n}\n\n/**\n * Drop the trunk prefix if the person typed one. Always: keeping it whenever the\n * longer reading happens to fit the length range would turn a half-typed\n * \"06 12 34 56 7\" into a \"valid\" +33 0612 34567, which is exactly the wrong\n * E.164 a partial number must never produce. The cost is one case: a national\n * number that genuinely starts with the trunk digit, typed WITHOUT the trunk\n * prefix (Russia's 800 numbers, dialled \"8 800\" at home), reads as too short.\n * That is null with a reason, never a wrong number.\n */\nfunction stripTrunk(digits: string, country: PhoneCountry): string {\n for (const trunk of country.trunkPrefixes) {\n if (trunk && digits.startsWith(trunk)) return digits.slice(trunk.length);\n }\n return digits;\n}\n\nfunction allowedSet(countries: readonly string[] | undefined): Set<string> | null {\n if (!countries) return null;\n const set = new Set<string>();\n for (const c of countries) set.add(c.toUpperCase());\n return set;\n}\n\n/** Countries that share a dial code, in table order. */\nfunction countriesFor(dialCode: string, allowed: Set<string> | null): PhoneCountry[] {\n const out: PhoneCountry[] = [];\n for (const c of PHONE_COUNTRIES) {\n if (c.dialCode === dialCode && (!allowed || allowed.has(c.code))) out.push(c);\n }\n return out;\n}\n\n/**\n * Which of several countries sharing a dial code a number belongs to. The\n * leading-digit hint first, then the selected country, then the main one.\n * Approximate by construction; see LEADING_DIGIT_HINTS.\n */\nfunction pickShared(\n candidates: PhoneCountry[],\n nsn: string,\n selected: string | null,\n): PhoneCountry {\n const dial = candidates[0].dialCode;\n const hints = LEADING_DIGIT_HINTS[dial];\n if (hints) {\n let best: PhoneCountry | undefined;\n let bestLength = 0;\n for (const c of candidates) {\n for (const prefix of hints[c.code] ?? []) {\n if (prefix.length > bestLength && nsn.startsWith(prefix)) {\n best = c;\n bestLength = prefix.length;\n }\n }\n }\n if (best) return best;\n }\n const chosen = candidates.find((c) => c.code === selected);\n if (chosen) return chosen;\n return candidates.find((c) => c.code === MAIN_COUNTRY[dial]) ?? candidates[0];\n}\n\nfunction result(\n country: PhoneCountry | undefined,\n nsn: string,\n reason: PhoneInputReason | null,\n approximate = false,\n): PhoneParse {\n const valid = reason === null && country !== undefined && nsn.length > 0;\n return {\n value: valid ? `+${country!.dialCode}${nsn}` : null,\n country: country?.code ?? null,\n dialCode: country?.dialCode ?? null,\n nationalNumber: nsn,\n valid,\n reason,\n approximate,\n };\n}\n\n/**\n * Read what a person typed or pasted into an E.164 number and a reason.\n *\n * - `+` or `00` starts an international number; the country comes from its dial\n * code. Other international prefixes (011 in North America, 010 in Japan) are\n * not recognised: type `+`.\n * - Anything else is a national number in `options.country`, with its trunk\n * prefix dropped.\n * - Blank (or separators only) is no value and no reason.\n * - The value is `null` unless the number is whole. Lengths are a sanity check:\n * a valid result can still be a number nobody holds.\n */\nexport function parsePhone(text: string, options: ParsePhoneOptions = {}): PhoneParse {\n const allowed = allowedSet(options.countries);\n const selectedCode = options.country ? options.country.toUpperCase() : null;\n const selected =\n selectedCode && (!allowed || allowed.has(selectedCode)) ? findCountry(selectedCode) : undefined;\n\n const { digits, plus, invalid } = scan(text);\n\n if (invalid) return result(selected, digits, \"invalid_chars\");\n if (!plus && digits.length === 0) return result(selected, \"\", null);\n\n const international = plus || digits.startsWith(\"00\");\n if (!international) {\n if (!selected) return result(undefined, digits, \"unknown_country\");\n const nsn = stripTrunk(digits, selected);\n return result(selected, nsn, lengthReason(nsn, selected));\n }\n\n const rest = plus ? digits : digits.slice(2);\n\n // Country codes are prefix-free, so the first that matches is the only one.\n for (let length = 1; length <= 3 && length <= rest.length; length++) {\n const dial = rest.slice(0, length);\n const anywhere = countriesFor(dial, null);\n if (anywhere.length === 0) continue;\n\n const candidates = allowed ? anywhere.filter((c) => allowed.has(c.code)) : anywhere;\n let nsn = rest.slice(length);\n if (candidates.length === 0) return result(undefined, nsn, \"unknown_country\");\n\n const country =\n candidates.length === 1 ? candidates[0] : pickShared(candidates, nsn, selectedCode);\n // \"+44 (0)20 ...\" : the national trunk 0, written inside an international number.\n if (country.trunkPrefixes.includes(\"0\") && nsn.startsWith(\"0\")) nsn = nsn.slice(1);\n\n return result(country, nsn, lengthReason(nsn, country), anywhere.length > 1);\n }\n\n // No dial code yet. Short of three digits, it may still become one.\n if (rest.length < 3) {\n for (const c of PHONE_COUNTRIES) {\n if (c.dialCode.startsWith(rest) && (!allowed || allowed.has(c.code))) {\n return result(undefined, \"\", \"too_short\");\n }\n }\n }\n return result(undefined, \"\", \"unknown_country\");\n}\n\n/** The national number an E.164 value holds, for display. \"\" if it holds none. */\nexport function nationalNumberOf(\n value: string | null,\n options: ParsePhoneOptions = {},\n): { nationalNumber: string; country: string | null } {\n if (!value) return { nationalNumber: \"\", country: null };\n const parsed = parsePhone(value.startsWith(\"+\") ? value : `+${value}`, options);\n return { nationalNumber: parsed.nationalNumber, country: parsed.country };\n}\n\n/** A flag from two regional-indicator letters. No image, so nothing to load. */\nexport function flagOf(code: string): string {\n if (code.length !== 2) return \"\";\n let out = \"\";\n for (let i = 0; i < 2; i++) {\n const c = code.toUpperCase().charCodeAt(i);\n if (c < 65 || c > 90) return \"\";\n out += String.fromCodePoint(0x1f1e6 + (c - 65));\n }\n return out;\n}\n\n/** Lower-case and without accents, so \"aland\" finds \"Åland\". */\nexport function foldForSearch(text: string): string {\n let out = \"\";\n for (const ch of text.normalize(\"NFD\").toLowerCase()) {\n const cp = ch.codePointAt(0)!;\n if (cp >= 0x300 && cp <= 0x36f) continue;\n out += ch;\n }\n return out;\n}\n","import { forwardRef, useEffect, useId, useMemo, useRef, useState, type KeyboardEvent } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { isImeComposing } from \"../../utils/ime\";\nimport { directionOf, type Direction } from \"../../utils/direction\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport { useFloatingPosition } from \"../../hooks/use-floating-position\";\nimport { useOutsideClick } from \"../../hooks/use-outside-click\";\nimport { useEscapeKey } from \"../../hooks/use-escape-key\";\nimport { Portal } from \"../Portal\";\nimport { Input } from \"../inputs/Input\";\nimport { errorClasses, inputBaseClasses } from \"../inputs/inputs.utils\";\nimport {\n PHONE_COUNTRIES,\n findCountry,\n flagOf,\n foldForSearch,\n nationalNumberOf,\n parsePhone,\n} from \"./phone\";\nimport type {\n PhoneCountry,\n PhoneInputDetail,\n PhoneInputMessages,\n PhoneInputProps,\n PhoneInputReason,\n} from \"./PhoneInput.types\";\n\nconst DEFAULT_MESSAGES: Required<PhoneInputMessages> = {\n too_short: \"This number is too short for {country}.\",\n too_long: \"This number is too long for {country}.\",\n invalid_chars: \"Use digits only. Spaces, dashes, brackets and a leading + are fine.\",\n unknown_country: \"Choose a country, or start the number with + and its country code.\",\n country: \"Country\",\n chooseCountry: \"Choose a country\",\n search: \"Search countries\",\n noResults: \"No matching countries\",\n};\n\n/** Messages that cannot be fixed by typing more are shown at once; the rest on blur. */\nconst IMMEDIATE: ReadonlySet<PhoneInputReason> = new Set([\"invalid_chars\", \"too_long\"]);\n\nfunction fill(template: string, country: string): string {\n return template.split(\"{country}\").join(country);\n}\n\nfunction regionNamer(locale: string | undefined): (code: string) => string {\n try {\n const names = new Intl.DisplayNames(locale ? [locale] : undefined, { type: \"region\" });\n return (code) => {\n try {\n return names.of(code) ?? code;\n } catch {\n return code;\n }\n };\n } catch {\n return (code) => code;\n }\n}\n\ninterface Listed extends PhoneCountry {\n name: string;\n folded: string;\n}\n\nfunction rank(c: Listed, query: string, dialQuery: string | null): number {\n if (c.code.toLowerCase() === query) return 0;\n if (dialQuery !== null && c.dialCode === dialQuery) return 1;\n if (c.folded.startsWith(query)) return 2;\n return 3;\n}\n\nfunction matches(c: Listed, query: string, dialQuery: string | null): boolean {\n if (dialQuery !== null) return dialQuery.length > 0 && c.dialCode.startsWith(dialQuery);\n return c.folded.includes(query) || c.code.toLowerCase() === query;\n}\n\n/** \"+95\", \"0095\" and \"95\" are dial-code searches; anything else searches names. */\nfunction dialQueryOf(query: string): string | null {\n let rest = query;\n if (rest.startsWith(\"+\")) rest = rest.slice(1);\n else if (rest.startsWith(\"00\")) rest = rest.slice(2);\n if (rest.length === 0) return query.startsWith(\"+\") ? \"\" : null;\n for (const ch of rest) {\n if (ch < \"0\" || ch > \"9\") return null;\n }\n return rest;\n}\n\nexport const PhoneInput = forwardRef<HTMLInputElement, PhoneInputProps>(function PhoneInput(\n {\n value,\n defaultValue = null,\n onValueChange,\n defaultCountry,\n countries,\n locale,\n label,\n description,\n error,\n required,\n disabled,\n name,\n form,\n id,\n placeholder,\n autoFocus,\n className,\n messages,\n onBlur,\n },\n ref,\n) {\n const autoId = useId();\n const inputId = id ?? `${autoId}-number`;\n const labelId = `${inputId}-label`;\n const descriptionId = `${inputId}-description`;\n const errorId = `${inputId}-error`;\n const listId = `${inputId}-countries`;\n const msg = { ...DEFAULT_MESSAGES, ...messages };\n\n const [held, setValue] = useControllableState<string | null>(value, defaultValue);\n const current = typeof held === \"string\" && held !== \"\" ? held : null;\n const options = useMemo(() => ({ countries }), [countries]);\n\n const [country, setCountry] = useState<string | null>(() => {\n const fromValue = nationalNumberOf(current, { ...options, country: defaultCountry }).country;\n return fromValue ?? (defaultCountry ? defaultCountry.toUpperCase() : null);\n });\n\n /*\n * The text is held apart from the value, as in NumberField: \"+95 9\" has no\n * E.164 that displays it. It only moves on its own when the value moved to\n * something the text does not say: a change from outside, or a parent\n * refusing this one. Then it shows the national number, and the picker the\n * country, because the dial code is already on the picker.\n */\n const [text, setText] = useState(() => nationalNumberOf(current, { ...options, country }).nationalNumber);\n const parsed = parsePhone(text, { ...options, country });\n if (parsed.value !== current) {\n const target = nationalNumberOf(current, { ...options, country });\n const nextCountry = target.country ?? country;\n if (text !== target.nationalNumber || nextCountry !== country) {\n setText(target.nationalNumber);\n setCountry(nextCountry);\n }\n }\n\n const [touched, setTouched] = useState(false);\n const lastEmitted = useRef<string | null>(null);\n\n const names = useMemo(() => regionNamer(locale), [locale]);\n const listed = useMemo<Listed[]>(() => {\n const rows = countries\n ? countries.map((c) => findCountry(c)).filter((c): c is PhoneCountry => c !== undefined)\n : [...PHONE_COUNTRIES];\n const out = rows.map((c) => {\n const n = names(c.code);\n return { ...c, name: n, folded: foldForSearch(n) };\n });\n if (!countries) {\n let collator: Intl.Collator;\n try {\n collator = new Intl.Collator(locale);\n } catch {\n collator = new Intl.Collator();\n }\n out.sort((a, b) => collator.compare(a.name, b.name));\n }\n return out;\n }, [countries, names, locale]);\n\n const selected = findCountry(parsed.country ?? country);\n const selectedName = selected ? names(selected.code) : \"\";\n\n const emit = (nextText: string, nextCountry: string | null) => {\n const p = parsePhone(nextText, { ...options, country: nextCountry });\n setText(nextText);\n setCountry(p.country ?? nextCountry);\n\n const detail: PhoneInputDetail = {\n country: p.country,\n dialCode: p.dialCode,\n nationalNumber: p.nationalNumber,\n valid: p.valid,\n reason: p.reason,\n approximate: p.approximate,\n };\n const key = JSON.stringify([p.value, detail]);\n if (key === lastEmitted.current) return;\n lastEmitted.current = key;\n if (p.value !== current) setValue(p.value);\n onValueChange?.(p.value, detail);\n };\n\n // ── Validation message ────────────────────────────────────\n const reason = parsed.reason;\n const reasonMessage = reason ? fill(msg[reason], selectedName || \"this country\") : \"\";\n const shown = error ?? (reason && (IMMEDIATE.has(reason) || touched) ? reasonMessage : undefined);\n const describedBy = [description ? descriptionId : null, shown ? errorId : null]\n .filter(Boolean)\n .join(\" \");\n\n // A form learns of it through native validity, as with NumberField.\n const inputRef = useRef<HTMLInputElement | null>(null);\n useEffect(() => {\n inputRef.current?.setCustomValidity(reasonMessage);\n });\n\n // ── Picker ────────────────────────────────────────────────\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const [activeIndex, setActiveIndex] = useState(-1);\n // Read when opening, so the first frame is already on the right side.\n const [popupDir, setPopupDir] = useState<Direction>(\"ltr\");\n const triggerRef = useRef<HTMLButtonElement>(null);\n const rowRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n const position = useFloatingPosition(rowRef, popupRef, {\n placement: \"bottom-start\",\n offset: 4,\n enabled: open,\n });\n\n const folded = foldForSearch(query.trim());\n const dialQuery = dialQueryOf(folded);\n const filtered = useMemo(() => {\n if (!folded) return listed;\n const hits = listed.filter((c) => matches(c, folded, dialQuery));\n return hits\n .map((c, i) => ({ c, i, r: rank(c, folded, dialQuery) }))\n .sort((a, b) => a.r - b.r || a.i - b.i)\n .map((x) => x.c);\n }, [listed, folded, dialQuery]);\n\n const openPicker = () => {\n if (disabled) return;\n setQuery(\"\");\n setActiveIndex(listed.findIndex((c) => c.code === selected?.code));\n setPopupDir(directionOf(rowRef.current));\n setOpen(true);\n };\n\n const close = (focus: \"trigger\" | \"number\" | null) => {\n setOpen(false);\n setQuery(\"\");\n setActiveIndex(-1);\n if (focus === \"trigger\") triggerRef.current?.focus();\n if (focus === \"number\") inputRef.current?.focus();\n };\n\n const pick = (code: string) => {\n // The picked country wins over a dial code typed in the text, so the text\n // is re-read as a national number.\n const nextText = parsed.dialCode !== null && isInternational(text) ? parsed.nationalNumber : text;\n emit(nextText, code);\n close(\"number\");\n };\n\n useEscapeKey(() => close(\"trigger\"), open);\n useOutsideClick(popupRef, () => close(null), open, triggerRef);\n\n const onSearchKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setActiveIndex((i) => Math.min(i + 1, filtered.length - 1));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIndex((i) => Math.max(i - 1, 0));\n } else if (e.key === \"PageDown\" || e.key === \"PageUp\") {\n e.preventDefault();\n const step = e.key === \"PageDown\" ? 10 : -10;\n setActiveIndex((i) => Math.min(Math.max(i + step, 0), filtered.length - 1));\n } else if (e.key === \"Enter\") {\n if (isImeComposing(e)) return;\n e.preventDefault();\n const item = filtered[activeIndex] ?? (folded ? filtered[0] : undefined);\n if (item) pick(item.code);\n } else if (e.key === \"Tab\") {\n // The list lives in a portal at the end of <body>; Tab would leave the\n // field for whatever follows it there. Return to the field instead.\n e.preventDefault();\n close(e.shiftKey ? \"trigger\" : \"number\");\n }\n };\n\n const active = filtered[activeIndex];\n const optionId = (code: string) => `${listId}-${code}`;\n\n return (\n <div\n data-react-fancy-phone-input=\"\"\n data-country={selected?.code ?? \"\"}\n data-valid={parsed.valid ? \"true\" : \"false\"}\n data-reason={reason ?? \"\"}\n className={cn(\"flex flex-col gap-2\", className)}\n >\n <label\n id={labelId}\n htmlFor={inputId}\n className=\"text-sm font-medium text-zinc-900 dark:text-zinc-100\"\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"ms-0.5 text-red-800 dark:text-red-300\">\n *\n </span>\n )}\n </label>\n\n <div ref={rowRef} role=\"group\" aria-labelledby={labelId} className=\"flex items-stretch gap-2\">\n <button\n ref={triggerRef}\n type=\"button\"\n data-react-fancy-phone-input-country=\"\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? listId : undefined}\n aria-label={\n selected\n ? `${msg.country}: ${selectedName} (+${selected.dialCode})`\n : msg.chooseCountry\n }\n onClick={() => (open ? close(null) : openPicker())}\n onKeyDown={(e) => {\n if (!open && (e.key === \"ArrowDown\" || e.key === \"ArrowUp\")) {\n e.preventDefault();\n openPicker();\n }\n }}\n className={cn(\n inputBaseClasses,\n \"inline-flex min-h-11 min-w-11 shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-lg px-3 text-sm\",\n )}\n >\n {selected ? (\n <>\n <span data-react-fancy-phone-input-flag=\"\" aria-hidden=\"true\" className=\"text-base leading-none\">\n {flagOf(selected.code)}\n </span>\n <span dir=\"ltr\" className=\"tabular-nums\">{`+${selected.dialCode}`}</span>\n </>\n ) : (\n <span aria-hidden=\"true\">+</span>\n )}\n <svg aria-hidden=\"true\" className=\"h-4 w-4 shrink-0 opacity-70\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n\n <div className=\"min-w-0 flex-1\">\n <Input\n ref={(el) => {\n inputRef.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n data-react-fancy-phone-input-number=\"\"\n id={inputId}\n mode=\"edit\"\n type=\"tel\"\n inputMode=\"tel\"\n autoComplete=\"tel\"\n // A phone number reads left-to-right in every script. `dir` on the\n // input isolates it, so the + and the digits keep their order inside\n // a right-to-left page; it still sits at the page's inline start.\n dir=\"ltr\"\n value={text}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n autoFocus={autoFocus}\n aria-invalid={shown ? true : undefined}\n aria-describedby={describedBy || undefined}\n onValueChange={(next) => {\n setTouched(false);\n emit(next, country);\n }}\n onBlur={(e) => {\n setTouched(true);\n onBlur?.(e);\n }}\n className={cn(\"min-h-11 rtl:text-end\", errorClasses(shown))}\n />\n </div>\n </div>\n\n {description && (\n <p id={descriptionId} className=\"text-xs text-zinc-700 dark:text-zinc-300\">\n {description}\n </p>\n )}\n {shown && (\n <p\n id={errorId}\n data-react-fancy-phone-input-error=\"\"\n data-reason={error ? \"\" : (reason ?? \"\")}\n aria-live=\"polite\"\n className=\"text-xs font-medium text-red-800 dark:text-red-300\"\n >\n {shown}\n </p>\n )}\n\n {/* What a native submit posts: the E.164, never the half-typed text. */}\n {name ? (\n <input type=\"hidden\" name={name} form={form} disabled={disabled} value={current ?? \"\"} />\n ) : null}\n\n {open && (\n <Portal>\n <div\n ref={popupRef}\n dir={popupDir}\n data-react-fancy-phone-input-popup=\"\"\n className=\"fixed z-50 flex min-w-[16rem] flex-col gap-1 rounded-xl border border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] p-1 shadow-lg dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:shadow-zinc-950/50 fancy-scale-in\"\n style={{ left: position.x, top: position.y, width: rowRef.current?.offsetWidth }}\n >\n <input\n data-react-fancy-phone-input-search=\"\"\n type=\"text\"\n role=\"combobox\"\n autoFocus\n autoComplete=\"off\"\n spellCheck={false}\n aria-label={msg.search}\n aria-expanded=\"true\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-activedescendant={active ? optionId(active.code) : undefined}\n value={query}\n onChange={(e) => {\n setQuery(e.target.value);\n setActiveIndex(-1);\n }}\n onKeyDown={onSearchKeyDown}\n className={cn(inputBaseClasses, \"min-h-11 w-full rounded-lg px-3 text-sm\")}\n />\n <ul\n id={listId}\n role=\"listbox\"\n aria-label={msg.country}\n data-react-fancy-phone-input-listbox=\"\"\n className=\"max-h-72 overflow-y-auto\"\n >\n {filtered.map((c, i) => (\n <li\n key={c.code}\n id={optionId(c.code)}\n role=\"option\"\n aria-selected={c.code === selected?.code}\n data-react-fancy-phone-input-option={c.code}\n data-active={i === activeIndex ? \"true\" : undefined}\n ref={i === activeIndex ? (el) => el?.scrollIntoView?.({ block: \"nearest\" }) : undefined}\n // Keep focus in the search box, so the list stays one tab stop.\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => pick(c.code)}\n className={cn(\n \"flex min-h-11 cursor-pointer items-center gap-2 rounded-lg px-3 text-start text-sm text-zinc-900 dark:text-zinc-100\",\n i === activeIndex\n ? \"bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] dark:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))]\"\n : \"hover:bg-[color:var(--fancy-surface-hover,var(--color-zinc-50))] dark:hover:bg-[color:var(--fancy-surface-hover-dark,color-mix(in_oklab,var(--color-zinc-800)_50%,transparent))]\",\n c.code === selected?.code && \"font-semibold\",\n )}\n >\n <span aria-hidden=\"true\" className=\"text-base leading-none\">\n {flagOf(c.code)}\n </span>\n <span className=\"min-w-0 flex-1 truncate\">{c.name}</span>\n <span dir=\"ltr\" className=\"shrink-0 tabular-nums text-zinc-700 dark:text-zinc-300\">\n {`+${c.dialCode}`}\n </span>\n </li>\n ))}\n </ul>\n {filtered.length === 0 && (\n <p role=\"status\" className=\"px-3 py-2 text-sm text-zinc-700 dark:text-zinc-300\">\n {msg.noResults}\n </p>\n )}\n </div>\n </Portal>\n )}\n </div>\n );\n});\n\nPhoneInput.displayName = \"PhoneInput\";\n\n/** Whether the text starts an international number (`+` or `00`), ignoring separators. */\nfunction isInternational(text: string): boolean {\n let zeros = 0;\n for (const ch of text) {\n if (ch === \"+\" || ch === \"+\") return zeros === 0;\n if (ch === \"0\") {\n zeros++;\n if (zeros === 2) return true;\n continue;\n }\n if (ch === \" \" || ch === \"(\" || ch === \"-\" || ch === \".\") continue;\n return false;\n }\n return false;\n}\n"]}
1
+ {"version":3,"sources":["../src/components/PhoneInput/phone-countries.ts","../src/components/PhoneInput/phone.ts","../src/components/PhoneInput/PhoneInput.tsx"],"names":["PhoneInput"],"mappings":"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","file":"chunk-KHHTTAKZ.js","sourcesContent":["/**\n * Country to dial code and national-number length, first party.\n *\n * LENGTHS ARE A SANITY CHECK, NOT VALIDATION. They catch a number that is\n * plainly too short or too long for its country. They do not know which ranges\n * are allocated, whether a number is mobile or fixed, or whether it is in\n * service. Exact validation belongs on a server (Twilio Lookup, for example).\n *\n * Each row: [ISO 3166-1 alpha-2, dial code, min, max, trunk prefixes, status]\n *\n * - min / max count the NATIONAL SIGNIFICANT NUMBER (NSN): the digits after the\n * country code, without a trunk prefix.\n * - trunk prefixes are what a person types before the NSN when dialling within\n * the country. An empty list means the plan has none AND a leading 0 is part\n * of the number (Italy), so it must not be dropped.\n * - status is VERIFIED only where the length was checked against a source this\n * table cites (the WIKI rows). Every other row is UNVERIFIED, and its range is\n * the widest E.164 allows: 4 to (15 - dial-code digits). A range written from\n * memory that is too tight would refuse a real person's valid number, block\n * their form, and say `too_long` at once; accepting a wrong number is the\n * lesser harm, because the server validates. Each UNVERIFIED comment keeps the\n * range that was transcribed, so verifying a row is: check it against the\n * plan, put the range back, mark it VERIFIED and cite the source.\n *\n * Sources, recorded per row in its comment:\n *\n * E164 the dial code, from \"List of ITU-T Recommendation E.164 assigned\n * country codes\" (ITU-T, complement to E.164) and the index of national\n * numbering plans at https://www.itu.int/oth/T0202\n * NNP the length, from the national numbering plan the country has\n * notified to the ITU (same index)\n * NANPA the North American Numbering Plan: a 10-digit NSN everywhere\n * WIKI checked on 2026-11-05 against the \"Telephone numbers in <country>\"\n * article, which cites the plan, because the ITU document itself was\n * not readable as text\n * wide the plan is variable-length or the exact range was not confirmed,\n * so the range is deliberately wide. Wide ranges let more wrong numbers\n * through and refuse fewer right ones, which is the right way to be wrong\n * for a sanity check.\n *\n * Dial codes and trunk prefixes in UNVERIFIED rows were also transcribed, not\n * re-checked line by line; only their LENGTHS were widened. Treat a row as a\n * claim to correct, and correct it here with its source.\n *\n * Not listed, because they have no dial code of their own: AQ, BV, GS, HM,\n * PN, TF, UM. XK (Kosovo) is a user-assigned code, not ISO 3166-1, and is\n * listed because +383 is assigned to it and `Intl.DisplayNames` names it.\n */\nexport type LengthStatus = \"verified\" | \"unverified\";\n\nexport type CountryRow = readonly [\n code: string,\n dialCode: string,\n minLength: number,\n maxLength: number,\n trunkPrefixes: readonly string[],\n status: LengthStatus,\n];\n\nconst ZERO: readonly string[] = [\"0\"];\nconst NONE: readonly string[] = [];\nconst NANP_TRUNK: readonly string[] = [\"1\"];\nconst VERIFIED: LengthStatus = \"verified\";\nconst UNVERIFIED: LengthStatus = \"unverified\";\n\nexport const COUNTRY_ROWS: readonly CountryRow[] = [\n [\"AD\", \"376\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"AE\", \"971\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"AF\", \"93\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"AG\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 268))\n [\"AI\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 264))\n [\"AL\", \"355\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"AM\", \"374\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"AO\", \"244\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"AR\", \"54\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-11 from memory of NNP (mobile adds a 9 internationally))\n [\"AS\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 684))\n [\"AT\", \"43\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-13 from memory of NNP wide: open numbering plan)\n [\"AU\", \"61\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"AW\", \"297\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"AX\", \"358\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with FI, 358 18); length UNVERIFIED, widened to the E.164 maximum (was 5-12 from memory of NNP wide, as FI)\n [\"AZ\", \"994\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"BA\", \"387\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"BB\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 246))\n [\"BD\", \"880\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-10 from memory of NNP wide: fixed lines vary)\n [\"BE\", \"32\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"BF\", \"226\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BG\", \"359\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"BH\", \"973\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BI\", \"257\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BJ\", \"229\", 8, 10, NONE, VERIFIED], // E164; WIKI: \"01\" prefixed to every number on 2024-11-30; wide, 8 kept for the old form\n [\"BL\", \"590\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with GP, MF); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"BM\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 441))\n [\"BN\", \"673\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"BO\", \"591\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"BQ\", \"599\", 4, 12, NONE, UNVERIFIED], // E164 (shared with CW: 599 3, 4, 7); length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"BR\", \"55\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-11 from memory of NNP)\n [\"BS\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 242))\n [\"BT\", \"975\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"BW\", \"267\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"BY\", \"375\", 4, 12, [\"80\", \"8\"], UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP (dialled 8 0XX nationally))\n [\"BZ\", \"501\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"CA\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA)\n [\"CC\", \"61\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with AU, 61 89162); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP, as AU)\n [\"CD\", \"243\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CF\", \"236\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"CG\", \"242\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP (the leading 0 is part of the number))\n [\"CH\", \"41\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CI\", \"225\", 10, 10, NONE, VERIFIED], // E164; WIKI: 10 digits since 2021-01-31, leading 0 is part of the number\n [\"CK\", \"682\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-5 from memory of NNP)\n [\"CL\", \"56\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CM\", \"237\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"CN\", \"86\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-12 from memory of NNP wide: fixed lines vary by area code)\n [\"CO\", \"57\", 10, 10, ZERO, VERIFIED], // E164; WIKI: fixed and mobile 10 digits since 2021\n [\"CR\", \"506\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"CU\", \"53\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-8 from memory of NNP wide)\n [\"CV\", \"238\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"CW\", \"599\", 4, 12, NONE, UNVERIFIED], // E164 (shared with BQ: 599 9); length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"CX\", \"61\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with AU, 61 89164); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP, as AU)\n [\"CY\", \"357\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"CZ\", \"420\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"DE\", \"49\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-13 from memory of NNP wide: open numbering plan)\n [\"DJ\", \"253\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"DK\", \"45\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"DM\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 767))\n [\"DO\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 809, 829, 849))\n [\"DZ\", \"213\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"EC\", \"593\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"EE\", \"372\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"EG\", \"20\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"EH\", \"212\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with MA); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP, as MA)\n [\"ER\", \"291\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"ES\", \"34\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ET\", \"251\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"FI\", \"358\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-12 from memory of NNP wide: variable-length plan)\n [\"FJ\", \"679\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"FK\", \"500\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-5 from memory of NNP)\n [\"FM\", \"691\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"FO\", \"298\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"FR\", \"33\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GA\", \"241\", 7, 8, NONE, VERIFIED], // E164; WIKI: 7 digits, 8 for mobiles renumbered in 2019; the 0 is part of the number\n [\"GB\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-10 from memory of NNP (10 for almost all; a few 9 and 7))\n [\"GD\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 473))\n [\"GE\", \"995\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GF\", \"594\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GG\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with GB, 44 1481); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP, as GB)\n [\"GH\", \"233\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GI\", \"350\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"GL\", \"299\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"GM\", \"220\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"GN\", \"224\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP wide)\n [\"GP\", \"590\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with BL, MF); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GQ\", \"240\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"GR\", \"30\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"GT\", \"502\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"GU\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 671))\n [\"GW\", \"245\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"GY\", \"592\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"HK\", \"852\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"HN\", \"504\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"HR\", \"385\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"HT\", \"509\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"HU\", \"36\", 4, 13, [\"06\"], UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP (trunk prefix 06))\n [\"ID\", \"62\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-12 from memory of NNP wide)\n [\"IE\", \"353\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP)\n [\"IL\", \"972\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"IM\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with GB, 44 1624); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP, as GB)\n [\"IN\", \"91\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"IO\", \"246\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"IQ\", \"964\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"IR\", \"98\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"IS\", \"354\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP)\n [\"IT\", \"39\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-11 from memory of NNP wide (the leading 0 of a fixed line is part of the number))\n [\"JE\", \"44\", 4, 13, ZERO, UNVERIFIED], // E164 (shared with GB, 44 1534); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP, as GB)\n [\"JM\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 876, 658))\n [\"JO\", \"962\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"JP\", \"81\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-10 from memory of NNP)\n [\"KE\", \"254\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-10 from memory of NNP wide)\n [\"KG\", \"996\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"KH\", \"855\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"KI\", \"686\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-8 from memory of NNP wide)\n [\"KM\", \"269\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"KN\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 869))\n [\"KP\", \"850\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-12 from memory of NNP wide: not confirmed)\n [\"KR\", \"82\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-11 from memory of NNP wide)\n [\"KW\", \"965\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"KY\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 345))\n [\"KZ\", \"7\", 10, 10, [\"8\"], VERIFIED], // E164 (shared with RU: 7 6, 7 7); WIKI: zones 6xx and 7xx\n [\"LA\", \"856\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"LB\", \"961\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"LC\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 758))\n [\"LI\", \"423\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP)\n [\"LK\", \"94\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"LR\", \"231\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"LS\", \"266\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"LT\", \"370\", 8, 8, [\"0\", \"8\"], VERIFIED], // E164; WIKI: trunk 0 since 2024-03-01, the old 8 still read\n [\"LU\", \"352\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-11 from memory of NNP wide: open numbering plan)\n [\"LV\", \"371\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"LY\", \"218\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"MA\", \"212\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MC\", \"377\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"MD\", \"373\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"ME\", \"382\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MF\", \"590\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with GP, BL); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MG\", \"261\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MH\", \"692\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"MK\", \"389\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"ML\", \"223\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MM\", \"95\", 7, 10, ZERO, VERIFIED], // E164; WIKI: 8 to 11 digits with the trunk 0, so 7 to 10; mobiles 8 to 10\n [\"MN\", \"976\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MO\", \"853\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MP\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 670))\n [\"MQ\", \"596\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"MR\", \"222\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MS\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 664))\n [\"MT\", \"356\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"MU\", \"230\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"MV\", \"960\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"MW\", \"265\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"MX\", \"52\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP (10 digits since 2019))\n [\"MY\", \"60\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP)\n [\"MZ\", \"258\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"NA\", \"264\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"NC\", \"687\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"NE\", \"227\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"NF\", \"672\", 4, 12, NONE, UNVERIFIED], // E164 (672 3); length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"NG\", \"234\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-10 from memory of NNP wide)\n [\"NI\", \"505\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"NL\", \"31\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"NO\", \"47\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-8 from memory of NNP (8, with a few 5-digit service numbers))\n [\"NP\", \"977\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"NR\", \"674\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"NU\", \"683\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-7 from memory of NNP wide)\n [\"NZ\", \"64\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP)\n [\"OM\", \"968\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"PA\", \"507\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"PE\", \"51\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"PF\", \"689\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-8 from memory of NNP wide (8 since 2017))\n [\"PG\", \"675\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"PH\", \"63\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP)\n [\"PK\", \"92\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"PL\", \"48\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"PM\", \"508\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"PR\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 787, 939))\n [\"PS\", \"970\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"PT\", \"351\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"PW\", \"680\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"PY\", \"595\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"QA\", \"974\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"RE\", \"262\", 4, 12, ZERO, UNVERIFIED], // E164 (shared with YT); length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"RO\", \"40\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"RS\", \"381\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-9 from memory of NNP wide)\n [\"RU\", \"7\", 4, 14, [\"8\"], UNVERIFIED], // E164 (shared with KZ); length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP (trunk prefix 8))\n [\"RW\", \"250\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SA\", \"966\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"SB\", \"677\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"SC\", \"248\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"SD\", \"249\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SE\", \"46\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-10 from memory of NNP wide: variable-length plan)\n [\"SG\", \"65\", 4, 13, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SH\", \"290\", 5, 5, NONE, VERIFIED], // E164; WIKI: fixed five-digit plan since 2013-10-01\n [\"SI\", \"386\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SJ\", \"47\", 4, 13, NONE, UNVERIFIED], // E164 (shared with NO, 47 79); length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP, as NO)\n [\"SK\", \"421\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SL\", \"232\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SM\", \"378\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-10 from memory of NNP wide)\n [\"SN\", \"221\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"SO\", \"252\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"SR\", \"597\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-7 from memory of NNP)\n [\"SS\", \"211\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ST\", \"239\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-7 from memory of NNP)\n [\"SV\", \"503\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"SX\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 721))\n [\"SY\", \"963\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"SZ\", \"268\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TC\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 649))\n [\"TD\", \"235\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TG\", \"228\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TH\", \"66\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"TJ\", \"992\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"TK\", \"690\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 4-7 from memory of NNP wide)\n [\"TL\", \"670\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-8 from memory of NNP)\n [\"TM\", \"993\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TN\", \"216\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"TO\", \"676\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"TR\", \"90\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"TT\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 868))\n [\"TV\", \"688\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-6 from memory of NNP)\n [\"TW\", \"886\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"TZ\", \"255\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"UA\", \"380\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"UG\", \"256\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"US\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA)\n [\"UY\", \"598\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-8 from memory of NNP)\n [\"UZ\", \"998\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"VA\", \"39\", 4, 13, NONE, UNVERIFIED], // E164 (shared with IT, 39 06698); length UNVERIFIED, widened to the E.164 maximum (was 6-11 from memory of NNP, as IT)\n [\"VC\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 784))\n [\"VE\", \"58\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NNP)\n [\"VG\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 284))\n [\"VI\", \"1\", 4, 14, NANP_TRUNK, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 10-10 from memory of NANPA (NPA 340))\n [\"VN\", \"84\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-10 from memory of NNP wide)\n [\"VU\", \"678\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"WF\", \"681\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 6-6 from memory of NNP)\n [\"WS\", \"685\", 4, 12, NONE, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-7 from memory of NNP wide)\n [\"XK\", \"383\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 8-9 from memory of NNP)\n [\"YE\", \"967\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 7-9 from memory of NNP wide)\n [\"YT\", \"262\", 9, 9, ZERO, VERIFIED], // E164 (shared with RE: 262 269, 639); WIKI\n [\"ZA\", \"27\", 4, 13, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ZM\", \"260\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 9-9 from memory of NNP)\n [\"ZW\", \"263\", 4, 12, ZERO, UNVERIFIED], // E164; length UNVERIFIED, widened to the E.164 maximum (was 5-10 from memory of NNP wide: fixed lines vary)\n];\n\n/**\n * Which country a shared dial code means when nothing else decides. This is a\n * convention (the country that holds most of the numbers), not a fact about\n * any one number.\n */\nexport const MAIN_COUNTRY: Readonly<Record<string, string>> = {\n \"1\": \"US\",\n \"7\": \"RU\",\n \"39\": \"IT\",\n \"44\": \"GB\",\n \"47\": \"NO\",\n \"61\": \"AU\",\n \"212\": \"MA\",\n \"262\": \"RE\",\n \"358\": \"FI\",\n \"590\": \"GP\",\n \"599\": \"CW\",\n};\n\n/**\n * Leading digits of the NSN that point at one country of a shared dial code.\n * APPROXIMATE, and documented as such: these name the country a number was\n * allocated to, and a ported or roaming number can say otherwise. The E.164\n * the component emits does not depend on them, only `detail.country` does.\n *\n * - +1: area codes (NPAs). Canada's list is the one in WIKI (\"Telephone numbers\n * in Canada\", last edited 2026-01-27; NANPA itself was not reached), the\n * others are NANPA's Caribbean and territory NPAs. A new Canadian NPA reads\n * as US until it is added here.\n * - +7: Kazakhstan holds zones 6xx and 7xx (WIKI).\n * - +44: the Crown Dependencies' fixed-line area codes only. Their mobile ranges\n * sit among UK mobiles and are not listed.\n * - +47 79 Svalbard, +61 89162 / 89164 Cocos and Christmas Islands, +262 269 /\n * 639 Mayotte (WIKI), +358 18 Aland, +39 06698 Vatican City, +599 3 / 4 / 7\n * Caribbean Netherlands.\n * - +212 (Western Sahara) and +590 (Saint Barthelemy, Saint Martin) have no\n * hint: their ranges were not confirmed, so they fall to the main country.\n */\nexport const LEADING_DIGIT_HINTS: Readonly<Record<string, Readonly<Record<string, readonly string[]>>>> = {\n \"1\": {\n CA: [\n \"204\", \"226\", \"236\", \"249\", \"250\", \"257\", \"263\", \"289\", \"306\", \"343\", \"354\", \"365\", \"367\",\n \"368\", \"382\", \"403\", \"416\", \"418\", \"428\", \"431\", \"437\", \"438\", \"450\", \"468\", \"474\", \"506\",\n \"514\", \"519\", \"548\", \"579\", \"581\", \"584\", \"587\", \"604\", \"613\", \"639\", \"647\", \"672\", \"683\",\n \"705\", \"709\", \"742\", \"753\", \"778\", \"780\", \"782\", \"807\", \"819\", \"825\", \"867\", \"873\", \"879\",\n \"902\", \"905\", \"942\",\n ],\n AG: [\"268\"],\n AI: [\"264\"],\n AS: [\"684\"],\n BB: [\"246\"],\n BM: [\"441\"],\n BS: [\"242\"],\n DM: [\"767\"],\n DO: [\"809\", \"829\", \"849\"],\n GD: [\"473\"],\n GU: [\"671\"],\n JM: [\"876\", \"658\"],\n KN: [\"869\"],\n KY: [\"345\"],\n LC: [\"758\"],\n MP: [\"670\"],\n MS: [\"664\"],\n PR: [\"787\", \"939\"],\n SX: [\"721\"],\n TC: [\"649\"],\n TT: [\"868\"],\n VC: [\"784\"],\n VG: [\"284\"],\n VI: [\"340\"],\n },\n \"7\": { KZ: [\"6\", \"7\"] },\n \"39\": { VA: [\"06698\"] },\n \"44\": { GG: [\"1481\"], JE: [\"1534\"], IM: [\"1624\"] },\n \"47\": { SJ: [\"79\"] },\n \"61\": { CC: [\"89162\"], CX: [\"89164\"] },\n \"262\": { YT: [\"269\", \"639\"] },\n \"358\": { AX: [\"18\"] },\n \"599\": { BQ: [\"3\", \"4\", \"7\"] },\n};\n","import { COUNTRY_ROWS, LEADING_DIGIT_HINTS, MAIN_COUNTRY } from \"./phone-countries\";\nimport type { PhoneCountry, PhoneInputReason, PhoneParse, ParsePhoneOptions } from \"./PhoneInput.types\";\n\n/**\n * Reading a phone number, by hand.\n *\n * Every step is a single pass over the characters, with no regular expression:\n * the text comes from a person or a paste, and a backtracking pattern over it is\n * a ReDoS waiting for the right input. Linear time is pinned by a test.\n */\n\nexport const PHONE_COUNTRIES: readonly PhoneCountry[] = COUNTRY_ROWS.map(\n ([code, dialCode, minLength, maxLength, trunkPrefixes, status]) => ({\n code,\n dialCode,\n minLength,\n maxLength,\n trunkPrefixes,\n lengthVerified: status === \"verified\",\n }),\n);\n\nconst BY_CODE = new Map(PHONE_COUNTRIES.map((c) => [c.code, c]));\n\nexport function findCountry(code: string | null | undefined): PhoneCountry | undefined {\n return code ? BY_CODE.get(code.toUpperCase()) : undefined;\n}\n\n/** The first code point of \"0\" in each script whose digits are read. */\nconst DIGIT_ZEROS = [\n 0x30, // ASCII\n 0x660, // Arabic-Indic\n 0x6f0, // Extended Arabic-Indic (Persian, Urdu)\n 0x966, // Devanagari\n 0x9e6, // Bengali\n 0xe50, // Thai\n 0x1040, // Myanmar\n 0xff10, // fullwidth\n];\n\nfunction digitOf(cp: number): number {\n for (const zero of DIGIT_ZEROS) {\n if (cp >= zero && cp <= zero + 9) return cp - zero;\n }\n return -1;\n}\n\n/** What people put between digits. Skipped. */\nfunction isSeparator(cp: number): boolean {\n return (\n cp === 0x20 || // space\n cp === 0x09 || // tab\n cp === 0xa0 || // no-break space\n cp === 0x2007 || // figure space\n cp === 0x2009 || // thin space\n cp === 0x202f || // narrow no-break space\n cp === 0x3000 || // ideographic space\n cp === 0x2d || // hyphen-minus\n (cp >= 0x2010 && cp <= 0x2015) || // hyphens and dashes\n cp === 0x2212 || // minus sign\n cp === 0xff0d || // fullwidth hyphen-minus\n cp === 0x2e || // full stop\n cp === 0x2f || // solidus\n cp === 0x28 || // (\n cp === 0x29 || // )\n cp === 0xff08 || // fullwidth (\n cp === 0xff09 // fullwidth )\n );\n}\n\n/**\n * Invisible direction controls. Text copied from a right-to-left page often\n * wraps a number in these, and they are not part of it.\n */\nfunction isDirectionMark(cp: number): boolean {\n return (\n cp === 0x200e ||\n cp === 0x200f ||\n cp === 0x061c ||\n cp === 0xfeff ||\n (cp >= 0x202a && cp <= 0x202e) ||\n (cp >= 0x2066 && cp <= 0x2069)\n );\n}\n\nfunction isPlus(cp: number): boolean {\n return cp === 0x2b || cp === 0xff0b;\n}\n\ninterface Scan {\n digits: string;\n plus: boolean;\n invalid: boolean;\n}\n\n/** One pass. Stops at the first character that cannot be in a phone number. */\nfunction scan(text: string): Scan {\n let digits = \"\";\n let plus = false;\n\n for (const ch of text) {\n const cp = ch.codePointAt(0)!;\n const d = digitOf(cp);\n if (d >= 0) {\n digits += String(d);\n } else if (isPlus(cp)) {\n // Only as the first thing typed: \"95+9\" is not a number.\n if (plus || digits.length > 0) return { digits, plus, invalid: true };\n plus = true;\n } else if (!isSeparator(cp) && !isDirectionMark(cp)) {\n return { digits, plus, invalid: true };\n }\n }\n\n return { digits, plus, invalid: false };\n}\n\nfunction lengthReason(nsn: string, country: PhoneCountry): PhoneInputReason | null {\n if (nsn.length < country.minLength) return \"too_short\";\n // E.164 caps the whole number at 15 digits, country code included.\n if (nsn.length > country.maxLength || nsn.length + country.dialCode.length > 15) return \"too_long\";\n return null;\n}\n\n/**\n * Drop the trunk prefix if the person typed one. Always: keeping it whenever the\n * longer reading happens to fit the length range would turn a half-typed\n * \"06 12 34 56 7\" into a \"valid\" +33 0612 34567, which is exactly the wrong\n * E.164 a partial number must never produce. The cost is one case: a national\n * number that genuinely starts with the trunk digit, typed WITHOUT the trunk\n * prefix (Russia's 800 numbers, dialled \"8 800\" at home), reads as too short.\n * That is null with a reason, never a wrong number.\n */\nfunction stripTrunk(digits: string, country: PhoneCountry): string {\n for (const trunk of country.trunkPrefixes) {\n if (trunk && digits.startsWith(trunk)) return digits.slice(trunk.length);\n }\n return digits;\n}\n\nfunction allowedSet(countries: readonly string[] | undefined): Set<string> | null {\n if (!countries) return null;\n const set = new Set<string>();\n for (const c of countries) set.add(c.toUpperCase());\n return set;\n}\n\n/** Countries that share a dial code, in table order. */\nfunction countriesFor(dialCode: string, allowed: Set<string> | null): PhoneCountry[] {\n const out: PhoneCountry[] = [];\n for (const c of PHONE_COUNTRIES) {\n if (c.dialCode === dialCode && (!allowed || allowed.has(c.code))) out.push(c);\n }\n return out;\n}\n\n/**\n * Which of several countries sharing a dial code a number belongs to. The\n * leading-digit hint first, then the selected country, then the main one.\n * Approximate by construction; see LEADING_DIGIT_HINTS.\n */\nfunction pickShared(\n candidates: PhoneCountry[],\n nsn: string,\n selected: string | null,\n): PhoneCountry {\n const dial = candidates[0].dialCode;\n const hints = LEADING_DIGIT_HINTS[dial];\n if (hints) {\n let best: PhoneCountry | undefined;\n let bestLength = 0;\n for (const c of candidates) {\n for (const prefix of hints[c.code] ?? []) {\n if (prefix.length > bestLength && nsn.startsWith(prefix)) {\n best = c;\n bestLength = prefix.length;\n }\n }\n }\n if (best) return best;\n }\n const chosen = candidates.find((c) => c.code === selected);\n if (chosen) return chosen;\n return candidates.find((c) => c.code === MAIN_COUNTRY[dial]) ?? candidates[0];\n}\n\nfunction result(\n country: PhoneCountry | undefined,\n nsn: string,\n reason: PhoneInputReason | null,\n approximate = false,\n): PhoneParse {\n const valid = reason === null && country !== undefined && nsn.length > 0;\n return {\n value: valid ? `+${country!.dialCode}${nsn}` : null,\n country: country?.code ?? null,\n dialCode: country?.dialCode ?? null,\n nationalNumber: nsn,\n valid,\n reason,\n approximate,\n };\n}\n\n/**\n * Read what a person typed or pasted into an E.164 number and a reason.\n *\n * - `+` or `00` starts an international number; the country comes from its dial\n * code. Other international prefixes (011 in North America, 010 in Japan) are\n * not recognised: type `+`.\n * - Anything else is a national number in `options.country`, with its trunk\n * prefix dropped.\n * - Blank (or separators only) is no value and no reason.\n * - The value is `null` unless the number is whole. Lengths are a sanity check:\n * a valid result can still be a number nobody holds.\n */\nexport function parsePhone(text: string, options: ParsePhoneOptions = {}): PhoneParse {\n const allowed = allowedSet(options.countries);\n const selectedCode = options.country ? options.country.toUpperCase() : null;\n const selected =\n selectedCode && (!allowed || allowed.has(selectedCode)) ? findCountry(selectedCode) : undefined;\n\n const { digits, plus, invalid } = scan(text);\n\n if (invalid) return result(selected, digits, \"invalid_chars\");\n if (!plus && digits.length === 0) return result(selected, \"\", null);\n\n const international = plus || digits.startsWith(\"00\");\n if (!international) {\n if (!selected) return result(undefined, digits, \"unknown_country\");\n const nsn = stripTrunk(digits, selected);\n return result(selected, nsn, lengthReason(nsn, selected));\n }\n\n const rest = plus ? digits : digits.slice(2);\n\n // Country codes are prefix-free, so the first that matches is the only one.\n for (let length = 1; length <= 3 && length <= rest.length; length++) {\n const dial = rest.slice(0, length);\n const anywhere = countriesFor(dial, null);\n if (anywhere.length === 0) continue;\n\n const candidates = allowed ? anywhere.filter((c) => allowed.has(c.code)) : anywhere;\n let nsn = rest.slice(length);\n if (candidates.length === 0) return result(undefined, nsn, \"unknown_country\");\n\n const country =\n candidates.length === 1 ? candidates[0] : pickShared(candidates, nsn, selectedCode);\n // \"+44 (0)20 ...\" : the national trunk 0, written inside an international number.\n if (country.trunkPrefixes.includes(\"0\") && nsn.startsWith(\"0\")) nsn = nsn.slice(1);\n\n return result(country, nsn, lengthReason(nsn, country), anywhere.length > 1);\n }\n\n // No dial code yet. Short of three digits, it may still become one.\n if (rest.length < 3) {\n for (const c of PHONE_COUNTRIES) {\n if (c.dialCode.startsWith(rest) && (!allowed || allowed.has(c.code))) {\n return result(undefined, \"\", \"too_short\");\n }\n }\n }\n return result(undefined, \"\", \"unknown_country\");\n}\n\n/** The national number an E.164 value holds, for display. \"\" if it holds none. */\nexport function nationalNumberOf(\n value: string | null,\n options: ParsePhoneOptions = {},\n): { nationalNumber: string; country: string | null } {\n if (!value) return { nationalNumber: \"\", country: null };\n const parsed = parsePhone(value.startsWith(\"+\") ? value : `+${value}`, options);\n return { nationalNumber: parsed.nationalNumber, country: parsed.country };\n}\n\n/** A flag from two regional-indicator letters. No image, so nothing to load. */\nexport function flagOf(code: string): string {\n if (code.length !== 2) return \"\";\n let out = \"\";\n for (let i = 0; i < 2; i++) {\n const c = code.toUpperCase().charCodeAt(i);\n if (c < 65 || c > 90) return \"\";\n out += String.fromCodePoint(0x1f1e6 + (c - 65));\n }\n return out;\n}\n\n/** Lower-case and without accents, so \"aland\" finds \"Åland\". */\nexport function foldForSearch(text: string): string {\n let out = \"\";\n for (const ch of text.normalize(\"NFD\").toLowerCase()) {\n const cp = ch.codePointAt(0)!;\n if (cp >= 0x300 && cp <= 0x36f) continue;\n out += ch;\n }\n return out;\n}\n","import { forwardRef, useEffect, useId, useMemo, useRef, useState, type KeyboardEvent } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { isImeComposing } from \"../../utils/ime\";\nimport { directionOf, type Direction } from \"../../utils/direction\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport { useFloatingPosition } from \"../../hooks/use-floating-position\";\nimport { useOutsideClick } from \"../../hooks/use-outside-click\";\nimport { useEscapeKey } from \"../../hooks/use-escape-key\";\nimport { Portal } from \"../Portal\";\nimport { Input } from \"../inputs/Input\";\nimport { errorClasses, inputBaseClasses } from \"../inputs/inputs.utils\";\nimport {\n PHONE_COUNTRIES,\n findCountry,\n flagOf,\n foldForSearch,\n nationalNumberOf,\n parsePhone,\n} from \"./phone\";\nimport type {\n PhoneCountry,\n PhoneInputDetail,\n PhoneInputMessages,\n PhoneInputProps,\n PhoneInputReason,\n} from \"./PhoneInput.types\";\n\nconst DEFAULT_MESSAGES: Required<PhoneInputMessages> = {\n too_short: \"This number is too short for {country}.\",\n too_long: \"This number is too long for {country}.\",\n invalid_chars: \"Use digits only. Spaces, dashes, brackets and a leading + are fine.\",\n unknown_country: \"Choose a country, or start the number with + and its country code.\",\n country: \"Country\",\n chooseCountry: \"Choose a country\",\n search: \"Search countries\",\n noResults: \"No matching countries\",\n};\n\n/** Messages that cannot be fixed by typing more are shown at once; the rest on blur. */\nconst IMMEDIATE: ReadonlySet<PhoneInputReason> = new Set([\"invalid_chars\", \"too_long\"]);\n\nfunction fill(template: string, country: string): string {\n return template.split(\"{country}\").join(country);\n}\n\nfunction regionNamer(locale: string | undefined): (code: string) => string {\n try {\n const names = new Intl.DisplayNames(locale ? [locale] : undefined, { type: \"region\" });\n return (code) => {\n try {\n return names.of(code) ?? code;\n } catch {\n return code;\n }\n };\n } catch {\n return (code) => code;\n }\n}\n\ninterface Listed extends PhoneCountry {\n name: string;\n folded: string;\n}\n\nfunction rank(c: Listed, query: string, dialQuery: string | null): number {\n if (c.code.toLowerCase() === query) return 0;\n if (dialQuery !== null && c.dialCode === dialQuery) return 1;\n if (c.folded.startsWith(query)) return 2;\n return 3;\n}\n\nfunction matches(c: Listed, query: string, dialQuery: string | null): boolean {\n if (dialQuery !== null) return dialQuery.length > 0 && c.dialCode.startsWith(dialQuery);\n return c.folded.includes(query) || c.code.toLowerCase() === query;\n}\n\n/** \"+95\", \"0095\" and \"95\" are dial-code searches; anything else searches names. */\nfunction dialQueryOf(query: string): string | null {\n let rest = query;\n if (rest.startsWith(\"+\")) rest = rest.slice(1);\n else if (rest.startsWith(\"00\")) rest = rest.slice(2);\n if (rest.length === 0) return query.startsWith(\"+\") ? \"\" : null;\n for (const ch of rest) {\n if (ch < \"0\" || ch > \"9\") return null;\n }\n return rest;\n}\n\nexport const PhoneInput = forwardRef<HTMLInputElement, PhoneInputProps>(function PhoneInput(\n {\n value,\n defaultValue = null,\n onValueChange,\n defaultCountry,\n countries,\n locale,\n label,\n description,\n error,\n required,\n disabled,\n name,\n form,\n id,\n placeholder,\n autoFocus,\n className,\n messages,\n onBlur,\n },\n ref,\n) {\n const autoId = useId();\n const inputId = id ?? `${autoId}-number`;\n const labelId = `${inputId}-label`;\n const descriptionId = `${inputId}-description`;\n const errorId = `${inputId}-error`;\n const listId = `${inputId}-countries`;\n const msg = { ...DEFAULT_MESSAGES, ...messages };\n\n const [held, setValue] = useControllableState<string | null>(value, defaultValue);\n const current = typeof held === \"string\" && held !== \"\" ? held : null;\n const options = useMemo(() => ({ countries }), [countries]);\n\n const [country, setCountry] = useState<string | null>(() => {\n const fromValue = nationalNumberOf(current, { ...options, country: defaultCountry }).country;\n return fromValue ?? (defaultCountry ? defaultCountry.toUpperCase() : null);\n });\n\n /*\n * The text is held apart from the value, as in NumberField: \"+95 9\" has no\n * E.164 that displays it. It only moves on its own when the value moved to\n * something the text does not say: a change from outside, or a parent\n * refusing this one. Then it shows the national number, and the picker the\n * country, because the dial code is already on the picker.\n */\n const [text, setText] = useState(() => nationalNumberOf(current, { ...options, country }).nationalNumber);\n const parsed = parsePhone(text, { ...options, country });\n if (parsed.value !== current) {\n const target = nationalNumberOf(current, { ...options, country });\n const nextCountry = target.country ?? country;\n if (text !== target.nationalNumber || nextCountry !== country) {\n setText(target.nationalNumber);\n setCountry(nextCountry);\n }\n }\n\n const [touched, setTouched] = useState(false);\n const lastEmitted = useRef<string | null>(null);\n\n const names = useMemo(() => regionNamer(locale), [locale]);\n const listed = useMemo<Listed[]>(() => {\n const rows = countries\n ? countries.map((c) => findCountry(c)).filter((c): c is PhoneCountry => c !== undefined)\n : [...PHONE_COUNTRIES];\n const out = rows.map((c) => {\n const n = names(c.code);\n return { ...c, name: n, folded: foldForSearch(n) };\n });\n if (!countries) {\n let collator: Intl.Collator;\n try {\n collator = new Intl.Collator(locale);\n } catch {\n collator = new Intl.Collator();\n }\n out.sort((a, b) => collator.compare(a.name, b.name));\n }\n return out;\n }, [countries, names, locale]);\n\n const selected = findCountry(parsed.country ?? country);\n const selectedName = selected ? names(selected.code) : \"\";\n\n const emit = (nextText: string, nextCountry: string | null) => {\n const p = parsePhone(nextText, { ...options, country: nextCountry });\n setText(nextText);\n setCountry(p.country ?? nextCountry);\n\n const detail: PhoneInputDetail = {\n country: p.country,\n dialCode: p.dialCode,\n nationalNumber: p.nationalNumber,\n valid: p.valid,\n reason: p.reason,\n approximate: p.approximate,\n };\n const key = JSON.stringify([p.value, detail]);\n if (key === lastEmitted.current) return;\n lastEmitted.current = key;\n if (p.value !== current) setValue(p.value);\n onValueChange?.(p.value, detail);\n };\n\n // ── Validation message ────────────────────────────────────\n const reason = parsed.reason;\n const reasonMessage = reason ? fill(msg[reason], selectedName || \"this country\") : \"\";\n const shown = error ?? (reason && (IMMEDIATE.has(reason) || touched) ? reasonMessage : undefined);\n const describedBy = [description ? descriptionId : null, shown ? errorId : null]\n .filter(Boolean)\n .join(\" \");\n\n // A form learns of it through native validity, as with NumberField.\n const inputRef = useRef<HTMLInputElement | null>(null);\n useEffect(() => {\n inputRef.current?.setCustomValidity(reasonMessage);\n });\n\n // ── Picker ────────────────────────────────────────────────\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const [activeIndex, setActiveIndex] = useState(-1);\n // Read when opening, so the first frame is already on the right side.\n const [popupDir, setPopupDir] = useState<Direction>(\"ltr\");\n const triggerRef = useRef<HTMLButtonElement>(null);\n const rowRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n const position = useFloatingPosition(rowRef, popupRef, {\n placement: \"bottom-start\",\n offset: 4,\n enabled: open,\n });\n\n const folded = foldForSearch(query.trim());\n const dialQuery = dialQueryOf(folded);\n const filtered = useMemo(() => {\n if (!folded) return listed;\n const hits = listed.filter((c) => matches(c, folded, dialQuery));\n return hits\n .map((c, i) => ({ c, i, r: rank(c, folded, dialQuery) }))\n .sort((a, b) => a.r - b.r || a.i - b.i)\n .map((x) => x.c);\n }, [listed, folded, dialQuery]);\n\n const openPicker = () => {\n if (disabled) return;\n setQuery(\"\");\n setActiveIndex(listed.findIndex((c) => c.code === selected?.code));\n setPopupDir(directionOf(rowRef.current));\n setOpen(true);\n };\n\n const close = (focus: \"trigger\" | \"number\" | null) => {\n setOpen(false);\n setQuery(\"\");\n setActiveIndex(-1);\n if (focus === \"trigger\") triggerRef.current?.focus();\n if (focus === \"number\") inputRef.current?.focus();\n };\n\n const pick = (code: string) => {\n // The picked country wins over a dial code typed in the text, so the text\n // is re-read as a national number.\n const nextText = parsed.dialCode !== null && isInternational(text) ? parsed.nationalNumber : text;\n emit(nextText, code);\n close(\"number\");\n };\n\n useEscapeKey(() => close(\"trigger\"), open);\n useOutsideClick(popupRef, () => close(null), open, triggerRef);\n\n const onSearchKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setActiveIndex((i) => Math.min(i + 1, filtered.length - 1));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIndex((i) => Math.max(i - 1, 0));\n } else if (e.key === \"PageDown\" || e.key === \"PageUp\") {\n e.preventDefault();\n const step = e.key === \"PageDown\" ? 10 : -10;\n setActiveIndex((i) => Math.min(Math.max(i + step, 0), filtered.length - 1));\n } else if (e.key === \"Enter\") {\n if (isImeComposing(e)) return;\n e.preventDefault();\n const item = filtered[activeIndex] ?? (folded ? filtered[0] : undefined);\n if (item) pick(item.code);\n } else if (e.key === \"Tab\") {\n // The list lives in a portal at the end of <body>; Tab would leave the\n // field for whatever follows it there. Return to the field instead.\n e.preventDefault();\n close(e.shiftKey ? \"trigger\" : \"number\");\n }\n };\n\n const active = filtered[activeIndex];\n const optionId = (code: string) => `${listId}-${code}`;\n\n return (\n <div\n data-react-fancy-phone-input=\"\"\n data-country={selected?.code ?? \"\"}\n data-valid={parsed.valid ? \"true\" : \"false\"}\n data-reason={reason ?? \"\"}\n className={cn(\"flex flex-col gap-2\", className)}\n >\n <label\n id={labelId}\n htmlFor={inputId}\n className=\"text-sm font-medium text-zinc-900 dark:text-zinc-100\"\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"ms-0.5 text-red-800 dark:text-red-300\">\n *\n </span>\n )}\n </label>\n\n <div ref={rowRef} role=\"group\" aria-labelledby={labelId} className=\"flex items-stretch gap-2\">\n <button\n ref={triggerRef}\n type=\"button\"\n data-react-fancy-phone-input-country=\"\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? listId : undefined}\n aria-label={\n selected\n ? `${msg.country}: ${selectedName} (+${selected.dialCode})`\n : msg.chooseCountry\n }\n onClick={() => (open ? close(null) : openPicker())}\n onKeyDown={(e) => {\n if (!open && (e.key === \"ArrowDown\" || e.key === \"ArrowUp\")) {\n e.preventDefault();\n openPicker();\n }\n }}\n className={cn(\n inputBaseClasses,\n \"inline-flex min-h-11 min-w-11 shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-lg px-3 text-sm\",\n )}\n >\n {selected ? (\n <>\n <span data-react-fancy-phone-input-flag=\"\" aria-hidden=\"true\" className=\"text-base leading-none\">\n {flagOf(selected.code)}\n </span>\n <span dir=\"ltr\" className=\"tabular-nums\">{`+${selected.dialCode}`}</span>\n </>\n ) : (\n <span aria-hidden=\"true\">+</span>\n )}\n <svg aria-hidden=\"true\" className=\"h-4 w-4 shrink-0 opacity-70\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n\n <div className=\"min-w-0 flex-1\">\n <Input\n ref={(el) => {\n inputRef.current = el;\n if (typeof ref === \"function\") ref(el);\n else if (ref) ref.current = el;\n }}\n data-react-fancy-phone-input-number=\"\"\n id={inputId}\n mode=\"edit\"\n type=\"tel\"\n inputMode=\"tel\"\n autoComplete=\"tel\"\n // A phone number reads left-to-right in every script. `dir` on the\n // input isolates it, so the + and the digits keep their order inside\n // a right-to-left page; it still sits at the page's inline start.\n dir=\"ltr\"\n value={text}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n autoFocus={autoFocus}\n aria-invalid={shown ? true : undefined}\n aria-describedby={describedBy || undefined}\n onValueChange={(next) => {\n setTouched(false);\n emit(next, country);\n }}\n onBlur={(e) => {\n setTouched(true);\n onBlur?.(e);\n }}\n className={cn(\"min-h-11 rtl:text-end\", errorClasses(shown))}\n />\n </div>\n </div>\n\n {description && (\n <p id={descriptionId} className=\"text-xs text-zinc-700 dark:text-zinc-300\">\n {description}\n </p>\n )}\n {shown && (\n <p\n id={errorId}\n data-react-fancy-phone-input-error=\"\"\n data-reason={error ? \"\" : (reason ?? \"\")}\n aria-live=\"polite\"\n className=\"text-xs font-medium text-red-800 dark:text-red-300\"\n >\n {shown}\n </p>\n )}\n\n {/* What a native submit posts: the E.164, never the half-typed text. */}\n {name ? (\n <input type=\"hidden\" name={name} form={form} disabled={disabled} value={current ?? \"\"} />\n ) : null}\n\n {open && (\n <Portal>\n <div\n ref={popupRef}\n dir={popupDir}\n data-react-fancy-phone-input-popup=\"\"\n className=\"fixed z-50 flex min-w-[16rem] flex-col gap-1 rounded-xl border border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] p-1 shadow-lg dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:shadow-zinc-950/50 fancy-scale-in\"\n style={{ left: position.x, top: position.y, width: rowRef.current?.offsetWidth }}\n >\n <input\n data-react-fancy-phone-input-search=\"\"\n type=\"text\"\n role=\"combobox\"\n autoFocus\n autoComplete=\"off\"\n spellCheck={false}\n aria-label={msg.search}\n aria-expanded=\"true\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-activedescendant={active ? optionId(active.code) : undefined}\n value={query}\n onChange={(e) => {\n setQuery(e.target.value);\n setActiveIndex(-1);\n }}\n onKeyDown={onSearchKeyDown}\n className={cn(inputBaseClasses, \"min-h-11 w-full rounded-lg px-3 text-sm\")}\n />\n <ul\n id={listId}\n role=\"listbox\"\n aria-label={msg.country}\n data-react-fancy-phone-input-listbox=\"\"\n className=\"max-h-72 overflow-y-auto\"\n >\n {filtered.map((c, i) => (\n <li\n key={c.code}\n id={optionId(c.code)}\n role=\"option\"\n aria-selected={c.code === selected?.code}\n data-react-fancy-phone-input-option={c.code}\n data-active={i === activeIndex ? \"true\" : undefined}\n ref={i === activeIndex ? (el) => el?.scrollIntoView?.({ block: \"nearest\" }) : undefined}\n // Keep focus in the search box, so the list stays one tab stop.\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => pick(c.code)}\n className={cn(\n \"flex min-h-11 cursor-pointer items-center gap-2 rounded-lg px-3 text-start text-sm text-zinc-900 dark:text-zinc-100\",\n i === activeIndex\n ? \"bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] dark:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))]\"\n : \"hover:bg-[color:var(--fancy-surface-hover,var(--color-zinc-50))] dark:hover:bg-[color:var(--fancy-surface-hover-dark,color-mix(in_oklab,var(--color-zinc-800)_50%,transparent))]\",\n c.code === selected?.code && \"font-semibold\",\n )}\n >\n <span aria-hidden=\"true\" className=\"text-base leading-none\">\n {flagOf(c.code)}\n </span>\n <span className=\"min-w-0 flex-1 truncate\">{c.name}</span>\n <span dir=\"ltr\" className=\"shrink-0 tabular-nums text-zinc-700 dark:text-zinc-300\">\n {`+${c.dialCode}`}\n </span>\n </li>\n ))}\n </ul>\n {filtered.length === 0 && (\n <p role=\"status\" className=\"px-3 py-2 text-sm text-zinc-700 dark:text-zinc-300\">\n {msg.noResults}\n </p>\n )}\n </div>\n </Portal>\n )}\n </div>\n );\n});\n\nPhoneInput.displayName = \"PhoneInput\";\n\n/** Whether the text starts an international number (`+` or `00`), ignoring separators. */\nfunction isInternational(text: string): boolean {\n let zeros = 0;\n for (const ch of text) {\n if (ch === \"+\" || ch === \"+\") return zeros === 0;\n if (ch === \"0\") {\n zeros++;\n if (zeros === 2) return true;\n continue;\n }\n if (ch === \" \" || ch === \"(\" || ch === \"-\" || ch === \".\") continue;\n return false;\n }\n return false;\n}\n"]}