avo 2.44.0 → 3.0.2

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 (411) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +28 -26
  3. data/Gemfile.lock +231 -161
  4. data/README.md +19 -27
  5. data/Rakefile +2 -0
  6. data/app/assets/stylesheets/avo.base.css +1 -1
  7. data/app/assets/svgs/font.svg +1 -0
  8. data/app/assets/svgs/triangle-up.svg +1 -0
  9. data/app/components/avo/actions_component.html.erb +19 -5
  10. data/app/components/avo/actions_component.rb +39 -19
  11. data/app/components/avo/asset_manager/javascript_component.html.erb +3 -0
  12. data/app/components/avo/asset_manager/javascript_component.rb +13 -0
  13. data/app/components/avo/asset_manager/stylesheet_component.html.erb +3 -0
  14. data/app/components/avo/asset_manager/stylesheet_component.rb +13 -0
  15. data/app/components/avo/base_component.rb +15 -12
  16. data/app/components/avo/button_component.rb +20 -3
  17. data/app/components/avo/empty_state_component.rb +1 -1
  18. data/app/components/avo/field_wrapper_component.html.erb +1 -1
  19. data/app/components/avo/field_wrapper_component.rb +9 -15
  20. data/app/components/avo/fields/area_field/edit_component.html.erb +2 -2
  21. data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +75 -79
  22. data/app/components/avo/fields/belongs_to_field/edit_component.rb +7 -7
  23. data/app/components/avo/fields/belongs_to_field/index_component.html.erb +1 -1
  24. data/app/components/avo/fields/belongs_to_field/show_component.rb +2 -2
  25. data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -1
  26. data/app/components/avo/fields/boolean_field/index_component.html.erb +1 -1
  27. data/app/components/avo/fields/boolean_group_field/edit_component.html.erb +3 -3
  28. data/app/components/avo/fields/common/badge_viewer_component.rb +1 -1
  29. data/app/components/avo/fields/common/boolean_check_component.html.erb +1 -12
  30. data/app/components/avo/fields/common/boolean_check_component.rb +2 -1
  31. data/app/components/avo/fields/common/boolean_group_component.html.erb +2 -2
  32. data/app/components/avo/fields/common/files/view_type/grid_item_component.rb +2 -2
  33. data/app/components/avo/fields/common/gravatar_viewer_component.html.erb +1 -1
  34. data/app/components/avo/fields/common/gravatar_viewer_component.rb +2 -2
  35. data/app/components/avo/fields/common/heading_component.html.erb +3 -8
  36. data/app/components/avo/fields/common/heading_component.rb +1 -3
  37. data/app/components/avo/fields/common/key_value_component.html.erb +2 -2
  38. data/app/components/avo/fields/common/key_value_component.rb +2 -2
  39. data/app/components/avo/fields/common/progress_bar_component.rb +3 -9
  40. data/app/components/avo/fields/common/status_viewer_component.html.erb +3 -0
  41. data/app/components/avo/fields/edit_component.rb +2 -2
  42. data/app/components/avo/fields/external_image_field/index_component.html.erb +1 -1
  43. data/app/components/avo/fields/file_field/index_component.html.erb +2 -2
  44. data/app/components/avo/fields/gravatar_field/index_component.html.erb +1 -1
  45. data/app/components/avo/fields/has_one_field/index_component.html.erb +1 -1
  46. data/app/components/avo/fields/has_one_field/show_component.html.erb +3 -2
  47. data/app/components/avo/fields/has_one_field/show_component.rb +2 -2
  48. data/app/components/avo/fields/heading_field/edit_component.html.erb +1 -1
  49. data/app/components/avo/fields/heading_field/show_component.html.erb +1 -1
  50. data/app/components/avo/fields/id_field/index_component.html.erb +1 -1
  51. data/app/components/avo/fields/index_component.rb +6 -6
  52. data/app/components/avo/fields/location_field/edit_component.html.erb +12 -10
  53. data/app/components/avo/fields/preview_field/index_component.html.erb +10 -0
  54. data/app/components/avo/fields/preview_field/index_component.rb +4 -0
  55. data/app/components/avo/fields/select_field/edit_component.html.erb +1 -1
  56. data/app/components/avo/fields/show_component.rb +5 -2
  57. data/app/components/avo/fields/text_field/index_component.html.erb +1 -1
  58. data/app/components/avo/fields/trix_field/edit_component.html.erb +2 -2
  59. data/app/components/avo/fields/trix_field/edit_component.rb +1 -1
  60. data/app/components/avo/fields/trix_field/show_component.html.erb +1 -1
  61. data/app/components/avo/filters_component.html.erb +9 -3
  62. data/app/components/avo/filters_component.rb +4 -4
  63. data/app/components/avo/index/field_wrapper_component.rb +1 -13
  64. data/app/components/avo/index/grid_item_component.html.erb +13 -36
  65. data/app/components/avo/index/grid_item_component.rb +43 -16
  66. data/app/components/avo/index/resource_controls_component.html.erb +3 -81
  67. data/app/components/avo/index/resource_controls_component.rb +125 -18
  68. data/app/components/avo/index/resource_grid_component.html.erb +5 -3
  69. data/app/components/avo/index/resource_grid_component.rb +5 -2
  70. data/app/components/avo/index/resource_map_component.html.erb +1 -1
  71. data/app/components/avo/index/resource_map_component.rb +3 -3
  72. data/app/components/avo/index/resource_table_component.html.erb +5 -4
  73. data/app/components/avo/index/resource_table_component.rb +24 -7
  74. data/app/components/avo/index/table_row_component.html.erb +9 -5
  75. data/app/components/avo/index/table_row_component.rb +3 -2
  76. data/app/components/avo/items/panel_component.html.erb +25 -0
  77. data/app/components/avo/items/panel_component.rb +43 -0
  78. data/app/components/avo/items/switcher_component.html.erb +17 -0
  79. data/app/components/avo/items/switcher_component.rb +79 -0
  80. data/app/components/avo/items/visible_items_component.html.erb +10 -0
  81. data/app/components/avo/items/visible_items_component.rb +11 -0
  82. data/app/components/avo/modal_component.html.erb +3 -4
  83. data/app/components/avo/paginator_component.html.erb +29 -40
  84. data/app/components/avo/paginator_component.rb +23 -5
  85. data/app/components/avo/panel_component.html.erb +7 -5
  86. data/app/components/avo/referrer_params_component.html.erb +1 -1
  87. data/app/components/avo/resource_component.rb +205 -26
  88. data/app/components/avo/resource_sidebar_component.html.erb +15 -18
  89. data/app/components/avo/resource_sidebar_component.rb +5 -3
  90. data/app/components/avo/sidebar/link_component.rb +1 -1
  91. data/app/components/avo/sidebar_component.html.erb +10 -3
  92. data/app/components/avo/sidebar_component.rb +5 -3
  93. data/app/components/avo/sidebar_profile_component.html.erb +18 -12
  94. data/app/components/avo/tab_group_component.html.erb +14 -8
  95. data/app/components/avo/tab_group_component.rb +1 -6
  96. data/app/components/avo/tab_switcher_component.html.erb +17 -40
  97. data/app/components/avo/tab_switcher_component.rb +6 -41
  98. data/app/components/avo/views/resource_edit_component.html.erb +23 -84
  99. data/app/components/avo/views/resource_edit_component.rb +20 -19
  100. data/app/components/avo/views/resource_index_component.html.erb +42 -47
  101. data/app/components/avo/views/resource_index_component.rb +76 -13
  102. data/app/components/avo/views/resource_show_component.html.erb +16 -177
  103. data/app/components/avo/views/resource_show_component.rb +16 -10
  104. data/app/controllers/avo/actions_controller.rb +29 -31
  105. data/app/controllers/avo/application_controller.rb +119 -181
  106. data/app/controllers/avo/associations_controller.rb +34 -43
  107. data/app/controllers/avo/attachments_controller.rb +4 -4
  108. data/app/controllers/avo/base_controller.rb +145 -98
  109. data/app/controllers/avo/debug_controller.rb +17 -5
  110. data/app/controllers/avo/home_controller.rb +1 -1
  111. data/app/controllers/avo/search_controller.rb +56 -50
  112. data/app/controllers/concerns/avo/initializes_avo.rb +22 -0
  113. data/app/helpers/avo/application_helper.rb +18 -8
  114. data/app/helpers/avo/resources_helper.rb +1 -1
  115. data/app/helpers/avo/url_helpers.rb +28 -12
  116. data/app/javascript/avo.base.js +1 -0
  117. data/app/javascript/js/controllers/action_controller.js +3 -1
  118. data/app/javascript/js/controllers/actions_overflow_controller.js +62 -0
  119. data/app/javascript/js/controllers/fields/reload_belongs_to_field_controller.js +7 -7
  120. data/app/javascript/js/controllers/filter_controller.js +1 -1
  121. data/app/javascript/js/controllers/input_autofocus_controller.js +12 -0
  122. data/app/javascript/js/controllers/preview_controller.js +24 -0
  123. data/app/javascript/js/controllers/search_controller.js +4 -2
  124. data/app/javascript/js/controllers/self_destroy_controller.js +7 -0
  125. data/app/javascript/js/controllers/toggle_controller.js +48 -0
  126. data/app/javascript/js/controllers.js +11 -5
  127. data/app/javascript/js/custom-stream-actions.js +15 -0
  128. data/app/views/avo/actions/show.html.erb +9 -5
  129. data/app/views/avo/associations/new.html.erb +2 -2
  130. data/app/views/avo/base/_new_via_belongs_to.html.erb +1 -1
  131. data/app/views/avo/base/close_modal_and_reload_field.turbo_stream.erb +3 -3
  132. data/app/views/avo/base/create_fail_action.turbo_stream.erb +2 -2
  133. data/app/views/avo/base/edit.html.erb +1 -1
  134. data/app/views/avo/base/index.html.erb +4 -3
  135. data/app/views/avo/base/new.html.erb +2 -1
  136. data/app/views/avo/base/preview.html.erb +19 -0
  137. data/app/views/avo/base/show.html.erb +2 -2
  138. data/app/views/avo/debug/_valid_indicator.html.erb +9 -0
  139. data/app/views/avo/debug/report.html.erb +32 -17
  140. data/app/views/avo/debug/{index.html.erb → status.html.erb} +31 -14
  141. data/app/views/avo/partials/_custom_tools_alert.html.erb +2 -2
  142. data/app/views/avo/partials/_flash_alerts.turbo_stream.erb +1 -1
  143. data/app/views/avo/partials/_footer.html.erb +1 -1
  144. data/app/views/avo/partials/_javascript.html.erb +5 -0
  145. data/app/views/avo/partials/_logo.html.erb +1 -1
  146. data/app/views/avo/partials/_navbar.html.erb +3 -5
  147. data/app/views/avo/partials/_resource_search.html.erb +1 -0
  148. data/app/views/avo/partials/_table_header.html.erb +5 -11
  149. data/app/views/layouts/avo/application.html.erb +5 -4
  150. data/avo.gemspec +10 -8
  151. data/bin/dev +3 -1
  152. data/bin/prod +0 -0
  153. data/config/i18n-tasks.yml +1 -1
  154. data/config/initializers/pagy.rb +2 -0
  155. data/config/master.key +1 -0
  156. data/config/routes.rb +7 -10
  157. data/db/factories.rb +6 -0
  158. data/lib/avo/asset_manager.rb +30 -0
  159. data/lib/avo/base_action.rb +78 -60
  160. data/lib/avo/base_resource.rb +286 -225
  161. data/lib/avo/base_resource_tool.rb +9 -16
  162. data/lib/avo/concerns/borrow_items_holder.rb +35 -0
  163. data/lib/avo/concerns/breadcrumbs.rb +2 -2
  164. data/lib/avo/concerns/{can_replace_fields.rb → can_replace_items.rb} +5 -9
  165. data/lib/avo/concerns/filters_session_handler.rb +7 -5
  166. data/lib/avo/concerns/has_controls.rb +37 -0
  167. data/lib/avo/concerns/has_description.rb +23 -0
  168. data/lib/avo/concerns/has_helpers.rb +18 -0
  169. data/lib/avo/concerns/has_item_type.rb +42 -0
  170. data/lib/avo/concerns/has_items.rb +339 -0
  171. data/lib/avo/concerns/hydration.rb +17 -0
  172. data/lib/avo/concerns/is_resource_item.rb +16 -36
  173. data/lib/avo/concerns/is_visible.rb +15 -0
  174. data/lib/avo/concerns/model_class_constantized.rb +0 -2
  175. data/lib/avo/concerns/pagination.rb +53 -0
  176. data/lib/avo/concerns/visible_in_different_views.rb +132 -0
  177. data/lib/avo/concerns/visible_items.rb +7 -38
  178. data/lib/avo/configuration/branding.rb +0 -12
  179. data/lib/avo/configuration.rb +28 -11
  180. data/lib/avo/current.rb +39 -0
  181. data/lib/avo/dsl/field_parser.rb +3 -3
  182. data/lib/avo/dynamic_router.rb +18 -3
  183. data/lib/avo/engine.rb +35 -30
  184. data/lib/avo/error_manager.rb +25 -0
  185. data/lib/avo/execution_context.rb +14 -15
  186. data/lib/avo/fields/base_field.rb +84 -121
  187. data/lib/avo/fields/belongs_to_field.rb +19 -23
  188. data/lib/avo/fields/concerns/file_authorization.rb +2 -2
  189. data/lib/avo/fields/concerns/handles_field_args.rb +49 -0
  190. data/lib/avo/fields/concerns/has_default.rb +1 -5
  191. data/lib/avo/fields/concerns/has_field_name.rb +22 -0
  192. data/lib/avo/fields/concerns/has_html_attributes.rb +112 -0
  193. data/lib/avo/fields/concerns/is_disabled.rb +1 -5
  194. data/lib/avo/fields/concerns/is_readonly.rb +1 -5
  195. data/lib/avo/fields/concerns/is_required.rb +5 -7
  196. data/lib/avo/fields/concerns/is_searchable.rb +15 -0
  197. data/lib/avo/fields/concerns/use_resource.rb +5 -1
  198. data/lib/avo/fields/concerns/use_view_components.rb +45 -0
  199. data/lib/avo/fields/country_field.rb +4 -0
  200. data/lib/avo/fields/date_time_field.rb +1 -5
  201. data/lib/avo/fields/external_image_field.rb +2 -2
  202. data/lib/avo/fields/field_manager.rb +55 -0
  203. data/lib/avo/fields/file_field.rb +2 -2
  204. data/lib/avo/fields/gravatar_field.rb +2 -2
  205. data/lib/avo/fields/has_and_belongs_to_many_field.rb +1 -2
  206. data/lib/avo/fields/has_base_field.rb +21 -17
  207. data/lib/avo/fields/has_many_field.rb +5 -2
  208. data/lib/avo/fields/has_one_field.rb +8 -12
  209. data/lib/avo/fields/heading_field.rb +9 -14
  210. data/lib/avo/fields/hidden_field.rb +1 -1
  211. data/lib/avo/fields/id_field.rb +3 -3
  212. data/lib/avo/fields/location_field.rb +10 -10
  213. data/lib/avo/fields/password_field.rb +1 -1
  214. data/lib/avo/fields/preview_field.rb +14 -0
  215. data/lib/avo/fields/select_field.rb +12 -8
  216. data/lib/avo/fields/status_field.rb +7 -1
  217. data/lib/avo/fields/text_field.rb +2 -2
  218. data/lib/avo/filters/base_filter.rb +9 -4
  219. data/lib/avo/html/builder.rb +8 -8
  220. data/lib/avo/item_grapher.rb +78 -0
  221. data/lib/avo/licensing/h_q.rb +11 -73
  222. data/lib/avo/licensing/license.rb +5 -1
  223. data/lib/avo/licensing/license_manager.rb +1 -1
  224. data/lib/avo/licensing/pro_license.rb +1 -7
  225. data/lib/avo/loaders/fields_loader.rb +7 -1
  226. data/lib/avo/plugin.rb +36 -0
  227. data/lib/avo/plugin_manager.rb +56 -0
  228. data/lib/avo/prefixed_test_helpers.rb +20 -0
  229. data/lib/avo/reloader.rb +3 -0
  230. data/lib/avo/resources/controls/actions_list.rb +7 -12
  231. data/lib/avo/resources/controls/attach_button.rb +15 -0
  232. data/lib/avo/resources/controls/back_button.rb +1 -1
  233. data/lib/avo/resources/controls/base_control.rb +15 -49
  234. data/lib/avo/resources/controls/create_button.rb +15 -0
  235. data/lib/avo/resources/controls/delete_button.rb +5 -1
  236. data/lib/avo/resources/controls/detach_button.rb +4 -1
  237. data/lib/avo/resources/controls/edit_button.rb +4 -1
  238. data/lib/avo/resources/controls/order_controls.rb +8 -0
  239. data/lib/avo/resources/controls/save_button.rb +13 -0
  240. data/lib/avo/resources/controls/show_button.rb +15 -0
  241. data/lib/avo/resources/items/holder.rb +96 -0
  242. data/lib/avo/resources/items/item_group.rb +44 -0
  243. data/lib/avo/resources/items/main_panel.rb +12 -0
  244. data/lib/avo/resources/items/panel.rb +2 -0
  245. data/lib/avo/resources/items/row.rb +42 -0
  246. data/lib/avo/resources/items/sidebar.rb +46 -0
  247. data/lib/avo/resources/items/tab.rb +54 -0
  248. data/lib/avo/resources/items/tab_group.rb +62 -0
  249. data/lib/avo/resources/resource_manager.rb +179 -0
  250. data/lib/avo/services/authorization_service.rb +11 -110
  251. data/lib/avo/services/debug_service.rb +93 -0
  252. data/lib/avo/services/encryption_service.rb +8 -12
  253. data/lib/avo/services/telemetry_service.rb +85 -0
  254. data/lib/avo/test_helpers.rb +362 -0
  255. data/lib/avo/tools/tool_manager.rb +30 -0
  256. data/lib/avo/version.rb +1 -1
  257. data/lib/avo/view_inquirer.rb +36 -0
  258. data/lib/avo.rb +109 -24
  259. data/lib/generators/avo/action_generator.rb +8 -8
  260. data/lib/generators/avo/card_generator.rb +27 -0
  261. data/lib/generators/avo/concerns/parent_controller.rb +20 -0
  262. data/lib/generators/avo/controller_generator.rb +3 -0
  263. data/lib/generators/avo/eject_generator.rb +180 -15
  264. data/lib/generators/avo/field_generator.rb +49 -2
  265. data/lib/generators/avo/filter_generator.rb +8 -8
  266. data/lib/generators/avo/js/install_generator.rb +2 -2
  267. data/lib/generators/avo/resource_generator.rb +12 -9
  268. data/lib/generators/avo/scope_generator.rb +15 -0
  269. data/lib/generators/avo/tailwindcss/install_generator.rb +70 -26
  270. data/lib/generators/avo/templates/action.tt +8 -6
  271. data/lib/generators/avo/templates/cards/chartkick_card.tt +1 -1
  272. data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +1 -1
  273. data/lib/generators/avo/templates/cards/metric_card.tt +1 -1
  274. data/lib/generators/avo/templates/cards/metric_card_sample.tt +1 -1
  275. data/lib/generators/avo/templates/cards/partial_card.tt +1 -1
  276. data/lib/generators/avo/templates/cards/partial_card_sample.tt +1 -1
  277. data/lib/generators/avo/templates/dashboards/dashboard.tt +5 -3
  278. data/lib/generators/avo/templates/field/%singular_name%_field.rb.tt +1 -1
  279. data/lib/generators/avo/templates/filters/boolean_filter.tt +1 -1
  280. data/lib/generators/avo/templates/filters/multiple_select_filter.tt +1 -1
  281. data/lib/generators/avo/templates/filters/select_filter.tt +1 -1
  282. data/lib/generators/avo/templates/filters/text_filter.tt +1 -1
  283. data/lib/generators/avo/templates/initializer/avo.tt +7 -3
  284. data/lib/generators/avo/templates/locales/avo.ar.yml +7 -6
  285. data/lib/generators/avo/templates/locales/avo.en.yml +6 -3
  286. data/lib/generators/avo/templates/locales/avo.es.yml +127 -0
  287. data/lib/generators/avo/templates/locales/avo.fr.yml +3 -0
  288. data/lib/generators/avo/templates/locales/avo.nb.yml +3 -0
  289. data/lib/generators/avo/templates/locales/avo.nn.yml +3 -0
  290. data/lib/generators/avo/templates/locales/avo.pt-BR.yml +3 -0
  291. data/lib/generators/avo/templates/locales/avo.pt.yml +3 -0
  292. data/lib/generators/avo/templates/locales/avo.ro.yml +8 -5
  293. data/lib/generators/avo/templates/locales/avo.tr.yml +3 -0
  294. data/lib/generators/avo/templates/resource/controller.tt +1 -1
  295. data/lib/generators/avo/templates/resource/resource.tt +7 -7
  296. data/lib/generators/avo/templates/resource_tools/partial.tt +2 -2
  297. data/lib/generators/avo/templates/resource_tools/resource_tool.tt +1 -1
  298. data/lib/generators/avo/templates/scope.tt +6 -0
  299. data/lib/generators/avo/templates/tailwindcss/Procfile.dev +1 -1
  300. data/lib/generators/avo/templates/tailwindcss/avo.tailwind.css +5 -3
  301. data/lib/generators/avo/templates/tailwindcss/tailwind.config.js +11 -0
  302. data/lib/tasks/avo_tasks.rake +72 -4
  303. data/public/avo-assets/avo.base.css +1893 -1187
  304. data/public/avo-assets/avo.base.js +217 -305
  305. data/public/avo-assets/avo.base.js.map +3 -3
  306. data/public/avo-assets/avo.css +9744 -0
  307. data/public/avo-assets/avo.js +513 -0
  308. data/public/avo-assets/avo.js.map +7 -0
  309. data/tailwind.custom.js +47 -0
  310. data/tailwind.preset.js +152 -0
  311. metadata +107 -114
  312. data/app/components/avo/card_component.html.erb +0 -46
  313. data/app/components/avo/card_component.rb +0 -25
  314. data/app/components/avo/dashboards/divider_component.html.erb +0 -9
  315. data/app/components/avo/dashboards/divider_component.rb +0 -19
  316. data/app/components/avo/fields/belongs_to_field/autocomplete_component.html.erb +0 -47
  317. data/app/components/avo/fields/belongs_to_field/autocomplete_component.rb +0 -95
  318. data/app/components/avo/fields/tags_field/edit_component.html.erb +0 -35
  319. data/app/components/avo/fields/tags_field/edit_component.rb +0 -4
  320. data/app/components/avo/fields/tags_field/index_component.html.erb +0 -10
  321. data/app/components/avo/fields/tags_field/index_component.rb +0 -9
  322. data/app/components/avo/fields/tags_field/show_component.html.erb +0 -7
  323. data/app/components/avo/fields/tags_field/show_component.rb +0 -5
  324. data/app/components/avo/fields/tags_field/tag_component.html.erb +0 -9
  325. data/app/components/avo/fields/tags_field/tag_component.rb +0 -11
  326. data/app/components/avo/index/ordering/base_component.rb +0 -9
  327. data/app/components/avo/index/ordering/button_component.html.erb +0 -11
  328. data/app/components/avo/index/ordering/button_component.rb +0 -23
  329. data/app/components/avo/index/ordering/buttons_component.html.erb +0 -32
  330. data/app/components/avo/index/ordering/buttons_component.rb +0 -47
  331. data/app/components/avo/item_switcher_component.html.erb +0 -27
  332. data/app/components/avo/item_switcher_component.rb +0 -48
  333. data/app/components/avo/sidebar/item_switcher_component.html.erb +0 -16
  334. data/app/components/avo/sidebar/item_switcher_component.rb +0 -15
  335. data/app/controllers/avo/dashboards/cards_controller.rb +0 -37
  336. data/app/controllers/avo/dashboards_controller.rb +0 -22
  337. data/app/controllers/avo/reorder_controller.rb +0 -25
  338. data/app/javascript/js/controllers/base_controller.js +0 -22
  339. data/app/javascript/js/controllers/fields/tags_field_controller.js +0 -127
  340. data/app/javascript/js/controllers/toggle_panel_controller.js +0 -18
  341. data/app/views/avo/dashboards/cards/_chartkick_card.html.erb +0 -3
  342. data/app/views/avo/dashboards/cards/_metric_card.html.erb +0 -5
  343. data/app/views/avo/dashboards/cards/chartkick_missing.html.erb +0 -14
  344. data/app/views/avo/dashboards/cards/show.html.erb +0 -3
  345. data/app/views/avo/dashboards/show.html.erb +0 -38
  346. data/app/views/avo/partials/_global_search.html.erb +0 -19
  347. data/app/views/avo/sidebar/_license_warnings.html.erb +0 -6
  348. data/lib/avo/app.rb +0 -237
  349. data/lib/avo/base_card.rb +0 -161
  350. data/lib/avo/concerns/fetches_things.rb +0 -150
  351. data/lib/avo/concerns/handles_field_args.rb +0 -47
  352. data/lib/avo/concerns/has_editable_controls.rb +0 -34
  353. data/lib/avo/concerns/has_fields.rb +0 -334
  354. data/lib/avo/concerns/has_html_attributes.rb +0 -108
  355. data/lib/avo/concerns/policy_helpers.rb +0 -31
  356. data/lib/avo/concerns/visible_in_dashboard.rb +0 -31
  357. data/lib/avo/dashboards/base_dashboard.rb +0 -89
  358. data/lib/avo/dashboards/base_divider.rb +0 -35
  359. data/lib/avo/dashboards/chartkick_card.rb +0 -77
  360. data/lib/avo/dashboards/dashboard_card.rb +0 -6
  361. data/lib/avo/dashboards/metric_card.rb +0 -9
  362. data/lib/avo/dashboards/partial_card.rb +0 -7
  363. data/lib/avo/fields/field_extensions/has_field_name.rb +0 -19
  364. data/lib/avo/fields/field_extensions/visible_in_different_views.rb +0 -111
  365. data/lib/avo/fields/tags_field.rb +0 -102
  366. data/lib/avo/grid_collector.rb +0 -42
  367. data/lib/avo/hosts/association_scope_host.rb +0 -8
  368. data/lib/avo/hosts/base_host.rb +0 -25
  369. data/lib/avo/hosts/card_visibility.rb +0 -20
  370. data/lib/avo/hosts/dashboard_card.rb +0 -22
  371. data/lib/avo/hosts/dashboard_visibility.rb +0 -19
  372. data/lib/avo/hosts/ordering.rb +0 -22
  373. data/lib/avo/hosts/record_host.rb +0 -7
  374. data/lib/avo/hosts/resource_record_host.rb +0 -7
  375. data/lib/avo/hosts/resource_view_record_host.rb +0 -7
  376. data/lib/avo/hosts/search_scope_host.rb +0 -7
  377. data/lib/avo/hosts/view_record_host.rb +0 -7
  378. data/lib/avo/hosts/visibility_host.rb +0 -12
  379. data/lib/avo/items_holder.rb +0 -96
  380. data/lib/avo/main_panel.rb +0 -3
  381. data/lib/avo/menu/base_item.rb +0 -25
  382. data/lib/avo/menu/builder.rb +0 -82
  383. data/lib/avo/menu/dashboard.rb +0 -22
  384. data/lib/avo/menu/group.rb +0 -2
  385. data/lib/avo/menu/link.rb +0 -6
  386. data/lib/avo/menu/menu.rb +0 -2
  387. data/lib/avo/menu/resource.rb +0 -22
  388. data/lib/avo/menu/section.rb +0 -2
  389. data/lib/avo/panel.rb +0 -24
  390. data/lib/avo/panel_builder.rb +0 -25
  391. data/lib/avo/resources/controls/action.rb +0 -38
  392. data/lib/avo/resources/controls/execution_context.rb +0 -58
  393. data/lib/avo/resources/controls/items_holder.rb +0 -19
  394. data/lib/avo/resources/controls/link_to.rb +0 -27
  395. data/lib/avo/row.rb +0 -26
  396. data/lib/avo/row_builder.rb +0 -24
  397. data/lib/avo/services/authorization_clients/nil_client.rb +0 -37
  398. data/lib/avo/services/authorization_clients/pundit_client.rb +0 -51
  399. data/lib/avo/sidebar.rb +0 -30
  400. data/lib/avo/sidebar_builder.rb +0 -24
  401. data/lib/avo/tab.rb +0 -72
  402. data/lib/avo/tab_builder.rb +0 -25
  403. data/lib/avo/tab_group.rb +0 -42
  404. data/lib/avo/tab_group_builder.rb +0 -43
  405. data/lib/avo/tools_manager.rb +0 -11
  406. data/lib/generators/avo/card/chartkick_generator.rb +0 -18
  407. data/lib/generators/avo/card/metric_generator.rb +0 -18
  408. data/lib/generators/avo/card/partial_generator.rb +0 -19
  409. data/lib/generators/avo/templates/js/avo.custom.js +0 -2
  410. data/lib/generators/avo/templates/standalone_action.tt +0 -8
  411. /data/app/assets/stylesheets/css/{tags.css → fields/tags.css} +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.44.0
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Marin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-11-03 00:00:00.000000000 Z
12
+ date: 2023-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -17,28 +17,42 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '6.0'
20
+ version: '6.1'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '6.0'
27
+ version: '6.1'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activesupport
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '6.1'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '6.1'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: actionview
30
44
  requirement: !ruby/object:Gem::Requirement
31
45
  requirements:
32
46
  - - ">="
33
47
  - !ruby/object:Gem::Version
34
- version: '6.0'
48
+ version: '6.1'
35
49
  type: :runtime
36
50
  prerelease: false
37
51
  version_requirements: !ruby/object:Gem::Requirement
38
52
  requirements:
39
53
  - - ">="
40
54
  - !ruby/object:Gem::Version
41
- version: '6.0'
55
+ version: '6.1'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: pagy
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -59,14 +73,14 @@ dependencies:
59
73
  requirements:
60
74
  - - ">="
61
75
  - !ruby/object:Gem::Version
62
- version: 2.6.2
76
+ version: 2.6.12
63
77
  type: :runtime
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
81
  - - ">="
68
82
  - !ruby/object:Gem::Version
69
- version: 2.6.2
83
+ version: 2.6.12
70
84
  - !ruby/object:Gem::Dependency
71
85
  name: httparty
72
86
  requirement: !ruby/object:Gem::Requirement
@@ -101,14 +115,14 @@ dependencies:
101
115
  requirements:
102
116
  - - ">="
103
117
  - !ruby/object:Gem::Version
104
- version: 2.54.0
118
+ version: 3.7.0
105
119
  type: :runtime
106
120
  prerelease: false
107
121
  version_requirements: !ruby/object:Gem::Requirement
108
122
  requirements:
109
123
  - - ">="
110
124
  - !ruby/object:Gem::Version
111
- version: 2.54.0
125
+ version: 3.7.0
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: turbo-rails
114
128
  requirement: !ruby/object:Gem::Requirement
@@ -228,6 +242,7 @@ files:
228
242
  - app/assets/stylesheets/css/fields/code.css
229
243
  - app/assets/stylesheets/css/fields/progress.css
230
244
  - app/assets/stylesheets/css/fields/status.css
245
+ - app/assets/stylesheets/css/fields/tags.css
231
246
  - app/assets/stylesheets/css/fields/trix.css
232
247
  - app/assets/stylesheets/css/fonts.css
233
248
  - app/assets/stylesheets/css/loader.css
@@ -236,7 +251,6 @@ files:
236
251
  - app/assets/stylesheets/css/search.css
237
252
  - app/assets/stylesheets/css/sidebar.css
238
253
  - app/assets/stylesheets/css/spinner.css
239
- - app/assets/stylesheets/css/tags.css
240
254
  - app/assets/stylesheets/css/tailwindcss/base.css
241
255
  - app/assets/stylesheets/css/tailwindcss/components.css
242
256
  - app/assets/stylesheets/css/tailwindcss/utilities.css
@@ -269,6 +283,7 @@ files:
269
283
  - app/assets/svgs/failed_to_load.svg
270
284
  - app/assets/svgs/filter.svg
271
285
  - app/assets/svgs/fire.svg
286
+ - app/assets/svgs/font.svg
272
287
  - app/assets/svgs/game-board.svg
273
288
  - app/assets/svgs/globe.svg
274
289
  - app/assets/svgs/grid-empty-state.svg
@@ -1331,6 +1346,7 @@ files:
1331
1346
  - app/assets/svgs/tools.svg
1332
1347
  - app/assets/svgs/trash-sm.svg
1333
1348
  - app/assets/svgs/trash.svg
1349
+ - app/assets/svgs/triangle-up.svg
1334
1350
  - app/assets/svgs/user-circle.svg
1335
1351
  - app/assets/svgs/view-grid-add.svg
1336
1352
  - app/assets/svgs/view-grid.svg
@@ -1341,14 +1357,14 @@ files:
1341
1357
  - app/components/avo/actions_component.rb
1342
1358
  - app/components/avo/alert_component.html.erb
1343
1359
  - app/components/avo/alert_component.rb
1360
+ - app/components/avo/asset_manager/javascript_component.html.erb
1361
+ - app/components/avo/asset_manager/javascript_component.rb
1362
+ - app/components/avo/asset_manager/stylesheet_component.html.erb
1363
+ - app/components/avo/asset_manager/stylesheet_component.rb
1344
1364
  - app/components/avo/base_component.rb
1345
1365
  - app/components/avo/blank_field_component.html.erb
1346
1366
  - app/components/avo/blank_field_component.rb
1347
1367
  - app/components/avo/button_component.rb
1348
- - app/components/avo/card_component.html.erb
1349
- - app/components/avo/card_component.rb
1350
- - app/components/avo/dashboards/divider_component.html.erb
1351
- - app/components/avo/dashboards/divider_component.rb
1352
1368
  - app/components/avo/empty_state_component.html.erb
1353
1369
  - app/components/avo/empty_state_component.rb
1354
1370
  - app/components/avo/field_wrapper_component.html.erb
@@ -1361,8 +1377,6 @@ files:
1361
1377
  - app/components/avo/fields/badge_field/index_component.rb
1362
1378
  - app/components/avo/fields/badge_field/show_component.html.erb
1363
1379
  - app/components/avo/fields/badge_field/show_component.rb
1364
- - app/components/avo/fields/belongs_to_field/autocomplete_component.html.erb
1365
- - app/components/avo/fields/belongs_to_field/autocomplete_component.rb
1366
1380
  - app/components/avo/fields/belongs_to_field/edit_component.html.erb
1367
1381
  - app/components/avo/fields/belongs_to_field/edit_component.rb
1368
1382
  - app/components/avo/fields/belongs_to_field/index_component.html.erb
@@ -1490,6 +1504,8 @@ files:
1490
1504
  - app/components/avo/fields/number_field/show_component.rb
1491
1505
  - app/components/avo/fields/password_field/edit_component.html.erb
1492
1506
  - app/components/avo/fields/password_field/edit_component.rb
1507
+ - app/components/avo/fields/preview_field/index_component.html.erb
1508
+ - app/components/avo/fields/preview_field/index_component.rb
1493
1509
  - app/components/avo/fields/progress_bar_field/edit_component.html.erb
1494
1510
  - app/components/avo/fields/progress_bar_field/edit_component.rb
1495
1511
  - app/components/avo/fields/progress_bar_field/index_component.html.erb
@@ -1509,14 +1525,6 @@ files:
1509
1525
  - app/components/avo/fields/status_field/index_component.rb
1510
1526
  - app/components/avo/fields/status_field/show_component.html.erb
1511
1527
  - app/components/avo/fields/status_field/show_component.rb
1512
- - app/components/avo/fields/tags_field/edit_component.html.erb
1513
- - app/components/avo/fields/tags_field/edit_component.rb
1514
- - app/components/avo/fields/tags_field/index_component.html.erb
1515
- - app/components/avo/fields/tags_field/index_component.rb
1516
- - app/components/avo/fields/tags_field/show_component.html.erb
1517
- - app/components/avo/fields/tags_field/show_component.rb
1518
- - app/components/avo/fields/tags_field/tag_component.html.erb
1519
- - app/components/avo/fields/tags_field/tag_component.rb
1520
1528
  - app/components/avo/fields/text_field/edit_component.html.erb
1521
1529
  - app/components/avo/fields/text_field/edit_component.rb
1522
1530
  - app/components/avo/fields/text_field/index_component.html.erb
@@ -1547,11 +1555,6 @@ files:
1547
1555
  - app/components/avo/index/grid_cover_empty_state_component.rb
1548
1556
  - app/components/avo/index/grid_item_component.html.erb
1549
1557
  - app/components/avo/index/grid_item_component.rb
1550
- - app/components/avo/index/ordering/base_component.rb
1551
- - app/components/avo/index/ordering/button_component.html.erb
1552
- - app/components/avo/index/ordering/button_component.rb
1553
- - app/components/avo/index/ordering/buttons_component.html.erb
1554
- - app/components/avo/index/ordering/buttons_component.rb
1555
1558
  - app/components/avo/index/resource_controls_component.html.erb
1556
1559
  - app/components/avo/index/resource_controls_component.rb
1557
1560
  - app/components/avo/index/resource_grid_component.html.erb
@@ -1562,8 +1565,12 @@ files:
1562
1565
  - app/components/avo/index/resource_table_component.rb
1563
1566
  - app/components/avo/index/table_row_component.html.erb
1564
1567
  - app/components/avo/index/table_row_component.rb
1565
- - app/components/avo/item_switcher_component.html.erb
1566
- - app/components/avo/item_switcher_component.rb
1568
+ - app/components/avo/items/panel_component.html.erb
1569
+ - app/components/avo/items/panel_component.rb
1570
+ - app/components/avo/items/switcher_component.html.erb
1571
+ - app/components/avo/items/switcher_component.rb
1572
+ - app/components/avo/items/visible_items_component.html.erb
1573
+ - app/components/avo/items/visible_items_component.rb
1567
1574
  - app/components/avo/loading_component.html.erb
1568
1575
  - app/components/avo/loading_component.rb
1569
1576
  - app/components/avo/modal_component.html.erb
@@ -1586,8 +1593,6 @@ files:
1586
1593
  - app/components/avo/sidebar/group_component.rb
1587
1594
  - app/components/avo/sidebar/heading_component.html.erb
1588
1595
  - app/components/avo/sidebar/heading_component.rb
1589
- - app/components/avo/sidebar/item_switcher_component.html.erb
1590
- - app/components/avo/sidebar/item_switcher_component.rb
1591
1596
  - app/components/avo/sidebar/link_component.html.erb
1592
1597
  - app/components/avo/sidebar/link_component.rb
1593
1598
  - app/components/avo/sidebar/section_component.html.erb
@@ -1613,14 +1618,12 @@ files:
1613
1618
  - app/controllers/avo/associations_controller.rb
1614
1619
  - app/controllers/avo/attachments_controller.rb
1615
1620
  - app/controllers/avo/base_controller.rb
1616
- - app/controllers/avo/dashboards/cards_controller.rb
1617
- - app/controllers/avo/dashboards_controller.rb
1618
1621
  - app/controllers/avo/debug_controller.rb
1619
1622
  - app/controllers/avo/home_controller.rb
1620
1623
  - app/controllers/avo/private_controller.rb
1621
- - app/controllers/avo/reorder_controller.rb
1622
1624
  - app/controllers/avo/resources_controller.rb
1623
1625
  - app/controllers/avo/search_controller.rb
1626
+ - app/controllers/concerns/avo/initializes_avo.rb
1624
1627
  - app/helpers/avo/application_helper.rb
1625
1628
  - app/helpers/avo/resources_helper.rb
1626
1629
  - app/helpers/avo/url_helpers.rb
@@ -1629,9 +1632,9 @@ files:
1629
1632
  - app/javascript/js/application.js
1630
1633
  - app/javascript/js/controllers.js
1631
1634
  - app/javascript/js/controllers/action_controller.js
1635
+ - app/javascript/js/controllers/actions_overflow_controller.js
1632
1636
  - app/javascript/js/controllers/actions_picker_controller.js
1633
1637
  - app/javascript/js/controllers/attachments_controller.js
1634
- - app/javascript/js/controllers/base_controller.js
1635
1638
  - app/javascript/js/controllers/boolean_filter_controller.js
1636
1639
  - app/javascript/js/controllers/copy_to_clipboard_controller.js
1637
1640
  - app/javascript/js/controllers/dashboard_card_controller.js
@@ -1642,11 +1645,11 @@ files:
1642
1645
  - app/javascript/js/controllers/fields/key_value_controller.js
1643
1646
  - app/javascript/js/controllers/fields/progress_bar_field_controller.js
1644
1647
  - app/javascript/js/controllers/fields/reload_belongs_to_field_controller.js
1645
- - app/javascript/js/controllers/fields/tags_field_controller.js
1646
1648
  - app/javascript/js/controllers/fields/tags_field_helpers.js
1647
1649
  - app/javascript/js/controllers/fields/trix_field_controller.js
1648
1650
  - app/javascript/js/controllers/filter_controller.js
1649
1651
  - app/javascript/js/controllers/hidden_input_controller.js
1652
+ - app/javascript/js/controllers/input_autofocus_controller.js
1650
1653
  - app/javascript/js/controllers/item_select_all_controller.js
1651
1654
  - app/javascript/js/controllers/item_selector_controller.js
1652
1655
  - app/javascript/js/controllers/loading_button_controller.js
@@ -1654,17 +1657,20 @@ files:
1654
1657
  - app/javascript/js/controllers/modal_controller.js
1655
1658
  - app/javascript/js/controllers/multiple_select_filter_controller.js
1656
1659
  - app/javascript/js/controllers/per_page_controller.js
1660
+ - app/javascript/js/controllers/preview_controller.js
1657
1661
  - app/javascript/js/controllers/resource_edit_controller.js
1658
1662
  - app/javascript/js/controllers/resource_index_controller.js
1659
1663
  - app/javascript/js/controllers/resource_show_controller.js
1660
1664
  - app/javascript/js/controllers/search_controller.js
1661
1665
  - app/javascript/js/controllers/select_controller.js
1662
1666
  - app/javascript/js/controllers/select_filter_controller.js
1667
+ - app/javascript/js/controllers/self_destroy_controller.js
1663
1668
  - app/javascript/js/controllers/sidebar_controller.js
1664
1669
  - app/javascript/js/controllers/tabs_controller.js
1665
1670
  - app/javascript/js/controllers/text_filter_controller.js
1666
1671
  - app/javascript/js/controllers/tippy_controller.js
1667
- - app/javascript/js/controllers/toggle_panel_controller.js
1672
+ - app/javascript/js/controllers/toggle_controller.js
1673
+ - app/javascript/js/custom-stream-actions.js
1668
1674
  - app/javascript/js/helpers/cast_boolean.js
1669
1675
  - app/javascript/js/helpers/debounce_promise.js
1670
1676
  - app/views/avo/actions/show.html.erb
@@ -1680,14 +1686,11 @@ files:
1680
1686
  - app/views/avo/base/edit.html.erb
1681
1687
  - app/views/avo/base/index.html.erb
1682
1688
  - app/views/avo/base/new.html.erb
1689
+ - app/views/avo/base/preview.html.erb
1683
1690
  - app/views/avo/base/show.html.erb
1684
- - app/views/avo/dashboards/cards/_chartkick_card.html.erb
1685
- - app/views/avo/dashboards/cards/_metric_card.html.erb
1686
- - app/views/avo/dashboards/cards/chartkick_missing.html.erb
1687
- - app/views/avo/dashboards/cards/show.html.erb
1688
- - app/views/avo/dashboards/show.html.erb
1689
- - app/views/avo/debug/index.html.erb
1691
+ - app/views/avo/debug/_valid_indicator.html.erb
1690
1692
  - app/views/avo/debug/report.html.erb
1693
+ - app/views/avo/debug/status.html.erb
1691
1694
  - app/views/avo/home/_actions.html.erb
1692
1695
  - app/views/avo/home/_dashboards.html.erb
1693
1696
  - app/views/avo/home/_docs.html.erb
@@ -1699,7 +1702,6 @@ files:
1699
1702
  - app/views/avo/partials/_custom_tools_alert.html.erb
1700
1703
  - app/views/avo/partials/_flash_alerts.turbo_stream.erb
1701
1704
  - app/views/avo/partials/_footer.html.erb
1702
- - app/views/avo/partials/_global_search.html.erb
1703
1705
  - app/views/avo/partials/_head.html.erb
1704
1706
  - app/views/avo/partials/_header.html.erb
1705
1707
  - app/views/avo/partials/_javascript.html.erb
@@ -1716,7 +1718,6 @@ files:
1716
1718
  - app/views/avo/private/_links_and_buttons.html.erb
1717
1719
  - app/views/avo/private/design.html.erb
1718
1720
  - app/views/avo/sidebar/_license_warning.html.erb
1719
- - app/views/avo/sidebar/_license_warnings.html.erb
1720
1721
  - app/views/layouts/avo/_filter_wrapper.html.erb
1721
1722
  - app/views/layouts/avo/application.html.erb
1722
1723
  - avo.gemspec
@@ -1733,41 +1734,40 @@ files:
1733
1734
  - config/credentials.yml.enc
1734
1735
  - config/i18n-tasks.yml
1735
1736
  - config/initializers/pagy.rb
1737
+ - config/master.key
1736
1738
  - config/routes.rb
1737
1739
  - config/spring.rb
1738
1740
  - db/factories.rb
1739
1741
  - lib/avo.rb
1740
- - lib/avo/app.rb
1742
+ - lib/avo/asset_manager.rb
1741
1743
  - lib/avo/base_action.rb
1742
- - lib/avo/base_card.rb
1743
1744
  - lib/avo/base_resource.rb
1744
1745
  - lib/avo/base_resource_tool.rb
1746
+ - lib/avo/concerns/borrow_items_holder.rb
1745
1747
  - lib/avo/concerns/breadcrumbs.rb
1746
- - lib/avo/concerns/can_replace_fields.rb
1747
- - lib/avo/concerns/fetches_things.rb
1748
+ - lib/avo/concerns/can_replace_items.rb
1748
1749
  - lib/avo/concerns/filters_session_handler.rb
1749
- - lib/avo/concerns/handles_field_args.rb
1750
- - lib/avo/concerns/has_editable_controls.rb
1751
- - lib/avo/concerns/has_fields.rb
1752
- - lib/avo/concerns/has_html_attributes.rb
1750
+ - lib/avo/concerns/has_controls.rb
1751
+ - lib/avo/concerns/has_description.rb
1752
+ - lib/avo/concerns/has_helpers.rb
1753
+ - lib/avo/concerns/has_item_type.rb
1754
+ - lib/avo/concerns/has_items.rb
1753
1755
  - lib/avo/concerns/has_stimulus_controllers.rb
1756
+ - lib/avo/concerns/hydration.rb
1754
1757
  - lib/avo/concerns/is_resource_item.rb
1758
+ - lib/avo/concerns/is_visible.rb
1755
1759
  - lib/avo/concerns/model_class_constantized.rb
1756
- - lib/avo/concerns/policy_helpers.rb
1757
- - lib/avo/concerns/visible_in_dashboard.rb
1760
+ - lib/avo/concerns/pagination.rb
1761
+ - lib/avo/concerns/visible_in_different_views.rb
1758
1762
  - lib/avo/concerns/visible_items.rb
1759
1763
  - lib/avo/configuration.rb
1760
1764
  - lib/avo/configuration/branding.rb
1761
1765
  - lib/avo/configuration/resource_configuration.rb
1762
- - lib/avo/dashboards/base_dashboard.rb
1763
- - lib/avo/dashboards/base_divider.rb
1764
- - lib/avo/dashboards/chartkick_card.rb
1765
- - lib/avo/dashboards/dashboard_card.rb
1766
- - lib/avo/dashboards/metric_card.rb
1767
- - lib/avo/dashboards/partial_card.rb
1766
+ - lib/avo/current.rb
1768
1767
  - lib/avo/dsl/field_parser.rb
1769
1768
  - lib/avo/dynamic_router.rb
1770
1769
  - lib/avo/engine.rb
1770
+ - lib/avo/error_manager.rb
1771
1771
  - lib/avo/execution_context.rb
1772
1772
  - lib/avo/fields/area_field.rb
1773
1773
  - lib/avo/fields/badge_field.rb
@@ -1777,18 +1777,22 @@ files:
1777
1777
  - lib/avo/fields/boolean_group_field.rb
1778
1778
  - lib/avo/fields/code_field.rb
1779
1779
  - lib/avo/fields/concerns/file_authorization.rb
1780
+ - lib/avo/fields/concerns/handles_field_args.rb
1780
1781
  - lib/avo/fields/concerns/has_default.rb
1782
+ - lib/avo/fields/concerns/has_field_name.rb
1783
+ - lib/avo/fields/concerns/has_html_attributes.rb
1781
1784
  - lib/avo/fields/concerns/is_disabled.rb
1782
1785
  - lib/avo/fields/concerns/is_readonly.rb
1783
1786
  - lib/avo/fields/concerns/is_required.rb
1787
+ - lib/avo/fields/concerns/is_searchable.rb
1784
1788
  - lib/avo/fields/concerns/use_resource.rb
1789
+ - lib/avo/fields/concerns/use_view_components.rb
1785
1790
  - lib/avo/fields/country_field.rb
1786
1791
  - lib/avo/fields/date_field.rb
1787
1792
  - lib/avo/fields/date_time_field.rb
1788
1793
  - lib/avo/fields/external_image_field.rb
1789
- - lib/avo/fields/field_extensions/has_field_name.rb
1790
1794
  - lib/avo/fields/field_extensions/has_include_blank.rb
1791
- - lib/avo/fields/field_extensions/visible_in_different_views.rb
1795
+ - lib/avo/fields/field_manager.rb
1792
1796
  - lib/avo/fields/file_field.rb
1793
1797
  - lib/avo/fields/files_field.rb
1794
1798
  - lib/avo/fields/gravatar_field.rb
@@ -1804,10 +1808,10 @@ files:
1804
1808
  - lib/avo/fields/markdown_field.rb
1805
1809
  - lib/avo/fields/number_field.rb
1806
1810
  - lib/avo/fields/password_field.rb
1811
+ - lib/avo/fields/preview_field.rb
1807
1812
  - lib/avo/fields/progress_bar_field.rb
1808
1813
  - lib/avo/fields/select_field.rb
1809
1814
  - lib/avo/fields/status_field.rb
1810
- - lib/avo/fields/tags_field.rb
1811
1815
  - lib/avo/fields/text_field.rb
1812
1816
  - lib/avo/fields/textarea_field.rb
1813
1817
  - lib/avo/fields/time_field.rb
@@ -1817,25 +1821,12 @@ files:
1817
1821
  - lib/avo/filters/multiple_select_filter.rb
1818
1822
  - lib/avo/filters/select_filter.rb
1819
1823
  - lib/avo/filters/text_filter.rb
1820
- - lib/avo/grid_collector.rb
1821
1824
  - lib/avo/grid_fields/body_field.rb
1822
1825
  - lib/avo/grid_fields/grid_field.rb
1823
1826
  - lib/avo/grid_fields/preview_field.rb
1824
1827
  - lib/avo/grid_fields/title_field.rb
1825
- - lib/avo/hosts/association_scope_host.rb
1826
- - lib/avo/hosts/base_host.rb
1827
- - lib/avo/hosts/card_visibility.rb
1828
- - lib/avo/hosts/dashboard_card.rb
1829
- - lib/avo/hosts/dashboard_visibility.rb
1830
- - lib/avo/hosts/ordering.rb
1831
- - lib/avo/hosts/record_host.rb
1832
- - lib/avo/hosts/resource_record_host.rb
1833
- - lib/avo/hosts/resource_view_record_host.rb
1834
- - lib/avo/hosts/search_scope_host.rb
1835
- - lib/avo/hosts/view_record_host.rb
1836
- - lib/avo/hosts/visibility_host.rb
1837
1828
  - lib/avo/html/builder.rb
1838
- - lib/avo/items_holder.rb
1829
+ - lib/avo/item_grapher.rb
1839
1830
  - lib/avo/licensing/community_license.rb
1840
1831
  - lib/avo/licensing/h_q.rb
1841
1832
  - lib/avo/licensing/license.rb
@@ -1846,49 +1837,44 @@ files:
1846
1837
  - lib/avo/loaders/fields_loader.rb
1847
1838
  - lib/avo/loaders/filters_loader.rb
1848
1839
  - lib/avo/loaders/loader.rb
1849
- - lib/avo/main_panel.rb
1850
- - lib/avo/menu/base_item.rb
1851
- - lib/avo/menu/builder.rb
1852
- - lib/avo/menu/dashboard.rb
1853
- - lib/avo/menu/group.rb
1854
- - lib/avo/menu/link.rb
1855
- - lib/avo/menu/menu.rb
1856
- - lib/avo/menu/resource.rb
1857
- - lib/avo/menu/section.rb
1858
- - lib/avo/panel.rb
1859
- - lib/avo/panel_builder.rb
1840
+ - lib/avo/plugin.rb
1841
+ - lib/avo/plugin_manager.rb
1842
+ - lib/avo/prefixed_test_helpers.rb
1860
1843
  - lib/avo/reloader.rb
1861
- - lib/avo/resources/controls/action.rb
1862
1844
  - lib/avo/resources/controls/actions_list.rb
1845
+ - lib/avo/resources/controls/attach_button.rb
1863
1846
  - lib/avo/resources/controls/back_button.rb
1864
1847
  - lib/avo/resources/controls/base_control.rb
1848
+ - lib/avo/resources/controls/create_button.rb
1865
1849
  - lib/avo/resources/controls/delete_button.rb
1866
1850
  - lib/avo/resources/controls/detach_button.rb
1867
1851
  - lib/avo/resources/controls/edit_button.rb
1868
- - lib/avo/resources/controls/execution_context.rb
1869
- - lib/avo/resources/controls/items_holder.rb
1870
- - lib/avo/resources/controls/link_to.rb
1871
- - lib/avo/row.rb
1872
- - lib/avo/row_builder.rb
1873
- - lib/avo/services/authorization_clients/nil_client.rb
1874
- - lib/avo/services/authorization_clients/pundit_client.rb
1852
+ - lib/avo/resources/controls/order_controls.rb
1853
+ - lib/avo/resources/controls/save_button.rb
1854
+ - lib/avo/resources/controls/show_button.rb
1855
+ - lib/avo/resources/items/holder.rb
1856
+ - lib/avo/resources/items/item_group.rb
1857
+ - lib/avo/resources/items/main_panel.rb
1858
+ - lib/avo/resources/items/panel.rb
1859
+ - lib/avo/resources/items/row.rb
1860
+ - lib/avo/resources/items/sidebar.rb
1861
+ - lib/avo/resources/items/tab.rb
1862
+ - lib/avo/resources/items/tab_group.rb
1863
+ - lib/avo/resources/resource_manager.rb
1875
1864
  - lib/avo/services/authorization_service.rb
1865
+ - lib/avo/services/debug_service.rb
1876
1866
  - lib/avo/services/encryption_service.rb
1867
+ - lib/avo/services/telemetry_service.rb
1877
1868
  - lib/avo/services/uri_service.rb
1878
- - lib/avo/sidebar.rb
1879
- - lib/avo/sidebar_builder.rb
1880
1869
  - lib/avo/svg_finder.rb
1881
- - lib/avo/tab.rb
1882
- - lib/avo/tab_builder.rb
1883
- - lib/avo/tab_group.rb
1884
- - lib/avo/tab_group_builder.rb
1885
- - lib/avo/tools_manager.rb
1870
+ - lib/avo/test_helpers.rb
1871
+ - lib/avo/tools/tool_manager.rb
1886
1872
  - lib/avo/version.rb
1873
+ - lib/avo/view_inquirer.rb
1887
1874
  - lib/generators/avo/action_generator.rb
1888
1875
  - lib/generators/avo/base_generator.rb
1889
- - lib/generators/avo/card/chartkick_generator.rb
1890
- - lib/generators/avo/card/metric_generator.rb
1891
- - lib/generators/avo/card/partial_generator.rb
1876
+ - lib/generators/avo/card_generator.rb
1877
+ - lib/generators/avo/concerns/parent_controller.rb
1892
1878
  - lib/generators/avo/controller_generator.rb
1893
1879
  - lib/generators/avo/dashboard_generator.rb
1894
1880
  - lib/generators/avo/eject_generator.rb
@@ -1900,6 +1886,7 @@ files:
1900
1886
  - lib/generators/avo/named_base_generator.rb
1901
1887
  - lib/generators/avo/resource_generator.rb
1902
1888
  - lib/generators/avo/resource_tool_generator.rb
1889
+ - lib/generators/avo/scope_generator.rb
1903
1890
  - lib/generators/avo/tailwindcss/install_generator.rb
1904
1891
  - lib/generators/avo/templates/action.tt
1905
1892
  - lib/generators/avo/templates/cards/chartkick_card.tt
@@ -1922,9 +1909,9 @@ files:
1922
1909
  - lib/generators/avo/templates/filters/select_filter.tt
1923
1910
  - lib/generators/avo/templates/filters/text_filter.tt
1924
1911
  - lib/generators/avo/templates/initializer/avo.tt
1925
- - lib/generators/avo/templates/js/avo.custom.js
1926
1912
  - lib/generators/avo/templates/locales/avo.ar.yml
1927
1913
  - lib/generators/avo/templates/locales/avo.en.yml
1914
+ - lib/generators/avo/templates/locales/avo.es.yml
1928
1915
  - lib/generators/avo/templates/locales/avo.fr.yml
1929
1916
  - lib/generators/avo/templates/locales/avo.nb.yml
1930
1917
  - lib/generators/avo/templates/locales/avo.nn.yml
@@ -1938,9 +1925,10 @@ files:
1938
1925
  - lib/generators/avo/templates/resource/resource.tt
1939
1926
  - lib/generators/avo/templates/resource_tools/partial.tt
1940
1927
  - lib/generators/avo/templates/resource_tools/resource_tool.tt
1941
- - lib/generators/avo/templates/standalone_action.tt
1928
+ - lib/generators/avo/templates/scope.tt
1942
1929
  - lib/generators/avo/templates/tailwindcss/Procfile.dev
1943
1930
  - lib/generators/avo/templates/tailwindcss/avo.tailwind.css
1931
+ - lib/generators/avo/templates/tailwindcss/tailwind.config.js
1944
1932
  - lib/generators/avo/templates/tool/controller.tt
1945
1933
  - lib/generators/avo/templates/tool/sidebar_item.tt
1946
1934
  - lib/generators/avo/templates/tool/view.tt
@@ -1953,6 +1941,9 @@ files:
1953
1941
  - public/avo-assets/avo.base.css
1954
1942
  - public/avo-assets/avo.base.js
1955
1943
  - public/avo-assets/avo.base.js.map
1944
+ - public/avo-assets/avo.css
1945
+ - public/avo-assets/avo.js
1946
+ - public/avo-assets/avo.js.map
1956
1947
  - public/avo-assets/favicon.ico
1957
1948
  - public/avo-assets/fonts/inter-v7-latin-500.eot
1958
1949
  - public/avo-assets/fonts/inter-v7-latin-500.svg
@@ -1978,6 +1969,8 @@ files:
1978
1969
  - public/avo-assets/logo.png
1979
1970
  - public/avo-assets/logomark.png
1980
1971
  - public/avo-assets/placeholder.svg
1972
+ - tailwind.custom.js
1973
+ - tailwind.preset.js
1981
1974
  homepage: https://avohq.io
1982
1975
  licenses:
1983
1976
  - Commercial
@@ -1995,14 +1988,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1995
1988
  requirements:
1996
1989
  - - ">="
1997
1990
  - !ruby/object:Gem::Version
1998
- version: 2.6.0
1991
+ version: 3.0.0
1999
1992
  required_rubygems_version: !ruby/object:Gem::Requirement
2000
1993
  requirements:
2001
1994
  - - ">="
2002
1995
  - !ruby/object:Gem::Version
2003
1996
  version: '0'
2004
1997
  requirements: []
2005
- rubygems_version: 3.3.3
1998
+ rubygems_version: 3.4.6
2006
1999
  signing_key:
2007
2000
  specification_version: 4
2008
2001
  summary: Configuration-based, no-maintenance, extendable Ruby on Rails admin panel
@@ -1,46 +0,0 @@
1
- <div class="relative flex-1 flex flex-col justify-between h-full"
2
- data-controller="dashboard-card"
3
- data-dashboard-card-target="card"
4
- data-refresh-every="<%= card.refresh_every %>"
5
- data-card-id="<%= card.id %>"
6
- data-card-index="<%= card.index %>">
7
- <% if card.class.display_header %>
8
- <div class="px-4 pt-4">
9
- <div class="flex justify-between items-center min-h-6">
10
- <div class="text-base font-bold text-gray-700 leading-none">
11
- <%= card.label %>
12
- </div>
13
- <div data-controller="select">
14
- <% if card.type.in?([:metric, :chartkick, :partial]) && card.ranges.present? %>
15
- <%= select_tag "#{card.id}_#{card.index}_range", options_for_select(card.ranges, card.range),
16
- class: 'appearance-none inline-flex bg-blue-gray-100 disabled:bg-blue-gray-300 disabled:cursor-not-allowed focus:bg-white text-sm text-blue-gray-700 disabled:text-blue-gray-700 leading-none rounded-md py-px px-2 leading-tight border outline-none outline w-24',
17
- data: {
18
- target: 'select',
19
- action: 'change->select#onChange'
20
- }
21
- %>
22
- <% end %>
23
- </div>
24
- </div>
25
- </div>
26
- <% end %>
27
- <% if card.type == :chartkick %>
28
- <%= render 'chartkick_card', card: card %>
29
- <% elsif card.type === :partial %>
30
- <%= render card.class.partial %>
31
- <% elsif card.type === :metric %>
32
- <div class="flex-1 flex px-4 pb-4">
33
- <%= render 'metric_card', card: card %>
34
- </div>
35
- <% end %>
36
- <% if card.description.present? %>
37
- <%= content_tag :div, class: "absolute inset-auto bottom-0 right-0 mb-4 mr-4",
38
- title: card.description,
39
- data: {
40
- target: 'card-description',
41
- tippy: 'tooltip',
42
- } do %>
43
- <%= helpers.svg 'heroicons/solid/information-circle', class: 'h-4 text-gray-500 cursor-pointer' %>
44
- <% end %>
45
- <% end %>
46
- </div>
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Avo::CardComponent < ViewComponent::Base
4
- attr_reader :card
5
-
6
- def initialize(card: nil)
7
- @card = card
8
-
9
- init_card
10
- end
11
-
12
- def render?
13
- card.present?
14
- end
15
-
16
- # Initializing the card byt running the query method.
17
- # We'll still keep the query block around for compatibility reasons.
18
- def init_card
19
- if card.respond_to? :query
20
- card.query
21
- elsif card.query_block.present?
22
- card.compute_result
23
- end
24
- end
25
- end
@@ -1,9 +0,0 @@
1
- <% if invisible? %>
2
- <div class="relative col-span-full gap-0"></div>
3
- <% else %>
4
- <div class="relative col-span-full border-t border-gray-300 my-4">
5
- <% if label.present? %>
6
- <div class="absolute inset-auto -translate-y-1/2 -translate-x-1/2 ml-1/2 z-20 text-xs font-semibold uppercase leading-none text-gray-500 bg-application px-2"><%= label %></div>
7
- <% end %>
8
- </div>
9
- <% end %>
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Avo::Dashboards::DividerComponent < ViewComponent::Base
4
- attr_reader :divider
5
-
6
- delegate :label, to: :divider
7
-
8
- def initialize(divider: nil)
9
- @divider = divider
10
- end
11
-
12
- def render?
13
- @divider.present?
14
- end
15
-
16
- def invisible?
17
- @divider.invisible
18
- end
19
- end