phlexy_ui 0.1.10 → 0.1.12

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: 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