phlex-icons-flag 2.18.0 → 2.20.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 (555) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -1
  3. data/README.md +44 -0
  4. data/generators/flag.rb +1 -1
  5. data/generators/hero.rb +1 -1
  6. data/generators/tabler.rb +1 -1
  7. data/lib/phlex-icons/configuration.rb +24 -1
  8. data/lib/phlex-icons/flag/ad_rectangle.rb +1 -1
  9. data/lib/phlex-icons/flag/ad_square.rb +1 -1
  10. data/lib/phlex-icons/flag/ae_rectangle.rb +1 -1
  11. data/lib/phlex-icons/flag/ae_square.rb +1 -1
  12. data/lib/phlex-icons/flag/af_rectangle.rb +1 -1
  13. data/lib/phlex-icons/flag/af_square.rb +1 -1
  14. data/lib/phlex-icons/flag/ag_rectangle.rb +1 -1
  15. data/lib/phlex-icons/flag/ag_square.rb +1 -1
  16. data/lib/phlex-icons/flag/ai_rectangle.rb +1 -1
  17. data/lib/phlex-icons/flag/ai_square.rb +1 -1
  18. data/lib/phlex-icons/flag/al_rectangle.rb +1 -1
  19. data/lib/phlex-icons/flag/al_square.rb +1 -1
  20. data/lib/phlex-icons/flag/am_rectangle.rb +1 -1
  21. data/lib/phlex-icons/flag/am_square.rb +1 -1
  22. data/lib/phlex-icons/flag/ao_rectangle.rb +1 -1
  23. data/lib/phlex-icons/flag/ao_square.rb +1 -1
  24. data/lib/phlex-icons/flag/aq_rectangle.rb +1 -1
  25. data/lib/phlex-icons/flag/aq_square.rb +1 -1
  26. data/lib/phlex-icons/flag/ar_rectangle.rb +1 -1
  27. data/lib/phlex-icons/flag/ar_square.rb +1 -1
  28. data/lib/phlex-icons/flag/arab_rectangle.rb +1 -1
  29. data/lib/phlex-icons/flag/arab_square.rb +1 -1
  30. data/lib/phlex-icons/flag/as_rectangle.rb +1 -1
  31. data/lib/phlex-icons/flag/as_square.rb +1 -1
  32. data/lib/phlex-icons/flag/asean_rectangle.rb +1 -1
  33. data/lib/phlex-icons/flag/asean_square.rb +1 -1
  34. data/lib/phlex-icons/flag/at_rectangle.rb +1 -1
  35. data/lib/phlex-icons/flag/at_square.rb +1 -1
  36. data/lib/phlex-icons/flag/au_rectangle.rb +1 -1
  37. data/lib/phlex-icons/flag/au_square.rb +1 -1
  38. data/lib/phlex-icons/flag/aw_rectangle.rb +1 -1
  39. data/lib/phlex-icons/flag/aw_square.rb +1 -1
  40. data/lib/phlex-icons/flag/ax_rectangle.rb +1 -1
  41. data/lib/phlex-icons/flag/ax_square.rb +1 -1
  42. data/lib/phlex-icons/flag/az_rectangle.rb +1 -1
  43. data/lib/phlex-icons/flag/az_square.rb +1 -1
  44. data/lib/phlex-icons/flag/ba_rectangle.rb +1 -1
  45. data/lib/phlex-icons/flag/ba_square.rb +1 -1
  46. data/lib/phlex-icons/flag/bb_rectangle.rb +1 -1
  47. data/lib/phlex-icons/flag/bb_square.rb +1 -1
  48. data/lib/phlex-icons/flag/bd_rectangle.rb +1 -1
  49. data/lib/phlex-icons/flag/bd_square.rb +1 -1
  50. data/lib/phlex-icons/flag/be_rectangle.rb +1 -1
  51. data/lib/phlex-icons/flag/be_square.rb +1 -1
  52. data/lib/phlex-icons/flag/bf_rectangle.rb +1 -1
  53. data/lib/phlex-icons/flag/bf_square.rb +1 -1
  54. data/lib/phlex-icons/flag/bg_rectangle.rb +1 -1
  55. data/lib/phlex-icons/flag/bg_square.rb +1 -1
  56. data/lib/phlex-icons/flag/bh_rectangle.rb +1 -1
  57. data/lib/phlex-icons/flag/bh_square.rb +1 -1
  58. data/lib/phlex-icons/flag/bi_rectangle.rb +1 -1
  59. data/lib/phlex-icons/flag/bi_square.rb +1 -1
  60. data/lib/phlex-icons/flag/bj_rectangle.rb +1 -1
  61. data/lib/phlex-icons/flag/bj_square.rb +1 -1
  62. data/lib/phlex-icons/flag/bl_rectangle.rb +1 -1
  63. data/lib/phlex-icons/flag/bl_square.rb +1 -1
  64. data/lib/phlex-icons/flag/bm_rectangle.rb +1 -1
  65. data/lib/phlex-icons/flag/bm_square.rb +1 -1
  66. data/lib/phlex-icons/flag/bn_rectangle.rb +1 -1
  67. data/lib/phlex-icons/flag/bn_square.rb +1 -1
  68. data/lib/phlex-icons/flag/bo_rectangle.rb +1 -1
  69. data/lib/phlex-icons/flag/bo_square.rb +1 -1
  70. data/lib/phlex-icons/flag/bq_rectangle.rb +1 -1
  71. data/lib/phlex-icons/flag/bq_square.rb +1 -1
  72. data/lib/phlex-icons/flag/br_rectangle.rb +1 -1
  73. data/lib/phlex-icons/flag/br_square.rb +1 -1
  74. data/lib/phlex-icons/flag/bs_rectangle.rb +1 -1
  75. data/lib/phlex-icons/flag/bs_square.rb +1 -1
  76. data/lib/phlex-icons/flag/bt_rectangle.rb +1 -1
  77. data/lib/phlex-icons/flag/bt_square.rb +1 -1
  78. data/lib/phlex-icons/flag/bv_rectangle.rb +1 -1
  79. data/lib/phlex-icons/flag/bv_square.rb +1 -1
  80. data/lib/phlex-icons/flag/bw_rectangle.rb +1 -1
  81. data/lib/phlex-icons/flag/bw_square.rb +1 -1
  82. data/lib/phlex-icons/flag/by_rectangle.rb +1 -1
  83. data/lib/phlex-icons/flag/by_square.rb +1 -1
  84. data/lib/phlex-icons/flag/bz_rectangle.rb +1 -1
  85. data/lib/phlex-icons/flag/bz_square.rb +1 -1
  86. data/lib/phlex-icons/flag/ca_rectangle.rb +1 -1
  87. data/lib/phlex-icons/flag/ca_square.rb +1 -1
  88. data/lib/phlex-icons/flag/cc_rectangle.rb +1 -1
  89. data/lib/phlex-icons/flag/cc_square.rb +1 -1
  90. data/lib/phlex-icons/flag/cd_rectangle.rb +1 -1
  91. data/lib/phlex-icons/flag/cd_square.rb +1 -1
  92. data/lib/phlex-icons/flag/cefta_rectangle.rb +1 -1
  93. data/lib/phlex-icons/flag/cefta_square.rb +1 -1
  94. data/lib/phlex-icons/flag/cf_rectangle.rb +1 -1
  95. data/lib/phlex-icons/flag/cf_square.rb +1 -1
  96. data/lib/phlex-icons/flag/cg_rectangle.rb +1 -1
  97. data/lib/phlex-icons/flag/cg_square.rb +1 -1
  98. data/lib/phlex-icons/flag/ch_rectangle.rb +1 -1
  99. data/lib/phlex-icons/flag/ch_square.rb +1 -1
  100. data/lib/phlex-icons/flag/ci_rectangle.rb +1 -1
  101. data/lib/phlex-icons/flag/ci_square.rb +1 -1
  102. data/lib/phlex-icons/flag/ck_rectangle.rb +1 -1
  103. data/lib/phlex-icons/flag/ck_square.rb +1 -1
  104. data/lib/phlex-icons/flag/cl_rectangle.rb +1 -1
  105. data/lib/phlex-icons/flag/cl_square.rb +1 -1
  106. data/lib/phlex-icons/flag/cm_rectangle.rb +1 -1
  107. data/lib/phlex-icons/flag/cm_square.rb +1 -1
  108. data/lib/phlex-icons/flag/cn_rectangle.rb +1 -1
  109. data/lib/phlex-icons/flag/cn_square.rb +1 -1
  110. data/lib/phlex-icons/flag/co_rectangle.rb +1 -1
  111. data/lib/phlex-icons/flag/co_square.rb +1 -1
  112. data/lib/phlex-icons/flag/cp_rectangle.rb +1 -1
  113. data/lib/phlex-icons/flag/cp_square.rb +1 -1
  114. data/lib/phlex-icons/flag/cr_rectangle.rb +1 -1
  115. data/lib/phlex-icons/flag/cr_square.rb +1 -1
  116. data/lib/phlex-icons/flag/cu_rectangle.rb +1 -1
  117. data/lib/phlex-icons/flag/cu_square.rb +1 -1
  118. data/lib/phlex-icons/flag/cv_rectangle.rb +1 -1
  119. data/lib/phlex-icons/flag/cv_square.rb +1 -1
  120. data/lib/phlex-icons/flag/cw_rectangle.rb +1 -1
  121. data/lib/phlex-icons/flag/cw_square.rb +1 -1
  122. data/lib/phlex-icons/flag/cx_rectangle.rb +1 -1
  123. data/lib/phlex-icons/flag/cx_square.rb +1 -1
  124. data/lib/phlex-icons/flag/cy_rectangle.rb +1 -1
  125. data/lib/phlex-icons/flag/cy_square.rb +1 -1
  126. data/lib/phlex-icons/flag/cz_rectangle.rb +1 -1
  127. data/lib/phlex-icons/flag/cz_square.rb +1 -1
  128. data/lib/phlex-icons/flag/de_rectangle.rb +1 -1
  129. data/lib/phlex-icons/flag/de_square.rb +1 -1
  130. data/lib/phlex-icons/flag/dg_rectangle.rb +1 -1
  131. data/lib/phlex-icons/flag/dg_square.rb +1 -1
  132. data/lib/phlex-icons/flag/dj_rectangle.rb +1 -1
  133. data/lib/phlex-icons/flag/dj_square.rb +1 -1
  134. data/lib/phlex-icons/flag/dk_rectangle.rb +1 -1
  135. data/lib/phlex-icons/flag/dk_square.rb +1 -1
  136. data/lib/phlex-icons/flag/dm_rectangle.rb +1 -1
  137. data/lib/phlex-icons/flag/dm_square.rb +1 -1
  138. data/lib/phlex-icons/flag/do_rectangle.rb +1 -1
  139. data/lib/phlex-icons/flag/do_square.rb +1 -1
  140. data/lib/phlex-icons/flag/dz_rectangle.rb +1 -1
  141. data/lib/phlex-icons/flag/dz_square.rb +1 -1
  142. data/lib/phlex-icons/flag/eac_rectangle.rb +1 -1
  143. data/lib/phlex-icons/flag/eac_square.rb +1 -1
  144. data/lib/phlex-icons/flag/ec_rectangle.rb +1 -1
  145. data/lib/phlex-icons/flag/ec_square.rb +1 -1
  146. data/lib/phlex-icons/flag/ee_rectangle.rb +1 -1
  147. data/lib/phlex-icons/flag/ee_square.rb +1 -1
  148. data/lib/phlex-icons/flag/eg_rectangle.rb +1 -1
  149. data/lib/phlex-icons/flag/eg_square.rb +1 -1
  150. data/lib/phlex-icons/flag/eh_rectangle.rb +1 -1
  151. data/lib/phlex-icons/flag/eh_square.rb +1 -1
  152. data/lib/phlex-icons/flag/er_rectangle.rb +1 -1
  153. data/lib/phlex-icons/flag/er_square.rb +1 -1
  154. data/lib/phlex-icons/flag/es_ct_rectangle.rb +1 -1
  155. data/lib/phlex-icons/flag/es_ct_square.rb +1 -1
  156. data/lib/phlex-icons/flag/es_ga_rectangle.rb +1 -1
  157. data/lib/phlex-icons/flag/es_ga_square.rb +1 -1
  158. data/lib/phlex-icons/flag/es_pv_rectangle.rb +1 -1
  159. data/lib/phlex-icons/flag/es_pv_square.rb +1 -1
  160. data/lib/phlex-icons/flag/es_rectangle.rb +1 -1
  161. data/lib/phlex-icons/flag/es_square.rb +1 -1
  162. data/lib/phlex-icons/flag/et_rectangle.rb +1 -1
  163. data/lib/phlex-icons/flag/et_square.rb +1 -1
  164. data/lib/phlex-icons/flag/eu_rectangle.rb +1 -1
  165. data/lib/phlex-icons/flag/eu_square.rb +1 -1
  166. data/lib/phlex-icons/flag/fi_rectangle.rb +1 -1
  167. data/lib/phlex-icons/flag/fi_square.rb +1 -1
  168. data/lib/phlex-icons/flag/fj_rectangle.rb +1 -1
  169. data/lib/phlex-icons/flag/fj_square.rb +1 -1
  170. data/lib/phlex-icons/flag/fk_rectangle.rb +1 -1
  171. data/lib/phlex-icons/flag/fk_square.rb +1 -1
  172. data/lib/phlex-icons/flag/fm_rectangle.rb +1 -1
  173. data/lib/phlex-icons/flag/fm_square.rb +1 -1
  174. data/lib/phlex-icons/flag/fo_rectangle.rb +1 -1
  175. data/lib/phlex-icons/flag/fo_square.rb +1 -1
  176. data/lib/phlex-icons/flag/fr_rectangle.rb +1 -1
  177. data/lib/phlex-icons/flag/fr_square.rb +1 -1
  178. data/lib/phlex-icons/flag/ga_rectangle.rb +1 -1
  179. data/lib/phlex-icons/flag/ga_square.rb +1 -1
  180. data/lib/phlex-icons/flag/gb_eng_rectangle.rb +1 -1
  181. data/lib/phlex-icons/flag/gb_eng_square.rb +1 -1
  182. data/lib/phlex-icons/flag/gb_nir_rectangle.rb +1 -1
  183. data/lib/phlex-icons/flag/gb_nir_square.rb +1 -1
  184. data/lib/phlex-icons/flag/gb_rectangle.rb +1 -1
  185. data/lib/phlex-icons/flag/gb_sct_rectangle.rb +1 -1
  186. data/lib/phlex-icons/flag/gb_sct_square.rb +1 -1
  187. data/lib/phlex-icons/flag/gb_square.rb +1 -1
  188. data/lib/phlex-icons/flag/gb_wls_rectangle.rb +1 -1
  189. data/lib/phlex-icons/flag/gb_wls_square.rb +1 -1
  190. data/lib/phlex-icons/flag/gd_rectangle.rb +1 -1
  191. data/lib/phlex-icons/flag/gd_square.rb +1 -1
  192. data/lib/phlex-icons/flag/ge_rectangle.rb +1 -1
  193. data/lib/phlex-icons/flag/ge_square.rb +1 -1
  194. data/lib/phlex-icons/flag/gf_rectangle.rb +1 -1
  195. data/lib/phlex-icons/flag/gf_square.rb +1 -1
  196. data/lib/phlex-icons/flag/gg_rectangle.rb +1 -1
  197. data/lib/phlex-icons/flag/gg_square.rb +1 -1
  198. data/lib/phlex-icons/flag/gh_rectangle.rb +1 -1
  199. data/lib/phlex-icons/flag/gh_square.rb +1 -1
  200. data/lib/phlex-icons/flag/gi_rectangle.rb +1 -1
  201. data/lib/phlex-icons/flag/gi_square.rb +1 -1
  202. data/lib/phlex-icons/flag/gl_rectangle.rb +1 -1
  203. data/lib/phlex-icons/flag/gl_square.rb +1 -1
  204. data/lib/phlex-icons/flag/gm_rectangle.rb +1 -1
  205. data/lib/phlex-icons/flag/gm_square.rb +1 -1
  206. data/lib/phlex-icons/flag/gn_rectangle.rb +1 -1
  207. data/lib/phlex-icons/flag/gn_square.rb +1 -1
  208. data/lib/phlex-icons/flag/gp_rectangle.rb +1 -1
  209. data/lib/phlex-icons/flag/gp_square.rb +1 -1
  210. data/lib/phlex-icons/flag/gq_rectangle.rb +1 -1
  211. data/lib/phlex-icons/flag/gq_square.rb +1 -1
  212. data/lib/phlex-icons/flag/gr_rectangle.rb +1 -1
  213. data/lib/phlex-icons/flag/gr_square.rb +1 -1
  214. data/lib/phlex-icons/flag/gs_rectangle.rb +1 -1
  215. data/lib/phlex-icons/flag/gs_square.rb +1 -1
  216. data/lib/phlex-icons/flag/gt_rectangle.rb +1 -1
  217. data/lib/phlex-icons/flag/gt_square.rb +1 -1
  218. data/lib/phlex-icons/flag/gu_rectangle.rb +1 -1
  219. data/lib/phlex-icons/flag/gu_square.rb +1 -1
  220. data/lib/phlex-icons/flag/gw_rectangle.rb +1 -1
  221. data/lib/phlex-icons/flag/gw_square.rb +1 -1
  222. data/lib/phlex-icons/flag/gy_rectangle.rb +1 -1
  223. data/lib/phlex-icons/flag/gy_square.rb +1 -1
  224. data/lib/phlex-icons/flag/hk_rectangle.rb +1 -1
  225. data/lib/phlex-icons/flag/hk_square.rb +1 -1
  226. data/lib/phlex-icons/flag/hm_rectangle.rb +1 -1
  227. data/lib/phlex-icons/flag/hm_square.rb +1 -1
  228. data/lib/phlex-icons/flag/hn_rectangle.rb +1 -1
  229. data/lib/phlex-icons/flag/hn_square.rb +1 -1
  230. data/lib/phlex-icons/flag/hr_rectangle.rb +1 -1
  231. data/lib/phlex-icons/flag/hr_square.rb +1 -1
  232. data/lib/phlex-icons/flag/ht_rectangle.rb +1 -1
  233. data/lib/phlex-icons/flag/ht_square.rb +1 -1
  234. data/lib/phlex-icons/flag/hu_rectangle.rb +1 -1
  235. data/lib/phlex-icons/flag/hu_square.rb +1 -1
  236. data/lib/phlex-icons/flag/ic_rectangle.rb +1 -1
  237. data/lib/phlex-icons/flag/ic_square.rb +1 -1
  238. data/lib/phlex-icons/flag/id_rectangle.rb +1 -1
  239. data/lib/phlex-icons/flag/id_square.rb +1 -1
  240. data/lib/phlex-icons/flag/ie_rectangle.rb +1 -1
  241. data/lib/phlex-icons/flag/ie_square.rb +1 -1
  242. data/lib/phlex-icons/flag/il_rectangle.rb +1 -1
  243. data/lib/phlex-icons/flag/il_square.rb +1 -1
  244. data/lib/phlex-icons/flag/im_rectangle.rb +1 -1
  245. data/lib/phlex-icons/flag/im_square.rb +1 -1
  246. data/lib/phlex-icons/flag/in_rectangle.rb +1 -1
  247. data/lib/phlex-icons/flag/in_square.rb +1 -1
  248. data/lib/phlex-icons/flag/io_rectangle.rb +1 -1
  249. data/lib/phlex-icons/flag/io_square.rb +1 -1
  250. data/lib/phlex-icons/flag/iq_rectangle.rb +1 -1
  251. data/lib/phlex-icons/flag/iq_square.rb +1 -1
  252. data/lib/phlex-icons/flag/ir_rectangle.rb +1 -1
  253. data/lib/phlex-icons/flag/ir_square.rb +1 -1
  254. data/lib/phlex-icons/flag/is_rectangle.rb +1 -1
  255. data/lib/phlex-icons/flag/is_square.rb +1 -1
  256. data/lib/phlex-icons/flag/it_rectangle.rb +1 -1
  257. data/lib/phlex-icons/flag/it_square.rb +1 -1
  258. data/lib/phlex-icons/flag/je_rectangle.rb +1 -1
  259. data/lib/phlex-icons/flag/je_square.rb +1 -1
  260. data/lib/phlex-icons/flag/jm_rectangle.rb +1 -1
  261. data/lib/phlex-icons/flag/jm_square.rb +1 -1
  262. data/lib/phlex-icons/flag/jo_rectangle.rb +1 -1
  263. data/lib/phlex-icons/flag/jo_square.rb +1 -1
  264. data/lib/phlex-icons/flag/jp_rectangle.rb +1 -1
  265. data/lib/phlex-icons/flag/jp_square.rb +1 -1
  266. data/lib/phlex-icons/flag/ke_rectangle.rb +1 -1
  267. data/lib/phlex-icons/flag/ke_square.rb +1 -1
  268. data/lib/phlex-icons/flag/kg_rectangle.rb +1 -1
  269. data/lib/phlex-icons/flag/kg_square.rb +1 -1
  270. data/lib/phlex-icons/flag/kh_rectangle.rb +1 -1
  271. data/lib/phlex-icons/flag/kh_square.rb +1 -1
  272. data/lib/phlex-icons/flag/ki_rectangle.rb +1 -1
  273. data/lib/phlex-icons/flag/ki_square.rb +1 -1
  274. data/lib/phlex-icons/flag/km_rectangle.rb +1 -1
  275. data/lib/phlex-icons/flag/km_square.rb +1 -1
  276. data/lib/phlex-icons/flag/kn_rectangle.rb +1 -1
  277. data/lib/phlex-icons/flag/kn_square.rb +1 -1
  278. data/lib/phlex-icons/flag/kp_rectangle.rb +1 -1
  279. data/lib/phlex-icons/flag/kp_square.rb +1 -1
  280. data/lib/phlex-icons/flag/kr_rectangle.rb +1 -1
  281. data/lib/phlex-icons/flag/kr_square.rb +1 -1
  282. data/lib/phlex-icons/flag/kw_rectangle.rb +1 -1
  283. data/lib/phlex-icons/flag/kw_square.rb +1 -1
  284. data/lib/phlex-icons/flag/ky_rectangle.rb +1 -1
  285. data/lib/phlex-icons/flag/ky_square.rb +1 -1
  286. data/lib/phlex-icons/flag/kz_rectangle.rb +1 -1
  287. data/lib/phlex-icons/flag/kz_square.rb +1 -1
  288. data/lib/phlex-icons/flag/la_rectangle.rb +1 -1
  289. data/lib/phlex-icons/flag/la_square.rb +1 -1
  290. data/lib/phlex-icons/flag/lb_rectangle.rb +1 -1
  291. data/lib/phlex-icons/flag/lb_square.rb +1 -1
  292. data/lib/phlex-icons/flag/lc_rectangle.rb +1 -1
  293. data/lib/phlex-icons/flag/lc_square.rb +1 -1
  294. data/lib/phlex-icons/flag/li_rectangle.rb +1 -1
  295. data/lib/phlex-icons/flag/li_square.rb +1 -1
  296. data/lib/phlex-icons/flag/lk_rectangle.rb +1 -1
  297. data/lib/phlex-icons/flag/lk_square.rb +1 -1
  298. data/lib/phlex-icons/flag/lr_rectangle.rb +1 -1
  299. data/lib/phlex-icons/flag/lr_square.rb +1 -1
  300. data/lib/phlex-icons/flag/ls_rectangle.rb +1 -1
  301. data/lib/phlex-icons/flag/ls_square.rb +1 -1
  302. data/lib/phlex-icons/flag/lt_rectangle.rb +1 -1
  303. data/lib/phlex-icons/flag/lt_square.rb +1 -1
  304. data/lib/phlex-icons/flag/lu_rectangle.rb +1 -1
  305. data/lib/phlex-icons/flag/lu_square.rb +1 -1
  306. data/lib/phlex-icons/flag/lv_rectangle.rb +1 -1
  307. data/lib/phlex-icons/flag/lv_square.rb +1 -1
  308. data/lib/phlex-icons/flag/ly_rectangle.rb +1 -1
  309. data/lib/phlex-icons/flag/ly_square.rb +1 -1
  310. data/lib/phlex-icons/flag/ma_rectangle.rb +1 -1
  311. data/lib/phlex-icons/flag/ma_square.rb +1 -1
  312. data/lib/phlex-icons/flag/mc_rectangle.rb +1 -1
  313. data/lib/phlex-icons/flag/mc_square.rb +1 -1
  314. data/lib/phlex-icons/flag/md_rectangle.rb +1 -1
  315. data/lib/phlex-icons/flag/md_square.rb +1 -1
  316. data/lib/phlex-icons/flag/me_rectangle.rb +1 -1
  317. data/lib/phlex-icons/flag/me_square.rb +1 -1
  318. data/lib/phlex-icons/flag/mf_rectangle.rb +1 -1
  319. data/lib/phlex-icons/flag/mf_square.rb +1 -1
  320. data/lib/phlex-icons/flag/mg_rectangle.rb +1 -1
  321. data/lib/phlex-icons/flag/mg_square.rb +1 -1
  322. data/lib/phlex-icons/flag/mh_rectangle.rb +1 -1
  323. data/lib/phlex-icons/flag/mh_square.rb +1 -1
  324. data/lib/phlex-icons/flag/mk_rectangle.rb +1 -1
  325. data/lib/phlex-icons/flag/mk_square.rb +1 -1
  326. data/lib/phlex-icons/flag/ml_rectangle.rb +1 -1
  327. data/lib/phlex-icons/flag/ml_square.rb +1 -1
  328. data/lib/phlex-icons/flag/mm_rectangle.rb +1 -1
  329. data/lib/phlex-icons/flag/mm_square.rb +1 -1
  330. data/lib/phlex-icons/flag/mn_rectangle.rb +1 -1
  331. data/lib/phlex-icons/flag/mn_square.rb +1 -1
  332. data/lib/phlex-icons/flag/mo_rectangle.rb +1 -1
  333. data/lib/phlex-icons/flag/mo_square.rb +1 -1
  334. data/lib/phlex-icons/flag/mp_rectangle.rb +1 -1
  335. data/lib/phlex-icons/flag/mp_square.rb +1 -1
  336. data/lib/phlex-icons/flag/mq_rectangle.rb +1 -1
  337. data/lib/phlex-icons/flag/mq_square.rb +1 -1
  338. data/lib/phlex-icons/flag/mr_rectangle.rb +1 -1
  339. data/lib/phlex-icons/flag/mr_square.rb +1 -1
  340. data/lib/phlex-icons/flag/ms_rectangle.rb +1 -1
  341. data/lib/phlex-icons/flag/ms_square.rb +1 -1
  342. data/lib/phlex-icons/flag/mt_rectangle.rb +1 -1
  343. data/lib/phlex-icons/flag/mt_square.rb +1 -1
  344. data/lib/phlex-icons/flag/mu_rectangle.rb +1 -1
  345. data/lib/phlex-icons/flag/mu_square.rb +1 -1
  346. data/lib/phlex-icons/flag/mv_rectangle.rb +1 -1
  347. data/lib/phlex-icons/flag/mv_square.rb +1 -1
  348. data/lib/phlex-icons/flag/mw_rectangle.rb +1 -1
  349. data/lib/phlex-icons/flag/mw_square.rb +1 -1
  350. data/lib/phlex-icons/flag/mx_rectangle.rb +1 -1
  351. data/lib/phlex-icons/flag/mx_square.rb +1 -1
  352. data/lib/phlex-icons/flag/my_rectangle.rb +1 -1
  353. data/lib/phlex-icons/flag/my_square.rb +1 -1
  354. data/lib/phlex-icons/flag/mz_rectangle.rb +1 -1
  355. data/lib/phlex-icons/flag/mz_square.rb +1 -1
  356. data/lib/phlex-icons/flag/na_rectangle.rb +1 -1
  357. data/lib/phlex-icons/flag/na_square.rb +1 -1
  358. data/lib/phlex-icons/flag/nc_rectangle.rb +1 -1
  359. data/lib/phlex-icons/flag/nc_square.rb +1 -1
  360. data/lib/phlex-icons/flag/ne_rectangle.rb +1 -1
  361. data/lib/phlex-icons/flag/ne_square.rb +1 -1
  362. data/lib/phlex-icons/flag/nf_rectangle.rb +1 -1
  363. data/lib/phlex-icons/flag/nf_square.rb +1 -1
  364. data/lib/phlex-icons/flag/ng_rectangle.rb +1 -1
  365. data/lib/phlex-icons/flag/ng_square.rb +1 -1
  366. data/lib/phlex-icons/flag/ni_rectangle.rb +1 -1
  367. data/lib/phlex-icons/flag/ni_square.rb +1 -1
  368. data/lib/phlex-icons/flag/nl_rectangle.rb +1 -1
  369. data/lib/phlex-icons/flag/nl_square.rb +1 -1
  370. data/lib/phlex-icons/flag/no_rectangle.rb +1 -1
  371. data/lib/phlex-icons/flag/no_square.rb +1 -1
  372. data/lib/phlex-icons/flag/np_rectangle.rb +1 -1
  373. data/lib/phlex-icons/flag/np_square.rb +1 -1
  374. data/lib/phlex-icons/flag/nr_rectangle.rb +1 -1
  375. data/lib/phlex-icons/flag/nr_square.rb +1 -1
  376. data/lib/phlex-icons/flag/nu_rectangle.rb +1 -1
  377. data/lib/phlex-icons/flag/nu_square.rb +1 -1
  378. data/lib/phlex-icons/flag/nz_rectangle.rb +1 -1
  379. data/lib/phlex-icons/flag/nz_square.rb +1 -1
  380. data/lib/phlex-icons/flag/om_rectangle.rb +1 -1
  381. data/lib/phlex-icons/flag/om_square.rb +1 -1
  382. data/lib/phlex-icons/flag/pa_rectangle.rb +1 -1
  383. data/lib/phlex-icons/flag/pa_square.rb +1 -1
  384. data/lib/phlex-icons/flag/pc_rectangle.rb +1 -1
  385. data/lib/phlex-icons/flag/pc_square.rb +1 -1
  386. data/lib/phlex-icons/flag/pe_rectangle.rb +1 -1
  387. data/lib/phlex-icons/flag/pe_square.rb +1 -1
  388. data/lib/phlex-icons/flag/pf_rectangle.rb +1 -1
  389. data/lib/phlex-icons/flag/pf_square.rb +1 -1
  390. data/lib/phlex-icons/flag/pg_rectangle.rb +1 -1
  391. data/lib/phlex-icons/flag/pg_square.rb +1 -1
  392. data/lib/phlex-icons/flag/ph_rectangle.rb +1 -1
  393. data/lib/phlex-icons/flag/ph_square.rb +1 -1
  394. data/lib/phlex-icons/flag/pk_rectangle.rb +1 -1
  395. data/lib/phlex-icons/flag/pk_square.rb +1 -1
  396. data/lib/phlex-icons/flag/pl_rectangle.rb +1 -1
  397. data/lib/phlex-icons/flag/pl_square.rb +1 -1
  398. data/lib/phlex-icons/flag/pm_rectangle.rb +1 -1
  399. data/lib/phlex-icons/flag/pm_square.rb +1 -1
  400. data/lib/phlex-icons/flag/pn_rectangle.rb +1 -1
  401. data/lib/phlex-icons/flag/pn_square.rb +1 -1
  402. data/lib/phlex-icons/flag/pr_rectangle.rb +1 -1
  403. data/lib/phlex-icons/flag/pr_square.rb +1 -1
  404. data/lib/phlex-icons/flag/ps_rectangle.rb +1 -1
  405. data/lib/phlex-icons/flag/ps_square.rb +1 -1
  406. data/lib/phlex-icons/flag/pt_rectangle.rb +1 -1
  407. data/lib/phlex-icons/flag/pt_square.rb +1 -1
  408. data/lib/phlex-icons/flag/pw_rectangle.rb +1 -1
  409. data/lib/phlex-icons/flag/pw_square.rb +1 -1
  410. data/lib/phlex-icons/flag/py_rectangle.rb +1 -1
  411. data/lib/phlex-icons/flag/py_square.rb +1 -1
  412. data/lib/phlex-icons/flag/qa_rectangle.rb +1 -1
  413. data/lib/phlex-icons/flag/qa_square.rb +1 -1
  414. data/lib/phlex-icons/flag/re_rectangle.rb +1 -1
  415. data/lib/phlex-icons/flag/re_square.rb +1 -1
  416. data/lib/phlex-icons/flag/ro_rectangle.rb +1 -1
  417. data/lib/phlex-icons/flag/ro_square.rb +1 -1
  418. data/lib/phlex-icons/flag/rs_rectangle.rb +1 -1
  419. data/lib/phlex-icons/flag/rs_square.rb +1 -1
  420. data/lib/phlex-icons/flag/ru_rectangle.rb +1 -1
  421. data/lib/phlex-icons/flag/ru_square.rb +1 -1
  422. data/lib/phlex-icons/flag/rw_rectangle.rb +1 -1
  423. data/lib/phlex-icons/flag/rw_square.rb +1 -1
  424. data/lib/phlex-icons/flag/sa_rectangle.rb +1 -1
  425. data/lib/phlex-icons/flag/sa_square.rb +1 -1
  426. data/lib/phlex-icons/flag/sb_rectangle.rb +1 -1
  427. data/lib/phlex-icons/flag/sb_square.rb +1 -1
  428. data/lib/phlex-icons/flag/sc_rectangle.rb +1 -1
  429. data/lib/phlex-icons/flag/sc_square.rb +1 -1
  430. data/lib/phlex-icons/flag/sd_rectangle.rb +1 -1
  431. data/lib/phlex-icons/flag/sd_square.rb +1 -1
  432. data/lib/phlex-icons/flag/se_rectangle.rb +1 -1
  433. data/lib/phlex-icons/flag/se_square.rb +1 -1
  434. data/lib/phlex-icons/flag/sg_rectangle.rb +1 -1
  435. data/lib/phlex-icons/flag/sg_square.rb +1 -1
  436. data/lib/phlex-icons/flag/sh_ac_rectangle.rb +1 -1
  437. data/lib/phlex-icons/flag/sh_ac_square.rb +1 -1
  438. data/lib/phlex-icons/flag/sh_hl_rectangle.rb +1 -1
  439. data/lib/phlex-icons/flag/sh_hl_square.rb +1 -1
  440. data/lib/phlex-icons/flag/sh_rectangle.rb +1 -1
  441. data/lib/phlex-icons/flag/sh_square.rb +1 -1
  442. data/lib/phlex-icons/flag/sh_ta_rectangle.rb +1 -1
  443. data/lib/phlex-icons/flag/sh_ta_square.rb +1 -1
  444. data/lib/phlex-icons/flag/si_rectangle.rb +1 -1
  445. data/lib/phlex-icons/flag/si_square.rb +1 -1
  446. data/lib/phlex-icons/flag/sj_rectangle.rb +1 -1
  447. data/lib/phlex-icons/flag/sj_square.rb +1 -1
  448. data/lib/phlex-icons/flag/sk_rectangle.rb +1 -1
  449. data/lib/phlex-icons/flag/sk_square.rb +1 -1
  450. data/lib/phlex-icons/flag/sl_rectangle.rb +1 -1
  451. data/lib/phlex-icons/flag/sl_square.rb +1 -1
  452. data/lib/phlex-icons/flag/sm_rectangle.rb +1 -1
  453. data/lib/phlex-icons/flag/sm_square.rb +1 -1
  454. data/lib/phlex-icons/flag/sn_rectangle.rb +1 -1
  455. data/lib/phlex-icons/flag/sn_square.rb +1 -1
  456. data/lib/phlex-icons/flag/so_rectangle.rb +1 -1
  457. data/lib/phlex-icons/flag/so_square.rb +1 -1
  458. data/lib/phlex-icons/flag/sr_rectangle.rb +1 -1
  459. data/lib/phlex-icons/flag/sr_square.rb +1 -1
  460. data/lib/phlex-icons/flag/ss_rectangle.rb +1 -1
  461. data/lib/phlex-icons/flag/ss_square.rb +1 -1
  462. data/lib/phlex-icons/flag/st_rectangle.rb +1 -1
  463. data/lib/phlex-icons/flag/st_square.rb +1 -1
  464. data/lib/phlex-icons/flag/sv_rectangle.rb +1 -1
  465. data/lib/phlex-icons/flag/sv_square.rb +1 -1
  466. data/lib/phlex-icons/flag/sx_rectangle.rb +1 -1
  467. data/lib/phlex-icons/flag/sx_square.rb +1 -1
  468. data/lib/phlex-icons/flag/sy_rectangle.rb +1 -1
  469. data/lib/phlex-icons/flag/sy_square.rb +1 -1
  470. data/lib/phlex-icons/flag/sz_rectangle.rb +1 -1
  471. data/lib/phlex-icons/flag/sz_square.rb +1 -1
  472. data/lib/phlex-icons/flag/tc_rectangle.rb +1 -1
  473. data/lib/phlex-icons/flag/tc_square.rb +1 -1
  474. data/lib/phlex-icons/flag/td_rectangle.rb +1 -1
  475. data/lib/phlex-icons/flag/td_square.rb +1 -1
  476. data/lib/phlex-icons/flag/tf_rectangle.rb +1 -1
  477. data/lib/phlex-icons/flag/tf_square.rb +1 -1
  478. data/lib/phlex-icons/flag/tg_rectangle.rb +1 -1
  479. data/lib/phlex-icons/flag/tg_square.rb +1 -1
  480. data/lib/phlex-icons/flag/th_rectangle.rb +1 -1
  481. data/lib/phlex-icons/flag/th_square.rb +1 -1
  482. data/lib/phlex-icons/flag/tj_rectangle.rb +1 -1
  483. data/lib/phlex-icons/flag/tj_square.rb +1 -1
  484. data/lib/phlex-icons/flag/tk_rectangle.rb +1 -1
  485. data/lib/phlex-icons/flag/tk_square.rb +1 -1
  486. data/lib/phlex-icons/flag/tl_rectangle.rb +1 -1
  487. data/lib/phlex-icons/flag/tl_square.rb +1 -1
  488. data/lib/phlex-icons/flag/tm_rectangle.rb +1 -1
  489. data/lib/phlex-icons/flag/tm_square.rb +1 -1
  490. data/lib/phlex-icons/flag/tn_rectangle.rb +1 -1
  491. data/lib/phlex-icons/flag/tn_square.rb +1 -1
  492. data/lib/phlex-icons/flag/to_rectangle.rb +1 -1
  493. data/lib/phlex-icons/flag/to_square.rb +1 -1
  494. data/lib/phlex-icons/flag/tr_rectangle.rb +1 -1
  495. data/lib/phlex-icons/flag/tr_square.rb +1 -1
  496. data/lib/phlex-icons/flag/tt_rectangle.rb +1 -1
  497. data/lib/phlex-icons/flag/tt_square.rb +1 -1
  498. data/lib/phlex-icons/flag/tv_rectangle.rb +1 -1
  499. data/lib/phlex-icons/flag/tv_square.rb +1 -1
  500. data/lib/phlex-icons/flag/tw_rectangle.rb +1 -1
  501. data/lib/phlex-icons/flag/tw_square.rb +1 -1
  502. data/lib/phlex-icons/flag/tz_rectangle.rb +1 -1
  503. data/lib/phlex-icons/flag/tz_square.rb +1 -1
  504. data/lib/phlex-icons/flag/ua_rectangle.rb +1 -1
  505. data/lib/phlex-icons/flag/ua_square.rb +1 -1
  506. data/lib/phlex-icons/flag/ug_rectangle.rb +1 -1
  507. data/lib/phlex-icons/flag/ug_square.rb +1 -1
  508. data/lib/phlex-icons/flag/um_rectangle.rb +1 -1
  509. data/lib/phlex-icons/flag/um_square.rb +1 -1
  510. data/lib/phlex-icons/flag/un_rectangle.rb +1 -1
  511. data/lib/phlex-icons/flag/un_square.rb +1 -1
  512. data/lib/phlex-icons/flag/us_rectangle.rb +1 -1
  513. data/lib/phlex-icons/flag/us_square.rb +1 -1
  514. data/lib/phlex-icons/flag/uy_rectangle.rb +1 -1
  515. data/lib/phlex-icons/flag/uy_square.rb +1 -1
  516. data/lib/phlex-icons/flag/uz_rectangle.rb +1 -1
  517. data/lib/phlex-icons/flag/uz_square.rb +1 -1
  518. data/lib/phlex-icons/flag/va_rectangle.rb +1 -1
  519. data/lib/phlex-icons/flag/va_square.rb +1 -1
  520. data/lib/phlex-icons/flag/vc_rectangle.rb +1 -1
  521. data/lib/phlex-icons/flag/vc_square.rb +1 -1
  522. data/lib/phlex-icons/flag/ve_rectangle.rb +1 -1
  523. data/lib/phlex-icons/flag/ve_square.rb +1 -1
  524. data/lib/phlex-icons/flag/vg_rectangle.rb +1 -1
  525. data/lib/phlex-icons/flag/vg_square.rb +1 -1
  526. data/lib/phlex-icons/flag/vi_rectangle.rb +1 -1
  527. data/lib/phlex-icons/flag/vi_square.rb +1 -1
  528. data/lib/phlex-icons/flag/vn_rectangle.rb +1 -1
  529. data/lib/phlex-icons/flag/vn_square.rb +1 -1
  530. data/lib/phlex-icons/flag/vu_rectangle.rb +1 -1
  531. data/lib/phlex-icons/flag/vu_square.rb +1 -1
  532. data/lib/phlex-icons/flag/wf_rectangle.rb +1 -1
  533. data/lib/phlex-icons/flag/wf_square.rb +1 -1
  534. data/lib/phlex-icons/flag/ws_rectangle.rb +1 -1
  535. data/lib/phlex-icons/flag/ws_square.rb +1 -1
  536. data/lib/phlex-icons/flag/xk_rectangle.rb +1 -1
  537. data/lib/phlex-icons/flag/xk_square.rb +1 -1
  538. data/lib/phlex-icons/flag/xx_rectangle.rb +1 -1
  539. data/lib/phlex-icons/flag/xx_square.rb +1 -1
  540. data/lib/phlex-icons/flag/ye_rectangle.rb +1 -1
  541. data/lib/phlex-icons/flag/ye_square.rb +1 -1
  542. data/lib/phlex-icons/flag/yt_rectangle.rb +1 -1
  543. data/lib/phlex-icons/flag/yt_square.rb +1 -1
  544. data/lib/phlex-icons/flag/za_rectangle.rb +1 -1
  545. data/lib/phlex-icons/flag/za_square.rb +1 -1
  546. data/lib/phlex-icons/flag/zm_rectangle.rb +1 -1
  547. data/lib/phlex-icons/flag/zm_square.rb +1 -1
  548. data/lib/phlex-icons/flag/zw_rectangle.rb +1 -1
  549. data/lib/phlex-icons/flag/zw_square.rb +1 -1
  550. data/lib/phlex-icons/icon.rb +31 -0
  551. data/lib/phlex-icons/name_parser.rb +117 -0
  552. data/lib/phlex-icons/railtie.rb +17 -0
  553. data/lib/phlex-icons/version.rb +1 -1
  554. data/lib/phlex-icons-flag.rb +3 -0
  555. metadata +5 -2
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UaRectangle < Base
6
6
  def view_template
7
- render Ua.new(variant: :rectangle)
7
+ render Ua.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UaSquare < Base
6
6
  def view_template
7
- render Ua.new(variant: :square)
7
+ render Ua.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UgRectangle < Base
6
6
  def view_template
7
- render Ug.new(variant: :rectangle)
7
+ render Ug.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UgSquare < Base
6
6
  def view_template
7
- render Ug.new(variant: :square)
7
+ render Ug.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UmRectangle < Base
6
6
  def view_template
7
- render Um.new(variant: :rectangle)
7
+ render Um.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UmSquare < Base
6
6
  def view_template
7
- render Um.new(variant: :square)
7
+ render Um.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UnRectangle < Base
6
6
  def view_template
7
- render Un.new(variant: :rectangle)
7
+ render Un.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UnSquare < Base
6
6
  def view_template
7
- render Un.new(variant: :square)
7
+ render Un.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UsRectangle < Base
6
6
  def view_template
7
- render Us.new(variant: :rectangle)
7
+ render Us.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UsSquare < Base
6
6
  def view_template
7
- render Us.new(variant: :square)
7
+ render Us.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UyRectangle < Base
6
6
  def view_template
7
- render Uy.new(variant: :rectangle)
7
+ render Uy.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UySquare < Base
6
6
  def view_template
7
- render Uy.new(variant: :square)
7
+ render Uy.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UzRectangle < Base
6
6
  def view_template
7
- render Uz.new(variant: :rectangle)
7
+ render Uz.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class UzSquare < Base
6
6
  def view_template
7
- render Uz.new(variant: :square)
7
+ render Uz.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VaRectangle < Base
6
6
  def view_template
7
- render Va.new(variant: :rectangle)
7
+ render Va.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VaSquare < Base
6
6
  def view_template
7
- render Va.new(variant: :square)
7
+ render Va.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VcRectangle < Base
6
6
  def view_template
7
- render Vc.new(variant: :rectangle)
7
+ render Vc.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VcSquare < Base
6
6
  def view_template
7
- render Vc.new(variant: :square)
7
+ render Vc.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VeRectangle < Base
6
6
  def view_template
7
- render Ve.new(variant: :rectangle)
7
+ render Ve.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VeSquare < Base
6
6
  def view_template
7
- render Ve.new(variant: :square)
7
+ render Ve.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VgRectangle < Base
6
6
  def view_template
7
- render Vg.new(variant: :rectangle)
7
+ render Vg.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VgSquare < Base
6
6
  def view_template
7
- render Vg.new(variant: :square)
7
+ render Vg.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ViRectangle < Base
6
6
  def view_template
7
- render Vi.new(variant: :rectangle)
7
+ render Vi.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ViSquare < Base
6
6
  def view_template
7
- render Vi.new(variant: :square)
7
+ render Vi.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VnRectangle < Base
6
6
  def view_template
7
- render Vn.new(variant: :rectangle)
7
+ render Vn.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VnSquare < Base
6
6
  def view_template
7
- render Vn.new(variant: :square)
7
+ render Vn.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VuRectangle < Base
6
6
  def view_template
7
- render Vu.new(variant: :rectangle)
7
+ render Vu.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class VuSquare < Base
6
6
  def view_template
7
- render Vu.new(variant: :square)
7
+ render Vu.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class WfRectangle < Base
6
6
  def view_template
7
- render Wf.new(variant: :rectangle)
7
+ render Wf.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class WfSquare < Base
6
6
  def view_template
7
- render Wf.new(variant: :square)
7
+ render Wf.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class WsRectangle < Base
6
6
  def view_template
7
- render Ws.new(variant: :rectangle)
7
+ render Ws.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class WsSquare < Base
6
6
  def view_template
7
- render Ws.new(variant: :square)
7
+ render Ws.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class XkRectangle < Base
6
6
  def view_template
7
- render Xk.new(variant: :rectangle)
7
+ render Xk.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class XkSquare < Base
6
6
  def view_template
7
- render Xk.new(variant: :square)
7
+ render Xk.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class XxRectangle < Base
6
6
  def view_template
7
- render Xx.new(variant: :rectangle)
7
+ render Xx.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class XxSquare < Base
6
6
  def view_template
7
- render Xx.new(variant: :square)
7
+ render Xx.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class YeRectangle < Base
6
6
  def view_template
7
- render Ye.new(variant: :rectangle)
7
+ render Ye.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class YeSquare < Base
6
6
  def view_template
7
- render Ye.new(variant: :square)
7
+ render Ye.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class YtRectangle < Base
6
6
  def view_template
7
- render Yt.new(variant: :rectangle)
7
+ render Yt.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class YtSquare < Base
6
6
  def view_template
7
- render Yt.new(variant: :square)
7
+ render Yt.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ZaRectangle < Base
6
6
  def view_template
7
- render Za.new(variant: :rectangle)
7
+ render Za.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ZaSquare < Base
6
6
  def view_template
7
- render Za.new(variant: :square)
7
+ render Za.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ZmRectangle < Base
6
6
  def view_template
7
- render Zm.new(variant: :rectangle)
7
+ render Zm.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ZmSquare < Base
6
6
  def view_template
7
- render Zm.new(variant: :square)
7
+ render Zm.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ZwRectangle < Base
6
6
  def view_template
7
- render Zw.new(variant: :rectangle)
7
+ render Zw.new(variant: :rectangle, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module PhlexIcons
4
4
  module Flag
5
5
  class ZwSquare < Base
6
6
  def view_template
7
- render Zw.new(variant: :square)
7
+ render Zw.new(variant: :square, **attrs)
8
8
  end
9
9
  end
10
10
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'name_parser'
4
+
5
+ module PhlexIcons
6
+ extend Phlex::Kit
7
+
8
+ class Icon < Phlex::SVG
9
+ # Factory method to create an icon component instance.
10
+ # Parses the name string, finds the corresponding class, and initializes it with options.
11
+ # @param name [String] Icon identifier (e.g., "hero/house:solid", "lucide/arrow-right").
12
+ # @param options [Hash] HTML attributes and options for the icon component.
13
+ # @return [Phlex::SVG] An instance of the resolved icon component.
14
+ # @raise [ArgumentError] If the name format is invalid or default pack is missing.
15
+ # @raise [NameError] If the corresponding icon class cannot be found.
16
+ def initialize(name, **options)
17
+ @name = name
18
+ @options = options&.transform_keys(&:to_sym) || {}
19
+ super()
20
+ end
21
+
22
+ def view_template
23
+ parser = PhlexIcons::NameParser.new(@name)
24
+
25
+ # Prioritize variant from the name string over options hash
26
+ @options[:variant] = parser.variant_name if parser.variant_name
27
+
28
+ render parser.klass.new(**@options)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexIcons
4
+ class NameParser
5
+ attr_reader :pack_name, :icon_name, :variant_name, :identifier, :klass
6
+
7
+ # Initializes the parser with the full icon identifier string (e.g., "hero/arrow-right:solid").
8
+ # Parses the string into pack, icon, and variant components.
9
+ # Determines and validates the corresponding icon component class.
10
+ # @param identifier [String] The full icon identifier.
11
+ # @raise [ArgumentError] If the name format is invalid or default pack is missing.
12
+ # @raise [NameError] If the corresponding icon class cannot be found.
13
+ def initialize(identifier)
14
+ @identifier = identifier.to_s
15
+ @pack_name, @icon_name, @variant_name = parse(@identifier)
16
+ @klass = find_icon_class(@pack_name, @icon_name)
17
+ end
18
+
19
+ private
20
+
21
+ # Performs the core parsing logic.
22
+ # @param identifier [String] The full icon identifier.
23
+ # @return [Array<String, String, Symbol, nil>] An array containing [pack_name, icon_name, variant_name].
24
+ def parse(identifier)
25
+ name_part, variant = identifier.split(':', 2)
26
+
27
+ # Check if the part before ':' (or the whole string if no ':') is empty
28
+ if name_part.nil? || name_part.strip.empty?
29
+ raise ArgumentError,
30
+ "Invalid icon name format. Could not determine pack or icon name from '#{identifier}'."
31
+ end
32
+
33
+ parsed_variant = variant&.empty? ? nil : variant&.to_sym
34
+ pack, icon = parse_pack_and_icon(name_part)
35
+
36
+ validate_identifier_parts(pack, icon, identifier)
37
+
38
+ [pack, icon, parsed_variant]
39
+ end
40
+
41
+ # Extracts the pack and icon names from the part before the variant separator (':').
42
+ # @param name_part [String] The part of the name string before ':'.
43
+ # @return [Array<String, String>] An array containing [pack_name, icon_name].
44
+ def parse_pack_and_icon(name_part)
45
+ if name_part.include?('/')
46
+ # If split results in empty parts, they will be caught by validate_identifier_parts later
47
+ name_part.split('/', 2)
48
+ else
49
+ # If name_part is just the icon, it cannot be empty (checked in `parse`)
50
+ [get_default_pack_name_or_raise(name_part), name_part]
51
+ end
52
+ end
53
+
54
+ # Retrieves the configured default pack name or raises an error if not set.
55
+ # @param icon_name_part [String] The icon name used when the pack prefix is missing (for error message).
56
+ # @return [String] The default pack name.
57
+ # @raise [ArgumentError] If PhlexIcons.configuration.default_pack is not configured.
58
+ def get_default_pack_name_or_raise(icon_name_part)
59
+ # Assumes PhlexIcons.configuration is available.
60
+ # Consider requiring 'phlex_icons/configuration' explicitly if needed outside Rails context.
61
+ default_pack_name = defined?(PhlexIcons.configuration) ? PhlexIcons.configuration&.default_pack&.to_s : nil
62
+ unless default_pack_name && !default_pack_name.empty?
63
+ raise ArgumentError,
64
+ "Icon name '#{icon_name_part}' is missing the pack name prefix (e.g., 'hero/'), " \
65
+ 'and no `default_pack` is configured in PhlexIcons.'
66
+ end
67
+ default_pack_name
68
+ end
69
+
70
+ # Validates that both pack and icon name parts were successfully extracted.
71
+ # @param pack [String, nil] The extracted pack name.
72
+ # @param icon [String, nil] The extracted icon name.
73
+ # @param identifier [String] The original full identifier (for error message).
74
+ # @raise [ArgumentError] If either pack or icon is missing or empty.
75
+ def validate_identifier_parts(pack, icon, identifier)
76
+ return if pack && !pack.empty? && icon && !icon.empty?
77
+
78
+ raise ArgumentError,
79
+ "Invalid icon name format. Could not determine pack or icon name from '#{identifier}'."
80
+ end
81
+
82
+ # Finds the PhlexIcon component class based on pack and icon names.
83
+ # @param pack_name [String] The kebab-case pack name (e.g., "hero").
84
+ # @param icon_name [String] The kebab-case icon name (e.g., "arrow-right").
85
+ # @return [Class] The icon component class.
86
+ # @raise [NameError] If the corresponding icon class cannot be found.
87
+ def find_icon_class(pack_name, icon_name)
88
+ class_name = build_icon_class_name(pack_name, icon_name)
89
+ find_and_validate_icon_class(class_name, pack_name, icon_name)
90
+ end
91
+
92
+ # Constructs the full Ruby class name for an icon component.
93
+ # @param pack_name [String] The kebab-case pack name (e.g., "hero").
94
+ # @param icon_name [String] The kebab-case icon name (e.g., "arrow-right").
95
+ # @return [String] The CamelCase class name (e.g., "PhlexIcons::Hero::ArrowRight").
96
+ def build_icon_class_name(pack_name, icon_name)
97
+ pack_module_name = pack_name.split('-').map(&:capitalize).join
98
+ icon_class_name = icon_name.split('-').map(&:capitalize).join
99
+ "PhlexIcons::#{pack_module_name}::#{icon_class_name}"
100
+ end
101
+
102
+ # Attempts to find the icon class by its name and validates its existence.
103
+ # @param class_name [String] The full class name to find.
104
+ # @param pack_name [String] Original pack name (for error message).
105
+ # @param icon_name [String] Original icon name (for error message).
106
+ # @return [Class] The found icon component class.
107
+ # @raise [NameError] If the class cannot be found.
108
+ def find_and_validate_icon_class(class_name, pack_name, icon_name)
109
+ Object.const_get(class_name)
110
+ rescue NameError
111
+ raise NameError,
112
+ "Could not find icon component class '#{class_name}'. " \
113
+ "Make sure the pack ('#{pack_name}') and name ('#{icon_name}') " \
114
+ 'are correct and the corresponding file is loaded.'
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'configuration'
4
+
5
+ module PhlexIcons
6
+ class Railtie < ::Rails::Railtie
7
+ initializer 'phlex_icons.view_helpers' do
8
+ ActiveSupport.on_load(:action_view) do
9
+ helper_method_name = PhlexIcons.configuration.helper_method_name
10
+
11
+ define_method helper_method_name do |name, **options|
12
+ PhlexIcons::Icon.call(name, **options)&.html_safe
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PhlexIcons
4
- VERSION = '2.18.0'
4
+ VERSION = '2.20.0'
5
5
  end
@@ -12,6 +12,9 @@ require_relative 'phlex-icons/version'
12
12
  require_relative 'phlex-icons/flag'
13
13
  require_relative 'phlex-icons/material'
14
14
 
15
+ require_relative 'phlex-icons/icon'
16
+ require_relative 'phlex-icons/railtie' if defined?(Rails)
17
+
15
18
  module PhlexIcons
16
19
  class << self
17
20
  def configuration