@particle-academy/react-fancy 6.8.0 → 6.10.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 (583) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +1 -0
  3. package/dist/{Card-CuRZivBz.d.cts → Card-D0sp2T1V.d.cts} +6 -1
  4. package/dist/{Card-CuRZivBz.d.ts → Card-D0sp2T1V.d.ts} +6 -1
  5. package/dist/accordion-panel.cjs +7 -7
  6. package/dist/accordion-panel.js +1 -1
  7. package/dist/accordion.cjs +3 -3
  8. package/dist/accordion.js +1 -1
  9. package/dist/autocomplete.cjs +4 -3
  10. package/dist/autocomplete.js +3 -2
  11. package/dist/avatar.cjs +2 -2
  12. package/dist/avatar.js +1 -1
  13. package/dist/breadcrumbs.cjs +2 -2
  14. package/dist/breadcrumbs.js +1 -1
  15. package/dist/button.cjs +3 -3
  16. package/dist/button.d.cts +1 -1
  17. package/dist/button.d.ts +1 -1
  18. package/dist/button.js +1 -1
  19. package/dist/calendar.cjs +2 -2
  20. package/dist/calendar.js +1 -1
  21. package/dist/callout.cjs +2 -2
  22. package/dist/callout.js +1 -1
  23. package/dist/card.cjs +7 -7
  24. package/dist/card.d.cts +2 -2
  25. package/dist/card.d.ts +2 -2
  26. package/dist/card.js +1 -1
  27. package/dist/carousel.cjs +7 -7
  28. package/dist/carousel.js +1 -1
  29. package/dist/chart.cjs +2 -2
  30. package/dist/chart.js +1 -1
  31. package/dist/chat-drawer.cjs +2 -2
  32. package/dist/chat-drawer.js +1 -1
  33. package/dist/chat-thread.cjs +7 -7
  34. package/dist/chat-thread.js +5 -5
  35. package/dist/checkbox-group.cjs +5 -5
  36. package/dist/checkbox-group.js +4 -4
  37. package/dist/checkbox.cjs +3 -3
  38. package/dist/checkbox.js +2 -2
  39. package/dist/{chunk-6GVOW3UL.js → chunk-24RWB7Q3.js} +12 -11
  40. package/dist/chunk-24RWB7Q3.js.map +1 -0
  41. package/dist/{chunk-B4YV2V7G.cjs → chunk-2DX3PNXU.cjs} +3 -3
  42. package/dist/{chunk-B4YV2V7G.cjs.map → chunk-2DX3PNXU.cjs.map} +1 -1
  43. package/dist/{chunk-KPRSRWNM.js → chunk-2I7VNCBZ.js} +3 -3
  44. package/dist/{chunk-KPRSRWNM.js.map → chunk-2I7VNCBZ.js.map} +1 -1
  45. package/dist/{chunk-WMANILKC.cjs → chunk-2UYQ34RJ.cjs} +7 -7
  46. package/dist/chunk-2UYQ34RJ.cjs.map +1 -0
  47. package/dist/chunk-36IC3NDN.cjs +21 -0
  48. package/dist/chunk-36IC3NDN.cjs.map +1 -0
  49. package/dist/{chunk-LFC2DL6H.cjs → chunk-3BBEVHSP.cjs} +14 -9
  50. package/dist/chunk-3BBEVHSP.cjs.map +1 -0
  51. package/dist/{chunk-2O5UXH5R.cjs → chunk-3EZ6UPXS.cjs} +10 -10
  52. package/dist/chunk-3EZ6UPXS.cjs.map +1 -0
  53. package/dist/{chunk-37D5PYEF.js → chunk-3O3ZWWLG.js} +17 -4
  54. package/dist/chunk-3O3ZWWLG.js.map +1 -0
  55. package/dist/{chunk-5TP642UT.js → chunk-3W6BKQVZ.js} +12 -11
  56. package/dist/chunk-3W6BKQVZ.js.map +1 -0
  57. package/dist/{chunk-5PHPJL7Z.js → chunk-4EQ336PQ.js} +4 -4
  58. package/dist/{chunk-5PHPJL7Z.js.map → chunk-4EQ336PQ.js.map} +1 -1
  59. package/dist/{chunk-EENHSMV2.js → chunk-4L3MGQAR.js} +6 -6
  60. package/dist/{chunk-EENHSMV2.js.map → chunk-4L3MGQAR.js.map} +1 -1
  61. package/dist/{chunk-QGY5FPVM.js → chunk-54NB3T3Q.js} +6 -4
  62. package/dist/chunk-54NB3T3Q.js.map +1 -0
  63. package/dist/{chunk-FRWOWDGX.js → chunk-5FA6V7JF.js} +3 -3
  64. package/dist/{chunk-FRWOWDGX.js.map → chunk-5FA6V7JF.js.map} +1 -1
  65. package/dist/{chunk-UUEAFG6V.js → chunk-5NJF7SQX.js} +6 -6
  66. package/dist/{chunk-UUEAFG6V.js.map → chunk-5NJF7SQX.js.map} +1 -1
  67. package/dist/{chunk-ZGDOWJKL.cjs → chunk-5NTFXQ4K.cjs} +6 -6
  68. package/dist/{chunk-ZGDOWJKL.cjs.map → chunk-5NTFXQ4K.cjs.map} +1 -1
  69. package/dist/{chunk-CQ7QXZLR.cjs → chunk-5SVZX6WF.cjs} +4 -4
  70. package/dist/chunk-5SVZX6WF.cjs.map +1 -0
  71. package/dist/{chunk-JY7HPFOE.cjs → chunk-6B2GMKE4.cjs} +5 -5
  72. package/dist/{chunk-JY7HPFOE.cjs.map → chunk-6B2GMKE4.cjs.map} +1 -1
  73. package/dist/{chunk-OASSZI6M.cjs → chunk-6B43ARGW.cjs} +5 -4
  74. package/dist/chunk-6B43ARGW.cjs.map +1 -0
  75. package/dist/{chunk-CVDL6C2O.cjs → chunk-6EPM5JG7.cjs} +3 -3
  76. package/dist/{chunk-CVDL6C2O.cjs.map → chunk-6EPM5JG7.cjs.map} +1 -1
  77. package/dist/{chunk-FVQO75KY.cjs → chunk-6GOPFKGC.cjs} +10 -4
  78. package/dist/chunk-6GOPFKGC.cjs.map +1 -0
  79. package/dist/{chunk-TLRFXSPA.cjs → chunk-73REG7KM.cjs} +13 -13
  80. package/dist/{chunk-TLRFXSPA.cjs.map → chunk-73REG7KM.cjs.map} +1 -1
  81. package/dist/{chunk-MI57NAKF.js → chunk-7B3Z4NVM.js} +6 -5
  82. package/dist/chunk-7B3Z4NVM.js.map +1 -0
  83. package/dist/{chunk-J2BWXCES.js → chunk-7GRIO5AZ.js} +3 -3
  84. package/dist/{chunk-J2BWXCES.js.map → chunk-7GRIO5AZ.js.map} +1 -1
  85. package/dist/{chunk-V5JTTLJP.cjs → chunk-7K2C744H.cjs} +3 -3
  86. package/dist/{chunk-V5JTTLJP.cjs.map → chunk-7K2C744H.cjs.map} +1 -1
  87. package/dist/{chunk-I2VAGZXY.cjs → chunk-7N7XVBH7.cjs} +11 -11
  88. package/dist/{chunk-I2VAGZXY.cjs.map → chunk-7N7XVBH7.cjs.map} +1 -1
  89. package/dist/{chunk-AJPYGRLA.cjs → chunk-7NRG77U5.cjs} +12 -4
  90. package/dist/chunk-7NRG77U5.cjs.map +1 -0
  91. package/dist/{chunk-GDF6XTHC.js → chunk-7OUBFO4D.js} +7 -5
  92. package/dist/chunk-7OUBFO4D.js.map +1 -0
  93. package/dist/{chunk-6H7ZN23X.cjs → chunk-7PK3OUKR.cjs} +6 -6
  94. package/dist/{chunk-6H7ZN23X.cjs.map → chunk-7PK3OUKR.cjs.map} +1 -1
  95. package/dist/{chunk-EUVWYDFN.js → chunk-AE6ICNJR.js} +14 -9
  96. package/dist/chunk-AE6ICNJR.js.map +1 -0
  97. package/dist/{chunk-YJXP6AOL.cjs → chunk-AF33UCTN.cjs} +4 -4
  98. package/dist/{chunk-YJXP6AOL.cjs.map → chunk-AF33UCTN.cjs.map} +1 -1
  99. package/dist/{chunk-PM5I5ZHK.cjs → chunk-AFFR7HHZ.cjs} +8 -7
  100. package/dist/chunk-AFFR7HHZ.cjs.map +1 -0
  101. package/dist/{chunk-F4OYQ2XZ.js → chunk-AR5DLM4K.js} +9 -6
  102. package/dist/chunk-AR5DLM4K.js.map +1 -0
  103. package/dist/{chunk-DJB3N4G3.cjs → chunk-AVGZ4PPC.cjs} +9 -9
  104. package/dist/{chunk-DJB3N4G3.cjs.map → chunk-AVGZ4PPC.cjs.map} +1 -1
  105. package/dist/{chunk-RANTYGKW.js → chunk-AXW55PQG.js} +3 -3
  106. package/dist/chunk-AXW55PQG.js.map +1 -0
  107. package/dist/{chunk-NSJBVV7R.js → chunk-BPTCMI3E.js} +21 -10
  108. package/dist/chunk-BPTCMI3E.js.map +1 -0
  109. package/dist/{chunk-25HRO7HQ.cjs → chunk-BYMOPR7P.cjs} +7 -7
  110. package/dist/chunk-BYMOPR7P.cjs.map +1 -0
  111. package/dist/{chunk-RWU2MFUL.js → chunk-C2VGO375.js} +5 -4
  112. package/dist/chunk-C2VGO375.js.map +1 -0
  113. package/dist/{chunk-FKZB27OM.cjs → chunk-C6EVRWXZ.cjs} +11 -8
  114. package/dist/chunk-C6EVRWXZ.cjs.map +1 -0
  115. package/dist/{chunk-GTS3QA7M.js → chunk-CO2NEUFK.js} +5 -5
  116. package/dist/chunk-CO2NEUFK.js.map +1 -0
  117. package/dist/{chunk-ESCIXKFT.js → chunk-D6NISIKV.js} +17 -7
  118. package/dist/chunk-D6NISIKV.js.map +1 -0
  119. package/dist/{chunk-MRZXTL46.cjs → chunk-DFROB5TW.cjs} +20 -20
  120. package/dist/{chunk-MRZXTL46.cjs.map → chunk-DFROB5TW.cjs.map} +1 -1
  121. package/dist/{chunk-KFA7B6WP.cjs → chunk-DPPDZOMY.cjs} +17 -7
  122. package/dist/chunk-DPPDZOMY.cjs.map +1 -0
  123. package/dist/{chunk-KOTUFZJ6.cjs → chunk-DQWAG7YY.cjs} +14 -11
  124. package/dist/chunk-DQWAG7YY.cjs.map +1 -0
  125. package/dist/{chunk-5WQ6FPSP.js → chunk-E2AEU5SP.js} +4 -4
  126. package/dist/{chunk-5WQ6FPSP.js.map → chunk-E2AEU5SP.js.map} +1 -1
  127. package/dist/{chunk-3QCAOD2W.cjs → chunk-EC4ZYZNK.cjs} +3 -3
  128. package/dist/{chunk-3QCAOD2W.cjs.map → chunk-EC4ZYZNK.cjs.map} +1 -1
  129. package/dist/{chunk-XBFTO64U.cjs → chunk-EDIB6V6Y.cjs} +4 -4
  130. package/dist/{chunk-XBFTO64U.cjs.map → chunk-EDIB6V6Y.cjs.map} +1 -1
  131. package/dist/{chunk-KXYMMNNV.js → chunk-EDIX6EXQ.js} +20 -20
  132. package/dist/{chunk-KXYMMNNV.js.map → chunk-EDIX6EXQ.js.map} +1 -1
  133. package/dist/{chunk-HNJXBMHI.cjs → chunk-EEFU5BVM.cjs} +40 -39
  134. package/dist/chunk-EEFU5BVM.cjs.map +1 -0
  135. package/dist/{chunk-KOAMRCSC.cjs → chunk-ETUDUDSL.cjs} +14 -11
  136. package/dist/chunk-ETUDUDSL.cjs.map +1 -0
  137. package/dist/{chunk-PJNUGSKI.js → chunk-EW2N52FD.js} +26 -25
  138. package/dist/chunk-EW2N52FD.js.map +1 -0
  139. package/dist/{chunk-6PRXG7L6.js → chunk-FECD3WKN.js} +4 -4
  140. package/dist/{chunk-6PRXG7L6.js.map → chunk-FECD3WKN.js.map} +1 -1
  141. package/dist/{chunk-CNWTYRZC.cjs → chunk-FF5G3E76.cjs} +4 -4
  142. package/dist/{chunk-CNWTYRZC.cjs.map → chunk-FF5G3E76.cjs.map} +1 -1
  143. package/dist/{chunk-WNWEC5OU.cjs → chunk-FKHYJ5IC.cjs} +3 -3
  144. package/dist/{chunk-WNWEC5OU.cjs.map → chunk-FKHYJ5IC.cjs.map} +1 -1
  145. package/dist/{chunk-QTS4Q2NK.js → chunk-FNHKZMMI.js} +4 -3
  146. package/dist/chunk-FNHKZMMI.js.map +1 -0
  147. package/dist/{chunk-QP6VNKLW.cjs → chunk-FNPII6TF.cjs} +9 -5
  148. package/dist/chunk-FNPII6TF.cjs.map +1 -0
  149. package/dist/{chunk-HLI6RB5V.cjs → chunk-FR3V5IAJ.cjs} +32 -31
  150. package/dist/chunk-FR3V5IAJ.cjs.map +1 -0
  151. package/dist/{chunk-EQ7G5F6K.js → chunk-FRUHEDZN.js} +3 -3
  152. package/dist/{chunk-EQ7G5F6K.js.map → chunk-FRUHEDZN.js.map} +1 -1
  153. package/dist/{chunk-BYO5RUDE.cjs → chunk-FSLEFL4U.cjs} +6 -5
  154. package/dist/chunk-FSLEFL4U.cjs.map +1 -0
  155. package/dist/{chunk-JY2RC6I4.js → chunk-FX37P4KR.js} +13 -10
  156. package/dist/chunk-FX37P4KR.js.map +1 -0
  157. package/dist/{chunk-BJL3VDRK.cjs → chunk-FY2WDVKF.cjs} +3 -3
  158. package/dist/{chunk-BJL3VDRK.cjs.map → chunk-FY2WDVKF.cjs.map} +1 -1
  159. package/dist/{chunk-SKMORSBO.cjs → chunk-FZQWFDUV.cjs} +5 -5
  160. package/dist/chunk-FZQWFDUV.cjs.map +1 -0
  161. package/dist/{chunk-4DL2U23D.cjs → chunk-GE2ZGE3A.cjs} +21 -13
  162. package/dist/chunk-GE2ZGE3A.cjs.map +1 -0
  163. package/dist/{chunk-THMFLRDW.cjs → chunk-GE6TSA3M.cjs} +17 -17
  164. package/dist/{chunk-THMFLRDW.cjs.map → chunk-GE6TSA3M.cjs.map} +1 -1
  165. package/dist/{chunk-PIG3UTHU.js → chunk-GZSRKBYI.js} +3 -3
  166. package/dist/{chunk-PIG3UTHU.js.map → chunk-GZSRKBYI.js.map} +1 -1
  167. package/dist/{chunk-BXPLERIJ.js → chunk-H5LJFN7D.js} +5 -4
  168. package/dist/chunk-H5LJFN7D.js.map +1 -0
  169. package/dist/{chunk-FR4RHVPR.js → chunk-H7IQVCTX.js} +6 -4
  170. package/dist/chunk-H7IQVCTX.js.map +1 -0
  171. package/dist/{chunk-LY3RQB3H.js → chunk-HCIEXBEB.js} +3 -3
  172. package/dist/{chunk-LY3RQB3H.js.map → chunk-HCIEXBEB.js.map} +1 -1
  173. package/dist/{chunk-XZOBGKZL.cjs → chunk-HEGM5LMZ.cjs} +6 -5
  174. package/dist/chunk-HEGM5LMZ.cjs.map +1 -0
  175. package/dist/{chunk-K5MQZTDW.cjs → chunk-HKLBCA5X.cjs} +4 -4
  176. package/dist/{chunk-K5MQZTDW.cjs.map → chunk-HKLBCA5X.cjs.map} +1 -1
  177. package/dist/{chunk-5QKQXM5V.cjs → chunk-HYU46SOE.cjs} +5 -5
  178. package/dist/{chunk-5QKQXM5V.cjs.map → chunk-HYU46SOE.cjs.map} +1 -1
  179. package/dist/{chunk-X2A3NAJW.js → chunk-I65KXHYL.js} +4 -4
  180. package/dist/chunk-I65KXHYL.js.map +1 -0
  181. package/dist/{chunk-USWQAMI3.js → chunk-IF6EITB5.js} +3 -3
  182. package/dist/{chunk-USWQAMI3.js.map → chunk-IF6EITB5.js.map} +1 -1
  183. package/dist/{chunk-DXZCKDYS.js → chunk-IG2UDCBA.js} +9 -9
  184. package/dist/chunk-IG2UDCBA.js.map +1 -0
  185. package/dist/{chunk-YQZB5Z7C.cjs → chunk-INC35VEE.cjs} +3 -2
  186. package/dist/chunk-INC35VEE.cjs.map +1 -0
  187. package/dist/{chunk-AQ4DZT4Y.cjs → chunk-ISAHWGMD.cjs} +6 -6
  188. package/dist/{chunk-AQ4DZT4Y.cjs.map → chunk-ISAHWGMD.cjs.map} +1 -1
  189. package/dist/{chunk-GDH43QH6.js → chunk-J57JSHDC.js} +6 -6
  190. package/dist/{chunk-GDH43QH6.js.map → chunk-J57JSHDC.js.map} +1 -1
  191. package/dist/{chunk-Z4UXLQSK.cjs → chunk-JDFJK5GO.cjs} +16 -16
  192. package/dist/chunk-JDFJK5GO.cjs.map +1 -0
  193. package/dist/{chunk-GSMD5NK5.js → chunk-JN5DHZ6I.js} +7 -7
  194. package/dist/{chunk-GSMD5NK5.js.map → chunk-JN5DHZ6I.js.map} +1 -1
  195. package/dist/{chunk-MAZEX4EZ.cjs → chunk-JQIFCWNZ.cjs} +13 -13
  196. package/dist/{chunk-MAZEX4EZ.cjs.map → chunk-JQIFCWNZ.cjs.map} +1 -1
  197. package/dist/{chunk-DJYG7DXS.js → chunk-KDRBUF5S.js} +4 -4
  198. package/dist/chunk-KDRBUF5S.js.map +1 -0
  199. package/dist/{chunk-ZVDW2VX5.cjs → chunk-KGSL6SVX.cjs} +3 -3
  200. package/dist/chunk-KGSL6SVX.cjs.map +1 -0
  201. package/dist/{chunk-YAPGHVBZ.js → chunk-KRECSPD3.js} +4 -4
  202. package/dist/{chunk-YAPGHVBZ.js.map → chunk-KRECSPD3.js.map} +1 -1
  203. package/dist/{chunk-UE3QO7R3.js → chunk-LAQT5FFV.js} +3 -3
  204. package/dist/{chunk-UE3QO7R3.js.map → chunk-LAQT5FFV.js.map} +1 -1
  205. package/dist/{chunk-YH75G6SP.cjs → chunk-LHHELLMT.cjs} +3 -3
  206. package/dist/{chunk-YH75G6SP.cjs.map → chunk-LHHELLMT.cjs.map} +1 -1
  207. package/dist/chunk-LJCQI6ZS.js +1212 -0
  208. package/dist/chunk-LJCQI6ZS.js.map +1 -0
  209. package/dist/{chunk-UK6BGM74.cjs → chunk-LREJ7AV2.cjs} +17 -4
  210. package/dist/chunk-LREJ7AV2.cjs.map +1 -0
  211. package/dist/{chunk-Y3QAEF2P.cjs → chunk-LVNCNMKD.cjs} +9 -7
  212. package/dist/chunk-LVNCNMKD.cjs.map +1 -0
  213. package/dist/{chunk-UZCR7DK5.js → chunk-LXEOBSEZ.js} +3 -3
  214. package/dist/{chunk-UZCR7DK5.js.map → chunk-LXEOBSEZ.js.map} +1 -1
  215. package/dist/{chunk-MKGWHSNV.cjs → chunk-MAY4NMRI.cjs} +5 -4
  216. package/dist/chunk-MAY4NMRI.cjs.map +1 -0
  217. package/dist/{chunk-PDVU2PXR.js → chunk-MD7HUHJB.js} +10 -10
  218. package/dist/chunk-MD7HUHJB.js.map +1 -0
  219. package/dist/{chunk-CEFK54WP.cjs → chunk-MDAI54AG.cjs} +7 -5
  220. package/dist/chunk-MDAI54AG.cjs.map +1 -0
  221. package/dist/{chunk-WE5WGVVX.js → chunk-MKDTXMCE.js} +3 -3
  222. package/dist/{chunk-WE5WGVVX.js.map → chunk-MKDTXMCE.js.map} +1 -1
  223. package/dist/{chunk-SXXDTW7S.js → chunk-NETUI353.js} +10 -4
  224. package/dist/chunk-NETUI353.js.map +1 -0
  225. package/dist/{chunk-XHUV3VSM.cjs → chunk-NIFHAFKK.cjs} +3 -3
  226. package/dist/{chunk-XHUV3VSM.cjs.map → chunk-NIFHAFKK.cjs.map} +1 -1
  227. package/dist/{chunk-LKN7FYW6.js → chunk-NW2LQRUP.js} +4 -4
  228. package/dist/chunk-NW2LQRUP.js.map +1 -0
  229. package/dist/{chunk-ONHT2PDW.cjs → chunk-NWP5EGSR.cjs} +3 -3
  230. package/dist/{chunk-ONHT2PDW.cjs.map → chunk-NWP5EGSR.cjs.map} +1 -1
  231. package/dist/{chunk-RSLZL6VP.js → chunk-OBA2LR4I.js} +3 -3
  232. package/dist/chunk-OBA2LR4I.js.map +1 -0
  233. package/dist/{chunk-GR2WKBER.js → chunk-OE4AIUAN.js} +4 -3
  234. package/dist/chunk-OE4AIUAN.js.map +1 -0
  235. package/dist/chunk-OP7A4SZZ.cjs +1216 -0
  236. package/dist/chunk-OP7A4SZZ.cjs.map +1 -0
  237. package/dist/{chunk-Z44A7NPD.cjs → chunk-OUPHLIXV.cjs} +40 -39
  238. package/dist/chunk-OUPHLIXV.cjs.map +1 -0
  239. package/dist/{chunk-VSTUGU7W.js → chunk-PIYQPXLT.js} +8 -8
  240. package/dist/{chunk-VSTUGU7W.js.map → chunk-PIYQPXLT.js.map} +1 -1
  241. package/dist/{chunk-WX5XYDVN.js → chunk-PZTFGPQJ.js} +3 -3
  242. package/dist/{chunk-WX5XYDVN.js.map → chunk-PZTFGPQJ.js.map} +1 -1
  243. package/dist/{chunk-4GPH7HOR.js → chunk-Q4CNEHVN.js} +3 -3
  244. package/dist/{chunk-4GPH7HOR.js.map → chunk-Q4CNEHVN.js.map} +1 -1
  245. package/dist/{chunk-QF7CD4JH.cjs → chunk-Q7XL37T3.cjs} +5 -5
  246. package/dist/{chunk-QF7CD4JH.cjs.map → chunk-Q7XL37T3.cjs.map} +1 -1
  247. package/dist/{chunk-BLOX7MRO.js → chunk-QE7KXMUZ.js} +3 -3
  248. package/dist/{chunk-BLOX7MRO.js.map → chunk-QE7KXMUZ.js.map} +1 -1
  249. package/dist/{chunk-ZPBKRJMH.js → chunk-QEJBMXRQ.js} +7 -7
  250. package/dist/chunk-QEJBMXRQ.js.map +1 -0
  251. package/dist/{chunk-PCNJJVTF.cjs → chunk-QMZK7SRS.cjs} +3 -3
  252. package/dist/chunk-QMZK7SRS.cjs.map +1 -0
  253. package/dist/{chunk-J2DI6RMR.cjs → chunk-QQKWI7QP.cjs} +19 -12
  254. package/dist/chunk-QQKWI7QP.cjs.map +1 -0
  255. package/dist/{chunk-TFX4LL7V.js → chunk-QSRYTWQN.js} +3 -2
  256. package/dist/chunk-QSRYTWQN.js.map +1 -0
  257. package/dist/{chunk-Z7SQMQTF.cjs → chunk-QU6HZH6V.cjs} +21 -10
  258. package/dist/chunk-QU6HZH6V.cjs.map +1 -0
  259. package/dist/{chunk-WGRLNXNB.js → chunk-R3PCZSBQ.js} +3 -3
  260. package/dist/{chunk-WGRLNXNB.js.map → chunk-R3PCZSBQ.js.map} +1 -1
  261. package/dist/{chunk-VZTXUYPM.cjs → chunk-R4SANV3G.cjs} +20 -20
  262. package/dist/chunk-R4SANV3G.cjs.map +1 -0
  263. package/dist/{chunk-EZZKHMR4.js → chunk-R6O6SLXK.js} +3 -3
  264. package/dist/{chunk-EZZKHMR4.js.map → chunk-R6O6SLXK.js.map} +1 -1
  265. package/dist/{chunk-5EW47IH7.js → chunk-RCTPN5QK.js} +9 -7
  266. package/dist/chunk-RCTPN5QK.js.map +1 -0
  267. package/dist/{chunk-JSD6IEBW.js → chunk-RFTDMQ56.js} +3 -3
  268. package/dist/{chunk-JSD6IEBW.js.map → chunk-RFTDMQ56.js.map} +1 -1
  269. package/dist/{chunk-MQ6VGG62.js → chunk-RUEDMYBF.js} +19 -12
  270. package/dist/chunk-RUEDMYBF.js.map +1 -0
  271. package/dist/{chunk-2G6TIX5Q.cjs → chunk-RVBA4LEB.cjs} +13 -13
  272. package/dist/{chunk-2G6TIX5Q.cjs.map → chunk-RVBA4LEB.cjs.map} +1 -1
  273. package/dist/{chunk-UVUBV4VZ.js → chunk-S2ID4NNQ.js} +6 -6
  274. package/dist/{chunk-UVUBV4VZ.js.map → chunk-S2ID4NNQ.js.map} +1 -1
  275. package/dist/{chunk-TMQF2CRN.js → chunk-S4JQPOBR.js} +7 -7
  276. package/dist/chunk-S4JQPOBR.js.map +1 -0
  277. package/dist/{chunk-ETNQ4AEQ.cjs → chunk-S6TVSQDT.cjs} +5 -5
  278. package/dist/{chunk-ETNQ4AEQ.cjs.map → chunk-S6TVSQDT.cjs.map} +1 -1
  279. package/dist/{chunk-SSCW67KA.cjs → chunk-SD6YAMDH.cjs} +4 -4
  280. package/dist/chunk-SD6YAMDH.cjs.map +1 -0
  281. package/dist/{chunk-MLZGGAXQ.js → chunk-SOIGBPK6.js} +21 -13
  282. package/dist/chunk-SOIGBPK6.js.map +1 -0
  283. package/dist/{chunk-KKYILQTG.cjs → chunk-TBLKVTJC.cjs} +7 -7
  284. package/dist/{chunk-KKYILQTG.cjs.map → chunk-TBLKVTJC.cjs.map} +1 -1
  285. package/dist/{chunk-7QENPLOP.cjs → chunk-TQDZZIOW.cjs} +5 -5
  286. package/dist/{chunk-7QENPLOP.cjs.map → chunk-TQDZZIOW.cjs.map} +1 -1
  287. package/dist/{chunk-MPCZUZ4O.cjs → chunk-U4KUW3RK.cjs} +19 -15
  288. package/dist/chunk-U4KUW3RK.cjs.map +1 -0
  289. package/dist/{chunk-AZQXPI5S.js → chunk-UBLMYH6C.js} +3 -3
  290. package/dist/{chunk-AZQXPI5S.js.map → chunk-UBLMYH6C.js.map} +1 -1
  291. package/dist/{chunk-P53432AK.cjs → chunk-UIBAIWUR.cjs} +4 -4
  292. package/dist/{chunk-P53432AK.cjs.map → chunk-UIBAIWUR.cjs.map} +1 -1
  293. package/dist/{chunk-UXYFM2XT.cjs → chunk-UQABXIQV.cjs} +6 -4
  294. package/dist/chunk-UQABXIQV.cjs.map +1 -0
  295. package/dist/chunk-US5R36TQ.js +17 -0
  296. package/dist/chunk-US5R36TQ.js.map +1 -0
  297. package/dist/{chunk-CS2ZYMYP.js → chunk-UZZJJ3HJ.js} +3 -3
  298. package/dist/{chunk-CS2ZYMYP.js.map → chunk-UZZJJ3HJ.js.map} +1 -1
  299. package/dist/{chunk-Y7RGUUTS.cjs → chunk-V3EKI3VV.cjs} +3 -3
  300. package/dist/{chunk-Y7RGUUTS.cjs.map → chunk-V3EKI3VV.cjs.map} +1 -1
  301. package/dist/{chunk-U4Y7ZXME.js → chunk-V64XIPYG.js} +6 -6
  302. package/dist/{chunk-U4Y7ZXME.js.map → chunk-V64XIPYG.js.map} +1 -1
  303. package/dist/{chunk-LIVC3WUU.cjs → chunk-VH34IZ7R.cjs} +3 -3
  304. package/dist/{chunk-LIVC3WUU.cjs.map → chunk-VH34IZ7R.cjs.map} +1 -1
  305. package/dist/{chunk-WNUAGRQN.cjs → chunk-VOAC5OKY.cjs} +4 -4
  306. package/dist/chunk-VOAC5OKY.cjs.map +1 -0
  307. package/dist/{chunk-H7ELUIF6.cjs → chunk-W53SZTPX.cjs} +10 -10
  308. package/dist/{chunk-H7ELUIF6.cjs.map → chunk-W53SZTPX.cjs.map} +1 -1
  309. package/dist/{chunk-4FH2JHUY.js → chunk-WAEOIEDI.js} +5 -5
  310. package/dist/{chunk-4FH2JHUY.js.map → chunk-WAEOIEDI.js.map} +1 -1
  311. package/dist/{chunk-ICMLLZKZ.js → chunk-WJE7UX2G.js} +4 -4
  312. package/dist/{chunk-ICMLLZKZ.js.map → chunk-WJE7UX2G.js.map} +1 -1
  313. package/dist/{chunk-DTOIO42M.js → chunk-WLRKE4HC.js} +9 -5
  314. package/dist/chunk-WLRKE4HC.js.map +1 -0
  315. package/dist/{chunk-7ZCNZUZK.cjs → chunk-WOURDD4U.cjs} +4 -4
  316. package/dist/{chunk-7ZCNZUZK.cjs.map → chunk-WOURDD4U.cjs.map} +1 -1
  317. package/dist/{chunk-OTM7RL2L.js → chunk-WSU36HJM.js} +4 -4
  318. package/dist/{chunk-OTM7RL2L.js.map → chunk-WSU36HJM.js.map} +1 -1
  319. package/dist/{chunk-TAYJSIOP.js → chunk-X4NXS42J.js} +5 -5
  320. package/dist/{chunk-TAYJSIOP.js.map → chunk-X4NXS42J.js.map} +1 -1
  321. package/dist/{chunk-2UTN3EFK.js → chunk-XALAQZCD.js} +5 -5
  322. package/dist/{chunk-2UTN3EFK.js.map → chunk-XALAQZCD.js.map} +1 -1
  323. package/dist/{chunk-RZUYCZ5D.cjs → chunk-XCFBMHQD.cjs} +6 -4
  324. package/dist/chunk-XCFBMHQD.cjs.map +1 -0
  325. package/dist/{chunk-NZHVDWOM.cjs → chunk-XEI5JG7C.cjs} +3 -3
  326. package/dist/{chunk-NZHVDWOM.cjs.map → chunk-XEI5JG7C.cjs.map} +1 -1
  327. package/dist/{chunk-O3F6DYWR.cjs → chunk-XG6J5MOK.cjs} +3 -3
  328. package/dist/{chunk-O3F6DYWR.cjs.map → chunk-XG6J5MOK.cjs.map} +1 -1
  329. package/dist/{chunk-GVMWJ4NI.js → chunk-XH24BGEK.js} +6 -6
  330. package/dist/{chunk-GVMWJ4NI.js.map → chunk-XH24BGEK.js.map} +1 -1
  331. package/dist/{chunk-3S5ED522.js → chunk-XO4GHRA2.js} +11 -8
  332. package/dist/chunk-XO4GHRA2.js.map +1 -0
  333. package/dist/{chunk-O5ORO2RX.cjs → chunk-XQF4HCOV.cjs} +13 -11
  334. package/dist/chunk-XQF4HCOV.cjs.map +1 -0
  335. package/dist/{chunk-IUCYRQ4J.js → chunk-YPYZZLZ5.js} +5 -5
  336. package/dist/{chunk-IUCYRQ4J.js.map → chunk-YPYZZLZ5.js.map} +1 -1
  337. package/dist/{chunk-NVXTHTJI.js → chunk-YTWMIVRI.js} +10 -10
  338. package/dist/chunk-YTWMIVRI.js.map +1 -0
  339. package/dist/{chunk-WZAKEJDL.js → chunk-YZW7HQXH.js} +13 -11
  340. package/dist/chunk-YZW7HQXH.js.map +1 -0
  341. package/dist/{chunk-AYBKPAI2.cjs → chunk-Z5MNYYUJ.cjs} +3 -3
  342. package/dist/{chunk-AYBKPAI2.cjs.map → chunk-Z5MNYYUJ.cjs.map} +1 -1
  343. package/dist/{chunk-GOE36IXL.js → chunk-Z6M3UELD.js} +3 -3
  344. package/dist/{chunk-GOE36IXL.js.map → chunk-Z6M3UELD.js.map} +1 -1
  345. package/dist/{chunk-PXZRYL5I.js → chunk-ZBXJDQXN.js} +12 -4
  346. package/dist/chunk-ZBXJDQXN.js.map +1 -0
  347. package/dist/{chunk-M5SEYDSS.cjs → chunk-ZDHLEHYR.cjs} +6 -6
  348. package/dist/{chunk-M5SEYDSS.cjs.map → chunk-ZDHLEHYR.cjs.map} +1 -1
  349. package/dist/{chunk-NPSKZ7ZB.cjs → chunk-ZFXCZ2QO.cjs} +12 -12
  350. package/dist/{chunk-NPSKZ7ZB.cjs.map → chunk-ZFXCZ2QO.cjs.map} +1 -1
  351. package/dist/{chunk-SCGTO3PX.js → chunk-ZHTK4IPQ.js} +3 -3
  352. package/dist/{chunk-SCGTO3PX.js.map → chunk-ZHTK4IPQ.js.map} +1 -1
  353. package/dist/{chunk-QF2FODTG.js → chunk-ZL5QVNKG.js} +10 -6
  354. package/dist/chunk-ZL5QVNKG.js.map +1 -0
  355. package/dist/code-block.cjs +4 -4
  356. package/dist/code-block.js +3 -3
  357. package/dist/code-view.cjs +2 -2
  358. package/dist/code-view.js +1 -1
  359. package/dist/command.cjs +3 -3
  360. package/dist/command.js +1 -1
  361. package/dist/composer.cjs +7 -6
  362. package/dist/composer.js +5 -4
  363. package/dist/content-renderer.cjs +6 -6
  364. package/dist/content-renderer.js +3 -3
  365. package/dist/context-menu.cjs +4 -3
  366. package/dist/context-menu.d.cts +2 -0
  367. package/dist/context-menu.d.ts +2 -0
  368. package/dist/context-menu.js +2 -1
  369. package/dist/date-picker.cjs +5 -5
  370. package/dist/date-picker.js +4 -4
  371. package/dist/drawer.cjs +3 -3
  372. package/dist/drawer.d.cts +10 -4
  373. package/dist/drawer.d.ts +10 -4
  374. package/dist/drawer.js +1 -1
  375. package/dist/dropdown.cjs +5 -4
  376. package/dist/dropdown.js +3 -2
  377. package/dist/editor.cjs +9 -8
  378. package/dist/editor.js +7 -6
  379. package/dist/emoji-select.cjs +2 -2
  380. package/dist/emoji-select.js +1 -1
  381. package/dist/eyebrow.cjs +2 -2
  382. package/dist/eyebrow.js +1 -1
  383. package/dist/faux-client.cjs +2 -2
  384. package/dist/faux-client.js +1 -1
  385. package/dist/field.cjs +3 -3
  386. package/dist/field.js +2 -2
  387. package/dist/file-browser.cjs +6 -5
  388. package/dist/file-browser.js +2 -1
  389. package/dist/file-upload.cjs +3 -3
  390. package/dist/file-upload.js +1 -1
  391. package/dist/image-viewer.cjs +3 -3
  392. package/dist/image-viewer.js +2 -2
  393. package/dist/index-list.cjs +2 -2
  394. package/dist/index-list.js +1 -1
  395. package/dist/index.cjs +252 -238
  396. package/dist/index.cjs.map +1 -1
  397. package/dist/index.d.cts +20 -1
  398. package/dist/index.d.ts +20 -1
  399. package/dist/index.js +83 -81
  400. package/dist/index.js.map +1 -1
  401. package/dist/input-tag.cjs +7 -6
  402. package/dist/input-tag.d.cts +6 -2
  403. package/dist/input-tag.d.ts +6 -2
  404. package/dist/input-tag.js +2 -1
  405. package/dist/input.cjs +10 -9
  406. package/dist/input.js +9 -8
  407. package/dist/inputs.cjs +42 -41
  408. package/dist/inputs.js +21 -20
  409. package/dist/json-editor.cjs +27 -26
  410. package/dist/json-editor.js +16 -15
  411. package/dist/magic-wand.cjs +8 -8
  412. package/dist/magic-wand.js +7 -7
  413. package/dist/marquee.cjs +2 -2
  414. package/dist/marquee.js +1 -1
  415. package/dist/media-viewer.cjs +5 -5
  416. package/dist/media-viewer.js +4 -4
  417. package/dist/menu.cjs +3 -3
  418. package/dist/menu.js +1 -1
  419. package/dist/mobile-menu.cjs +5 -4
  420. package/dist/mobile-menu.d.cts +2 -1
  421. package/dist/mobile-menu.d.ts +2 -1
  422. package/dist/mobile-menu.js +3 -2
  423. package/dist/mode.cjs +3 -3
  424. package/dist/mode.js +2 -2
  425. package/dist/multi-switch.cjs +6 -5
  426. package/dist/multi-switch.js +5 -4
  427. package/dist/number-field.cjs +11 -10
  428. package/dist/number-field.js +10 -9
  429. package/dist/otp-input.cjs +3 -2
  430. package/dist/otp-input.js +2 -1
  431. package/dist/pagination.cjs +2 -2
  432. package/dist/pagination.js +1 -1
  433. package/dist/paste-pills.cjs +17 -16
  434. package/dist/paste-pills.js +4 -3
  435. package/dist/pdf-viewer.cjs +3 -3
  436. package/dist/pdf-viewer.js +2 -2
  437. package/dist/phone-input.cjs +39 -0
  438. package/dist/phone-input.cjs.map +1 -0
  439. package/dist/phone-input.d.cts +139 -0
  440. package/dist/phone-input.d.ts +139 -0
  441. package/dist/phone-input.js +22 -0
  442. package/dist/phone-input.js.map +1 -0
  443. package/dist/popover.cjs +5 -4
  444. package/dist/popover.js +3 -2
  445. package/dist/profile.cjs +3 -3
  446. package/dist/profile.js +2 -2
  447. package/dist/progress.cjs +2 -2
  448. package/dist/progress.js +1 -1
  449. package/dist/prompt-input.cjs +10 -9
  450. package/dist/prompt-input.js +7 -6
  451. package/dist/qr-code.cjs +8 -8
  452. package/dist/qr-code.js +2 -2
  453. package/dist/radio-group.cjs +5 -5
  454. package/dist/radio-group.js +4 -4
  455. package/dist/reason-tag.cjs +6 -5
  456. package/dist/reason-tag.js +5 -4
  457. package/dist/reorderable-grid.cjs +4 -3
  458. package/dist/reorderable-grid.js +2 -1
  459. package/dist/resizable-panels.cjs +3 -2
  460. package/dist/resizable-panels.js +2 -1
  461. package/dist/select.cjs +8 -7
  462. package/dist/select.js +7 -6
  463. package/dist/separator.cjs +2 -2
  464. package/dist/separator.js +1 -1
  465. package/dist/sidebar.cjs +6 -5
  466. package/dist/sidebar.js +4 -3
  467. package/dist/slider.cjs +5 -5
  468. package/dist/slider.js +4 -4
  469. package/dist/stat-list.cjs +2 -2
  470. package/dist/stat-list.d.cts +5 -2
  471. package/dist/stat-list.d.ts +5 -2
  472. package/dist/stat-list.js +1 -1
  473. package/dist/stepper.cjs +3 -2
  474. package/dist/stepper.js +2 -1
  475. package/dist/styles.css +24 -0
  476. package/dist/styles.css.map +1 -1
  477. package/dist/switch.cjs +3 -3
  478. package/dist/switch.js +2 -2
  479. package/dist/table.cjs +11 -11
  480. package/dist/table.js +1 -1
  481. package/dist/tabs.cjs +4 -3
  482. package/dist/tabs.js +2 -1
  483. package/dist/textarea.cjs +6 -6
  484. package/dist/textarea.js +5 -5
  485. package/dist/time-grid.cjs +3 -2
  486. package/dist/time-grid.js +2 -1
  487. package/dist/time-picker.cjs +2 -2
  488. package/dist/time-picker.js +1 -1
  489. package/dist/timeline.cjs +4 -4
  490. package/dist/timeline.js +1 -1
  491. package/dist/toast.cjs +4 -3
  492. package/dist/toast.d.cts +6 -2
  493. package/dist/toast.d.ts +6 -2
  494. package/dist/toast.js +2 -1
  495. package/dist/tooltip.cjs +4 -3
  496. package/dist/tooltip.js +3 -2
  497. package/dist/tree-nav.cjs +3 -3
  498. package/dist/tree-nav.js +1 -1
  499. package/docs/Dropdown.md +1 -1
  500. package/docs/InputTag.md +1 -1
  501. package/docs/MobileMenu.md +2 -2
  502. package/docs/PhoneInput.md +104 -0
  503. package/docs/Popover.md +1 -1
  504. package/docs/ReorderableGrid.md +2 -0
  505. package/docs/ResizablePanels.md +2 -0
  506. package/docs/Toast.md +2 -2
  507. package/package.json +11 -1
  508. package/dist/chunk-25HRO7HQ.cjs.map +0 -1
  509. package/dist/chunk-2O5UXH5R.cjs.map +0 -1
  510. package/dist/chunk-37D5PYEF.js.map +0 -1
  511. package/dist/chunk-3S5ED522.js.map +0 -1
  512. package/dist/chunk-4DL2U23D.cjs.map +0 -1
  513. package/dist/chunk-5EW47IH7.js.map +0 -1
  514. package/dist/chunk-5TP642UT.js.map +0 -1
  515. package/dist/chunk-6GVOW3UL.js.map +0 -1
  516. package/dist/chunk-AJPYGRLA.cjs.map +0 -1
  517. package/dist/chunk-BXPLERIJ.js.map +0 -1
  518. package/dist/chunk-BYO5RUDE.cjs.map +0 -1
  519. package/dist/chunk-CEFK54WP.cjs.map +0 -1
  520. package/dist/chunk-CQ7QXZLR.cjs.map +0 -1
  521. package/dist/chunk-DJYG7DXS.js.map +0 -1
  522. package/dist/chunk-DTOIO42M.js.map +0 -1
  523. package/dist/chunk-DXZCKDYS.js.map +0 -1
  524. package/dist/chunk-ESCIXKFT.js.map +0 -1
  525. package/dist/chunk-EUVWYDFN.js.map +0 -1
  526. package/dist/chunk-F4OYQ2XZ.js.map +0 -1
  527. package/dist/chunk-FKZB27OM.cjs.map +0 -1
  528. package/dist/chunk-FR4RHVPR.js.map +0 -1
  529. package/dist/chunk-FVQO75KY.cjs.map +0 -1
  530. package/dist/chunk-GDF6XTHC.js.map +0 -1
  531. package/dist/chunk-GR2WKBER.js.map +0 -1
  532. package/dist/chunk-GTS3QA7M.js.map +0 -1
  533. package/dist/chunk-HLI6RB5V.cjs.map +0 -1
  534. package/dist/chunk-HNJXBMHI.cjs.map +0 -1
  535. package/dist/chunk-J2DI6RMR.cjs.map +0 -1
  536. package/dist/chunk-JY2RC6I4.js.map +0 -1
  537. package/dist/chunk-KFA7B6WP.cjs.map +0 -1
  538. package/dist/chunk-KOAMRCSC.cjs.map +0 -1
  539. package/dist/chunk-KOTUFZJ6.cjs.map +0 -1
  540. package/dist/chunk-LFC2DL6H.cjs.map +0 -1
  541. package/dist/chunk-LKN7FYW6.js.map +0 -1
  542. package/dist/chunk-MI57NAKF.js.map +0 -1
  543. package/dist/chunk-MKGWHSNV.cjs.map +0 -1
  544. package/dist/chunk-MLZGGAXQ.js.map +0 -1
  545. package/dist/chunk-MPCZUZ4O.cjs.map +0 -1
  546. package/dist/chunk-MQ6VGG62.js.map +0 -1
  547. package/dist/chunk-NSJBVV7R.js.map +0 -1
  548. package/dist/chunk-NVXTHTJI.js.map +0 -1
  549. package/dist/chunk-O5ORO2RX.cjs.map +0 -1
  550. package/dist/chunk-OASSZI6M.cjs.map +0 -1
  551. package/dist/chunk-PCNJJVTF.cjs.map +0 -1
  552. package/dist/chunk-PDVU2PXR.js.map +0 -1
  553. package/dist/chunk-PJNUGSKI.js.map +0 -1
  554. package/dist/chunk-PM5I5ZHK.cjs.map +0 -1
  555. package/dist/chunk-PXZRYL5I.js.map +0 -1
  556. package/dist/chunk-QF2FODTG.js.map +0 -1
  557. package/dist/chunk-QGY5FPVM.js.map +0 -1
  558. package/dist/chunk-QP6VNKLW.cjs.map +0 -1
  559. package/dist/chunk-QTS4Q2NK.js.map +0 -1
  560. package/dist/chunk-RANTYGKW.js.map +0 -1
  561. package/dist/chunk-RSLZL6VP.js.map +0 -1
  562. package/dist/chunk-RWU2MFUL.js.map +0 -1
  563. package/dist/chunk-RZUYCZ5D.cjs.map +0 -1
  564. package/dist/chunk-SKMORSBO.cjs.map +0 -1
  565. package/dist/chunk-SSCW67KA.cjs.map +0 -1
  566. package/dist/chunk-SXXDTW7S.js.map +0 -1
  567. package/dist/chunk-TFX4LL7V.js.map +0 -1
  568. package/dist/chunk-TMQF2CRN.js.map +0 -1
  569. package/dist/chunk-UK6BGM74.cjs.map +0 -1
  570. package/dist/chunk-UXYFM2XT.cjs.map +0 -1
  571. package/dist/chunk-VZTXUYPM.cjs.map +0 -1
  572. package/dist/chunk-WMANILKC.cjs.map +0 -1
  573. package/dist/chunk-WNUAGRQN.cjs.map +0 -1
  574. package/dist/chunk-WZAKEJDL.js.map +0 -1
  575. package/dist/chunk-X2A3NAJW.js.map +0 -1
  576. package/dist/chunk-XZOBGKZL.cjs.map +0 -1
  577. package/dist/chunk-Y3QAEF2P.cjs.map +0 -1
  578. package/dist/chunk-YQZB5Z7C.cjs.map +0 -1
  579. package/dist/chunk-Z44A7NPD.cjs.map +0 -1
  580. package/dist/chunk-Z4UXLQSK.cjs.map +0 -1
  581. package/dist/chunk-Z7SQMQTF.cjs.map +0 -1
  582. package/dist/chunk-ZPBKRJMH.js.map +0 -1
  583. package/dist/chunk-ZVDW2VX5.cjs.map +0 -1
@@ -0,0 +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,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk6V44RRSB_cjs = require('./chunk-6V44RRSB.cjs');
4
+ var chunk36IC3NDN_cjs = require('./chunk-36IC3NDN.cjs');
4
5
  var react = require('react');
5
6
  var jsxRuntime = require('react/jsx-runtime');
6
7
 
@@ -39,7 +40,7 @@ function InputTag({
39
40
  adapter,
40
41
  triggers,
41
42
  maxItems = 8,
42
- placement = "bottom-left",
43
+ placement = "bottom-start",
43
44
  className,
44
45
  style,
45
46
  onPick
@@ -48,6 +49,8 @@ function InputTag({
48
49
  const [active, setActive] = react.useState(null);
49
50
  const [cursor, setCursor] = react.useState(0);
50
51
  const [anchorRect, setAnchorRect] = react.useState(null);
52
+ const popRef = react.useRef(null);
53
+ const [rtl, setRtl] = react.useState(false);
51
54
  const stateRef = react.useRef({ text: "", caretIndex: 0 });
52
55
  const activeRef = react.useRef(null);
53
56
  const cursorRef = react.useRef(0);
@@ -135,13 +138,17 @@ function InputTag({
135
138
  }
136
139
  });
137
140
  }, [adapter, items, pickItem]);
141
+ react.useLayoutEffect(() => {
142
+ if (popRef.current) setRtl(chunk36IC3NDN_cjs.isRtl(popRef.current));
143
+ });
138
144
  if (!active || !anchorRect || items.length === 0) return null;
139
145
  const cfg = triggers[active.char];
140
146
  if (!cfg) return null;
141
- const popStyle = computePopoverStyle(anchorRect, placement);
147
+ const popStyle = computePopoverStyle(anchorRect, logicalToPhysical(placement, rtl));
142
148
  return /* @__PURE__ */ jsxRuntime.jsxs(
143
149
  "div",
144
150
  {
151
+ ref: popRef,
145
152
  role: "listbox",
146
153
  "aria-label": cfg.label ?? `Pick a ${active.char === "/" ? "command" : "mention"}`,
147
154
  className: [
@@ -191,6 +198,12 @@ function labelForChar(ch) {
191
198
  if (ch === ":") return "Emoji";
192
199
  return `Trigger ${ch}`;
193
200
  }
201
+ function logicalToPhysical(placement, rtl) {
202
+ const [block, inline] = placement.split("-");
203
+ if (inline === "start") return `${block}-${rtl ? "right" : "left"}`;
204
+ if (inline === "end") return `${block}-${rtl ? "left" : "right"}`;
205
+ return placement;
206
+ }
194
207
  function computePopoverStyle(anchor, placement) {
195
208
  const offset = 4;
196
209
  switch (placement) {
@@ -426,5 +439,5 @@ exports.contentEditableAdapter = contentEditableAdapter;
426
439
  exports.controlledAdapter = controlledAdapter;
427
440
  exports.inputAdapter = inputAdapter;
428
441
  exports.textareaAdapter = textareaAdapter;
429
- //# sourceMappingURL=chunk-UK6BGM74.cjs.map
430
- //# sourceMappingURL=chunk-UK6BGM74.cjs.map
442
+ //# sourceMappingURL=chunk-LREJ7AV2.cjs.map
443
+ //# sourceMappingURL=chunk-LREJ7AV2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/InputTag/InputTag.tsx","../src/components/InputTag/adapters.ts"],"names":["useMemo","useState","useRef","cfg","useEffect","useLayoutEffect","useCallback","isImeComposing","isRtl","jsxs","jsx","el"],"mappings":"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","file":"chunk-LREJ7AV2.cjs","sourcesContent":["import {\n type CSSProperties,\n type ReactNode,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { isImeComposing } from \"../../utils/ime\";\nimport { isRtl } from \"../../utils/direction\";\n\n/**\n * InputTag — attach a `/`-style or `@`-style autocomplete picker to *any*\n * text surface (a `<textarea>`, an `<input>`, a `contenteditable`, a code\n * editor, a sheet cell editor, a whiteboard sticky note…) via an adapter\n * that abstracts the surface's read/write/caret API.\n *\n * The component is \"headless\" in the sense that it has no input of its\n * own — it floats a small picker menu near the surface and writes back\n * through the adapter when the user picks an item.\n *\n * <textarea ref={ref} value={text} onChange={...} />\n * <InputTag\n * adapter={textareaAdapter(ref)}\n * triggers={{\n * \"/\": { items: commands, insert: (c) => `${c.name} ` },\n * \"@\": { items: mentions, insert: (m) => `@${m.name} ` },\n * }}\n * />\n *\n * For non-DOM surfaces, write a small adapter that conforms to\n * {@link InputTagAdapter}. Adapters typically run 20–40 lines.\n */\n\n/** What the surface tells the picker on every text/caret change. */\nexport type InputTagAdapterState = {\n text: string;\n caretIndex: number;\n};\n\n/**\n * The contract every input surface implements. The picker subscribes to\n * state changes, anchors itself using `getAnchorRect`, intercepts\n * navigation keys via `onKey`, and writes the selected item back through\n * `replaceRange`.\n */\nexport type InputTagAdapter = {\n /** Push current state whenever text or caret changes. Returns an unsubscribe. */\n subscribe: (fn: (state: InputTagAdapterState) => void) => () => void;\n /** Replace text in `[start, end)` with `replacement`. The adapter is\n * responsible for moving the caret to the end of the inserted text. */\n replaceRange: (start: number, end: number, replacement: string) => void;\n /** Screen-space rect to anchor the picker against. Usually the surface's\n * bounding rect; for editors that can compute caret-precise coordinates,\n * return a small rect there instead. */\n getAnchorRect: () => DOMRect | null;\n /** Subscribe to keydown events on the surface. The handler may return\n * `true` to consume the event (the adapter then calls\n * `preventDefault` / `stopPropagation`). Returns an unsubscribe. */\n onKey: (handler: (e: KeyboardEvent) => boolean) => () => void;\n};\n\n/**\n * Per-trigger configuration. `T` is the item shape — typically a\n * `{ id, name, ... }` object, but any shape works as long as `keyOf` /\n * `insert` know how to handle it.\n */\nexport type InputTagTrigger<T> = {\n /** The pool the picker filters against. */\n items: T[];\n /** Text inserted in place of `<triggerChar><query>`. */\n insert: (item: T, query: string) => string;\n /** Custom filter. Default: case-insensitive prefix match against\n * `String(keyOf(item))`. Pass `() => true` to disable filtering and\n * rely on `items` being pre-filtered (e.g. from an async source). */\n filter?: (item: T, query: string) => boolean;\n /** How to render each row. Default renders the result of `keyOf(item)`. */\n render?: (item: T, active: boolean) => ReactNode;\n /** How to derive a stable key + default label for each item. Default\n * reads `item.name` then `item.id` then `String(item)`. */\n keyOf?: (item: T) => string;\n /** Optional header label shown above the list. */\n label?: string;\n};\n\nexport type InputTagTriggers = Record<string, InputTagTrigger<any>>;\n\nexport interface InputTagProps {\n adapter: InputTagAdapter;\n triggers: InputTagTriggers;\n /** Max rows shown. Default 8. */\n maxItems?: number;\n /**\n * Where the picker anchors relative to the surface. `*-start` / `*-end`\n * follow the writing direction (`start` is the right edge in RTL);\n * `*-left` / `*-right` are physical. Default `\"bottom-start\"`.\n */\n placement?:\n | \"bottom-start\" | \"bottom-end\" | \"top-start\" | \"top-end\"\n | \"bottom-left\" | \"bottom-right\" | \"top-left\" | \"top-right\";\n /** Custom class for the popover container. */\n className?: string;\n /** Inline style for the popover container. */\n style?: CSSProperties;\n /** Fires whenever an item is picked. */\n onPick?: (info: { triggerChar: string; query: string; item: unknown }) => void;\n};\n\ntype ActiveTrigger = {\n char: string;\n start: number;\n end: number;\n query: string;\n};\n\nfunction defaultKeyOf(item: unknown): string {\n if (item && typeof item === \"object\") {\n const r = item as Record<string, unknown>;\n if (typeof r.name === \"string\") return r.name;\n if (typeof r.id === \"string\") return r.id;\n }\n return String(item);\n}\n\nfunction defaultFilter(item: unknown, query: string): boolean {\n if (!query) return true;\n return defaultKeyOf(item).toLowerCase().includes(query.toLowerCase());\n}\n\n/**\n * Walk back from `caret` to detect an active trigger. A trigger is active\n * when one of the configured characters appears between `caret` and the\n * nearest preceding whitespace (or start-of-text), with no other\n * non-trigger-non-whitespace breaks. The \"query\" is everything after\n * the trigger up to the caret.\n */\nfunction detectTrigger(\n text: string,\n caret: number,\n triggerChars: Set<string>,\n): ActiveTrigger | null {\n for (let i = caret - 1; i >= 0; i--) {\n const ch = text[i];\n if (ch === undefined) break;\n if (triggerChars.has(ch)) {\n // Must be at a word boundary: start of text OR preceded by whitespace.\n if (i === 0 || /\\s/.test(text[i - 1])) {\n return {\n char: ch,\n start: i,\n end: caret,\n query: text.slice(i + 1, caret),\n };\n }\n return null;\n }\n if (/\\s/.test(ch)) return null;\n }\n return null;\n}\n\nexport function InputTag({\n adapter,\n triggers,\n maxItems = 8,\n placement = \"bottom-start\",\n className,\n style,\n onPick,\n}: InputTagProps) {\n const triggerChars = useMemo(() => new Set(Object.keys(triggers)), [triggers]);\n const [active, setActive] = useState<ActiveTrigger | null>(null);\n const [cursor, setCursor] = useState(0);\n const [anchorRect, setAnchorRect] = useState<DOMRect | null>(null);\n // The picker's own resolved direction, read before paint: it renders in\n // place, so it inherits the surface's `dir`.\n const popRef = useRef<HTMLDivElement | null>(null);\n const [rtl, setRtl] = useState(false);\n\n // Latest state in refs so key handlers see fresh data without re-registering.\n const stateRef = useRef<InputTagAdapterState>({ text: \"\", caretIndex: 0 });\n const activeRef = useRef<ActiveTrigger | null>(null);\n const cursorRef = useRef(0);\n activeRef.current = active;\n cursorRef.current = cursor;\n\n // Filtered items for the active trigger.\n const items: unknown[] = useMemo(() => {\n if (!active) return [];\n const cfg = triggers[active.char];\n if (!cfg) return [];\n const filter = cfg.filter ?? defaultFilter;\n const out: unknown[] = [];\n for (const item of cfg.items) {\n if (filter(item, active.query)) out.push(item);\n if (out.length >= maxItems) break;\n }\n return out;\n }, [active, triggers, maxItems]);\n\n // Subscribe to text/caret changes.\n useEffect(() => {\n return adapter.subscribe((s) => {\n stateRef.current = s;\n const next = detectTrigger(s.text, s.caretIndex, triggerChars);\n setActive((prev) => {\n // Reset cursor when the trigger char or position changes.\n if (!prev || !next || prev.char !== next.char || prev.start !== next.start) {\n setCursor(0);\n }\n return next;\n });\n if (next) setAnchorRect(adapter.getAnchorRect());\n });\n }, [adapter, triggerChars]);\n\n // Refresh anchor rect on scroll/resize while picker is open.\n useLayoutEffect(() => {\n if (!active) return;\n const update = () => setAnchorRect(adapter.getAnchorRect());\n update();\n window.addEventListener(\"scroll\", update, true);\n window.addEventListener(\"resize\", update);\n return () => {\n window.removeEventListener(\"scroll\", update, true);\n window.removeEventListener(\"resize\", update);\n };\n }, [active, adapter]);\n\n // Clamp cursor when the visible items shrink.\n useEffect(() => {\n if (cursor >= items.length) setCursor(Math.max(0, items.length - 1));\n }, [items.length, cursor]);\n\n const pickItem = useCallback(\n (item: unknown) => {\n const cur = activeRef.current;\n if (!cur) return;\n const cfg = triggers[cur.char];\n if (!cfg) return;\n const replacement = cfg.insert(item, cur.query);\n adapter.replaceRange(cur.start, cur.end, replacement);\n onPick?.({ triggerChar: cur.char, query: cur.query, item });\n setActive(null);\n },\n [adapter, triggers, onPick],\n );\n\n // Key handling.\n useEffect(() => {\n return adapter.onKey((e) => {\n const cur = activeRef.current;\n if (!cur) return false;\n const visible = items;\n switch (e.key) {\n case \"ArrowDown\":\n if (visible.length === 0) return false;\n setCursor((c) => (c + 1) % visible.length);\n return true;\n case \"ArrowUp\":\n if (visible.length === 0) return false;\n setCursor((c) => (c - 1 + visible.length) % visible.length);\n return true;\n case \"Enter\":\n case \"Tab\": {\n if (visible.length === 0) return false;\n // Confirming an IME composition is not a pick; let the editor have it.\n if (e.key === \"Enter\" && isImeComposing(e)) return false;\n const idx = Math.min(cursorRef.current, visible.length - 1);\n pickItem(visible[idx]);\n return true;\n }\n case \"Escape\":\n setActive(null);\n return true;\n default:\n return false;\n }\n });\n }, [adapter, items, pickItem]);\n\n useLayoutEffect(() => {\n if (popRef.current) setRtl(isRtl(popRef.current));\n });\n\n if (!active || !anchorRect || items.length === 0) return null;\n\n const cfg = triggers[active.char];\n if (!cfg) return null;\n\n const popStyle = computePopoverStyle(anchorRect, logicalToPhysical(placement, rtl));\n\n return (\n <div\n ref={popRef}\n role=\"listbox\"\n aria-label={cfg.label ?? `Pick a ${active.char === \"/\" ? \"command\" : \"mention\"}`}\n className={[\n \"fixed z-50 w-72 overflow-hidden rounded-md border border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] shadow-lg dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n className ?? \"\",\n ]\n .filter(Boolean)\n .join(\" \")}\n style={{ ...popStyle, ...style }}\n >\n {(cfg.label || active.query) && (\n <div className=\"flex items-center justify-between border-b border-zinc-100 bg-zinc-50 px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-zinc-500 dark:border-zinc-800 dark:bg-zinc-950\">\n <span>{cfg.label ?? labelForChar(active.char)}</span>\n {active.query && (\n <span className=\"font-mono text-[10px] normal-case tracking-normal text-zinc-400\">\n {active.char}\n {active.query}\n </span>\n )}\n </div>\n )}\n <ul className=\"max-h-60 overflow-y-auto\">\n {items.map((item, i) => {\n const renderer = cfg.render ?? ((it: unknown) => <span>{defaultKeyOf(it)}</span>);\n const active2 = i === cursor;\n const key = (cfg.keyOf ?? defaultKeyOf)(item);\n return (\n <li\n key={key}\n role=\"option\"\n aria-selected={active2}\n onMouseDown={(e) => {\n e.preventDefault();\n pickItem(item);\n }}\n onMouseEnter={() => setCursor(i)}\n className={[\n \"cursor-pointer px-2 py-1.5 text-[12px]\",\n active2\n ? \"bg-violet-100 dark:bg-violet-900/30\"\n : \"hover:bg-zinc-50 dark:hover:bg-zinc-800\",\n ].join(\" \")}\n >\n {renderer(item, active2)}\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n\nfunction labelForChar(ch: string): string {\n if (ch === \"/\") return \"Commands\";\n if (ch === \"@\") return \"Mentions\";\n if (ch === \"#\") return \"Tags\";\n if (ch === \":\") return \"Emoji\";\n return `Trigger ${ch}`;\n}\n\ntype PhysicalPlacement = \"bottom-left\" | \"bottom-right\" | \"top-left\" | \"top-right\";\n\n/** `start` is the left edge in LTR and the right edge in RTL. */\nfunction logicalToPhysical(\n placement: NonNullable<InputTagProps[\"placement\"]>,\n rtl: boolean,\n): PhysicalPlacement {\n const [block, inline] = placement.split(\"-\") as [\"top\" | \"bottom\", string];\n if (inline === \"start\") return `${block}-${rtl ? \"right\" : \"left\"}`;\n if (inline === \"end\") return `${block}-${rtl ? \"left\" : \"right\"}`;\n return placement as PhysicalPlacement;\n}\n\nfunction computePopoverStyle(\n anchor: DOMRect,\n placement: PhysicalPlacement,\n): CSSProperties {\n const offset = 4;\n switch (placement) {\n case \"bottom-right\":\n return { top: anchor.bottom + offset, right: window.innerWidth - anchor.right };\n case \"top-left\":\n return { bottom: window.innerHeight - anchor.top + offset, left: anchor.left };\n case \"top-right\":\n return { bottom: window.innerHeight - anchor.top + offset, right: window.innerWidth - anchor.right };\n case \"bottom-left\":\n default:\n return { top: anchor.bottom + offset, left: anchor.left };\n }\n}\n","import type { RefObject } from \"react\";\nimport type { InputTagAdapter } from \"./InputTag\";\n\n/**\n * Built-in DOM adapters. Each one wraps a familiar input element and\n * exposes the {@link InputTagAdapter} contract so `<InputTag>` can\n * attach to it. For non-DOM surfaces (code editor, sheet cell editor,\n * whiteboard sticky note), write your own — the contract is small.\n */\n\n/**\n * Get React's monkey-patched-aside native value setter on a DOM\n * element. Required when programmatically updating `value` on a\n * controlled input: React's intercepted setter would otherwise swallow\n * the change and the consumer's `onChange` would never fire.\n */\nfunction nativeValueSetter(el: HTMLInputElement | HTMLTextAreaElement): ((v: string) => void) | null {\n const proto = el instanceof HTMLTextAreaElement ? HTMLTextAreaElement.prototype : HTMLInputElement.prototype;\n const desc = Object.getOwnPropertyDescriptor(proto, \"value\");\n if (!desc?.set) return null;\n return desc.set.bind(el);\n}\n\nfunction replaceInValueElement(\n el: HTMLInputElement | HTMLTextAreaElement,\n start: number,\n end: number,\n replacement: string,\n): void {\n const current = el.value;\n const next = current.slice(0, start) + replacement + current.slice(end);\n const setter = nativeValueSetter(el);\n if (setter) {\n setter(next);\n } else {\n el.value = next;\n }\n // Dispatch a native `input` event so any controlled-component\n // onChange handler upstream gets the new value.\n el.dispatchEvent(new Event(\"input\", { bubbles: true }));\n // Place caret at the end of the inserted text.\n const caret = start + replacement.length;\n el.setSelectionRange(caret, caret);\n el.focus();\n}\n\nfunction valueElementAdapter(\n ref: RefObject<HTMLTextAreaElement | HTMLInputElement | null>,\n): InputTagAdapter {\n return {\n subscribe(fn) {\n const handler = () => {\n const el = ref.current;\n if (!el) return;\n fn({\n text: el.value,\n caretIndex: el.selectionStart ?? el.value.length,\n });\n };\n const el = ref.current;\n if (el) {\n el.addEventListener(\"input\", handler);\n el.addEventListener(\"click\", handler);\n el.addEventListener(\"keyup\", handler);\n el.addEventListener(\"focus\", handler);\n }\n return () => {\n const el2 = ref.current;\n if (el2) {\n el2.removeEventListener(\"input\", handler);\n el2.removeEventListener(\"click\", handler);\n el2.removeEventListener(\"keyup\", handler);\n el2.removeEventListener(\"focus\", handler);\n }\n };\n },\n replaceRange(start, end, replacement) {\n const el = ref.current;\n if (!el) return;\n replaceInValueElement(el, start, end, replacement);\n },\n getAnchorRect() {\n const el = ref.current;\n return el ? el.getBoundingClientRect() : null;\n },\n onKey(handler) {\n const fn = (e: KeyboardEvent) => {\n if (handler(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n const el = ref.current;\n if (el) el.addEventListener(\"keydown\", fn as EventListener);\n return () => {\n const el2 = ref.current;\n if (el2) el2.removeEventListener(\"keydown\", fn as EventListener);\n };\n },\n };\n}\n\n/**\n * Adapter for a DOM `<textarea>`. Works whether the consumer manages\n * `value` via React state (controlled) or lets the DOM hold it\n * (uncontrolled) — `replaceRange` uses React's native value setter and\n * dispatches a native `input` event so the upstream onChange fires.\n */\nexport function textareaAdapter(\n ref: RefObject<HTMLTextAreaElement | null>,\n): InputTagAdapter {\n return valueElementAdapter(ref);\n}\n\n/** Adapter for a DOM `<input type=\"text|search|...\">`. */\nexport function inputAdapter(\n ref: RefObject<HTMLInputElement | null>,\n): InputTagAdapter {\n return valueElementAdapter(ref);\n}\n\n/**\n * Adapter for any `contenteditable` element. Operates on the element's\n * `textContent`; rich-text editors with their own internal model should\n * write a custom adapter that talks to that model instead.\n */\nexport function contentEditableAdapter(\n ref: RefObject<HTMLElement | null>,\n): InputTagAdapter {\n function caretIndex(el: HTMLElement): number {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return 0;\n const range = sel.getRangeAt(0).cloneRange();\n range.selectNodeContents(el);\n range.setEnd(sel.focusNode!, sel.focusOffset);\n return range.toString().length;\n }\n /**\n * Resolve an index into the element's visible text to a position inside the\n * text node that actually holds it. Returns null when the index is past the\n * end, or when there is no text node at all (an empty editable).\n *\n * This is the single walk that `setCaret` and `replaceRange` share. They used\n * to disagree: `setCaret` walked, `replaceRange` went through `textContent`.\n */\n function locate(\n el: HTMLElement,\n index: number,\n ): { node: Text; offset: number } | null {\n const walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT);\n let remaining = index;\n let node = walker.nextNode() as Text | null;\n while (node) {\n const len = node.textContent?.length ?? 0;\n if (remaining <= len) return { node, offset: remaining };\n remaining -= len;\n node = walker.nextNode() as Text | null;\n }\n return null;\n }\n function setCaret(el: HTMLElement, index: number): void {\n const sel = window.getSelection();\n if (!sel) return;\n const at = locate(el, index);\n const range = document.createRange();\n if (at) {\n range.setStart(at.node, at.offset);\n range.collapse(true);\n } else {\n // Past end (or nothing to walk): place at end.\n range.selectNodeContents(el);\n range.collapse(false);\n }\n sel.removeAllRanges();\n sel.addRange(range);\n }\n return {\n subscribe(fn) {\n const handler = () => {\n const el = ref.current;\n if (!el) return;\n fn({ text: el.textContent ?? \"\", caretIndex: caretIndex(el) });\n };\n const el = ref.current;\n if (el) {\n el.addEventListener(\"input\", handler);\n el.addEventListener(\"click\", handler);\n el.addEventListener(\"keyup\", handler);\n el.addEventListener(\"focus\", handler);\n }\n return () => {\n const el2 = ref.current;\n if (el2) {\n el2.removeEventListener(\"input\", handler);\n el2.removeEventListener(\"click\", handler);\n el2.removeEventListener(\"keyup\", handler);\n el2.removeEventListener(\"focus\", handler);\n }\n };\n },\n replaceRange(start, end, replacement) {\n const el = ref.current;\n if (!el) return;\n\n // Edit through a Range rather than rewriting `textContent`. Assigning\n // `textContent` destroys EVERY element child, so a host that renders a\n // resolved tag as a pill could only ever insert one: the next insert\n // flattened the first away. A Range touches nothing outside itself.\n const from = locate(el, start);\n const to = locate(el, end);\n const inserted = document.createTextNode(replacement);\n\n if (from && to) {\n const range = document.createRange();\n range.setStart(from.node, from.offset);\n range.setEnd(to.node, to.offset);\n range.deleteContents();\n range.insertNode(inserted);\n } else {\n // Past the end, or an empty editable with no text node to address.\n el.append(inserted);\n }\n\n // Anchor the caret on the node just written instead of re-deriving an\n // index: the text offsets have moved, and the node has not.\n const sel = window.getSelection();\n if (sel) {\n const after = document.createRange();\n after.setStart(inserted, inserted.length);\n after.collapse(true);\n sel.removeAllRanges();\n sel.addRange(after);\n }\n\n el.dispatchEvent(new Event(\"input\", { bubbles: true }));\n el.focus();\n },\n getAnchorRect() {\n const el = ref.current;\n return el ? el.getBoundingClientRect() : null;\n },\n onKey(handler) {\n const fn = (e: KeyboardEvent) => {\n if (handler(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n const el = ref.current;\n if (el) el.addEventListener(\"keydown\", fn as EventListener);\n return () => {\n const el2 = ref.current;\n if (el2) el2.removeEventListener(\"keydown\", fn as EventListener);\n };\n },\n };\n}\n\n/**\n * Adapter for hosts that fully control the text state themselves. Use\n * this when you can't (or don't want to) let the DOM be the source of\n * truth — for code editors with internal state, sheet cell editors, or\n * any host that already has `value` + `onChange` and wants to reach the\n * picker programmatically.\n *\n * The host calls `notify({ text, caretIndex })` after every text or\n * caret change. `<InputTag>` calls `onReplaceRange` to write back.\n */\nexport type ControlledAdapterHandle = InputTagAdapter & {\n /** Push the latest text + caret to the picker. */\n notify: (state: { text: string; caretIndex: number }) => void;\n};\n\nexport function controlledAdapter(opts: {\n /** Element used as anchor + key target. Usually the visible input. */\n anchorRef: RefObject<HTMLElement | null>;\n /** Called when the picker writes back an insertion. */\n onReplaceRange: (start: number, end: number, replacement: string) => void;\n}): ControlledAdapterHandle {\n let listener: ((s: { text: string; caretIndex: number }) => void) | null = null;\n let keyHandler: ((e: KeyboardEvent) => boolean) | null = null;\n\n const installKey = () => {\n const el = opts.anchorRef.current;\n if (!el || !keyHandler) return () => {};\n const fn = (e: KeyboardEvent) => {\n if (keyHandler && keyHandler(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n el.addEventListener(\"keydown\", fn);\n return () => el.removeEventListener(\"keydown\", fn);\n };\n\n return {\n notify(state) {\n listener?.(state);\n },\n subscribe(fn) {\n listener = fn;\n return () => {\n if (listener === fn) listener = null;\n };\n },\n replaceRange(start, end, replacement) {\n opts.onReplaceRange(start, end, replacement);\n },\n getAnchorRect() {\n const el = opts.anchorRef.current;\n return el ? el.getBoundingClientRect() : null;\n },\n onKey(handler) {\n keyHandler = handler;\n const uninstall = installKey();\n return () => {\n if (keyHandler === handler) keyHandler = null;\n uninstall();\n };\n },\n };\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var chunk36IC3NDN_cjs = require('./chunk-36IC3NDN.cjs');
3
4
  var chunkSNHU2AI4_cjs = require('./chunk-SNHU2AI4.cjs');
4
5
  var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
5
6
  var react = require('react');
@@ -73,8 +74,9 @@ var StepperRoot = react.forwardRef(
73
74
  const handleKeyDown = (e) => {
74
75
  onKeyDown?.(e);
75
76
  if (!clickable || e.defaultPrevented) return;
76
- const prevKey = horizontal ? "ArrowLeft" : "ArrowUp";
77
- const nextKey = horizontal ? "ArrowRight" : "ArrowDown";
77
+ const rtl = horizontal && chunk36IC3NDN_cjs.isRtl(e.currentTarget);
78
+ const prevKey = horizontal ? rtl ? "ArrowRight" : "ArrowLeft" : "ArrowUp";
79
+ const nextKey = horizontal ? rtl ? "ArrowLeft" : "ArrowRight" : "ArrowDown";
78
80
  if (![prevKey, nextKey, "Home", "End"].includes(e.key)) return;
79
81
  const list = e.currentTarget;
80
82
  const target = e.target.closest("[data-react-fancy-stepper-trigger]");
@@ -116,7 +118,7 @@ var StepperRoot = react.forwardRef(
116
118
  ] }),
117
119
  /* @__PURE__ */ jsxRuntime.jsx("span", { "data-react-fancy-stepper-title": "", className: chunkZU5Q77OT_cjs.cn("text-sm", titleClass[state]), children: step.title })
118
120
  ] });
119
- const headerClass = horizontal ? "flex flex-col items-center gap-2 text-center" : "flex items-center gap-x-4 text-left";
121
+ const headerClass = horizontal ? "flex flex-col items-center gap-2 text-center" : "flex items-center gap-x-4 text-start";
120
122
  const header = clickable ? /* @__PURE__ */ jsxRuntime.jsx(
121
123
  "button",
122
124
  {
@@ -155,13 +157,13 @@ var StepperRoot = react.forwardRef(
155
157
  "data-react-fancy-stepper-connector": "",
156
158
  className: chunkZU5Q77OT_cjs.cn(
157
159
  "absolute",
158
- horizontal ? "top-4 left-[calc(50%+1.5rem)] h-px w-[calc(100%-3rem)]" : "top-10 bottom-2 left-4 w-px -translate-x-1/2",
160
+ horizontal ? "top-4 start-[calc(50%+1.5rem)] h-px w-[calc(100%-3rem)]" : "top-10 bottom-2 start-4 w-px -translate-x-1/2 rtl:translate-x-1/2",
159
161
  index < current ? "bg-zinc-900 dark:bg-white" : "bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]"
160
162
  )
161
163
  }
162
164
  ),
163
165
  header,
164
- (step.description != null || showBody) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: horizontal ? "mt-1 px-2 text-center" : "pl-12", children: [
166
+ (step.description != null || showBody) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: horizontal ? "mt-1 px-2 text-center" : "ps-12", children: [
165
167
  step.description != null && /* @__PURE__ */ jsxRuntime.jsx(
166
168
  "div",
167
169
  {
@@ -192,5 +194,5 @@ StepperRoot.displayName = "Stepper";
192
194
  var Stepper = Object.assign(StepperRoot, { Step: StepperStep });
193
195
 
194
196
  exports.Stepper = Stepper;
195
- //# sourceMappingURL=chunk-Y3QAEF2P.cjs.map
196
- //# sourceMappingURL=chunk-Y3QAEF2P.cjs.map
197
+ //# sourceMappingURL=chunk-LVNCNMKD.cjs.map
198
+ //# sourceMappingURL=chunk-LVNCNMKD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Stepper/Stepper.tsx"],"names":["Children","isValidElement","jsx","cn","Check","forwardRef","useControllableState","isRtl","jsxs","Fragment"],"mappings":"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","file":"chunk-LVNCNMKD.cjs","sourcesContent":["import {\n Children,\n forwardRef,\n isValidElement,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { isRtl } from \"../../utils/direction\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type {\n StepperProps,\n StepperStep as StepperStepData,\n StepperStepProps,\n StepperStepState,\n} from \"./Stepper.types\";\n\nconst DEFAULT_STATE_LABELS: Record<StepperStepState, string> = {\n upcoming: \"Not started\",\n current: \"Current\",\n complete: \"Completed\",\n error: \"Error\",\n};\n\n/**\n * Declarative step. Renders nothing itself: `Stepper` reads its props as data\n * and renders it through the same path as an entry in `steps`, so the two forms\n * cannot drift apart in markup, states or handles. Its children are the step's\n * content. It must be a DIRECT child of `Stepper` (not wrapped in another\n * component) for the same reason `Breadcrumbs.Item` must.\n */\nfunction StepperStep(_props: StepperStepProps): null {\n return null;\n}\nStepperStep.displayName = \"StepperStep\";\n\nfunction stepsFromChildren(children: ReactNode): StepperStepData[] {\n const out: StepperStepData[] = [];\n for (const child of Children.toArray(children)) {\n if (!isValidElement<StepperStepProps>(child) || child.type !== StepperStep) continue;\n const { children: content, ...rest } = child.props;\n out.push({ ...rest, content });\n }\n return out;\n}\n\nconst indicatorClass: Record<StepperStepState, string> = {\n complete:\n \"border-transparent bg-zinc-900 text-white dark:bg-white dark:text-zinc-900\",\n current:\n \"border-2 border-zinc-900 bg-[color:var(--fancy-surface,var(--color-white))] text-zinc-900 ring-4 ring-zinc-900/10 dark:border-white dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-white dark:ring-white/15\",\n upcoming:\n \"border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\",\n error: \"border-transparent bg-red-600 text-white dark:bg-red-500\",\n};\n\nconst titleClass: Record<StepperStepState, string> = {\n complete: \"font-medium text-zinc-900 dark:text-white\",\n current: \"font-semibold text-zinc-900 dark:text-white\",\n upcoming:\n \"font-medium text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\",\n error: \"font-semibold text-red-700 dark:text-red-400\",\n};\n\n/** The glyph differs per state, so state reads without colour: number, tick, \"!\". */\nfunction Indicator({ state, index }: { state: StepperStepState; index: number }) {\n return (\n <span\n aria-hidden=\"true\"\n data-react-fancy-stepper-indicator=\"\"\n className={cn(\n \"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full border text-sm font-semibold\",\n indicatorClass[state],\n )}\n >\n {state === \"complete\" ? <Check size={16} strokeWidth={3} /> : state === \"error\" ? \"!\" : index + 1}\n </span>\n );\n}\n\nconst StepperRoot = forwardRef<HTMLOListElement, StepperProps>(\n (\n {\n steps: stepsProp,\n children,\n current: currentProp,\n defaultCurrent = 0,\n onChange,\n orientation = \"vertical\",\n clickable = false,\n showContent = \"all\",\n stateLabels,\n className,\n onKeyDown,\n ...rest\n },\n ref,\n ) => {\n const [current, setCurrent] = useControllableState(currentProp, defaultCurrent, onChange);\n const steps = stepsProp ?? stepsFromChildren(children);\n const labels = { ...DEFAULT_STATE_LABELS, ...stateLabels };\n const horizontal = orientation === \"horizontal\";\n\n // Arrow keys move focus between step buttons; Enter / Space activate them\n // natively. Focus only -- the current step changes on activation, never on\n // arrowing past it. DOM is read in the handler, never during render.\n const handleKeyDown = (e: KeyboardEvent<HTMLOListElement>) => {\n onKeyDown?.(e);\n if (!clickable || e.defaultPrevented) return;\n\n // Horizontal steps run right-to-left in RTL, so the arrows swap there.\n const rtl = horizontal && isRtl(e.currentTarget);\n const prevKey = horizontal ? (rtl ? \"ArrowRight\" : \"ArrowLeft\") : \"ArrowUp\";\n const nextKey = horizontal ? (rtl ? \"ArrowLeft\" : \"ArrowRight\") : \"ArrowDown\";\n if (![prevKey, nextKey, \"Home\", \"End\"].includes(e.key)) return;\n\n const list = e.currentTarget;\n const target = (e.target as HTMLElement).closest<HTMLButtonElement>(\"[data-react-fancy-stepper-trigger]\");\n if (!target || target.closest(\"[data-react-fancy-stepper]\") !== list) return;\n\n // Only this stepper's own buttons: a stepper nested in step content is\n // its own list.\n const buttons = Array.from(\n list.querySelectorAll<HTMLButtonElement>(\"[data-react-fancy-stepper-trigger]\"),\n ).filter((b) => b.closest(\"[data-react-fancy-stepper]\") === list && !b.disabled);\n const at = buttons.indexOf(target);\n\n let next: HTMLButtonElement | undefined;\n if (e.key === \"Home\") next = buttons[0];\n else if (e.key === \"End\") next = buttons[buttons.length - 1];\n else if (e.key === nextKey) next = buttons[at + 1] ?? target;\n else next = at > 0 ? buttons[at - 1] : target;\n\n e.preventDefault();\n next?.focus();\n };\n\n return (\n <ol\n ref={ref}\n data-react-fancy-stepper=\"\"\n data-orientation={orientation}\n data-current={current}\n className={cn(horizontal ? \"flex items-start\" : \"flex flex-col\", className)}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {steps.map((step, index) => {\n const derived: StepperStepState =\n index < current ? \"complete\" : index === current ? \"current\" : \"upcoming\";\n const state = step.state ?? derived;\n const isCurrent = index === current;\n const isLast = index === steps.length - 1;\n const showBody = step.content != null && (showContent === \"all\" || isCurrent);\n\n const headerInner = (\n <>\n <Indicator state={state} index={index} />\n {/* State in words, before the title so it is read first. A\n sibling of the title, so the title handle reads the title. */}\n <span className=\"sr-only\" data-react-fancy-stepper-state=\"\">\n {labels[state]}:{\" \"}\n </span>\n <span data-react-fancy-stepper-title=\"\" className={cn(\"text-sm\", titleClass[state])}>\n {step.title}\n </span>\n </>\n );\n\n const headerClass = horizontal\n ? \"flex flex-col items-center gap-2 text-center\"\n : \"flex items-center gap-x-4 text-start\";\n\n const header = clickable ? (\n <button\n type=\"button\"\n data-react-fancy-stepper-trigger=\"\"\n disabled={step.disabled}\n onClick={() => {\n if (index !== current) setCurrent(index);\n }}\n className={cn(\n headerClass,\n \"cursor-pointer rounded-md border-0 bg-transparent p-0\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"focus-visible:ring-[color:var(--fancy-focus,var(--color-blue-500))] focus-visible:ring-offset-[color:var(--fancy-surface,var(--color-white))]\",\n \"dark:focus-visible:ring-[color:var(--fancy-focus-dark,var(--color-blue-400))] dark:focus-visible:ring-offset-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n >\n {headerInner}\n </button>\n ) : (\n <div className={headerClass}>{headerInner}</div>\n );\n\n return (\n <li\n key={step.id ?? index}\n data-react-fancy-stepper-step=\"\"\n data-state={state}\n data-index={index}\n data-step-id={step.id}\n data-disabled={step.disabled ? \"true\" : undefined}\n aria-current={isCurrent ? \"step\" : undefined}\n className={cn(\"relative\", horizontal ? \"min-w-0 flex-1\" : !isLast && \"pb-8\")}\n >\n {!isLast && (\n <span\n aria-hidden=\"true\"\n data-react-fancy-stepper-connector=\"\"\n className={cn(\n \"absolute\",\n horizontal\n ? \"top-4 start-[calc(50%+1.5rem)] h-px w-[calc(100%-3rem)]\"\n : \"top-10 bottom-2 start-4 w-px -translate-x-1/2 rtl:translate-x-1/2\",\n index < current\n ? \"bg-zinc-900 dark:bg-white\"\n : \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]\",\n )}\n />\n )}\n {header}\n {(step.description != null || showBody) && (\n <div className={horizontal ? \"mt-1 px-2 text-center\" : \"ps-12\"}>\n {step.description != null && (\n <div\n data-react-fancy-stepper-description=\"\"\n className=\"text-sm text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\"\n >\n {step.description}\n </div>\n )}\n {showBody && (\n <div\n data-react-fancy-stepper-content=\"\"\n className=\"mt-2 text-sm text-[color:var(--fancy-text-subtle,var(--color-zinc-600))] dark:text-[color:var(--fancy-text-subtle-dark,var(--color-zinc-400))]\"\n >\n {step.content}\n </div>\n )}\n </div>\n )}\n </li>\n );\n })}\n </ol>\n );\n },\n);\n\nStepperRoot.displayName = \"Stepper\";\n\nexport const Stepper = Object.assign(StepperRoot, { Step: StepperStep });\n"]}
@@ -90,7 +90,7 @@ var Avatar = forwardRef(
90
90
  "span",
91
91
  {
92
92
  className: cn(
93
- "absolute bottom-0 right-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]",
93
+ "absolute bottom-0 end-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]",
94
94
  statusSizeClasses[size],
95
95
  statusColorClasses[status]
96
96
  )
@@ -104,5 +104,5 @@ var Avatar = forwardRef(
104
104
  Avatar.displayName = "Avatar";
105
105
 
106
106
  export { Avatar };
107
- //# sourceMappingURL=chunk-UZCR7DK5.js.map
108
- //# sourceMappingURL=chunk-UZCR7DK5.js.map
107
+ //# sourceMappingURL=chunk-LXEOBSEZ.js.map
108
+ //# sourceMappingURL=chunk-LXEOBSEZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;AAIA,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,WAAA,EAAa;AAAA;AACf,CAAA;AAKA,IAAM,oBAAA,GAAmD;AAAA,EACvD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAA,GAAgD;AAAA,EACpD,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,kBAAA,GAAmD;AAAA,EACvD,MAAA,EAAQ,cAAA;AAAA,EACR,OAAA,EAAS,aAAA;AAAA,EACT,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEO,IAAM,MAAA,GAAS,UAAA;AAAA,EACpB,CACE;AAAA,IACE,GAAA;AAAA,IACA,GAAA,GAAM,EAAA;AAAA,IACN,QAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,KAEF,GAAA,KACG;AACH,IAAA,MAAM,OAAA,GAAU,IAAA,KAAS,IAAA,GAAO,IAAA,GAAO,IAAA,IAAQ,IAAA;AAC/C,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,yBAAA,EAAwB,EAAA;AAAA,QACxB,SAAA,EAAW,EAAA;AAAA,UACT,+DAAA;AAAA,UACA,qBAAqB,IAAI,CAAA;AAAA,UACzB,CAAC,GAAA,IAAO,qHAAA;AAAA,UACR;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAW,IAAA;AAAA,cACX,8BAAA,EAA8B,OAAA;AAAA,cAC9B,SAAA,EAAU,mBAAA;AAAA,cACV,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,OAAO,CAAA;AAAE;AAAA,WAC/C;AAAA,UAED,GAAA,mBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,GAAA;AAAA,cACA,SAAA,EAAU;AAAA;AAAA,WACZ,mBAEA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,0DAAA;AAAA,gBACA,iBAAiB,IAAI;AAAA,eACvB;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,MAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,sKAAA;AAAA,gBACA,kBAAkB,IAAI,CAAA;AAAA,gBACtB,mBAAmB,MAAM;AAAA;AAC3B;AAAA;AACF;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-UZCR7DK5.js","sourcesContent":["import { forwardRef, type CSSProperties } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { AvatarProps } from \"./Avatar.types\";\n\nconst glowColors = {\n on: \"#a855f7\", // violet — neutral\n xp: \"#22c55e\", // green\n achievement: \"#f59e0b\", // amber\n} as const;\n\ntype AvatarSize = NonNullable<AvatarProps[\"size\"]>;\ntype AvatarStatus = NonNullable<AvatarProps[\"status\"]>;\n\nconst containerSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-6 w-6\",\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n};\n\nconst fallbackTextSize: Record<AvatarSize, string> = {\n xs: \"text-xs\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n};\n\nconst statusSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-4 w-4\",\n};\n\nconst statusColorClasses: Record<AvatarStatus, string> = {\n online: \"bg-green-500\",\n offline: \"bg-zinc-400\",\n busy: \"bg-red-500\",\n away: \"bg-amber-500\",\n};\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n fallback,\n size = \"md\",\n status,\n glow,\n className,\n },\n ref,\n ) => {\n const glowKey = glow === true ? \"on\" : glow || null;\n return (\n <div\n ref={ref}\n data-react-fancy-avatar=\"\"\n className={cn(\n \"relative inline-flex items-center justify-center rounded-full\",\n containerSizeClasses[size],\n !src && \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]\",\n className,\n )}\n >\n {glowKey && (\n <span\n aria-hidden\n data-react-fancy-avatar-glow={glowKey}\n className=\"fancy-avatar-glow\"\n style={{ \"--fancy-glow\": glowColors[glowKey] } as CSSProperties}\n />\n )}\n {src ? (\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full rounded-full object-cover\"\n />\n ) : (\n <span\n className={cn(\n \"font-medium text-zinc-600 dark:text-zinc-300 select-none\",\n fallbackTextSize[size],\n )}\n >\n {fallback}\n </span>\n )}\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 right-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n statusSizeClasses[size],\n statusColorClasses[status],\n )}\n />\n )}\n </div>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n"]}
1
+ {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;AAIA,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,WAAA,EAAa;AAAA;AACf,CAAA;AAKA,IAAM,oBAAA,GAAmD;AAAA,EACvD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAA,GAAgD;AAAA,EACpD,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,kBAAA,GAAmD;AAAA,EACvD,MAAA,EAAQ,cAAA;AAAA,EACR,OAAA,EAAS,aAAA;AAAA,EACT,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEO,IAAM,MAAA,GAAS,UAAA;AAAA,EACpB,CACE;AAAA,IACE,GAAA;AAAA,IACA,GAAA,GAAM,EAAA;AAAA,IACN,QAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,KAEF,GAAA,KACG;AACH,IAAA,MAAM,OAAA,GAAU,IAAA,KAAS,IAAA,GAAO,IAAA,GAAO,IAAA,IAAQ,IAAA;AAC/C,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,yBAAA,EAAwB,EAAA;AAAA,QACxB,SAAA,EAAW,EAAA;AAAA,UACT,+DAAA;AAAA,UACA,qBAAqB,IAAI,CAAA;AAAA,UACzB,CAAC,GAAA,IAAO,qHAAA;AAAA,UACR;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAW,IAAA;AAAA,cACX,8BAAA,EAA8B,OAAA;AAAA,cAC9B,SAAA,EAAU,mBAAA;AAAA,cACV,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,OAAO,CAAA;AAAE;AAAA,WAC/C;AAAA,UAED,GAAA,mBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,GAAA;AAAA,cACA,SAAA,EAAU;AAAA;AAAA,WACZ,mBAEA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,0DAAA;AAAA,gBACA,iBAAiB,IAAI;AAAA,eACvB;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,MAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,oKAAA;AAAA,gBACA,kBAAkB,IAAI,CAAA;AAAA,gBACtB,mBAAmB,MAAM;AAAA;AAC3B;AAAA;AACF;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-LXEOBSEZ.js","sourcesContent":["import { forwardRef, type CSSProperties } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { AvatarProps } from \"./Avatar.types\";\n\nconst glowColors = {\n on: \"#a855f7\", // violet — neutral\n xp: \"#22c55e\", // green\n achievement: \"#f59e0b\", // amber\n} as const;\n\ntype AvatarSize = NonNullable<AvatarProps[\"size\"]>;\ntype AvatarStatus = NonNullable<AvatarProps[\"status\"]>;\n\nconst containerSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-6 w-6\",\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n};\n\nconst fallbackTextSize: Record<AvatarSize, string> = {\n xs: \"text-xs\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n};\n\nconst statusSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-4 w-4\",\n};\n\nconst statusColorClasses: Record<AvatarStatus, string> = {\n online: \"bg-green-500\",\n offline: \"bg-zinc-400\",\n busy: \"bg-red-500\",\n away: \"bg-amber-500\",\n};\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n fallback,\n size = \"md\",\n status,\n glow,\n className,\n },\n ref,\n ) => {\n const glowKey = glow === true ? \"on\" : glow || null;\n return (\n <div\n ref={ref}\n data-react-fancy-avatar=\"\"\n className={cn(\n \"relative inline-flex items-center justify-center rounded-full\",\n containerSizeClasses[size],\n !src && \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]\",\n className,\n )}\n >\n {glowKey && (\n <span\n aria-hidden\n data-react-fancy-avatar-glow={glowKey}\n className=\"fancy-avatar-glow\"\n style={{ \"--fancy-glow\": glowColors[glowKey] } as CSSProperties}\n />\n )}\n {src ? (\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full rounded-full object-cover\"\n />\n ) : (\n <span\n className={cn(\n \"font-medium text-zinc-600 dark:text-zinc-300 select-none\",\n fallbackTextSize[size],\n )}\n >\n {fallback}\n </span>\n )}\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 end-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n statusSizeClasses[size],\n statusColorClasses[status],\n )}\n />\n )}\n </div>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n"]}