phlexy_ui 0.1.10 → 0.1.12

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: f59d7f461c2ebf91b2bf3646cc33fa8122c9df39449f3a59879766c2230406d8
4
- data.tar.gz: 6972f8cb458ccfdd10af9212c840f62e02ef1a8050f014c7438cc58c923fb1e9
3
+ metadata.gz: 15833ec8eb9cd9c00452ea80591bba425ffdecc6d0013c437aa3f8a940e9fe03
4
+ data.tar.gz: 00aeee09acce4fca859f4e0da44faf57fe4ea8535d2d02853f2c4e2b6e7c3e7a
5
5
  SHA512:
6
- metadata.gz: c4fbcc5a531c1b5c5cdb1a0eeb49bcd59a3dcf4ddd0562cd3fa297a909ea673d5b05493bb429548f5336966c668d07ea5e118b3aa7abfa8feba0ce2408a27f18
7
- data.tar.gz: 5ecf6460831ce0047b4a1162aa5870f2adf01b2113927e9baa4f7573a82ce6494f8b4e416f1815657119e94dbdba1bad975cdd9250060ff9ec2e2ba5a3eb1d9c
6
+ metadata.gz: 0cfdd30af5edce344e54ea410dbea263e45e0e7f3b4f336b1d5efc25141bb02235597d6d20ddbe4b3e935a7d9f987c3fefad733a8facf65d6e9bbde2ba692afb
7
+ data.tar.gz: 7ade2f88c64c129d15464459d2ce342fe6e0f2917dd2573990ab60ad614bf21380d8db2576bdd2443a8b045fdaf1d1fe69d83208823efd1f6e8dcc1f6bbca9e3
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class Alert < Base
5
+ def initialize(*, as: :div, **)
6
+ super(*, **)
7
+ @as = as
8
+ end
9
+
10
+ def view_template(&)
11
+ generate_classes!(
12
+ component_html_class: :alert,
13
+ modifiers_map: modifiers,
14
+ base_modifiers:,
15
+ options:
16
+ ).then do |classes|
17
+ public_send(as, role: :alert, class: classes, **options, &)
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ register_modifiers(
24
+ # "sm:alert-info"
25
+ # "md:alert-info"
26
+ # "lg:alert-info"
27
+ info: "alert-info",
28
+ # "sm:alert-success"
29
+ # "md:alert-success"
30
+ # "lg:alert-success"
31
+ success: "alert-success",
32
+ # "sm:alert-warning"
33
+ # "md:alert-warning"
34
+ # "lg:alert-warning"
35
+ warning: "alert-warning",
36
+ # "sm:alert-error"
37
+ # "md:alert-error"
38
+ # "lg:alert-error"
39
+ error: "alert-error",
40
+ # "sm:alert-neutral"
41
+ # "md:alert-neutral"
42
+ # "lg:alert-neutral"
43
+ neutral: "alert-neutral",
44
+ # "sm:alert-primary"
45
+ # "md:alert-primary"
46
+ # "lg:alert-primary"
47
+ primary: "alert-primary",
48
+ # "sm:alert-secondary"
49
+ # "md:alert-secondary"
50
+ # "lg:alert-secondary"
51
+ secondary: "alert-secondary",
52
+ # "sm:alert-accent"
53
+ # "md:alert-accent"
54
+ # "lg:alert-accent"
55
+ accent: "alert-accent"
56
+ )
57
+ end
58
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "phlex/version"
4
+
3
5
  module PhlexyUI
4
6
  class Button < Base
5
7
  def initialize(*, as: :button, modal: nil, **)
@@ -16,7 +18,17 @@ module PhlexyUI
16
18
  options:
17
19
  ).then do |classes|
18
20
  if modal
19
- build_button_via_unsafe_raw(classes, &)
21
+ if Phlex::VERSION.start_with?("1.")
22
+ build_button_via_unsafe_raw(classes, &)
23
+ else
24
+ public_send(
25
+ as,
26
+ class: classes,
27
+ onclick: safe("#{Phlex::Escape.html_escape(modal)}.showModal()"),
28
+ **options,
29
+ &
30
+ )
31
+ end
20
32
  else
21
33
  public_send(as, class: classes, **options, &)
22
34
  end
@@ -13,19 +13,25 @@ module PhlexyUI
13
13
  def view_template(&)
14
14
  attributes = generate_attributes(base_modifiers, ATTRIBUTES_MAP)
15
15
 
16
- details(**attributes) do
17
- if @title
18
- summary do
19
- render @title
16
+ generate_classes!(
17
+ base_modifiers:,
18
+ modifiers_map: modifiers,
19
+ options:
20
+ ).then do |classes|
21
+ details(**attributes) do
22
+ if @title
23
+ summary do
24
+ render @title
25
+ end
26
+ else
27
+ raise ArgumentError, "A collapsible submenu requires a title"
20
28
  end
21
- else
22
- raise ArgumentError, "A collapsible submenu requires a title"
23
- end
24
29
 
25
- if @items.any?
26
- ul do
27
- @items.each do |item|
28
- render item
30
+ if @items.any?
31
+ ul class: classes, **options do
32
+ @items.each do |item|
33
+ render item
34
+ end
29
35
  end
30
36
  end
31
37
  end
@@ -49,5 +55,52 @@ module PhlexyUI
49
55
  ATTRIBUTES_MAP = {
50
56
  open: true
51
57
  }.freeze
58
+
59
+ register_modifiers(
60
+ # "sm:bg-primary sm:text-primary-content"
61
+ # "md:bg-primary md:text-primary-content"
62
+ # "lg:bg-primary lg:text-primary-content"
63
+ primary: "bg-primary text-primary-content",
64
+ # "sm:bg-secondary sm:text-secondary-content"
65
+ # "md:bg-secondary md:text-secondary-content"
66
+ # "lg:bg-secondary lg:text-secondary-content"
67
+ secondary: "bg-secondary text-secondary-content",
68
+ # "sm:bg-accent sm:text-accent-content"
69
+ # "md:bg-accent md:text-accent-content"
70
+ # "lg:bg-accent lg:text-accent-content"
71
+ accent: "bg-accent text-accent-content",
72
+ # "sm:bg-neutral sm:text-neutral-content"
73
+ # "md:bg-neutral md:text-neutral-content"
74
+ # "lg:bg-neutral lg:text-neutral-content"
75
+ neutral: "bg-neutral text-neutral-content",
76
+ # "sm:bg-base-100 sm:text-base-content"
77
+ # "md:bg-base-100 md:text-base-content"
78
+ # "lg:bg-base-100 lg:text-base-content"
79
+ base_100: "bg-base-100 text-base-content",
80
+ # "sm:bg-base-200 sm:text-base-content"
81
+ # "md:bg-base-200 md:text-base-content"
82
+ # "lg:bg-base-200 lg:text-base-content"
83
+ base_200: "bg-base-200 text-base-content",
84
+ # "sm:bg-base-300 sm:text-base-content"
85
+ # "md:bg-base-300 md:text-base-content"
86
+ # "lg:bg-base-300 lg:text-base-content"
87
+ base_300: "bg-base-300 text-base-content",
88
+ # "sm:bg-info sm:text-info-content"
89
+ # "md:bg-info sm:text-info-content"
90
+ # "lg:bg-info sm:text-info-content"
91
+ info: "bg-info text-info-content",
92
+ # "sm:bg-success sm:text-success-content"
93
+ # "md:bg-success md:text-success-content"
94
+ # "lg:bg-success lg:text-success-content"
95
+ success: "bg-success text-success-content",
96
+ # "sm:bg-warning sm:text-warning-content"
97
+ # "md:bg-warning md:text-warning-content"
98
+ # "lg:bg-warning lg:text-warning-content"
99
+ warning: "bg-warning text-warning-content",
100
+ # "sm:bg-error sm:text-error-content"
101
+ # "md:bg-error md:text-error-content"
102
+ # "lg:bg-error lg:text-error-content"
103
+ error: "bg-error text-error-content"
104
+ )
52
105
  end
53
106
  end
@@ -18,16 +18,31 @@ module PhlexyUI
18
18
  end
19
19
  end
20
20
 
21
- def start(&)
22
- div(class: :"navbar-start", &)
21
+ def start(*, as: :div, **options, &)
22
+ generate_classes!(
23
+ component_html_class: :"navbar-start",
24
+ options:
25
+ ).then do |classes|
26
+ public_send(as, class: classes, **options, &)
27
+ end
23
28
  end
24
29
 
25
- def center(&)
26
- div(class: :"navbar-center", &)
30
+ def center(*, as: :div, **options, &)
31
+ generate_classes!(
32
+ component_html_class: :"navbar-center",
33
+ options:
34
+ ).then do |classes|
35
+ public_send(as, class: classes, **options, &)
36
+ end
27
37
  end
28
38
 
29
- def end(&)
30
- div(class: :"navbar-end", &)
39
+ def end(*, as: :div, **options, &)
40
+ generate_classes!(
41
+ component_html_class: :"navbar-end",
42
+ options:
43
+ ).then do |classes|
44
+ public_send(as, class: classes, **options, &)
45
+ end
31
46
  end
32
47
 
33
48
  register_modifiers(
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class RadialProgress < Base
5
+ def initialize(*, value:, as: :div, size: nil, thickness: nil, **)
6
+ super(*, **)
7
+ @as = as
8
+ @value = value
9
+ @size = size
10
+ @thickness = thickness
11
+ end
12
+
13
+ def view_template(&)
14
+ generate_classes!(
15
+ component_html_class: :"radial-progress",
16
+ modifiers_map: modifiers,
17
+ base_modifiers:,
18
+ options:
19
+ ).then do |classes|
20
+ style = options.delete(:style)
21
+
22
+ if style.nil?
23
+ style = "--value: #{value}; --size: #{size}; --thickness: #{thickness};"
24
+ elsif style.is_a?(String)
25
+ style = "#{style} --value: #{value}; --size: #{size}; --thickness: #{thickness};"
26
+ end
27
+
28
+ public_send(as, role: :progressbar, class: classes, style:, **options, &)
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ attr_reader :value, :size, :thickness
35
+
36
+ register_modifiers(
37
+ # "sm:bg-primary sm:text-primary-content"
38
+ # "md:bg-primary md:text-primary-content"
39
+ # "lg:bg-primary lg:text-primary-content"
40
+ primary: "bg-primary text-primary-content",
41
+ # "sm:bg-secondary sm:text-secondary-content"
42
+ # "md:bg-secondary md:text-secondary-content"
43
+ # "lg:bg-secondary lg:text-secondary-content"
44
+ secondary: "bg-secondary text-secondary-content",
45
+ # "sm:bg-accent sm:text-accent-content"
46
+ # "md:bg-accent md:text-accent-content"
47
+ # "lg:bg-accent lg:text-accent-content"
48
+ accent: "bg-accent text-accent-content",
49
+ # "sm:bg-neutral sm:text-neutral-content"
50
+ # "md:bg-neutral md:text-neutral-content"
51
+ # "lg:bg-neutral lg:text-neutral-content"
52
+ neutral: "bg-neutral text-neutral-content",
53
+ # "sm:bg-base-100 sm:text-base-content"
54
+ # "md:bg-base-100 md:text-base-content"
55
+ # "lg:bg-base-100 lg:text-base-content"
56
+ base_100: "bg-base-100 text-base-content",
57
+ # "sm:bg-base-200 sm:text-base-content"
58
+ # "md:bg-base-200 md:text-base-content"
59
+ # "lg:bg-base-200 lg:text-base-content"
60
+ base_200: "bg-base-200 text-base-content",
61
+ # "sm:bg-base-300 sm:text-base-content"
62
+ # "md:bg-base-300 md:text-base-content"
63
+ # "lg:bg-base-300 lg:text-base-content"
64
+ base_300: "bg-base-300 text-base-content",
65
+ # "sm:bg-info sm:text-info-content"
66
+ # "md:bg-info sm:text-info-content"
67
+ # "lg:bg-info sm:text-info-content"
68
+ info: "bg-info text-info-content",
69
+ # "sm:bg-success sm:text-success-content"
70
+ # "md:bg-success md:text-success-content"
71
+ # "lg:bg-success lg:text-success-content"
72
+ success: "bg-success text-success-content",
73
+ # "sm:bg-warning sm:text-warning-content"
74
+ # "md:bg-warning md:text-warning-content"
75
+ # "lg:bg-warning lg:text-warning-content"
76
+ warning: "bg-warning text-warning-content",
77
+ # "sm:bg-error sm:text-error-content"
78
+ # "md:bg-error md:text-error-content"
79
+ # "lg:bg-error lg:text-error-content"
80
+ error: "bg-error text-error-content"
81
+ )
82
+ end
83
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PhlexyUI
4
- VERSION = "0.1.10"
4
+ VERSION = "0.1.12"
5
5
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlexy_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Alejandro Aguilar Ramos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-29 00:00:00.000000000 Z
11
+ date: 2024-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.10'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.10'
27
27
  - !ruby/object:Gem::Dependency
@@ -93,6 +93,7 @@ extensions: []
93
93
  extra_rdoc_files: []
94
94
  files:
95
95
  - lib/phlexy_ui.rb
96
+ - lib/phlexy_ui/alert.rb
96
97
  - lib/phlexy_ui/attribute_set.rb
97
98
  - lib/phlexy_ui/avatar.rb
98
99
  - lib/phlexy_ui/avatar_group.rb
@@ -115,6 +116,7 @@ files:
115
116
  - lib/phlexy_ui/menu_item.rb
116
117
  - lib/phlexy_ui/modal.rb
117
118
  - lib/phlexy_ui/navbar.rb
119
+ - lib/phlexy_ui/radial_progress.rb
118
120
  - lib/phlexy_ui/sub_menu.rb
119
121
  - lib/phlexy_ui/tab.rb
120
122
  - lib/phlexy_ui/tab_with_content.rb