breeze_cms 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,12 @@
1
- .prose {
1
+ .prose{
2
2
  max-width: 100%;
3
3
  color: inherit;
4
4
  --tw-prose-bullets: #6b7280;
5
5
  --tw-prose-headings: inherit;
6
+ a{
7
+ color: inherit;
8
+ font-weight: 700;
9
+ }
6
10
  }
7
11
 
8
12
  @layer components {
@@ -57,10 +57,20 @@ module Breeze
57
57
  end
58
58
 
59
59
  def create
60
- image = Image.create_new(params['filename'] ,params['tags'], params['image_file'])
61
- image.add_save current_member_email
62
- where_to = determine_redirect(image)
63
- redirect_to where_to , notice: "New image created: #{image.name}"
60
+ io = params['image_file']
61
+ if(io)
62
+ _ , endi = io.original_filename.split("/").last.split(".")
63
+ if( ["jpg","jpeg","png","webp"].include? endi.downcase)
64
+ image = Image.create_new(params["filename"] ,params['tags'], params['image_file'])
65
+ image.add_save current_member_email
66
+ where_to = determine_redirect(image)
67
+ redirect_to where_to , notice: "New image created: #{image.name}"
68
+ else
69
+ redirect_to new_image_url , alert: "Only jpg, png or tiff allowed"
70
+ end
71
+ else
72
+ redirect_to new_image_url , alert: "No file"
73
+ end
64
74
  end
65
75
 
66
76
  private
@@ -19,17 +19,10 @@ module Breeze
19
19
  def update
20
20
  if( !params[:name].blank? && (params[:name] != @page.name))
21
21
  @page.set_name params[:name]
22
- @page.edit_save(current_member_email)
23
- message = "Page renamed"
24
- end
25
- options = params[:option]
26
- if options
27
- @page.option_definitions.each do |option|
28
- @page.set_option(option.name, options[option.name])
29
- end
30
- @page.edit_save(current_member_email)
31
- message = "Options saved"
32
22
  end
23
+ @page.update_options( params[:options])
24
+ @page.edit_save(current_member_email)
25
+ message = "Saved"
33
26
  redirect_to page_url(@page) , notice: message
34
27
  end
35
28
 
@@ -5,7 +5,12 @@ module Breeze
5
5
  locale = params[:lang] || I18n.default_locale
6
6
  I18n.locale = locale
7
7
  @page = Page.find_by_name(params[:id])
8
- redirect_to "/" , alert: "No page #{params[:id]}" unless @page
8
+ if @page.nil?
9
+ redirect_to "/" , alert: "No page #{params[:id]}"
10
+ else
11
+ @title = @page.options["title"] if @page.options
12
+ @description = @page.options["description"] if @page.options
13
+ end
9
14
  end
10
15
 
11
16
  end
@@ -56,6 +56,23 @@ module Breeze
56
56
  find_by( :id , id )
57
57
  end
58
58
 
59
+ def next_id(id)
60
+ dir_id(id , 1)
61
+ end
62
+
63
+ def previous_id(id)
64
+ dir_id(id , -1)
65
+ end
66
+
67
+ def dir_id(id , inc)
68
+ while((id > 0) && (id < 300)) do
69
+ id += inc
70
+ if(is = find_by(:id , id))
71
+ return is
72
+ end
73
+ end
74
+ end
75
+
59
76
  def find_by( field , value )
60
77
  found = yaml_file.detect { |record| record[field] == value }
61
78
  return nil unless found
@@ -114,6 +131,12 @@ module Breeze
114
131
  File.join(self.path , full_name )
115
132
  end
116
133
 
134
+ def largest
135
+ largest = 0
136
+ yaml_file.each { |item| largest = item[:id] if item[:id] > largest }
137
+ largest
138
+ end
139
+
117
140
  #create a new data point by adding the hash
118
141
  def append(data)
119
142
  largest = 0
@@ -43,6 +43,36 @@ module Breeze
43
43
  mini.crop( to_size )
44
44
  init_file_size
45
45
  end
46
+
47
+ def destroy(editor)
48
+ File.delete self.full_filename
49
+ delete_save!(editor)
50
+ end
51
+
52
+ def asset_name
53
+ Breeze.images_dir + "/" + self.id.to_s + "." + self.type
54
+ end
55
+
56
+ def full_filename
57
+ full_filename = self.id.to_s + "." + self.type
58
+ Rails.root.join(Image.asset_root, full_filename)
59
+ end
60
+
61
+ def init_file_size
62
+ magick_image = MiniMagick::Image.open(full_filename)
63
+ self.width = magick_image.width
64
+ self.height = magick_image.height
65
+ self.size = (magick_image.size/1024).to_i
66
+ end
67
+
68
+ def next_image
69
+ self.class.next_id(id)
70
+ end
71
+
72
+ def previous_image
73
+ self.class.previous_id(id)
74
+ end
75
+
46
76
  #save an io as new image. The filename is the id, type taken from io
47
77
  def self.create_new(name , tags, io)
48
78
  original , end_ = io.original_filename.split("/").last.split(".")
@@ -61,19 +91,6 @@ module Breeze
61
91
  new_id = Image.append(image_data)
62
92
  Image.new(image_data)
63
93
  end
64
- def destroy(editor)
65
- File.delete self.full_filename
66
- delete_save!(editor)
67
- end
68
-
69
- def asset_name
70
- Breeze.images_dir + "/" + self.id.to_s + "." + self.type
71
- end
72
-
73
- def full_filename
74
- full_filename = self.id.to_s + "." + self.type
75
- Rails.root.join(Image.asset_root, full_filename)
76
- end
77
94
 
78
95
  def self.transform
79
96
  Image.all.each do |image|
@@ -89,13 +106,6 @@ module Breeze
89
106
  end
90
107
  end
91
108
 
92
- def init_file_size
93
- magick_image = MiniMagick::Image.open(full_filename)
94
- self.width = magick_image.width
95
- self.height = magick_image.height
96
- self.size = (magick_image.size/1024).to_i
97
- end
98
-
99
109
  def self.asset_root
100
110
  "app/assets/images/" + Breeze.images_dir
101
111
  end
@@ -4,6 +4,14 @@
4
4
  .flex.justify-between.mx-20
5
5
  .flex.justify-between
6
6
  %div.justify-self-start.ml-20.mr-10
7
+ %b Presets
8
+ 600
9
+ %input{ name: :pre, type: "radio", value: "600", "v-on:input": "handle_preset($event)" }/
10
+ 800
11
+ %input{ name: :pre, type: "radio", value: "800", "v-on:input": "handle_preset($event)" }/
12
+ 1800
13
+ %input{ name: :pre, type: "radio", value: "1800", "v-on:input": "handle_preset($event)" }/
14
+ %br
7
15
  %b Scale {{scaled_x}} x {{scaled_y}}
8
16
  %br/
9
17
  %input{":min": 20 , ":max": 100 , ":step": 0.1 , :type => "range",
@@ -111,6 +119,10 @@
111
119
  @size_y = new_y
112
120
  end
113
121
 
122
+ def handle_preset(event)
123
+ @scale = (100 * event.target.value.to_f ) / @size_x
124
+ end
125
+
114
126
  def handle_size_x(event)
115
127
  set_size_x(event.target.value.to_f)
116
128
  end
@@ -7,6 +7,26 @@
7
7
  = form_tag( breeze.image_copy_path(@image.id) , method: :post) do
8
8
  %button.mx-40.button.change Copy
9
9
 
10
+ .grid.grid-cols-3.gap-10
11
+ %p
12
+ - if img = @image.previous_image
13
+ = link_to "Prev #{img.id}" , breeze.image_path(img)
14
+ -else
15
+ None
16
+ %p
17
+ Current
18
+ =@image.id
19
+ %p
20
+ - if img = @image.next_image
21
+ = link_to "Next #{img.id}" , breeze.image_path(img)
22
+ -else
23
+ None
24
+ -unless @used
25
+ %p.align-center Not used
26
+ = form_tag( breeze.image_path(@image.id) , {method: :delete } ) do
27
+ %button.button.remove{type: :submit} Delete
28
+
29
+
10
30
  .flex.m-20
11
31
  .left.flex.gap-2.mt-3
12
32
  %p
@@ -37,24 +57,19 @@
37
57
  Sections using the image
38
58
  -@sections.each do |section|
39
59
  %p
40
- = link_to section.header , breeze.section_path(section)
60
+ = link_to section.header , breeze.section_path(section) , target: :blank
41
61
  %p
42
62
  %em on Page
43
63
  %p
44
- = link_to section.page.name , breeze.page_sections_path(section.page)
64
+ = link_to section.page.name , "/#{section.page.name}" , target: :blank
45
65
  .grid.grid-cols-3.gap-10
46
66
  %p.col-span-3.font-bold
47
67
  Cards using the image
48
68
  -@cards.each do |card|
49
69
  %p
50
- = link_to card.header , breeze.section_cards_path(card.section)
70
+ - link = card.header.blank? ? "(nil)" : card.header
71
+ = link_to link , breeze.section_cards_path(card.section) , target: :blank
51
72
  %p
52
73
  %em on Page
53
74
  %p
54
- = link_to card.section.page.name , breeze.page_sections_path(card.section.page)
55
-
56
- -else
57
- %p.align-center Not used, you may delete
58
- %p
59
- = form_tag( breeze.image_path(@image.id) , {method: :delete } ) do
60
- %button.button.remove{type: :submit} Delete
75
+ = link_to card.section.page.name , "/" + card.section.page.name , target: :blank
@@ -3,6 +3,6 @@
3
3
  %h3.card_header.p-5.text-2xl.bg-gray-100.text-black.font-bold{ text_align_option(card)}= card.header_text(current_lang)
4
4
  %div.h-full{background_option(card)}
5
5
  .p-5{options(card , :text_align , :text_color)}
6
- .card_text.m-2.text-sm.leading-relaxed.line-clamp-3{ prose_classes }
6
+ .card_text.m-2.text-sm.leading-relaxed{ prose_classes }
7
7
  = markdown(card,current_lang)
8
8
  =view_button(card , "my-2")
@@ -1,2 +1,4 @@
1
+ - content_for(:title , @title)
2
+ - content_for(:description , @description)
1
3
  - @page.sections.each do |section|
2
4
  = render_section( section )
@@ -88,8 +88,8 @@
88
88
  :values: left center right
89
89
  :default: center
90
90
  :id: 17
91
- - :name: meta
92
- :description: Meta tag for page
91
+ - :name: title
92
+ :description: Title for page
93
93
  :values:
94
94
  :default:
95
95
  :id: 18
@@ -127,3 +127,8 @@
127
127
  :values: h-8 h-16 h-24 h-32 h-40 h-48 h-64 h-96
128
128
  :default: h-24
129
129
  :id: 24
130
+ - :name: description
131
+ :description: Meta description for page
132
+ :values:
133
+ :default:
134
+ :id: 25
@@ -1,9 +1,11 @@
1
1
  ---
2
2
  - :type: page
3
3
  :description: A general page, may contain anykind of section.
4
- No restrictions of any kind. No options either.
4
+ No restrictions of any kind. Title goes to the page title and
5
+ description to meta.
5
6
  :options:
6
- - meta
7
+ - title
8
+ - description
7
9
  - :type: blog
8
10
  :description: An news or similar article.
9
11
  :section_template: blog_header
@@ -0,0 +1,148 @@
1
+ # frozen_string_literal: true
2
+ require "simple_form"
3
+
4
+ # Use this setup block to configure all options available in SimpleForm.
5
+ SimpleForm.setup do |config|
6
+ # Default class for buttons
7
+ config.button_class = 'my-2 bg-blue-500 hover:bg-blue-700 text-white font-bold text-sm py-2 px-4 rounded'
8
+
9
+ # Define the default class of the input wrapper of the boolean input.
10
+ config.boolean_label_class = ''
11
+
12
+ # How the label text should be generated altogether with the required text.
13
+ config.label_text = ->(label, required, _explicit_label) { "#{label} #{required}" }
14
+
15
+ # Define the way to render check boxes / radio buttons with labels.
16
+ config.boolean_style = :inline
17
+
18
+ # You can wrap each item in a collection of radio/check boxes with a tag
19
+ config.item_wrapper_tag = :div
20
+
21
+ # Defines if the default input wrapper class should be included in radio
22
+ # collection wrappers.
23
+ config.include_default_input_wrapper_class = false
24
+
25
+ # CSS class to add for error notification helper.
26
+ config.error_notification_class = 'text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-400'
27
+
28
+ # Method used to tidy up errors. Specify any Rails Array method.
29
+ # :first lists the first message for each field.
30
+ # :to_sentence to list all errors for each field.
31
+ config.error_method = :to_sentence
32
+
33
+ # add validation classes to `input_field`
34
+ config.input_field_error_class = 'border-red-500'
35
+ config.input_field_valid_class = 'border-green-400'
36
+ config.label_class = 'text-sm font-medium text-gray-600'
37
+
38
+ # vertical forms
39
+ #
40
+ # vertical default_wrapper
41
+ config.wrappers :vertical_form, tag: 'div', class: 'mb-4' do |b|
42
+ b.use :html5
43
+ b.use :placeholder
44
+ b.optional :maxlength
45
+ b.optional :minlength
46
+ b.optional :pattern
47
+ b.optional :min_max
48
+ b.optional :readonly
49
+ b.use :label, class: 'block', error_class: 'text-red-500'
50
+ b.use :input,
51
+ class: 'shadow appearance-none border border-gray-300 rounded w-full py-2 px-3 bg-white focus:outline-none focus:ring-0 focus:border-blue-500 text-gray-400 leading-6 transition-colors duration-200 ease-in-out', error_class: 'border-red-500', valid_class: 'border-green-400'
52
+ b.use :full_error, wrap_with: { tag: 'p', class: 'mt-2 text-red-500 text-xs italic' }
53
+ b.use :hint, wrap_with: { tag: 'p', class: 'mt-2 text-grey-700 text-xs italic' }
54
+ end
55
+
56
+ # vertical input for boolean (aka checkboxes)
57
+ config.wrappers :vertical_boolean, tag: 'div', class: 'mb-4 flex items-start', error_class: '' do |b|
58
+ b.use :html5
59
+ b.optional :readonly
60
+ b.wrapper tag: 'div', class: 'flex items-center h-5' do |ba|
61
+ ba.use :input,
62
+ class: 'focus:ring-2 focus:ring-indigo-500 ring-offset-2 h-4 w-4 text-indigo-600 border-gray-300 rounded'
63
+ end
64
+ b.wrapper tag: 'div', class: 'ml-3 text-sm' do |bb|
65
+ bb.use :label, class: 'block', error_class: 'text-red-500'
66
+ bb.use :hint, wrap_with: { tag: 'p', class: 'block text-grey-700 text-xs italic' }
67
+ bb.use :full_error, wrap_with: { tag: 'p', class: 'block text-red-500 text-xs italic' }
68
+ end
69
+ end
70
+
71
+ # vertical input for radio buttons and check boxes
72
+ config.wrappers :vertical_collection, item_wrapper_class: 'flex items-center',
73
+ item_label_class: 'my-1 ml-3 block text-sm font-medium text-gray-400', tag: 'div', class: 'my-4' do |b|
74
+ b.use :html5
75
+ b.optional :readonly
76
+ b.wrapper :legend_tag, tag: 'legend', class: 'text-sm font-medium text-gray-600',
77
+ error_class: 'text-red-500' do |ba|
78
+ ba.use :label_text
79
+ end
80
+ b.use :input,
81
+ class: 'focus:ring-2 focus:ring-indigo-500 ring-offset-2 h-4 w-4 text-indigo-600 border-gray-300 rounded', error_class: 'text-red-500', valid_class: 'text-green-400'
82
+ b.use :full_error, wrap_with: { tag: 'p', class: 'block mt-2 text-red-500 text-xs italic' }
83
+ b.use :hint, wrap_with: { tag: 'p', class: 'mt-2 text-grey-700 text-xs italic' }
84
+ end
85
+
86
+ # vertical file input
87
+ config.wrappers :vertical_file, tag: 'div', class: '' do |b|
88
+ b.use :html5
89
+ b.use :placeholder
90
+ b.optional :maxlength
91
+ b.optional :minlength
92
+ b.optional :readonly
93
+ b.use :label, class: 'text-sm font-medium text-gray-600 block', error_class: 'text-red-500'
94
+ b.use :input, class: 'w-full text-gray-500 px-3 py-2 border rounded', error_class: 'text-red-500 border-red-500',
95
+ valid_class: 'text-green-400'
96
+ b.use :full_error, wrap_with: { tag: 'p', class: 'mt-2 text-red-500 text-xs italic' }
97
+ b.use :hint, wrap_with: { tag: 'p', class: 'mt-2 text-grey-700 text-xs italic' }
98
+ end
99
+
100
+ # vertical multi select
101
+ config.wrappers :vertical_multi_select, tag: 'div', class: 'my-4', error_class: 'f', valid_class: '' do |b|
102
+ b.use :html5
103
+ b.optional :readonly
104
+ b.wrapper :legend_tag, tag: 'legend', class: 'text-sm font-medium text-gray-600',
105
+ error_class: 'text-red-500' do |ba|
106
+ ba.use :label_text
107
+ end
108
+ b.wrapper tag: 'div', class: 'inline-flex space-x-1' do |ba|
109
+ # ba.use :input, class: 'flex w-auto w-auto text-gray-500 text-sm border-gray-300 rounded p-2', error_class: 'text-red-500', valid_class: 'text-green-400'
110
+ ba.use :input,
111
+ class: 'flex w-auto w-auto shadow appearance-none border border-gray-300 rounded w-full p-2 bg-white focus:outline-none focus:border-blue-500 text-gray-400 leading-4 transition-colors duration-200 ease-in-out'
112
+ end
113
+ b.use :full_error, wrap_with: { tag: 'p', class: 'mt-2 text-red-500 text-xs italic' }
114
+ b.use :hint, wrap_with: { tag: 'p', class: 'mt-2 text-grey-700 text-xs italic' }
115
+ end
116
+
117
+ # vertical range input
118
+ config.wrappers :vertical_range, tag: 'div', class: 'my-4', error_class: 'text-red-500',
119
+ valid_class: 'text-green-400' do |b|
120
+ b.use :html5
121
+ b.use :placeholder
122
+ b.optional :readonly
123
+ b.optional :step
124
+ b.use :label, class: 'text-sm font-medium text-gray-600 block', error_class: 'text-red-500'
125
+ b.wrapper tag: 'div', class: 'flex items-center h-5' do |ba|
126
+ ba.use :input, class: 'rounded-lg overflow-hidden appearance-none bg-gray-400 h-3 w-full text-gray-300',
127
+ error_class: 'text-red-500', valid_class: 'text-green-400'
128
+ end
129
+ b.use :full_error, wrap_with: { tag: 'p', class: 'mt-2 text-red-500 text-xs italic' }
130
+ b.use :hint, wrap_with: { tag: 'p', class: 'mt-2 text-grey-700 text-xs italic' }
131
+ end
132
+
133
+ # The default wrapper to be used by the FormBuilder.
134
+ config.default_wrapper = :vertical_form
135
+
136
+ # Custom wrappers for input types. This should be a hash containing an input
137
+ # type as key and the wrapper that will be used for all inputs with specified type.
138
+ config.wrapper_mappings = {
139
+ boolean: :vertical_boolean,
140
+ check_boxes: :vertical_collection,
141
+ date: :vertical_multi_select,
142
+ datetime: :vertical_multi_select,
143
+ file: :vertical_file,
144
+ radio_buttons: :vertical_collection,
145
+ range: :vertical_range,
146
+ time: :vertical_multi_select
147
+ }
148
+ end
data/lib/breeze/engine.rb CHANGED
@@ -4,8 +4,7 @@ require "ruby2js/filter/functions"
4
4
  require "ruby2js/haml"
5
5
  require "ruby2js/filter/vue"
6
6
  require "breeze/shared_helper"
7
- require "simple_form"
8
- require "simple_form_tailwind_css"
7
+ #require "simple_form"
9
8
  require "haml-rails"
10
9
  require "opal-rails"
11
10
  require "opal-jquery"
@@ -28,9 +27,13 @@ module Breeze
28
27
 
29
28
  initializer "after_initialize" do |app|
30
29
  ActiveSupport::Reloader.to_prepare do
31
- [Section, Card, Page, Image, PageStyle,
32
- SectionStyle, CardStyle, OptionDefinition].each do |clazz|
33
- clazz.reload
30
+ begin
31
+ [Section, Card, Page, Image, PageStyle,
32
+ SectionStyle, CardStyle, OptionDefinition].each do |clazz|
33
+ clazz.reload
34
+ end
35
+ rescue Errno::ENOENT => e
36
+ puts e
34
37
  end
35
38
  end
36
39
  end
@@ -1,3 +1,3 @@
1
1
  module Breeze
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: breeze_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Torsten
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-01 00:00:00.000000000 Z
11
+ date: 2025-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -28,58 +28,58 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '13.0'
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '13.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: haml-rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.0'
47
+ version: '2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.0'
54
+ version: '2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: redcarpet
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.5'
61
+ version: '3'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.5'
68
+ version: '3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mini_magick
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '4.0'
75
+ version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '4.0'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: ruby2js
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -101,33 +101,19 @@ dependencies:
101
101
  - !ruby/object:Gem::Version
102
102
  version: '6.0'
103
103
  - !ruby/object:Gem::Dependency
104
- name: simple_form_tailwind_css
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '1.0'
110
- type: :runtime
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '1.0'
117
- - !ruby/object:Gem::Dependency
118
- name: simple_form
104
+ name: simple_form-tailwind
119
105
  requirement: !ruby/object:Gem::Requirement
120
106
  requirements:
121
- - - '='
107
+ - - ">="
122
108
  - !ruby/object:Gem::Version
123
- version: 5.1.0
109
+ version: '0'
124
110
  type: :runtime
125
111
  prerelease: false
126
112
  version_requirements: !ruby/object:Gem::Requirement
127
113
  requirements:
128
- - - '='
114
+ - - ">="
129
115
  - !ruby/object:Gem::Version
130
- version: 5.1.0
116
+ version: '0'
131
117
  - !ruby/object:Gem::Dependency
132
118
  name: opal-rails
133
119
  requirement: !ruby/object:Gem::Requirement
@@ -176,14 +162,14 @@ dependencies:
176
162
  requirements:
177
163
  - - "~>"
178
164
  - !ruby/object:Gem::Version
179
- version: '2.3'
165
+ version: '2.7'
180
166
  type: :runtime
181
167
  prerelease: false
182
168
  version_requirements: !ruby/object:Gem::Requirement
183
169
  requirements:
184
170
  - - "~>"
185
171
  - !ruby/object:Gem::Version
186
- version: '2.3'
172
+ version: '2.7'
187
173
  - !ruby/object:Gem::Dependency
188
174
  name: rabl
189
175
  requirement: !ruby/object:Gem::Requirement
@@ -343,7 +329,7 @@ files:
343
329
  - config/breeze/section_styles.yml
344
330
  - config/initializers/breeze.rb
345
331
  - config/initializers/rabl.rb
346
- - config/initializers/simple_form.rb
332
+ - config/initializers/simple_form_tailwind.rb
347
333
  - config/locales/breeze_en.yml
348
334
  - config/routes.rb
349
335
  - config/tailwind.config.js
@@ -381,7 +367,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
381
367
  - !ruby/object:Gem::Version
382
368
  version: '0'
383
369
  requirements: []
384
- rubygems_version: 3.4.10
370
+ rubygems_version: 3.5.23
385
371
  signing_key:
386
372
  specification_version: 4
387
373
  summary: The tailwind based, developers CMS