plutonium 0.22.0 → 0.23.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b7671d043400785ca24363d24a18b8b4562dfeaf6bf4f9d8cb03ac92dfa17cc
4
- data.tar.gz: '092938ea8c152f8505a597db56e20e3ec423fefc3a549eba7437800eccce823e'
3
+ metadata.gz: 5b6106e6479856651cc2e5b632cb05004392cd1643a3eb157e1f88a84de06103
4
+ data.tar.gz: 57389cece65e0f035f5001c279bdbc910d03812ec055a6ed118b087e27ed0c0f
5
5
  SHA512:
6
- metadata.gz: b409e381c34bf2cede9f71a35652a0357cd78cce109c08b0d2f6f3fa1b5848e63d6da849802b8e84f7d104b0f07d7fc97d9c2d7f4669f8abc8e5b5ae120a1a16
7
- data.tar.gz: 0d137d2b3d62b96eff4ad5f550325045b67c6395de74d1f87c5c48eb32ba0514facca68203ad3fedcca3445f1300931e55081de4204386434db40c80dd42d17b
6
+ metadata.gz: 013ca5e147764f6dd8181b63aac505d09559561b012fd53f104dcb4259a48a11859eb0c8d1aff05e1c90caf7374b598c186bf1eb55533d0440aab94a1ca45a86
7
+ data.tar.gz: 7e9fd22ffb966a36045b97eb413d54b58e4523fb2faa9fae90aec803a6e62fc45cc125dae8bfd1b488831a1fd4d767dd2e70c938d82406820f374983a3459442
@@ -10,7 +10,7 @@ module ActiveModel
10
10
  #
11
11
  class AttachedValidator < EachValidator
12
12
  def validate_each(record, attribute, value)
13
- record.errors.add(attribute, (options[:message] || "must be attached")) unless value.attached?
13
+ record.errors.add(attribute, options[:message] || "must be attached") unless value.attached?
14
14
  end
15
15
  end
16
16
  end
@@ -43,7 +43,7 @@ module ActiveModel
43
43
  return true unless options[:image].present?
44
44
  return true unless FastImage.type(value).nil?
45
45
 
46
- record.errors.add(attribute, (options[:message] || "is not a valid image URL"))
46
+ record.errors.add(attribute, options[:message] || "is not a valid image URL")
47
47
  false
48
48
  end
49
49
  end
@@ -14,7 +14,7 @@ module Plutonium
14
14
  def filtered_resource_collection
15
15
  query_params = current_definition
16
16
  .query_form.new(nil, query_object: current_query_object, page_size: nil)
17
- .extract_input(params)[:q]
17
+ .extract_input(params, view_context:)[:q]
18
18
 
19
19
  base_query = current_authorized_scope
20
20
  current_query_object.apply(base_query, query_params)
@@ -5,8 +5,10 @@ module Plutonium
5
5
  module Component
6
6
  module Behaviour
7
7
  extend ActiveSupport::Concern
8
+ include Phlexi::Field::Common::Tokens
8
9
  include Methods
9
10
  include Kit
11
+ include Tokens
10
12
 
11
13
  if Rails.env.development?
12
14
  def around_template(&)
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Plutonium
4
+ module UI
5
+ module Component
6
+ module Tokens
7
+ def classes(*tokens, **conditional_tokens)
8
+ tokens = self.tokens(*tokens, **conditional_tokens)
9
+
10
+ if tokens.empty?
11
+ {}
12
+ else
13
+ {class: tokens}
14
+ end
15
+ end
16
+
17
+ def tokens(*tokens, **conditional_tokens)
18
+ conditional_tokens.each do |condition, token|
19
+ truthy = case condition
20
+ when Symbol then send(condition)
21
+ when Proc then condition.call
22
+ else raise ArgumentError, "The class condition must be a Symbol or a Proc."
23
+ end
24
+
25
+ if truthy
26
+ case token
27
+ when Hash then __append_token__(tokens, token[:then])
28
+ else __append_token__(tokens, token)
29
+ end
30
+ else
31
+ case token
32
+ when Hash then __append_token__(tokens, token[:else])
33
+ end
34
+ end
35
+ end
36
+
37
+ tokens = tokens.select(&:itself).join(" ")
38
+ tokens.strip!
39
+ tokens.gsub!(/\s+/, " ")
40
+ tokens
41
+ end
42
+
43
+ private
44
+
45
+ def __append_token__(tokens, token)
46
+ case token
47
+ when nil then nil
48
+ when String then tokens << token
49
+ when Symbol then tokens << token.name
50
+ when Array then tokens.concat(token)
51
+ else raise ArgumentError,
52
+ "Conditional classes must be Symbols, Strings, or Arrays of Symbols or Strings."
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -7,7 +7,7 @@ module Plutonium
7
7
  def view_template
8
8
  if current_turbo_frame.present?
9
9
  turbo_frame_tag(current_turbo_frame) do
10
- render "flash"
10
+ render partial("flash")
11
11
  yield
12
12
  end
13
13
  else
@@ -7,6 +7,7 @@ module Plutonium
7
7
  include Plutonium::UI::Component::Behaviour
8
8
 
9
9
  class Builder < Builder
10
+ include Phlexi::Field::Common::Tokens
10
11
  include Plutonium::UI::Form::Options::InferredTypes
11
12
 
12
13
  def easymde_tag(**, &)
@@ -59,7 +59,7 @@ module Plutonium
59
59
  end
60
60
 
61
61
  def render_flash
62
- render "flash"
62
+ render partial("flash")
63
63
  end
64
64
 
65
65
  def render_before_content
@@ -17,8 +17,8 @@ module Plutonium
17
17
  def render_before_main
18
18
  super
19
19
 
20
- render("resource_header")
21
- render("resource_sidebar")
20
+ render partial("resource_header")
21
+ render partial("resource_sidebar")
22
22
  end
23
23
  end
24
24
  end
@@ -15,7 +15,7 @@ module Plutonium
15
15
  end
16
16
 
17
17
  def render_default_content
18
- render "resource_form"
18
+ render partial("resource_form")
19
19
  end
20
20
 
21
21
  def page_type = :edit_page
@@ -19,7 +19,7 @@ module Plutonium
19
19
  end
20
20
 
21
21
  def render_default_content
22
- render "resource_table"
22
+ render partial("resource_table")
23
23
  end
24
24
 
25
25
  def page_type = :index_page
@@ -15,7 +15,7 @@ module Plutonium
15
15
  end
16
16
 
17
17
  def render_default_content
18
- render "interactive_action_form"
18
+ render partial("interactive_action_form")
19
19
  end
20
20
 
21
21
  def page_type = :interactive_action_page
@@ -15,7 +15,7 @@ module Plutonium
15
15
  end
16
16
 
17
17
  def render_default_content
18
- render "resource_form"
18
+ render partial("resource_form")
19
19
  end
20
20
 
21
21
  def page_type = :new_page
@@ -19,7 +19,7 @@ module Plutonium
19
19
  end
20
20
 
21
21
  def render_default_content
22
- render "resource_details"
22
+ render partial("resource_details")
23
23
  end
24
24
 
25
25
  def page_type = :show_page
@@ -1,5 +1,5 @@
1
1
  module Plutonium
2
- VERSION = "0.22.0"
2
+ VERSION = "0.23.0"
3
3
  NEXT_MAJOR_VERSION = VERSION.split(".").tap { |v|
4
4
  v[1] = v[1].to_i + 1
5
5
  v[2] = 0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plutonium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Froelich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-05-10 00:00:00.000000000 Z
11
+ date: 2025-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk
@@ -192,62 +192,76 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: phlexi-field
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 0.2.0
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 0.2.0
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: phlexi-form
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: 0.9.0
215
+ version: 0.10.0
202
216
  type: :runtime
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - "~>"
207
221
  - !ruby/object:Gem::Version
208
- version: 0.9.0
222
+ version: 0.10.0
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: phlexi-table
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: 0.1.0
229
+ version: 0.2.0
216
230
  type: :runtime
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
- version: 0.1.0
236
+ version: 0.2.0
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: phlexi-display
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - "~>"
228
242
  - !ruby/object:Gem::Version
229
- version: 0.1.0
243
+ version: 0.2.0
230
244
  type: :runtime
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
248
  - - "~>"
235
249
  - !ruby/object:Gem::Version
236
- version: 0.1.0
250
+ version: 0.2.0
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: phlexi-menu
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - "~>"
242
256
  - !ruby/object:Gem::Version
243
- version: 0.3.0
257
+ version: 0.4.0
244
258
  type: :runtime
245
259
  prerelease: false
246
260
  version_requirements: !ruby/object:Gem::Requirement
247
261
  requirements:
248
262
  - - "~>"
249
263
  - !ruby/object:Gem::Version
250
- version: 0.3.0
264
+ version: 0.4.0
251
265
  - !ruby/object:Gem::Dependency
252
266
  name: tailwind_merge
253
267
  requirement: !ruby/object:Gem::Requirement
@@ -811,6 +825,7 @@ files:
811
825
  - lib/plutonium/ui/component/behaviour.rb
812
826
  - lib/plutonium/ui/component/kit.rb
813
827
  - lib/plutonium/ui/component/methods.rb
828
+ - lib/plutonium/ui/component/tokens.rb
814
829
  - lib/plutonium/ui/display/base.rb
815
830
  - lib/plutonium/ui/display/components/association.rb
816
831
  - lib/plutonium/ui/display/components/attachment.rb