country-select-pro 5.6.6 → 6.1.3

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 (549) hide show
  1. package/README.md +1 -1
  2. package/dist/country-select.js +176 -88
  3. package/dist/data.json +4333 -0
  4. package/dist/flags/1x1/ad.svg +148 -0
  5. package/dist/flags/1x1/ae.svg +6 -0
  6. package/dist/flags/1x1/af.svg +81 -0
  7. package/dist/flags/1x1/ag.svg +14 -0
  8. package/dist/flags/1x1/ai.svg +29 -0
  9. package/dist/flags/1x1/al.svg +5 -0
  10. package/dist/flags/1x1/am.svg +5 -0
  11. package/dist/flags/1x1/ao.svg +13 -0
  12. package/dist/flags/1x1/aq.svg +5 -0
  13. package/dist/flags/1x1/ar.svg +32 -0
  14. package/dist/flags/1x1/arab.svg +109 -0
  15. package/dist/flags/1x1/as.svg +73 -0
  16. package/dist/flags/1x1/asean.svg +13 -0
  17. package/dist/flags/1x1/at.svg +4 -0
  18. package/dist/flags/1x1/au.svg +8 -0
  19. package/dist/flags/1x1/aw.svg +186 -0
  20. package/dist/flags/1x1/ax.svg +18 -0
  21. package/dist/flags/1x1/az.svg +8 -0
  22. package/dist/flags/1x1/ba.svg +12 -0
  23. package/dist/flags/1x1/bb.svg +6 -0
  24. package/dist/flags/1x1/bd.svg +4 -0
  25. package/dist/flags/1x1/be.svg +7 -0
  26. package/dist/flags/1x1/bf.svg +7 -0
  27. package/dist/flags/1x1/bg.svg +5 -0
  28. package/dist/flags/1x1/bh.svg +4 -0
  29. package/dist/flags/1x1/bi.svg +15 -0
  30. package/dist/flags/1x1/bj.svg +14 -0
  31. package/dist/flags/1x1/bl.svg +7 -0
  32. package/dist/flags/1x1/bm.svg +97 -0
  33. package/dist/flags/1x1/bn.svg +36 -0
  34. package/dist/flags/1x1/bo.svg +674 -0
  35. package/dist/flags/1x1/bq.svg +5 -0
  36. package/dist/flags/1x1/br.svg +45 -0
  37. package/dist/flags/1x1/bs.svg +13 -0
  38. package/dist/flags/1x1/bt.svg +89 -0
  39. package/dist/flags/1x1/bv.svg +13 -0
  40. package/dist/flags/1x1/bw.svg +7 -0
  41. package/dist/flags/1x1/by.svg +18 -0
  42. package/dist/flags/1x1/bz.svg +145 -0
  43. package/dist/flags/1x1/ca.svg +4 -0
  44. package/dist/flags/1x1/cc.svg +19 -0
  45. package/dist/flags/1x1/cd.svg +12 -0
  46. package/dist/flags/1x1/cefta.svg +13 -0
  47. package/dist/flags/1x1/cf.svg +15 -0
  48. package/dist/flags/1x1/cg.svg +12 -0
  49. package/dist/flags/1x1/ch.svg +9 -0
  50. package/dist/flags/1x1/ci.svg +7 -0
  51. package/dist/flags/1x1/ck.svg +9 -0
  52. package/dist/flags/1x1/cl.svg +13 -0
  53. package/dist/flags/1x1/cm.svg +15 -0
  54. package/dist/flags/1x1/cn.svg +11 -0
  55. package/dist/flags/1x1/co.svg +7 -0
  56. package/dist/flags/1x1/cp.svg +7 -0
  57. package/dist/flags/1x1/cr.svg +7 -0
  58. package/dist/flags/1x1/cu.svg +13 -0
  59. package/dist/flags/1x1/cv.svg +13 -0
  60. package/dist/flags/1x1/cw.svg +14 -0
  61. package/dist/flags/1x1/cx.svg +15 -0
  62. package/dist/flags/1x1/cy.svg +6 -0
  63. package/dist/flags/1x1/cz.svg +5 -0
  64. package/dist/flags/1x1/de.svg +5 -0
  65. package/dist/flags/1x1/dg.svg +130 -0
  66. package/dist/flags/1x1/dj.svg +13 -0
  67. package/dist/flags/1x1/dk.svg +5 -0
  68. package/dist/flags/1x1/dm.svg +152 -0
  69. package/dist/flags/1x1/do.svg +122 -0
  70. package/dist/flags/1x1/dz.svg +5 -0
  71. package/dist/flags/1x1/eac.svg +48 -0
  72. package/dist/flags/1x1/ec.svg +138 -0
  73. package/dist/flags/1x1/ee.svg +5 -0
  74. package/dist/flags/1x1/eg.svg +38 -0
  75. package/dist/flags/1x1/eh.svg +11 -0
  76. package/dist/flags/1x1/er.svg +13 -0
  77. package/dist/flags/1x1/es-ct.svg +4 -0
  78. package/dist/flags/1x1/es-ga.svg +187 -0
  79. package/dist/flags/1x1/es-pv.svg +5 -0
  80. package/dist/flags/1x1/es.svg +547 -0
  81. package/dist/flags/1x1/et.svg +14 -0
  82. package/dist/flags/1x1/eu.svg +28 -0
  83. package/dist/flags/1x1/fi.svg +5 -0
  84. package/dist/flags/1x1/fj.svg +123 -0
  85. package/dist/flags/1x1/fk.svg +89 -0
  86. package/dist/flags/1x1/fm.svg +11 -0
  87. package/dist/flags/1x1/fo.svg +12 -0
  88. package/dist/flags/1x1/fr.svg +5 -0
  89. package/dist/flags/1x1/ga.svg +7 -0
  90. package/dist/flags/1x1/gb-eng.svg +5 -0
  91. package/dist/flags/1x1/gb-nir.svg +131 -0
  92. package/dist/flags/1x1/gb-sct.svg +4 -0
  93. package/dist/flags/1x1/gb-wls.svg +9 -0
  94. package/dist/flags/1x1/gb.svg +7 -0
  95. package/dist/flags/1x1/gd.svg +27 -0
  96. package/dist/flags/1x1/ge.svg +6 -0
  97. package/dist/flags/1x1/gf.svg +5 -0
  98. package/dist/flags/1x1/gg.svg +9 -0
  99. package/dist/flags/1x1/gh.svg +6 -0
  100. package/dist/flags/1x1/gi.svg +32 -0
  101. package/dist/flags/1x1/gl.svg +4 -0
  102. package/dist/flags/1x1/gm.svg +9 -0
  103. package/dist/flags/1x1/gn.svg +7 -0
  104. package/dist/flags/1x1/gp.svg +5 -0
  105. package/dist/flags/1x1/gq.svg +23 -0
  106. package/dist/flags/1x1/gr.svg +16 -0
  107. package/dist/flags/1x1/gs.svg +132 -0
  108. package/dist/flags/1x1/gt.svg +204 -0
  109. package/dist/flags/1x1/gu.svg +19 -0
  110. package/dist/flags/1x1/gw.svg +15 -0
  111. package/dist/flags/1x1/gy.svg +9 -0
  112. package/dist/flags/1x1/hk.svg +8 -0
  113. package/dist/flags/1x1/hm.svg +8 -0
  114. package/dist/flags/1x1/hn.svg +18 -0
  115. package/dist/flags/1x1/hr.svg +56 -0
  116. package/dist/flags/1x1/ht.svg +116 -0
  117. package/dist/flags/1x1/hu.svg +7 -0
  118. package/dist/flags/1x1/ic.svg +7 -0
  119. package/dist/flags/1x1/id.svg +4 -0
  120. package/dist/flags/1x1/ie.svg +7 -0
  121. package/dist/flags/1x1/il.svg +14 -0
  122. package/dist/flags/1x1/im.svg +36 -0
  123. package/dist/flags/1x1/in.svg +25 -0
  124. package/dist/flags/1x1/io.svg +130 -0
  125. package/dist/flags/1x1/iq.svg +10 -0
  126. package/dist/flags/1x1/ir.svg +219 -0
  127. package/dist/flags/1x1/is.svg +12 -0
  128. package/dist/flags/1x1/it.svg +7 -0
  129. package/dist/flags/1x1/je.svg +62 -0
  130. package/dist/flags/1x1/jm.svg +8 -0
  131. package/dist/flags/1x1/jo.svg +16 -0
  132. package/dist/flags/1x1/jp.svg +11 -0
  133. package/dist/flags/1x1/ke.svg +23 -0
  134. package/dist/flags/1x1/kg.svg +4 -0
  135. package/dist/flags/1x1/kh.svg +61 -0
  136. package/dist/flags/1x1/ki.svg +36 -0
  137. package/dist/flags/1x1/km.svg +16 -0
  138. package/dist/flags/1x1/kn.svg +14 -0
  139. package/dist/flags/1x1/kp.svg +15 -0
  140. package/dist/flags/1x1/kr.svg +17 -0
  141. package/dist/flags/1x1/kw.svg +13 -0
  142. package/dist/flags/1x1/ky.svg +103 -0
  143. package/dist/flags/1x1/kz.svg +36 -0
  144. package/dist/flags/1x1/la.svg +12 -0
  145. package/dist/flags/1x1/lb.svg +15 -0
  146. package/dist/flags/1x1/lc.svg +8 -0
  147. package/dist/flags/1x1/li.svg +43 -0
  148. package/dist/flags/1x1/lk.svg +22 -0
  149. package/dist/flags/1x1/lr.svg +14 -0
  150. package/dist/flags/1x1/ls.svg +8 -0
  151. package/dist/flags/1x1/lt.svg +7 -0
  152. package/dist/flags/1x1/lu.svg +5 -0
  153. package/dist/flags/1x1/lv.svg +6 -0
  154. package/dist/flags/1x1/ly.svg +13 -0
  155. package/dist/flags/1x1/ma.svg +4 -0
  156. package/dist/flags/1x1/mc.svg +6 -0
  157. package/dist/flags/1x1/md.svg +71 -0
  158. package/dist/flags/1x1/me.svg +118 -0
  159. package/dist/flags/1x1/mf.svg +5 -0
  160. package/dist/flags/1x1/mg.svg +7 -0
  161. package/dist/flags/1x1/mh.svg +8 -0
  162. package/dist/flags/1x1/mk.svg +5 -0
  163. package/dist/flags/1x1/ml.svg +7 -0
  164. package/dist/flags/1x1/mm.svg +10 -0
  165. package/dist/flags/1x1/mn.svg +14 -0
  166. package/dist/flags/1x1/mo.svg +9 -0
  167. package/dist/flags/1x1/mp.svg +86 -0
  168. package/dist/flags/1x1/mq.svg +5 -0
  169. package/dist/flags/1x1/mr.svg +6 -0
  170. package/dist/flags/1x1/ms.svg +25 -0
  171. package/dist/flags/1x1/mt.svg +56 -0
  172. package/dist/flags/1x1/mu.svg +8 -0
  173. package/dist/flags/1x1/mv.svg +6 -0
  174. package/dist/flags/1x1/mw.svg +15 -0
  175. package/dist/flags/1x1/mx.svg +377 -0
  176. package/dist/flags/1x1/my.svg +18 -0
  177. package/dist/flags/1x1/mz.svg +21 -0
  178. package/dist/flags/1x1/na.svg +16 -0
  179. package/dist/flags/1x1/nc.svg +12 -0
  180. package/dist/flags/1x1/ne.svg +6 -0
  181. package/dist/flags/1x1/nf.svg +11 -0
  182. package/dist/flags/1x1/ng.svg +6 -0
  183. package/dist/flags/1x1/ni.svg +129 -0
  184. package/dist/flags/1x1/nl.svg +5 -0
  185. package/dist/flags/1x1/no.svg +7 -0
  186. package/dist/flags/1x1/np.svg +18 -0
  187. package/dist/flags/1x1/nr.svg +12 -0
  188. package/dist/flags/1x1/nu.svg +10 -0
  189. package/dist/flags/1x1/null +1 -0
  190. package/dist/flags/1x1/nz.svg +36 -0
  191. package/dist/flags/1x1/om.svg +115 -0
  192. package/dist/flags/1x1/pa.svg +13 -0
  193. package/dist/flags/1x1/pc.svg +33 -0
  194. package/dist/flags/1x1/pe.svg +4 -0
  195. package/dist/flags/1x1/pf.svg +18 -0
  196. package/dist/flags/1x1/pg.svg +16 -0
  197. package/dist/flags/1x1/ph.svg +6 -0
  198. package/dist/flags/1x1/pk.svg +15 -0
  199. package/dist/flags/1x1/pl.svg +6 -0
  200. package/dist/flags/1x1/pm.svg +5 -0
  201. package/dist/flags/1x1/pn.svg +53 -0
  202. package/dist/flags/1x1/pr.svg +13 -0
  203. package/dist/flags/1x1/ps.svg +6 -0
  204. package/dist/flags/1x1/pt.svg +57 -0
  205. package/dist/flags/1x1/pw.svg +11 -0
  206. package/dist/flags/1x1/py.svg +156 -0
  207. package/dist/flags/1x1/qa.svg +4 -0
  208. package/dist/flags/1x1/re.svg +7 -0
  209. package/dist/flags/1x1/ro.svg +7 -0
  210. package/dist/flags/1x1/rs.svg +296 -0
  211. package/dist/flags/1x1/ru.svg +5 -0
  212. package/dist/flags/1x1/rw.svg +13 -0
  213. package/dist/flags/1x1/sa.svg +25 -0
  214. package/dist/flags/1x1/sb.svg +13 -0
  215. package/dist/flags/1x1/sc.svg +7 -0
  216. package/dist/flags/1x1/sd.svg +13 -0
  217. package/dist/flags/1x1/se.svg +4 -0
  218. package/dist/flags/1x1/sg.svg +13 -0
  219. package/dist/flags/1x1/sh-ac.svg +690 -0
  220. package/dist/flags/1x1/sh-hl.svg +164 -0
  221. package/dist/flags/1x1/sh-ta.svg +76 -0
  222. package/dist/flags/1x1/sh.svg +7 -0
  223. package/dist/flags/1x1/si.svg +18 -0
  224. package/dist/flags/1x1/sj.svg +7 -0
  225. package/dist/flags/1x1/sk.svg +9 -0
  226. package/dist/flags/1x1/sl.svg +12 -0
  227. package/dist/flags/1x1/sm.svg +73 -0
  228. package/dist/flags/1x1/sn.svg +8 -0
  229. package/dist/flags/1x1/so.svg +11 -0
  230. package/dist/flags/1x1/sr.svg +6 -0
  231. package/dist/flags/1x1/ss.svg +8 -0
  232. package/dist/flags/1x1/st.svg +16 -0
  233. package/dist/flags/1x1/sv.svg +593 -0
  234. package/dist/flags/1x1/sx.svg +56 -0
  235. package/dist/flags/1x1/sy.svg +6 -0
  236. package/dist/flags/1x1/sz.svg +34 -0
  237. package/dist/flags/1x1/tc.svg +50 -0
  238. package/dist/flags/1x1/td.svg +7 -0
  239. package/dist/flags/1x1/tf.svg +15 -0
  240. package/dist/flags/1x1/tg.svg +14 -0
  241. package/dist/flags/1x1/th.svg +7 -0
  242. package/dist/flags/1x1/tj.svg +26 -0
  243. package/dist/flags/1x1/tk.svg +5 -0
  244. package/dist/flags/1x1/tl.svg +13 -0
  245. package/dist/flags/1x1/tm.svg +205 -0
  246. package/dist/flags/1x1/tn.svg +4 -0
  247. package/dist/flags/1x1/to.svg +10 -0
  248. package/dist/flags/1x1/tr.svg +8 -0
  249. package/dist/flags/1x1/tt.svg +7 -0
  250. package/dist/flags/1x1/tv.svg +9 -0
  251. package/dist/flags/1x1/tw.svg +32 -0
  252. package/dist/flags/1x1/tz.svg +15 -0
  253. package/dist/flags/1x1/ua.svg +6 -0
  254. package/dist/flags/1x1/ug.svg +30 -0
  255. package/dist/flags/1x1/um.svg +9 -0
  256. package/dist/flags/1x1/un.svg +16 -0
  257. package/dist/flags/1x1/us.svg +9 -0
  258. package/dist/flags/1x1/uy.svg +28 -0
  259. package/dist/flags/1x1/uz.svg +30 -0
  260. package/dist/flags/1x1/va.svg +190 -0
  261. package/dist/flags/1x1/vc.svg +8 -0
  262. package/dist/flags/1x1/ve.svg +26 -0
  263. package/dist/flags/1x1/vg.svg +59 -0
  264. package/dist/flags/1x1/vi.svg +28 -0
  265. package/dist/flags/1x1/vn.svg +11 -0
  266. package/dist/flags/1x1/vu.svg +21 -0
  267. package/dist/flags/1x1/wf.svg +5 -0
  268. package/dist/flags/1x1/ws.svg +7 -0
  269. package/dist/flags/1x1/xk.svg +5 -0
  270. package/dist/flags/1x1/xx.svg +4 -0
  271. package/dist/flags/1x1/ye.svg +7 -0
  272. package/dist/flags/1x1/yt.svg +5 -0
  273. package/dist/flags/1x1/za.svg +17 -0
  274. package/dist/flags/1x1/zm.svg +27 -0
  275. package/dist/flags/1x1/zw.svg +21 -0
  276. package/dist/flags/4x3/ad.svg +150 -0
  277. package/dist/flags/4x3/ae.svg +6 -0
  278. package/dist/flags/4x3/af.svg +81 -0
  279. package/dist/flags/4x3/ag.svg +14 -0
  280. package/dist/flags/4x3/ai.svg +29 -0
  281. package/dist/flags/4x3/al.svg +5 -0
  282. package/dist/flags/4x3/am.svg +5 -0
  283. package/dist/flags/4x3/ao.svg +13 -0
  284. package/dist/flags/4x3/aq.svg +5 -0
  285. package/dist/flags/4x3/ar.svg +32 -0
  286. package/dist/flags/4x3/arab.svg +109 -0
  287. package/dist/flags/4x3/as.svg +72 -0
  288. package/dist/flags/4x3/asean.svg +13 -0
  289. package/dist/flags/4x3/at.svg +4 -0
  290. package/dist/flags/4x3/au.svg +8 -0
  291. package/dist/flags/4x3/aw.svg +186 -0
  292. package/dist/flags/4x3/ax.svg +18 -0
  293. package/dist/flags/4x3/az.svg +8 -0
  294. package/dist/flags/4x3/ba.svg +12 -0
  295. package/dist/flags/4x3/bb.svg +6 -0
  296. package/dist/flags/4x3/bd.svg +4 -0
  297. package/dist/flags/4x3/be.svg +7 -0
  298. package/dist/flags/4x3/bf.svg +7 -0
  299. package/dist/flags/4x3/bg.svg +5 -0
  300. package/dist/flags/4x3/bh.svg +4 -0
  301. package/dist/flags/4x3/bi.svg +15 -0
  302. package/dist/flags/4x3/bj.svg +14 -0
  303. package/dist/flags/4x3/bl.svg +5 -0
  304. package/dist/flags/4x3/bm.svg +97 -0
  305. package/dist/flags/4x3/bn.svg +36 -0
  306. package/dist/flags/4x3/bo.svg +673 -0
  307. package/dist/flags/4x3/bq.svg +5 -0
  308. package/dist/flags/4x3/br.svg +45 -0
  309. package/dist/flags/4x3/bs.svg +13 -0
  310. package/dist/flags/4x3/bt.svg +89 -0
  311. package/dist/flags/4x3/bv.svg +13 -0
  312. package/dist/flags/4x3/bw.svg +7 -0
  313. package/dist/flags/4x3/by.svg +18 -0
  314. package/dist/flags/4x3/bz.svg +145 -0
  315. package/dist/flags/4x3/ca.svg +4 -0
  316. package/dist/flags/4x3/cc.svg +19 -0
  317. package/dist/flags/4x3/cd.svg +5 -0
  318. package/dist/flags/4x3/cefta.svg +13 -0
  319. package/dist/flags/4x3/cf.svg +15 -0
  320. package/dist/flags/4x3/cg.svg +12 -0
  321. package/dist/flags/4x3/ch.svg +9 -0
  322. package/dist/flags/4x3/ci.svg +7 -0
  323. package/dist/flags/4x3/ck.svg +9 -0
  324. package/dist/flags/4x3/cl.svg +13 -0
  325. package/dist/flags/4x3/cm.svg +15 -0
  326. package/dist/flags/4x3/cn.svg +11 -0
  327. package/dist/flags/4x3/co.svg +7 -0
  328. package/dist/flags/4x3/cp.svg +7 -0
  329. package/dist/flags/4x3/cr.svg +7 -0
  330. package/dist/flags/4x3/cu.svg +13 -0
  331. package/dist/flags/4x3/cv.svg +13 -0
  332. package/dist/flags/4x3/cw.svg +14 -0
  333. package/dist/flags/4x3/cx.svg +15 -0
  334. package/dist/flags/4x3/cy.svg +6 -0
  335. package/dist/flags/4x3/cz.svg +5 -0
  336. package/dist/flags/4x3/de.svg +5 -0
  337. package/dist/flags/4x3/dg.svg +130 -0
  338. package/dist/flags/4x3/dj.svg +13 -0
  339. package/dist/flags/4x3/dk.svg +5 -0
  340. package/dist/flags/4x3/dm.svg +152 -0
  341. package/dist/flags/4x3/do.svg +121 -0
  342. package/dist/flags/4x3/dz.svg +5 -0
  343. package/dist/flags/4x3/eac.svg +48 -0
  344. package/dist/flags/4x3/ec.svg +138 -0
  345. package/dist/flags/4x3/ee.svg +5 -0
  346. package/dist/flags/4x3/eg.svg +38 -0
  347. package/dist/flags/4x3/eh.svg +16 -0
  348. package/dist/flags/4x3/er.svg +8 -0
  349. package/dist/flags/4x3/es-ct.svg +4 -0
  350. package/dist/flags/4x3/es-ga.svg +187 -0
  351. package/dist/flags/4x3/es-pv.svg +5 -0
  352. package/dist/flags/4x3/es.svg +544 -0
  353. package/dist/flags/4x3/et.svg +14 -0
  354. package/dist/flags/4x3/eu.svg +28 -0
  355. package/dist/flags/4x3/fi.svg +5 -0
  356. package/dist/flags/4x3/fj.svg +120 -0
  357. package/dist/flags/4x3/fk.svg +90 -0
  358. package/dist/flags/4x3/fm.svg +11 -0
  359. package/dist/flags/4x3/fo.svg +12 -0
  360. package/dist/flags/4x3/fr.svg +5 -0
  361. package/dist/flags/4x3/ga.svg +7 -0
  362. package/dist/flags/4x3/gb-eng.svg +5 -0
  363. package/dist/flags/4x3/gb-nir.svg +132 -0
  364. package/dist/flags/4x3/gb-sct.svg +4 -0
  365. package/dist/flags/4x3/gb-wls.svg +9 -0
  366. package/dist/flags/4x3/gb.svg +7 -0
  367. package/dist/flags/4x3/gd.svg +27 -0
  368. package/dist/flags/4x3/ge.svg +6 -0
  369. package/dist/flags/4x3/gf.svg +5 -0
  370. package/dist/flags/4x3/gg.svg +9 -0
  371. package/dist/flags/4x3/gh.svg +6 -0
  372. package/dist/flags/4x3/gi.svg +32 -0
  373. package/dist/flags/4x3/gl.svg +4 -0
  374. package/dist/flags/4x3/gm.svg +14 -0
  375. package/dist/flags/4x3/gn.svg +7 -0
  376. package/dist/flags/4x3/gp.svg +5 -0
  377. package/dist/flags/4x3/gq.svg +23 -0
  378. package/dist/flags/4x3/gr.svg +16 -0
  379. package/dist/flags/4x3/gs.svg +133 -0
  380. package/dist/flags/4x3/gt.svg +204 -0
  381. package/dist/flags/4x3/gu.svg +19 -0
  382. package/dist/flags/4x3/gw.svg +13 -0
  383. package/dist/flags/4x3/gy.svg +9 -0
  384. package/dist/flags/4x3/hk.svg +8 -0
  385. package/dist/flags/4x3/hm.svg +8 -0
  386. package/dist/flags/4x3/hn.svg +18 -0
  387. package/dist/flags/4x3/hr.svg +58 -0
  388. package/dist/flags/4x3/ht.svg +116 -0
  389. package/dist/flags/4x3/hu.svg +7 -0
  390. package/dist/flags/4x3/ic.svg +7 -0
  391. package/dist/flags/4x3/id.svg +4 -0
  392. package/dist/flags/4x3/ie.svg +7 -0
  393. package/dist/flags/4x3/il.svg +14 -0
  394. package/dist/flags/4x3/im.svg +36 -0
  395. package/dist/flags/4x3/in.svg +25 -0
  396. package/dist/flags/4x3/io.svg +130 -0
  397. package/dist/flags/4x3/iq.svg +10 -0
  398. package/dist/flags/4x3/ir.svg +219 -0
  399. package/dist/flags/4x3/is.svg +12 -0
  400. package/dist/flags/4x3/it.svg +7 -0
  401. package/dist/flags/4x3/je.svg +62 -0
  402. package/dist/flags/4x3/jm.svg +8 -0
  403. package/dist/flags/4x3/jo.svg +16 -0
  404. package/dist/flags/4x3/jp.svg +11 -0
  405. package/dist/flags/4x3/ke.svg +23 -0
  406. package/dist/flags/4x3/kg.svg +4 -0
  407. package/dist/flags/4x3/kh.svg +61 -0
  408. package/dist/flags/4x3/ki.svg +36 -0
  409. package/dist/flags/4x3/km.svg +16 -0
  410. package/dist/flags/4x3/kn.svg +14 -0
  411. package/dist/flags/4x3/kp.svg +15 -0
  412. package/dist/flags/4x3/kr.svg +24 -0
  413. package/dist/flags/4x3/kw.svg +13 -0
  414. package/dist/flags/4x3/ky.svg +103 -0
  415. package/dist/flags/4x3/kz.svg +36 -0
  416. package/dist/flags/4x3/la.svg +12 -0
  417. package/dist/flags/4x3/lb.svg +15 -0
  418. package/dist/flags/4x3/lc.svg +8 -0
  419. package/dist/flags/4x3/li.svg +43 -0
  420. package/dist/flags/4x3/lk.svg +22 -0
  421. package/dist/flags/4x3/lr.svg +14 -0
  422. package/dist/flags/4x3/ls.svg +8 -0
  423. package/dist/flags/4x3/lt.svg +7 -0
  424. package/dist/flags/4x3/lu.svg +5 -0
  425. package/dist/flags/4x3/lv.svg +7 -0
  426. package/dist/flags/4x3/ly.svg +13 -0
  427. package/dist/flags/4x3/ma.svg +4 -0
  428. package/dist/flags/4x3/mc.svg +6 -0
  429. package/dist/flags/4x3/md.svg +70 -0
  430. package/dist/flags/4x3/me.svg +116 -0
  431. package/dist/flags/4x3/mf.svg +5 -0
  432. package/dist/flags/4x3/mg.svg +7 -0
  433. package/dist/flags/4x3/mh.svg +7 -0
  434. package/dist/flags/4x3/mk.svg +5 -0
  435. package/dist/flags/4x3/ml.svg +7 -0
  436. package/dist/flags/4x3/mm.svg +12 -0
  437. package/dist/flags/4x3/mn.svg +14 -0
  438. package/dist/flags/4x3/mo.svg +9 -0
  439. package/dist/flags/4x3/mp.svg +86 -0
  440. package/dist/flags/4x3/mq.svg +5 -0
  441. package/dist/flags/4x3/mr.svg +6 -0
  442. package/dist/flags/4x3/ms.svg +29 -0
  443. package/dist/flags/4x3/mt.svg +58 -0
  444. package/dist/flags/4x3/mu.svg +8 -0
  445. package/dist/flags/4x3/mv.svg +6 -0
  446. package/dist/flags/4x3/mw.svg +10 -0
  447. package/dist/flags/4x3/mx.svg +382 -0
  448. package/dist/flags/4x3/my.svg +26 -0
  449. package/dist/flags/4x3/mz.svg +21 -0
  450. package/dist/flags/4x3/na.svg +16 -0
  451. package/dist/flags/4x3/nc.svg +13 -0
  452. package/dist/flags/4x3/ne.svg +6 -0
  453. package/dist/flags/4x3/nf.svg +9 -0
  454. package/dist/flags/4x3/ng.svg +6 -0
  455. package/dist/flags/4x3/ni.svg +129 -0
  456. package/dist/flags/4x3/nl.svg +5 -0
  457. package/dist/flags/4x3/no.svg +7 -0
  458. package/dist/flags/4x3/np.svg +13 -0
  459. package/dist/flags/4x3/nr.svg +12 -0
  460. package/dist/flags/4x3/nu.svg +10 -0
  461. package/dist/flags/4x3/null +1 -0
  462. package/dist/flags/4x3/nz.svg +36 -0
  463. package/dist/flags/4x3/om.svg +115 -0
  464. package/dist/flags/4x3/pa.svg +7 -0
  465. package/dist/flags/4x3/pc.svg +33 -0
  466. package/dist/flags/4x3/pe.svg +4 -0
  467. package/dist/flags/4x3/pf.svg +19 -0
  468. package/dist/flags/4x3/pg.svg +9 -0
  469. package/dist/flags/4x3/ph.svg +6 -0
  470. package/dist/flags/4x3/pk.svg +15 -0
  471. package/dist/flags/4x3/pl.svg +6 -0
  472. package/dist/flags/4x3/pm.svg +5 -0
  473. package/dist/flags/4x3/pn.svg +53 -0
  474. package/dist/flags/4x3/pr.svg +13 -0
  475. package/dist/flags/4x3/ps.svg +6 -0
  476. package/dist/flags/4x3/pt.svg +57 -0
  477. package/dist/flags/4x3/pw.svg +11 -0
  478. package/dist/flags/4x3/py.svg +157 -0
  479. package/dist/flags/4x3/qa.svg +4 -0
  480. package/dist/flags/4x3/re.svg +5 -0
  481. package/dist/flags/4x3/ro.svg +7 -0
  482. package/dist/flags/4x3/rs.svg +292 -0
  483. package/dist/flags/4x3/ru.svg +5 -0
  484. package/dist/flags/4x3/rw.svg +13 -0
  485. package/dist/flags/4x3/sa.svg +25 -0
  486. package/dist/flags/4x3/sb.svg +13 -0
  487. package/dist/flags/4x3/sc.svg +7 -0
  488. package/dist/flags/4x3/sd.svg +13 -0
  489. package/dist/flags/4x3/se.svg +4 -0
  490. package/dist/flags/4x3/sg.svg +13 -0
  491. package/dist/flags/4x3/sh-ac.svg +689 -0
  492. package/dist/flags/4x3/sh-hl.svg +164 -0
  493. package/dist/flags/4x3/sh-ta.svg +76 -0
  494. package/dist/flags/4x3/sh.svg +7 -0
  495. package/dist/flags/4x3/si.svg +18 -0
  496. package/dist/flags/4x3/sj.svg +7 -0
  497. package/dist/flags/4x3/sk.svg +9 -0
  498. package/dist/flags/4x3/sl.svg +7 -0
  499. package/dist/flags/4x3/sm.svg +75 -0
  500. package/dist/flags/4x3/sn.svg +8 -0
  501. package/dist/flags/4x3/so.svg +11 -0
  502. package/dist/flags/4x3/sr.svg +6 -0
  503. package/dist/flags/4x3/ss.svg +8 -0
  504. package/dist/flags/4x3/st.svg +16 -0
  505. package/dist/flags/4x3/sv.svg +593 -0
  506. package/dist/flags/4x3/sx.svg +56 -0
  507. package/dist/flags/4x3/sy.svg +6 -0
  508. package/dist/flags/4x3/sz.svg +34 -0
  509. package/dist/flags/4x3/tc.svg +50 -0
  510. package/dist/flags/4x3/td.svg +7 -0
  511. package/dist/flags/4x3/tf.svg +15 -0
  512. package/dist/flags/4x3/tg.svg +14 -0
  513. package/dist/flags/4x3/th.svg +7 -0
  514. package/dist/flags/4x3/tj.svg +22 -0
  515. package/dist/flags/4x3/tk.svg +5 -0
  516. package/dist/flags/4x3/tl.svg +13 -0
  517. package/dist/flags/4x3/tm.svg +204 -0
  518. package/dist/flags/4x3/tn.svg +4 -0
  519. package/dist/flags/4x3/to.svg +10 -0
  520. package/dist/flags/4x3/tr.svg +8 -0
  521. package/dist/flags/4x3/tt.svg +5 -0
  522. package/dist/flags/4x3/tv.svg +9 -0
  523. package/dist/flags/4x3/tw.svg +34 -0
  524. package/dist/flags/4x3/tz.svg +13 -0
  525. package/dist/flags/4x3/ua.svg +6 -0
  526. package/dist/flags/4x3/ug.svg +30 -0
  527. package/dist/flags/4x3/um.svg +9 -0
  528. package/dist/flags/4x3/un.svg +16 -0
  529. package/dist/flags/4x3/us.svg +9 -0
  530. package/dist/flags/4x3/uy.svg +28 -0
  531. package/dist/flags/4x3/uz.svg +30 -0
  532. package/dist/flags/4x3/va.svg +190 -0
  533. package/dist/flags/4x3/vc.svg +8 -0
  534. package/dist/flags/4x3/ve.svg +26 -0
  535. package/dist/flags/4x3/vg.svg +59 -0
  536. package/dist/flags/4x3/vi.svg +28 -0
  537. package/dist/flags/4x3/vn.svg +11 -0
  538. package/dist/flags/4x3/vu.svg +21 -0
  539. package/dist/flags/4x3/wf.svg +5 -0
  540. package/dist/flags/4x3/ws.svg +7 -0
  541. package/dist/flags/4x3/xk.svg +5 -0
  542. package/dist/flags/4x3/xx.svg +4 -0
  543. package/dist/flags/4x3/ye.svg +7 -0
  544. package/dist/flags/4x3/yt.svg +5 -0
  545. package/dist/flags/4x3/za.svg +17 -0
  546. package/dist/flags/4x3/zm.svg +27 -0
  547. package/dist/flags/4x3/zw.svg +21 -0
  548. package/package.json +5 -5
  549. package/dist/country-select.min.js +0 -1
package/README.md CHANGED
@@ -28,7 +28,7 @@ CountrySelect Pro provides a clean and fast country dropdown with **search, phon
28
28
 
29
29
  Try the interactive demo:
30
30
 
31
- https://nikmauro.github.io/country-select-pro/
31
+ https://nikmauro.github.io/country-select-pro/docs/
32
32
 
33
33
  ---
34
34
 
@@ -1,28 +1,29 @@
1
1
  /**
2
- * CountrySelect Pro v5.6.6
2
+ * CountrySelect Pro v6.1.3
3
3
  * ---------------------------------------------------------------------------
4
4
  * Features:
5
5
  * - SVG Arrow Down icon
6
6
  * - HTMX Auto-initialization
7
7
  * - Improved Validation UI
8
8
  * - Zero Dependencies
9
+ * - 4x3, 1x1 Flags
9
10
  * ---------------------------------------------------------------------------
10
11
  */
11
12
 
13
+
12
14
  class CountrySelect {
13
15
 
16
+
14
17
  constructor(element, options = {}) {
15
18
  this.input = element;
16
19
  if (!this.input) return;
17
20
 
18
- // προσθέτεις class
19
- if (!this.input.classList.contains('checkout-trigger')) {
20
- this.input.classList.add('checkout-trigger');
21
- }
22
-
23
- // μετά ελέγχεις αν έχει ήδη init
21
+ // 1. ΕΛΕΓΧΟΣ HTMX: Αν έχει ήδη γίνει init, σταμάτα αμέσως
24
22
  if (this.input.dataset.csInitialized === '1') return;
25
23
 
24
+ // 2. ΚΛΕΙΔΩΜΑ HTMX: Σημειώνουμε ότι έγινε init ΠΡΙΝ τρέξει το async _init()
25
+ this.input.dataset.csInitialized = '1';
26
+
26
27
  // Configuration
27
28
  this.schema = this.input.dataset.schema || "{img} {name}";
28
29
  this.schemaReturn = this.input.dataset.schemaReturn || this.schema;
@@ -45,7 +46,10 @@ class CountrySelect {
45
46
  this.isOpen = false;
46
47
  this.activeIndex = -1;
47
48
  this.rowHeight = 44;
48
-
49
+
50
+ // Base URL για το JSON και τα SVG flags
51
+ this.baseUrl = 'https://cdn.jsdelivr.net/gh/nikmauro/country-select-pro@6.1.3/';
52
+
49
53
  this._init();
50
54
  }
51
55
 
@@ -58,6 +62,24 @@ class CountrySelect {
58
62
 
59
63
  _applyStyles() {
60
64
  const styles = `
65
+ .cs-no-results {
66
+ padding: 10px;
67
+ text-align: center;
68
+ color: #999;
69
+ cursor: default;
70
+ font-style: italic;
71
+ }
72
+
73
+ .cs-flag-img {
74
+ width: 22px !important;
75
+ height: 16px !important;
76
+ object-fit: cover; /* Ή contain, ανάλογα πώς φαίνεται καλύτερα */
77
+ vertical-align: middle;
78
+ margin-right: 8px;
79
+ border-radius: 2px;
80
+ display: inline-block;
81
+ }
82
+
61
83
  .cs-wrapper { position: relative; font-family: inherit; width: 100%; outline: none; }
62
84
  .cs-trigger {
63
85
  /* Bootstrap 5 Exact Specs */
@@ -90,6 +112,11 @@ class CountrySelect {
90
112
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
91
113
  }
92
114
 
115
+ .flag-emoji {
116
+ font-size: 1.2em; /* Για να φαίνεται πιο καθαρό το emoji */
117
+ margin-right: 8px;
118
+ }
119
+
93
120
  .cs-dropdown {
94
121
  position: absolute; left: 0; right: 0; background: #fff;
95
122
  border: 1px solid rgba(0,0,0,.15); border-radius: 0.375rem;
@@ -158,6 +185,19 @@ class CountrySelect {
158
185
  this.input.parentNode.insertBefore(this.wrapper, this.input.nextSibling);
159
186
  }
160
187
 
188
+ _updateActiveElement() {
189
+ const options = this.wrapper.querySelectorAll('.cs-option');
190
+ options.forEach((el, index) => {
191
+ if (index === this.activeIndex) {
192
+ el.classList.add('active');
193
+ // Bonus UX: Κάνει scroll αν το element είναι εκτός οθόνης
194
+ el.scrollIntoView({ block: 'nearest' });
195
+ } else {
196
+ el.classList.remove('active');
197
+ }
198
+ });
199
+ }
200
+
161
201
  _updatePosition() {
162
202
  const rect = this.wrapper.getBoundingClientRect();
163
203
  const dropdownHeight = (this.rowLimit * this.rowHeight) + (this.hasSearch ? 60 : 0);
@@ -172,26 +212,35 @@ class CountrySelect {
172
212
  }
173
213
 
174
214
  async _loadData() {
175
- try {
176
- const res = await fetch('https://restcountries.com/v3.1/all?fields=name,flags,cca2,idd');
177
- const data = await res.json();
178
-
179
- this.countries = data.map(c => ({
180
- name: c.name.common,
181
- code: c.cca2.toUpperCase(),
182
- flag: c.flags.svg,
183
- phone: c.idd.root + (c.idd.suffixes ? (c.idd.suffixes.length > 1 ? "" : c.idd.suffixes[0]) : ""),
184
- isPreferred: this.preferredCodes.includes(c.cca2.toUpperCase())
185
- })).sort((a, b) => a.name.localeCompare(b.name));
186
-
187
- this.filteredCountries = [...this.countries];
188
- this._renderOptions();
189
- this._syncInitialValue();
190
- } catch (e) {
191
- console.error("CountrySelect API Fail", e);
192
- }
215
+ try {
216
+ const jsonUrl = `${this.baseUrl}dist/data.json`; // Χρήση του baseUrl
217
+
218
+ const res = await fetch(jsonUrl);
219
+ const json = await res.json();
220
+ const data = json?.data?.objects || [];
221
+
222
+ this.countries = data.map(c => {
223
+ const code = c.codes?.alpha_2 ? c.codes.alpha_2.toUpperCase() : "";
224
+ return {
225
+ name: c.names?.common || "",
226
+ code: code,
227
+ // Δημιουργία path για το SVG με βάση το code
228
+ flag: code ? `${this.baseUrl}dist/flags/4x3/${code.toLowerCase()}.svg` : "",
229
+ phone: (c.calling_codes && c.calling_codes.length > 0) ? `+${c.calling_codes[0]}` : "",
230
+ isPreferred: code ? this.preferredCodes.includes(code) : false
231
+ };
232
+ }).filter(c => c.code !== "")
233
+ .sort((a, b) => a.name.localeCompare(b.name));
234
+
235
+ this.filteredCountries = [...this.countries];
236
+ this._renderOptions();
237
+ this._syncInitialValue();
238
+ } catch (e) {
239
+ console.error("CountrySelect Load Fail:", e);
193
240
  }
241
+ }
194
242
 
243
+
195
244
  _syncInitialValue() {
196
245
  const val = this.input.value;
197
246
  if (!val) {
@@ -202,41 +251,55 @@ class CountrySelect {
202
251
  if (current) this._updateUI(current);
203
252
  }
204
253
 
254
+
205
255
  _parseTemplate(template, country) {
206
- return template.replace('{img}', `<img src="${country.flag}">`).replace('{name}', `<span>${country.name}</span>`).replace('{code}', `<span>${country.code}</span>`).replace('{phone}', `<span>${country.phone}</span>`);
256
+ return template
257
+ .replace('{img}', `<img src="${country.flag}" class="cs-flag-img" loading="lazy" alt="${country.name}">`)
258
+ .replace('{name}', `<span>${country.name}</span>`)
259
+ .replace('{code}', `<span>${country.code}</span>`)
260
+ .replace('{phone}', `<span>${country.phone}</span>`);
261
+ }
262
+
263
+ _renderOptions() {
264
+ const listContainer = this.wrapper.querySelector('.cs-list');
265
+ if (!listContainer) return;
266
+ listContainer.innerHTML = '';
267
+
268
+ // Έλεγχος αν η λίστα είναι άδεια
269
+ if (this.filteredCountries.length === 0) {
270
+ const noResults = document.createElement('div');
271
+ noResults.className = 'cs-no-results';
272
+ noResults.innerHTML = '<span class="cs-no-results-text">Not found</span>';
273
+ listContainer.appendChild(noResults);
274
+ return; // Σταματάμε εδώ
207
275
  }
208
276
 
209
- _renderOptions() {
210
- const listContainer = this.wrapper.querySelector('.cs-list');
211
- if (!listContainer) return;
212
- listContainer.innerHTML = '';
213
- const searchVal = this.wrapper.querySelector('.cs-search-input')?.value || "";
214
-
215
- const preferred = this.filteredCountries.filter(c => c.isPreferred);
216
- const others = this.filteredCountries.filter(c => !c.isPreferred);
217
-
218
- const createOption = (country, index) => {
219
- const div = document.createElement('div');
220
- div.className = `cs-option ${index === this.activeIndex ? 'active' : ''}`;
221
- div.innerHTML = this._parseTemplate(this.schema, country);
222
- div.onclick = (e) => {
223
- e.stopPropagation();
224
- this._select(country);
225
- };
226
- return div;
227
- };
277
+ const searchVal = this.wrapper.querySelector('.cs-search-input')?.value || "";
278
+ const preferred = this.filteredCountries.filter(c => c.isPreferred);
279
+ const others = this.filteredCountries.filter(c => !c.isPreferred);
228
280
 
229
- preferred.forEach((c, i) => listContainer.appendChild(createOption(c, i)));
281
+ const createOption = (country, index) => {
282
+ const div = document.createElement('div');
283
+ div.className = `cs-option ${index === this.activeIndex ? 'active' : ''}`;
284
+ div.innerHTML = this._parseTemplate(this.schema, country);
285
+ div.onclick = (e) => {
286
+ e.stopPropagation();
287
+ this._select(country);
288
+ };
289
+ return div;
290
+ };
230
291
 
231
- if (preferred.length > 0 && others.length > 0 && !searchVal) {
232
- const hr = document.createElement('div');
233
- hr.className = 'cs-divider';
234
- listContainer.appendChild(hr);
235
- }
292
+ preferred.forEach((c, i) => listContainer.appendChild(createOption(c, i)));
236
293
 
237
- others.forEach((c, i) => listContainer.appendChild(createOption(c, preferred.length + i)));
294
+ if (preferred.length > 0 && others.length > 0 && !searchVal) {
295
+ const hr = document.createElement('div');
296
+ hr.className = 'cs-divider';
297
+ listContainer.appendChild(hr);
238
298
  }
239
299
 
300
+ others.forEach((c, i) => listContainer.appendChild(createOption(c, preferred.length + i)));
301
+ }
302
+
240
303
  _select(country) {
241
304
  this._updateUI(country);
242
305
 
@@ -263,53 +326,78 @@ class CountrySelect {
263
326
  if (content) content.innerHTML = this._parseTemplate(this.schemaReturn, country);
264
327
  }
265
328
 
266
- _toggle(force) {
267
- if (this.countries.length === 0) return;
268
- this.isOpen = force !== undefined ? force : !this.isOpen;
269
- if (this.isOpen) {
270
- this._updatePosition();
271
- document.dispatchEvent(new CustomEvent('cs-close-others', {detail: {opener: this.wrapper}}));
329
+ _toggle(force) {
330
+ if (this.countries.length === 0) return;
331
+ this.isOpen = force !== undefined ? force : !this.isOpen;
332
+
333
+ if (this.isOpen) {
334
+ this._updatePosition();
335
+ document.dispatchEvent(new CustomEvent('cs-close-others', {detail: {opener: this.wrapper}}));
272
336
 
337
+ // ΑΛΛΑΓΗ: Έλεγχος αν η λίστα έχει ήδη στοιχεία
338
+ const list = this.wrapper.querySelector('.cs-list');
339
+ if (list.children.length === 0) {
273
340
  this._renderOptions();
274
- const list = this.wrapper.querySelector('.cs-list');
275
- list.style.maxHeight = `${this.rowLimit * this.rowHeight}px`;
341
+ }
276
342
 
277
- const pref = this.filteredCountries.filter(c => c.isPreferred);
278
- const oth = this.filteredCountries.filter(c => !c.isPreferred);
279
- const fullList = [...pref, ...oth];
280
- this.activeIndex = fullList.findIndex(c => this.input.value.includes(c.code) || this.input.value.includes(c.phone));
343
+ list.style.maxHeight = `${this.rowLimit * this.rowHeight}px`;
281
344
 
282
- if (this.activeIndex > -1) setTimeout(() => this._scrollToActive(), 0);
283
- if (this.hasSearch) setTimeout(() => this.wrapper.querySelector('.cs-search-input').focus(), 50);
284
- }
285
- this.wrapper.classList.toggle('open', this.isOpen);
345
+ const pref = this.filteredCountries.filter(c => c.isPreferred);
346
+ const oth = this.filteredCountries.filter(c => !c.isPreferred);
347
+ const fullList = [...pref, ...oth];
348
+ this.activeIndex = fullList.findIndex(c => this.input.value.includes(c.code) || this.input.value.includes(c.phone));
349
+
350
+ // ΑΛΛΑΓΗ: Ενημέρωσε το active element αντί να κάνεις re-render όλη τη λίστα
351
+ this._updateActiveElement();
352
+
353
+ if (this.activeIndex > -1) setTimeout(() => this._scrollToActive(), 0);
354
+ if (this.hasSearch) setTimeout(() => this.wrapper.querySelector('.cs-search-input').focus(), 50);
286
355
  }
356
+ this.wrapper.classList.toggle('open', this.isOpen);
357
+ }
287
358
 
288
359
  _bindEvents() {
289
360
  this.wrapper.querySelector('.cs-trigger').onclick = (e) => {
290
361
  e.stopPropagation();
291
362
  this._toggle();
292
363
  };
293
- this.wrapper.addEventListener('keydown', (e) => {
294
- if (!this.isOpen && (e.key === 'ArrowDown')) {
295
- e.preventDefault();
296
- this._toggle(true);
297
- return;
364
+
365
+ this.wrapper.addEventListener('keydown', (e) => {
366
+ if (!this.isOpen && (e.key === 'ArrowDown')) {
367
+ e.preventDefault();
368
+ this._toggle(true);
369
+ return;
370
+ }
371
+
372
+ if (this.isOpen) {
373
+ if (e.key === 'ArrowDown') {
374
+ e.preventDefault();
375
+ // ΕΛΕΓΧΟΣ: Μπορούμε να πάμε παρακάτω;
376
+ if (this.activeIndex < this.filteredCountries.length - 1) {
377
+ this.activeIndex++;
378
+ this._updateActiveElement();
379
+ this._scrollToActive();
298
380
  }
299
- if (this.isOpen) {
300
- if (e.key === 'ArrowDown') {
301
- e.preventDefault();
302
- this.activeIndex++;
303
- this._renderOptions();
304
- this._scrollToActive();
305
- } else if (e.key === 'ArrowUp') {
306
- e.preventDefault();
307
- this.activeIndex--;
308
- this._renderOptions();
309
- this._scrollToActive();
310
- } else if (e.key === 'Escape') this._toggle(false);
381
+ } else if (e.key === 'ArrowUp') {
382
+ e.preventDefault();
383
+ // ΕΛΕΓΧΟΣ: Μπορούμε να πάμε παραπάνω;
384
+ if (this.activeIndex > 0) {
385
+ this.activeIndex--;
386
+ this._updateActiveElement();
387
+ this._scrollToActive();
311
388
  }
312
- });
389
+ } else if (e.key === 'Escape') {
390
+ this._toggle(false);
391
+ } else if (e.key === 'Enter') {
392
+ e.preventDefault();
393
+ // Εδώ πρέπει να είμαστε σίγουροι ότι το activeIndex είναι έγκυρο
394
+ if (this.activeIndex >= 0 && this.activeIndex < this.filteredCountries.length) {
395
+ this._select(this.filteredCountries[this.activeIndex]);
396
+ }
397
+ }
398
+ }
399
+ });
400
+
313
401
  if (this.hasSearch) {
314
402
  this.wrapper.querySelector('.cs-search-input').oninput = (e) => {
315
403
  const term = e.target.value.toLowerCase();
@@ -380,4 +468,4 @@ if (document.readyState === 'loading') {
380
468
  document.addEventListener('DOMContentLoaded', setupListeners);
381
469
  } else {
382
470
  setupListeners();
383
- }
471
+ }