bullet_train-themes-tailwind_css 1.6.38 → 1.7.0

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: c00371972891832462f3b34b69cfec0ecf77b804b772f45fd217c5fc570a5f99
4
- data.tar.gz: a141fc86508ba07ef6fed1676889fe18c4476726913a68eb968d1ac51456a516
3
+ metadata.gz: c03249dc4fdf9bcb0cf87aef4d44e03e064ad1183194aef1aa552d361a238440
4
+ data.tar.gz: 60ab86ae88a37794b16ca76ddab70348e1589be200458d7a860207e35b781913
5
5
  SHA512:
6
- metadata.gz: d9480f0d951ab55023304a2c3d5ab3e1e990020ed7bdee36439b71b3801834ef772f2ca9cd292c69e8fe955acc4d3b97427b4bffe69a4bbf243be93e0b58fa33
7
- data.tar.gz: 95d3b07ce1a0251eb976bb2f08025bc2f444658558556b9ce1fc9a86719e5416d68d6ef6c7ccaf96516cb46f0293c3eecec9f5097ae28157f560217eb734fb52
6
+ metadata.gz: 3ce6fe94bd5b7bef00a10c2bfa1fe93db6bd9570d12e3cf5676045e6cbb517cb35de2a1ec42bddba0b1f0a736305ce50d5671eae4696eb911e65b65d57642c3d
7
+ data.tar.gz: f895c50f950cfa261aef28294653452f27f3804781e670c66752f13f359a87c48e639c9772489a212d6f75a5dd5b982badbf45a6a3552285ec85494d7dd78720
@@ -7,8 +7,17 @@
7
7
  form ||= current_fields_form
8
8
  options ||= {}
9
9
  other_options ||= {}
10
- multiple ||= false
11
- persisted_files = multiple ? form.object.send(method) : [form.object.send(method)]
10
+
11
+ options[:multiple] ||= false
12
+ if defined?(multiple)
13
+ options[:multiple] = multiple
14
+ ActiveSupport::Deprecation.new.warn(
15
+ "The `multiple` attribute will be removed in a later version. " \
16
+ "Please pass `options: {multiple: true}` to `render` instead."
17
+ )
18
+ end
19
+
20
+ persisted_files = options[:multiple] ? form.object.send(method) : [form.object.send(method)]
12
21
 
13
22
  options[:width] ||= 100
14
23
  options[:height] ||= 100
@@ -19,13 +28,13 @@ options[:height] ||= 100
19
28
  <%= render 'shared/fields/field', form: form, method: method, helper: :file_field, options: options, other_options: other_options do %>
20
29
  <% content_for :field do %>
21
30
  <div class="file-field" data-controller="fields--file-field">
22
- <%= form.file_field method, class: 'file-upload hidden', multiple: multiple, direct_upload: true, data: {'fields--file-field-target': 'fileField', action: 'change->fields--file-field#handleFileSelected'} %>
31
+ <%= form.file_field method, class: 'file-upload hidden', multiple: options[:multiple], direct_upload: true, data: {'fields--file-field-target': 'fileField', action: 'change->fields--file-field#handleFileSelected'} %>
23
32
  <div>
24
33
  <% if form.object.send(method).attached? %>
25
34
  <div class="divide-y-2 divide-dashed">
26
35
  <% persisted_files.each do |file| %>
27
36
  <div data-controller="fields--file-item" data-fields--file-item-id-value="<%= file.id %>">
28
- <%= form.hidden_field "#{method}_removal".to_sym, multiple: multiple, value: nil, data: {'fields--file-item-target': 'removeFileFlag'} %>
37
+ <%= form.hidden_field "#{method}_removal".to_sym, multiple: options[:multiple], value: nil, data: {'fields--file-item-target': 'removeFileFlag'} %>
29
38
  <%= image_tag photo_url_for_active_storage_attachment(file, options), class: 'mb-1.5', data: {'fields--file-item-target': "fileName"} %>
30
39
 
31
40
  <%= link_to url_for(file), class: 'button download-file mr-3', data: {'fields--file-item-target': 'downloadFileButton'} do %>
@@ -2,8 +2,10 @@
2
2
 
3
3
  <%
4
4
  form ||= current_fields_form
5
- options ||= {}
6
- other_options ||= {}
5
+
6
+ # TODO: All options and other_options below are written inline. Do we need these?
7
+ # options ||= {}
8
+ # other_options ||= {}
7
9
  %>
8
10
 
9
11
  <%= form.fields_for(method) do |address_form| %>
@@ -1,23 +1,57 @@
1
1
  <%
2
2
  stimulus_controller = 'fields--button-toggle'
3
3
  form ||= current_fields_form
4
- html_options ||= {}
5
- html_options[:id] ||= form.field_id(method)
6
- multiple ||= false
4
+
5
+ # TODO: We need to do this because `options` is currently an array of strings.
6
+ # i.e. - ["One", "Two", "Three"]
7
+ if defined?(options) && options.is_a?(Array)
8
+ button_field_buttons = options
9
+ options = defined?(html_options) ? html_options : {}
10
+ ActiveSupport::Deprecation.new.warn(
11
+ "`options` will be replaced with `button_field_options` in a later version. " \
12
+ "Please pass all of the strings you want to appear in your buttons to `button_field_buttons`."
13
+ )
14
+ end
15
+
16
+ options ||= {}
17
+ button_field_buttons ||= {}
7
18
  other_options ||= {}
8
- options ||= options_for(form, method)
19
+
20
+ if defined?(html_options)
21
+ # From the Rails documentation concerning `options`:
22
+ # Any standard HTML attributes for the tag can be passed in, for example :class
23
+ # https://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box
24
+ ActiveSupport::Deprecation.new.warn(
25
+ "The `html_options` attribute for checkboxes and radio buttons will be removed in a later version. " \
26
+ "Pass all of your html options like `class` to `options` instead."
27
+ )
28
+ end
29
+
30
+ button_field_options = options_for(form, method) if button_field_buttons.empty?
31
+
32
+ options[:data] ||= {}
33
+ options[:data]["#{stimulus_controller}-target"] = 'shadowField'
34
+
35
+ options[:multiple] ||= false
36
+ if defined?(multiple)
37
+ options[:multiple] = multiple
38
+ ActiveSupport::Deprecation.new.warn(
39
+ "The `multiple` attribute will be removed in a later version. " \
40
+ "Please pass `options: {multiple: true}` to `render` instead."
41
+ )
42
+ end
9
43
  %>
10
44
 
11
- <% content = render 'shared/fields/field', form: form, method: method, options: html_options, other_options: other_options do %>
45
+ <% content = render 'shared/fields/field', form: form, method: method, options: options, other_options: other_options do %>
12
46
  <% content_for :field do %>
13
47
  <div>
14
- <% options.each do |value, label| %>
15
- <% checked = form.object.send(method).is_a?(Array) ? form.object.send(method).map(&:to_s).include?(value.to_s) : form.object.send(method).to_s == value.to_s %>
48
+ <% button_field_options.each do |value, label| %>
49
+ <% options[:checked] = form.object.send(method).is_a?(Array) ? form.object.send(method).map(&:to_s).include?(value.to_s) : form.object.send(method).to_s == value.to_s %>
16
50
  <label class="btn-toggle" data-controller="<%= stimulus_controller %>">
17
- <% if multiple %>
18
- <%= form.check_box method, {multiple: multiple, checked: checked, data: { "#{stimulus_controller}-target": 'shadowField' }}, value, "" %>
51
+ <% if options[:multiple] %>
52
+ <%= form.check_box method, options, value, "" %>
19
53
  <% else %>
20
- <%= form.radio_button method, value, { data: { "#{stimulus_controller}-target": 'shadowField' }, checked: checked} %>
54
+ <%= form.radio_button method, value, options %>
21
55
  <% end %>
22
56
  <button type="button" class="button-alternative mb-1.5 mr-1" data-action="<%= stimulus_controller %>#clickShadowField">
23
57
  <%= label %>
@@ -5,13 +5,14 @@ stimulus_controller = 'fields--cloudinary-image'
5
5
 
6
6
  form ||= current_fields_form
7
7
  options ||= {}
8
+ other_options ||= {}
9
+
8
10
  options[:id] ||= form.field_id(method)
9
11
  options[:width] ||= 100
10
12
  options[:height] ||= 100
11
13
  options[:cloud_name] ||= Cloudinary.config.cloud_name
12
14
  options[:api_key] ||= Cloudinary.config.api_key
13
15
  options[:google_search_key] ||= ENV['CLOUDINARY_GOOGLE_API_KEY']
14
- other_options ||= {}
15
16
  %>
16
17
 
17
18
  <%
@@ -19,6 +20,9 @@ cloudinary_id = if_present(form.object.send(method))
19
20
  preview_image_options = {width: options[:width], height: options[:height], crop: :fill}
20
21
  cloudinary_url = cl_image_path(cloudinary_id, preview_image_options) if cloudinary_id
21
22
  cloudinary_url_format = cl_image_path('CLOUDINARY_ID', preview_image_options)
23
+
24
+ options[:data] ||= {}
25
+ options[:data]["#{stimulus_controller}-target"] = 'thumbnail'
22
26
  %>
23
27
 
24
28
  <%
@@ -46,7 +50,7 @@ wrapper_options[:data]["#{stimulus_controller}-google-api-key-value"] = options[
46
50
  data-<%= stimulus_controller %>-target="uploadButton"
47
51
  data-action="<%= stimulus_controller %>#pickImageAndUpload"
48
52
  >
49
- <%= image_tag cloudinary_url, width: options[:width], height: options[:height], data: { "#{stimulus_controller}-target": 'thumbnail' } if cloudinary_url %>
53
+ <%= image_tag cloudinary_url, options if cloudinary_url %>
50
54
  <i class="ti ti-cloud-up"></i>
51
55
  </button>
52
56
  <button type="button" class="clear" data-action="<%= stimulus_controller %>#clearImage">
@@ -1,18 +1,48 @@
1
1
  <%
2
2
  stimulus_controller = 'fields--color-picker'
3
-
4
3
  form ||= current_fields_form
5
- html_options ||= {}
6
- html_options[:id] ||= form.field_id(method)
7
- multiple ||= false
4
+
5
+ if defined?(options) && options.is_a?(Array)
6
+ color_picker_field_options = options
7
+ options = defined?(html_options) ? html_options : {}
8
+ ActiveSupport::Deprecation.new.warn(
9
+ "`options` will be replaced with `color_picker_field_options` in a later version. " \
10
+ "Please pass all of the colors you want as strings to `color_picker_field_options`."
11
+ )
12
+ end
13
+
14
+ options ||= {}
15
+ color_picker_field_options ||= options_for(form, method)
16
+ options.delete(:color_picker_options)
17
+
18
+ if defined?(html_options)
19
+ ActiveSupport::Deprecation.new.warn(
20
+ "The `html_options` attribute for color pickers will be removed in a later version. " \
21
+ "Pass all of your html options like `class` to `options` instead."
22
+ )
23
+ end
24
+
8
25
  other_options ||= {}
9
- options ||= options_for(form, method)
26
+
27
+ options[:id] ||= form.field_id(method)
28
+
29
+ # TODO: I don't think multiple is even used for this attribute,
30
+ # we should probably delete this altogether.
31
+ options[:multiple] ||= false
32
+ if defined?(multiple)
33
+ options[:multiple] = multiple
34
+ ActiveSupport::Deprecation.new.warn(
35
+ "The `multiple` attribute will be removed in a later version. " \
36
+ "Please pass `options: {multiple: true}` to `render` instead."
37
+ )
38
+ end
39
+
10
40
  value = form.object.send(method)
11
41
 
12
42
  color_selected_classes = "ring-2 ring-offset-2"
13
43
  %>
14
44
 
15
- <% content = render 'shared/fields/field', form: form, method: method, options: html_options, other_options: other_options do %>
45
+ <% content = render 'shared/fields/field', form: form, method: method, options: options, other_options: other_options do %>
16
46
  <% content_for :field do %>
17
47
  <div class="space-x-1"
18
48
  data-controller="<%= stimulus_controller %>"
@@ -21,14 +51,14 @@ color_selected_classes = "ring-2 ring-offset-2"
21
51
  >
22
52
  <%= form.hidden_field method, value: value, data: {"#{stimulus_controller}-target": "colorPickerValue"} %>
23
53
  <div class="inline space-x-1" data-<%= stimulus_controller %>-target="colorOptions">
24
- <% options[:color_picker_options].each do |color| %>
54
+ <% color_picker_field_options.each do |color| %>
25
55
  <label class="btn-toggle btn-color-picker">
26
56
  <button type="button" class="button-color mb-1.5 dark:ring-offset-slate-700 <%= color == value ? color_selected_classes : '' %>" style="background-color: <%= color %>; --tw-ring-color: <%= color %>" data-action="<%= stimulus_controller %>#pickColor" data-<%= stimulus_controller %>-target="colorButton" data-color="<%= color %>">&nbsp;</button>
27
57
  </label>
28
58
  <% end %>
29
59
  </div>
30
60
  <label class="btn-toggle btn-color-picker">
31
- <button type="button" class="button-color mr-1 dark:ring-offset-slate-700 <%= value.blank? || options.include?(value) ? 'hidden' : color_selected_classes %>" data-action="<%= stimulus_controller %>#pickColor" data-<%= stimulus_controller %>-target="userSelectedColor colorButton" data-color="<%= value %>" style="background-color: <%= value %>; --tw-ring-color: <%= value %>">&nbsp;</button>
61
+ <button type="button" class="button-color mr-1 dark:ring-offset-slate-700 <%= value.blank? || color_picker_field_options.include?(value) ? 'hidden' : color_selected_classes %>" data-action="<%= stimulus_controller %>#pickColor" data-<%= stimulus_controller %>-target="userSelectedColor colorButton" data-color="<%= value %>" style="background-color: <%= value %>; --tw-ring-color: <%= value %>">&nbsp;</button>
32
62
  </label>
33
63
  <span class="relative">
34
64
  <input type="text" disabled="disabled" class="rounded-md shadow-sm font-light font-mono text-sm focus:ring-blue focus:border-blue border-slate-300 w-48 dark:bg-slate-800 dark:border-slate-900" value="<%= value %>" data-<%= stimulus_controller %>-target="colorInput"/>
@@ -1,8 +1,7 @@
1
1
  <%
2
2
  stimulus_controller = 'fields--date'
3
-
4
3
  form ||= current_fields_form
5
- options ||= {}
4
+
6
5
  user_tz = defined?(current_user.time_zone) ? ActiveSupport::TimeZone.find_tzinfo(current_user.time_zone).name : nil
7
6
 
8
7
  current_team_time_zone = if current_user&.respond_to?(:current_team)
@@ -12,8 +11,12 @@ else
12
11
  end
13
12
  team_tz = ActiveSupport::TimeZone.find_tzinfo(current_team_time_zone)&.name
14
13
 
15
- # data options
14
+ options ||= {}
16
15
  data_options ||= {}
16
+ other_options ||= {}
17
+
18
+ # data_options represents the iso8601 date and time value in a hidden input field.
19
+ # The value we display on screen is in options[:value].
17
20
  data_options[:id] ||= form.field_id(method)
18
21
  data_options[:class] = "hidden"
19
22
  data_options[:value] = form.object.send(method)&.in_time_zone(current_time_zone)&.iso8601
@@ -26,9 +29,10 @@ raw_value = form.object.send(method)&.in_time_zone(current_user&.time_zone || cu
26
29
  options[:value] = raw_value && I18n.l(raw_value, format: :date_and_time_field)
27
30
  options = options.merge({ data: {"#{stimulus_controller}-target": 'displayField' }})
28
31
 
29
- other_options ||= {}
30
32
  %>
31
33
 
34
+ <%# Although we pass options below to `text_field`, we need to pass options here %>
35
+ <%# too because the id we set earlier is not the usual `form.field_id(method)`. %>
32
36
  <%= render 'shared/fields/field', form: form, method: method, options: options, other_options: other_options do %>
33
37
  <% content_for :field do %>
34
38
  <div
@@ -1,11 +1,13 @@
1
1
  <%
2
2
  stimulus_controller = 'fields--date'
3
-
4
3
  form ||= current_fields_form
5
- options ||= {}
6
4
 
7
- # data options
5
+ options ||= {}
8
6
  data_options ||= {}
7
+ other_options ||= {}
8
+
9
+ # data_options represents the iso8601 date value in a hidden input field.
10
+ # The value we display on screen is in options[:value].
9
11
  data_options[:id] ||= form.field_id(method)
10
12
  data_options[:class] = "hidden"
11
13
  data_options[:value] = form.object.send(method)&.strftime("%Y-%m-%d")
@@ -16,10 +18,10 @@ options[:id] ||= "#{form.field_id(method)}_display"
16
18
  options[:class] = "form-control single-daterange w-full border-slate-300 dark:bg-slate-800 dark:border-slate-900 #{options[:class]}".strip
17
19
  options[:value] = form.object.send(method) && I18n.l(form.object.send(method), format: :date_field)
18
20
  options = options.merge({ data: {"#{stimulus_controller}-target": 'displayField' }})
19
-
20
- other_options ||= {}
21
-
22
21
  %>
22
+
23
+ <%# Although we pass options below to `text_field`, we need to pass options here %>
24
+ <%# too because the id we set earlier is not the usual `form.field_id(method)`. %>
23
25
  <%= render 'shared/fields/field', form: form, method: method, options: options, other_options: other_options do %>
24
26
  <% content_for :field do %>
25
27
  <div
@@ -2,20 +2,35 @@
2
2
  form ||= current_fields_form
3
3
  options ||= {}
4
4
  other_options ||= {}
5
- multiple ||= false
6
- persisted_files = multiple ? form.object.send(method) : [form.object.send(method)]
5
+
6
+ options[:multiple] ||= false
7
+ if defined?(multiple)
8
+ options[:multiple] = multiple
9
+ ActiveSupport::Deprecation.new.warn(
10
+ "The `multiple` attribute will be removed in a later version. " \
11
+ "Please pass `options: {multiple: true}` to `render` instead."
12
+ )
13
+ end
14
+
15
+ options[:class] = "file-upload hidden #{options[:class]}"
16
+ options[:direct_upload] = true
17
+ options[:data] ||= {}
18
+ options[:data]['fields--file-field-target'] = "fileField"
19
+ options[:data][:action] = "change->fields--file-field#handleFileSelected"
20
+
21
+ persisted_files = options[:multiple] ? form.object.send(method) : [form.object.send(method)]
7
22
  %>
8
23
 
9
24
  <%= render 'shared/fields/field', form: form, method: method, helper: :file_field, options: options, other_options: other_options do %>
10
25
  <% content_for :field do %>
11
26
  <div class="file-field" data-controller="fields--file-field">
12
- <%= form.file_field method, class: 'file-upload hidden', multiple: multiple, direct_upload: true, data: {'fields--file-field-target': 'fileField', action: 'change->fields--file-field#handleFileSelected'} %>
27
+ <%= form.file_field method, options %>
13
28
  <div>
14
29
  <% if form.object.send(method).attached? %>
15
30
  <div class="divide-y-2 divide-dashed">
16
31
  <% persisted_files.each do |file| %>
17
32
  <div data-controller="fields--file-item" data-fields--file-item-id-value="<%= file.id %>">
18
- <%= form.hidden_field "#{method}_removal".to_sym, multiple: multiple, value: nil, data: {'fields--file-item-target': 'removeFileFlag'} %>
33
+ <%= form.hidden_field "#{method}_removal".to_sym, multiple: options[:multiple], value: nil, data: {'fields--file-item-target': 'removeFileFlag'} %>
19
34
  <span data-fields--file-item-target="fileName" %>
20
35
  <%= file.blob.filename %>
21
36
  </span>
@@ -1,44 +1,51 @@
1
1
  <%
2
2
  form ||= current_fields_form
3
3
  single_check_box ||= false
4
- multiple ||= false
5
- option_field_options ||= {}
6
4
  append_class ||= ''
7
5
  labels = labels_for(form, method) if form
8
6
 
7
+ options ||= {}
8
+
9
+ options[:multiple] ||= false
10
+ if defined?(multiple)
11
+ options[:multiple] = multiple
12
+ ActiveSupport::Deprecation.new.warn(
13
+ "The `multiple` attribute will be removed in a later version. " \
14
+ "Please pass `options: {multiple: true}` to `render` instead."
15
+ )
16
+ end
17
+
9
18
  # Since we don't know at this point which tag we'll be using, we specify
10
19
  # the class only once here for simplicity and apply it to one of the following tags:
11
20
  # 1. form.check_box
12
21
  # 2. check_box
13
- # 4. form.radio_button
22
+ # 3. form.radio_button
14
23
  #
15
24
  # the `append_class` local can be used to append any other styles desired for the element.
16
- option_field_options[:class] ||= "focus:ring-primary-500 h-4 w-4 text-primary-500 border-slate-300 dark:bg-slate-800 dark:border-slate-900 #{"rounded" if multiple || single_check_box}"
17
- option_field_options[:class] += " #{append_class}"
25
+ options[:class] ||= "focus:ring-primary-500 h-4 w-4 text-primary-500 border-slate-300 dark:bg-slate-800 dark:border-slate-900 #{"rounded" if options[:multiple] || single_check_box}"
26
+ options[:class] += " #{append_class}"
18
27
  %>
19
28
 
20
29
  <% if single_check_box %>
21
30
  <% if form %>
22
31
  <div class="flex items-center">
23
- <%= form.check_box method, option_field_options %>
32
+ <%= form.check_box method, options %>
24
33
  <%= form.label method, class: 'ml-2' %>
25
34
  </div>
26
35
  <% else %>
27
- <% value = option_field_options.delete(:value) %>
28
- <% checked = option_field_options.delete(:checked) %>
29
- <%= check_box_tag method, value, checked, option_field_options %>
36
+ <% value = options.delete(:value) %>
37
+ <% checked = options.delete(:checked) %>
38
+ <%= check_box_tag method, value, checked, options %>
30
39
  <% end %>
31
40
  <% else %>
32
- <% options.each do |value, label| %>
41
+ <% option_field_options.each do |value, label| %>
33
42
  <label class="relative flex items-start mb-3">
34
43
  <div class="flex items-center h-5">
35
- <% if multiple %>
36
- <% checked_value = form.object.send(method).nil? ? nil : form.object.send(method).map(&:to_s).include?(value.to_s) %>
37
- <%= form.check_box method, {
38
- multiple: multiple, checked: checked_value, data: option_field_options[:data], class: option_field_options[:class]
39
- }, value, "" %>
44
+ <% if options[:multiple] %>
45
+ <% options[:checked] = form.object.send(method).nil? ? nil : form.object.send(method).map(&:to_s).include?(value.to_s) %>
46
+ <%= form.check_box method, options, value, "" %>
40
47
  <% else %>
41
- <%= form.radio_button method, value, {class: option_field_options[:class]} %>
48
+ <%= form.radio_button method, value, options %>
42
49
  <% end %>
43
50
  </div>
44
51
  <div class="ml-2.5 text-sm">
@@ -9,27 +9,52 @@ end
9
9
 
10
10
  <%
11
11
  form ||= current_fields_form
12
- html_options ||= {}
13
- html_options[:id] ||= form.field_id(method)
14
- multiple ||= false
12
+
13
+ if defined?(options) && options.is_a?(Array)
14
+ option_field_options = options
15
+ options = defined?(html_options) ? html_options : {}
16
+ ActiveSupport::Deprecation.new.warn(
17
+ "`options` will be replaced with `option_field_options` in a later version. " \
18
+ "Please pass all of the options you want as strings to ``."
19
+ )
20
+ end
21
+
22
+ options ||= {}
23
+ option_field_options ||= options_for(form, method)
24
+ other_options ||= {}
25
+
26
+ if defined?(html_options)
27
+ ActiveSupport::Deprecation.new.warn(
28
+ "The `html_options` attribute for checkboxes and radio buttons will be removed in a later version " \
29
+ "Pass all of your html options like `class` to `options` instead."
30
+ )
31
+ end
32
+
33
+ options[:multiple] ||= false
34
+ if defined?(multiple)
35
+ options[:multiple] = multiple
36
+ ActiveSupport::Deprecation.new.warn(
37
+ "The `multiple` attribute will be removed in a later version. " \
38
+ "Please pass `options: {multiple: true}` to `render` instead."
39
+ )
40
+ end
41
+
42
+ options[:id] ||= form.field_id(method)
15
43
  show_select_all_top ||= false
16
44
  show_select_all_bottom ||= false
17
45
  use_columns ||= false
18
- other_options ||= {}
19
- options ||= options_for(form, method)
20
46
  labels = labels_for(form, method)
21
47
 
22
- option_field_options ||= {}
23
- option_field_options[:data] ||= {}
24
- option_field_options[:data][:controller] ||= ""
25
- option_field_options[:data][:controller] += " fields--field"
48
+ options[:data] ||= {}
49
+ options[:data][:controller] ||= ""
50
+ options[:data][:controller] += " fields--field"
26
51
 
27
- if multiple
28
- option_field_options[:data] = option_field_options[:data].merge({
52
+ if options[:multiple]
53
+ options[:data] = options[:data].merge({
29
54
  "select-all-target": 'checkbox'
30
55
  })
31
- option_field_options[:data][:action] ||= ""
32
- option_field_options[:data][:action] += " select-all#updateToggle"
56
+ options[:data][:action] ||= ""
57
+ options[:data][:action] += " select-all#updateToggle"
33
58
  end
34
59
 
35
60
  %>
@@ -38,7 +63,7 @@ end
38
63
  # TODO: We should either remove this, or move the Action Models `bulk_action_select`
39
64
  # partial here to bullet_train-core because this cannot work with the setup we currently have.
40
65
  %>
41
- <% if multiple && (show_select_all_top || show_select_all_bottom) %>
66
+ <% if options[:multiple] && (show_select_all_top || show_select_all_bottom) %>
42
67
  <% select_all = capture do %>
43
68
  <div class="flex">
44
69
  <%= tag.div class: [
@@ -66,22 +91,22 @@ end
66
91
  <% end %>
67
92
  <% end %>
68
93
 
69
- <%= render 'shared/fields/field', form: form, method: method, options: html_options, other_options: other_options do %>
94
+ <%= render 'shared/fields/field', form: form, method: method, options: options, other_options: other_options do %>
70
95
  <% content_for :field do %>
71
96
  <%= tag.div class: "pt-1.5 pb-1 sm:col-span-2", data: {
72
97
  controller: "select-all",
73
98
  "select-all-unavailable-class": "hidden"
74
99
  } do %>
75
100
 
76
- <% if multiple && show_select_all_top && !show_select_all_bottom %>
101
+ <% if options[:multiple] && show_select_all_top && !show_select_all_bottom %>
77
102
  <%= select_all %>
78
103
  <% end %>
79
104
 
80
105
  <%= tag.div class: ["max-w-lg": !use_columns, "max-w-3xl": use_columns, "columns-[var(--column-width,_15ch)_3]": use_columns] do %>
81
- <%= render 'shared/fields/option', method: method, form: form, option_field_options: option_field_options, multiple: multiple, options: options %>
106
+ <%= render 'shared/fields/option', method: method, form: form, option_field_options: option_field_options, options: options %>
82
107
  <% end %>
83
108
 
84
- <% if multiple && !show_select_all_top && show_select_all_bottom %>
109
+ <% if options[:multiple] && !show_select_all_top && show_select_all_bottom %>
85
110
  <%= select_all %>
86
111
  <% end %>
87
112
 
@@ -1,7 +1,7 @@
1
1
  module BulletTrain
2
2
  module Themes
3
3
  module TailwindCss
4
- VERSION = "1.6.38"
4
+ VERSION = "1.7.0"
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-tailwind_css
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.38
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-20 00:00:00.000000000 Z
11
+ date: 2024-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard
@@ -76,7 +76,6 @@ files:
76
76
  - app/views/themes/tailwind_css/fields/_date_and_time_field.html.erb
77
77
  - app/views/themes/tailwind_css/fields/_date_field.html.erb
78
78
  - app/views/themes/tailwind_css/fields/_dependent_fields_frame.html.erb
79
- - app/views/themes/tailwind_css/fields/_field.html.erb
80
79
  - app/views/themes/tailwind_css/fields/_file_field.html.erb
81
80
  - app/views/themes/tailwind_css/fields/_image.html.erb
82
81
  - app/views/themes/tailwind_css/fields/_option.html.erb
@@ -1,80 +0,0 @@
1
- <%
2
- %i[label field error help after_help].each do |key|
3
- if (content = content_for(key).presence)
4
- flush_content_for key
5
- partial.section key, content
6
- end
7
- end
8
- %>
9
-
10
- <%
11
- form ||= current_fields_form
12
- # returns a struct with `label`, `placeholder`, and `help` methods.
13
- labels = labels_for(form, method)
14
- options ||= {}
15
- options[:id] ||= form.field_id(method)
16
- # options[:disabled] ||= !field_editable?(form.object, method) if user_signed_in?
17
- options[:placeholder] ||= labels.placeholder if labels.placeholder
18
- other_options ||= {}
19
- other_options[:help] = [other_options[:help], labels.help].compact.join(" ")
20
-
21
- errors = [method, method.to_s.delete_suffix("_id").to_sym].uniq.map { |attribute| form.object.errors.full_messages_for(attribute) }.flatten
22
- has_errors = errors.any? || partial.error? || other_options[:error].present?
23
-
24
- options[:class] = "#{options[:class]} block w-full rounded-md shadow-sm font-light"
25
- options[:class] += " text-base md:text-sm" # default to 16px on mobile to prevent zooming
26
-
27
- options[:class] += if has_errors
28
- " pr-10 border-red text-red-700 placeholder-red focus:outline-none focus:ring-red focus:border-red"
29
- else
30
- " focus:ring-blue focus:border-blue border-slate-300"
31
- end
32
-
33
- %>
34
-
35
- <div class="<%= 'required' if presence_validated?(form.object, method) %>">
36
-
37
- <% # the label. %>
38
- <% unless other_options[:hide_label] == true %>
39
- <% if partial.label? %>
40
- <%= partial.label %>
41
- <% else %>
42
- <% # allow the label to be defined via an inline option or else one of the locale yaml definitions. %>
43
- <% label = (other_options[:label].presence || labels.label || legacy_label_for(form, method)) %>
44
- <%= form.label method, label&.html_safe, class: 'block', for: options[:id] %>
45
- <% end %>
46
- <% end %>
47
-
48
- <div class="mt-1.5">
49
- <% # the actual field. %>
50
- <% if partial.field? %>
51
- <%= partial.field %>
52
- <% else %>
53
- <% # e.g. form.text_field(method, options) %>
54
- <%= form.send(helper, method, options) %>
55
- <% end %>
56
- </div>
57
-
58
- <% # any error messages. %>
59
- <% if has_errors %>
60
- <p class="mt-1.5 text-xs text-red">
61
- <%= errors.map { |error| error + ". " }.join %>
62
- <%= partial.error %>
63
- <%= other_options[:error]&.html_safe %>
64
- </p>
65
- <% end %>
66
-
67
- <% # any help text. %>
68
- <% if partial.help? || other_options[:help] || partial.after_help? %>
69
- <p class="mt-1.5 text-xs text-slate-500">
70
- <%= partial.help %>
71
- <%= other_options[:help]&.html_safe %>
72
- <%= partial.after_help %>
73
- </p>
74
- <% end %>
75
-
76
- <% if other_options[:icon] %>
77
- <div class="pre-icon os-icon <%= other_options[:icon] %>"></div>
78
- <% end %>
79
-
80
- </div>