bullet_train-themes-light 1.2.10 → 1.2.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/light/fields/date_field.css +1 -1
- data/app/assets/stylesheets/light/fields/index.css +5 -0
- data/app/assets/stylesheets/light/fields/super_select.css +5 -5
- data/app/assets/stylesheets/light/fields/trix_editor.css +1 -1
- data/app/assets/stylesheets/light/tailwind/colors/amber.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/blue.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/cyan.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/emerald.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/fuchsia.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/gray.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/green.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/indigo.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/lime.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/neutral.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/orange.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/pink.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/purple.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/red.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/rose.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/sky.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/slate.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/stone.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/teal.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/violet.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/yellow.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors/zinc.css +23 -0
- data/app/assets/stylesheets/light/tailwind/colors.css +45 -296
- data/app/assets/stylesheets/light/tailwind/components.css +14 -6
- data/app/assets/stylesheets/light/tailwind/dark-mode.css +29 -92
- data/app/assets/stylesheets/light/tailwind/secondary_colors/amber.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/blue.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/cyan.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/emerald.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/fuchsia.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/gray.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/green.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/indigo.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/lime.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/neutral.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/orange.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/pink.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/purple.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/red.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/rose.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/sky.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/slate.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/stone.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/teal.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/violet.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/yellow.css +12 -0
- data/app/assets/stylesheets/light/tailwind/secondary_colors/zinc.css +12 -0
- data/app/assets/stylesheets/light/tailwind/utilities.css +1 -22
- data/app/views/showcase/previews/partials/_alert.html.erb +16 -0
- data/app/views/showcase/previews/partials/_box.html.erb +43 -0
- data/app/views/showcase/previews/partials/_breadcrumb.html.erb +14 -0
- data/app/views/showcase/previews/partials/_page.html.erb +30 -0
- data/app/views/showcase/previews/partials/_title.html.erb +14 -0
- data/app/views/showcase/previews/partials/actions/_box.html.erb +11 -0
- data/app/views/showcase/previews/partials/actions/_list.html.erb +9 -0
- data/app/views/showcase/previews/tailwind/components/_button.html.erb +17 -0
- data/app/views/showcase/previews/tailwind/components/_link.html.erb +5 -0
- data/app/views/showcase/previews/tailwind/utilities/_small_text.html.erb +5 -0
- data/app/views/showcase/previews/tailwind/utilities/_spacing.html.erb +21 -0
- data/app/views/themes/light/_alert.html.erb +15 -11
- data/app/views/themes/light/_box.html.erb +5 -5
- data/app/views/themes/light/_breadcrumb.html.erb +3 -3
- data/app/views/themes/light/_cell.html.erb +2 -2
- data/app/views/themes/light/_decision_line.html.erb +2 -2
- data/app/views/themes/light/_line.html.erb +2 -2
- data/app/views/themes/light/_team.html.erb +30 -0
- data/app/views/themes/light/_well.html.erb +2 -2
- data/app/views/themes/light/actions/_action.html.erb +7 -7
- data/app/views/themes/light/actions/_list.html.erb +1 -1
- data/app/views/themes/light/attributes/_base.html.erb +1 -1
- data/app/views/themes/light/attributes/_progress_bar.html.erb +1 -1
- data/app/views/themes/light/billing/_pricing_table.html.erb +5 -5
- data/app/views/themes/light/commentary/_box.html.erb +1 -11
- data/app/views/themes/light/conversations/_card.html.erb +5 -5
- data/app/views/themes/light/conversations/_comment.html.erb +3 -3
- data/app/views/themes/light/conversations/_message.html.erb +7 -7
- data/app/views/themes/light/conversations/_thread_border.html.erb +1 -1
- data/app/views/themes/light/fields/_field.html.erb +4 -4
- data/app/views/themes/light/layouts/_account.html.erb +6 -6
- data/app/views/themes/light/layouts/_devise.html.erb +1 -2
- data/app/views/themes/light/menu/_account.html.erb +7 -3
- data/app/views/themes/light/menu/_heading.html.erb +1 -1
- data/app/views/themes/light/menu/_item.html.erb +2 -2
- data/app/views/themes/light/menu/_mobile.html.erb +6 -6
- data/app/views/themes/light/menu/_open.html.erb +1 -1
- data/app/views/themes/light/menu/_subsection.html.erb +5 -3
- data/app/views/themes/light/menu/_user.html.erb +1 -1
- data/app/views/themes/light/workflow/_box.html.erb +1 -1
- data/lib/bullet_train/themes/light/version.rb +1 -1
- data/lib/bullet_train/themes/light.rb +1 -0
- data/tailwind.light.config.js +8 -45
- metadata +58 -2
@@ -1,6 +1,6 @@
|
|
1
1
|
<% yield p = np %>
|
2
2
|
|
3
|
-
<div class="border border-
|
3
|
+
<div class="border border-slate-300 dark:border-opacity-10 rounded-md bg-slate-50 dark:bg-opacity-10">
|
4
4
|
<% if p.content_for?(:title) || p.content_for?(:description) || p.content_for?(:body) %>
|
5
5
|
<div class="py-4 px-5 space-y">
|
6
6
|
<% if p.content_for?(:title) || p.content_for?(:description) %>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<% end %>
|
13
13
|
|
14
14
|
<% if p.content_for? :description %>
|
15
|
-
<p class="text-
|
15
|
+
<p class="text-slate-400 font-light leading-normal">
|
16
16
|
<%= p.content_for :description %>
|
17
17
|
</p>
|
18
18
|
<% end %>
|
@@ -35,22 +35,22 @@
|
|
35
35
|
|
36
36
|
<% if action.completed? %>
|
37
37
|
<% if action.is_a?(Actions::HasProgress) %>
|
38
|
-
<div class="uppercase text-xs text-
|
38
|
+
<div class="uppercase text-xs text-slate-400">
|
39
39
|
Processed <%= action.performed_count %> of <%= action.target_count %> <%= display_date_and_time(action.completed_at) %>
|
40
40
|
</div>
|
41
41
|
<% else %>
|
42
|
-
<div class="uppercase text-xs text-
|
42
|
+
<div class="uppercase text-xs text-slate-400">
|
43
43
|
Processed <%= display_date_and_time(action.completed_at) %>
|
44
44
|
</div>
|
45
45
|
<% end %>
|
46
46
|
|
47
47
|
<% elsif action.is_a?(Actions::RequiresApproval) && !action.approved? %>
|
48
|
-
<div class="uppercase text-xs text-
|
48
|
+
<div class="uppercase text-xs text-slate-400">
|
49
49
|
Awaiting approval
|
50
50
|
</div>
|
51
51
|
|
52
52
|
<% elsif action.is_a?(Actions::SupportsScheduling) && action.scheduled_for && !action.started? %>
|
53
|
-
<div class="uppercase text-xs text-
|
53
|
+
<div class="uppercase text-xs text-slate-400">
|
54
54
|
Scheduled for <%= display_date_and_time(action.scheduled_for) %>
|
55
55
|
</div>
|
56
56
|
|
@@ -59,17 +59,17 @@
|
|
59
59
|
<%= render "shared/attributes/progress_bar", object: action, attribute: :performed_count, total: :target_count %>
|
60
60
|
</div>
|
61
61
|
|
62
|
-
<div class="mt-2 uppercase text-xs text-
|
62
|
+
<div class="mt-2 uppercase text-xs text-slate-400">
|
63
63
|
Processing <%= action.performed_count %> of <%= action.target_count %>
|
64
64
|
</div>
|
65
65
|
|
66
66
|
<% elsif action.is_a?(Actions::HasProgress) %>
|
67
|
-
<div class="uppercase text-xs text-
|
67
|
+
<div class="uppercase text-xs text-slate-400">
|
68
68
|
Preparing to process <%= action.performed_count %> of <%= action.target_count %>
|
69
69
|
</div>
|
70
70
|
|
71
71
|
<% else %>
|
72
|
-
<div class="uppercase text-xs text-
|
72
|
+
<div class="uppercase text-xs text-slate-400">
|
73
73
|
Preparing to process
|
74
74
|
</div>
|
75
75
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<% if completion_percent == 100 %>
|
12
12
|
<i class="fal fa-check ti ti-check text-green-500"></i>
|
13
13
|
<% else %>
|
14
|
-
<div class="h-4 bg-
|
14
|
+
<div class="h-4 bg-slate-100 shadow-inner rounded w-full">
|
15
15
|
<div class="h-4 <%= 'animate-pulse' unless completion_percent == 100 %> bg-primary-500 rounded" style="width: <%= completion_percent %>%"></div>
|
16
16
|
</div>
|
17
17
|
<% end %>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<%= link_to request.path + (i > 0 ? "?duration=#{duration}" : ""), class: "#{duration == current_duration ? "button-alternative" : "button"} rounded-full text-base" do %>
|
10
10
|
<%= t("billing/prices.intervals.#{duration}.description") %>
|
11
11
|
<% if i > 0 %>
|
12
|
-
<small class="ml-2 uppercase <%= duration == current_duration ? "text-
|
12
|
+
<small class="ml-2 uppercase <%= duration == current_duration ? "text-slate-400" : "text-slate-300" %>">
|
13
13
|
<%= number_to_percentage(calculate_discount(prices_by_duration[duration].first, prices_by_duration[prices_by_duration.keys.first].first), precision: 0) %> Discount
|
14
14
|
</small>
|
15
15
|
<% end %>
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
<div class="lg:flex flex-row justify-center">
|
22
22
|
<% prices_by_duration[current_duration].each_with_index do |price, i| %>
|
23
|
-
<div class="bg-
|
23
|
+
<div class="bg-slate-50 flex-1 lg:max-w-md border ml-0 mr-0 mt-0 mb-5 <%= "lg:-ml-px lg:-mr-px lg:-mt-5 lg:mb-0 pricing-table-shadow" if price.highlight? %> <%= price.highlight? ? "z-10" : "z-0" %>">
|
24
24
|
<div class="bg-white <%= "border-t-4 border-primary-500" if price.highlight? %>">
|
25
25
|
<div class="text-center py-10 px-5 border-b">
|
26
26
|
<%= image_tag image_path("products/#{price.product.image}"), width: 100, height: 100, class: "inline mb-7" %>
|
@@ -31,7 +31,7 @@
|
|
31
31
|
</div>
|
32
32
|
<div class="bg-white text-center py-10 px-5 border-b">
|
33
33
|
<div class="text-6xl font-semibold text-black <%= "text-primary-500" if price.highlight? %>"><%= smaller_currency_symbol(number_to_currency(price.currency_amount, precision: 0, locale: :en)) %></div>
|
34
|
-
<div class="mt-3 pt-2 inline-block border-t border-
|
34
|
+
<div class="mt-3 pt-2 inline-block border-t border-slate-300 uppercase text-lg opacity-40 tracking-wider">
|
35
35
|
<% if price.quantity %>
|
36
36
|
<%= t("billing/prices.intervals.#{price.interval}.description") %>
|
37
37
|
<%= t("billing/prices.models.#{price.quantity}.per") %>
|
@@ -45,11 +45,11 @@
|
|
45
45
|
</div>
|
46
46
|
<div class="my-12 mx-12">
|
47
47
|
<h3 class="text-xs uppercase font-semibold tracking-widest">Description</h3>
|
48
|
-
<p class="text-base mt-3 text-
|
48
|
+
<p class="text-base mt-3 text-slate-500"><%= price.product.description %></p>
|
49
49
|
|
50
50
|
<h3 class="mt-8 text-xs uppercase font-semibold tracking-widest">Details</h3>
|
51
51
|
<% if price.product.features %>
|
52
|
-
<ul class="text-base mt-5 text-
|
52
|
+
<ul class="text-base mt-5 text-slate-500 space-y-3">
|
53
53
|
<% price.product.features.each do |feature| %>
|
54
54
|
<li class="flex items-start">
|
55
55
|
<div class="flex-shrink-0 text-green-500">
|
@@ -1,13 +1,3 @@
|
|
1
1
|
<% yield p = np %>
|
2
2
|
|
3
|
-
|
4
|
-
<div class="border border-dashed rounded-lg border-yellow-500 bg-yellow-400 dark:bg-opacity-10 dark:border-yellow-200 dark:border-opacity-70 -m-3 p-3 xl:py-4 xl:px-4 xl:-mx-4">
|
5
|
-
<%= p.content_for :content %>
|
6
|
-
|
7
|
-
<div class="py-3 px-3 space-y-2 pt-6">
|
8
|
-
<p class="text-yellow-600 dark:text-yellow-200 font-light leading-normal">
|
9
|
-
<%= p.content_for :commentary %>
|
10
|
-
</p>
|
11
|
-
</div>
|
12
|
-
</div>
|
13
|
-
</div>
|
3
|
+
<%= p.content_for :content %>
|
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
<div class="<%= 'border-l-primary-500 border-l-4 border-primary-600' if subscription.unread? %>">
|
4
4
|
|
5
|
-
<%= link_to [:account, current_user, :conversations, :subscriptions, conversation_id: subscription.conversation.id], class: "#{current_conversation ? 'bg-
|
5
|
+
<%= link_to [:account, current_user, :conversations, :subscriptions, conversation_id: subscription.conversation.id], class: "#{current_conversation ? 'bg-slate-100 border-l ' : 'bg-white'} h-28 p-1 flex border-b-2 cursor-pointer hover:no-underline hover:bg-slate-50 relative items-center" do %>
|
6
6
|
<div class="md:w-1/4 w-1/5 lg:inline-block md:hidden flex-shrink-0">
|
7
7
|
<img src="<%= membership_profile_photo_url(conversation.last_message&.membership || current_membership) %>" title="<%= current_membership.name %>" alt="<%= current_membership.name %>" class="md:w-14 md:h-14 w-12 h-12 rounded-full mx-auto border-1 border-white border-2 flex-none">
|
8
8
|
</div>
|
9
9
|
<div class="w-4/5 md:w-full lg:w-4/5 pl-4 pr-1 flex-initial truncate">
|
10
|
-
<p class="text-xs text-
|
11
|
-
<h2 class="<%= subscription.unread? ? 'font-bold text-
|
12
|
-
<div class="text-
|
10
|
+
<p class="text-xs text-slate-300 text-right hover:no-underline"><%= "#{time_ago_in_words conversation.last_message.created_at} ago" unless conversation.last_message.nil? %></p>
|
11
|
+
<h2 class="<%= subscription.unread? ? 'font-bold text-slate-800' : 'font-semibold text-slate-600' %> "><%= conversation.subject&.label_string %></h2>
|
12
|
+
<div class="text-slate-300">
|
13
13
|
<%= conversation.last_message&.user&.label_string %>
|
14
14
|
</div>
|
15
|
-
<div class="h-8 text-
|
15
|
+
<div class="h-8 text-slate-400 text-sm pt-1 hover:no-underline truncate">
|
16
16
|
<%= Nokogiri::HTML.fragment(conversation.last_message.body).text unless conversation.last_message.nil? %>
|
17
17
|
</div>
|
18
18
|
</div>
|
@@ -4,10 +4,10 @@
|
|
4
4
|
<img src="<%= membership_profile_photo_url(message.membership) %>" title="<%= message.membership.name %>" alt="<%= message.membership.name %>" class="w-10 h-10 rounded-full <%= current_user_message ? 'order-2' : 'order-1' %>">
|
5
5
|
<% end %>
|
6
6
|
|
7
|
-
<div class="flex py-3 px-2 text-
|
7
|
+
<div class="flex py-3 px-2 text-slate-700 <%= message.reply? ? 'border w-full bg-slate-50 rounded-md' : 'border-b' %> <%= 'opacity-30' if new_message %>">
|
8
8
|
<div class="mr-3 min-w-max"><%= avatar %></div>
|
9
9
|
<div class="flex flex-col w-full">
|
10
|
-
<div class=""><span class="uppercase font-bold text-
|
10
|
+
<div class=""><span class="uppercase font-bold text-slate-500"><%= message.user.name %></span><span class="font-extralight text-xs text-slate-400"> • <%= time_ago_in_words message.created_at %> ago</span></div>
|
11
11
|
<div class="py-2"><%= trix_sanitize message.body %></div>
|
12
12
|
<% if message.replies.any? %>
|
13
13
|
<div class="space-y-2 mt-2 mb-2">
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<% end %>
|
19
19
|
<% unless message.reply? %>
|
20
20
|
<%= turbo_frame_tag "reply_#{message.id}" do %>
|
21
|
-
<%= link_to "Reply", [:reply, :account, message], class: "font-light text-sm text-
|
21
|
+
<%= link_to "Reply", [:reply, :account, message], class: "font-light text-sm text-slate-400 hover:text-slate-500 pt-2" %>
|
22
22
|
<% end %>
|
23
23
|
<% end %>
|
24
24
|
</div>
|
@@ -74,14 +74,14 @@
|
|
74
74
|
data-action="<%= 'mouseenter->reply#showReplyButton click->reply#showReplyButton' unless placeholder_message || show_as_thread %>" data-show-class="<%= current_user_message ? 'mr-10' : 'ml-10' %>"
|
75
75
|
>
|
76
76
|
<% if placeholder_message %>
|
77
|
-
<div class="cursor-pointer" data-thread-url="<%= url_for([:thread, :account, message.thread_origin_message || message]) %>" data-action="click->reply#reply"><span class="px-2 py-1 text-xs text-
|
77
|
+
<div class="cursor-pointer" data-thread-url="<%= url_for([:thread, :account, message.thread_origin_message || message]) %>" data-action="click->reply#reply"><span class="px-2 py-1 text-xs text-slate-300 rounded-lg inline-block <%= rounding_modifier %> border-primary-300 border break-words sm:max-w-sm max-w-tiny"><%= Nokogiri::HTML.fragment(trix_sanitize(message.body)).text.truncate(80) %></span></div>
|
78
78
|
<% else %>
|
79
|
-
<div><span class="px-4 py-2 rounded-lg inline-block <%= rounding_modifier %> <%= current_user_message ? ' bg-primary-600 text-white' : ' bg-
|
79
|
+
<div><span class="px-4 py-2 rounded-lg inline-block <%= rounding_modifier %> <%= current_user_message ? ' bg-primary-600 text-white' : ' bg-slate-300 text-slate-600' %> "><%= trix_sanitize(message.body) %></span></div>
|
80
80
|
<% end %>
|
81
81
|
</div>
|
82
82
|
<%= avatar %>
|
83
83
|
<% unless placeholder_message || show_as_thread %>
|
84
|
-
<div class="order-2 absolute text-
|
84
|
+
<div class="order-2 absolute text-slate-400 bottom-1 hover:text-slate-500 <%= current_user_message ? 'right-10' : 'left-10' %> z-0">
|
85
85
|
<button
|
86
86
|
data-action="click->reply#reply"
|
87
87
|
data-thread-url="<%= url_for([:thread, :account, message.thread_origin_message || message]) %>"
|
@@ -110,7 +110,7 @@
|
|
110
110
|
<% end %>
|
111
111
|
|
112
112
|
<div class="flex flex-grow order-1 <%= current_user_message ? 'justify-end items-end pr-8' : 'justify-start items-start pl-8' %> <%= 'mb-3' unless next_message_in_series %>">
|
113
|
-
<div class="<%= show_as_thread ? 'text-
|
113
|
+
<div class="<%= show_as_thread ? 'text-slate-400' : 'text-slate-300' %> text-sm">
|
114
114
|
<strong><%= message.author.name %></strong>
|
115
115
|
<%= timestamp %>
|
116
116
|
</div>
|
@@ -120,14 +120,14 @@
|
|
120
120
|
<% if message.replies.any? && false %>
|
121
121
|
<div class="mb-4">
|
122
122
|
<% message.replies.each do |reply| %>
|
123
|
-
<div class="flex text-xs font-extralight text-
|
123
|
+
<div class="flex text-xs font-extralight text-slate-300 ml-12">
|
124
124
|
<div class="<%= 'w-full' if current_user_message %>"></div>
|
125
|
-
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 682" class="w-5 h-5 stroke-current mt-4 text-
|
125
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 682" class="w-5 h-5 stroke-current mt-4 text-slate-50 fill-current">
|
126
126
|
<path d="M0 57.7c.1 145.1 4.1 224 14.5 281.1 19.4 106.3 65.2 156.4 166.3 181.7 48.7 12.1 111.4 18.8 211.7 22.5 23.8.9 196.6 2.8 268.2 3H683l.2 67.8.3 67.8 170.3-102.1L1024 477.3l-170.2-102-170.3-102-.3 67.8-.2 67.9h-75.8c-184.7 0-266.9-4.8-327.2-19-34.2-8.1-62.8-21.1-81.2-37-36.1-31.3-52.3-76.8-58.8-165.5-2-28-3-69.2-3-127.8V0H0v57.7z"/>
|
127
127
|
</svg>
|
128
128
|
<div class="flex flex-col mr-10 min-w-max">
|
129
129
|
<div class="pt-0 mr-2 ml-4 text-xxs"><%= reply.membership.label_string %> reply: </div>
|
130
|
-
<div class="bg-
|
130
|
+
<div class="bg-slate-100 rounded py-2 px-4 mt-0 text-slate-400 max-w-md"><%= reply.body.html_safe %></div>
|
131
131
|
</div>
|
132
132
|
</div>
|
133
133
|
<% end %>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<div class="flex-grow flex <%= side == :left ? 'justify-start' : 'justify-end order-2' %>">
|
2
|
-
<div class=" border-solid border-
|
2
|
+
<div class=" border-solid border-slate-300 <%= border_classes %> text-white <%= side == :left ? 'ml-12 mr-0' : 'ml-0 mr-12' %> w-6"></div>
|
3
3
|
</div>
|
@@ -14,12 +14,12 @@ other_options[:help] = [other_options[:help], labels.help].compact.join(" ")
|
|
14
14
|
errors = [method, method.to_s.gsub(/_id$/, '').to_sym].uniq.map { |attribute| form.object.errors.full_messages_for(attribute) }.flatten
|
15
15
|
has_errors = errors.any? || content_for(:error).present? || other_options[:error].present?
|
16
16
|
|
17
|
-
options[:class] = "#{options[:class]} block w-full rounded-md shadow-sm font-light text-
|
17
|
+
options[:class] = "#{options[:class]} block w-full rounded-md shadow-sm font-light text-sm dark:bg-slate-800 dark:text-slate-300"
|
18
18
|
|
19
19
|
options[:class] += if has_errors
|
20
|
-
" pr-10 border-red-500 text-red-900 placeholder-red-500
|
20
|
+
" pr-10 border-red-500 text-red-900 placeholder-red-500 outline-none focus:ring-red-500 focus:border-red-500 dark:text-slate-300"
|
21
21
|
else
|
22
|
-
" focus:ring-primary-500 focus:border-primary-500 border-
|
22
|
+
" focus:ring-primary-500 focus:border-primary-500 border-slate-300 dark:border-slate-900"
|
23
23
|
end
|
24
24
|
|
25
25
|
%>
|
@@ -65,7 +65,7 @@ end
|
|
65
65
|
|
66
66
|
<% # any help text. %>
|
67
67
|
<% if content_for?(:help) || other_options[:help].present? || content_for?(:after_help) %>
|
68
|
-
<p class="mt-1.5 text-xs text-
|
68
|
+
<p class="mt-1.5 text-xs text-slate-500 dark:text-slate-400">
|
69
69
|
<%= yield :help %>
|
70
70
|
<% flush_content_for :help %>
|
71
71
|
<%= other_options[:help]&.html_safe %>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
|
-
<html class="theme-<%= BulletTrain::Themes::Light.color %> <%= "theme-secondary-#{BulletTrain::Themes::Light.secondary_color}" if BulletTrain::Themes::Light.secondary_color %>
|
2
|
+
<html class="theme-<%= BulletTrain::Themes::Light.color %> <%= "theme-secondary-#{BulletTrain::Themes::Light.secondary_color}" if BulletTrain::Themes::Light.secondary_color %>">
|
3
3
|
<head>
|
4
4
|
<%= render 'shared/layouts/head' %>
|
5
5
|
</head>
|
6
|
-
<body class="bg-
|
6
|
+
<body class="min-h-screen <%= BulletTrain::Themes::Light.background || "bg-gradient-to-br from-secondary-200 to-primary-400 dark:from-primary-900 dark:to-primary-600" %> text-slate-700 text-sm font-normal dark:text-slate-300">
|
7
7
|
<div class="p-4 bg-primary-900 electron-draggable electron-title-bar hidden electron-mobile-only"></div>
|
8
8
|
<div class="md:p-5 main-container-padding">
|
9
9
|
<div class="h-screen md:h-auto md:rounded-lg flex shadow main-container"
|
@@ -13,23 +13,23 @@
|
|
13
13
|
<%= render "account/shared/menu/mobile" %>
|
14
14
|
|
15
15
|
<% if BulletTrain::Themes::Light.navigation == :left %>
|
16
|
-
<div class="hidden lg:flex lg:flex-shrink-0 bg-gradient-to-b from-primary-700 to-primary-800 dark:from-
|
16
|
+
<div class="hidden lg:flex lg:flex-shrink-0 bg-gradient-to-b from-primary-700 to-primary-800 dark:from-slate-800 dark:to-slate-800 md:rounded-l-lg">
|
17
17
|
<div class="w-64">
|
18
18
|
<%= render "account/shared/menu/sidebar" %>
|
19
19
|
</div>
|
20
20
|
</div>
|
21
21
|
<% end %>
|
22
22
|
|
23
|
-
<div class="flex flex-col w-0 flex-1 bg-
|
23
|
+
<div class="flex flex-col w-0 flex-1 bg-slate-100 dark:bg-slate-800 dark:border-slate-500 md:rounded-lg <%= BulletTrain::Themes::Light.navigation == :left ? "lg:border-l lg:rounded-l-none" : "" %>">
|
24
24
|
|
25
25
|
<% if BulletTrain::Themes::Light.navigation == :top %>
|
26
|
-
<div class="hidden lg:flex bg-gradient-to-b from-primary-700 to-primary-800 dark:from-
|
26
|
+
<div class="hidden lg:flex bg-gradient-to-b from-primary-700 to-primary-800 dark:from-slate-700/50 dark:to-slate-800 dark:shadow md:rounded-t-lg">
|
27
27
|
<%= render "account/shared/menu/top" %>
|
28
28
|
</div>
|
29
29
|
<% end %>
|
30
30
|
|
31
31
|
<main class="flex-1 relative z-0 focus:outline-none" tabindex="0">
|
32
|
-
<div class="flex flex-row items-center shadow-sm electron-draggable">
|
32
|
+
<div class="flex flex-row items-center shadow-sm dark:shadow electron-draggable">
|
33
33
|
<%= render "account/shared/menu/open" %>
|
34
34
|
|
35
35
|
<nav class="flex px-1 lg:px-4 py-2 select-none" aria-label="Breadcrumb">
|
@@ -1,9 +1,8 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
|
-
<html class="theme-<%= BulletTrain::Themes::Light.color %> <%= "theme-secondary-#{BulletTrain::Themes::Light.secondary_color}" if BulletTrain::Themes::Light.secondary_color %> <%= "theme-logo-color-shift" if BulletTrain::Themes::Light.logo_color_shift %>">
|
3
2
|
<head>
|
4
3
|
<%= render 'shared/layouts/head' %>
|
5
4
|
</head>
|
6
|
-
<body class="devise_layout bg-
|
5
|
+
<body class="devise_layout electron-draggable <%= BulletTrain::Themes::Light.background || "bg-gradient-to-br from-secondary-200 to-primary-400 dark:from-primary-900 dark:to-primary-600" %> text-slate-700 text-sm font-normal dark:text-slate-300">
|
7
6
|
<div data-turn-enter data-turn-exit>
|
8
7
|
<%= yield %>
|
9
8
|
</div>
|
@@ -1,13 +1,17 @@
|
|
1
1
|
<% expand ||= false %>
|
2
2
|
<% hide_shadow ||= false %>
|
3
3
|
|
4
|
-
<div class="relative <%= "group" unless expand %> <%= "shadow" unless hide_shadow %>"
|
4
|
+
<div class="relative <%= "group" unless expand %> <%= "shadow" unless hide_shadow %>"
|
5
|
+
id="user" data-controller="desktop-menu"
|
6
|
+
data-action="keydown->desktop-menu#hideSubmenu focus->desktop-menu#showSubmenu"
|
7
|
+
data-desktop-menu-target="menuItemHeader"
|
8
|
+
tabIndex="0">
|
5
9
|
<%= render "account/shared/menu/user" %>
|
6
|
-
<div class="invisible group-hover:visible">
|
10
|
+
<div class="invisible group-hover:visible" data-desktop-menu-target="menuItemGroup">
|
7
11
|
<div class="absolute top-0 left-0 right-0 z-50">
|
8
12
|
<%= render "account/shared/menu/user" %>
|
9
13
|
</div>
|
10
|
-
<div class="absolute transition duration-150 scale-95 group-hover:scale-100 translate-y-1 group-hover:translate-y-0 bg-primary-700 -top-0 left-0 right-0 -m-2 p-2 rounded-lg z-40 shadow">
|
14
|
+
<div class="absolute transition duration-150 scale-95 group-hover:scale-100 translate-y-1 group-hover:translate-y-0 bg-primary-700 dark:bg-slate-700 -top-0 left-0 right-0 -m-2 p-2 rounded-lg z-40 shadow">
|
11
15
|
<div class="invisible">
|
12
16
|
<%= render "account/shared/menu/user", expand: expand %>
|
13
17
|
</div>
|
@@ -3,11 +3,11 @@
|
|
3
3
|
<% method ||= nil %>
|
4
4
|
<% active ||= request.path == url %>
|
5
5
|
|
6
|
-
<%= send (method ? :button_to : :link_to), url, class: "block group hover:text-white hover:no-underline #{'bg-primary-900 dark:bg-black dark:bg-opacity-10' if active} text-white #{@menu_orientation == :top ? "px-5 py-5" : "px-2 py-2 rounded-md hover-indent-child"} #{"rounded-tl-lg" unless @not_first} dark:text-white", method: method do %>
|
6
|
+
<%= send (method ? :button_to : :link_to), url, class: "block group hover:text-white hover:no-underline #{'bg-primary-900 dark:bg-black dark:bg-opacity-10' if active} text-white #{@menu_orientation == :top ? "px-5 py-5" : "px-2 py-2 rounded-md hover-indent-child"} #{"rounded-tl-lg" unless @not_first} dark:text-white", data: {"desktop-menu-target": "menuItemLink"}, tabIndex: 0, method: method do %>
|
7
7
|
<div class="inline-block indent-child flex items-center">
|
8
8
|
<!-- Heroicon name: home -->
|
9
9
|
<% if p.content_for? :icon %>
|
10
|
-
<span class="mr-3 h-6 w-6 text-center text-secondary-300 text-xl leading-6 dark:text-
|
10
|
+
<span class="mr-3 h-6 w-6 text-center text-secondary-300 text-xl leading-6 dark:text-slate-400">
|
11
11
|
<%= p.content_for :icon %>
|
12
12
|
</span>
|
13
13
|
<% end %>
|
@@ -19,19 +19,19 @@
|
|
19
19
|
|
20
20
|
class="hidden fixed inset-0" aria-hidden="true"
|
21
21
|
>
|
22
|
-
<div class="absolute inset-0 bg-
|
22
|
+
<div class="absolute inset-0 <%= BulletTrain::Themes::Light.background || "bg-gradient-to-br from-secondary-200 to-primary-400 dark:from-primary-900 dark:to-primary-600" %> opacity-75"></div>
|
23
23
|
</button>
|
24
24
|
<div
|
25
25
|
data-mobile-menu-target="revealable"
|
26
26
|
|
27
27
|
data-transition-enter="transition ease-in-out duration-200 transform"
|
28
|
-
data-transition-enter-start="-
|
29
|
-
data-transition-enter-end="
|
28
|
+
data-transition-enter-start="-translate-x-full"
|
29
|
+
data-transition-enter-end="translate-x-0"
|
30
30
|
data-transition-leave="transition ease-in-out duration-200 transform"
|
31
|
-
data-transition-leave-start="
|
32
|
-
data-transition-leave-end="-
|
31
|
+
data-transition-leave-start="translate-x-0"
|
32
|
+
data-transition-leave-end="-translate-x-full"
|
33
33
|
|
34
|
-
class="hidden relative flex-1 flex flex-col max-w-xs w-full pb-4 bg-dark-
|
34
|
+
class="hidden relative flex-1 flex flex-col max-w-xs w-full pb-4 bg-gradient-to-b from-primary-700 to-primary-800 dark:from-slate-700 dark:to-slate-800 shadow-xl"
|
35
35
|
>
|
36
36
|
<%= render "account/shared/menu/sidebar", expand: true %>
|
37
37
|
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<button class="lg:hidden h-12 w-12 ml-1 flex-none inline-flex items-center justify-center rounded-md text-
|
1
|
+
<button class="lg:hidden h-12 w-12 ml-1 flex-none inline-flex items-center justify-center rounded-md text-slate-500 hover:text-slate-900 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500"
|
2
2
|
id="mobile-menu-open"
|
3
3
|
data-action="mobile-menu#open"
|
4
4
|
>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
</div>
|
11
11
|
<% else %>
|
12
12
|
<div>
|
13
|
-
<div class="inline-block relative group" id="<%= title.underscore %>">
|
13
|
+
<div class="inline-block relative group" data-controller="desktop-menu" data-action="keydown->desktop-menu#hideSubmenu" id="<%= title.underscore %>">
|
14
14
|
<%= render 'account/shared/menu/heading' do %>
|
15
15
|
<%= title %>
|
16
16
|
|
@@ -21,8 +21,10 @@
|
|
21
21
|
|
22
22
|
<div class="invisible absolute group-hover:visible transition duration-200 scale-90 group-hover:scale-100 z-40
|
23
23
|
<%= @menu_orientation == :top ? "group-hover:translate-x-3 top-100 left-0 -ml-10 -mt-2 pt-4" : "group-hover:translate-x-3 top-0 left-full -mt-3 -ml-5 pl-4" %>
|
24
|
-
"
|
25
|
-
|
24
|
+
"
|
25
|
+
data-desktop-menu-target="menuItemGroup"
|
26
|
+
>
|
27
|
+
<div class="bg-primary-700 dark:bg-slate-700 rounded-lg py-3 px-4 w-56 shadow">
|
26
28
|
<% @last_menu_orientation = @menu_orientation %>
|
27
29
|
<% @menu_orientation = :side %>
|
28
30
|
<%= yield %>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<div class="text-white">
|
9
9
|
<%= current_user.name %>
|
10
10
|
</div>
|
11
|
-
<div class="text-2xs tracking-widest uppercase text-secondary-300 group-hover:text-white dark:text-
|
11
|
+
<div class="text-2xs tracking-widest uppercase text-secondary-300 group-hover:text-white dark:text-slate-500">
|
12
12
|
<%= current_team.name %>
|
13
13
|
</div>
|
14
14
|
</div>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
<div class="min-h-screen flex flex-col justify-center sm:py-12">
|
6
6
|
<div class="mx-auto w-full <%= width %> p-1.5">
|
7
|
-
<div class="bg-white py-8 px-10 shadow rounded-lg dark:bg-
|
7
|
+
<div class="bg-white py-8 px-10 shadow dark:shadow-lg rounded-lg dark:bg-slate-700 dark:bg-opacity-80">
|
8
8
|
<div class="sm:mx-auto sm:w-full sm:max-w-md py-5">
|
9
9
|
<a href="<%= main_app.root_path %>" class="block py-3">
|
10
10
|
<img alt="" src="<%= image_path("logo/logo.png") %>" width="<%= image_width_for_height("logo/logo.png", BulletTrain::Themes.logo_height) %>" height="<%= BulletTrain::Themes.logo_height %>" class="theme-logo mx-auto h-12 w-auto" />
|
@@ -10,6 +10,7 @@ module BulletTrain
|
|
10
10
|
# TODO Not sure this is the right place for this in the long-term.
|
11
11
|
mattr_accessor :color, default: :blue
|
12
12
|
mattr_accessor :secondary_color, default: nil
|
13
|
+
mattr_accessor :background, default: nil
|
13
14
|
mattr_accessor :logo_color_shift, default: false
|
14
15
|
mattr_accessor :show_logo_in_account, default: false
|
15
16
|
mattr_accessor :navigation, default: :top
|
data/tailwind.light.config.js
CHANGED
@@ -3,6 +3,7 @@ const colors = require('tailwindcss/colors')
|
|
3
3
|
|
4
4
|
module.exports = {
|
5
5
|
content: [
|
6
|
+
'./config/initializers/theme.rb',
|
6
7
|
'./app/views/**/*.html.erb',
|
7
8
|
'./app/helpers/**/*.rb',
|
8
9
|
'./app/assets/stylesheets/**/*.css',
|
@@ -19,39 +20,24 @@ module.exports = {
|
|
19
20
|
'xs': '.81rem',
|
20
21
|
},
|
21
22
|
colors: {
|
22
|
-
red: {
|
23
|
-
400: '#ee8989',
|
24
|
-
500: '#e86060',
|
25
|
-
900: '#652424',
|
26
|
-
},
|
27
|
-
|
28
|
-
yellow: {
|
29
|
-
400: '#fcedbe',
|
30
|
-
500: '#fbe6a8',
|
31
|
-
900: '#6e6446',
|
32
|
-
},
|
33
|
-
|
34
23
|
primary: {
|
24
|
+
50: 'var(--primary-50)',
|
25
|
+
100: 'var(--primary-100)',
|
26
|
+
200: 'var(--primary-200)',
|
35
27
|
300: 'var(--primary-300)',
|
36
28
|
400: 'var(--primary-400)',
|
37
29
|
500: 'var(--primary-500)',
|
38
30
|
600: 'var(--primary-600)',
|
39
31
|
700: 'var(--primary-700)',
|
32
|
+
"700/50": 'red',
|
40
33
|
800: 'var(--primary-800)',
|
41
34
|
900: 'var(--primary-900)',
|
42
35
|
},
|
43
36
|
|
44
|
-
darkPrimary: {
|
45
|
-
300: 'var(--dark-primary-300)',
|
46
|
-
400: 'var(--dark-primary-400)',
|
47
|
-
500: 'var(--dark-primary-500)',
|
48
|
-
600: 'var(--dark-primary-600)',
|
49
|
-
700: 'var(--dark-primary-700)',
|
50
|
-
800: 'var(--dark-primary-800)',
|
51
|
-
900: 'var(--dark-primary-900)',
|
52
|
-
},
|
53
|
-
|
54
37
|
secondary: {
|
38
|
+
50: 'var(--secondary-50)',
|
39
|
+
100: 'var(--secondary-100)',
|
40
|
+
200: 'var(--secondary-200)',
|
55
41
|
300: 'var(--secondary-300)',
|
56
42
|
400: 'var(--secondary-400)',
|
57
43
|
500: 'var(--secondary-500)',
|
@@ -60,29 +46,6 @@ module.exports = {
|
|
60
46
|
800: 'var(--secondary-800)',
|
61
47
|
900: 'var(--secondary-900)',
|
62
48
|
},
|
63
|
-
|
64
|
-
darkSecondary: {
|
65
|
-
300: 'var(--dark-secondary-300)',
|
66
|
-
400: 'var(--dark-secondary-400)',
|
67
|
-
500: 'var(--dark-secondary-500)',
|
68
|
-
600: 'var(--dark-secondary-600)',
|
69
|
-
700: 'var(--dark-secondary-700)',
|
70
|
-
800: 'var(--dark-secondary-800)',
|
71
|
-
900: 'var(--dark-secondary-900)',
|
72
|
-
},
|
73
|
-
|
74
|
-
// This is a weird one-off for dark-mode.
|
75
|
-
darkAccent: {
|
76
|
-
200: 'var(--dark-accent-200)',
|
77
|
-
},
|
78
|
-
|
79
|
-
black: {
|
80
|
-
100: '#000000',
|
81
|
-
200: '#101112',
|
82
|
-
300: '#171818',
|
83
|
-
400: '#292b2c',
|
84
|
-
DEFAULT: '#000000',
|
85
|
-
}
|
86
49
|
},
|
87
50
|
fontFamily: {
|
88
51
|
// "Avenir Next W01", "Proxima Nova W01", "", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif
|