Icon.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. <template>
  2. <svg
  3. v-if="name === 'apple'"
  4. xmlns="http://www.w3.org/2000/svg"
  5. width="100"
  6. height="100"
  7. viewBox="0 0 100 100"
  8. >
  9. <g fill-rule="nonzero">
  10. <path
  11. d="M46.173 19.967C49.927-1.838 19.797-.233 14.538.21c-.429.035-.648.4-.483.8 2.004 4.825 14.168 31.66 32.118 18.957zm13.18 1.636c1.269-.891 1.35-1.614.047-2.453l-2.657-1.71c-.94-.607-1.685-.606-2.532.129-5.094 4.42-7.336 9.18-8.211 15.24 1.597.682 3.55.79 5.265.328 1.298-4.283 3.64-8.412 8.088-11.534z"
  12. />
  13. <path
  14. d="M88.588 67.75c9.65-27.532-13.697-45.537-35.453-32.322-1.84 1.118-4.601 1.118-6.441 0-21.757-13.215-45.105 4.79-35.454 32.321 5.302 15.123 17.06 39.95 37.295 29.995.772-.38 1.986-.38 2.758 0 20.235 9.955 31.991-14.872 37.295-29.995z"
  15. />
  16. </g>
  17. </svg>
  18. <svg v-else-if="name === 'trash'" xmlns="http://www.w3.org/2000/svg" viewBox="-3 -2 24 24">
  19. <path
  20. d="M6 2V1a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h4a2 2 0 0 1 2 2v1a2 2 0 0 1-2 2h-.133l-.68 10.2a3 3 0 0 1-2.993 2.8H5.826a3 3 0 0 1-2.993-2.796L2.137 7H2a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4zm10 2H2v1h14V4zM4.141 7l.687 10.068a1 1 0 0 0 .998.932h6.368a1 1 0 0 0 .998-.934L13.862 7h-9.72zM7 8a1 1 0 0 1 1 1v7a1 1 0 0 1-2 0V9a1 1 0 0 1 1-1zm4 0a1 1 0 0 1 1 1v7a1 1 0 0 1-2 0V9a1 1 0 0 1 1-1z"
  21. ></path>
  22. </svg>
  23. <svg v-else-if="name === 'delete'" xmlns="http://www.w3.org/2000/svg" viewBox="-2 -5 24 24">
  24. <path
  25. d="M7.828 0H18a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H7.828a2 2 0 0 1-1.414-.586L.707 7.707a1 1 0 0 1 0-1.414L6.414.586A2 2 0 0 1 7.828 0zm0 12H18V2H7.828l-5 5 5 5zm6.586-5l1.414 1.414a1 1 0 0 1-1.414 1.414L13 8.414l-1.414 1.414a1 1 0 1 1-1.414-1.414L11.586 7l-1.414-1.414a1 1 0 1 1 1.414-1.414L13 5.586l1.414-1.414a1 1 0 1 1 1.414 1.414L14.414 7z"
  26. ></path>
  27. </svg>
  28. <svg v-else-if="name === 'chevron-up'" xmlns="http://www.w3.org/2000/svg" viewBox="-5 -7.5 24 24">
  29. <path
  30. d="M7.071 2.828l-4.95 4.95A1 1 0 0 1 .707 6.364L6.364.707a1 1 0 0 1 1.414 0l5.657 5.657a1 1 0 0 1-1.414 1.414l-4.95-4.95z"
  31. ></path>
  32. </svg>
  33. <svg v-else-if="name === 'chevron-down'" xmlns="http://www.w3.org/2000/svg" viewBox="-5 -8 24 24">
  34. <path
  35. d="M7.071 5.314l4.95-4.95a1 1 0 1 1 1.414 1.414L7.778 7.435a1 1 0 0 1-1.414 0L.707 1.778A1 1 0 1 1 2.121.364l4.95 4.95z"
  36. ></path>
  37. </svg>
  38. <svg
  39. v-else-if="name === 'chevron-right'"
  40. xmlns="http://www.w3.org/2000/svg"
  41. viewBox="-8 -5 24 24"
  42. >
  43. <path
  44. d="M5.314 7.071l-4.95-4.95A1 1 0 0 1 1.778.707l5.657 5.657a1 1 0 0 1 0 1.414l-5.657 5.657a1 1 0 0 1-1.414-1.414l4.95-4.95z"
  45. ></path>
  46. </svg>
  47. <svg v-else-if="name === 'edit'" xmlns="http://www.w3.org/2000/svg" viewBox="-2.5 -2.5 24 24">
  48. <path
  49. d="M12.238 5.472L3.2 14.51l-.591 2.016 1.975-.571 9.068-9.068-1.414-1.415zM13.78 3.93l1.414 1.414 1.318-1.318a.5.5 0 0 0 0-.707l-.708-.707a.5.5 0 0 0-.707 0L13.781 3.93zm3.439-2.732l.707.707a2.5 2.5 0 0 1 0 3.535L5.634 17.733l-4.22 1.22a1 1 0 0 1-1.237-1.241l1.248-4.255 12.26-12.26a2.5 2.5 0 0 1 3.535 0z"
  50. ></path>
  51. </svg>
  52. <svg v-else-if="name === 'desc'" xmlns="http://www.w3.org/2000/svg" viewBox="-4 -2 24 24">
  53. <path
  54. d="M3 0h10a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V3a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H3zm2 1h6a1 1 0 0 1 0 2H5a1 1 0 1 1 0-2zm0 12h2a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2zm0-4h6a1 1 0 0 1 0 2H5a1 1 0 0 1 0-2zm0-4h6a1 1 0 0 1 0 2H5a1 1 0 1 1 0-2z"
  55. ></path>
  56. </svg>
  57. <svg v-else-if="name === 'check'" xmlns="http://www.w3.org/2000/svg" viewBox="-5 -7 24 24">
  58. <path
  59. d="M5.486 9.73a.997.997 0 0 1-.707-.292L.537 5.195A1 1 0 1 1 1.95 3.78l3.535 3.535L11.85.952a1 1 0 0 1 1.415 1.414L6.193 9.438a.997.997 0 0 1-.707.292z"
  60. ></path>
  61. </svg>
  62. <svg v-else-if="name === 'envelope'" xmlns="http://www.w3.org/2000/svg" viewBox="-2 -5 24 24">
  63. <path
  64. d="M3.598 2l5.747 5.12a1 1 0 0 0 1.33 0L16.423 2H3.598zM18 3.273l-5.994 5.341a3 3 0 0 1-3.992 0L2 3.254V12h16V3.273zM2 0h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2z"
  65. ></path>
  66. </svg>
  67. <svg v-else-if="name === 'search'" xmlns="http://www.w3.org/2000/svg" viewBox="-2.5 -2.5 24 24">
  68. <path
  69. d="M8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12zm6.32-1.094l3.58 3.58a1 1 0 1 1-1.415 1.413l-3.58-3.58a8 8 0 1 1 1.414-1.414z"
  70. ></path>
  71. </svg>
  72. <svg v-else-if="name === 'info'" xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 24 24">
  73. <path
  74. d="M10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-10a1 1 0 0 1 1 1v5a1 1 0 0 1-2 0V9a1 1 0 0 1 1-1zm0-1a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"
  75. ></path>
  76. </svg>
  77. <svg v-else-if="name === 'close'" xmlns="http://www.w3.org/2000/svg" viewBox="-6 -6 24 24">
  78. <path
  79. d="M7.314 5.9l3.535-3.536A1 1 0 1 0 9.435.95L5.899 4.485 2.364.95A1 1 0 1 0 .95 2.364l3.535 3.535L.95 9.435a1 1 0 1 0 1.414 1.414l3.535-3.535 3.536 3.535a1 1 0 1 0 1.414-1.414L7.314 5.899z"
  80. ></path>
  81. </svg>
  82. <svg v-else-if="name === 'close-circle'" xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 24 24">
  83. <path
  84. d="M11.414 10l2.829 2.828a1 1 0 0 1-1.415 1.415L10 11.414l-2.828 2.829a1 1 0 1 1-1.415-1.415L8.586 10 5.757 7.172a1 1 0 0 1 1.415-1.415L10 8.586l2.828-2.829a1 1 0 0 1 1.415 1.415L11.414 10zM10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"
  85. ></path>
  86. </svg>
  87. <svg v-else-if="name === 'plus'" xmlns="http://www.w3.org/2000/svg" viewBox="-4.5 -4.5 24 24">
  88. <path
  89. d="M8.9 6.9v-5a1 1 0 1 0-2 0v5h-5a1 1 0 1 0 0 2h5v5a1 1 0 1 0 2 0v-5h5a1 1 0 1 0 0-2h-5z"
  90. ></path>
  91. </svg>
  92. <svg v-else-if="name === 'save'" xmlns="http://www.w3.org/2000/svg" viewBox="-3 -3 24 24">
  93. <path
  94. d="M2 0h11.22a2 2 0 0 1 1.345.52l2.78 2.527A2 2 0 0 1 18 4.527V16a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm0 2v14h14V4.527L13.22 2H2zm4 8h6a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2zm0 2v4h6v-4H6zm7-9a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V4a1 1 0 0 1 1-1zM5 3h5a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 3h3V5H6v1z"
  95. ></path>
  96. </svg>
  97. <svg v-else-if="name === 'fingerprint'" xmlns="http://www.w3.org/2000/svg" viewBox="-5 -2 24 24">
  98. <path
  99. d="M2 7a1 1 0 1 1-2 0 7 7 0 1 1 14 0v2a1 1 0 0 1-2 0V7A5 5 0 1 0 2 7zm3 3a1 1 0 0 1-2 0V7a4 4 0 1 1 8 0 1 1 0 0 1-2 0 2 2 0 1 0-4 0v3zm-2 3a1 1 0 0 1 2 0 2 2 0 1 0 4 0v-3a1 1 0 1 1 2 0v3a4 4 0 1 1-8 0zm3-5a1 1 0 1 1 2 0v4a1 1 0 0 1-2 0V8zm-6 3a1 1 0 0 1 2 0v2a5 5 0 0 0 10 0 1 1 0 0 1 2 0 7 7 0 0 1-14 0v-2z"
  100. ></path>
  101. </svg>
  102. <svg v-else-if="name === 'undo'" xmlns="http://www.w3.org/2000/svg" viewBox="-0.5 -2 24 24">
  103. <path
  104. d="M5.308 7.612l1.352-.923a.981.981 0 0 1 1.372.27 1.008 1.008 0 0 1-.266 1.388l-3.277 2.237a.981.981 0 0 1-1.372-.27L.907 6.998a1.007 1.007 0 0 1 .266-1.389.981.981 0 0 1 1.372.27l.839 1.259C4.6 3.01 8.38 0 12.855 0c5.458 0 9.882 4.477 9.882 10s-4.424 10-9.882 10a.994.994 0 0 1-.988-1c0-.552.443-1 .988-1 4.366 0 7.906-3.582 7.906-8s-3.54-8-7.906-8C9.311 2 6.312 4.36 5.308 7.612z"
  105. ></path>
  106. </svg>
  107. <svg
  108. v-else-if="name === 'blocked'"
  109. xmlns="http://www.w3.org/2000/svg"
  110. viewBox="0 0 24 24"
  111. fill="none"
  112. stroke="currentColor"
  113. stroke-width="2"
  114. stroke-linecap="round"
  115. stroke-linejoin="round"
  116. aria-hidden="true"
  117. >
  118. <circle cx="12" cy="12" r="10"></circle>
  119. <line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line>
  120. </svg>
  121. <svg
  122. v-else-if="name === 'send'"
  123. xmlns="http://www.w3.org/2000/svg"
  124. viewBox="0 0 24 24"
  125. fill="none"
  126. stroke="currentColor"
  127. stroke-width="2"
  128. stroke-linecap="round"
  129. stroke-linejoin="round"
  130. aria-hidden="true"
  131. >
  132. <line x1="22" y1="2" x2="11" y2="13"></line>
  133. <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
  134. </svg>
  135. <svg
  136. v-else-if="name === 'check-circle'"
  137. xmlns="http://www.w3.org/2000/svg"
  138. viewBox="0 0 24 24"
  139. fill="none"
  140. stroke="currentColor"
  141. stroke-width="2"
  142. stroke-linecap="round"
  143. stroke-linejoin="round"
  144. aria-hidden="true"
  145. >
  146. <path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path>
  147. <polyline points="22 4 12 14.01 9 11.01"></polyline>
  148. </svg>
  149. <svg
  150. v-else-if="name === 'cross-circle'"
  151. xmlns="http://www.w3.org/2000/svg"
  152. viewBox="0 0 24 24"
  153. fill="none"
  154. stroke="currentColor"
  155. stroke-width="2"
  156. stroke-linecap="round"
  157. stroke-linejoin="round"
  158. aria-hidden="true"
  159. >
  160. <circle cx="12" cy="12" r="10"></circle>
  161. <line x1="15" y1="9" x2="9" y2="15"></line>
  162. <line x1="9" y1="9" x2="15" y2="15"></line>
  163. </svg>
  164. <svg
  165. v-else-if="name === 'corner-up-left'"
  166. xmlns="http://www.w3.org/2000/svg"
  167. viewBox="0 0 24 24"
  168. fill="none"
  169. stroke="currentColor"
  170. stroke-width="2"
  171. stroke-linecap="round"
  172. stroke-linejoin="round"
  173. aria-hidden="true"
  174. >
  175. <polyline points="9 14 4 9 9 4"></polyline>
  176. <path d="M20 20v-7a4 4 0 0 0-4-4H4"></path>
  177. </svg>
  178. <svg
  179. v-else-if="name === 'mail'"
  180. xmlns="http://www.w3.org/2000/svg"
  181. viewBox="0 0 24 24"
  182. fill="none"
  183. stroke="currentColor"
  184. stroke-width="2"
  185. stroke-linecap="round"
  186. stroke-linejoin="round"
  187. aria-hidden="true"
  188. >
  189. <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path>
  190. <polyline points="22,6 12,13 2,6"></polyline>
  191. </svg>
  192. <svg
  193. v-else-if="name === 'inbox'"
  194. xmlns="http://www.w3.org/2000/svg"
  195. viewBox="0 0 24 24"
  196. fill="none"
  197. stroke="currentColor"
  198. stroke-width="2"
  199. stroke-linecap="round"
  200. stroke-linejoin="round"
  201. aria-hidden="true"
  202. >
  203. <polyline points="22 12 16 12 14 15 10 15 8 12 2 12"></polyline>
  204. <path
  205. d="M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
  206. ></path>
  207. </svg>
  208. <svg
  209. v-else-if="name === 'move'"
  210. xmlns="http://www.w3.org/2000/svg"
  211. viewBox="0 0 24 24"
  212. fill="none"
  213. stroke="currentColor"
  214. stroke-width="2"
  215. stroke-linecap="round"
  216. stroke-linejoin="round"
  217. aria-hidden="true"
  218. >
  219. <polyline points="5 9 2 12 5 15"></polyline>
  220. <polyline points="9 5 12 2 15 5"></polyline>
  221. <polyline points="15 19 12 22 9 19"></polyline>
  222. <polyline points="19 9 22 12 19 15"></polyline>
  223. <line x1="2" y1="12" x2="22" y2="12"></line>
  224. <line x1="12" y1="2" x2="12" y2="22"></line>
  225. </svg>
  226. <svg
  227. v-else-if="name === 'menu'"
  228. xmlns="http://www.w3.org/2000/svg"
  229. viewBox="0 0 24 24"
  230. fill="none"
  231. stroke="currentColor"
  232. stroke-width="2"
  233. stroke-linecap="round"
  234. stroke-linejoin="round"
  235. aria-hidden="true"
  236. >
  237. <line x1="3" y1="12" x2="21" y2="12"></line>
  238. <line x1="3" y1="6" x2="21" y2="6"></line>
  239. <line x1="3" y1="18" x2="21" y2="18"></line>
  240. </svg>
  241. </template>
  242. <script>
  243. export default {
  244. props: {
  245. name: String,
  246. },
  247. }
  248. </script>