avo 1.25.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of avo might be problematic. Click here for more details.

Files changed (701) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +10 -1
  3. data/Gemfile.lock +19 -6
  4. data/README.md +33 -28
  5. data/app/assets/stylesheets/avo.css +7 -2
  6. data/app/assets/stylesheets/css/breadcrumbs.css +6 -2
  7. data/app/assets/stylesheets/css/buttons.css +16 -0
  8. data/app/assets/stylesheets/css/fonts.css +42 -16
  9. data/app/assets/stylesheets/css/pagination.css +9 -9
  10. data/app/assets/stylesheets/css/search.css +18 -7
  11. data/app/assets/stylesheets/css/tooltips.css +1 -0
  12. data/app/assets/stylesheets/css/typography.css +4 -2
  13. data/app/assets/svgs/bell.svg +3 -0
  14. data/app/assets/svgs/dashboards-icon.svg +6 -0
  15. data/app/assets/svgs/detach.svg +8 -0
  16. data/app/assets/svgs/edit.svg +5 -1
  17. data/app/assets/svgs/grid-empty-state.svg +37 -0
  18. data/app/assets/svgs/grid-view-type.svg +5 -0
  19. data/app/assets/svgs/heroicons/outline/academic-cap.svg +5 -0
  20. data/app/assets/svgs/heroicons/outline/adjustments.svg +3 -0
  21. data/app/assets/svgs/heroicons/outline/annotation.svg +3 -0
  22. data/app/assets/svgs/heroicons/outline/archive.svg +3 -0
  23. data/app/assets/svgs/heroicons/outline/arrow-circle-down.svg +3 -0
  24. data/app/assets/svgs/heroicons/outline/arrow-circle-left.svg +3 -0
  25. data/app/assets/svgs/heroicons/outline/arrow-circle-right.svg +3 -0
  26. data/app/assets/svgs/heroicons/outline/arrow-circle-up.svg +3 -0
  27. data/app/assets/svgs/heroicons/outline/arrow-down.svg +3 -0
  28. data/app/assets/svgs/heroicons/outline/arrow-left.svg +3 -0
  29. data/app/assets/svgs/heroicons/outline/arrow-narrow-down.svg +3 -0
  30. data/app/assets/svgs/heroicons/outline/arrow-narrow-left.svg +3 -0
  31. data/app/assets/svgs/heroicons/outline/arrow-narrow-right.svg +3 -0
  32. data/app/assets/svgs/heroicons/outline/arrow-narrow-up.svg +3 -0
  33. data/app/assets/svgs/heroicons/outline/arrow-right.svg +3 -0
  34. data/app/assets/svgs/heroicons/outline/arrow-sm-down.svg +3 -0
  35. data/app/assets/svgs/heroicons/outline/arrow-sm-left.svg +3 -0
  36. data/app/assets/svgs/heroicons/outline/arrow-sm-right.svg +3 -0
  37. data/app/assets/svgs/heroicons/outline/arrow-sm-up.svg +3 -0
  38. data/app/assets/svgs/heroicons/outline/arrow-up.svg +3 -0
  39. data/app/assets/svgs/heroicons/outline/arrows-expand.svg +3 -0
  40. data/app/assets/svgs/heroicons/outline/at-symbol.svg +3 -0
  41. data/app/assets/svgs/heroicons/outline/backspace.svg +3 -0
  42. data/app/assets/svgs/heroicons/outline/badge-check.svg +3 -0
  43. data/app/assets/svgs/heroicons/outline/ban.svg +3 -0
  44. data/app/assets/svgs/heroicons/outline/beaker.svg +3 -0
  45. data/app/assets/svgs/heroicons/outline/bell.svg +3 -0
  46. data/app/assets/svgs/heroicons/outline/book-open.svg +3 -0
  47. data/app/assets/svgs/heroicons/outline/bookmark-alt.svg +3 -0
  48. data/app/assets/svgs/heroicons/outline/bookmark.svg +3 -0
  49. data/app/assets/svgs/heroicons/outline/briefcase.svg +3 -0
  50. data/app/assets/svgs/heroicons/outline/cake.svg +3 -0
  51. data/app/assets/svgs/heroicons/outline/calculator.svg +3 -0
  52. data/app/assets/svgs/heroicons/outline/calendar.svg +3 -0
  53. data/app/assets/svgs/heroicons/outline/camera.svg +4 -0
  54. data/app/assets/svgs/heroicons/outline/cash.svg +3 -0
  55. data/app/assets/svgs/heroicons/outline/chart-bar.svg +3 -0
  56. data/app/assets/svgs/heroicons/outline/chart-pie.svg +4 -0
  57. data/app/assets/svgs/heroicons/outline/chart-square-bar.svg +3 -0
  58. data/app/assets/svgs/heroicons/outline/chat-alt-2.svg +3 -0
  59. data/app/assets/svgs/heroicons/outline/chat-alt.svg +3 -0
  60. data/app/assets/svgs/heroicons/outline/chat.svg +3 -0
  61. data/app/assets/svgs/heroicons/outline/check-circle.svg +3 -0
  62. data/app/assets/svgs/heroicons/outline/check.svg +3 -0
  63. data/app/assets/svgs/heroicons/outline/chevron-double-down.svg +3 -0
  64. data/app/assets/svgs/heroicons/outline/chevron-double-left.svg +3 -0
  65. data/app/assets/svgs/heroicons/outline/chevron-double-right.svg +3 -0
  66. data/app/assets/svgs/heroicons/outline/chevron-double-up.svg +3 -0
  67. data/app/assets/svgs/heroicons/outline/chevron-down.svg +3 -0
  68. data/app/assets/svgs/heroicons/outline/chevron-left.svg +3 -0
  69. data/app/assets/svgs/heroicons/outline/chevron-right.svg +3 -0
  70. data/app/assets/svgs/heroicons/outline/chevron-up.svg +3 -0
  71. data/app/assets/svgs/heroicons/outline/chip.svg +3 -0
  72. data/app/assets/svgs/heroicons/outline/clipboard-check.svg +3 -0
  73. data/app/assets/svgs/heroicons/outline/clipboard-copy.svg +3 -0
  74. data/app/assets/svgs/heroicons/outline/clipboard-list.svg +3 -0
  75. data/app/assets/svgs/heroicons/outline/clipboard.svg +3 -0
  76. data/app/assets/svgs/heroicons/outline/clock.svg +3 -0
  77. data/app/assets/svgs/heroicons/outline/cloud-download.svg +3 -0
  78. data/app/assets/svgs/heroicons/outline/cloud-upload.svg +3 -0
  79. data/app/assets/svgs/heroicons/outline/cloud.svg +3 -0
  80. data/app/assets/svgs/heroicons/outline/code.svg +3 -0
  81. data/app/assets/svgs/heroicons/outline/cog.svg +4 -0
  82. data/app/assets/svgs/heroicons/outline/collection.svg +3 -0
  83. data/app/assets/svgs/heroicons/outline/color-swatch.svg +3 -0
  84. data/app/assets/svgs/heroicons/outline/credit-card.svg +3 -0
  85. data/app/assets/svgs/heroicons/outline/cube-transparent.svg +3 -0
  86. data/app/assets/svgs/heroicons/outline/cube.svg +3 -0
  87. data/app/assets/svgs/heroicons/outline/currency-bangladeshi.svg +3 -0
  88. data/app/assets/svgs/heroicons/outline/currency-dollar.svg +3 -0
  89. data/app/assets/svgs/heroicons/outline/currency-euro.svg +3 -0
  90. data/app/assets/svgs/heroicons/outline/currency-pound.svg +3 -0
  91. data/app/assets/svgs/heroicons/outline/currency-rupee.svg +3 -0
  92. data/app/assets/svgs/heroicons/outline/currency-yen.svg +3 -0
  93. data/app/assets/svgs/heroicons/outline/cursor-click.svg +3 -0
  94. data/app/assets/svgs/heroicons/outline/database.svg +3 -0
  95. data/app/assets/svgs/heroicons/outline/desktop-computer.svg +3 -0
  96. data/app/assets/svgs/heroicons/outline/device-mobile.svg +3 -0
  97. data/app/assets/svgs/heroicons/outline/device-tablet.svg +3 -0
  98. data/app/assets/svgs/heroicons/outline/document-add.svg +3 -0
  99. data/app/assets/svgs/heroicons/outline/document-download.svg +3 -0
  100. data/app/assets/svgs/heroicons/outline/document-duplicate.svg +3 -0
  101. data/app/assets/svgs/heroicons/outline/document-remove.svg +3 -0
  102. data/app/assets/svgs/heroicons/outline/document-report.svg +3 -0
  103. data/app/assets/svgs/heroicons/outline/document-search.svg +3 -0
  104. data/app/assets/svgs/heroicons/outline/document-text.svg +3 -0
  105. data/app/assets/svgs/heroicons/outline/document.svg +3 -0
  106. data/app/assets/svgs/heroicons/outline/dots-circle-horizontal.svg +3 -0
  107. data/app/assets/svgs/heroicons/outline/dots-horizontal.svg +3 -0
  108. data/app/assets/svgs/heroicons/outline/dots-vertical.svg +3 -0
  109. data/app/assets/svgs/heroicons/outline/download.svg +3 -0
  110. data/app/assets/svgs/heroicons/outline/duplicate.svg +3 -0
  111. data/app/assets/svgs/heroicons/outline/emoji-happy.svg +3 -0
  112. data/app/assets/svgs/heroicons/outline/emoji-sad.svg +3 -0
  113. data/app/assets/svgs/heroicons/outline/exclamation-circle.svg +3 -0
  114. data/app/assets/svgs/heroicons/outline/exclamation.svg +3 -0
  115. data/app/assets/svgs/heroicons/outline/external-link.svg +3 -0
  116. data/app/assets/svgs/heroicons/outline/eye-off.svg +3 -0
  117. data/app/assets/svgs/heroicons/outline/eye.svg +4 -0
  118. data/app/assets/svgs/heroicons/outline/fast-forward.svg +3 -0
  119. data/app/assets/svgs/heroicons/outline/film.svg +3 -0
  120. data/app/assets/svgs/heroicons/outline/filter.svg +3 -0
  121. data/app/assets/svgs/heroicons/outline/finger-print.svg +3 -0
  122. data/app/assets/svgs/heroicons/outline/fire.svg +4 -0
  123. data/app/assets/svgs/heroicons/outline/flag.svg +3 -0
  124. data/app/assets/svgs/heroicons/outline/folder-add.svg +3 -0
  125. data/app/assets/svgs/heroicons/outline/folder-download.svg +3 -0
  126. data/app/assets/svgs/heroicons/outline/folder-open.svg +3 -0
  127. data/app/assets/svgs/heroicons/outline/folder-remove.svg +3 -0
  128. data/app/assets/svgs/heroicons/outline/folder.svg +3 -0
  129. data/app/assets/svgs/heroicons/outline/gift.svg +3 -0
  130. data/app/assets/svgs/heroicons/outline/globe-alt.svg +3 -0
  131. data/app/assets/svgs/heroicons/outline/globe.svg +3 -0
  132. data/app/assets/svgs/heroicons/outline/hand.svg +3 -0
  133. data/app/assets/svgs/heroicons/outline/hashtag.svg +3 -0
  134. data/app/assets/svgs/heroicons/outline/heart.svg +3 -0
  135. data/app/assets/svgs/heroicons/outline/home.svg +3 -0
  136. data/app/assets/svgs/heroicons/outline/identification.svg +3 -0
  137. data/app/assets/svgs/heroicons/outline/inbox-in.svg +3 -0
  138. data/app/assets/svgs/heroicons/outline/inbox.svg +3 -0
  139. data/app/assets/svgs/heroicons/outline/information-circle.svg +3 -0
  140. data/app/assets/svgs/heroicons/outline/key.svg +3 -0
  141. data/app/assets/svgs/heroicons/outline/library.svg +3 -0
  142. data/app/assets/svgs/heroicons/outline/light-bulb.svg +3 -0
  143. data/app/assets/svgs/heroicons/outline/lightning-bolt.svg +3 -0
  144. data/app/assets/svgs/heroicons/outline/link.svg +3 -0
  145. data/app/assets/svgs/heroicons/outline/location-marker.svg +4 -0
  146. data/app/assets/svgs/heroicons/outline/lock-closed.svg +3 -0
  147. data/app/assets/svgs/heroicons/outline/lock-open.svg +3 -0
  148. data/app/assets/svgs/heroicons/outline/login.svg +3 -0
  149. data/app/assets/svgs/heroicons/outline/logout.svg +3 -0
  150. data/app/assets/svgs/heroicons/outline/mail-open.svg +3 -0
  151. data/app/assets/svgs/heroicons/outline/mail.svg +3 -0
  152. data/app/assets/svgs/heroicons/outline/map.svg +3 -0
  153. data/app/assets/svgs/heroicons/outline/menu-alt-1.svg +3 -0
  154. data/app/assets/svgs/heroicons/outline/menu-alt-2.svg +3 -0
  155. data/app/assets/svgs/heroicons/outline/menu-alt-3.svg +3 -0
  156. data/app/assets/svgs/heroicons/outline/menu-alt-4.svg +3 -0
  157. data/app/assets/svgs/heroicons/outline/menu.svg +3 -0
  158. data/app/assets/svgs/heroicons/outline/microphone.svg +3 -0
  159. data/app/assets/svgs/heroicons/outline/minus-circle.svg +3 -0
  160. data/app/assets/svgs/heroicons/outline/minus-sm.svg +3 -0
  161. data/app/assets/svgs/heroicons/outline/minus.svg +3 -0
  162. data/app/assets/svgs/heroicons/outline/moon.svg +3 -0
  163. data/app/assets/svgs/heroicons/outline/music-note.svg +3 -0
  164. data/app/assets/svgs/heroicons/outline/newspaper.svg +3 -0
  165. data/app/assets/svgs/heroicons/outline/office-building.svg +3 -0
  166. data/app/assets/svgs/heroicons/outline/paper-airplane.svg +3 -0
  167. data/app/assets/svgs/heroicons/outline/paper-clip.svg +3 -0
  168. data/app/assets/svgs/heroicons/outline/pause.svg +3 -0
  169. data/app/assets/svgs/heroicons/outline/pencil-alt.svg +3 -0
  170. data/app/assets/svgs/heroicons/outline/pencil.svg +3 -0
  171. data/app/assets/svgs/heroicons/outline/phone-incoming.svg +3 -0
  172. data/app/assets/svgs/heroicons/outline/phone-missed-call.svg +3 -0
  173. data/app/assets/svgs/heroicons/outline/phone-outgoing.svg +3 -0
  174. data/app/assets/svgs/heroicons/outline/phone.svg +3 -0
  175. data/app/assets/svgs/heroicons/outline/photograph.svg +3 -0
  176. data/app/assets/svgs/heroicons/outline/play.svg +4 -0
  177. data/app/assets/svgs/heroicons/outline/plus-circle.svg +3 -0
  178. data/app/assets/svgs/heroicons/outline/plus-sm.svg +3 -0
  179. data/app/assets/svgs/heroicons/outline/plus.svg +3 -0
  180. data/app/assets/svgs/heroicons/outline/presentation-chart-bar.svg +3 -0
  181. data/app/assets/svgs/heroicons/outline/presentation-chart-line.svg +3 -0
  182. data/app/assets/svgs/heroicons/outline/printer.svg +3 -0
  183. data/app/assets/svgs/heroicons/outline/puzzle.svg +3 -0
  184. data/app/assets/svgs/heroicons/outline/qrcode.svg +3 -0
  185. data/app/assets/svgs/heroicons/outline/question-mark-circle.svg +3 -0
  186. data/app/assets/svgs/heroicons/outline/receipt-refund.svg +3 -0
  187. data/app/assets/svgs/heroicons/outline/receipt-tax.svg +3 -0
  188. data/app/assets/svgs/heroicons/outline/refresh.svg +3 -0
  189. data/app/assets/svgs/heroicons/outline/reply.svg +3 -0
  190. data/app/assets/svgs/heroicons/outline/rewind.svg +3 -0
  191. data/app/assets/svgs/heroicons/outline/rss.svg +3 -0
  192. data/app/assets/svgs/heroicons/outline/save-as.svg +3 -0
  193. data/app/assets/svgs/heroicons/outline/save.svg +3 -0
  194. data/app/assets/svgs/heroicons/outline/scale.svg +3 -0
  195. data/app/assets/svgs/heroicons/outline/scissors.svg +3 -0
  196. data/app/assets/svgs/heroicons/outline/search-circle.svg +3 -0
  197. data/app/assets/svgs/heroicons/outline/search.svg +3 -0
  198. data/app/assets/svgs/heroicons/outline/selector.svg +3 -0
  199. data/app/assets/svgs/heroicons/outline/server.svg +3 -0
  200. data/app/assets/svgs/heroicons/outline/share.svg +3 -0
  201. data/app/assets/svgs/heroicons/outline/shield-check.svg +3 -0
  202. data/app/assets/svgs/heroicons/outline/shield-exclamation.svg +3 -0
  203. data/app/assets/svgs/heroicons/outline/shopping-bag.svg +3 -0
  204. data/app/assets/svgs/heroicons/outline/shopping-cart.svg +3 -0
  205. data/app/assets/svgs/heroicons/outline/sort-ascending.svg +3 -0
  206. data/app/assets/svgs/heroicons/outline/sort-descending.svg +3 -0
  207. data/app/assets/svgs/heroicons/outline/sparkles.svg +3 -0
  208. data/app/assets/svgs/heroicons/outline/speakerphone.svg +3 -0
  209. data/app/assets/svgs/heroicons/outline/star.svg +3 -0
  210. data/app/assets/svgs/heroicons/outline/status-offline.svg +3 -0
  211. data/app/assets/svgs/heroicons/outline/status-online.svg +3 -0
  212. data/app/assets/svgs/heroicons/outline/stop.svg +4 -0
  213. data/app/assets/svgs/heroicons/outline/sun.svg +3 -0
  214. data/app/assets/svgs/heroicons/outline/support.svg +3 -0
  215. data/app/assets/svgs/heroicons/outline/switch-horizontal.svg +3 -0
  216. data/app/assets/svgs/heroicons/outline/switch-vertical.svg +3 -0
  217. data/app/assets/svgs/heroicons/outline/table.svg +3 -0
  218. data/app/assets/svgs/heroicons/outline/tag.svg +3 -0
  219. data/app/assets/svgs/heroicons/outline/template.svg +3 -0
  220. data/app/assets/svgs/heroicons/outline/terminal.svg +3 -0
  221. data/app/assets/svgs/heroicons/outline/thumb-down.svg +3 -0
  222. data/app/assets/svgs/heroicons/outline/thumb-up.svg +3 -0
  223. data/app/assets/svgs/heroicons/outline/ticket.svg +3 -0
  224. data/app/assets/svgs/heroicons/outline/translate.svg +3 -0
  225. data/app/assets/svgs/heroicons/outline/trash.svg +3 -0
  226. data/app/assets/svgs/heroicons/outline/trending-down.svg +3 -0
  227. data/app/assets/svgs/heroicons/outline/trending-up.svg +3 -0
  228. data/app/assets/svgs/heroicons/outline/truck.svg +4 -0
  229. data/app/assets/svgs/heroicons/outline/upload.svg +3 -0
  230. data/app/assets/svgs/heroicons/outline/user-add.svg +3 -0
  231. data/app/assets/svgs/heroicons/outline/user-circle.svg +3 -0
  232. data/app/assets/svgs/heroicons/outline/user-group.svg +3 -0
  233. data/app/assets/svgs/heroicons/outline/user-remove.svg +3 -0
  234. data/app/assets/svgs/heroicons/outline/user.svg +3 -0
  235. data/app/assets/svgs/heroicons/outline/users.svg +3 -0
  236. data/app/assets/svgs/heroicons/outline/variable.svg +3 -0
  237. data/app/assets/svgs/heroicons/outline/video-camera.svg +3 -0
  238. data/app/assets/svgs/heroicons/outline/view-boards.svg +3 -0
  239. data/app/assets/svgs/heroicons/outline/view-grid-add.svg +3 -0
  240. data/app/assets/svgs/heroicons/outline/view-grid.svg +3 -0
  241. data/app/assets/svgs/heroicons/outline/view-list.svg +3 -0
  242. data/app/assets/svgs/heroicons/outline/volume-off.svg +4 -0
  243. data/app/assets/svgs/heroicons/outline/volume-up.svg +3 -0
  244. data/app/assets/svgs/heroicons/outline/wifi.svg +3 -0
  245. data/app/assets/svgs/heroicons/outline/x-circle.svg +3 -0
  246. data/app/assets/svgs/heroicons/outline/x.svg +3 -0
  247. data/app/assets/svgs/heroicons/outline/zoom-in.svg +3 -0
  248. data/app/assets/svgs/heroicons/outline/zoom-out.svg +3 -0
  249. data/app/assets/svgs/heroicons/solid/academic-cap.svg +3 -0
  250. data/app/assets/svgs/heroicons/solid/adjustments.svg +3 -0
  251. data/app/assets/svgs/heroicons/solid/annotation.svg +3 -0
  252. data/app/assets/svgs/heroicons/solid/archive.svg +4 -0
  253. data/app/assets/svgs/heroicons/solid/arrow-circle-down.svg +3 -0
  254. data/app/assets/svgs/heroicons/solid/arrow-circle-left.svg +3 -0
  255. data/app/assets/svgs/heroicons/solid/arrow-circle-right.svg +3 -0
  256. data/app/assets/svgs/heroicons/solid/arrow-circle-up.svg +3 -0
  257. data/app/assets/svgs/heroicons/solid/arrow-down.svg +3 -0
  258. data/app/assets/svgs/heroicons/solid/arrow-left.svg +3 -0
  259. data/app/assets/svgs/heroicons/solid/arrow-narrow-down.svg +3 -0
  260. data/app/assets/svgs/heroicons/solid/arrow-narrow-left.svg +3 -0
  261. data/app/assets/svgs/heroicons/solid/arrow-narrow-right.svg +3 -0
  262. data/app/assets/svgs/heroicons/solid/arrow-narrow-up.svg +3 -0
  263. data/app/assets/svgs/heroicons/solid/arrow-right.svg +3 -0
  264. data/app/assets/svgs/heroicons/solid/arrow-sm-down.svg +3 -0
  265. data/app/assets/svgs/heroicons/solid/arrow-sm-left.svg +3 -0
  266. data/app/assets/svgs/heroicons/solid/arrow-sm-right.svg +3 -0
  267. data/app/assets/svgs/heroicons/solid/arrow-sm-up.svg +3 -0
  268. data/app/assets/svgs/heroicons/solid/arrow-up.svg +3 -0
  269. data/app/assets/svgs/heroicons/solid/arrows-expand.svg +3 -0
  270. data/app/assets/svgs/heroicons/solid/at-symbol.svg +3 -0
  271. data/app/assets/svgs/heroicons/solid/backspace.svg +3 -0
  272. data/app/assets/svgs/heroicons/solid/badge-check.svg +3 -0
  273. data/app/assets/svgs/heroicons/solid/ban.svg +3 -0
  274. data/app/assets/svgs/heroicons/solid/beaker.svg +3 -0
  275. data/app/assets/svgs/heroicons/solid/bell.svg +3 -0
  276. data/app/assets/svgs/heroicons/solid/book-open.svg +3 -0
  277. data/app/assets/svgs/heroicons/solid/bookmark-alt.svg +3 -0
  278. data/app/assets/svgs/heroicons/solid/bookmark.svg +3 -0
  279. data/app/assets/svgs/heroicons/solid/briefcase.svg +4 -0
  280. data/app/assets/svgs/heroicons/solid/cake.svg +3 -0
  281. data/app/assets/svgs/heroicons/solid/calculator.svg +3 -0
  282. data/app/assets/svgs/heroicons/solid/calendar.svg +3 -0
  283. data/app/assets/svgs/heroicons/solid/camera.svg +3 -0
  284. data/app/assets/svgs/heroicons/solid/cash.svg +3 -0
  285. data/app/assets/svgs/heroicons/solid/chart-bar.svg +3 -0
  286. data/app/assets/svgs/heroicons/solid/chart-pie.svg +4 -0
  287. data/app/assets/svgs/heroicons/solid/chart-square-bar.svg +3 -0
  288. data/app/assets/svgs/heroicons/solid/chat-alt-2.svg +4 -0
  289. data/app/assets/svgs/heroicons/solid/chat-alt.svg +3 -0
  290. data/app/assets/svgs/heroicons/solid/chat.svg +3 -0
  291. data/app/assets/svgs/heroicons/solid/check-circle.svg +3 -0
  292. data/app/assets/svgs/heroicons/solid/check.svg +3 -0
  293. data/app/assets/svgs/heroicons/solid/chevron-double-down.svg +3 -0
  294. data/app/assets/svgs/heroicons/solid/chevron-double-left.svg +3 -0
  295. data/app/assets/svgs/heroicons/solid/chevron-double-right.svg +4 -0
  296. data/app/assets/svgs/heroicons/solid/chevron-double-up.svg +3 -0
  297. data/app/assets/svgs/heroicons/solid/chevron-down.svg +3 -0
  298. data/app/assets/svgs/heroicons/solid/chevron-left.svg +3 -0
  299. data/app/assets/svgs/heroicons/solid/chevron-right.svg +3 -0
  300. data/app/assets/svgs/heroicons/solid/chevron-up.svg +3 -0
  301. data/app/assets/svgs/heroicons/solid/chip.svg +4 -0
  302. data/app/assets/svgs/heroicons/solid/clipboard-check.svg +4 -0
  303. data/app/assets/svgs/heroicons/solid/clipboard-copy.svg +4 -0
  304. data/app/assets/svgs/heroicons/solid/clipboard-list.svg +4 -0
  305. data/app/assets/svgs/heroicons/solid/clipboard.svg +4 -0
  306. data/app/assets/svgs/heroicons/solid/clock.svg +3 -0
  307. data/app/assets/svgs/heroicons/solid/cloud-download.svg +3 -0
  308. data/app/assets/svgs/heroicons/solid/cloud-upload.svg +4 -0
  309. data/app/assets/svgs/heroicons/solid/cloud.svg +3 -0
  310. data/app/assets/svgs/heroicons/solid/code.svg +3 -0
  311. data/app/assets/svgs/heroicons/solid/cog.svg +3 -0
  312. data/app/assets/svgs/heroicons/solid/collection.svg +3 -0
  313. data/app/assets/svgs/heroicons/solid/color-swatch.svg +3 -0
  314. data/app/assets/svgs/heroicons/solid/credit-card.svg +4 -0
  315. data/app/assets/svgs/heroicons/solid/cube-transparent.svg +3 -0
  316. data/app/assets/svgs/heroicons/solid/cube.svg +3 -0
  317. data/app/assets/svgs/heroicons/solid/currency-bangladeshi.svg +3 -0
  318. data/app/assets/svgs/heroicons/solid/currency-dollar.svg +4 -0
  319. data/app/assets/svgs/heroicons/solid/currency-euro.svg +3 -0
  320. data/app/assets/svgs/heroicons/solid/currency-pound.svg +3 -0
  321. data/app/assets/svgs/heroicons/solid/currency-rupee.svg +3 -0
  322. data/app/assets/svgs/heroicons/solid/currency-yen.svg +3 -0
  323. data/app/assets/svgs/heroicons/solid/cursor-click.svg +3 -0
  324. data/app/assets/svgs/heroicons/solid/database.svg +5 -0
  325. data/app/assets/svgs/heroicons/solid/desktop-computer.svg +3 -0
  326. data/app/assets/svgs/heroicons/solid/device-mobile.svg +3 -0
  327. data/app/assets/svgs/heroicons/solid/device-tablet.svg +3 -0
  328. data/app/assets/svgs/heroicons/solid/document-add.svg +3 -0
  329. data/app/assets/svgs/heroicons/solid/document-download.svg +3 -0
  330. data/app/assets/svgs/heroicons/solid/document-duplicate.svg +4 -0
  331. data/app/assets/svgs/heroicons/solid/document-remove.svg +3 -0
  332. data/app/assets/svgs/heroicons/solid/document-report.svg +3 -0
  333. data/app/assets/svgs/heroicons/solid/document-search.svg +4 -0
  334. data/app/assets/svgs/heroicons/solid/document-text.svg +3 -0
  335. data/app/assets/svgs/heroicons/solid/document.svg +3 -0
  336. data/app/assets/svgs/heroicons/solid/dots-circle-horizontal.svg +3 -0
  337. data/app/assets/svgs/heroicons/solid/dots-horizontal.svg +3 -0
  338. data/app/assets/svgs/heroicons/solid/dots-vertical.svg +3 -0
  339. data/app/assets/svgs/heroicons/solid/download.svg +3 -0
  340. data/app/assets/svgs/heroicons/solid/duplicate.svg +4 -0
  341. data/app/assets/svgs/heroicons/solid/emoji-happy.svg +3 -0
  342. data/app/assets/svgs/heroicons/solid/emoji-sad.svg +3 -0
  343. data/app/assets/svgs/heroicons/solid/exclamation-circle.svg +3 -0
  344. data/app/assets/svgs/heroicons/solid/exclamation.svg +3 -0
  345. data/app/assets/svgs/heroicons/solid/external-link.svg +4 -0
  346. data/app/assets/svgs/heroicons/solid/eye-off.svg +4 -0
  347. data/app/assets/svgs/heroicons/solid/eye.svg +4 -0
  348. data/app/assets/svgs/heroicons/solid/fast-forward.svg +3 -0
  349. data/app/assets/svgs/heroicons/solid/film.svg +3 -0
  350. data/app/assets/svgs/heroicons/solid/filter.svg +3 -0
  351. data/app/assets/svgs/heroicons/solid/finger-print.svg +5 -0
  352. data/app/assets/svgs/heroicons/solid/fire.svg +3 -0
  353. data/app/assets/svgs/heroicons/solid/flag.svg +3 -0
  354. data/app/assets/svgs/heroicons/solid/folder-add.svg +3 -0
  355. data/app/assets/svgs/heroicons/solid/folder-download.svg +3 -0
  356. data/app/assets/svgs/heroicons/solid/folder-open.svg +4 -0
  357. data/app/assets/svgs/heroicons/solid/folder-remove.svg +3 -0
  358. data/app/assets/svgs/heroicons/solid/folder.svg +3 -0
  359. data/app/assets/svgs/heroicons/solid/gift.svg +4 -0
  360. data/app/assets/svgs/heroicons/solid/globe-alt.svg +3 -0
  361. data/app/assets/svgs/heroicons/solid/globe.svg +3 -0
  362. data/app/assets/svgs/heroicons/solid/hand.svg +3 -0
  363. data/app/assets/svgs/heroicons/solid/hashtag.svg +3 -0
  364. data/app/assets/svgs/heroicons/solid/heart.svg +3 -0
  365. data/app/assets/svgs/heroicons/solid/home.svg +3 -0
  366. data/app/assets/svgs/heroicons/solid/identification.svg +3 -0
  367. data/app/assets/svgs/heroicons/solid/inbox-in.svg +4 -0
  368. data/app/assets/svgs/heroicons/solid/inbox.svg +3 -0
  369. data/app/assets/svgs/heroicons/solid/information-circle.svg +3 -0
  370. data/app/assets/svgs/heroicons/solid/key.svg +3 -0
  371. data/app/assets/svgs/heroicons/solid/library.svg +3 -0
  372. data/app/assets/svgs/heroicons/solid/light-bulb.svg +3 -0
  373. data/app/assets/svgs/heroicons/solid/lightning-bolt.svg +3 -0
  374. data/app/assets/svgs/heroicons/solid/link.svg +3 -0
  375. data/app/assets/svgs/heroicons/solid/location-marker.svg +3 -0
  376. data/app/assets/svgs/heroicons/solid/lock-closed.svg +3 -0
  377. data/app/assets/svgs/heroicons/solid/lock-open.svg +3 -0
  378. data/app/assets/svgs/heroicons/solid/login.svg +3 -0
  379. data/app/assets/svgs/heroicons/solid/logout.svg +3 -0
  380. data/app/assets/svgs/heroicons/solid/mail-open.svg +3 -0
  381. data/app/assets/svgs/heroicons/solid/mail.svg +4 -0
  382. data/app/assets/svgs/heroicons/solid/map.svg +3 -0
  383. data/app/assets/svgs/heroicons/solid/menu-alt-1.svg +3 -0
  384. data/app/assets/svgs/heroicons/solid/menu-alt-2.svg +3 -0
  385. data/app/assets/svgs/heroicons/solid/menu-alt-3.svg +3 -0
  386. data/app/assets/svgs/heroicons/solid/menu-alt-4.svg +3 -0
  387. data/app/assets/svgs/heroicons/solid/menu.svg +3 -0
  388. data/app/assets/svgs/heroicons/solid/microphone.svg +3 -0
  389. data/app/assets/svgs/heroicons/solid/minus-circle.svg +3 -0
  390. data/app/assets/svgs/heroicons/solid/minus-sm.svg +3 -0
  391. data/app/assets/svgs/heroicons/solid/minus.svg +3 -0
  392. data/app/assets/svgs/heroicons/solid/moon.svg +3 -0
  393. data/app/assets/svgs/heroicons/solid/music-note.svg +3 -0
  394. data/app/assets/svgs/heroicons/solid/newspaper.svg +4 -0
  395. data/app/assets/svgs/heroicons/solid/office-building.svg +3 -0
  396. data/app/assets/svgs/heroicons/solid/paper-airplane.svg +3 -0
  397. data/app/assets/svgs/heroicons/solid/paper-clip.svg +3 -0
  398. data/app/assets/svgs/heroicons/solid/pause.svg +3 -0
  399. data/app/assets/svgs/heroicons/solid/pencil-alt.svg +4 -0
  400. data/app/assets/svgs/heroicons/solid/pencil.svg +3 -0
  401. data/app/assets/svgs/heroicons/solid/phone-incoming.svg +4 -0
  402. data/app/assets/svgs/heroicons/solid/phone-missed-call.svg +4 -0
  403. data/app/assets/svgs/heroicons/solid/phone-outgoing.svg +4 -0
  404. data/app/assets/svgs/heroicons/solid/phone.svg +3 -0
  405. data/app/assets/svgs/heroicons/solid/photograph.svg +3 -0
  406. data/app/assets/svgs/heroicons/solid/play.svg +3 -0
  407. data/app/assets/svgs/heroicons/solid/plus-circle.svg +3 -0
  408. data/app/assets/svgs/heroicons/solid/plus-sm.svg +3 -0
  409. data/app/assets/svgs/heroicons/solid/plus.svg +3 -0
  410. data/app/assets/svgs/heroicons/solid/presentation-chart-bar.svg +3 -0
  411. data/app/assets/svgs/heroicons/solid/presentation-chart-line.svg +3 -0
  412. data/app/assets/svgs/heroicons/solid/printer.svg +3 -0
  413. data/app/assets/svgs/heroicons/solid/puzzle.svg +3 -0
  414. data/app/assets/svgs/heroicons/solid/qrcode.svg +4 -0
  415. data/app/assets/svgs/heroicons/solid/question-mark-circle.svg +3 -0
  416. data/app/assets/svgs/heroicons/solid/receipt-refund.svg +3 -0
  417. data/app/assets/svgs/heroicons/solid/receipt-tax.svg +3 -0
  418. data/app/assets/svgs/heroicons/solid/refresh.svg +3 -0
  419. data/app/assets/svgs/heroicons/solid/reply.svg +3 -0
  420. data/app/assets/svgs/heroicons/solid/rewind.svg +3 -0
  421. data/app/assets/svgs/heroicons/solid/rss.svg +4 -0
  422. data/app/assets/svgs/heroicons/solid/save-as.svg +4 -0
  423. data/app/assets/svgs/heroicons/solid/save.svg +3 -0
  424. data/app/assets/svgs/heroicons/solid/scale.svg +3 -0
  425. data/app/assets/svgs/heroicons/solid/scissors.svg +4 -0
  426. data/app/assets/svgs/heroicons/solid/search-circle.svg +4 -0
  427. data/app/assets/svgs/heroicons/solid/search.svg +3 -0
  428. data/app/assets/svgs/heroicons/solid/selector.svg +3 -0
  429. data/app/assets/svgs/heroicons/solid/server.svg +3 -0
  430. data/app/assets/svgs/heroicons/solid/share.svg +3 -0
  431. data/app/assets/svgs/heroicons/solid/shield-check.svg +3 -0
  432. data/app/assets/svgs/heroicons/solid/shield-exclamation.svg +3 -0
  433. data/app/assets/svgs/heroicons/solid/shopping-bag.svg +3 -0
  434. data/app/assets/svgs/heroicons/solid/shopping-cart.svg +3 -0
  435. data/app/assets/svgs/heroicons/solid/sort-ascending.svg +3 -0
  436. data/app/assets/svgs/heroicons/solid/sort-descending.svg +3 -0
  437. data/app/assets/svgs/heroicons/solid/sparkles.svg +3 -0
  438. data/app/assets/svgs/heroicons/solid/speakerphone.svg +3 -0
  439. data/app/assets/svgs/heroicons/solid/star.svg +3 -0
  440. data/app/assets/svgs/heroicons/solid/status-offline.svg +3 -0
  441. data/app/assets/svgs/heroicons/solid/status-online.svg +3 -0
  442. data/app/assets/svgs/heroicons/solid/stop.svg +3 -0
  443. data/app/assets/svgs/heroicons/solid/sun.svg +3 -0
  444. data/app/assets/svgs/heroicons/solid/support.svg +3 -0
  445. data/app/assets/svgs/heroicons/solid/switch-horizontal.svg +3 -0
  446. data/app/assets/svgs/heroicons/solid/switch-vertical.svg +3 -0
  447. data/app/assets/svgs/heroicons/solid/table.svg +3 -0
  448. data/app/assets/svgs/heroicons/solid/tag.svg +3 -0
  449. data/app/assets/svgs/heroicons/solid/template.svg +3 -0
  450. data/app/assets/svgs/heroicons/solid/terminal.svg +3 -0
  451. data/app/assets/svgs/heroicons/solid/thumb-down.svg +3 -0
  452. data/app/assets/svgs/heroicons/solid/thumb-up.svg +3 -0
  453. data/app/assets/svgs/heroicons/solid/ticket.svg +3 -0
  454. data/app/assets/svgs/heroicons/solid/translate.svg +3 -0
  455. data/app/assets/svgs/heroicons/solid/trash.svg +3 -0
  456. data/app/assets/svgs/heroicons/solid/trending-down.svg +3 -0
  457. data/app/assets/svgs/heroicons/solid/trending-up.svg +3 -0
  458. data/app/assets/svgs/heroicons/solid/truck.svg +4 -0
  459. data/app/assets/svgs/heroicons/solid/upload.svg +3 -0
  460. data/app/assets/svgs/heroicons/solid/user-add.svg +3 -0
  461. data/app/assets/svgs/heroicons/solid/user-circle.svg +3 -0
  462. data/app/assets/svgs/heroicons/solid/user-group.svg +3 -0
  463. data/app/assets/svgs/heroicons/solid/user-remove.svg +3 -0
  464. data/app/assets/svgs/heroicons/solid/user.svg +3 -0
  465. data/app/assets/svgs/heroicons/solid/users.svg +3 -0
  466. data/app/assets/svgs/heroicons/solid/variable.svg +3 -0
  467. data/app/assets/svgs/heroicons/solid/video-camera.svg +3 -0
  468. data/app/assets/svgs/heroicons/solid/view-boards.svg +3 -0
  469. data/app/assets/svgs/heroicons/solid/view-grid-add.svg +3 -0
  470. data/app/assets/svgs/heroicons/solid/view-grid.svg +3 -0
  471. data/app/assets/svgs/heroicons/solid/view-list.svg +3 -0
  472. data/app/assets/svgs/heroicons/solid/volume-off.svg +3 -0
  473. data/app/assets/svgs/heroicons/solid/volume-up.svg +3 -0
  474. data/app/assets/svgs/heroicons/solid/wifi.svg +3 -0
  475. data/app/assets/svgs/{x-circle-sm.svg → heroicons/solid/x-circle.svg} +2 -2
  476. data/app/assets/svgs/heroicons/solid/x.svg +3 -0
  477. data/app/assets/svgs/heroicons/solid/zoom-in.svg +4 -0
  478. data/app/assets/svgs/heroicons/solid/zoom-out.svg +4 -0
  479. data/app/assets/svgs/logout.svg +3 -0
  480. data/app/assets/svgs/menu-back.svg +4 -0
  481. data/app/assets/svgs/menu.svg +3 -0
  482. data/app/assets/svgs/resources-icon.svg +13 -0
  483. data/app/assets/svgs/table-empty-state.svg +57 -0
  484. data/app/assets/svgs/table-view-type.svg +6 -0
  485. data/app/assets/svgs/three-dots.svg +5 -0
  486. data/app/assets/svgs/tools-icon.svg +3 -0
  487. data/app/assets/svgs/trash.svg +7 -1
  488. data/app/assets/svgs/user-circle.svg +3 -0
  489. data/app/components/avo/actions_component.html.erb +43 -0
  490. data/app/components/avo/actions_component.rb +14 -0
  491. data/app/components/avo/alert_component.html.erb +25 -1
  492. data/app/components/avo/alert_component.rb +24 -0
  493. data/app/components/avo/button_component.html.erb +1 -0
  494. data/app/components/avo/button_component.rb +143 -0
  495. data/app/components/avo/card_component.html.erb +40 -0
  496. data/app/components/avo/card_component.rb +11 -0
  497. data/app/components/avo/common_field_wrapper_component.html.erb +15 -0
  498. data/app/components/avo/common_field_wrapper_component.rb +20 -0
  499. data/app/components/avo/dashboards/divider_component.html.erb +9 -0
  500. data/app/components/avo/dashboards/divider_component.rb +19 -0
  501. data/app/components/avo/edit/field_wrapper_component.html.erb +10 -19
  502. data/app/components/avo/edit/field_wrapper_component.rb +0 -8
  503. data/app/components/avo/empty_state_component.html.erb +12 -0
  504. data/app/components/avo/empty_state_component.rb +24 -0
  505. data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +2 -1
  506. data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -1
  507. data/app/components/avo/fields/boolean_field/index_component.html.erb +1 -1
  508. data/app/components/avo/fields/boolean_group_field/edit_component.html.erb +1 -1
  509. data/app/components/avo/fields/common/boolean_check_component.html.erb +4 -4
  510. data/app/components/avo/fields/common/boolean_group_component.html.erb +2 -2
  511. data/app/components/avo/fields/common/files_list_viewer_component.html.erb +2 -2
  512. data/app/components/avo/fields/common/gravatar_viewer_component.html.erb +1 -1
  513. data/app/components/avo/fields/common/heading_component.html.erb +2 -2
  514. data/app/components/avo/fields/common/key_value_component.html.erb +2 -2
  515. data/app/components/avo/fields/common/single_file_viewer_component.html.erb +42 -23
  516. data/app/components/avo/fields/common/single_file_viewer_component.rb +34 -6
  517. data/app/components/avo/fields/common/status_viewer_component.html.erb +2 -2
  518. data/app/components/avo/fields/external_image_field/index_component.html.erb +1 -1
  519. data/app/components/avo/fields/file_field/edit_component.html.erb +1 -1
  520. data/app/components/avo/fields/file_field/show_component.html.erb +1 -1
  521. data/app/components/avo/fields/has_many_field/show_component.html.erb +1 -1
  522. data/app/components/avo/fields/has_one_field/show_component.html.erb +4 -4
  523. data/app/components/avo/fields/heading_field/edit_component.html.erb +1 -1
  524. data/app/components/avo/fields/heading_field/show_component.html.erb +1 -1
  525. data/app/components/avo/fields/trix_field/edit_component.html.erb +1 -0
  526. data/app/components/avo/filters_component.html.erb +37 -0
  527. data/app/components/avo/filters_component.rb +14 -0
  528. data/app/components/avo/{alerts_component.html.erb → flash_alerts_component.html.erb} +1 -1
  529. data/app/components/avo/flash_alerts_component.rb +9 -0
  530. data/app/components/avo/index/field_wrapper_component.html.erb +8 -2
  531. data/app/components/avo/index/field_wrapper_component.rb +2 -1
  532. data/app/components/avo/index/grid_item_component.html.erb +13 -10
  533. data/app/components/avo/index/ordering/buttons_component.rb +2 -0
  534. data/app/components/avo/index/resource_controls_component.html.erb +6 -5
  535. data/app/components/avo/index/resource_grid_component.html.erb +3 -3
  536. data/app/components/avo/index/resource_table_component.html.erb +10 -14
  537. data/app/components/avo/index/table_row_component.html.erb +1 -1
  538. data/app/components/avo/modal_component.html.erb +9 -7
  539. data/app/{views/avo/partials/_paginator.html.erb → components/avo/paginator_component.html.erb} +16 -16
  540. data/app/components/avo/paginator_component.rb +17 -0
  541. data/app/components/avo/panel_component.html.erb +21 -17
  542. data/app/components/avo/panel_component.rb +8 -2
  543. data/app/components/avo/profile_item_component.html.erb +3 -0
  544. data/app/components/avo/profile_item_component.rb +11 -0
  545. data/app/components/avo/resource_component.rb +1 -1
  546. data/app/components/avo/show/field_wrapper_component.html.erb +8 -15
  547. data/app/components/avo/show/field_wrapper_component.rb +0 -4
  548. data/app/components/avo/sidebar_component.html.erb +51 -0
  549. data/app/components/avo/sidebar_component.rb +19 -0
  550. data/app/components/avo/sidebar_heading_component.html.erb +3 -0
  551. data/app/components/avo/sidebar_heading_component.rb +11 -0
  552. data/app/components/avo/sidebar_item_component.html.erb +3 -0
  553. data/app/components/avo/sidebar_item_component.rb +10 -0
  554. data/app/components/avo/sidebar_profile_component.html.erb +36 -0
  555. data/app/components/avo/sidebar_profile_component.rb +43 -0
  556. data/app/components/avo/turbo_frame_wrapper_component.html.erb +8 -9
  557. data/app/components/avo/views/resource_edit_component.html.erb +16 -19
  558. data/app/components/avo/views/resource_index_component.html.erb +44 -35
  559. data/app/components/avo/views/resource_new_component.html.erb +18 -16
  560. data/app/components/avo/views/resource_show_component.html.erb +36 -34
  561. data/app/components/avo/views/resource_show_component.rb +2 -3
  562. data/app/controllers/avo/application_controller.rb +43 -12
  563. data/app/controllers/avo/{relations_controller.rb → associations_controller.rb} +1 -3
  564. data/app/controllers/avo/attachments_controller.rb +1 -5
  565. data/app/controllers/avo/base_controller.rb +20 -24
  566. data/app/controllers/avo/dashboards_controller.rb +28 -0
  567. data/app/controllers/avo/private_controller.rb +8 -0
  568. data/app/helpers/avo/application_helper.rb +29 -47
  569. data/app/helpers/avo/resources_helper.rb +2 -2
  570. data/app/helpers/avo/url_helpers.rb +5 -9
  571. data/app/javascript/avo.js +22 -2
  572. data/app/javascript/js/application.js +2 -1
  573. data/app/javascript/js/controllers/actions_picker_controller.js +12 -10
  574. data/app/javascript/js/controllers/dashboard_card_controller.js +33 -0
  575. data/app/javascript/js/controllers/item_selector_controller.js +8 -4
  576. data/app/javascript/js/controllers/mobile_controller.js +9 -0
  577. data/app/javascript/js/controllers/select_controller.js +23 -0
  578. data/app/javascript/js/controllers.js +6 -0
  579. data/app/views/avo/actions/show.html.erb +22 -17
  580. data/app/views/avo/{relations → associations}/new.html.erb +16 -6
  581. data/app/views/avo/base/_multiple_select_filter.html.erb +5 -1
  582. data/app/views/avo/base/_text_filter.html.erb +3 -1
  583. data/app/views/avo/base/show.html.erb +1 -1
  584. data/app/views/avo/dashboards/_chartkick_card.html.erb +3 -0
  585. data/app/views/avo/dashboards/_metric_card.html.erb +5 -0
  586. data/app/views/avo/dashboards/card.html.erb +3 -0
  587. data/app/views/avo/dashboards/show.html.erb +35 -0
  588. data/app/views/avo/home/index.html.erb +1 -5
  589. data/app/views/avo/partials/_custom_tools_alert.html.erb +2 -2
  590. data/app/views/avo/partials/_global_search.html.erb +3 -3
  591. data/app/views/avo/partials/_header.html.erb +1 -1
  592. data/app/views/avo/partials/_logo.html.erb +1 -1
  593. data/app/views/avo/partials/_navbar.html.erb +11 -0
  594. data/app/views/avo/partials/_resource_search.html.erb +1 -1
  595. data/app/views/avo/partials/_sortable_component.html.erb +1 -1
  596. data/app/views/avo/partials/_table_header.html.erb +4 -4
  597. data/app/views/avo/partials/_view_toggle_button.html.erb +36 -16
  598. data/app/views/avo/private/_links_and_buttons.html.erb +57 -0
  599. data/app/views/avo/private/design.html.erb +27 -0
  600. data/app/views/layouts/avo/application.html.erb +20 -31
  601. data/avo.gemspec +4 -2
  602. data/config/routes.rb +19 -11
  603. data/lib/avo/app.rb +30 -3
  604. data/lib/avo/base_resource.rb +6 -8
  605. data/lib/avo/dashboards/base_card.rb +151 -0
  606. data/lib/avo/dashboards/base_dashboard.rb +54 -0
  607. data/lib/avo/dashboards/base_divider.rb +23 -0
  608. data/lib/avo/dashboards/chartkick_card.rb +77 -0
  609. data/lib/avo/dashboards/metric_card.rb +9 -0
  610. data/lib/avo/dashboards/partial_card.rb +7 -0
  611. data/lib/avo/dynamic_router.rb +3 -0
  612. data/lib/avo/engine.rb +5 -1
  613. data/lib/avo/fields/date_field.rb +1 -1
  614. data/lib/avo/fields/gravatar_field.rb +2 -2
  615. data/lib/avo/hosts/dashboard_card.rb +21 -0
  616. data/lib/avo/hosts/ordering.rb +1 -1
  617. data/lib/avo/licensing/license.rb +4 -2
  618. data/lib/avo/licensing/pro_license.rb +2 -1
  619. data/lib/avo/version.rb +1 -1
  620. data/lib/avo.rb +24 -1
  621. data/lib/generators/avo/chartkick_card_generator.rb +16 -0
  622. data/lib/generators/avo/dashboard_generator.rb +16 -0
  623. data/lib/generators/avo/metric_card_generator.rb +16 -0
  624. data/lib/generators/avo/partial_card_generator.rb +17 -0
  625. data/lib/generators/avo/templates/cards/chartkick_card.tt +16 -0
  626. data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +26 -0
  627. data/lib/generators/avo/templates/cards/metric_card.tt +8 -0
  628. data/lib/generators/avo/templates/cards/metric_card_sample.tt +38 -0
  629. data/lib/generators/avo/templates/cards/partial_card.tt +8 -0
  630. data/lib/generators/avo/templates/cards/partial_card_partial.tt +8 -0
  631. data/lib/generators/avo/templates/cards/partial_card_sample.tt +8 -0
  632. data/lib/generators/avo/templates/dashboards/dashboard.tt +9 -0
  633. data/lib/generators/avo/templates/locales/avo.en.yml +11 -4
  634. data/lib/generators/avo/templates/locales/avo.nb-NO.yml +5 -2
  635. data/lib/generators/avo/templates/locales/avo.pt-BR.yml +4 -2
  636. data/lib/generators/avo/templates/locales/avo.ro.yml +4 -1
  637. data/lib/generators/avo/templates/tool/sidebar_item.tt +1 -1
  638. data/public/avo-assets/avo.css +1300 -1121
  639. data/public/avo-assets/avo.js +348 -88688
  640. data/public/avo-assets/avo.js.map +3 -3
  641. data/public/avo-assets/fonts/inter-v7-latin-500.eot +0 -0
  642. data/public/avo-assets/fonts/inter-v7-latin-500.svg +351 -0
  643. data/public/avo-assets/fonts/inter-v7-latin-500.ttf +0 -0
  644. data/public/avo-assets/fonts/inter-v7-latin-500.woff +0 -0
  645. data/public/avo-assets/fonts/inter-v7-latin-500.woff2 +0 -0
  646. data/public/avo-assets/fonts/inter-v7-latin-600.eot +0 -0
  647. data/public/avo-assets/fonts/inter-v7-latin-600.svg +351 -0
  648. data/public/avo-assets/fonts/inter-v7-latin-600.ttf +0 -0
  649. data/public/avo-assets/fonts/inter-v7-latin-600.woff +0 -0
  650. data/public/avo-assets/fonts/inter-v7-latin-600.woff2 +0 -0
  651. data/public/avo-assets/fonts/inter-v7-latin-700.eot +0 -0
  652. data/public/avo-assets/fonts/inter-v7-latin-700.svg +352 -0
  653. data/public/avo-assets/fonts/inter-v7-latin-700.ttf +0 -0
  654. data/public/avo-assets/fonts/inter-v7-latin-700.woff +0 -0
  655. data/public/avo-assets/fonts/inter-v7-latin-700.woff2 +0 -0
  656. data/public/avo-assets/fonts/inter-v7-latin-regular.eot +0 -0
  657. data/public/avo-assets/fonts/inter-v7-latin-regular.svg +351 -0
  658. data/public/avo-assets/fonts/inter-v7-latin-regular.ttf +0 -0
  659. data/public/avo-assets/fonts/inter-v7-latin-regular.woff +0 -0
  660. data/public/avo-assets/fonts/inter-v7-latin-regular.woff2 +0 -0
  661. data/public/avo-assets/logo-on-white.png +0 -0
  662. data/public/avo-assets/logo.png +0 -0
  663. metadata +579 -50
  664. data/app/assets/builds/action_cable.js +0 -2
  665. data/app/assets/builds/action_cable.js.map +0 -7
  666. data/app/assets/builds/application.js +0 -2
  667. data/app/assets/builds/application.js.map +0 -7
  668. data/app/assets/builds/avo.css +0 -8610
  669. data/app/assets/builds/avo.js +0 -88762
  670. data/app/assets/builds/avo.js.map +0 -7
  671. data/app/assets/builds/avo_custom.js +0 -6
  672. data/app/assets/builds/avo_custom.js.map +0 -7
  673. data/app/assets/images/avo/logo.png +0 -0
  674. data/app/assets/svgs/check-circle-sm.svg +0 -3
  675. data/app/components/avo/alerts_component.rb +0 -5
  676. data/app/components/avo/fields/common/multiple_file_viewer_component.html.erb +0 -35
  677. data/app/components/avo/fields/common/multiple_file_viewer_component.rb +0 -15
  678. data/app/components/avo/navigation_heading_component.html.erb +0 -3
  679. data/app/components/avo/navigation_heading_component.rb +0 -7
  680. data/app/components/avo/navigation_link_component.html.erb +0 -3
  681. data/app/components/avo/navigation_link_component.rb +0 -11
  682. data/app/javascript/js/toastr.js +0 -10
  683. data/app/views/avo/attachments/show.html.erb +0 -14
  684. data/app/views/avo/base/_actions.html.erb +0 -36
  685. data/app/views/avo/base/_filters.html.erb +0 -34
  686. data/app/views/avo/partials/_a_button.html.erb +0 -7
  687. data/app/views/avo/partials/_a_link.html.erb +0 -7
  688. data/app/views/avo/partials/_empty_state.html.erb +0 -17
  689. data/app/views/avo/partials/_profile_dropdown.html.erb +0 -25
  690. data/app/views/avo/sidebar/_sidebar.html.erb +0 -31
  691. data/lib/avo/services/panel_service.rb +0 -27
  692. data/public/avo-assets/fonts/nunito-v16-latin-700.eot +0 -0
  693. data/public/avo-assets/fonts/nunito-v16-latin-700.svg +0 -388
  694. data/public/avo-assets/fonts/nunito-v16-latin-700.ttf +0 -0
  695. data/public/avo-assets/fonts/nunito-v16-latin-700.woff +0 -0
  696. data/public/avo-assets/fonts/nunito-v16-latin-700.woff2 +0 -0
  697. data/public/avo-assets/fonts/nunito-v16-latin-regular.eot +0 -0
  698. data/public/avo-assets/fonts/nunito-v16-latin-regular.svg +0 -380
  699. data/public/avo-assets/fonts/nunito-v16-latin-regular.ttf +0 -0
  700. data/public/avo-assets/fonts/nunito-v16-latin-regular.woff +0 -0
  701. data/public/avo-assets/fonts/nunito-v16-latin-regular.woff2 +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d97808d5ad5af281e3f8f77bf2a4f1bae31cd3dbc973b08a0f3d400e54054c75
4
- data.tar.gz: edce71e99f00ecf98c06fa461721346bcf9d70376d12c97b44f0daf1e4924551
3
+ metadata.gz: f169116cd6e56e99ff318b5babd7394db5ad846ddc16c2399ce02df980c0edfc
4
+ data.tar.gz: 4ed87d717ff0f174b4220637fe5b5b31be26fd84b8f383c7812ce7b55f785e8f
5
5
  SHA512:
6
- metadata.gz: 3ea20e5fbba919be22ed36c8763e010a47103606c38938277510b67413b6a32441d5fdd61da880e289d9e4889ce3b44a10382920f56321d73412d4fe978156c8
7
- data.tar.gz: 36415db4397e05ef7d6cb2b9463342d77890cbf026291876ab7a3e7eae4065cbbe1f45e8f28e57e3efb24faf647a0f113eb9e13401be82817797690b81aac95f
6
+ metadata.gz: c05244d5032c94bc2912e5ec726975544c3b5a2813a7fd477bc2e5bd5e1718a2fedd04ab53c296b73fd779e6d8dc43a9e711e71cf83260df4972752e456335a7
7
+ data.tar.gz: a89f9be5b9c1d6f2fbefa344e0335de6823a1f9cebf66077da9b6ab0970a7a6713cbf03f76689344d590df32f946cac73a84ef6157b864a0c2651394d0ac065b
data/Gemfile CHANGED
@@ -39,7 +39,7 @@ gem "puma", "~> 5.6.2"
39
39
  # gem 'bcrypt', '~> 3.1.7'
40
40
 
41
41
  # Use Active Storage variant
42
- gem "image_processing", "~> 1.2"
42
+ gem "image_processing", "~> 1.12"
43
43
 
44
44
  # Reduces boot times through caching; required in config/boot.rb
45
45
  gem "bootsnap", ">= 1.4.2", require: false
@@ -104,6 +104,9 @@ group :test do
104
104
  gem "test-prof"
105
105
  end
106
106
 
107
+ gem "rubocop"
108
+ gem "rubocop-shopify", require: false
109
+
107
110
  gem "zeitwerk", "~> 2.3"
108
111
 
109
112
  gem "httparty"
@@ -126,6 +129,7 @@ gem 'breadcrumbs_on_rails'
126
129
 
127
130
  gem 'manifester'
128
131
 
132
+ # Search
129
133
  gem 'ransack'
130
134
 
131
135
  gem 'friendly_id', '~> 5.4.0'
@@ -134,4 +138,9 @@ gem 'aws-sdk-s3', require: false
134
138
 
135
139
  gem 'net-smtp', require: false
136
140
 
141
+ # Dashboard charts
142
+ gem "groupdate"
143
+ gem "hightop"
144
+ gem "active_median"
145
+
137
146
  gem 'acts_as_list'
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- avo (1.25.2)
4
+ avo (2.0.0)
5
5
  active_link_to
6
6
  addressable
7
7
  breadcrumbs_on_rails
8
+ chartkick
8
9
  countries
9
10
  dry-initializer
10
11
  hotwire-rails
@@ -61,6 +62,8 @@ GEM
61
62
  active_link_to (1.0.5)
62
63
  actionpack
63
64
  addressable
65
+ active_median (0.3.3)
66
+ activesupport (>= 5.2)
64
67
  activejob (6.1.4.6)
65
68
  activesupport (= 6.1.4.6)
66
69
  globalid (>= 0.3.6)
@@ -127,6 +130,7 @@ GEM
127
130
  rack-test (>= 0.6.3)
128
131
  regexp_parser (>= 1.5, < 3.0)
129
132
  xpath (~> 3.2)
133
+ chartkick (4.1.3)
130
134
  childprocess (4.1.0)
131
135
  concurrent-ruby (1.1.9)
132
136
  countries (4.2.1)
@@ -174,7 +178,11 @@ GEM
174
178
  gem-release (2.2.2)
175
179
  globalid (1.0.0)
176
180
  activesupport (>= 5.0)
181
+ groupdate (5.2.4)
182
+ activesupport (>= 5)
177
183
  hashdiff (1.0.1)
184
+ hightop (0.3.0)
185
+ activesupport (>= 5.2)
178
186
  hotwire-rails (0.1.3)
179
187
  rails (>= 6.0.0)
180
188
  stimulus-rails
@@ -187,7 +195,7 @@ GEM
187
195
  concurrent-ruby (~> 1.0)
188
196
  i18n_data (0.15.0)
189
197
  simple_po_parser (~> 1.1)
190
- image_processing (1.12.1)
198
+ image_processing (1.12.2)
191
199
  mini_magick (>= 4.9.5, < 5)
192
200
  ruby-vips (>= 2.0.17, < 3)
193
201
  io-wait (0.2.1)
@@ -234,8 +242,6 @@ GEM
234
242
  nokogiri (1.13.3)
235
243
  mini_portile2 (~> 2.8.0)
236
244
  racc (~> 1.4)
237
- nokogiri (1.13.3-x86_64-linux)
238
- racc (~> 1.4)
239
245
  orm_adapter (0.5.0)
240
246
  pagy (5.10.1)
241
247
  activesupport
@@ -327,6 +333,8 @@ GEM
327
333
  rubocop-performance (1.13.2)
328
334
  rubocop (>= 1.7.0, < 2.0)
329
335
  rubocop-ast (>= 0.4.0)
336
+ rubocop-shopify (2.5.0)
337
+ rubocop (~> 1.25)
330
338
  ruby-debug-ide (0.7.3)
331
339
  rake (>= 0.8.1)
332
340
  ruby-progressbar (1.11.0)
@@ -372,7 +380,7 @@ GEM
372
380
  tzinfo (2.0.4)
373
381
  concurrent-ruby (~> 1.0)
374
382
  unicode-display_width (2.1.0)
375
- view_component (2.48.0)
383
+ view_component (2.49.1)
376
384
  activesupport (>= 5.0.0, < 8.0)
377
385
  method_source (~> 1.0)
378
386
  warden (1.2.9)
@@ -403,6 +411,7 @@ PLATFORMS
403
411
 
404
412
  DEPENDENCIES
405
413
  active_link_to
414
+ active_median
406
415
  acts_as_list
407
416
  addressable
408
417
  ap
@@ -424,10 +433,12 @@ DEPENDENCIES
424
433
  friendly_id (~> 5.4.0)
425
434
  fuubar
426
435
  gem-release
436
+ groupdate
437
+ hightop
427
438
  hotwire-rails
428
439
  htmlbeautifier
429
440
  httparty
430
- image_processing (~> 1.2)
441
+ image_processing (~> 1.12)
431
442
  iso
432
443
  jsbundling-rails
433
444
  launchy
@@ -442,6 +453,8 @@ DEPENDENCIES
442
453
  rails-controller-testing
443
454
  ransack
444
455
  rspec-rails (~> 4.0.0)
456
+ rubocop
457
+ rubocop-shopify
445
458
  ruby-debug-ide
446
459
  selenium-webdriver
447
460
  simplecov
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![codecov](https://codecov.io/gh/avo-hq/avo/branch/master/graph/badge.svg?token=Q2LMFE4989)](https://codecov.io/gh/avo-hq/avo)
5
5
  [![Maintainability](https://api.codeclimate.com/v1/badges/676a0afa2cc79f03aa29/maintainability)](https://codeclimate.com/github/avo-hq/avo/maintainability)
6
6
 
7
- ![](https://avohq.io/img/logo-full-stroke-tiny-2x.png)
7
+ ![](./public/avo-assets/logo-on-white.png)
8
8
 
9
9
  **Configuration-based, no-maintenance, extendable Ruby on Rails admin**
10
10
 
@@ -12,33 +12,42 @@ Avo is a beautiful next-generation framework that empowers you, the developer, t
12
12
 
13
13
  ## Get started
14
14
 
15
- **Website**: [avohq.io](https://avohq.io)\
16
- **Documentation**: [docs.avohq.io](https://docs.avohq.io)\
17
- **Twitter**: [avo_hq](https://twitter.com/avo_hq)\
18
- **Community chat**: [discord](https://discord.gg/pkTF6y8)\
19
- **Issue tracker**: [GitHub issues](http://github.com/avo-hq/avo/issues)\
20
- **Discussions and feature requests**: [GitHub issues](http://github.com/avo-hq/avo/discussions)
15
+ **Website**: [avohq.io](https://avohq.io)\
16
+ 📚 **Documentation**: [docs.avohq.io](https://docs.avohq.io)\
17
+ 🗺 **Roadmap**: [GitHub Roadmap](https://github.com/orgs/avo-hq/projects/3)\
18
+ 🎸 **Demo app**: [Avodemo](https://avodemo.herokuapp.com/)\
19
+ 🐤 **Twitter**: [avo_hq](https://twitter.com/avo_hq)\
20
+ 💬 **Community chat**: [discord](https://discord.gg/pkTF6y8)\
21
+ 🔧 **Issue tracker**: [GitHub issues](http://github.com/avo-hq/avo/issues)\
22
+ 🎙 **Discussions and feature requests**: [GitHub issues](http://github.com/avo-hq/avo/discussions)
21
23
 
22
24
  ## Features
23
25
 
24
26
  - **Powered by Hotwire** - Rails ❤️ Hotwire
25
- - **Code driven configuration** - Configure your Rails dashboard entirely by writing Ruby code.
27
+ - **Code driven configuration** - Configure your Rails dashboard entirely by writing Ruby code. [docs](https://docs.avohq.io/2.0/resources.html#defining-resources)
26
28
  - **Resource Management** - Create a CRUD interface for Active Record from one command. No more copy-pasting view and controller files around.
27
- - **Resource Search** - Quickly run a search through one or more resources at once.
28
- - **Active Storage support** - Amazingly easy, **one-line**, single or multi-file integration with **ActiveStorage**.
29
- - **Grid view** - Beautiful card layout to showcase your content.
30
- - **Actions** - Run custom actions to one or more of your resources with as little as pressing a button 💪
31
- - **Filters** - Write your own custom filters to quickly segment your data.
32
- - **Keeps your app clean** - You don't need to change your app to use Avo. Drop it in your existing app or add it to a new one and you're done 🙌
33
- - **Custom fields**- No worries if we missed a field you need. Generate a custom field in a jiffy.
34
- - **Custom tools** - You need to add a page with something completely new, you've got it!
35
- - **Authorization** - Leverage Pundit policies to build a robust and scalable authorization system.
36
- - **Localization** - Have it available in any language you need.
37
- - **No asset pipeline pollution** - Bring your own asset pipeline.
38
- - **Dashboard widgets and metrics*** - Customize your dashboard with the tools and analytics you need.
39
- - **Themable*** - Dress it up into your own colors.
40
-
41
- *Features still under development
29
+ - **Dashboard widgets and metrics** - Create metrics, charts, and custom cards amazingly fast. [docs](https://docs.avohq.io/2.0/dashboards.html)
30
+ - **Resource Search** - Quickly run a search through one or more resources at once. [docs](https://docs.avohq.io/2.0/resources.html#filters)
31
+ - **Associations enabled** - Link your models together with all types of associations (belongs_to, has_many, polymorphic, etc.). [docs](https://docs.avohq.io/2.0/associations.html)
32
+ - **Fuzzy-searchable associations** - Do you have a ton of records and don't want to scroll through a big dropdown? Avo's got you covered. [docs](https://docs.avohq.io/2.0/associations.html#searchable-belongs-to)
33
+ - **Active Storage support** - Amazingly easy, **one-line**, single or multi-file integration with **ActiveStorage**. [docs](https://docs.avohq.io/2.0/fields.html#file)
34
+ - **Records Ordering** - Sorting records is a breeze. [docs](https://docs.avohq.io/2.0/resources.html#records-ordering)
35
+ - **Grid view** - Beautiful card layout to showcase your content. [docs](https://docs.avohq.io/2.0/grid-view.html)
36
+ - **Actions** - Run custom actions to one or more of your resources with as little as pressing a button 💪 &nbsp; [docs](https://docs.avohq.io/2.0/actions.html)
37
+ - **Filters** - Write your own custom filters to quickly segment your data. [docs](https://docs.avohq.io/2.0/filters.html)
38
+ - **Keeps your app clean** - You don't need to change your app to use Avo. Drop it in your existing app or add it to a new one and you're done 🙌 [docs](https://docs.avohq.io/2.0/installation.html)
39
+ - **Custom fields**- No worries if we missed a field you need. Generate a custom field in a jiffy. [docs](https://docs.avohq.io/2.0/custom-fields.html)
40
+ - **Custom tools** - Break out of the CRUD. Do you need to add a page with something completely new? You've got it! [docs](https://docs.avohq.io/2.0/custom-tools.html)
41
+ - **Authorization** - Leverage Pundit policies to build a robust and scalable authorization system. [docs](https://docs.avohq.io/2.0/authorization.html)
42
+ - **Localization** - Have it available in any language you need. [docs](https://docs.avohq.io/2.0/localization.html)
43
+ - **No asset pipeline pollution** - Bring your own asset pipeline. [docs](https://docs.avohq.io/2.0/custom-asset-pipeline.html)
44
+ - **Mobile interface** - Check your data on the go from any mobile device.
45
+
46
+ ## Some of the things we're going focusing on next
47
+
48
+ Theming ⭐️ &nbsp;notifications ⭐️ &nbsp;Resource segmentation ⭐️ &nbsp;filterable fields ⭐️ &nbsp;inline editing ⭐️ &nbsp;multilingual records ⭐️ &nbsp;associations in tabs ⭐️ &nbsp;keyboard shortcuts ⭐️ &nbsp;track resource changes ⭐️ &nbsp;smart resource generation ⭐️ &nbsp;sidebar editor ⭐️ &nbsp;live resources ⭐️ &nbsp;tags field ⭐️ &nbsp;columns view ⭐️ &nbsp;list view ⭐️ &nbsp;custom action items ⭐️ &nbsp;command bar
49
+
50
+ For more up-to-date info check out our 🗺 [Roadmap](https://github.com/orgs/avo-hq/projects/3).
42
51
 
43
52
  # Installation
44
53
  Add this line to your application's `Gemfile`:
@@ -52,17 +61,13 @@ And then execute:
52
61
  $ bundle install
53
62
  ```
54
63
 
55
- # Quick Purchase
56
-
57
- Use [this](https://avohq.io/purchase/pro) link to quickly purchase a Pro license to support this project. Thank you 🙏
58
-
59
64
  # Contributing
60
65
 
61
66
  Please read [CONTRIBUTING.MD](./CONTRIBUTING.MD)
62
67
 
63
68
  # Upgrade Guide
64
69
 
65
- Please read the [UPGRADE_GUIDE.MD](https://docs.avohq.io/1.0/upgrade.html)
70
+ Please read the [UPGRADE_GUIDE.MD](https://docs.avohq.io/2.0/upgrade.html)
66
71
 
67
72
  # ✨ Contributors
68
73
 
@@ -1,5 +1,4 @@
1
1
  @import './../../../node_modules/simplemde/dist/simplemde.min.css';
2
- @import './../../../node_modules/toastr/build/toastr.css';
3
2
  @import './../../../node_modules/tippy.js/dist/tippy.css';
4
3
  @import './../../../node_modules/tippy.js/themes/light.css';
5
4
  @import './../../../node_modules/trix/dist/trix.css';
@@ -9,6 +8,7 @@
9
8
  @import 'tailwindcss/base';
10
9
 
11
10
  @import './css/fonts.css';
11
+ @import './css/buttons.css';
12
12
  @import './css/typography.css';
13
13
  @import './css/tooltips.css';
14
14
  @import './css/alerts.css';
@@ -70,7 +70,7 @@ body {
70
70
 
71
71
  .application-sidebar .active:hover,
72
72
  .application-sidebar .active {
73
- @apply bg-gray-200;
73
+ @apply bg-blue-100 text-blue-500;
74
74
  }
75
75
 
76
76
  .turbo-progress-bar {
@@ -84,3 +84,8 @@ body.os-mac .mac\:hidden {
84
84
  body.os-pc .pc\:hidden {
85
85
  display: none;
86
86
  }
87
+
88
+ trix-editor {
89
+ max-height: 320px !important;
90
+ overflow-y: auto;
91
+ }
@@ -1,9 +1,13 @@
1
1
  .breadcrumbs {
2
- @apply relative text-sm text-gray-400 font-bold;
2
+ @apply relative text-sm text-black;
3
+
4
+ svg {
5
+ @apply text-gray-500;
6
+ }
3
7
 
4
8
  a,
5
9
  span {
6
- @apply inline-block text-gray-400;
10
+ @apply inline-block text-sm;
7
11
  }
8
12
 
9
13
  a {
@@ -0,0 +1,16 @@
1
+ .button-group {
2
+ @apply flex;
3
+ .button-component {
4
+ &:first-child {
5
+ @apply rounded-l -mr-px;
6
+ }
7
+
8
+ &:last-child {
9
+ @apply rounded-r;
10
+ }
11
+ }
12
+ }
13
+
14
+ form.button_to {
15
+ @apply inline-flex;
16
+ }
@@ -1,26 +1,52 @@
1
- /* nunito-regular - latin */
1
+ /* inter-regular - latin */
2
2
  @font-face {
3
- font-family: 'Nunito';
3
+ font-family: 'Inter';
4
4
  font-style: normal;
5
5
  font-weight: 400;
6
- src: url('/avo-assets/fonts/nunito-v16-latin-regular.eot'); /* IE9 Compat Modes */
6
+ src: url('/avo-assets/fonts/inter-v7-latin-regular.eot'); /* IE9 Compat Modes */
7
7
  src: local(''),
8
- url('/avo-assets/fonts/nunito-v16-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
9
- url('/avo-assets/fonts/nunito-v16-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
10
- url('/avo-assets/fonts/nunito-v16-latin-regular.woff') format('woff'), /* Modern Browsers */
11
- url('/avo-assets/fonts/nunito-v16-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
12
- url('/avo-assets/fonts/nunito-v16-latin-regular.svg#Nunito') format('svg'); /* Legacy iOS */
8
+ url('/avo-assets/fonts/inter-v7-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
9
+ url('/avo-assets/fonts/inter-v7-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
10
+ url('/avo-assets/fonts/inter-v7-latin-regular.woff') format('woff'), /* Modern Browsers */
11
+ url('/avo-assets/fonts/inter-v7-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
12
+ url('/avo-assets/fonts/inter-v7-latin-regular.svg#Inter') format('svg'); /* Legacy iOS */
13
13
  }
14
- /* nunito-700 - latin */
14
+ /* inter-500 - latin */
15
15
  @font-face {
16
- font-family: 'Nunito';
16
+ font-family: 'Inter';
17
+ font-style: normal;
18
+ font-weight: 500;
19
+ src: url('/avo-assets/fonts/inter-v7-latin-500.eot'); /* IE9 Compat Modes */
20
+ src: local(''),
21
+ url('/avo-assets/fonts/inter-v7-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
22
+ url('/avo-assets/fonts/inter-v7-latin-500.woff2') format('woff2'), /* Super Modern Browsers */
23
+ url('/avo-assets/fonts/inter-v7-latin-500.woff') format('woff'), /* Modern Browsers */
24
+ url('/avo-assets/fonts/inter-v7-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */
25
+ url('/avo-assets/fonts/inter-v7-latin-500.svg#Inter') format('svg'); /* Legacy iOS */
26
+ }
27
+ /* inter-600 - latin */
28
+ @font-face {
29
+ font-family: 'Inter';
30
+ font-style: normal;
31
+ font-weight: 600;
32
+ src: url('/avo-assets/fonts/inter-v7-latin-600.eot'); /* IE9 Compat Modes */
33
+ src: local(''),
34
+ url('/avo-assets/fonts/inter-v7-latin-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
35
+ url('/avo-assets/fonts/inter-v7-latin-600.woff2') format('woff2'), /* Super Modern Browsers */
36
+ url('/avo-assets/fonts/inter-v7-latin-600.woff') format('woff'), /* Modern Browsers */
37
+ url('/avo-assets/fonts/inter-v7-latin-600.ttf') format('truetype'), /* Safari, Android, iOS */
38
+ url('/avo-assets/fonts/inter-v7-latin-600.svg#Inter') format('svg'); /* Legacy iOS */
39
+ }
40
+ /* inter-700 - latin */
41
+ @font-face {
42
+ font-family: 'Inter';
17
43
  font-style: normal;
18
44
  font-weight: 700;
19
- src: url('/avo-assets/fonts/nunito-v16-latin-700.eot'); /* IE9 Compat Modes */
45
+ src: url('/avo-assets/fonts/inter-v7-latin-700.eot'); /* IE9 Compat Modes */
20
46
  src: local(''),
21
- url('/avo-assets/fonts/nunito-v16-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
22
- url('/avo-assets/fonts/nunito-v16-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
23
- url('/avo-assets/fonts/nunito-v16-latin-700.woff') format('woff'), /* Modern Browsers */
24
- url('/avo-assets/fonts/nunito-v16-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
25
- url('/avo-assets/fonts/nunito-v16-latin-700.svg#Nunito') format('svg'); /* Legacy iOS */
47
+ url('/avo-assets/fonts/inter-v7-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
48
+ url('/avo-assets/fonts/inter-v7-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
49
+ url('/avo-assets/fonts/inter-v7-latin-700.woff') format('woff'), /* Modern Browsers */
50
+ url('/avo-assets/fonts/inter-v7-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
51
+ url('/avo-assets/fonts/inter-v7-latin-700.svg#Inter') format('svg'); /* Legacy iOS */
26
52
  }
@@ -21,18 +21,18 @@
21
21
  .pagy-nav-js .page a,
22
22
  .pagy-combo-nav-js .page a,
23
23
  .pagy-combo-nav-js .pagy-combo-input a {
24
- @apply rounded-lg px-3 py-1 text-sm text-gray-500 font-semibold bg-gray-200 shadow-md;
24
+ @apply rounded px-3 py-1 text-sm text-gray-500 font-semibold bg-white shadow-md border border-gray-300;
25
25
 
26
26
  &:focus{
27
27
  @apply border-blue-300;
28
28
  }
29
29
 
30
30
  &:hover{
31
- @apply bg-gray-300;
31
+ @apply bg-gray-150;
32
32
  }
33
33
 
34
34
  &:active{
35
- @apply bg-gray-400 text-white;
35
+ @apply bg-gray-200;
36
36
  }
37
37
  }
38
38
 
@@ -42,26 +42,26 @@
42
42
  .pagy-nav .page.next.disabled,
43
43
  .pagy-nav-js .page.next.disabled,
44
44
  .pagy-combo-nav-js .page.next.disabled {
45
- @apply text-gray-400 cursor-default;
45
+ @apply text-gray-300 cursor-default;
46
46
 
47
47
  &:hover {
48
- @apply text-gray-400 bg-gray-200;
48
+ @apply text-gray-300 bg-white;
49
49
  }
50
50
 
51
51
  &:active {
52
- @apply text-gray-400 bg-gray-200;
52
+ @apply text-gray-300 bg-white;
53
53
  }
54
54
  }
55
55
 
56
56
  .pagy-nav .page.active,
57
57
  .pagy-nav-js .page.active {
58
- @apply text-white cursor-default bg-gray-400;
58
+ @apply text-white cursor-default bg-gray-500 border-gray-500;
59
59
 
60
60
  &:hover {
61
- @apply text-white bg-gray-400;
61
+ @apply text-white bg-gray-500;
62
62
  }
63
63
 
64
64
  &:active {
65
- @apply bg-gray-400 text-white;
65
+ @apply bg-gray-500 text-white;
66
66
  }
67
67
  }
@@ -1,13 +1,18 @@
1
1
  :root {
2
2
  --aa-primary-color: --tw-ring-color;
3
3
  --aa-selected-color: --tw-ring-color;
4
- --aa-primary-color-rgb: 5, 150, 105;
4
+ --aa-primary-color-rgb: 117, 125, 138;
5
5
  }
6
6
 
7
7
  .global-search {
8
8
  .aa-DetachedSearchButton:focus,
9
9
  .aa-DetachedSearchButton {
10
10
  border: none !important;
11
+ @apply text-gray-500 cursor-pointer;
12
+
13
+ .aa-DetachedSearchButtonPlaceholder {
14
+ @apply hidden sm:block;
15
+ }
11
16
  }
12
17
  }
13
18
 
@@ -17,7 +22,7 @@
17
22
  }
18
23
 
19
24
  .aa-DetachedSearchButton {
20
- @apply rounded-full border-gray-300;
25
+ @apply rounded border-gray-300 h-[34px];
21
26
  }
22
27
  }
23
28
 
@@ -27,7 +32,7 @@
27
32
 
28
33
  .aa-DetachedFormContainer,
29
34
  .aa-DetachedContainer .aa-Panel {
30
- @apply bg-slate-100 border-b-0;
35
+ @apply bg-gray-100 border-b-0;
31
36
  }
32
37
 
33
38
  .aa-Form {
@@ -46,6 +51,12 @@
46
51
  }
47
52
  }
48
53
  }
54
+
55
+ button.aa-DetachedCancelButton {
56
+ border: 1px solid #757D8A !important;
57
+ @apply bg-white;
58
+ }
59
+
49
60
  .aa-Input {
50
61
  @apply focus:ring-green-600;
51
62
  }
@@ -57,17 +68,17 @@
57
68
 
58
69
  .aa-Source {
59
70
  .aa-List {
60
- @apply space-y-1;
71
+ @apply space-y-2;
61
72
 
62
73
  .aa-Item {
63
- @apply bg-white rounded-md px-3 py-4 shadow;
74
+ @apply bg-white rounded px-3 py-4 shadow font-medium;
64
75
 
65
76
  .aa-ItemDescription {
66
- @apply text-gray-500 text-sm;
77
+ @apply text-gray-500 text-sm font-normal mt-1;
67
78
  }
68
79
 
69
80
  &[aria-selected=true]{
70
- @apply bg-blue-700 text-white;
81
+ @apply bg-blue-500 text-white;
71
82
 
72
83
  .aa-ItemDescription {
73
84
  @apply text-white;
@@ -6,6 +6,7 @@
6
6
  .tooltip .tooltip-inner {
7
7
  display: block;
8
8
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.1));
9
+
9
10
  @apply bg-white text-gray-700 px-3 py-0 rounded text-xs;
10
11
  }
11
12
 
@@ -18,6 +18,8 @@ h5 {
18
18
  @apply text-lg;
19
19
  }
20
20
 
21
- a {
22
- @apply text-blue-600;
21
+ @layer base {
22
+ a {
23
+ @apply text-primary-500;
24
+ }
23
25
  }
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
2
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" />
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.4 2H2V8.4H8.4V2Z" stroke="#757D8A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M18 2H11.6V8.4H18V2Z" stroke="#757D8A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M8.4 11.6001H2V18.0001H8.4V11.6001Z" stroke="#757D8A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M18 11.6001H11.6V18.0001H18V11.6001Z" stroke="#757D8A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
6
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="currentColor">
2
+ <path d="M9 6.75V4.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M15 19.5V17.25" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M6.75 9H4.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M19.5 15H17.25" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
6
+ <path d="M6.65614 12.0376L5.59676 13.097C4.89311 13.8006 4.4978 14.755 4.4978 15.7501C4.4978 16.2428 4.59485 16.7307 4.78341 17.186C4.97197 17.6412 5.24835 18.0548 5.59676 18.4032C5.94518 18.7516 6.3588 19.028 6.81403 19.2166C7.26925 19.4051 7.75716 19.5022 8.24989 19.5022C9.245 19.5022 10.1994 19.1069 10.903 18.4032L11.9624 17.3438" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
7
+ <path d="M17.3438 11.9626L18.4032 10.9033C19.1069 10.1996 19.5022 9.24525 19.5022 8.25013C19.5022 7.25502 19.1069 6.30066 18.4032 5.59701C17.6996 4.89335 16.7452 4.49805 15.7501 4.49805C14.755 4.49805 13.8006 4.89335 13.097 5.59701L12.0376 6.65638" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
8
+ </svg>
@@ -1 +1,5 @@
1
- <svg fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path></svg>
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="currentColor">
2
+ <path d="M9.00001 20.2499H4.5C4.30109 20.2499 4.11033 20.1709 3.96967 20.0302C3.82902 19.8896 3.75 19.6988 3.75 19.4999V15.3093C3.74966 15.2119 3.76853 15.1154 3.80553 15.0253C3.84253 14.9352 3.89694 14.8533 3.96563 14.7843L15.2156 3.53429C15.2854 3.46343 15.3686 3.40715 15.4603 3.36874C15.5521 3.33033 15.6506 3.31055 15.75 3.31055C15.8495 3.31055 15.9479 3.33033 16.0397 3.36874C16.1314 3.40715 16.2146 3.46343 16.2844 3.53429L20.4656 7.71554C20.5365 7.78533 20.5928 7.86851 20.6312 7.96026C20.6696 8.052 20.6894 8.15046 20.6894 8.24992C20.6894 8.34938 20.6696 8.44784 20.6312 8.53958C20.5928 8.63132 20.5365 8.71451 20.4656 8.78429L9.00001 20.2499Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M20.25 20.25H9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M12.75 6L18 11.25" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,37 @@
1
+ <svg width="248" height="287" viewBox="0 0 248 287" fill="none" xmlns="http://www.w3.org/2000/svg" data-target="grid-empty-state-svg">
2
+ <path d="M124 270.227C192.483 270.227 248 214.71 248 146.227C248 77.7433 192.483 22.2266 124 22.2266C55.5167 22.2266 0 77.7433 0 146.227C0 214.71 55.5167 270.227 124 270.227Z" fill="#DDF0FE"/>
3
+ <g filter="url(#filter0_d_577_1090)">
4
+ <path d="M195.093 93.3198H52.9068C48.3412 93.3198 44.6401 97.0209 44.6401 101.586V275.186C44.6401 279.752 48.3412 283.453 52.9068 283.453H195.093C199.659 283.453 203.36 279.752 203.36 275.186V101.586C203.36 97.0209 199.659 93.3198 195.093 93.3198Z" fill="white"/>
5
+ </g>
6
+ <path d="M107.467 118.12H64.48C61.7407 118.12 59.52 120.34 59.52 123.08C59.52 125.819 61.7407 128.04 64.48 128.04H107.467C110.206 128.04 112.427 125.819 112.427 123.08C112.427 120.34 110.206 118.12 107.467 118.12Z" fill="#A2D7FC"/>
7
+ <path d="M137.227 139.613H64.48C61.7407 139.613 59.52 141.834 59.52 144.573C59.52 147.312 61.7407 149.533 64.48 149.533H137.227C139.966 149.533 142.187 147.312 142.187 144.573C142.187 141.834 139.966 139.613 137.227 139.613Z" fill="#DDF0FE"/>
8
+ <path d="M107.467 162.76H64.48C61.7407 162.76 59.52 164.981 59.52 167.72C59.52 170.459 61.7407 172.68 64.48 172.68H107.467C110.206 172.68 112.427 170.459 112.427 167.72C112.427 164.981 110.206 162.76 107.467 162.76Z" fill="#A2D7FC"/>
9
+ <path d="M137.227 184.253H64.48C61.7407 184.253 59.52 186.474 59.52 189.213C59.52 191.953 61.7407 194.173 64.48 194.173H137.227C139.966 194.173 142.187 191.953 142.187 189.213C142.187 186.474 139.966 184.253 137.227 184.253Z" fill="#DDF0FE"/>
10
+ <path d="M107.467 207.4H64.48C61.7407 207.4 59.52 209.621 59.52 212.36C59.52 215.099 61.7407 217.32 64.48 217.32H107.467C110.206 217.32 112.427 215.099 112.427 212.36C112.427 209.621 110.206 207.4 107.467 207.4Z" fill="#A2D7FC"/>
11
+ <path d="M137.227 228.893H64.48C61.7407 228.893 59.52 231.114 59.52 233.853C59.52 236.592 61.7407 238.813 64.48 238.813H137.227C139.966 238.813 142.187 236.592 142.187 233.853C142.187 231.114 139.966 228.893 137.227 228.893Z" fill="#DDF0FE"/>
12
+ <g filter="url(#filter1_d_577_1090)">
13
+ <path d="M195.093 9H52.9068C48.3412 9 44.6401 12.7011 44.6401 17.2667V66.8667C44.6401 71.4322 48.3412 75.1333 52.9068 75.1333H195.093C199.659 75.1333 203.36 71.4322 203.36 66.8667V17.2667C203.36 12.7011 199.659 9 195.093 9Z" fill="#0886DE"/>
14
+ </g>
15
+ <path d="M107.467 27.1865H64.48C61.7407 27.1865 59.52 29.4072 59.52 32.1465C59.52 34.8859 61.7407 37.1065 64.48 37.1065H107.467C110.206 37.1065 112.427 34.8859 112.427 32.1465C112.427 29.4072 110.206 27.1865 107.467 27.1865Z" fill="#A2D7FC"/>
16
+ <path d="M137.227 48.6799H64.48C61.7407 48.6799 59.52 50.9006 59.52 53.6399C59.52 56.3793 61.7407 58.5999 64.48 58.5999H137.227C139.966 58.5999 142.187 56.3793 142.187 53.6399C142.187 50.9006 139.966 48.6799 137.227 48.6799Z" fill="white"/>
17
+ <defs>
18
+ <filter id="filter0_d_577_1090" x="38.6401" y="84.3198" width="170.72" height="202.133" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
19
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
20
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
21
+ <feOffset dy="-3"/>
22
+ <feGaussianBlur stdDeviation="3"/>
23
+ <feColorMatrix type="matrix" values="0 0 0 0 0.788235 0 0 0 0 0.803922 0 0 0 0 0.85098 0 0 0 0.349 0"/>
24
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_577_1090"/>
25
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_577_1090" result="shape"/>
26
+ </filter>
27
+ <filter id="filter1_d_577_1090" x="38.6401" y="0" width="170.72" height="78.1333" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
28
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
29
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
30
+ <feOffset dy="-3"/>
31
+ <feGaussianBlur stdDeviation="3"/>
32
+ <feColorMatrix type="matrix" values="0 0 0 0 0.788235 0 0 0 0 0.803922 0 0 0 0 0.85098 0 0 0 0.349 0"/>
33
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_577_1090"/>
34
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_577_1090" result="shape"/>
35
+ </filter>
36
+ </defs>
37
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M19.3125 1.8125H2.6875C2.20425 1.8125 1.8125 2.20425 1.8125 2.6875V19.3125C1.8125 19.7957 2.20425 20.1875 2.6875 20.1875H19.3125C19.7957 20.1875 20.1875 19.7957 20.1875 19.3125V2.6875C20.1875 2.20425 19.7957 1.8125 19.3125 1.8125Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M11 1.8125V20.1875" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M20.1875 11H1.8125" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
2
+ <path d="M12 14l9-5-9-5-9 5 9 5z"/>
3
+ <path d="M12 14l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14z"/>
4
+ <path stroke-linecap="round" stroke-linejoin="round" d="M12 14l9-5-9-5-9 5 9 5zm0 0l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14zm-4 6v-7.5l4-2.222"/>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
2
+ <path stroke-linecap="round" stroke-linejoin="round" d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true">
2
+ <path stroke-linecap="round" stroke-linejoin="round" d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"/>
3
+ </svg>