avo 3.17.1.tw4 → 3.17.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +0 -1
- data/app/assets/stylesheets/avo.base.css +14 -6
- 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/status_viewer_component.html.erb +5 -6
- 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 +9537 -7891
- data/public/avo-assets/avo.base.js +3 -3
- data/public/avo-assets/avo.base.js.map +2 -2
- metadata +6 -3
@@ -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 inline-flex 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" %>
|
@@ -26,22 +26,21 @@ module Avo
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def row_controls_classes
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
"
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
)
|
29
|
+
classes = "text-right whitespace-nowrap px-3"
|
30
|
+
|
31
|
+
if render_row_controls_on_the_left?
|
32
|
+
classes += " w-px"
|
33
|
+
end
|
34
|
+
|
35
|
+
if row_controls_configurations[:show_on_hover]
|
36
|
+
classes += " opacity-0 group-hover:opacity-100"
|
37
|
+
end
|
38
|
+
|
39
|
+
if row_controls_configurations[:float]
|
40
|
+
classes += " floating-row-controls sticky group-hover:bg-gray-50 bg-white inset-auto right-0"
|
41
|
+
end
|
42
|
+
|
43
|
+
classes
|
45
44
|
end
|
46
45
|
end
|
47
46
|
end
|
@@ -25,7 +25,7 @@ class Avo::Resources::Items::Holder
|
|
25
25
|
as = args.fetch(:as, nil)
|
26
26
|
|
27
27
|
alert_type = :error
|
28
|
-
message = "There's an invalid field configuration for this resource. <br/> <code class='px-1 py-px rounded
|
28
|
+
message = "There's an invalid field configuration for this resource. <br/> <code class='px-1 py-px rounded bg-red-600'>field :#{field_name}, as: :#{as}</code>"
|
29
29
|
|
30
30
|
if as == :markdown
|
31
31
|
alert_type = :warning
|
data/lib/avo/version.rb
CHANGED
@@ -3,6 +3,6 @@
|
|
3
3
|
Dashboard ID: <%%= @dashboard.id %>
|
4
4
|
<br />
|
5
5
|
<br />
|
6
|
-
Customize this partial under <code class='p-1 rounded
|
6
|
+
Customize this partial under <code class='p-1 rounded bg-gray-500 text-white text-sm'>app/views/avo/cards/_<%= name.underscore %>.html.erb</code>
|
7
7
|
</div>
|
8
8
|
</div>
|
@@ -41,7 +41,7 @@ module Generators
|
|
41
41
|
# will generate the avo.lolo_path helper
|
42
42
|
# THe fact that it will always generate the definded? and Avo::Engine.routes.draw wraps is unfortunate. We'd love a PR to fix that.
|
43
43
|
route_contents = <<~ROUTE
|
44
|
-
|
44
|
+
|
45
45
|
if defined? ::Avo
|
46
46
|
Avo::Engine.routes.draw do
|
47
47
|
# This route is not protected, secure it with authentication if needed.
|
@@ -69,7 +69,7 @@ module Generators
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def in_code(text)
|
72
|
-
"<code class='p-1 rounded
|
72
|
+
"<code class='p-1 rounded bg-gray-500 text-white text-sm'>#{text}</code>"
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
data/lib/tasks/avo_tasks.rake
CHANGED
@@ -135,5 +135,5 @@ task "avo:yarn_install" do
|
|
135
135
|
# tailwind.preset.js needs this dependencies in order to be required
|
136
136
|
# Ensure that versions remain updated and synchronized with those specified in package.json.
|
137
137
|
puts "[Avo->] Adding yarn dependencies"
|
138
|
-
`yarn add tailwindcss@^4.
|
138
|
+
`yarn add tailwindcss@^3.4.17 @tailwindcss/forms@^0.5.10 @tailwindcss/typography@^0.5.16 @tailwindcss/container-queries@^0.1.1 --cwd #{Avo::Engine.root}`
|
139
139
|
end
|