jet_ui 0.2.4

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 (471) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +106 -0
  3. data/LICENSE.md +21 -0
  4. data/README.md +114 -0
  5. data/app/assets/images/jet_ui/icons/academic-cap.svg +3 -0
  6. data/app/assets/images/jet_ui/icons/adjustments-horizontal.svg +3 -0
  7. data/app/assets/images/jet_ui/icons/adjustments-vertical.svg +3 -0
  8. data/app/assets/images/jet_ui/icons/archive-box-arrow-down.svg +3 -0
  9. data/app/assets/images/jet_ui/icons/archive-box-x-mark.svg +3 -0
  10. data/app/assets/images/jet_ui/icons/archive-box.svg +3 -0
  11. data/app/assets/images/jet_ui/icons/arrow-down-circle.svg +3 -0
  12. data/app/assets/images/jet_ui/icons/arrow-down-left.svg +3 -0
  13. data/app/assets/images/jet_ui/icons/arrow-down-on-square-stack.svg +3 -0
  14. data/app/assets/images/jet_ui/icons/arrow-down-on-square.svg +3 -0
  15. data/app/assets/images/jet_ui/icons/arrow-down-right.svg +3 -0
  16. data/app/assets/images/jet_ui/icons/arrow-down-tray.svg +3 -0
  17. data/app/assets/images/jet_ui/icons/arrow-down.svg +3 -0
  18. data/app/assets/images/jet_ui/icons/arrow-left-circle.svg +3 -0
  19. data/app/assets/images/jet_ui/icons/arrow-left-end-on-rectangle.svg +3 -0
  20. data/app/assets/images/jet_ui/icons/arrow-left-on-rectangle.svg +3 -0
  21. data/app/assets/images/jet_ui/icons/arrow-left-start-on-rectangle.svg +3 -0
  22. data/app/assets/images/jet_ui/icons/arrow-left.svg +3 -0
  23. data/app/assets/images/jet_ui/icons/arrow-long-down.svg +3 -0
  24. data/app/assets/images/jet_ui/icons/arrow-long-left.svg +3 -0
  25. data/app/assets/images/jet_ui/icons/arrow-long-right.svg +3 -0
  26. data/app/assets/images/jet_ui/icons/arrow-long-up.svg +3 -0
  27. data/app/assets/images/jet_ui/icons/arrow-path-rounded-square.svg +3 -0
  28. data/app/assets/images/jet_ui/icons/arrow-path.svg +3 -0
  29. data/app/assets/images/jet_ui/icons/arrow-right-circle.svg +3 -0
  30. data/app/assets/images/jet_ui/icons/arrow-right-end-on-rectangle.svg +3 -0
  31. data/app/assets/images/jet_ui/icons/arrow-right-on-rectangle.svg +3 -0
  32. data/app/assets/images/jet_ui/icons/arrow-right-start-on-rectangle.svg +3 -0
  33. data/app/assets/images/jet_ui/icons/arrow-right.svg +3 -0
  34. data/app/assets/images/jet_ui/icons/arrow-small-down.svg +3 -0
  35. data/app/assets/images/jet_ui/icons/arrow-small-left.svg +3 -0
  36. data/app/assets/images/jet_ui/icons/arrow-small-right.svg +3 -0
  37. data/app/assets/images/jet_ui/icons/arrow-small-up.svg +3 -0
  38. data/app/assets/images/jet_ui/icons/arrow-top-right-on-square.svg +3 -0
  39. data/app/assets/images/jet_ui/icons/arrow-trending-down.svg +3 -0
  40. data/app/assets/images/jet_ui/icons/arrow-trending-up.svg +3 -0
  41. data/app/assets/images/jet_ui/icons/arrow-turn-down-left.svg +3 -0
  42. data/app/assets/images/jet_ui/icons/arrow-turn-down-right.svg +3 -0
  43. data/app/assets/images/jet_ui/icons/arrow-turn-left-down.svg +3 -0
  44. data/app/assets/images/jet_ui/icons/arrow-turn-left-up.svg +3 -0
  45. data/app/assets/images/jet_ui/icons/arrow-turn-right-down.svg +3 -0
  46. data/app/assets/images/jet_ui/icons/arrow-turn-right-up.svg +3 -0
  47. data/app/assets/images/jet_ui/icons/arrow-turn-up-left.svg +3 -0
  48. data/app/assets/images/jet_ui/icons/arrow-turn-up-right.svg +3 -0
  49. data/app/assets/images/jet_ui/icons/arrow-up-circle.svg +3 -0
  50. data/app/assets/images/jet_ui/icons/arrow-up-left.svg +3 -0
  51. data/app/assets/images/jet_ui/icons/arrow-up-on-square-stack.svg +3 -0
  52. data/app/assets/images/jet_ui/icons/arrow-up-on-square.svg +3 -0
  53. data/app/assets/images/jet_ui/icons/arrow-up-right.svg +3 -0
  54. data/app/assets/images/jet_ui/icons/arrow-up-tray.svg +3 -0
  55. data/app/assets/images/jet_ui/icons/arrow-up.svg +3 -0
  56. data/app/assets/images/jet_ui/icons/arrow-uturn-down.svg +3 -0
  57. data/app/assets/images/jet_ui/icons/arrow-uturn-left.svg +3 -0
  58. data/app/assets/images/jet_ui/icons/arrow-uturn-right.svg +3 -0
  59. data/app/assets/images/jet_ui/icons/arrow-uturn-up.svg +3 -0
  60. data/app/assets/images/jet_ui/icons/arrows-pointing-in.svg +3 -0
  61. data/app/assets/images/jet_ui/icons/arrows-pointing-out.svg +3 -0
  62. data/app/assets/images/jet_ui/icons/arrows-right-left.svg +3 -0
  63. data/app/assets/images/jet_ui/icons/arrows-up-down.svg +3 -0
  64. data/app/assets/images/jet_ui/icons/at-symbol.svg +3 -0
  65. data/app/assets/images/jet_ui/icons/backspace.svg +3 -0
  66. data/app/assets/images/jet_ui/icons/backward.svg +4 -0
  67. data/app/assets/images/jet_ui/icons/banknotes.svg +3 -0
  68. data/app/assets/images/jet_ui/icons/bars-2.svg +3 -0
  69. data/app/assets/images/jet_ui/icons/bars-3-bottom-left.svg +3 -0
  70. data/app/assets/images/jet_ui/icons/bars-3-bottom-right.svg +3 -0
  71. data/app/assets/images/jet_ui/icons/bars-3-center-left.svg +3 -0
  72. data/app/assets/images/jet_ui/icons/bars-3.svg +3 -0
  73. data/app/assets/images/jet_ui/icons/bars-4.svg +3 -0
  74. data/app/assets/images/jet_ui/icons/bars-arrow-down.svg +3 -0
  75. data/app/assets/images/jet_ui/icons/bars-arrow-up.svg +3 -0
  76. data/app/assets/images/jet_ui/icons/battery-0.svg +3 -0
  77. data/app/assets/images/jet_ui/icons/battery-100.svg +3 -0
  78. data/app/assets/images/jet_ui/icons/battery-50.svg +3 -0
  79. data/app/assets/images/jet_ui/icons/beaker.svg +3 -0
  80. data/app/assets/images/jet_ui/icons/bell-alert.svg +3 -0
  81. data/app/assets/images/jet_ui/icons/bell-slash.svg +3 -0
  82. data/app/assets/images/jet_ui/icons/bell-snooze.svg +3 -0
  83. data/app/assets/images/jet_ui/icons/bell.svg +3 -0
  84. data/app/assets/images/jet_ui/icons/bold.svg +3 -0
  85. data/app/assets/images/jet_ui/icons/bolt-slash.svg +3 -0
  86. data/app/assets/images/jet_ui/icons/bolt.svg +3 -0
  87. data/app/assets/images/jet_ui/icons/book-open.svg +3 -0
  88. data/app/assets/images/jet_ui/icons/bookmark-slash.svg +3 -0
  89. data/app/assets/images/jet_ui/icons/bookmark-square.svg +3 -0
  90. data/app/assets/images/jet_ui/icons/bookmark.svg +3 -0
  91. data/app/assets/images/jet_ui/icons/briefcase.svg +3 -0
  92. data/app/assets/images/jet_ui/icons/bug-ant.svg +3 -0
  93. data/app/assets/images/jet_ui/icons/building-library.svg +3 -0
  94. data/app/assets/images/jet_ui/icons/building-office-2.svg +3 -0
  95. data/app/assets/images/jet_ui/icons/building-office.svg +3 -0
  96. data/app/assets/images/jet_ui/icons/building-storefront.svg +3 -0
  97. data/app/assets/images/jet_ui/icons/cake.svg +3 -0
  98. data/app/assets/images/jet_ui/icons/calculator.svg +3 -0
  99. data/app/assets/images/jet_ui/icons/calendar-date-range.svg +3 -0
  100. data/app/assets/images/jet_ui/icons/calendar-days.svg +3 -0
  101. data/app/assets/images/jet_ui/icons/calendar.svg +3 -0
  102. data/app/assets/images/jet_ui/icons/camera.svg +5 -0
  103. data/app/assets/images/jet_ui/icons/chart-bar-square.svg +3 -0
  104. data/app/assets/images/jet_ui/icons/chart-bar.svg +5 -0
  105. data/app/assets/images/jet_ui/icons/chart-pie.svg +4 -0
  106. data/app/assets/images/jet_ui/icons/chat-bubble-bottom-center-text.svg +3 -0
  107. data/app/assets/images/jet_ui/icons/chat-bubble-bottom-center.svg +3 -0
  108. data/app/assets/images/jet_ui/icons/chat-bubble-left-ellipsis.svg +3 -0
  109. data/app/assets/images/jet_ui/icons/chat-bubble-left-right.svg +3 -0
  110. data/app/assets/images/jet_ui/icons/chat-bubble-left.svg +3 -0
  111. data/app/assets/images/jet_ui/icons/chat-bubble-oval-left-ellipsis.svg +3 -0
  112. data/app/assets/images/jet_ui/icons/chat-bubble-oval-left.svg +3 -0
  113. data/app/assets/images/jet_ui/icons/check-badge.svg +3 -0
  114. data/app/assets/images/jet_ui/icons/check-circle.svg +3 -0
  115. data/app/assets/images/jet_ui/icons/check.svg +3 -0
  116. data/app/assets/images/jet_ui/icons/chevron-double-down.svg +3 -0
  117. data/app/assets/images/jet_ui/icons/chevron-double-left.svg +3 -0
  118. data/app/assets/images/jet_ui/icons/chevron-double-right.svg +3 -0
  119. data/app/assets/images/jet_ui/icons/chevron-double-up.svg +4 -0
  120. data/app/assets/images/jet_ui/icons/chevron-down.svg +3 -0
  121. data/app/assets/images/jet_ui/icons/chevron-left.svg +3 -0
  122. data/app/assets/images/jet_ui/icons/chevron-right.svg +3 -0
  123. data/app/assets/images/jet_ui/icons/chevron-up-down.svg +3 -0
  124. data/app/assets/images/jet_ui/icons/chevron-up.svg +3 -0
  125. data/app/assets/images/jet_ui/icons/circle-stack.svg +3 -0
  126. data/app/assets/images/jet_ui/icons/clipboard-document-check.svg +3 -0
  127. data/app/assets/images/jet_ui/icons/clipboard-document-list.svg +3 -0
  128. data/app/assets/images/jet_ui/icons/clipboard-document.svg +3 -0
  129. data/app/assets/images/jet_ui/icons/clipboard.svg +3 -0
  130. data/app/assets/images/jet_ui/icons/clock.svg +3 -0
  131. data/app/assets/images/jet_ui/icons/cloud-arrow-down.svg +3 -0
  132. data/app/assets/images/jet_ui/icons/cloud-arrow-up.svg +3 -0
  133. data/app/assets/images/jet_ui/icons/cloud.svg +3 -0
  134. data/app/assets/images/jet_ui/icons/code-bracket-square.svg +3 -0
  135. data/app/assets/images/jet_ui/icons/code-bracket.svg +3 -0
  136. data/app/assets/images/jet_ui/icons/cog-6-tooth.svg +4 -0
  137. data/app/assets/images/jet_ui/icons/cog-8-tooth.svg +4 -0
  138. data/app/assets/images/jet_ui/icons/cog.svg +3 -0
  139. data/app/assets/images/jet_ui/icons/command-line.svg +3 -0
  140. data/app/assets/images/jet_ui/icons/computer-desktop.svg +3 -0
  141. data/app/assets/images/jet_ui/icons/cpu-chip.svg +3 -0
  142. data/app/assets/images/jet_ui/icons/credit-card.svg +3 -0
  143. data/app/assets/images/jet_ui/icons/cube-transparent.svg +3 -0
  144. data/app/assets/images/jet_ui/icons/cube.svg +3 -0
  145. data/app/assets/images/jet_ui/icons/currency-bangladeshi.svg +3 -0
  146. data/app/assets/images/jet_ui/icons/currency-dollar.svg +3 -0
  147. data/app/assets/images/jet_ui/icons/currency-euro.svg +3 -0
  148. data/app/assets/images/jet_ui/icons/currency-pound.svg +3 -0
  149. data/app/assets/images/jet_ui/icons/currency-rupee.svg +3 -0
  150. data/app/assets/images/jet_ui/icons/currency-yen.svg +3 -0
  151. data/app/assets/images/jet_ui/icons/cursor-arrow-rays.svg +3 -0
  152. data/app/assets/images/jet_ui/icons/cursor-arrow-ripple.svg +3 -0
  153. data/app/assets/images/jet_ui/icons/device-phone-mobile.svg +3 -0
  154. data/app/assets/images/jet_ui/icons/device-tablet.svg +3 -0
  155. data/app/assets/images/jet_ui/icons/divide.svg +3 -0
  156. data/app/assets/images/jet_ui/icons/document-arrow-down.svg +3 -0
  157. data/app/assets/images/jet_ui/icons/document-arrow-up.svg +3 -0
  158. data/app/assets/images/jet_ui/icons/document-chart-bar.svg +3 -0
  159. data/app/assets/images/jet_ui/icons/document-check.svg +3 -0
  160. data/app/assets/images/jet_ui/icons/document-currency-bangladeshi.svg +3 -0
  161. data/app/assets/images/jet_ui/icons/document-currency-dollar.svg +3 -0
  162. data/app/assets/images/jet_ui/icons/document-currency-euro.svg +3 -0
  163. data/app/assets/images/jet_ui/icons/document-currency-pound.svg +3 -0
  164. data/app/assets/images/jet_ui/icons/document-currency-rupee.svg +3 -0
  165. data/app/assets/images/jet_ui/icons/document-currency-yen.svg +3 -0
  166. data/app/assets/images/jet_ui/icons/document-duplicate.svg +3 -0
  167. data/app/assets/images/jet_ui/icons/document-magnifying-glass.svg +3 -0
  168. data/app/assets/images/jet_ui/icons/document-minus.svg +3 -0
  169. data/app/assets/images/jet_ui/icons/document-plus.svg +3 -0
  170. data/app/assets/images/jet_ui/icons/document-text.svg +3 -0
  171. data/app/assets/images/jet_ui/icons/document.svg +3 -0
  172. data/app/assets/images/jet_ui/icons/ellipsis-horizontal-circle.svg +3 -0
  173. data/app/assets/images/jet_ui/icons/ellipsis-horizontal.svg +5 -0
  174. data/app/assets/images/jet_ui/icons/ellipsis-vertical.svg +5 -0
  175. data/app/assets/images/jet_ui/icons/envelope-open.svg +3 -0
  176. data/app/assets/images/jet_ui/icons/envelope.svg +3 -0
  177. data/app/assets/images/jet_ui/icons/equals.svg +3 -0
  178. data/app/assets/images/jet_ui/icons/exclamation-circle.svg +3 -0
  179. data/app/assets/images/jet_ui/icons/exclamation-triangle.svg +3 -0
  180. data/app/assets/images/jet_ui/icons/eye-dropper.svg +3 -0
  181. data/app/assets/images/jet_ui/icons/eye-slash.svg +3 -0
  182. data/app/assets/images/jet_ui/icons/eye.svg +4 -0
  183. data/app/assets/images/jet_ui/icons/face-frown.svg +3 -0
  184. data/app/assets/images/jet_ui/icons/face-smile.svg +3 -0
  185. data/app/assets/images/jet_ui/icons/film.svg +3 -0
  186. data/app/assets/images/jet_ui/icons/finger-print.svg +3 -0
  187. data/app/assets/images/jet_ui/icons/fire.svg +4 -0
  188. data/app/assets/images/jet_ui/icons/flag.svg +3 -0
  189. data/app/assets/images/jet_ui/icons/folder-arrow-down.svg +3 -0
  190. data/app/assets/images/jet_ui/icons/folder-minus.svg +3 -0
  191. data/app/assets/images/jet_ui/icons/folder-open.svg +3 -0
  192. data/app/assets/images/jet_ui/icons/folder-plus.svg +3 -0
  193. data/app/assets/images/jet_ui/icons/folder.svg +3 -0
  194. data/app/assets/images/jet_ui/icons/forward.svg +4 -0
  195. data/app/assets/images/jet_ui/icons/funnel.svg +3 -0
  196. data/app/assets/images/jet_ui/icons/gif.svg +3 -0
  197. data/app/assets/images/jet_ui/icons/gift-top.svg +3 -0
  198. data/app/assets/images/jet_ui/icons/gift.svg +3 -0
  199. data/app/assets/images/jet_ui/icons/github.svg +10 -0
  200. data/app/assets/images/jet_ui/icons/globe-alt.svg +3 -0
  201. data/app/assets/images/jet_ui/icons/globe-americas.svg +3 -0
  202. data/app/assets/images/jet_ui/icons/globe-asia-australia.svg +3 -0
  203. data/app/assets/images/jet_ui/icons/globe-europe-africa.svg +3 -0
  204. data/app/assets/images/jet_ui/icons/h1.svg +3 -0
  205. data/app/assets/images/jet_ui/icons/h2.svg +3 -0
  206. data/app/assets/images/jet_ui/icons/h3.svg +3 -0
  207. data/app/assets/images/jet_ui/icons/hand-raised.svg +3 -0
  208. data/app/assets/images/jet_ui/icons/hand-thumb-down.svg +3 -0
  209. data/app/assets/images/jet_ui/icons/hand-thumb-up.svg +3 -0
  210. data/app/assets/images/jet_ui/icons/hashtag.svg +3 -0
  211. data/app/assets/images/jet_ui/icons/heart.svg +3 -0
  212. data/app/assets/images/jet_ui/icons/home-modern.svg +3 -0
  213. data/app/assets/images/jet_ui/icons/home.svg +3 -0
  214. data/app/assets/images/jet_ui/icons/identification.svg +3 -0
  215. data/app/assets/images/jet_ui/icons/inbox-arrow-down.svg +3 -0
  216. data/app/assets/images/jet_ui/icons/inbox-stack.svg +3 -0
  217. data/app/assets/images/jet_ui/icons/inbox.svg +3 -0
  218. data/app/assets/images/jet_ui/icons/information-circle.svg +3 -0
  219. data/app/assets/images/jet_ui/icons/italic.svg +3 -0
  220. data/app/assets/images/jet_ui/icons/key.svg +3 -0
  221. data/app/assets/images/jet_ui/icons/language.svg +3 -0
  222. data/app/assets/images/jet_ui/icons/lifebuoy.svg +3 -0
  223. data/app/assets/images/jet_ui/icons/light-bulb.svg +3 -0
  224. data/app/assets/images/jet_ui/icons/link-slash.svg +3 -0
  225. data/app/assets/images/jet_ui/icons/link.svg +3 -0
  226. data/app/assets/images/jet_ui/icons/list-bullet.svg +3 -0
  227. data/app/assets/images/jet_ui/icons/lock-closed.svg +3 -0
  228. data/app/assets/images/jet_ui/icons/lock-open.svg +3 -0
  229. data/app/assets/images/jet_ui/icons/magnifying-glass-circle.svg +3 -0
  230. data/app/assets/images/jet_ui/icons/magnifying-glass-minus.svg +3 -0
  231. data/app/assets/images/jet_ui/icons/magnifying-glass-plus.svg +3 -0
  232. data/app/assets/images/jet_ui/icons/magnifying-glass.svg +3 -0
  233. data/app/assets/images/jet_ui/icons/map-pin.svg +4 -0
  234. data/app/assets/images/jet_ui/icons/map.svg +3 -0
  235. data/app/assets/images/jet_ui/icons/megaphone.svg +3 -0
  236. data/app/assets/images/jet_ui/icons/microphone.svg +3 -0
  237. data/app/assets/images/jet_ui/icons/minus-circle.svg +3 -0
  238. data/app/assets/images/jet_ui/icons/minus-small.svg +3 -0
  239. data/app/assets/images/jet_ui/icons/minus.svg +3 -0
  240. data/app/assets/images/jet_ui/icons/moon.svg +3 -0
  241. data/app/assets/images/jet_ui/icons/musical-note.svg +3 -0
  242. data/app/assets/images/jet_ui/icons/newspaper.svg +3 -0
  243. data/app/assets/images/jet_ui/icons/no-symbol.svg +3 -0
  244. data/app/assets/images/jet_ui/icons/numbered-list.svg +3 -0
  245. data/app/assets/images/jet_ui/icons/paint-brush.svg +3 -0
  246. data/app/assets/images/jet_ui/icons/paper-airplane.svg +3 -0
  247. data/app/assets/images/jet_ui/icons/paper-clip.svg +3 -0
  248. data/app/assets/images/jet_ui/icons/pause-circle.svg +3 -0
  249. data/app/assets/images/jet_ui/icons/pause.svg +3 -0
  250. data/app/assets/images/jet_ui/icons/pencil-square.svg +3 -0
  251. data/app/assets/images/jet_ui/icons/pencil.svg +3 -0
  252. data/app/assets/images/jet_ui/icons/percent-badge.svg +3 -0
  253. data/app/assets/images/jet_ui/icons/phone-arrow-down-left.svg +3 -0
  254. data/app/assets/images/jet_ui/icons/phone-arrow-up-right.svg +3 -0
  255. data/app/assets/images/jet_ui/icons/phone-x-mark.svg +3 -0
  256. data/app/assets/images/jet_ui/icons/phone.svg +3 -0
  257. data/app/assets/images/jet_ui/icons/photo.svg +3 -0
  258. data/app/assets/images/jet_ui/icons/play-circle.svg +4 -0
  259. data/app/assets/images/jet_ui/icons/play-pause.svg +3 -0
  260. data/app/assets/images/jet_ui/icons/play.svg +3 -0
  261. data/app/assets/images/jet_ui/icons/plus-circle.svg +3 -0
  262. data/app/assets/images/jet_ui/icons/plus-small.svg +3 -0
  263. data/app/assets/images/jet_ui/icons/plus.svg +3 -0
  264. data/app/assets/images/jet_ui/icons/power.svg +3 -0
  265. data/app/assets/images/jet_ui/icons/presentation-chart-bar.svg +3 -0
  266. data/app/assets/images/jet_ui/icons/presentation-chart-line.svg +3 -0
  267. data/app/assets/images/jet_ui/icons/printer.svg +3 -0
  268. data/app/assets/images/jet_ui/icons/puzzle-piece.svg +3 -0
  269. data/app/assets/images/jet_ui/icons/qr-code.svg +13 -0
  270. data/app/assets/images/jet_ui/icons/question-mark-circle.svg +3 -0
  271. data/app/assets/images/jet_ui/icons/queue-list.svg +3 -0
  272. data/app/assets/images/jet_ui/icons/radio.svg +3 -0
  273. data/app/assets/images/jet_ui/icons/receipt-percent.svg +3 -0
  274. data/app/assets/images/jet_ui/icons/receipt-refund.svg +3 -0
  275. data/app/assets/images/jet_ui/icons/rectangle-group.svg +5 -0
  276. data/app/assets/images/jet_ui/icons/rectangle-stack.svg +3 -0
  277. data/app/assets/images/jet_ui/icons/rocket-launch.svg +3 -0
  278. data/app/assets/images/jet_ui/icons/rss.svg +3 -0
  279. data/app/assets/images/jet_ui/icons/scale.svg +3 -0
  280. data/app/assets/images/jet_ui/icons/scissors.svg +3 -0
  281. data/app/assets/images/jet_ui/icons/server-stack.svg +3 -0
  282. data/app/assets/images/jet_ui/icons/server.svg +3 -0
  283. data/app/assets/images/jet_ui/icons/share.svg +3 -0
  284. data/app/assets/images/jet_ui/icons/shield-check.svg +3 -0
  285. data/app/assets/images/jet_ui/icons/shield-exclamation.svg +3 -0
  286. data/app/assets/images/jet_ui/icons/shopping-bag.svg +3 -0
  287. data/app/assets/images/jet_ui/icons/shopping-cart.svg +3 -0
  288. data/app/assets/images/jet_ui/icons/signal-slash.svg +3 -0
  289. data/app/assets/images/jet_ui/icons/signal.svg +3 -0
  290. data/app/assets/images/jet_ui/icons/slash.svg +3 -0
  291. data/app/assets/images/jet_ui/icons/sparkles.svg +5 -0
  292. data/app/assets/images/jet_ui/icons/speaker-wave.svg +3 -0
  293. data/app/assets/images/jet_ui/icons/speaker-x-mark.svg +3 -0
  294. data/app/assets/images/jet_ui/icons/spinner.svg +1 -0
  295. data/app/assets/images/jet_ui/icons/square-2-stack.svg +3 -0
  296. data/app/assets/images/jet_ui/icons/square-3-stack-3d.svg +3 -0
  297. data/app/assets/images/jet_ui/icons/squares-2x2.svg +6 -0
  298. data/app/assets/images/jet_ui/icons/squares-plus.svg +3 -0
  299. data/app/assets/images/jet_ui/icons/star.svg +3 -0
  300. data/app/assets/images/jet_ui/icons/stop-circle.svg +4 -0
  301. data/app/assets/images/jet_ui/icons/stop.svg +3 -0
  302. data/app/assets/images/jet_ui/icons/strikethrough.svg +3 -0
  303. data/app/assets/images/jet_ui/icons/sun.svg +3 -0
  304. data/app/assets/images/jet_ui/icons/swatch.svg +3 -0
  305. data/app/assets/images/jet_ui/icons/table-cells.svg +3 -0
  306. data/app/assets/images/jet_ui/icons/tag.svg +4 -0
  307. data/app/assets/images/jet_ui/icons/ticket.svg +3 -0
  308. data/app/assets/images/jet_ui/icons/trash.svg +3 -0
  309. data/app/assets/images/jet_ui/icons/trophy.svg +3 -0
  310. data/app/assets/images/jet_ui/icons/truck.svg +3 -0
  311. data/app/assets/images/jet_ui/icons/tv.svg +3 -0
  312. data/app/assets/images/jet_ui/icons/underline.svg +3 -0
  313. data/app/assets/images/jet_ui/icons/user-circle.svg +3 -0
  314. data/app/assets/images/jet_ui/icons/user-group.svg +3 -0
  315. data/app/assets/images/jet_ui/icons/user-minus.svg +3 -0
  316. data/app/assets/images/jet_ui/icons/user-plus.svg +3 -0
  317. data/app/assets/images/jet_ui/icons/user.svg +4 -0
  318. data/app/assets/images/jet_ui/icons/users.svg +3 -0
  319. data/app/assets/images/jet_ui/icons/variable.svg +3 -0
  320. data/app/assets/images/jet_ui/icons/video-camera-slash.svg +3 -0
  321. data/app/assets/images/jet_ui/icons/video-camera.svg +3 -0
  322. data/app/assets/images/jet_ui/icons/view-columns.svg +3 -0
  323. data/app/assets/images/jet_ui/icons/viewfinder-circle.svg +3 -0
  324. data/app/assets/images/jet_ui/icons/wallet.svg +3 -0
  325. data/app/assets/images/jet_ui/icons/wifi.svg +3 -0
  326. data/app/assets/images/jet_ui/icons/window.svg +3 -0
  327. data/app/assets/images/jet_ui/icons/wrench-screwdriver.svg +3 -0
  328. data/app/assets/images/jet_ui/icons/wrench.svg +4 -0
  329. data/app/assets/images/jet_ui/icons/x-circle.svg +3 -0
  330. data/app/assets/images/jet_ui/icons/x-mark.svg +3 -0
  331. data/app/assets/javascripts/jet_ui/clipboard_controller.js +46 -0
  332. data/app/assets/javascripts/jet_ui/drawer_controller.js +70 -0
  333. data/app/assets/javascripts/jet_ui/drawers_controller.js +83 -0
  334. data/app/assets/javascripts/jet_ui/dropdown_controller.js +95 -0
  335. data/app/assets/javascripts/jet_ui/flash_controller.js +34 -0
  336. data/app/assets/javascripts/jet_ui/modal_controller.js +35 -0
  337. data/app/assets/javascripts/jet_ui/modals_controller.js +30 -0
  338. data/app/assets/javascripts/jet_ui/popover_controller.js +95 -0
  339. data/app/assets/javascripts/jet_ui/tooltip_controller.js +107 -0
  340. data/app/assets/javascripts/jet_ui/turbo_confirm_controller.js +25 -0
  341. data/app/assets/stylesheets/jet_ui/accordion.css +24 -0
  342. data/app/assets/stylesheets/jet_ui/alert.css +27 -0
  343. data/app/assets/stylesheets/jet_ui/avatar.css +15 -0
  344. data/app/assets/stylesheets/jet_ui/badge.css +22 -0
  345. data/app/assets/stylesheets/jet_ui/breadcrumbs.css +28 -0
  346. data/app/assets/stylesheets/jet_ui/btn.css +88 -0
  347. data/app/assets/stylesheets/jet_ui/card.css +61 -0
  348. data/app/assets/stylesheets/jet_ui/divider.css +21 -0
  349. data/app/assets/stylesheets/jet_ui/drawer.css +46 -0
  350. data/app/assets/stylesheets/jet_ui/dropdown.css +33 -0
  351. data/app/assets/stylesheets/jet_ui/empty.css +25 -0
  352. data/app/assets/stylesheets/jet_ui/flash.css +50 -0
  353. data/app/assets/stylesheets/jet_ui/group.css +40 -0
  354. data/app/assets/stylesheets/jet_ui/header.css +65 -0
  355. data/app/assets/stylesheets/jet_ui/icon.css +11 -0
  356. data/app/assets/stylesheets/jet_ui/list.css +31 -0
  357. data/app/assets/stylesheets/jet_ui/modal.css +47 -0
  358. data/app/assets/stylesheets/jet_ui/navbar.css +36 -0
  359. data/app/assets/stylesheets/jet_ui/pagy.css +54 -0
  360. data/app/assets/stylesheets/jet_ui/popover.css +51 -0
  361. data/app/assets/stylesheets/jet_ui/sidebar.css +35 -0
  362. data/app/assets/stylesheets/jet_ui/stat.css +23 -0
  363. data/app/assets/stylesheets/jet_ui/stepper.css +82 -0
  364. data/app/assets/stylesheets/jet_ui/table.css +68 -0
  365. data/app/assets/stylesheets/jet_ui/tabs.css +32 -0
  366. data/app/assets/stylesheets/jet_ui/theme.css +174 -0
  367. data/app/assets/stylesheets/jet_ui/timeline.css +45 -0
  368. data/app/assets/stylesheets/jet_ui/tooltip.css +33 -0
  369. data/app/assets/stylesheets/jet_ui.css +28 -0
  370. data/app/components/jet_ui/accordion/body_component.rb +21 -0
  371. data/app/components/jet_ui/accordion/component.rb +24 -0
  372. data/app/components/jet_ui/accordion/summary_component.rb +29 -0
  373. data/app/components/jet_ui/alert/component.rb +29 -0
  374. data/app/components/jet_ui/alert/description_component.rb +21 -0
  375. data/app/components/jet_ui/alert/icon_component.rb +21 -0
  376. data/app/components/jet_ui/alert/title_component.rb +21 -0
  377. data/app/components/jet_ui/avatar/component.rb +54 -0
  378. data/app/components/jet_ui/badge/component.rb +35 -0
  379. data/app/components/jet_ui/base_component.rb +6 -0
  380. data/app/components/jet_ui/breadcrumbs/component.rb +18 -0
  381. data/app/components/jet_ui/breadcrumbs/item_component.rb +25 -0
  382. data/app/components/jet_ui/btn/component.rb +51 -0
  383. data/app/components/jet_ui/card/body_component.rb +24 -0
  384. data/app/components/jet_ui/card/component.rb +24 -0
  385. data/app/components/jet_ui/card/footer_component.rb +48 -0
  386. data/app/components/jet_ui/card/header_component.rb +48 -0
  387. data/app/components/jet_ui/card/subtitle_component.rb +24 -0
  388. data/app/components/jet_ui/card/title_component.rb +24 -0
  389. data/app/components/jet_ui/clipboard/component.rb +58 -0
  390. data/app/components/jet_ui/divider/component.rb +30 -0
  391. data/app/components/jet_ui/drawer/body_component.rb +21 -0
  392. data/app/components/jet_ui/drawer/component.rb +54 -0
  393. data/app/components/jet_ui/drawer/footer_component.rb +45 -0
  394. data/app/components/jet_ui/drawer/header_component.rb +46 -0
  395. data/app/components/jet_ui/dropdown/button_component.rb +24 -0
  396. data/app/components/jet_ui/dropdown/component.rb +28 -0
  397. data/app/components/jet_ui/dropdown/divider_component.rb +21 -0
  398. data/app/components/jet_ui/dropdown/link_component.rb +29 -0
  399. data/app/components/jet_ui/dropdown/menu_component.rb +25 -0
  400. data/app/components/jet_ui/dropdown/title_component.rb +21 -0
  401. data/app/components/jet_ui/dropdown/trigger_component.rb +28 -0
  402. data/app/components/jet_ui/empty/actions_component.rb +19 -0
  403. data/app/components/jet_ui/empty/component.rb +15 -0
  404. data/app/components/jet_ui/empty/description_component.rb +15 -0
  405. data/app/components/jet_ui/empty/icon_component.rb +18 -0
  406. data/app/components/jet_ui/empty/title_component.rb +15 -0
  407. data/app/components/jet_ui/flash/component.html.erb +14 -0
  408. data/app/components/jet_ui/flash/component.rb +44 -0
  409. data/app/components/jet_ui/group/component.rb +26 -0
  410. data/app/components/jet_ui/header/actions_component.rb +21 -0
  411. data/app/components/jet_ui/header/component.rb +35 -0
  412. data/app/components/jet_ui/header/heading_component.rb +21 -0
  413. data/app/components/jet_ui/header/subtitle_component.rb +21 -0
  414. data/app/components/jet_ui/header/title_component.rb +21 -0
  415. data/app/components/jet_ui/icon/component.rb +46 -0
  416. data/app/components/jet_ui/list/action_component.rb +21 -0
  417. data/app/components/jet_ui/list/component.rb +29 -0
  418. data/app/components/jet_ui/list/content_component.rb +21 -0
  419. data/app/components/jet_ui/list/icon_component.rb +25 -0
  420. data/app/components/jet_ui/list/item_component.rb +21 -0
  421. data/app/components/jet_ui/modal/body_component.rb +21 -0
  422. data/app/components/jet_ui/modal/component.rb +54 -0
  423. data/app/components/jet_ui/modal/footer_component.rb +45 -0
  424. data/app/components/jet_ui/modal/header_component.rb +46 -0
  425. data/app/components/jet_ui/navbar/actions_component.rb +21 -0
  426. data/app/components/jet_ui/navbar/brand_component.rb +21 -0
  427. data/app/components/jet_ui/navbar/component.rb +22 -0
  428. data/app/components/jet_ui/navbar/content_component.rb +21 -0
  429. data/app/components/jet_ui/navbar/main_component.rb +21 -0
  430. data/app/components/jet_ui/pagy/component.rb +38 -0
  431. data/app/components/jet_ui/popover/component.rb +29 -0
  432. data/app/components/jet_ui/popover/content_component.rb +23 -0
  433. data/app/components/jet_ui/popover/trigger_component.rb +20 -0
  434. data/app/components/jet_ui/sidebar/component.rb +27 -0
  435. data/app/components/jet_ui/sidebar/link_component.rb +44 -0
  436. data/app/components/jet_ui/sidebar/menu_component.rb +21 -0
  437. data/app/components/jet_ui/sidebar/section_component.rb +21 -0
  438. data/app/components/jet_ui/sidebar/title_component.rb +21 -0
  439. data/app/components/jet_ui/spinner/component.rb +16 -0
  440. data/app/components/jet_ui/stat/component.rb +21 -0
  441. data/app/components/jet_ui/stat/description_component.rb +57 -0
  442. data/app/components/jet_ui/stat/label_component.rb +21 -0
  443. data/app/components/jet_ui/stat/value_component.rb +21 -0
  444. data/app/components/jet_ui/stepper/component.rb +18 -0
  445. data/app/components/jet_ui/stepper/step_component.rb +69 -0
  446. data/app/components/jet_ui/table/component.rb +37 -0
  447. data/app/components/jet_ui/table/tbody_component.rb +15 -0
  448. data/app/components/jet_ui/table/td_component.rb +29 -0
  449. data/app/components/jet_ui/table/tfoot_component.rb +15 -0
  450. data/app/components/jet_ui/table/th_component.rb +27 -0
  451. data/app/components/jet_ui/table/thead_component.rb +15 -0
  452. data/app/components/jet_ui/table/tr_component.rb +15 -0
  453. data/app/components/jet_ui/tabs/component.rb +30 -0
  454. data/app/components/jet_ui/tabs/item_component.rb +34 -0
  455. data/app/components/jet_ui/timeline/component.rb +15 -0
  456. data/app/components/jet_ui/timeline/content_component.rb +15 -0
  457. data/app/components/jet_ui/timeline/dot_component.rb +37 -0
  458. data/app/components/jet_ui/timeline/item_component.rb +15 -0
  459. data/app/components/jet_ui/timeline/time_component.rb +15 -0
  460. data/app/components/jet_ui/tooltip/component.rb +34 -0
  461. data/app/components/jet_ui/turbo_confirm/component.html.erb +20 -0
  462. data/app/components/jet_ui/turbo_confirm/component.rb +8 -0
  463. data/app/helpers/jet_ui_helper.rb +37 -0
  464. data/lib/generators/jet_ui/eject/USAGE +20 -0
  465. data/lib/generators/jet_ui/eject/eject_generator.rb +376 -0
  466. data/lib/generators/jet_ui/install/USAGE +11 -0
  467. data/lib/generators/jet_ui/install/install_generator.rb +121 -0
  468. data/lib/jet_ui/engine.rb +32 -0
  469. data/lib/jet_ui/version.rb +5 -0
  470. data/lib/jet_ui.rb +5 -0
  471. metadata +667 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1ab9147670faeff5c45873f4906311d4326b02573d3d727466f62617bbf1c8e4
4
+ data.tar.gz: 7dcc8fea8a0a07840be1322d3841e60788e300cb98a51cb1fefc2d30eafed523
5
+ SHA512:
6
+ metadata.gz: ebea2bb51597927eefaf84816d5a2504dd0db73420c1aa61eb6d8358a40fd325e9c7229baadf530cce81c74cf0b4def6e40a6feccb865de01d0375cdfea2d403
7
+ data.tar.gz: 684135c36c81610df41ba56098f985d3f92b42d49b8a886d45a95db5887b3e8750abf4c29f5c20bbc1c0580300cae492625a9e3d50da4ad5c92f839af8053c4e
data/CHANGELOG.md ADDED
@@ -0,0 +1,106 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.2.4] - 2026-04-05
11
+
12
+ ### Fixed
13
+ - Accordion component migrated from inline Tailwind utilities to a dedicated `accordion.css` with BEM classes — prevents class purging in consumer apps
14
+
15
+ ## [0.2.3] - 2026-04-05
16
+
17
+ JS-dependent components — overlays, navigation, and interactive patterns. All Stimulus controllers auto-registered via the existing `eagerLoadControllersFrom("jet_ui", application)` line with no extra setup required.
18
+
19
+ ### Added
20
+ - `jet_ui.accordion`, `jet_ui.accordion_summary`, `jet_ui.accordion_body` — native `<details>`/`<summary>` accordion with animated chevron; no JS required
21
+ - `jet_ui.clipboard` — copy-to-clipboard; accepts `value:` or `source_id:`; optional tooltip integration
22
+ - `jet_ui.sidebar`, `jet_ui.sidebar_menu`, `jet_ui.sidebar_section`, `jet_ui.sidebar_title`, `jet_ui.sidebar_link` — sidebar navigation with active-link detection
23
+ - `jet_ui.header`, `jet_ui.header_heading`, `jet_ui.header_title`, `jet_ui.header_subtitle`, `jet_ui.header_actions` — page header with `direction:`, `align:`, `justify:`, `sticky:`, and `bordered:` modifiers
24
+ - `jet_ui.navbar`, `jet_ui.navbar_brand`, `jet_ui.navbar_main`, `jet_ui.navbar_content`, `jet_ui.navbar_actions` — top navigation bar with optional sticky; responsive grid layout at `md` breakpoint
25
+ - `jet_ui.modal`, `jet_ui.modal_header`, `jet_ui.modal_body`, `jet_ui.modal_footer` — `<dialog>`-based modal; supports inline (id-based) and Turbo Frame patterns; size variants (`sm`…`6xl`); backdrop-click to close
26
+ - `jet_ui.drawer`, `jet_ui.drawer_header`, `jet_ui.drawer_body`, `jet_ui.drawer_footer` — `<dialog>`-based side drawer with swipe-to-close on mobile; same dual-mode support as Modal
27
+ - `jet_ui.dropdown`, `jet_ui.dropdown_trigger`, `jet_ui.dropdown_menu`, `jet_ui.dropdown_link`, `jet_ui.dropdown_button`, `jet_ui.dropdown_title`, `jet_ui.dropdown_divider` — floating dropdown with smart viewport-aware positioning; no external dependency
28
+ - `jet_ui.tooltip` — hover/focus tooltip with `placement:` (`top`, `bottom`, `left`, `right`) and configurable offset; no external dependency
29
+ - `jet_ui.popover`, `jet_ui.popover_trigger`, `jet_ui.popover_content` — click-triggered popover with title and body slots; same placement options as Tooltip
30
+ - `jet_ui.turbo_confirm` — replaces the default browser `confirm()` with a styled `<dialog>`; integrates with `data-turbo-confirm`
31
+ - Stimulus controllers: `clipboard`, `modal`, `modals`, `drawer`, `drawers`, `dropdown`, `tooltip`, `popover`, `turbo_confirm`
32
+ - CSS stylesheets for all new components; all files declare `@layer theme, base, components, utilities` for correct Tailwind v4 layer ordering
33
+ - Docs under `docs/components/` for all new components
34
+
35
+ ### Fixed
36
+ - Navbar and Header CSS use native `@media` queries — Tailwind v4 strips responsive prefixes from `@apply` inside `@layer` blocks
37
+ - Popover parent container gets `position: relative` via `[data-controller~="popover"]` CSS attribute selector
38
+ - `modals` and `drawers` controllers use `open(e)` action to match `data-action` triggers
39
+ - `turbo_confirm` controller uses `window.Turbo` global instead of an ES module import
40
+
41
+ ## [0.2.2] - 2026-04-03
42
+
43
+ ### Added
44
+ - `jet_ui.flash` — flash message display with auto-dismiss and manual close; variants (`info`, `success`, `warning`, `error`); renders all flash types in one call via `messages: flash`
45
+ - `flash_controller.js` — Stimulus controller with configurable auto-dismiss timeout; safe to use when a controller with the same name is already registered in the host app
46
+ - `jet_ui:install` now also injects `eagerLoadControllersFrom("jet_ui", application)` into the Stimulus controllers index — all current and future JS controllers are registered automatically
47
+
48
+ ## [0.2.1] - 2026-04-02
49
+
50
+ CI hardening, Rails/Ruby compatibility fixes, and remaining static components.
51
+
52
+ ### Added
53
+ - `jet_ui.avatar` — avatar with image, initials fallback, sizes, and shape modifiers
54
+ - `jet_ui.breadcrumbs`, `jet_ui.breadcrumbs_item` — breadcrumb trail
55
+ - `jet_ui.divider` — horizontal rule with optional text and alignment (`start`, `center`, `end`)
56
+ - `jet_ui.empty`, `jet_ui.empty_icon`, `jet_ui.empty_title`, `jet_ui.empty_description`, `jet_ui.empty_actions` — empty-state container
57
+ - `jet_ui.icon` — SVG icon from the Tabler icon set; accepts `size:` and arbitrary HTML attributes
58
+ - `jet_ui.spinner` — loading spinner delegating to `jet_ui.icon`
59
+ - `jet_ui.list`, `jet_ui.list_item`, `jet_ui.list_icon`, `jet_ui.list_content`, `jet_ui.list_action` — structured list with divider and hover options
60
+ - `jet_ui.pagy` — pagination wrapper for [Pagy](https://github.com/ddnexus/pagy)
61
+ - `jet_ui.stepper`, `jet_ui.stepper_step` — multi-step progress indicator with `completed`, `current`, `pending` states; icon, number, and description variants
62
+ - `jet_ui.table`, `jet_ui.table_thead`, `jet_ui.table_tbody`, `jet_ui.table_tfoot`, `jet_ui.table_tr`, `jet_ui.table_th`, `jet_ui.table_td` — semantic HTML table with `hovered`, `bordered`, `striped` modifiers
63
+ - `jet_ui.tabs`, `jet_ui.tabs_item` — tab navigation with `underline` and `pill` variants
64
+ - `jet_ui.timeline`, `jet_ui.timeline_item`, `jet_ui.timeline_dot`, `jet_ui.timeline_time`, `jet_ui.timeline_content` — vertical timeline
65
+ - CSS stylesheets and docs for all new components
66
+ - CI matrix across Ruby 3.0–4.0 and Rails 7.0–8.1; RuboCop, bundler-audit, and generator smoke-test jobs; gem build validation job
67
+
68
+ ### Changed
69
+ - Minimum Rails version raised to 7.0
70
+
71
+ ### Security
72
+ - Updated `json`, `loofah`, and `action_text-trix` to fix known advisories
73
+
74
+ ## [0.2.0] - 2026-03-27
75
+
76
+ **Major architectural overhaul** — component naming and usage completely redesigned to match the [ui.jetrockets.com](https://ui.jetrockets.com) design system. New short-form helper API replaces verbose class references throughout.
77
+
78
+ ### Added
79
+ - `JetUi::Builder` — resolves `jet_ui.btn`, `jet_ui.card_header`, `jet_ui.alert_title`, etc. to their respective component classes automatically; no explicit class references needed in views
80
+ - `jet_ui.badge` — badge with variants (`default`, `info`, `success`, `warning`, `error`), sizes (`xs`, `sm`, `md`, `lg`), and `rounded` modifier
81
+ - `jet_ui.alert`, `jet_ui.alert_title`, `jet_ui.alert_description`, `jet_ui.alert_icon` — contextual alert; two-column layout when icon is present
82
+ - `jet_ui.group` — button group with sticky border merging
83
+ - `jet_ui.stat`, `jet_ui.stat_label`, `jet_ui.stat_value`, `jet_ui.stat_description` — metric stat card
84
+ - Full semantic color token system in `theme.css` — accent, muted, destructive, success, warning, info with soft/border/foreground variants; dark mode via `.dark` class; radius tokens
85
+ - Single CSS entry point `jet_ui.css` — one `@import` in the host app covers all current and future components; new additions are picked up automatically on the next CSS build
86
+
87
+ ### Changed
88
+ - **Breaking:** Views now use short helpers (`jet_ui.btn`, `jet_ui.card`, `jet_ui.card_header`, etc.) instead of `render JetUi::Btn::Component.new(...)` — the `jet_ui` builder is available in all views via `JetUiHelper`
89
+ - **Breaking:** Btn variant `primary` renamed to `default`; `outlined:` modifier removed (use `variant: :outline` instead); `href:` renamed to `url:`; size `xl` removed; icon sizes added (`icon_xs`…`icon_lg`)
90
+ - **Breaking:** `jet_ui:install` now injects a single `@import "jet_ui.css"` instead of individual per-component imports
91
+ - Card header/footer layout now uses CSS modifier classes (`direction:`, `align:`, `justify:` params) instead of raw Tailwind utilities
92
+ - `jet_ui:eject` updated with `--skip-test` and `--skip-preview` flags and improved `--help` output
93
+
94
+ ## [0.1.0] - 2026-03-13
95
+
96
+ Initial release.
97
+
98
+ ### Added
99
+ - `JetUi::Engine` — Rails engine with auto-loaded components, helpers, and assets
100
+ - `JetUiHelper` with `jet_ui` view helper available in all views
101
+ - `JetUi::BtnComponent` — button with variants (`primary`, `secondary`, `danger`, `ghost`, `link`), sizes (`xs`, `sm`, `md`, `lg`, `xl`), and modifiers (`rounded`, `block`, `circle`, `outlined`); accepts `href:` for anchor rendering
102
+ - `JetUi::CardComponent` — card container with `header`, `body`, and `footer` slots via `JetUi::Card::HeaderComponent` and `JetUi::Card::FooterComponent`
103
+ - CSS stylesheets for btn and card components
104
+ - `jet_ui:install` generator — detects Tailwind CSS source file and injects per-component CSS imports; safe to re-run after upgrades
105
+ - `jet_ui:eject` generator — copies any component's Ruby, CSS, test, and preview files into the host app for local customisation
106
+ - ViewComponent previews and Minitest tests for all components
data/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 JetRockets
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,114 @@
1
+ # JetUi
2
+
3
+ ViewComponent-based UI library for Rails applications, matching the design system at [ui.jetrockets.com](https://ui.jetrockets.com).
4
+
5
+ ## Requirements
6
+
7
+ - Ruby >= 3.0
8
+ - Rails >= 7.0
9
+ - [ViewComponent](https://viewcomponent.org) >= 3.0
10
+ - Tailwind CSS v4 (configured in your host app)
11
+
12
+ ## Installation
13
+
14
+ Add to your Gemfile:
15
+
16
+ ```ruby
17
+ gem "jet_ui"
18
+ ```
19
+
20
+ Run the install generator:
21
+
22
+ ```bash
23
+ bundle install
24
+ rails generate jet_ui:install
25
+ ```
26
+
27
+ The generator:
28
+ - Detects your Tailwind CSS source file and injects a single import covering all component stylesheets
29
+ - Registers JetUi Stimulus controllers in your app's controllers index
30
+
31
+ When the gem is updated, both CSS and JS are picked up automatically — no further changes needed. Safe to re-run after upgrades.
32
+
33
+ ## Usage
34
+
35
+ The `jet_ui` helper is available in all views:
36
+
37
+ ```erb
38
+ <%= jet_ui.btn { "Save" } %>
39
+
40
+ <%= jet_ui.card do %>
41
+ <%= jet_ui.card_header do %>
42
+ <%= jet_ui.card_title "Hello" %>
43
+ <% end %>
44
+ <%= jet_ui.card_body do %>Content<% end %>
45
+ <% end %>
46
+ ```
47
+
48
+ Subcomponents follow the `namespace_subcomponent` naming convention (`card_header`, `alert_title`, `stat_label`, etc.).
49
+
50
+ ## Components
51
+
52
+ | Component | Docs |
53
+ |-----------|------|
54
+ | Btn | [docs/components/btn.md](docs/components/btn.md) |
55
+ | Card | [docs/components/card.md](docs/components/card.md) |
56
+ | Badge | [docs/components/badge.md](docs/components/badge.md) |
57
+ | Alert | [docs/components/alert.md](docs/components/alert.md) |
58
+ | Group | [docs/components/group.md](docs/components/group.md) |
59
+ | Stat | [docs/components/stat.md](docs/components/stat.md) |
60
+ | Icon | [docs/components/icon.md](docs/components/icon.md) |
61
+ | Spinner | [docs/components/spinner.md](docs/components/spinner.md) |
62
+ | Avatar | [docs/components/avatar.md](docs/components/avatar.md) |
63
+ | Breadcrumbs | [docs/components/breadcrumbs.md](docs/components/breadcrumbs.md) |
64
+ | Tabs | [docs/components/tabs.md](docs/components/tabs.md) |
65
+ | Empty | [docs/components/empty.md](docs/components/empty.md) |
66
+ | List | [docs/components/list.md](docs/components/list.md) |
67
+ | Divider | [docs/components/divider.md](docs/components/divider.md) |
68
+ | Timeline | [docs/components/timeline.md](docs/components/timeline.md) |
69
+ | Stepper | [docs/components/stepper.md](docs/components/stepper.md) |
70
+ | Table | [docs/components/table.md](docs/components/table.md) |
71
+ | Pagy | [docs/components/pagy.md](docs/components/pagy.md) |
72
+ | Flash ⚡ | [docs/components/flash.md](docs/components/flash.md) |
73
+ | Accordion | [docs/components/accordion.md](docs/components/accordion.md) |
74
+ | Clipboard ⚡ | [docs/components/clipboard.md](docs/components/clipboard.md) |
75
+ | Sidebar | [docs/components/sidebar.md](docs/components/sidebar.md) |
76
+ | Header | [docs/components/header.md](docs/components/header.md) |
77
+ | Navbar | [docs/components/navbar.md](docs/components/navbar.md) |
78
+ | Modal ⚡ | [docs/components/modal.md](docs/components/modal.md) |
79
+ | Drawer ⚡ | [docs/components/drawer.md](docs/components/drawer.md) |
80
+ | Dropdown ⚡ | [docs/components/dropdown.md](docs/components/dropdown.md) |
81
+ | Tooltip ⚡ | [docs/components/tooltip.md](docs/components/tooltip.md) |
82
+ | Popover ⚡ | [docs/components/popover.md](docs/components/popover.md) |
83
+ | Turbo Confirm ⚡ | [docs/components/turbo_confirm.md](docs/components/turbo_confirm.md) |
84
+
85
+ ⚡ Requires Stimulus (configured automatically by `jet_ui:install`).
86
+
87
+ ## Generators
88
+
89
+ ### `jet_ui:install`
90
+
91
+ Sets up JetUi in your application (CSS + JS). Safe to re-run after gem upgrades — already-configured steps are skipped:
92
+
93
+ ```bash
94
+ rails generate jet_ui:install
95
+ ```
96
+
97
+ ### `jet_ui:eject`
98
+
99
+ Copies a component's source files into your application for local customisation. Ejected files take precedence over the gem's versions automatically. For components with a Stimulus controller (e.g. `flash`), the JS file is ejected too.
100
+
101
+ ```bash
102
+ rails generate jet_ui:eject btn
103
+ rails generate jet_ui:eject flash
104
+ rails generate jet_ui:eject btn card flash
105
+ ```
106
+
107
+ By default the test, preview, and JS controller (when present) are all ejected. Use flags to skip any of them:
108
+
109
+ ```bash
110
+ rails generate jet_ui:eject btn --skip-test
111
+ rails generate jet_ui:eject btn --skip-preview
112
+ rails generate jet_ui:eject flash --skip-javascript
113
+ rails generate jet_ui:eject btn --skip-test --skip-preview
114
+ ```
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.25933 10.1466C3.98688 12.2307 3.82139 14.3483 3.76853 16.494C6.66451 17.703 9.41893 19.1835 12 20.9036C14.5811 19.1835 17.3355 17.703 20.2315 16.494C20.1786 14.3484 20.0131 12.2307 19.7407 10.1467M4.25933 10.1466C3.38362 9.8523 2.49729 9.58107 1.60107 9.3337C4.84646 7.05887 8.32741 5.0972 12 3.49255C15.6727 5.0972 19.1536 7.05888 22.399 9.33371C21.5028 9.58109 20.6164 9.85233 19.7407 10.1467M4.25933 10.1466C6.94656 11.0499 9.5338 12.1709 12.0001 13.4886C14.4663 12.1709 17.0535 11.0499 19.7407 10.1467M6.75 15C7.16421 15 7.5 14.6642 7.5 14.25C7.5 13.8358 7.16421 13.5 6.75 13.5C6.33579 13.5 6 13.8358 6 14.25C6 14.6642 6.33579 15 6.75 15ZM6.75 15V11.3245C8.44147 10.2735 10.1936 9.31094 12 8.44329M4.99264 19.9926C6.16421 18.8211 6.75 17.2855 6.75 15.75V14.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M10.5 6L20.25 6M10.5 6C10.5 6.82843 9.82843 7.5 9 7.5C8.17157 7.5 7.5 6.82843 7.5 6M10.5 6C10.5 5.17157 9.82843 4.5 9 4.5C8.17157 4.5 7.5 5.17157 7.5 6M3.75 6H7.5M10.5 18H20.25M10.5 18C10.5 18.8284 9.82843 19.5 9 19.5C8.17157 19.5 7.5 18.8284 7.5 18M10.5 18C10.5 17.1716 9.82843 16.5 9 16.5C8.17157 16.5 7.5 17.1716 7.5 18M3.75 18L7.5 18M16.5 12L20.25 12M16.5 12C16.5 12.8284 15.8284 13.5 15 13.5C14.1716 13.5 13.5 12.8284 13.5 12M16.5 12C16.5 11.1716 15.8284 10.5 15 10.5C14.1716 10.5 13.5 11.1716 13.5 12M3.75 12H13.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6 13.5L6 3.75M6 13.5C6.82843 13.5 7.5 14.1716 7.5 15C7.5 15.8284 6.82843 16.5 6 16.5M6 13.5C5.17157 13.5 4.5 14.1716 4.5 15C4.5 15.8284 5.17157 16.5 6 16.5M6 20.25L6 16.5M18 13.5V3.75M18 13.5C18.8284 13.5 19.5 14.1716 19.5 15C19.5 15.8284 18.8284 16.5 18 16.5M18 13.5C17.1716 13.5 16.5 14.1716 16.5 15C16.5 15.8284 17.1716 16.5 18 16.5M18 20.25L18 16.5M12 7.5V3.75M12 7.5C12.8284 7.5 13.5 8.17157 13.5 9C13.5 9.82843 12.8284 10.5 12 10.5M12 7.5C11.1716 7.5 10.5 8.17157 10.5 9C10.5 9.82843 11.1716 10.5 12 10.5M12 20.25V10.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.25 7.5L19.6246 18.1321C19.5546 19.3214 18.5698 20.25 17.3785 20.25H6.62154C5.43022 20.25 4.44538 19.3214 4.37542 18.1321L3.75 7.5M12 10.5V17.25M12 17.25L9 14.25M12 17.25L15 14.25M3.375 7.5H20.625C21.2463 7.5 21.75 6.99632 21.75 6.375V4.875C21.75 4.25368 21.2463 3.75 20.625 3.75H3.375C2.75368 3.75 2.25 4.25368 2.25 4.875V6.375C2.25 6.99632 2.75368 7.5 3.375 7.5Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.25 7.5L19.6246 18.1321C19.5546 19.3214 18.5698 20.25 17.3785 20.25H6.62154C5.43022 20.25 4.44538 19.3214 4.37542 18.1321L3.75 7.5M9.75 11.625L12 13.875M12 13.875L14.25 16.125M12 13.875L14.25 11.625M12 13.875L9.75 16.125M3.375 7.5H20.625C21.2463 7.5 21.75 6.99632 21.75 6.375V4.875C21.75 4.25368 21.2463 3.75 20.625 3.75H3.375C2.75368 3.75 2.25 4.25368 2.25 4.875V6.375C2.25 6.99632 2.75368 7.5 3.375 7.5Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.25 7.5L19.6246 18.1321C19.5546 19.3214 18.5698 20.25 17.3785 20.25H6.62154C5.43022 20.25 4.44538 19.3214 4.37542 18.1321L3.75 7.5M9.99976 11.25H13.9998M3.375 7.5H20.625C21.2463 7.5 21.75 6.99632 21.75 6.375V4.875C21.75 4.25368 21.2463 3.75 20.625 3.75H3.375C2.75368 3.75 2.25 4.25368 2.25 4.875V6.375C2.25 6.99632 2.75368 7.5 3.375 7.5Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 12.75L12 15.75M12 15.75L15 12.75M12 15.75L12 8.25M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.5 4.5L4.5 19.5M4.5 19.5L15.75 19.5M4.5 19.5L4.5 8.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.5 7.5H6.75C5.50736 7.5 4.5 8.50736 4.5 9.75V17.25C4.5 18.4926 5.50736 19.5 6.75 19.5H14.25C15.4926 19.5 16.5 18.4926 16.5 17.25V9.75C16.5 8.50736 15.4926 7.5 14.25 7.5H13.5M7.5 11.25L10.5 14.25M10.5 14.25L13.5 11.25M10.5 14.25L10.5 1.5M16.5 10.5H17.25C18.4926 10.5 19.5 11.5074 19.5 12.75V20.25C19.5 21.4926 18.4926 22.5 17.25 22.5H9.75C8.50736 22.5 7.5 21.4926 7.5 20.25V19.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 8.25H7.5C6.25736 8.25 5.25 9.25736 5.25 10.5V19.5C5.25 20.7426 6.25736 21.75 7.5 21.75H16.5C17.7426 21.75 18.75 20.7426 18.75 19.5V10.5C18.75 9.25736 17.7426 8.25 16.5 8.25H15M9 12L12 15M12 15L15 12M12 15L12 2.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.5 4.5L19.5 19.5M19.5 19.5V8.25M19.5 19.5H8.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3 16.5V18.75C3 19.9926 4.00736 21 5.25 21H18.75C19.9926 21 21 19.9926 21 18.75V16.5M16.5 12L12 16.5M12 16.5L7.5 12M12 16.5V3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.5 13.5L12 21M12 21L4.5 13.5M12 21L12 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.25 9L8.25 12M8.25 12L11.25 15M8.25 12H15.75M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.75 9V5.25C15.75 4.00736 14.7426 3 13.5 3L7.5 3C6.25736 3 5.25 4.00736 5.25 5.25L5.25 18.75C5.25 19.9926 6.25736 21 7.5 21H13.5C14.7426 21 15.75 19.9926 15.75 18.75V15M12 9L9 12M9 12L12 15M9 12L21.75 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.75 9V5.25C15.75 4.00736 14.7426 3 13.5 3L7.5 3C6.25736 3 5.25 4.00736 5.25 5.25L5.25 18.75C5.25 19.9926 6.25736 21 7.5 21H13.5C14.7426 21 15.75 19.9926 15.75 18.75V15M12 9L9 12M9 12L12 15M9 12L21.75 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.25 9V5.25C8.25 4.00736 9.25736 3 10.5 3H16.5C17.7426 3 18.75 4.00736 18.75 5.25V18.75C18.75 19.9926 17.7426 21 16.5 21H10.5C9.25736 21 8.25 19.9926 8.25 18.75V15M5.25 15L2.25 12M2.25 12L5.25 9M2.25 12L15 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M10.5 19.5L3 12M3 12L10.5 4.5M3 12H21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.75 17.25L12 21M12 21L8.25 17.25M12 21L12 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6.75 15.75L3 12M3 12L6.75 8.25M3 12H21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.25 8.25L21 12M21 12L17.25 15.75M21 12H3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.25 6.75L12 3M12 3L15.75 6.75M12 3V21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.5 12C19.5 10.7681 19.4536 9.54699 19.3624 8.3384C19.2128 6.35425 17.6458 4.78724 15.6616 4.63757C14.453 4.54641 13.2319 4.5 12 4.5C10.7681 4.5 9.54699 4.54641 8.3384 4.63757C6.35425 4.78724 4.78724 6.35425 4.63757 8.3384C4.62097 8.55852 4.60585 8.77906 4.59222 9M19.5 12L22.5 9M19.5 12L16.5 9M4.5 12C4.5 13.2319 4.54641 14.453 4.63757 15.6616C4.78724 17.6458 6.35425 19.2128 8.3384 19.3624C9.54699 19.4536 10.7681 19.5 12 19.5C13.2319 19.5 14.453 19.4536 15.6616 19.3624C17.6458 19.2128 19.2128 17.6458 19.3624 15.6616C19.379 15.4415 19.3941 15.2209 19.4078 15M4.5 12L7.5 15M4.5 12L1.5 15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.0228 9.34841H21.0154V9.34663M2.98413 19.6444V14.6517M2.98413 14.6517L7.97677 14.6517M2.98413 14.6517L6.16502 17.8347C7.15555 18.8271 8.41261 19.58 9.86436 19.969C14.2654 21.1483 18.7892 18.5364 19.9685 14.1353M4.03073 9.86484C5.21 5.46374 9.73377 2.85194 14.1349 4.03121C15.5866 4.4202 16.8437 5.17312 17.8342 6.1655L21.0154 9.34663M21.0154 4.3558V9.34663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12.75 15L15.75 12M15.75 12L12.75 9M15.75 12L8.25 12M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.25 9V5.25C8.25 4.00736 9.25736 3 10.5 3L16.5 3C17.7426 3 18.75 4.00736 18.75 5.25L18.75 18.75C18.75 19.9926 17.7426 21 16.5 21H10.5C9.25736 21 8.25 19.9926 8.25 18.75V15M12 9L15 12M15 12L12 15M15 12L2.25 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.75 9V5.25C15.75 4.00736 14.7426 3 13.5 3L7.5 3C6.25736 3 5.25 4.00736 5.25 5.25L5.25 18.75C5.25 19.9926 6.25736 21 7.5 21H13.5C14.7426 21 15.75 19.9926 15.75 18.75V15M18.75 15L21.75 12M21.75 12L18.75 9M21.75 12L9 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.75 9V5.25C15.75 4.00736 14.7426 3 13.5 3L7.5 3C6.25736 3 5.25 4.00736 5.25 5.25L5.25 18.75C5.25 19.9926 6.25736 21 7.5 21H13.5C14.7426 21 15.75 19.9926 15.75 18.75V15M18.75 15L21.75 12M21.75 12L18.75 9M21.75 12L9 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13.5 4.5L21 12M21 12L13.5 19.5M21 12H3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 4.5V19.5M12 19.5L18.75 12.75M12 19.5L5.25 12.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.5 12L4.5 12M4.5 12L11.25 18.75M4.5 12L11.25 5.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.5 12L19.5 12M19.5 12L12.75 5.25M19.5 12L12.75 18.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 19.5L12 4.5M12 4.5L5.25 11.25M12 4.5L18.75 11.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13.5 6H5.25C4.00736 6 3 7.00736 3 8.25V18.75C3 19.9926 4.00736 21 5.25 21H15.75C16.9926 21 18 19.9926 18 18.75V10.5M7.5 16.5L21 3M21 3L15.75 3M21 3V8.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M2.25 6L9 12.75L13.2862 8.46383C15.3217 10.0166 16.8781 12.23 17.5919 14.8941L18.3684 17.7919M18.3684 17.7919L21.5504 12.2806M18.3684 17.7919L12.857 14.6099" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M2.25 17.9999L9 11.2499L13.3064 15.5564C14.5101 13.188 16.5042 11.2022 19.1203 10.0375L21.8609 8.81726M21.8609 8.81726L15.9196 6.53662M21.8609 8.81726L19.5802 14.7585" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.49012 11.9996L3.74025 15.75M3.74025 15.75L7.49012 19.5004M3.74025 15.75H20.2397V4.49902" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.4899 11.9996L20.2397 15.75M20.2397 15.75L16.4899 19.5004M20.2397 15.75H3.74023V4.49902" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.9901 16.4996L8.23975 20.2495M8.23975 20.2495L4.48939 16.4996M8.23975 20.2495L8.23975 3.75L19.4907 3.75" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.9901 7.4994L8.23975 3.74952M8.23975 3.74952L4.48939 7.4994M8.23975 3.74952L8.23975 20.249L19.4907 20.249" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.9899 16.4996L15.7402 20.2495M15.7402 20.2495L19.4906 16.4996M15.7402 20.2495L15.7402 3.75L4.48926 3.75" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.9899 7.4994L15.7402 3.74952M15.7402 3.74952L19.4906 7.4994M15.7402 3.74952L15.7402 20.249L4.48926 20.249" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.49012 11.9994L3.74025 8.24902M3.74025 8.24902L7.49012 4.49866M3.74025 8.24902L20.2397 8.24902L20.2397 19.5" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.4899 11.9994L20.2397 8.24902M20.2397 8.24902L16.4899 4.49866M20.2397 8.24902L3.74023 8.24902L3.74023 19.5" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15 11.25L12 8.25M12 8.25L9 11.25M12 8.25L12 15.75M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.5 19.5L4.5 4.5M4.5 4.5L4.5 15.75M4.5 4.5L15.75 4.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.5 7.5H6.75C5.50736 7.5 4.5 8.50736 4.5 9.75V17.25C4.5 18.4926 5.50736 19.5 6.75 19.5H14.25C15.4926 19.5 16.5 18.4926 16.5 17.25V9.75C16.5 8.50736 15.4926 7.5 14.25 7.5H13.5M13.5 4.5L10.5 1.5M10.5 1.5L7.5 4.5M10.5 1.5L10.5 12.75M16.5 10.5H17.25C18.4926 10.5 19.5 11.5074 19.5 12.75V20.25C19.5 21.4926 18.4926 22.5 17.25 22.5H9.75C8.50736 22.5 7.5 21.4926 7.5 20.25V19.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 8.25H7.5C6.25736 8.25 5.25 9.25736 5.25 10.5V19.5C5.25 20.7426 6.25736 21.75 7.5 21.75H16.5C17.7426 21.75 18.75 20.7426 18.75 19.5V10.5C18.75 9.25736 17.7426 8.25 16.5 8.25H15M15 5.25L12 2.25M12 2.25L9 5.25M12 2.25L12 15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.5 19.5L19.5 4.5M19.5 4.5L8.25 4.5M19.5 4.5V15.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3 16.5V18.75C3 19.9926 4.00736 21 5.25 21H18.75C19.9926 21 21 19.9926 21 18.75V16.5M7.5 7.5L12 3M12 3L16.5 7.5M12 3L12 16.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.5 10.5L12 3M12 3L19.5 10.5M12 3V21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15 15L9 21M9 21L3 15M9 21V9C9 5.68629 11.6863 3 15 3C18.3137 3 21 5.68629 21 9V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 15L3 9M3 9L9 3M3 9H15C18.3137 9 21 11.6863 21 15C21 18.3137 18.3137 21 15 21H12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15 15L21 9M21 9L15 3M21 9H9C5.68629 9 3 11.6863 3 15C3 18.3137 5.68629 21 9 21H12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 9L15 3M15 3L21 9M15 3L15 15C15 18.3137 12.3137 21 9 21C5.68629 21 3 18.3137 3 15L3 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9 9L9 4.5M9 9L4.5 9M9 9L3.75 3.75M9 15L9 19.5M9 15L4.5 15M9 15L3.75 20.25M15 9H19.5M15 9V4.5M15 9L20.25 3.75M15 15H19.5M15 15L15 19.5M15 15L20.25 20.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3.75 3.75V8.25M3.75 3.75H8.25M3.75 3.75L9 9M3.75 20.25V15.75M3.75 20.25H8.25M3.75 20.25L9 15M20.25 3.75L15.75 3.75M20.25 3.75V8.25M20.25 3.75L15 9M20.25 20.25H15.75M20.25 20.25V15.75M20.25 20.25L15 15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.5 21L3 16.5M3 16.5L7.5 12M3 16.5H16.5M16.5 3L21 7.5M21 7.5L16.5 12M21 7.5L7.5 7.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3 7.5L7.5 3M7.5 3L12 7.5M7.5 3V16.5M21 16.5L16.5 21M16.5 21L12 16.5M16.5 21L16.5 7.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.5 12C16.5 14.4853 14.4853 16.5 12 16.5C9.51472 16.5 7.5 14.4853 7.5 12C7.5 9.51472 9.51472 7.5 12 7.5C14.4853 7.5 16.5 9.51472 16.5 12ZM16.5 12C16.5 13.6569 17.5074 15 18.75 15C19.9926 15 21 13.6569 21 12C21 9.69671 20.1213 7.3934 18.364 5.63604C14.8492 2.12132 9.15076 2.12132 5.63604 5.63604C2.12132 9.15076 2.12132 14.8492 5.63604 18.364C9.15076 21.8787 14.8492 21.8787 18.364 18.364M16.5 12V8.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 9.75L14.25 12M14.25 12L16.5 14.25M14.25 12L16.5 9.75M14.25 12L12 14.25M9.42051 19.1705L3.04551 12.7955C2.60617 12.3562 2.60617 11.6438 3.04551 11.2045L9.42051 4.82951C9.63149 4.61853 9.91764 4.5 10.216 4.5L19.5 4.5C20.7427 4.5 21.75 5.50736 21.75 6.75V17.25C21.75 18.4926 20.7427 19.5 19.5 19.5H10.216C9.91764 19.5 9.63149 19.3815 9.42051 19.1705Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>