avo 3.17.8.tw4 → 3.17.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +0 -1
- data/app/assets/stylesheets/avo.base.css +101 -101
- data/app/assets/stylesheets/css/fields/progress.css +4 -4
- data/app/assets/stylesheets/css/fields/tiptap.css +4 -4
- data/app/assets/stylesheets/css/pagination.css +2 -2
- data/app/assets/stylesheets/css/search.css +4 -4
- data/app/assets/stylesheets/css/tailwindcss/base.css +1 -0
- data/app/assets/stylesheets/css/tailwindcss/components.css +1 -0
- data/app/assets/stylesheets/css/tailwindcss/utilities.css +1 -0
- data/app/assets/stylesheets/css/tooltips.css +1 -1
- data/app/components/avo/actions_component.html.erb +3 -3
- data/app/components/avo/alert_component.html.erb +2 -2
- data/app/components/avo/alert_component.rb +1 -1
- data/app/components/avo/backtrace_alert_component.html.erb +3 -3
- data/app/components/avo/button_component.rb +3 -3
- data/app/components/avo/divider_component.html.erb +2 -2
- data/app/components/avo/empty_state_component.html.erb +1 -1
- data/app/components/avo/field_wrapper_component.html.erb +1 -1
- data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/boolean_group_field/edit_component.rb +1 -1
- data/app/components/avo/fields/common/files/view_type/list_item_component.html.erb +3 -3
- data/app/components/avo/fields/common/key_value_component.html.erb +3 -3
- data/app/components/avo/fields/common/progress_bar_component.html.erb +1 -1
- data/app/components/avo/fields/common/status_viewer_component.html.erb +7 -1
- data/app/components/avo/fields/date_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/date_time_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/tags_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/tags_field/tag_component.html.erb +1 -1
- data/app/components/avo/fields/tiptap_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/trix_field/edit_component.html.erb +1 -1
- data/app/components/avo/filters_component.html.erb +3 -3
- data/app/components/avo/index/grid_item_component.html.erb +2 -2
- data/app/components/avo/index/grid_item_component.rb +1 -1
- data/app/components/avo/index/resource_grid_component.html.erb +1 -1
- data/app/components/avo/index/resource_map_component.html.erb +1 -1
- data/app/components/avo/index/resource_table_component.html.erb +1 -1
- data/app/components/avo/index/table_row_component.html.erb +3 -3
- data/app/components/avo/items/panel_component.html.erb +1 -1
- data/app/components/avo/media_library/item_details_component.html.erb +1 -1
- data/app/components/avo/modal_component.html.erb +1 -1
- data/app/components/avo/paginator_component.html.erb +2 -1
- data/app/components/avo/panel_component.html.erb +2 -2
- data/app/components/avo/profile_item_component.rb +1 -1
- data/app/components/avo/resource_sidebar_component.html.erb +1 -1
- data/app/components/avo/row_selector_component.html.erb +1 -1
- data/app/components/avo/sidebar/link_component.rb +1 -1
- data/app/components/avo/sidebar_component.html.erb +3 -3
- data/app/components/avo/sidebar_profile_component.html.erb +4 -4
- data/app/components/avo/tab_group_component.html.erb +1 -1
- data/app/helpers/avo/application_helper.rb +4 -4
- data/app/javascript/js/controllers/fields/key_value_controller.js +1 -1
- data/app/javascript/js/controllers/fields/tags_field_helpers.js +1 -1
- data/app/javascript/js/controllers/search_controller.js +2 -2
- data/app/views/avo/base/preview.html.erb +1 -1
- data/app/views/avo/debug/report.html.erb +1 -1
- data/app/views/avo/debug/status.html.erb +14 -19
- data/app/views/avo/home/_actions.html.erb +1 -1
- data/app/views/avo/home/_dashboards.html.erb +1 -1
- data/app/views/avo/home/_filters.html.erb +1 -1
- data/app/views/avo/home/_resources.html.erb +2 -2
- data/app/views/avo/home/failed_to_load.html.erb +1 -1
- data/app/views/avo/partials/_confirm_dialog.html.erb +4 -4
- data/app/views/avo/partials/_custom_tools_alert.html.erb +6 -6
- data/app/views/avo/partials/_navbar.html.erb +3 -3
- data/app/views/avo/partials/_resource_search.html.erb +1 -1
- data/app/views/avo/partials/_table_header.html.erb +2 -2
- data/app/views/avo/sidebar/_license_warning.html.erb +1 -1
- data/lib/avo/concerns/row_controls_configuration.rb +15 -16
- data/lib/avo/resources/items/holder.rb +1 -1
- data/lib/avo/version.rb +1 -1
- data/lib/generators/avo/resource_tool_generator.rb +1 -1
- data/lib/generators/avo/templates/cards/partial_card_partial.tt +1 -1
- data/lib/generators/avo/tool_generator.rb +2 -2
- data/lib/tasks/avo_tasks.rake +1 -1
- data/public/avo-assets/avo.base.css +12272 -10320
- data/public/avo-assets/avo.base.js +3 -3
- data/public/avo-assets/avo.base.js.map +2 -2
- data/tailwind.preset.js +20 -0
- metadata +6 -3
@@ -14,7 +14,7 @@
|
|
14
14
|
<% end %>
|
15
15
|
<%= @form.text_area @field.id,
|
16
16
|
value: @field.value.try(:to_trix_html) || @field.value,
|
17
|
-
class: classes("w-full
|
17
|
+
class: classes("w-full hidden"),
|
18
18
|
data: @field.get_html(:data, view: view, element: :input),
|
19
19
|
disabled: disabled?,
|
20
20
|
id: @input_id,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<div data-controller="toggle" data-component-name="<%= self.class.to_s.underscore %>">
|
2
2
|
<div class="relative w-full flex justify-between">
|
3
|
-
<%= a_button class: 'focus:outline-
|
3
|
+
<%= a_button class: 'focus:outline-none',
|
4
4
|
color: :primary,
|
5
5
|
size: :sm,
|
6
6
|
icon: "avo/filter",
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<% end %>
|
15
15
|
<% end %>
|
16
16
|
<div
|
17
|
-
class="absolute block inset-auto sm:right-0 top-full bg-white min-w-[300px] mt-2 z-40 shadow-modal rounded
|
17
|
+
class="absolute block inset-auto sm:right-0 top-full bg-white min-w-[300px] mt-2 z-40 shadow-modal rounded divide-y divide-gray-300 <%= 'hidden' unless params[:keep_filters_panel_open] == '1' %>"
|
18
18
|
data-toggle-target="panel"
|
19
19
|
data-transition-enter="transition ease-out duration-100"
|
20
20
|
data-transition-enter-start="transform opacity-0 -translate-y-1"
|
@@ -26,7 +26,7 @@
|
|
26
26
|
<% @filters.each do |filter| %>
|
27
27
|
<%= render partial: filter.class.template, locals: {filter: filter} %>
|
28
28
|
<% end %>
|
29
|
-
<div class="p-4 border-gray-
|
29
|
+
<div class="p-4 border-gray-300 border-t">
|
30
30
|
<% if @applied_filters.present? %>
|
31
31
|
<%= a_link reset_path, data: {turbo_frame: params[:turbo_frame]}, color: :gray, size: :sm, class: 'w-full justify-center' do %>
|
32
32
|
<%= t('avo.reset_filters') %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%= content_tag :div,
|
2
|
-
class: "relative bg-white rounded
|
2
|
+
class: "relative bg-white rounded shadow-modal flex flex-col group",
|
3
3
|
data: {
|
4
4
|
component_name: self.class.to_s.underscore,
|
5
5
|
resource_name: @resource.class.to_s,
|
@@ -8,7 +8,7 @@
|
|
8
8
|
**(try(:drag_reorder_item_data_attributes) || {}),
|
9
9
|
} do %>
|
10
10
|
<%= content_tag :div,
|
11
|
-
class: class_names("relative w-full pb-3/4 rounded-t
|
11
|
+
class: class_names("relative w-full pb-3/4 rounded-t overflow-hidden", html(:cover, :classes)),
|
12
12
|
style: html(:cover, :style) do %>
|
13
13
|
<%= render Avo::RowSelectorComponent.new(floating: true, size: :lg) if @resource.record_selector%>
|
14
14
|
<%= render_cover %>
|
@@ -70,7 +70,7 @@ class Avo::Index::GridItemComponent < Avo::BaseComponent
|
|
70
70
|
return if @card[:badge_label].blank?
|
71
71
|
|
72
72
|
content_tag :div,
|
73
|
-
class: class_names("absolute block inset-auto top-0 right-0 mt-2 mr-2 text-sm font-semibold bg-#{badge_color}-50 border border-#{badge_color}-300 text-#{badge_color}-700 rounded
|
73
|
+
class: class_names("absolute block inset-auto top-0 right-0 mt-2 mr-2 text-sm font-semibold bg-#{badge_color}-50 border border-#{badge_color}-300 text-#{badge_color}-700 rounded shadow-lg px-2 py-px z-10", html(:badge, :classes)),
|
74
74
|
title: @card[:badge_title],
|
75
75
|
style: html(:badge, :style),
|
76
76
|
data: {target: :badge, tippy: :tooltip, **(html(:badge, :data).presence || {})} do
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<% end %>
|
17
17
|
</turbo-frame>
|
18
18
|
<% else %>
|
19
|
-
<div class="bg-white rounded
|
19
|
+
<div class="bg-white rounded shadow-panel"
|
20
20
|
data-component-name="<%= self.class.to_s.underscore %>">
|
21
21
|
<%= helpers.empty_state by_association: params[:related_name].present?, view_type: :grid %>
|
22
22
|
</div>
|
@@ -39,7 +39,7 @@
|
|
39
39
|
<% end %>
|
40
40
|
<table class="w-full px-4 bg-white">
|
41
41
|
<%= render partial: 'avo/partials/table_header', locals: {fields: @header_fields} %>
|
42
|
-
<%= content_tag :tbody, class: "divide-y
|
42
|
+
<%= content_tag :tbody, class: "divide-y",
|
43
43
|
data: {
|
44
44
|
**(try(:drag_reorder_data_attributes) || {}),
|
45
45
|
} do %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<%= content_tag :tr,
|
4
4
|
id: "#{self.class.to_s.underscore}_#{@resource.record.to_param}",
|
5
|
-
class: class_names("group bg-white hover:bg-gray-50 z-21 border-b
|
5
|
+
class: class_names("group bg-white hover:bg-gray-50 z-21 border-b", {"cursor-pointer": click_row_to_view_record}),
|
6
6
|
data: {
|
7
7
|
index: @index,
|
8
8
|
component_name: self.class.to_s.underscore,
|
@@ -24,7 +24,7 @@
|
|
24
24
|
<% end %>
|
25
25
|
<% if @resource.render_row_controls_on_the_left? %>
|
26
26
|
<td class="<%= @resource.row_controls_classes %>" data-control="resource-controls">
|
27
|
-
<div class="flex items-center justify-end grow-0 h-full">
|
27
|
+
<div class="flex items-center justify-end flex-grow-0 h-full">
|
28
28
|
<%= render resource_controls_component %>
|
29
29
|
</div>
|
30
30
|
</td>
|
@@ -46,7 +46,7 @@
|
|
46
46
|
<% end %>
|
47
47
|
<% if @resource.render_row_controls_on_the_right? %>
|
48
48
|
<td class="<%= @resource.row_controls_classes %>" data-control="resource-controls">
|
49
|
-
<div class="flex items-center justify-end grow-0 h-full">
|
49
|
+
<div class="flex items-center justify-end flex-grow-0 h-full">
|
50
50
|
<%= render resource_controls_component %>
|
51
51
|
</div>
|
52
52
|
</td>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<% end %>
|
8
8
|
<% end %>
|
9
9
|
<% c.with_body do %>
|
10
|
-
<% content_tag :div, class: "divide-y
|
10
|
+
<% content_tag :div, class: "divide-y overflow-auto" do %>
|
11
11
|
<%= render Avo::Items::VisibleItemsComponent.new resource: @resource, item: @item, view: @view, form: @form %>
|
12
12
|
<% end %>
|
13
13
|
<% end %>
|
@@ -24,7 +24,7 @@
|
|
24
24
|
<%= link_to "Delete", helpers.avo.media_library_path(@blob), class: "text-red-500", data: {turbo_confirm: "Are you sure you want to destroy this attachment?", turbo_method: :delete} %>
|
25
25
|
</div>
|
26
26
|
</div>
|
27
|
-
<div class="flex flex-col w-1/2 @3xl/details:w-1/3 border-l
|
27
|
+
<div class="flex flex-col w-1/2 @3xl/details:w-1/3 border-l">
|
28
28
|
<%= render partial: "avo/media_library/information", locals: {blob: @blob} %>
|
29
29
|
<%= render partial: "avo/media_library/form", locals: {blob: @blob} %>
|
30
30
|
</div>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
data-modal-target="modal"
|
4
4
|
data-modal-close-modal-on-backdrop-click-value="<%= close_modal_on_backdrop_click %>"
|
5
5
|
>
|
6
|
-
<div aria-expanded="true" class="modal-overlay absolute w-full h-full bg-gray-800
|
6
|
+
<div aria-expanded="true" class="modal-overlay absolute w-full h-full bg-opacity-25 bg-gray-800 flex justify-center items-center" data-modal-target="backdrop" data-action="click->modal#close" ></div>
|
7
7
|
<div aria-expanded="true" role="dialog" aria-modal="true" class="modal-body rounded-lg inset-auto bg-white flex z-50 relative shadow-modal <%= overflow_classes %> <%= width_classes %> <%= height_classes %>">
|
8
8
|
<div class="flex-1 flex flex-col justify-between">
|
9
9
|
<div>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<%= content_tag :label, name: t('avo.per_page').downcase do %>
|
8
8
|
<%= select_tag 'per_page',
|
9
9
|
options_for_select(per_page_options, @index_params[:per_page]),
|
10
|
-
class: 'appearance-none inline-flex bg-white-100 disabled:bg-white-400 disabled:cursor-not-allowed focus:bg-white text-slate-700 disabled:text-slate-600 rounded-md py-1 px-2 leading-tight border border-slate-300 outline-
|
10
|
+
class: 'appearance-none inline-flex bg-white-100 disabled:bg-white-400 disabled:cursor-not-allowed focus:bg-white text-slate-700 disabled:text-slate-600 rounded-md py-1 px-2 leading-tight border border-slate-300 outline-none focus:border-slate-400 outline w-16 mr-1 text-sm',
|
11
11
|
data: {
|
12
12
|
'turbo-frame': @turbo_frame,
|
13
13
|
'per-page-target': 'selector',
|
@@ -30,6 +30,7 @@
|
|
30
30
|
<% end %>
|
31
31
|
|
32
32
|
<% if @pagy.pages > 1 %>
|
33
|
+
<%# @todo: add first & last page. make the first and last buttons rounded %>
|
33
34
|
<%== helpers.pagy_nav @pagy, anchor_string: "data-turbo-frame=\"#{@turbo_frame}\"" %>
|
34
35
|
<% end %>
|
35
36
|
</div>
|
@@ -27,12 +27,12 @@
|
|
27
27
|
</div>
|
28
28
|
</div>
|
29
29
|
<% if sidebar? %>
|
30
|
-
<div class="max-w-full sm:w-1/3 shrink-0 h-full">
|
30
|
+
<div class="max-w-full sm:w-1/3 flex-shrink-0 h-full">
|
31
31
|
<%= sidebar %>
|
32
32
|
</div>
|
33
33
|
<% end %>
|
34
34
|
<% if bare_sidebar? %>
|
35
|
-
<div class="max-w-full sm:w-1/3 shrink-0 h-full">
|
35
|
+
<div class="max-w-full sm:w-1/3 flex-shrink-0 h-full">
|
36
36
|
<%= bare_sidebar %>
|
37
37
|
</div>
|
38
38
|
<% end %>
|
@@ -23,6 +23,6 @@ class Avo::ProfileItemComponent < Avo::BaseComponent
|
|
23
23
|
private
|
24
24
|
|
25
25
|
def button_classes
|
26
|
-
"flex-1 flex items-center justify-center bg-white text-left cursor-pointer text-gray-800 font-semibold hover:bg-primary-100 block px-4 py-1 w-full py-3 text-center rounded
|
26
|
+
"flex-1 flex items-center justify-center bg-white text-left cursor-pointer text-gray-800 font-semibold hover:bg-primary-100 block px-4 py-1 w-full py-3 text-center rounded w-full"
|
27
27
|
end
|
28
28
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
name: t("avo.select_item"),
|
6
6
|
title: t("avo.select_item"),
|
7
7
|
autocomplete: :off,
|
8
|
-
class: class_names("mx-3 rounded
|
8
|
+
class: class_names("mx-3 rounded checked:bg-primary-400 focus:checked:!bg-primary-400", {
|
9
9
|
"absolute inset-auto left-0 mt-3 z-10 hidden group-hover:block checked:block": @floating,
|
10
10
|
"w-5 h-5": @size.to_sym == :lg,
|
11
11
|
"w-4 h-4": @size.to_sym != :lg,
|
@@ -26,6 +26,6 @@ class Avo::Sidebar::LinkComponent < Avo::BaseComponent
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def classes
|
29
|
-
"px-4 pr-0 flex-1 flex mx-6 leading-none py-2 text-black rounded
|
29
|
+
"px-4 pr-0 flex-1 flex mx-6 leading-none py-2 text-black rounded font-medium hover:bg-gray-100 gap-1"
|
30
30
|
end
|
31
31
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= content_tag :div,
|
2
2
|
class: class_names(
|
3
|
-
"avo-sidebar fixed z-[60] t-0 application-sidebar w-64 flex-1 border-r
|
3
|
+
"avo-sidebar fixed z-[60] t-0 application-sidebar w-64 flex-1 border-r lg:border-none bg-none xh-dvh h-[calc(100dvh-4rem)] bg-application lg:bg-transparent",
|
4
4
|
"print:hidden": Avo.configuration.hide_layout_when_printing,
|
5
5
|
"hidden": !@sidebar_open,
|
6
6
|
),
|
@@ -61,8 +61,8 @@
|
|
61
61
|
</div>
|
62
62
|
</div>
|
63
63
|
<% if Rails.env.development? %>
|
64
|
-
<div class="p-4 border-t
|
65
|
-
<%= link_to helpers.avo.avo_private_status_path, class: "block px-4 py-2 border
|
64
|
+
<div class="p-4 border-t group">
|
65
|
+
<%= link_to helpers.avo.avo_private_status_path, class: "block px-4 py-2 border rounded flex justify-between items-center w-full text-black text-sm" do %>
|
66
66
|
<span>Avo Status</span> <span><div class="rounded-full w-4 h-4 <%= Avo.app_status ? "bg-green-400" : "bg-orange-400" %>"></div></span>
|
67
67
|
<% end %>
|
68
68
|
<div class="absolute text-xs text-gray-700 group-hover:block hidden text-center w-full -ml-4">👆Visible only in development👆</div>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<div class="text-black border-gray-150 p-4 flex border-t
|
1
|
+
<div class="text-black border-gray-150 p-4 flex border-t">
|
2
2
|
<div class="flex-1 flex space-x-4 w-full">
|
3
3
|
<% if avatar.present? %>
|
4
|
-
<div class="relative aspect-square w-10 h-10 overflow-hidden rounded
|
4
|
+
<div class="relative aspect-square w-10 h-10 overflow-hidden rounded shrink-0">
|
5
5
|
<%= image_tag helpers.main_app.url_for(avatar), class: "object-cover min-w-full min-h-full h-full" %>
|
6
6
|
</div>
|
7
7
|
<% end %>
|
@@ -21,7 +21,7 @@
|
|
21
21
|
<%= helpers.svg "avo/three-dots", class: 'h-4' %>
|
22
22
|
</a>
|
23
23
|
<div
|
24
|
-
class="hidden absolute flex flex-col inset-auto right-0 bottom-0 mb-8 bg-white rounded
|
24
|
+
class="hidden absolute flex flex-col inset-auto right-0 bottom-0 mb-8 bg-white rounded min-w-[200px] shadow-context z-40"
|
25
25
|
data-toggle-target="panel"
|
26
26
|
data-transition-enter="transition ease-in-out duration-100"
|
27
27
|
data-transition-enter-start="transform opacity-0 translate-y-3"
|
@@ -49,7 +49,7 @@
|
|
49
49
|
action: "submit->sign-out#handle",
|
50
50
|
},
|
51
51
|
class: 'flex-1' do |form| %>
|
52
|
-
<%= form.button turbo_confirm: t('avo.are_you_sure'), class: "flex-1 flex items-center justify-center bg-white text-left cursor-pointer text-red-600 font-semibold hover:bg-red-100 block px-4 py-1 w-full py-3 text-center rounded
|
52
|
+
<%= form.button turbo_confirm: t('avo.are_you_sure'), class: "flex-1 flex items-center justify-center bg-white text-left cursor-pointer text-red-600 font-semibold hover:bg-red-100 block px-4 py-1 w-full py-3 text-center rounded w-full" do %>
|
53
53
|
<%= helpers.svg "avo/logout", class: 'h-4 mr-1' %> <%= t('avo.sign_out') %>
|
54
54
|
<% end %>
|
55
55
|
<% end %>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<% visible_tabs.each_with_index do |tab, index| %>
|
12
12
|
<%= content_tag :div, **args(tab) do %>
|
13
13
|
<%= render Avo::PanelHeaderComponent.new name: group.title, description: group.description %>
|
14
|
-
<div class="border
|
14
|
+
<div class="border rounded-lg p-2 -mx-2 -my-2 lg:p-4 lg:-mx-4 lg:-my-3 space-y-4">
|
15
15
|
<%= render Avo::TabSwitcherComponent.new resource: resource, current_tab: visible_tabs.first, group: group, active_tab_name: tab.name, view: view %>
|
16
16
|
<% if !tab.is_empty? %>
|
17
17
|
<% if tab.lazy_load && view.display? %>
|
@@ -28,7 +28,7 @@ module Avo
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def button_classes(extra_classes = nil, color: nil, variant: nil, size: :md, active: false)
|
31
|
-
classes = "inline-flex grow-0 items-center text-sm font-semibold leading-6 fill-current whitespace-nowrap transition duration-100 rounded
|
31
|
+
classes = "inline-flex flex-grow-0 items-center text-sm font-semibold leading-6 fill-current whitespace-nowrap transition duration-100 rounded transform transition duration-100 active:translate-x-px active:translate-y-px cursor-pointer disabled:cursor-not-allowed #{extra_classes}"
|
32
32
|
|
33
33
|
if color.present?
|
34
34
|
if variant.present? && (variant.to_sym == :outlined)
|
@@ -71,7 +71,7 @@ module Avo
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def input_classes(extra_classes = "", has_error: false)
|
74
|
-
classes = "appearance-none inline-flex bg-gray-25 disabled:cursor-not-allowed text-gray-600 disabled:opacity-50 rounded
|
74
|
+
classes = "appearance-none inline-flex bg-gray-25 disabled:cursor-not-allowed text-gray-600 disabled:opacity-50 rounded py-2 px-3 leading-tight border focus:border-gray-600 focus-visible:ring-0 focus:text-gray-700 placeholder:text-gray-300"
|
75
75
|
|
76
76
|
classes += if has_error
|
77
77
|
" border-red-600"
|
@@ -85,11 +85,11 @@ module Avo
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def white_panel_classes
|
88
|
-
"bg-white rounded
|
88
|
+
"bg-white rounded shadow-md"
|
89
89
|
end
|
90
90
|
|
91
91
|
def card_classes
|
92
|
-
"bg-white rounded
|
92
|
+
"bg-white rounded shadow-panel"
|
93
93
|
end
|
94
94
|
|
95
95
|
def get_model_class(model)
|
@@ -145,7 +145,7 @@ export default class extends Controller {
|
|
145
145
|
const inputValue = id === 'key' ? key : value
|
146
146
|
|
147
147
|
return `<input
|
148
|
-
class="${this.options.inputClasses} focus:bg-gray-100 !rounded-none border-gray-600 border-r border-l-0 border-b-0 border-t-0 focus:border-gray-300 w-1/2 focus:outline-
|
148
|
+
class="${this.options.inputClasses} focus:bg-gray-100 !rounded-none border-gray-600 border-r border-l-0 border-b-0 border-t-0 focus:border-gray-300 w-1/2 focus:outline-none outline-none key-value-input-${id}"
|
149
149
|
data-action="input->key-value#${id}FieldUpdated"
|
150
150
|
placeholder="${this.options[`${id}_label`]}"
|
151
151
|
data-index="${index}"
|
@@ -36,7 +36,7 @@ export function suggestionItemTemplate(tagData) {
|
|
36
36
|
${
|
37
37
|
tagData.avatar
|
38
38
|
? `
|
39
|
-
<div class='rounded
|
39
|
+
<div class='rounded w-8 h-8 block mr-2'>
|
40
40
|
<img onerror="this.style.visibility='hidden'" class="w-full" src="${tagData.avatar}">
|
41
41
|
</div>`
|
42
42
|
: ''
|
@@ -152,7 +152,7 @@ export default class extends Controller {
|
|
152
152
|
classes = 'rounded-full'
|
153
153
|
break
|
154
154
|
case 'rounded':
|
155
|
-
classes = 'rounded
|
155
|
+
classes = 'rounded'
|
156
156
|
break
|
157
157
|
case 'square':
|
158
158
|
classes = 'rounded-none'
|
@@ -163,7 +163,7 @@ export default class extends Controller {
|
|
163
163
|
createElement('img', {
|
164
164
|
src: item._avatar,
|
165
165
|
alt: item._label,
|
166
|
-
class: `shrink-0 w-8 h-8 my-[2px] inline mr-2 ${classes}`,
|
166
|
+
class: `flex-shrink-0 w-8 h-8 my-[2px] inline mr-2 ${classes}`,
|
167
167
|
}),
|
168
168
|
)
|
169
169
|
}
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<div class="sm:col-span-6 mt-4">
|
13
13
|
<label for="about" class="block text-sm font-medium text-gray-700">Details</label>
|
14
14
|
<div class="mt-1">
|
15
|
-
<%= f.text_area :body, rows: 3, class: "block w-full rounded-md border-gray-300 shadow-
|
15
|
+
<%= f.text_area :body, rows: 3, class: "block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm disabled:bg-gray-100", disabled: !Avo::Current.license.pro? %>
|
16
16
|
</div>
|
17
17
|
</div>
|
18
18
|
<%= f.hidden_field :license_key, value: Avo::Services::DebugService.debug_report(request)[:license_response]["license_key"] %>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<% end %>
|
20
20
|
<% c.with_bare_content do %>
|
21
21
|
<div class="grid gap-4 grid-cols-2">
|
22
|
-
<div class="relative flex flex-col bg-white rounded
|
22
|
+
<div class="relative flex flex-col bg-white rounded shadow-panel p-4 space-y-4 h-full">
|
23
23
|
<div class="flex justify-between w-full">
|
24
24
|
<div class="font-semibold">License info</div>
|
25
25
|
<div class="flex justify-self-end">
|
@@ -52,31 +52,26 @@
|
|
52
52
|
</dl>
|
53
53
|
<% end %>
|
54
54
|
<div class="mt-4">
|
55
|
-
<dl
|
55
|
+
<dl>
|
56
56
|
<% information_items.each do |item| %>
|
57
|
-
<
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
<dt class="font-semibold text-sm"><%= item.humanize %></dt>
|
58
|
+
<dd><%= license.response[item] %></dd>
|
59
|
+
<% end %>
|
60
|
+
<dt class="font-semibold text-sm">Last fetched at</dt>
|
61
|
+
<dd><%= license.response['fetched_at'] %> <br>
|
62
|
+
<% if license.response['fetched_at'].present? %>
|
63
|
+
(<%= time_ago_in_words license.response['fetched_at'] %> ago)</dd>
|
61
64
|
<% end %>
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
<% end %>
|
67
|
-
</dd>
|
68
|
-
<div>
|
69
|
-
<dt class="font-semibold text-sm">Cache store</dt>
|
70
|
-
<dd>
|
71
|
-
<%= Avo.cache_store.class %>
|
72
|
-
</dd>
|
73
|
-
</div>
|
65
|
+
<dt class="font-semibold text-sm">Cache store</dt>
|
66
|
+
<dd>
|
67
|
+
<%= Avo.cache_store.class %>
|
68
|
+
</dd>
|
74
69
|
</dl>
|
75
70
|
</div>
|
76
71
|
</div>
|
77
72
|
</div>
|
78
73
|
</div>
|
79
|
-
<div class="relative flex flex-col bg-white rounded
|
74
|
+
<div class="relative flex flex-col bg-white rounded shadow-panel p-4 space-y-4 h-full">
|
80
75
|
<div class="flex justify-between w-full">
|
81
76
|
<div class="font-semibold">Plugins</div>
|
82
77
|
</div>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<div class="mt-2">
|
8
8
|
<code class="text-lg">Toggle published</code>
|
9
9
|
<div class="mt-1">
|
10
|
-
<code class="p-1 rounded
|
10
|
+
<code class="p-1 rounded bg-sky-500 text-white">bin/rails generate avo:action toggle_published</code>
|
11
11
|
</div>
|
12
12
|
</div>
|
13
13
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
<div class="mt-2">
|
10
10
|
<div class="mt-1">
|
11
|
-
<code class="p-1 rounded
|
11
|
+
<code class="p-1 rounded bg-sky-500 text-white">bin/rails generate avo:dashboard dashy</code>
|
12
12
|
</div>
|
13
13
|
</div>
|
14
14
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<div class="mt-2">
|
8
8
|
<code class="text-lg">Published filter</code>
|
9
9
|
<div class="mt-1">
|
10
|
-
<code class="p-1 rounded
|
10
|
+
<code class="p-1 rounded bg-sky-500 text-white">bin/rails generate avo:filter published_filter</code>
|
11
11
|
</div>
|
12
12
|
</div>
|
13
13
|
|
@@ -20,7 +20,7 @@
|
|
20
20
|
<% models.each do |model| %>
|
21
21
|
<code class="text-lg"><%= model.to_s %></code>
|
22
22
|
<div>
|
23
|
-
<code class="p-1 rounded
|
23
|
+
<code class="p-1 rounded bg-sky-500 text-white">bin/rails generate avo:resource <%= model.to_s %></code>
|
24
24
|
</div>
|
25
25
|
<% end %>
|
26
26
|
</div>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
You may generate a resource using the following command:
|
31
31
|
<br>
|
32
32
|
|
33
|
-
<code class="p-1 rounded
|
33
|
+
<code class="p-1 rounded bg-sky-500 text-white">bin/rails generate avo:resource post</code>
|
34
34
|
</div>
|
35
35
|
<% end %>
|
36
36
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<div class="relative block text-gray-300 h-64 w-full">
|
9
9
|
<%= svg "avo/failed_to_load", class: "#{classes} h-52 text-gray-400" %>
|
10
10
|
</div>
|
11
|
-
<div class="relative block text-center text-lg text-gray-400 font-semibold pb-6"><%= label %> <span class="border-b-2 border-
|
11
|
+
<div class="relative block text-center text-lg text-gray-400 font-semibold pb-6"><%= label %> <span class="border-b-2 border-dashed"><%= params[:turbo_frame].to_s.humanize.downcase if params[:turbo_frame].present? %></span> frame</div>
|
12
12
|
<% if Rails.env.development? && src_url %>
|
13
13
|
<div class="text-center text-sm w-full pb-3">
|
14
14
|
This is not an issue with Avo. Use <%= link_to 'this page', src_url, target: :_blank %> to see why this frame failed to load.
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<dialog id="turbo-confirm" class="
|
1
|
+
<dialog id="turbo-confirm" class="w-72">
|
2
2
|
<form method="dialog">
|
3
3
|
<div class="relative w-full max-w-xl max-h-full">
|
4
|
-
<div class="relative bg-white rounded-lg shadow
|
4
|
+
<div class="relative bg-white rounded-lg shadow">
|
5
5
|
<button value="cancel" class="absolute top-3 end-2.5 text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 ms-auto inline-flex justify-center items-center" data-modal-hide="popup-modal" tabindex="3">
|
6
6
|
<%= svg "x-mark", class: "size-6" %>
|
7
7
|
<span class="sr-only"><%= t "avo.close_modal" %></span>
|
@@ -14,10 +14,10 @@
|
|
14
14
|
<%= t "avo.are_you_sure" %>
|
15
15
|
</p>
|
16
16
|
<div class="mt-12 w-full flex flex-col justify-center gap-2">
|
17
|
-
<button value="confirm" class="text-red-600 border border-red-600 hover:bg-red-50 focus:ring-4 focus:outline-
|
17
|
+
<button value="confirm" class="text-red-600 border border-red-600 hover:bg-red-50 focus:ring-4 focus:outline-none focus:ring-red-300 font-medium rounded-lg text-sm items-center px-4 py-2 text-center" tabindex="1" autofocus>
|
18
18
|
<%= t "avo.yes_confirm" %>
|
19
19
|
</button>
|
20
|
-
<button value="cancel" class="px-4 py-2 text-sm font-medium text-gray-900 focus:outline-
|
20
|
+
<button value="cancel" class="px-4 py-2 text-sm font-medium text-gray-900 focus:outline-none bg-white rounded-lg border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-100" tabindex="2">
|
21
21
|
<%= t "avo.no_cancel" %>
|
22
22
|
</button>
|
23
23
|
</div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if @custom_tools_alert_visible %>
|
2
2
|
<div class="w-full inset-auto bottom-0 z-50 mb-4 opacity-75 hover:opacity-100 transition-opacity duration-150">
|
3
|
-
<a href="https://avohq.io/pricing" target="_blank" class="rounded
|
4
|
-
<%= svg "avo/exclamation", class: "h-6 inline mr-2 text-bold shrink-0 mr-1" %> Warning. <%= @custom_tools_alert_visible %> This page will not be visible in a production environment.
|
3
|
+
<a href="https://avohq.io/pricing" target="_blank" class="rounded bg-orange-700 text-white py-2 px-4 text-sm block items-center flex leading-tight">
|
4
|
+
<%= svg "avo/exclamation", class: "h-6 inline mr-2 text-bold flex-shrink-0 mr-1" %> Warning. <%= @custom_tools_alert_visible %> This page will not be visible in a production environment.
|
5
5
|
</a>
|
6
6
|
</div>
|
7
7
|
<% end %>
|
@@ -12,8 +12,8 @@
|
|
12
12
|
url, message, target = error.values_at :url, :message, :target
|
13
13
|
%>
|
14
14
|
<div class="w-full inset-auto bottom-0 z-50 mb-4 opacity-75 hover:opacity-100 transition-opacity duration-150">
|
15
|
-
<a href="<%= url %>" target="<%= target %>" class="rounded
|
16
|
-
<%= svg "avo/exclamation", class: "h-6 inline mr-2 text-bold shrink-0 mr-1" %>
|
15
|
+
<a href="<%= url %>" target="<%= target %>" class="rounded bg-orange-700 text-white py-2 px-4 text-sm items-center flex leading-tight space-x-2">
|
16
|
+
<%= svg "avo/exclamation", class: "h-6 inline mr-2 text-bold flex-shrink-0 mr-1" %>
|
17
17
|
<div>
|
18
18
|
<%= simple_format message %>
|
19
19
|
</div>
|
@@ -21,8 +21,8 @@
|
|
21
21
|
</div>
|
22
22
|
<% elsif error.is_a? String %>
|
23
23
|
<div class="w-full inset-auto bottom-0 z-50 mb-4 opacity-75 hover:opacity-100 transition-opacity duration-150">
|
24
|
-
<div class="rounded
|
25
|
-
<%= svg "avo/exclamation", class: "h-6 inline mr-2 text-bold shrink-0 mr-1" %>
|
24
|
+
<div class="rounded bg-orange-700 text-white py-2 px-4 text-sm items-center flex leading-tight space-x-2">
|
25
|
+
<%= svg "avo/exclamation", class: "h-6 inline mr-2 text-bold flex-shrink-0 mr-1" %>
|
26
26
|
<div><%= simple_format error %></div>
|
27
27
|
</div>
|
28
28
|
</div>
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<%= content_tag :div, class: class_names("fixed bg-white p-2 w-full flex shrink-0 items-center z-[100] px-4 lg:px-4 border-b
|
2
|
-
<div class="flex items-center space-x-2 w-auto lg:w-64 shrink-0 h-full">
|
1
|
+
<%= content_tag :div, class: class_names("fixed bg-white p-2 w-full flex flex-shrink-0 items-center z-[100] px-4 lg:px-4 border-b space-x-4 lg:space-x-0 h-16", {"print:hidden": Avo.configuration.hide_layout_when_printing}) do %>
|
2
|
+
<div class="flex items-center space-x-2 w-auto lg:w-64 flex-shrink-0 h-full">
|
3
3
|
<div>
|
4
4
|
<%= a_button class: 'lg:hidden', icon: 'avo/menu', size: :xs, compact: true, style: :text, data: { action: 'click->sidebar#toggleSidebarOnMobile' }, aria: {label: "Toggle sidebar"} %>
|
5
|
-
<%= a_button class: '
|
5
|
+
<%= a_button class: 'hidden lg:block', icon: 'avo/menu', size: :xs, compact: true, style: :text, data: { action: 'click->sidebar#toggleSidebar' }, aria: {label: "Toggle sidebar"} %>
|
6
6
|
</div>
|
7
7
|
<%= render partial: "avo/partials/logo" %>
|
8
8
|
</div>
|
@@ -12,5 +12,5 @@
|
|
12
12
|
<% end %>
|
13
13
|
>
|
14
14
|
</div>
|
15
|
-
<div class="hidden relative text-gray-400 text-sm border border-gray-300 rounded
|
15
|
+
<div class="hidden relative inline-flex text-gray-400 text-sm border border-gray-300 rounded cursor-pointer" data-search-target="button"></div>
|
16
16
|
</div>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
name: t("avo.select_all"),
|
11
11
|
title: t("avo.select_all"),
|
12
12
|
autocomplete: :off,
|
13
|
-
class: "mx-3 rounded
|
13
|
+
class: "mx-3 rounded w-4 h-4 checked:bg-primary-400 focus:checked:!bg-primary-400",
|
14
14
|
data: {
|
15
15
|
action: "input->item-select-all#toggle",
|
16
16
|
item_select_all_target: "checkbox",
|
@@ -97,7 +97,7 @@
|
|
97
97
|
association_name: @field&.for_attribute || @field&.id
|
98
98
|
}.compact
|
99
99
|
) %>"
|
100
|
-
class="absolute inset-auto bg-white w-full sm:w-[400px] top-0 mt-6 p-4 z-40 shadow-modal rounded
|
100
|
+
class="absolute inset-auto bg-white w-full sm:w-[400px] top-0 mt-6 p-4 z-40 shadow-modal rounded overflow-hidden hidden border border-gray-50"
|
101
101
|
data-toggle-target="panel"
|
102
102
|
>
|
103
103
|
<%= render Avo::LoadingComponent.new %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="w-10/12 ml-1/12 inset-auto bottom-0 z-50 my-4 opacity-50 hover:opacity-100 transition-opacity duration-150 group">
|
2
|
-
<a href="https://avohq.io/pricing" target="_blank" class="rounded
|
2
|
+
<a href="https://avohq.io/pricing" target="_blank" class="rounded bg-green-700 text-white py-2 px-4 text-sm block group-hover:pt-4">
|
3
3
|
<%= svg "avo/exclamation", class: 'h-6 inline mr-1 text-bold' %> <%= title %>
|
4
4
|
<div class="group-hover:block hidden py-2">
|
5
5
|
<%= message %> <%= svg "avo/arrow-circle-right", class: "h-6 inline float-right" %>
|