bullet_train-themes-light 1.0.30 → 1.0.34

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5a103ee8685278a5d217df0b699cffd5547e7382f908e8b6f2d5aceb3c079d1
4
- data.tar.gz: 457ef0e6ea7f321cbcad94a8dc7ecbf7e448151c460353a06d220586c0188b5b
3
+ metadata.gz: 75be7e4e6b8010397346a40aa03f61a431625dbc864516891efca13a828d5a1b
4
+ data.tar.gz: e0d47fcfdb395d2c000f980371211816c1e1eee688d4b690e49218793dc1cf7f
5
5
  SHA512:
6
- metadata.gz: ddd9837790e6687a66933253a1f03cc097d1d6282a65f56428f8d19a0c2a08398d6fb9cc41691c6872fdde5de33357b42067695e77beaf047c7e95bd43c3ef54
7
- data.tar.gz: d378017906ee682f62854395926f0924f19f23d3d5dcc84882d4ecbe45531b026ff4362ee0b20274e45dbc8f6dfeb67cd74856b5cf505ce3a5065f34bc6171d1
6
+ metadata.gz: b93cc5f7a483f930c2f79554c6ab900a7dc6372d91202ecb783f4bca85d6b61245353a8307e91504218c2c1914e9c6b4510db2731b9e71318e4a9c561db9119d
7
+ data.tar.gz: 1da57f34dbc14bf084ce09053fb62c66dff4996e2048ee40820661eba454cfca225f7b65c8c959fa8b806e46a4c553cb9ae00d49a3db290aadb5ede65b836ffc
@@ -3,6 +3,7 @@
3
3
  @import "./tailwind/dark-mode";
4
4
  @import "./tailwind/colors";
5
5
 
6
+ @import './bulk_actions';
6
7
  @import "./electron";
7
8
  @import './fields';
8
9
  @import './turn';
@@ -0,0 +1,44 @@
1
+ @layer components {
2
+ .bulk-action-unavailable {
3
+ @apply hidden !important;
4
+ }
5
+
6
+ .bulk-actions-selectable-item-checkbox-wrapper {
7
+ @apply hidden;
8
+ }
9
+
10
+ .bulk-actions .bulk-actions-checkbox-cell {
11
+ @apply w-4 pr-0;
12
+ }
13
+
14
+ .bulk-actions:not(.selectable-available) {
15
+ .bulk-actions-selectable-toggle {
16
+ @apply hidden;
17
+ }
18
+ }
19
+
20
+ .bulk-actions:not(.selectable) {
21
+ td:nth-child(2),th:nth-child(2) {
22
+ @apply pl-5;
23
+ }
24
+
25
+ .box-table td:nth-child(2),th:nth-child(2) {
26
+ @apply pl-8;
27
+ }
28
+ }
29
+
30
+ .bulk-actions.selectable-available:not(.selectable) {
31
+ .bulk-action {
32
+ @apply hidden;
33
+ }
34
+ .bulk-actions-checkbox-cell {
35
+ @apply hidden;
36
+ }
37
+ }
38
+
39
+ .bulk-actions.selectable {
40
+ .bulk-action-single {
41
+ @apply hidden;
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,71 @@
1
+ @layer utilities {
2
+ .pricing-table-shadow {
3
+ box-shadow: 0 2px 30px 0 rgba(54,88,206,0.2);
4
+ }
5
+
6
+ .pricing-page-background {
7
+ background-image: linear-gradient(to bottom, #f8faff, #fff);
8
+ }
9
+
10
+ .pricing-page-background-fade-container {
11
+ position: fixed;
12
+ top: 0;
13
+ left: 0;
14
+ bottom: 0;
15
+ width: 100vw;
16
+ max-width: 100vw;
17
+ overflow: hidden;
18
+ z-index: -1;
19
+ }
20
+
21
+ .pricing-page-background-fade {
22
+ &:before {
23
+ content: "";
24
+ position: absolute;
25
+ right: -40px;
26
+ top: -200px;
27
+ width: 1000px;
28
+ height: 600px;
29
+ background-image: linear-gradient(90deg, rgba(227,231,248,0) 0%, #E8F2FC 100%);
30
+ z-index: -1;
31
+ }
32
+
33
+ position: absolute;
34
+ right: -800px;
35
+ top: 0px;
36
+ width: 800px;
37
+ height: 600px;
38
+ background-image: linear-gradient(90deg, rgba(227,231,248,0) 0%, #8BBAF5 100%);
39
+ transform: translate(-360px, 0px) rotate(-45deg);
40
+ z-index: -1;
41
+ }
42
+
43
+ .brand-title {
44
+ color: #047bf8;
45
+ font-size: 2.99rem;
46
+ margin: 30px 0px;
47
+ margin-top: 10px;
48
+ position: relative;
49
+ letter-spacing: -0.025em;
50
+ line-height: 120%;
51
+ @apply font-bold;
52
+ }
53
+
54
+ .brand-description {
55
+ color: #868686;
56
+ font-size: 1.2rem;
57
+ line-height: 1.5;
58
+ @apply font-extralight;
59
+ }
60
+
61
+ .text-light-gradient {
62
+ -webkit-background-clip: text;
63
+ -webkit-box-decoration-break: clone;
64
+ -webkit-font-smoothing: subpixel-antialiased;
65
+ -webkit-text-fill-color: rgba(0,0,0,0);
66
+ background-attachment: scroll;
67
+ background-clip: text;
68
+ background-color: rgba(0,0,0,0);
69
+ background-image: -webkit-linear-gradient(-75deg, #c094de 10%, #65A8F1 50%, #006EF4 95%);
70
+ }
71
+ }
@@ -1,3 +1,5 @@
1
+ @import "./utilities/billing";
2
+
1
3
  @layer utilities {
2
4
  .text-2xs {
3
5
  @apply uppercase;
@@ -0,0 +1,23 @@
1
+ <% yield p = np %>
2
+
3
+ <div class="border border-gray-300 rounded-md py-5 px-6 bg-gray-50 space-y">
4
+ <div class="space-y-2">
5
+ <% if p.content_for? :title %>
6
+ <h2 class="text-base font-semibold">
7
+ <%= p.content_for :title %>
8
+ </h2>
9
+ <% end %>
10
+
11
+ <% if p.content_for? :description %>
12
+ <p class="text-gray-400 font-light leading-normal">
13
+ <%= p.content_for :description %>
14
+ </p>
15
+ <% end %>
16
+ </div>
17
+
18
+ <% if p.content_for? :body %>
19
+ <div class="space-y">
20
+ <%= p.content_for :body %>
21
+ </div>
22
+ <% end %>
23
+ </div>
@@ -0,0 +1,91 @@
1
+ <div class="py-4 px-8 w-full space-y-3">
2
+ <div class="flex space-x-4">
3
+ <% if action.is_a?(Actions::TracksCreator) %>
4
+ <div class="flex-0">
5
+ <%= render "shared/memberships/photo", membership: action.created_by, size: 7 %>
6
+ </div>
7
+ <% end %>
8
+ <div class="flex-1">
9
+ <div class="flex">
10
+ <div class="flex-1 space-y-4 py-1">
11
+ <div>
12
+ <%= action.label_string %> on
13
+ <%= target_description = capture do %>
14
+ <% if action.is_a?(Actions::TargetsMany) %>
15
+ <% if action.target_all? %>
16
+ all Tangible Things
17
+ <% else %>
18
+ <% if action.target_ids.one? %>
19
+ <%= action.targeted.first.label_string %>
20
+ <% else %>
21
+ <%= action.target_ids.count %> <%= "Tangible Thing".pluralize(action.target_ids.count) %>
22
+ <% end %>
23
+ <% end %>
24
+ <% else %>
25
+ <%= action.targeted.label_string %>
26
+ <% end %>
27
+ <% end %>
28
+ </div>
29
+ </div>
30
+ <div class="flex-0">
31
+ <% if action.is_a?(Actions::RequiresApproval) %>
32
+ <% if can? :approve, action %>
33
+ <%= button_to t("#{action.class.name.pluralize.underscore}.buttons.shorthand.approve"), [:approve, :account, action], method: :post, class: 'button-secondary button-smaller' %>
34
+ <% end %>
35
+ <% end %>
36
+ <% if can? :read, action %>
37
+ <%= link_to t("#{action.class.name.pluralize.underscore}.buttons.shorthand.show"), [:account, action], class: 'button-secondary button-smaller' %>
38
+ <% end %>
39
+ <% if can? :edit, action %>
40
+ <%= link_to t("#{action.class.name.pluralize.underscore}.buttons.shorthand.edit"), [:edit, :account, action], class: 'button-secondary button-smaller' %>
41
+ <% end %>
42
+ <% if can? :destroy, action %>
43
+ <%= button_to t("#{action.class.name.pluralize.underscore}.buttons.shorthand.destroy"), [:account, action], method: :delete, data: { confirm: t("#{action.class.name.pluralize.underscore}.buttons.confirmations.destroy", model_locales(action)) }, class: 'button-secondary button-smaller' %>
44
+ <% end %>
45
+ </div>
46
+ </div>
47
+
48
+ <% if action.completed? %>
49
+ <% if action.is_a?(Actions::HasProgress) %>
50
+ <div class="uppercase text-xs text-gray-400">
51
+ Processed <%= action.performed_count %> of <%= action.target_count %> <%= display_date_and_time(action.completed_at) %>
52
+ </div>
53
+ <% else %>
54
+ <div class="uppercase text-xs text-gray-400">
55
+ Processed <%= display_date_and_time(action.completed_at) %>
56
+ </div>
57
+ <% end %>
58
+
59
+ <% elsif action.is_a?(Actions::RequiresApproval) && !action.approved? %>
60
+ <div class="uppercase text-xs text-gray-400">
61
+ Awaiting approval
62
+ </div>
63
+
64
+ <% elsif action.is_a?(Actions::SupportsScheduling) && action.scheduled_for && !action.started? %>
65
+ <div class="uppercase text-xs text-gray-400">
66
+ Scheduled for <%= display_date_and_time(action.scheduled_for) %>
67
+ </div>
68
+
69
+ <% elsif action.is_a?(Actions::HasProgress) && action.started? %>
70
+ <div class="mt-3 h-4 bg-gray-100 shadow-inner rounded w-full">
71
+ <div class="h-4 animate-pulse bg-primary-500 rounded" style="width: <%= action.completion_percent %>%"></div>
72
+ </div>
73
+
74
+ <div class="mt-2 uppercase text-xs text-gray-400">
75
+ Processing <%= action.performed_count %> of <%= action.target_count %>
76
+ </div>
77
+
78
+ <% elsif action.is_a?(Actions::HasProgress) %>
79
+ <div class="uppercase text-xs text-gray-400">
80
+ Preparing to process <%= action.performed_count %> of <%= action.target_count %>
81
+ </div>
82
+
83
+ <% else %>
84
+ <div class="uppercase text-xs text-gray-400">
85
+ Preparing to process
86
+ </div>
87
+
88
+ <% end %>
89
+ </div>
90
+ </div>
91
+ </div>
@@ -0,0 +1,69 @@
1
+ <% prices_by_duration = group_prices_by_duration(prices) %>
2
+ <% params_duration = params[:duration]&.to_sym %>
3
+ <% current_duration = (prices_by_duration.keys.include?(params_duration) ? params_duration : false) || prices_by_duration.keys.first %>
4
+
5
+ <div class="w-full mb-10">
6
+ <div class="flex justify-center mb-14">
7
+ <div class="bg-primary-500 inline-block p-1 rounded-full text-base space-x-1">
8
+ <% prices_by_duration.keys.each_with_index do |duration, i| %>
9
+ <%= link_to request.path + (i > 0 ? "?duration=#{duration}" : ""), class: "#{duration == current_duration ? "button-alternative" : "button"} rounded-full text-base" do %>
10
+ <%= t("billing/prices.intervals.#{duration}.description") %>
11
+ <% if i > 0 %>
12
+ <small class="ml-2 uppercase <%= duration == current_duration ? "text-gray-400" : "text-gray-300" %>">
13
+ <%= number_to_percentage(calculate_discount(prices_by_duration[duration].first, prices_by_duration[prices_by_duration.keys.first].first), precision: 0) %> Discount
14
+ </small>
15
+ <% end %>
16
+ <% end %>
17
+ <% end %>
18
+ </div>
19
+ </div>
20
+
21
+ <div class="lg:flex flex-row justify-center">
22
+ <% prices_by_duration[current_duration].each_with_index do |price, i| %>
23
+ <div class="bg-gray-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
+ <div class="bg-white <%= "border-t-4 border-primary-500" if price.highlight? %>">
25
+ <div class="text-center py-10 px-5 border-b">
26
+ <%= image_tag image_path("products/#{price.product.image}"), width: 100, height: 100, class: "inline mb-7" %>
27
+ <div class="uppercase text-primary-500 tracking-wider font-semibold text-2xl">
28
+ <%= price.product.label_string %>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ <div class="bg-white text-center py-10 px-5 border-b">
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-gray-300 uppercase text-lg opacity-40 tracking-wider">
35
+ <% if price.quantity %>
36
+ <%= t("billing/prices.intervals.#{price.interval}.description") %>
37
+ <%= t("billing/prices.models.#{price.quantity}.per") %>
38
+ <% else %>
39
+ <%= t("billing/prices.intervals.#{price.interval}.per") %>
40
+ <% end %>
41
+ </div>
42
+ <div>
43
+ <%= render "account/billing/subscriptions/new_button", price: price, classes: "button rounded-full text-base mt-7" %>
44
+ </div>
45
+ </div>
46
+ <div class="my-12 mx-12">
47
+ <h3 class="text-xs uppercase font-semibold tracking-widest">Description</h3>
48
+ <p class="text-base mt-3 text-gray-500"><%= price.product.description %></p>
49
+
50
+ <h3 class="mt-8 text-xs uppercase font-semibold tracking-widest">Details</h3>
51
+ <% if price.product.features %>
52
+ <ul class="text-base mt-5 text-gray-500 space-y-3">
53
+ <% price.product.features.each do |feature| %>
54
+ <li class="flex items-start">
55
+ <div class="flex-shrink-0 text-green-500">
56
+ <i class="ti ti-check fas fa-check"></i>
57
+ </div>
58
+ <p class="ml-3">
59
+ <%= feature.html_safe %>
60
+ </p>
61
+ </li>
62
+ <% end %>
63
+ </ul>
64
+ <% end %>
65
+ </div>
66
+ </div>
67
+ <% end %>
68
+ </div>
69
+ </div>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <%= render 'shared/layouts/head' %>
5
+ </head>
6
+ <body class="pricing-page-background">
7
+ <div data-turbo="false">
8
+ <div class="pricing-page-background-fade-container">
9
+ <div class="pricing-page-background-fade"></div>
10
+ </div>
11
+
12
+ <% if @back %>
13
+ <div class="m-5 -mb-5">
14
+ <%= link_to @back, class: 'button-secondary hover:no-underline group' do %>
15
+ <i class="ti ti-angle-left text-lg group-hover:no-underline"></i>
16
+ <span class="text-base ml-3 group-hover:underline">Back</span>
17
+ <% end %>
18
+ </div>
19
+ <% end %>
20
+
21
+ <div class="m-5 sm:m-10 lg:m-20">
22
+ <%= yield %>
23
+ </div>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,3 @@
1
+ <% size ||= 12 %>
2
+
3
+ <%= image_tag membership_profile_photo_url(membership), class: "inline-block h-#{size} w-#{size} rounded-full" %>
@@ -1,7 +1,7 @@
1
1
  module BulletTrain
2
2
  module Themes
3
3
  module Light
4
- VERSION = "1.0.30"
4
+ VERSION = "1.0.34"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-themes-light
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.30
4
+ version: 1.0.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-28 00:00:00.000000000 Z
11
+ date: 2022-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard
@@ -67,6 +67,7 @@ files:
67
67
  - app/assets/stylesheets/light.tailwind.css
68
68
  - app/assets/stylesheets/light/actiontext.css
69
69
  - app/assets/stylesheets/light/application.css
70
+ - app/assets/stylesheets/light/bulk_actions.css
70
71
  - app/assets/stylesheets/light/electron.css
71
72
  - app/assets/stylesheets/light/fields/cloudinary_image.css
72
73
  - app/assets/stylesheets/light/fields/date_field.css
@@ -79,6 +80,7 @@ files:
79
80
  - app/assets/stylesheets/light/tailwind/components.css
80
81
  - app/assets/stylesheets/light/tailwind/dark-mode.css
81
82
  - app/assets/stylesheets/light/tailwind/utilities.css
83
+ - app/assets/stylesheets/light/tailwind/utilities/billing.css
82
84
  - app/assets/stylesheets/light/turn.css
83
85
  - app/assets/stylesheets/tailwindcss/base.css
84
86
  - app/assets/stylesheets/tailwindcss/components.css
@@ -93,8 +95,11 @@ files:
93
95
  - app/views/themes/light/_notices.html.erb
94
96
  - app/views/themes/light/_page.html.erb
95
97
  - app/views/themes/light/_title.html.erb
98
+ - app/views/themes/light/_well.html.erb
99
+ - app/views/themes/light/actions/_action.html.erb
96
100
  - app/views/themes/light/attributes/_base.html.erb
97
101
  - app/views/themes/light/attributes/_block.html.erb
102
+ - app/views/themes/light/billing/_pricing_table.html.erb
98
103
  - app/views/themes/light/breadcrumbs/_actions.html.erb
99
104
  - app/views/themes/light/commentary/_box.html.erb
100
105
  - app/views/themes/light/conversations/_card.html.erb
@@ -107,6 +112,8 @@ files:
107
112
  - app/views/themes/light/layouts/_devise.html.erb
108
113
  - app/views/themes/light/layouts/_head.html.erb
109
114
  - app/views/themes/light/layouts/_mailer.html.erb
115
+ - app/views/themes/light/layouts/_pricing.html.erb
116
+ - app/views/themes/light/memberships/_photo.html.erb
110
117
  - app/views/themes/light/memberships/_photos.html.erb
111
118
  - app/views/themes/light/menu/_heading.html.erb
112
119
  - app/views/themes/light/menu/_item.html.erb