protos-icon 0.3.1 → 0.4.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 (319) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -0
  3. data/CHANGELOG.md +6 -0
  4. data/README.md +40 -12
  5. data/Rakefile +1 -0
  6. data/assets/inhouse/facebook.svg +2 -8
  7. data/assets/inhouse/twitter.svg +2 -8
  8. data/assets/inhouse/youtube.svg +2 -8
  9. data/generators/helpers.rb +24 -0
  10. data/generators/heroicon.rb +129 -0
  11. data/generators/inhouse.rb +110 -0
  12. data/lib/protos/icon/component.rb +1 -8
  13. data/lib/protos/icon/heroicon/academic_cap.rb +57 -0
  14. data/lib/protos/icon/heroicon/adjustments_horizontal.rb +49 -0
  15. data/lib/protos/icon/heroicon/adjustments_vertical.rb +49 -0
  16. data/lib/protos/icon/heroicon/archive_box.rb +55 -0
  17. data/lib/protos/icon/heroicon/archive_box_arrow_down.rb +55 -0
  18. data/lib/protos/icon/heroicon/archive_box_x_mark.rb +55 -0
  19. data/lib/protos/icon/heroicon/arrow_down.rb +50 -0
  20. data/lib/protos/icon/heroicon/arrow_down_circle.rb +50 -0
  21. data/lib/protos/icon/heroicon/arrow_down_left.rb +50 -0
  22. data/lib/protos/icon/heroicon/arrow_down_on_square.rb +49 -0
  23. data/lib/protos/icon/heroicon/arrow_down_on_square_stack.rb +55 -0
  24. data/lib/protos/icon/heroicon/arrow_down_right.rb +50 -0
  25. data/lib/protos/icon/heroicon/arrow_down_tray.rb +51 -0
  26. data/lib/protos/icon/heroicon/arrow_left.rb +50 -0
  27. data/lib/protos/icon/heroicon/arrow_left_circle.rb +50 -0
  28. data/lib/protos/icon/heroicon/arrow_left_end_on_rectangle.rb +51 -0
  29. data/lib/protos/icon/heroicon/arrow_left_on_rectangle.rb +51 -0
  30. data/lib/protos/icon/heroicon/arrow_left_start_on_rectangle.rb +51 -0
  31. data/lib/protos/icon/heroicon/arrow_long_down.rb +50 -0
  32. data/lib/protos/icon/heroicon/arrow_long_left.rb +50 -0
  33. data/lib/protos/icon/heroicon/arrow_long_right.rb +50 -0
  34. data/lib/protos/icon/heroicon/arrow_long_up.rb +50 -0
  35. data/lib/protos/icon/heroicon/arrow_path.rb +51 -0
  36. data/lib/protos/icon/heroicon/arrow_path_rounded_square.rb +51 -0
  37. data/lib/protos/icon/heroicon/arrow_right.rb +50 -0
  38. data/lib/protos/icon/heroicon/arrow_right_circle.rb +50 -0
  39. data/lib/protos/icon/heroicon/arrow_right_end_on_rectangle.rb +51 -0
  40. data/lib/protos/icon/heroicon/arrow_right_on_rectangle.rb +51 -0
  41. data/lib/protos/icon/heroicon/arrow_right_start_on_rectangle.rb +51 -0
  42. data/lib/protos/icon/heroicon/arrow_small_down.rb +50 -0
  43. data/lib/protos/icon/heroicon/arrow_small_left.rb +50 -0
  44. data/lib/protos/icon/heroicon/arrow_small_right.rb +50 -0
  45. data/lib/protos/icon/heroicon/arrow_small_up.rb +50 -0
  46. data/lib/protos/icon/heroicon/arrow_top_right_on_square.rb +51 -0
  47. data/lib/protos/icon/heroicon/arrow_trending_down.rb +51 -0
  48. data/lib/protos/icon/heroicon/arrow_trending_up.rb +51 -0
  49. data/lib/protos/icon/heroicon/arrow_up.rb +50 -0
  50. data/lib/protos/icon/heroicon/arrow_up_circle.rb +50 -0
  51. data/lib/protos/icon/heroicon/arrow_up_left.rb +50 -0
  52. data/lib/protos/icon/heroicon/arrow_up_on_square.rb +49 -0
  53. data/lib/protos/icon/heroicon/arrow_up_on_square_stack.rb +53 -0
  54. data/lib/protos/icon/heroicon/arrow_up_right.rb +50 -0
  55. data/lib/protos/icon/heroicon/arrow_up_tray.rb +51 -0
  56. data/lib/protos/icon/heroicon/arrow_uturn_down.rb +50 -0
  57. data/lib/protos/icon/heroicon/arrow_uturn_left.rb +50 -0
  58. data/lib/protos/icon/heroicon/arrow_uturn_right.rb +50 -0
  59. data/lib/protos/icon/heroicon/arrow_uturn_up.rb +50 -0
  60. data/lib/protos/icon/heroicon/arrows_pointing_in.rb +51 -0
  61. data/lib/protos/icon/heroicon/arrows_pointing_out.rb +51 -0
  62. data/lib/protos/icon/heroicon/arrows_right_left.rb +51 -0
  63. data/lib/protos/icon/heroicon/arrows_up_down.rb +51 -0
  64. data/lib/protos/icon/heroicon/at_symbol.rb +51 -0
  65. data/lib/protos/icon/heroicon/backspace.rb +51 -0
  66. data/lib/protos/icon/heroicon/backward.rb +49 -0
  67. data/lib/protos/icon/heroicon/banknotes.rb +56 -0
  68. data/lib/protos/icon/heroicon/bars_2.rb +50 -0
  69. data/lib/protos/icon/heroicon/bars_3.rb +50 -0
  70. data/lib/protos/icon/heroicon/bars_3_bottom_left.rb +50 -0
  71. data/lib/protos/icon/heroicon/bars_3_bottom_right.rb +50 -0
  72. data/lib/protos/icon/heroicon/bars_3_center_left.rb +50 -0
  73. data/lib/protos/icon/heroicon/bars_4.rb +50 -0
  74. data/lib/protos/icon/heroicon/bars_arrow_down.rb +51 -0
  75. data/lib/protos/icon/heroicon/bars_arrow_up.rb +51 -0
  76. data/lib/protos/icon/heroicon/battery_0.rb +51 -0
  77. data/lib/protos/icon/heroicon/battery_100.rb +51 -0
  78. data/lib/protos/icon/heroicon/battery_50.rb +55 -0
  79. data/lib/protos/icon/heroicon/beaker.rb +51 -0
  80. data/lib/protos/icon/heroicon/bell.rb +51 -0
  81. data/lib/protos/icon/heroicon/bell_alert.rb +55 -0
  82. data/lib/protos/icon/heroicon/bell_slash.rb +55 -0
  83. data/lib/protos/icon/heroicon/bell_snooze.rb +51 -0
  84. data/lib/protos/icon/heroicon/bolt.rb +50 -0
  85. data/lib/protos/icon/heroicon/bolt_slash.rb +49 -0
  86. data/lib/protos/icon/heroicon/book_open.rb +49 -0
  87. data/lib/protos/icon/heroicon/bookmark.rb +51 -0
  88. data/lib/protos/icon/heroicon/bookmark_slash.rb +49 -0
  89. data/lib/protos/icon/heroicon/bookmark_square.rb +51 -0
  90. data/lib/protos/icon/heroicon/briefcase.rb +55 -0
  91. data/lib/protos/icon/heroicon/bug_ant.rb +51 -0
  92. data/lib/protos/icon/heroicon/building_library.rb +56 -0
  93. data/lib/protos/icon/heroicon/building_office.rb +51 -0
  94. data/lib/protos/icon/heroicon/building_office_2.rb +51 -0
  95. data/lib/protos/icon/heroicon/building_storefront.rb +55 -0
  96. data/lib/protos/icon/heroicon/cake.rb +49 -0
  97. data/lib/protos/icon/heroicon/calculator.rb +51 -0
  98. data/lib/protos/icon/heroicon/calendar.rb +51 -0
  99. data/lib/protos/icon/heroicon/calendar_days.rb +55 -0
  100. data/lib/protos/icon/heroicon/camera.rb +58 -0
  101. data/lib/protos/icon/heroicon/chart_bar.rb +49 -0
  102. data/lib/protos/icon/heroicon/chart_bar_square.rb +51 -0
  103. data/lib/protos/icon/heroicon/chart_pie.rb +61 -0
  104. data/lib/protos/icon/heroicon/chat_bubble_bottom_center.rb +51 -0
  105. data/lib/protos/icon/heroicon/chat_bubble_bottom_center_text.rb +51 -0
  106. data/lib/protos/icon/heroicon/chat_bubble_left.rb +51 -0
  107. data/lib/protos/icon/heroicon/chat_bubble_left_ellipsis.rb +51 -0
  108. data/lib/protos/icon/heroicon/chat_bubble_left_right.rb +53 -0
  109. data/lib/protos/icon/heroicon/chat_bubble_oval_left.rb +51 -0
  110. data/lib/protos/icon/heroicon/chat_bubble_oval_left_ellipsis.rb +51 -0
  111. data/lib/protos/icon/heroicon/check.rb +50 -0
  112. data/lib/protos/icon/heroicon/check_badge.rb +51 -0
  113. data/lib/protos/icon/heroicon/check_circle.rb +50 -0
  114. data/lib/protos/icon/heroicon/chevron_double_down.rb +56 -0
  115. data/lib/protos/icon/heroicon/chevron_double_left.rb +56 -0
  116. data/lib/protos/icon/heroicon/chevron_double_right.rb +56 -0
  117. data/lib/protos/icon/heroicon/chevron_double_up.rb +61 -0
  118. data/lib/protos/icon/heroicon/chevron_down.rb +50 -0
  119. data/lib/protos/icon/heroicon/chevron_left.rb +50 -0
  120. data/lib/protos/icon/heroicon/chevron_right.rb +50 -0
  121. data/lib/protos/icon/heroicon/chevron_up.rb +50 -0
  122. data/lib/protos/icon/heroicon/chevron_up_down.rb +50 -0
  123. data/lib/protos/icon/heroicon/circle_stack.rb +61 -0
  124. data/lib/protos/icon/heroicon/clipboard.rb +51 -0
  125. data/lib/protos/icon/heroicon/clipboard_document.rb +59 -0
  126. data/lib/protos/icon/heroicon/clipboard_document_check.rb +57 -0
  127. data/lib/protos/icon/heroicon/clipboard_document_list.rb +57 -0
  128. data/lib/protos/icon/heroicon/clock.rb +50 -0
  129. data/lib/protos/icon/heroicon/cloud.rb +51 -0
  130. data/lib/protos/icon/heroicon/cloud_arrow_down.rb +51 -0
  131. data/lib/protos/icon/heroicon/cloud_arrow_up.rb +51 -0
  132. data/lib/protos/icon/heroicon/code_bracket.rb +50 -0
  133. data/lib/protos/icon/heroicon/code_bracket_square.rb +51 -0
  134. data/lib/protos/icon/heroicon/cog.rb +55 -0
  135. data/lib/protos/icon/heroicon/cog_6_tooth.rb +56 -0
  136. data/lib/protos/icon/heroicon/cog_8_tooth.rb +56 -0
  137. data/lib/protos/icon/heroicon/command_line.rb +51 -0
  138. data/lib/protos/icon/heroicon/computer_desktop.rb +51 -0
  139. data/lib/protos/icon/heroicon/cpu_chip.rb +52 -0
  140. data/lib/protos/icon/heroicon/credit_card.rb +52 -0
  141. data/lib/protos/icon/heroicon/cube.rb +49 -0
  142. data/lib/protos/icon/heroicon/cube_transparent.rb +51 -0
  143. data/lib/protos/icon/heroicon/currency_bangladeshi.rb +51 -0
  144. data/lib/protos/icon/heroicon/currency_dollar.rb +55 -0
  145. data/lib/protos/icon/heroicon/currency_euro.rb +51 -0
  146. data/lib/protos/icon/heroicon/currency_pound.rb +51 -0
  147. data/lib/protos/icon/heroicon/currency_rupee.rb +51 -0
  148. data/lib/protos/icon/heroicon/currency_yen.rb +51 -0
  149. data/lib/protos/icon/heroicon/cursor_arrow_rays.rb +51 -0
  150. data/lib/protos/icon/heroicon/cursor_arrow_ripple.rb +51 -0
  151. data/lib/protos/icon/heroicon/device_phone_mobile.rb +52 -0
  152. data/lib/protos/icon/heroicon/device_tablet.rb +52 -0
  153. data/lib/protos/icon/heroicon/document.rb +53 -0
  154. data/lib/protos/icon/heroicon/document_arrow_down.rb +55 -0
  155. data/lib/protos/icon/heroicon/document_arrow_up.rb +55 -0
  156. data/lib/protos/icon/heroicon/document_chart_bar.rb +55 -0
  157. data/lib/protos/icon/heroicon/document_check.rb +55 -0
  158. data/lib/protos/icon/heroicon/document_duplicate.rb +53 -0
  159. data/lib/protos/icon/heroicon/document_magnifying_glass.rb +56 -0
  160. data/lib/protos/icon/heroicon/document_minus.rb +55 -0
  161. data/lib/protos/icon/heroicon/document_plus.rb +55 -0
  162. data/lib/protos/icon/heroicon/document_text.rb +55 -0
  163. data/lib/protos/icon/heroicon/ellipsis_horizontal.rb +51 -0
  164. data/lib/protos/icon/heroicon/ellipsis_horizontal_circle.rb +51 -0
  165. data/lib/protos/icon/heroicon/ellipsis_vertical.rb +51 -0
  166. data/lib/protos/icon/heroicon/envelope.rb +53 -0
  167. data/lib/protos/icon/heroicon/envelope_open.rb +53 -0
  168. data/lib/protos/icon/heroicon/exclamation_circle.rb +51 -0
  169. data/lib/protos/icon/heroicon/exclamation_triangle.rb +51 -0
  170. data/lib/protos/icon/heroicon/eye.rb +57 -0
  171. data/lib/protos/icon/heroicon/eye_dropper.rb +51 -0
  172. data/lib/protos/icon/heroicon/eye_slash.rb +57 -0
  173. data/lib/protos/icon/heroicon/face_frown.rb +51 -0
  174. data/lib/protos/icon/heroicon/face_smile.rb +51 -0
  175. data/lib/protos/icon/heroicon/film.rb +51 -0
  176. data/lib/protos/icon/heroicon/finger_print.rb +51 -0
  177. data/lib/protos/icon/heroicon/fire.rb +57 -0
  178. data/lib/protos/icon/heroicon/flag.rb +51 -0
  179. data/lib/protos/icon/heroicon/folder.rb +49 -0
  180. data/lib/protos/icon/heroicon/folder_arrow_down.rb +51 -0
  181. data/lib/protos/icon/heroicon/folder_minus.rb +51 -0
  182. data/lib/protos/icon/heroicon/folder_open.rb +49 -0
  183. data/lib/protos/icon/heroicon/folder_plus.rb +51 -0
  184. data/lib/protos/icon/heroicon/forward.rb +49 -0
  185. data/lib/protos/icon/heroicon/funnel.rb +51 -0
  186. data/lib/protos/icon/heroicon/gif.rb +51 -0
  187. data/lib/protos/icon/heroicon/gift.rb +49 -0
  188. data/lib/protos/icon/heroicon/gift_top.rb +53 -0
  189. data/lib/protos/icon/heroicon/globe_alt.rb +49 -0
  190. data/lib/protos/icon/heroicon/globe_americas.rb +51 -0
  191. data/lib/protos/icon/heroicon/globe_asia_australia.rb +55 -0
  192. data/lib/protos/icon/heroicon/globe_europe_africa.rb +51 -0
  193. data/lib/protos/icon/heroicon/hand_raised.rb +49 -0
  194. data/lib/protos/icon/heroicon/hand_thumb_down.rb +49 -0
  195. data/lib/protos/icon/heroicon/hand_thumb_up.rb +49 -0
  196. data/lib/protos/icon/heroicon/hashtag.rb +50 -0
  197. data/lib/protos/icon/heroicon/heart.rb +49 -0
  198. data/lib/protos/icon/heroicon/home.rb +53 -0
  199. data/lib/protos/icon/heroicon/home_modern.rb +55 -0
  200. data/lib/protos/icon/heroicon/identification.rb +51 -0
  201. data/lib/protos/icon/heroicon/inbox.rb +51 -0
  202. data/lib/protos/icon/heroicon/inbox_arrow_down.rb +57 -0
  203. data/lib/protos/icon/heroicon/inbox_stack.rb +55 -0
  204. data/lib/protos/icon/heroicon/information_circle.rb +51 -0
  205. data/lib/protos/icon/heroicon/key.rb +51 -0
  206. data/lib/protos/icon/heroicon/language.rb +51 -0
  207. data/lib/protos/icon/heroicon/lifebuoy.rb +51 -0
  208. data/lib/protos/icon/heroicon/light_bulb.rb +55 -0
  209. data/lib/protos/icon/heroicon/link.rb +51 -0
  210. data/lib/protos/icon/heroicon/list_bullet.rb +51 -0
  211. data/lib/protos/icon/heroicon/lock_closed.rb +51 -0
  212. data/lib/protos/icon/heroicon/lock_open.rb +49 -0
  213. data/lib/protos/icon/heroicon/magnifying_glass.rb +51 -0
  214. data/lib/protos/icon/heroicon/magnifying_glass_circle.rb +52 -0
  215. data/lib/protos/icon/heroicon/magnifying_glass_minus.rb +51 -0
  216. data/lib/protos/icon/heroicon/magnifying_glass_plus.rb +51 -0
  217. data/lib/protos/icon/heroicon/map.rb +51 -0
  218. data/lib/protos/icon/heroicon/map_pin.rb +56 -0
  219. data/lib/protos/icon/heroicon/megaphone.rb +49 -0
  220. data/lib/protos/icon/heroicon/microphone.rb +50 -0
  221. data/lib/protos/icon/heroicon/minus.rb +46 -0
  222. data/lib/protos/icon/heroicon/minus_circle.rb +50 -0
  223. data/lib/protos/icon/heroicon/minus_small.rb +46 -0
  224. data/lib/protos/icon/heroicon/moon.rb +51 -0
  225. data/lib/protos/icon/heroicon/musical_note.rb +51 -0
  226. data/lib/protos/icon/heroicon/newspaper.rb +55 -0
  227. data/lib/protos/icon/heroicon/no_symbol.rb +51 -0
  228. data/lib/protos/icon/heroicon/paint_brush.rb +51 -0
  229. data/lib/protos/icon/heroicon/paper_airplane.rb +49 -0
  230. data/lib/protos/icon/heroicon/paper_clip.rb +51 -0
  231. data/lib/protos/icon/heroicon/pause.rb +50 -0
  232. data/lib/protos/icon/heroicon/pause_circle.rb +50 -0
  233. data/lib/protos/icon/heroicon/pencil.rb +49 -0
  234. data/lib/protos/icon/heroicon/pencil_square.rb +53 -0
  235. data/lib/protos/icon/heroicon/phone.rb +51 -0
  236. data/lib/protos/icon/heroicon/phone_arrow_down_left.rb +57 -0
  237. data/lib/protos/icon/heroicon/phone_arrow_up_right.rb +57 -0
  238. data/lib/protos/icon/heroicon/phone_x_mark.rb +51 -0
  239. data/lib/protos/icon/heroicon/photo.rb +51 -0
  240. data/lib/protos/icon/heroicon/play.rb +51 -0
  241. data/lib/protos/icon/heroicon/play_circle.rb +56 -0
  242. data/lib/protos/icon/heroicon/play_pause.rb +49 -0
  243. data/lib/protos/icon/heroicon/plus.rb +50 -0
  244. data/lib/protos/icon/heroicon/plus_circle.rb +50 -0
  245. data/lib/protos/icon/heroicon/plus_small.rb +46 -0
  246. data/lib/protos/icon/heroicon/power.rb +50 -0
  247. data/lib/protos/icon/heroicon/presentation_chart_bar.rb +51 -0
  248. data/lib/protos/icon/heroicon/presentation_chart_line.rb +51 -0
  249. data/lib/protos/icon/heroicon/printer.rb +51 -0
  250. data/lib/protos/icon/heroicon/puzzle_piece.rb +49 -0
  251. data/lib/protos/icon/heroicon/qr_code.rb +57 -0
  252. data/lib/protos/icon/heroicon/question_mark_circle.rb +51 -0
  253. data/lib/protos/icon/heroicon/queue_list.rb +49 -0
  254. data/lib/protos/icon/heroicon/radio.rb +51 -0
  255. data/lib/protos/icon/heroicon/receipt_percent.rb +51 -0
  256. data/lib/protos/icon/heroicon/receipt_refund.rb +51 -0
  257. data/lib/protos/icon/heroicon/rectangle_group.rb +51 -0
  258. data/lib/protos/icon/heroicon/rectangle_stack.rb +49 -0
  259. data/lib/protos/icon/heroicon/rocket_launch.rb +55 -0
  260. data/lib/protos/icon/heroicon/rss.rb +51 -0
  261. data/lib/protos/icon/heroicon/scale.rb +51 -0
  262. data/lib/protos/icon/heroicon/scissors.rb +55 -0
  263. data/lib/protos/icon/heroicon/server.rb +55 -0
  264. data/lib/protos/icon/heroicon/server_stack.rb +55 -0
  265. data/lib/protos/icon/heroicon/share.rb +51 -0
  266. data/lib/protos/icon/heroicon/shield_check.rb +51 -0
  267. data/lib/protos/icon/heroicon/shield_exclamation.rb +51 -0
  268. data/lib/protos/icon/heroicon/shopping_bag.rb +51 -0
  269. data/lib/protos/icon/heroicon/shopping_cart.rb +49 -0
  270. data/lib/protos/icon/heroicon/signal.rb +51 -0
  271. data/lib/protos/icon/heroicon/signal_slash.rb +51 -0
  272. data/lib/protos/icon/heroicon/sparkles.rb +51 -0
  273. data/lib/protos/icon/heroicon/speaker_wave.rb +53 -0
  274. data/lib/protos/icon/heroicon/speaker_x_mark.rb +49 -0
  275. data/lib/protos/icon/heroicon/square_2_stack.rb +53 -0
  276. data/lib/protos/icon/heroicon/square_3_stack_3d.rb +57 -0
  277. data/lib/protos/icon/heroicon/squares_2x2.rb +51 -0
  278. data/lib/protos/icon/heroicon/squares_plus.rb +49 -0
  279. data/lib/protos/icon/heroicon/star.rb +51 -0
  280. data/lib/protos/icon/heroicon/stop.rb +51 -0
  281. data/lib/protos/icon/heroicon/stop_circle.rb +56 -0
  282. data/lib/protos/icon/heroicon/sun.rb +49 -0
  283. data/lib/protos/icon/heroicon/swatch.rb +55 -0
  284. data/lib/protos/icon/heroicon/table_cells.rb +51 -0
  285. data/lib/protos/icon/heroicon/tag.rb +56 -0
  286. data/lib/protos/icon/heroicon/ticket.rb +51 -0
  287. data/lib/protos/icon/heroicon/trash.rb +51 -0
  288. data/lib/protos/icon/heroicon/trophy.rb +51 -0
  289. data/lib/protos/icon/heroicon/truck.rb +54 -0
  290. data/lib/protos/icon/heroicon/tv.rb +52 -0
  291. data/lib/protos/icon/heroicon/user.rb +51 -0
  292. data/lib/protos/icon/heroicon/user_circle.rb +51 -0
  293. data/lib/protos/icon/heroicon/user_group.rb +55 -0
  294. data/lib/protos/icon/heroicon/user_minus.rb +49 -0
  295. data/lib/protos/icon/heroicon/user_plus.rb +49 -0
  296. data/lib/protos/icon/heroicon/users.rb +49 -0
  297. data/lib/protos/icon/heroicon/variable.rb +51 -0
  298. data/lib/protos/icon/heroicon/video_camera.rb +49 -0
  299. data/lib/protos/icon/heroicon/video_camera_slash.rb +49 -0
  300. data/lib/protos/icon/heroicon/view_columns.rb +49 -0
  301. data/lib/protos/icon/heroicon/viewfinder_circle.rb +49 -0
  302. data/lib/protos/icon/heroicon/wallet.rb +49 -0
  303. data/lib/protos/icon/heroicon/wifi.rb +51 -0
  304. data/lib/protos/icon/heroicon/window.rb +51 -0
  305. data/lib/protos/icon/heroicon/wrench.rb +56 -0
  306. data/lib/protos/icon/heroicon/wrench_screwdriver.rb +61 -0
  307. data/lib/protos/icon/heroicon/x_circle.rb +50 -0
  308. data/lib/protos/icon/heroicon/x_mark.rb +50 -0
  309. data/lib/protos/icon/heroicon.rb +308 -0
  310. data/lib/protos/icon/heroicon_component.rb +13 -0
  311. data/lib/protos/icon/inhouse/facebook.rb +29 -0
  312. data/lib/protos/icon/inhouse/twitter.rb +29 -0
  313. data/lib/protos/icon/inhouse/youtube.rb +29 -0
  314. data/lib/protos/icon/inhouse.rb +5 -14
  315. data/lib/protos/icon/version.rb +1 -1
  316. data/lib/protos/icon.rb +20 -20
  317. data/protos-icon.gemspec +4 -1
  318. metadata +333 -2
  319. data/lib/protos/icon/heroicons.rb +0 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0647186b423f676be9b71bc7b9551be8fd9471df91da3b7b8e1be98b5b11ced
4
- data.tar.gz: a061174e43487b03b9cc4a4c46339ca9807c1aff0eb996c3a010b31e69295a11
3
+ metadata.gz: 0f3f2e842946b64e795ae5c075143d8e7ec773516f02001c39da0bcb93966aaa
4
+ data.tar.gz: 93fea7d1af6cec2aa5452dd97a6cbfdc759a45d7079924623bae63fdcaf3f570
5
5
  SHA512:
6
- metadata.gz: 738e5c246a9c1c5ab0323c53786f0e8bacf0474908120e73f014ed0d08c2e2eb39b15ab9ebe9ce4c81afd0f8d023862093b23899b1037fadd57a5a9a2af14566
7
- data.tar.gz: 6ec03a1ccc7b1bd47791872b1f54b238aacf9f43107ed945469326e1e9038274925f605f15730465c5d341f02a6fc3de06279d9cd43cd774406628b5ec14d7f9
6
+ metadata.gz: fa5c4317621159fefde6383fabad65f16055695ea2e9bc0f4f5090382ecf3a843da80978b1c5581c49bb690cd03aca676b0eab0b87e78d674d346bd5b520eb0a
7
+ data.tar.gz: 68056c8fb6bda55276ba6479979528383326bba7dc3528c38c48585402a5d20219579ffb23f21d6d57555a31dafc47f206b539ba8d725df7a94aebf737ba4cde
data/.rubocop.yml CHANGED
@@ -7,3 +7,9 @@ inherit_gem:
7
7
 
8
8
  AllCops:
9
9
  TargetRubyVersion: 3.1
10
+
11
+ Metrics/MethodLength:
12
+ CountAsOne: ['array', 'method_call']
13
+
14
+ Metrics/ClassLength:
15
+ CountAsOne: ['array', 'method_call']
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.4.0] - 2024-12-18
4
+
5
+ - Removes `unsafe_raw` replaced with protos component generation
6
+ - Removes old class lookup, uses constant auto loading instead
7
+ - Adds `protos` as an explicit dependency
8
+
3
9
  ## [0.3.1] - 2024-12-18
4
10
 
5
11
  - Fixes issues with passing extra arguments to inhouse icons
data/README.md CHANGED
@@ -1,12 +1,11 @@
1
1
  # Protos::Icon
2
2
 
3
- Icon component for Phlex with heroicons built in so far. It currently just uses
4
- `unsafe_raw` to output the content of the `.svg` files downloaded from the
5
- heroicons repo.
3
+ This gem uses [phlexing](https://github.com/marcoroth/phlexing) component
4
+ generation to convert SVG icons into protos components.
6
5
 
7
- This gem does not add any classes or contain the SVG in a container.
8
- It just outputs the SVG. It would be expected you would build this into your own
9
- component or helper.
6
+ Other similar libraries to check out:
7
+
8
+ - [phlex-icons](https://phlex-icons.fun/)
10
9
 
11
10
  ## Installation
12
11
 
@@ -24,7 +23,7 @@ If bundler is not being used to manage dependencies, install the gem by executin
24
23
  require "protos-icon"
25
24
 
26
25
  # This just returns a Phlex component
27
- render Protos::Icon.heroicon("academic-cap", variant: :mini)
26
+ render Protos::Icon.find("academic-cap").new(variant: :solid)
28
27
  ```
29
28
 
30
29
  Or you can include the module in a class and render them as an element:
@@ -34,15 +33,44 @@ class MyComponent < Phlex::HTML
34
33
  include Protos::Icon
35
34
 
36
35
  def template
37
- div(class: "w-6 h-6") do
38
- icon("academic-cap", variant: :mini)
39
- end
36
+ icon("academic-cap", variant: :solid, class: "w-6 h-6")
40
37
  end
41
38
  end
42
39
  ```
43
40
 
44
- This will call render on the icon component and output it directly to the
45
- component.
41
+ Or you can wrap the helper inside your own component:
42
+
43
+ ```ruby
44
+ module Ui
45
+ class Icon < ApplicationComponent
46
+ include Protos::Icon
47
+
48
+ param :name
49
+ option :size, default: -> { :md }
50
+ option :variant, default: -> { :solid }
51
+
52
+ STYLES = {
53
+ xs: ["w-3 h-3"],
54
+ sm: ["w-4 h-4"],
55
+ md: ["w-6 h-6"],
56
+ lg: ["w-8 h-8"],
57
+ xl: ["w-12 h-12"]
58
+ }.freeze
59
+
60
+ def view_template
61
+ icon(name, variant:, **attrs)
62
+ end
63
+
64
+ private
65
+
66
+ def theme
67
+ {
68
+ container: STYLES[size]
69
+ }
70
+ end
71
+ end
72
+ end
73
+ ```
46
74
 
47
75
  ## Development
48
76
 
data/Rakefile CHANGED
@@ -7,6 +7,7 @@ RSpec::Core::RakeTask.new(:spec)
7
7
 
8
8
  task default: :spec
9
9
 
10
+ desc "Download Heroicons"
10
11
  task :download_heroicons do
11
12
  system "git clone https://github.com/tailwindlabs/heroicons.git"
12
13
  system "cp -r heroicons/optimized/* assets/heroicons"
@@ -1,9 +1,3 @@
1
- <svg
2
- xmlns="http://www.w3.org/2000/svg"
3
- width="24"
4
- height="24"
5
- viewBox="0 0 24 24"
6
- class="fill-current">
7
- <path d="M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z">
8
- </path>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon">
2
+ <path d="M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z"></path>
9
3
  </svg>
@@ -1,9 +1,3 @@
1
- <svg
2
- xmlns="http://www.w3.org/2000/svg"
3
- width="24"
4
- height="24"
5
- viewBox="0 0 24 24"
6
- class="fill-current">
7
- <path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z">
8
- </path>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon">
2
+ <path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"></path>
9
3
  </svg>
@@ -1,9 +1,3 @@
1
- <svg
2
- xmlns="http://www.w3.org/2000/svg"
3
- width="24"
4
- height="24"
5
- viewBox="0 0 24 24"
6
- class="fill-current">
7
- <path d="M19.615 3.184c-3.604-.246-11.631-.245-15.23 0-3.897.266-4.356 2.62-4.385 8.816.029 6.185.484 8.549 4.385 8.816 3.6.245 11.626.246 15.23 0 3.897-.266 4.356-2.62 4.385-8.816-.029-6.185-.484-8.549-4.385-8.816zm-10.615 12.816v-8l8 3.993-8 4.007z">
8
- </path>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon">
2
+ <path d="M19.615 3.184c-3.604-.246-11.631-.245-15.23 0-3.897.266-4.356 2.62-4.385 8.816.029 6.185.484 8.549 4.385 8.816 3.6.245 11.626.246 15.23 0 3.897-.266 4.356-2.62 4.385-8.816-.029-6.185-.484-8.549-4.385-8.816zm-10.615 12.816v-8l8 3.993-8 4.007z"></path>
9
3
  </svg>
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "erb"
4
+ require "zeitwerk"
5
+ require "phlexing"
6
+ require "dry/files"
7
+ require "tqdm"
8
+
9
+ def add_autoload_entries(module_file, resources) # rubocop:disable Style/TopLevelMethodDefinition
10
+ autoload_content = resources.map do |resource|
11
+ (" " * 6) + "autoload :#{resource.name}, \"#{resource.relative_file_path}\""
12
+ end
13
+
14
+ lines = File.readlines(module_file)
15
+ start = lines.index { |line| line.include?("# autogenerated:start") }
16
+ finish = lines.index { |line| line.include?("# autogenerated:finish") }
17
+
18
+ # Remove existing lines
19
+ lines.slice!(start + 1..finish - 1)
20
+ # Place new lines
21
+ lines.insert(start + 1, "#{autoload_content.join("\n")}\n")
22
+
23
+ File.write(module_file, lines.join)
24
+ end
@@ -0,0 +1,129 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "helpers"
4
+
5
+ OUTPUT_DIR = Pathname.new("lib/protos/icon/heroicon").freeze
6
+
7
+ RUBOCOPS = %w[
8
+ Layout/LineLength
9
+ ].join(", ")
10
+
11
+ TEMPLATE = ERB.new <<~ERB
12
+ # frozen_string_literal: true
13
+
14
+ # This file was generated by the `generators/heroicon.rb` generator.
15
+
16
+ # rubocop:disable #{RUBOCOPS}
17
+ module Protos
18
+ module Icon
19
+ module Heroicon
20
+ class <%= icon_class_name %> < HeroiconComponent
21
+ def solid
22
+ <%= solid_icon %>
23
+ end
24
+
25
+ def outline
26
+ <%= outline_icon %>
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ # rubocop:enable #{RUBOCOPS}
33
+ ERB
34
+
35
+ require "debug"
36
+
37
+ class ResourcePath
38
+ REGEXP = %r{heroicons/24/(?<variant>solid|outline)/(?<name>.+)\.svg}
39
+
40
+ attr_reader :variant, :name
41
+
42
+ def initialize(path)
43
+ @path = path
44
+ @variant, @name = path.to_s.match(REGEXP).captures
45
+ end
46
+
47
+ def icon_class_name
48
+ @name.split("-").map(&:capitalize).join
49
+ end
50
+
51
+ def solid?
52
+ @variant == "solid"
53
+ end
54
+
55
+ def outline?
56
+ @variant == "outline"
57
+ end
58
+
59
+ def filename
60
+ @path.basename.to_s.split(".").first.tr("-", "_")
61
+ end
62
+
63
+ def read
64
+ File.read(@path)
65
+ end
66
+ end
67
+
68
+ class Resource
69
+ attr_reader :name
70
+
71
+ def initialize(name, paths)
72
+ @name = name
73
+ @solid_path = paths.find(&:solid?)
74
+ @outline_path = paths.find(&:outline?)
75
+ end
76
+
77
+ def file_name
78
+ OUTPUT_DIR.join("#{@solid_path.filename}.rb")
79
+ end
80
+
81
+ def relative_file_path
82
+ file_name.relative_path_from(Pathname.new("lib")).to_s
83
+ end
84
+
85
+ def solid_icon
86
+ build_icon(@solid_path)
87
+ end
88
+
89
+ def outline_icon
90
+ build_icon(@outline_path)
91
+ end
92
+
93
+ private
94
+
95
+ def build_icon(path)
96
+ Phlexing::Converter
97
+ .convert(path.read)
98
+ .sub("svg(", "svg(\n **attrs,")
99
+ .split("\n")
100
+ .map { |line| (" " * 10) + line }
101
+ .join("\n")
102
+ end
103
+ end
104
+
105
+ resource_paths = Pathname.glob("assets/heroicons/24/**/*.svg").map do |path|
106
+ ResourcePath.new(path)
107
+ end
108
+
109
+ resources = resource_paths
110
+ .group_by(&:icon_class_name)
111
+ .map do |icon_class_name, paths|
112
+ Resource.new(icon_class_name, paths)
113
+ end
114
+
115
+ module_file = OUTPUT_DIR.join("..", "heroicon.rb")
116
+ add_autoload_entries(module_file, resources)
117
+
118
+ resources.with_progress.each do |resource|
119
+ File.write(
120
+ resource.file_name,
121
+ TEMPLATE.result_with_hash(
122
+ {
123
+ icon_class_name: resource.name,
124
+ solid_icon: resource.solid_icon,
125
+ outline_icon: resource.outline_icon
126
+ }
127
+ )
128
+ )
129
+ end
@@ -0,0 +1,110 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "helpers"
4
+
5
+ OUTPUT_DIR = Pathname.new("lib/protos/icon/inhouse").freeze
6
+
7
+ RUBOCOPS = %w[
8
+ Layout/LineLength
9
+ ].join(", ")
10
+
11
+ TEMPLATE = ERB.new <<~ERB
12
+ # frozen_string_literal: true
13
+
14
+ # This file was generated by the `generators/inhouse.rb` generator.
15
+
16
+ # rubocop:disable #{RUBOCOPS}
17
+ module Protos
18
+ module Icon
19
+ module Inhouse
20
+ class <%= icon_class_name %> < Component
21
+ def view_template
22
+ <%= icon %>
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ # rubocop:enable #{RUBOCOPS}
29
+ ERB
30
+
31
+ require "debug"
32
+
33
+ class ResourcePath
34
+ REGEXP = %r{inhouse/(?<name>.+)\.svg}
35
+
36
+ attr_reader :name
37
+
38
+ def initialize(path)
39
+ @path = path
40
+ @name = path.to_s.match(REGEXP).captures.first
41
+ end
42
+
43
+ def icon_class_name
44
+ @name.split("-").map(&:capitalize).join
45
+ end
46
+
47
+ def filename
48
+ @path.basename.to_s.split(".").first.tr("-", "_")
49
+ end
50
+
51
+ def read
52
+ File.read(@path)
53
+ end
54
+ end
55
+
56
+ class Resource
57
+ attr_reader :name
58
+
59
+ def initialize(name, path)
60
+ @name = name
61
+ @path = path
62
+ end
63
+
64
+ def file_name
65
+ OUTPUT_DIR.join("#{@path.filename}.rb")
66
+ end
67
+
68
+ def relative_file_path
69
+ file_name.relative_path_from(Pathname.new("lib")).to_s
70
+ end
71
+
72
+ def icon
73
+ build_icon(@path)
74
+ end
75
+
76
+ private
77
+
78
+ def build_icon(path)
79
+ Phlexing::Converter
80
+ .convert(path.read)
81
+ .sub("svg(", "svg(\n **attrs,")
82
+ .split("\n")
83
+ .map { |line| (" " * 10) + line }
84
+ .join("\n")
85
+ end
86
+ end
87
+
88
+ resource_paths = Pathname.glob("assets/inhouse/**/*.svg").map do |path|
89
+ ResourcePath.new(path)
90
+ end
91
+
92
+ resources = resource_paths
93
+ .map do |path|
94
+ Resource.new(path.icon_class_name, path)
95
+ end
96
+
97
+ module_file = OUTPUT_DIR.join("..", "inhouse.rb")
98
+ add_autoload_entries(module_file, resources)
99
+
100
+ resources.with_progress.each do |resource|
101
+ File.write(
102
+ resource.file_name,
103
+ TEMPLATE.result_with_hash(
104
+ {
105
+ icon_class_name: resource.name,
106
+ icon: resource.icon
107
+ }
108
+ )
109
+ )
110
+ end
@@ -2,14 +2,7 @@
2
2
 
3
3
  module Protos
4
4
  module Icon
5
- class Component < Phlex::HTML
6
- def initialize(filepath)
7
- @filepath = filepath
8
- end
9
-
10
- def view_template
11
- unsafe_raw File.read(@filepath)
12
- end
5
+ class Component < Protos::Component
13
6
  end
14
7
  end
15
8
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by the `generators/heroicon.rb` generator.
4
+
5
+ # rubocop:disable Layout/LineLength
6
+ module Protos
7
+ module Icon
8
+ module Heroicon
9
+ class AcademicCap < HeroiconComponent
10
+ def solid
11
+ svg(
12
+ **attrs,
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewbox: "0 0 24 24",
15
+ fill: "currentColor",
16
+ aria_hidden: "true",
17
+ data_slot: "icon"
18
+ ) do |s|
19
+ s.path(
20
+ d:
21
+ "M11.7 2.805a.75.75 0 0 1 .6 0A60.65 60.65 0 0 1 22.83 8.72a.75.75 0 0 1-.231 1.337 49.948 49.948 0 0 0-9.902 3.912l-.003.002c-.114.06-.227.119-.34.18a.75.75 0 0 1-.707 0A50.88 50.88 0 0 0 7.5 12.173v-.224c0-.131.067-.248.172-.311a54.615 54.615 0 0 1 4.653-2.52.75.75 0 0 0-.65-1.352 56.123 56.123 0 0 0-4.78 2.589 1.858 1.858 0 0 0-.859 1.228 49.803 49.803 0 0 0-4.634-1.527.75.75 0 0 1-.231-1.337A60.653 60.653 0 0 1 11.7 2.805Z"
22
+ )
23
+ s.path(
24
+ d:
25
+ "M13.06 15.473a48.45 48.45 0 0 1 7.666-3.282c.134 1.414.22 2.843.255 4.284a.75.75 0 0 1-.46.711 47.87 47.87 0 0 0-8.105 4.342.75.75 0 0 1-.832 0 47.87 47.87 0 0 0-8.104-4.342.75.75 0 0 1-.461-.71c.035-1.442.121-2.87.255-4.286.921.304 1.83.634 2.726.99v1.27a1.5 1.5 0 0 0-.14 2.508c-.09.38-.222.753-.397 1.11.452.213.901.434 1.346.66a6.727 6.727 0 0 0 .551-1.607 1.5 1.5 0 0 0 .14-2.67v-.645a48.549 48.549 0 0 1 3.44 1.667 2.25 2.25 0 0 0 2.12 0Z"
26
+ )
27
+ s.path(
28
+ d:
29
+ "M4.462 19.462c.42-.419.753-.89 1-1.395.453.214.902.435 1.347.662a6.742 6.742 0 0 1-1.286 1.794.75.75 0 0 1-1.06-1.06Z"
30
+ )
31
+ end
32
+ end
33
+
34
+ def outline
35
+ svg(
36
+ **attrs,
37
+ xmlns: "http://www.w3.org/2000/svg",
38
+ fill: "none",
39
+ viewbox: "0 0 24 24",
40
+ stroke_width: "1.5",
41
+ stroke: "currentColor",
42
+ aria_hidden: "true",
43
+ data_slot: "icon"
44
+ ) do |s|
45
+ s.path(
46
+ stroke_linecap: "round",
47
+ stroke_linejoin: "round",
48
+ d:
49
+ "M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5"
50
+ )
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ # rubocop:enable Layout/LineLength
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by the `generators/heroicon.rb` generator.
4
+
5
+ # rubocop:disable Layout/LineLength
6
+ module Protos
7
+ module Icon
8
+ module Heroicon
9
+ class AdjustmentsHorizontal < HeroiconComponent
10
+ def solid
11
+ svg(
12
+ **attrs,
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewbox: "0 0 24 24",
15
+ fill: "currentColor",
16
+ aria_hidden: "true",
17
+ data_slot: "icon"
18
+ ) do |s|
19
+ s.path(
20
+ d:
21
+ "M18.75 12.75h1.5a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5ZM12 6a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 12 6ZM12 18a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 12 18ZM3.75 6.75h1.5a.75.75 0 1 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5ZM5.25 18.75h-1.5a.75.75 0 0 1 0-1.5h1.5a.75.75 0 0 1 0 1.5ZM3 12a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 3 12ZM9 3.75a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5ZM12.75 12a2.25 2.25 0 1 1 4.5 0 2.25 2.25 0 0 1-4.5 0ZM9 15.75a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5Z"
22
+ )
23
+ end
24
+ end
25
+
26
+ def outline
27
+ svg(
28
+ **attrs,
29
+ xmlns: "http://www.w3.org/2000/svg",
30
+ fill: "none",
31
+ viewbox: "0 0 24 24",
32
+ stroke_width: "1.5",
33
+ stroke: "currentColor",
34
+ aria_hidden: "true",
35
+ data_slot: "icon"
36
+ ) do |s|
37
+ s.path(
38
+ stroke_linecap: "round",
39
+ stroke_linejoin: "round",
40
+ d:
41
+ "M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"
42
+ )
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ # rubocop:enable Layout/LineLength
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by the `generators/heroicon.rb` generator.
4
+
5
+ # rubocop:disable Layout/LineLength
6
+ module Protos
7
+ module Icon
8
+ module Heroicon
9
+ class AdjustmentsVertical < HeroiconComponent
10
+ def solid
11
+ svg(
12
+ **attrs,
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewbox: "0 0 24 24",
15
+ fill: "currentColor",
16
+ aria_hidden: "true",
17
+ data_slot: "icon"
18
+ ) do |s|
19
+ s.path(
20
+ d:
21
+ "M6 12a.75.75 0 0 1-.75-.75v-7.5a.75.75 0 1 1 1.5 0v7.5A.75.75 0 0 1 6 12ZM18 12a.75.75 0 0 1-.75-.75v-7.5a.75.75 0 0 1 1.5 0v7.5A.75.75 0 0 1 18 12ZM6.75 20.25v-1.5a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0ZM18.75 18.75v1.5a.75.75 0 0 1-1.5 0v-1.5a.75.75 0 0 1 1.5 0ZM12.75 5.25v-1.5a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0ZM12 21a.75.75 0 0 1-.75-.75v-7.5a.75.75 0 0 1 1.5 0v7.5A.75.75 0 0 1 12 21ZM3.75 15a2.25 2.25 0 1 0 4.5 0 2.25 2.25 0 0 0-4.5 0ZM12 11.25a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5ZM15.75 15a2.25 2.25 0 1 0 4.5 0 2.25 2.25 0 0 0-4.5 0Z"
22
+ )
23
+ end
24
+ end
25
+
26
+ def outline
27
+ svg(
28
+ **attrs,
29
+ xmlns: "http://www.w3.org/2000/svg",
30
+ fill: "none",
31
+ viewbox: "0 0 24 24",
32
+ stroke_width: "1.5",
33
+ stroke: "currentColor",
34
+ aria_hidden: "true",
35
+ data_slot: "icon"
36
+ ) do |s|
37
+ s.path(
38
+ stroke_linecap: "round",
39
+ stroke_linejoin: "round",
40
+ d:
41
+ "M6 13.5V3.75m0 9.75a1.5 1.5 0 0 1 0 3m0-3a1.5 1.5 0 0 0 0 3m0 3.75V16.5m12-3V3.75m0 9.75a1.5 1.5 0 0 1 0 3m0-3a1.5 1.5 0 0 0 0 3m0 3.75V16.5m-6-9V3.75m0 3.75a1.5 1.5 0 0 1 0 3m0-3a1.5 1.5 0 0 0 0 3m0 9.75V10.5"
42
+ )
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ # rubocop:enable Layout/LineLength
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by the `generators/heroicon.rb` generator.
4
+
5
+ # rubocop:disable Layout/LineLength
6
+ module Protos
7
+ module Icon
8
+ module Heroicon
9
+ class ArchiveBox < HeroiconComponent
10
+ def solid
11
+ svg(
12
+ **attrs,
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewbox: "0 0 24 24",
15
+ fill: "currentColor",
16
+ aria_hidden: "true",
17
+ data_slot: "icon"
18
+ ) do |s|
19
+ s.path(
20
+ d:
21
+ "M3.375 3C2.339 3 1.5 3.84 1.5 4.875v.75c0 1.036.84 1.875 1.875 1.875h17.25c1.035 0 1.875-.84 1.875-1.875v-.75C22.5 3.839 21.66 3 20.625 3H3.375Z"
22
+ )
23
+ s.path(
24
+ fill_rule: "evenodd",
25
+ d:
26
+ "m3.087 9 .54 9.176A3 3 0 0 0 6.62 21h10.757a3 3 0 0 0 2.995-2.824L20.913 9H3.087Zm6.163 3.75A.75.75 0 0 1 10 12h4a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1-.75-.75Z",
27
+ clip_rule: "evenodd"
28
+ )
29
+ end
30
+ end
31
+
32
+ def outline
33
+ svg(
34
+ **attrs,
35
+ xmlns: "http://www.w3.org/2000/svg",
36
+ fill: "none",
37
+ viewbox: "0 0 24 24",
38
+ stroke_width: "1.5",
39
+ stroke: "currentColor",
40
+ aria_hidden: "true",
41
+ data_slot: "icon"
42
+ ) do |s|
43
+ s.path(
44
+ stroke_linecap: "round",
45
+ stroke_linejoin: "round",
46
+ d:
47
+ "m20.25 7.5-.625 10.632a2.25 2.25 0 0 1-2.247 2.118H6.622a2.25 2.25 0 0 1-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z"
48
+ )
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ # rubocop:enable Layout/LineLength