phlexy_ui 0.1.5 → 0.1.7

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: da2c28aae3a33b6153c19f22a2d8845d1c92a7a94ad5f9ea0f326c22f419cd1d
4
- data.tar.gz: 7fe16b4951c08d429c1e6c5848f7cab70bb3cfbc8170cfca56fccbddc1ddd3f9
3
+ metadata.gz: e9af209a8c35542f7bce170fc57d12aad6094383f5b2d02e99356e65a2303094
4
+ data.tar.gz: 66de1dc598260d76985c4167f4b6be257079b58412c0c292f0297cf9f7e6220f
5
5
  SHA512:
6
- metadata.gz: 8f10b63d841c5cec345f9a1da3e83ce402cd10924506a79820b6f115695d47db463e933d11943556754a88877645e6b8e05e8b4ceda64a92673bf74da967f65b
7
- data.tar.gz: 37c963d0c597523910d93a7ba3a147663dd1dfcf980801ed52e2342eb53eb664ea2b898c85e083e8f8c45c56d4bad86b03d9d3e347df8a74dd9c274edcf41274
6
+ metadata.gz: 43b1563b99263306f57a817a06717351eb50531a5bda3de368021937ad2f80afa0d7393b26639ad5f9c64e84b642404341ac4f89de502c333ad23a12cb450715
7
+ data.tar.gz: 87cc196de8b27500fd6b087a0a8b75bfc7b0f27b5f9dc7a4041a817c2db0aff23abd2df33f1d231fc09cb8af226b5df87d6a5a055d2ad8fb1a2653d8ca656e1d
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class Avatar < 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: :avatar,
13
+ modifiers_map: modifiers,
14
+ base_modifiers:,
15
+ options:
16
+ ).then do |classes|
17
+ public_send(as, class: classes, **options, &)
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ register_modifiers(
24
+ # "sm:online"
25
+ # "md:online"
26
+ # "lg:online"
27
+ online: "online",
28
+ # "sm:offline"
29
+ # "md:offline"
30
+ # "lg:offline"
31
+ offline: "offline",
32
+ # "sm:placeholder"
33
+ # "md:placeholder"
34
+ # "lg:placeholder"
35
+ placeholder: "placeholder"
36
+ )
37
+ end
38
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class AvatarGroup < 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: :"avatar-group",
13
+ options:
14
+ ).then do |classes|
15
+ public_send(as, class: classes, **options, &)
16
+ end
17
+ end
18
+
19
+ def avatar(*, **, &)
20
+ render PhlexyUI::Avatar.new(*, **, &)
21
+ end
22
+ end
23
+ end
@@ -10,7 +10,7 @@ module PhlexyUI
10
10
  def view_template(&)
11
11
  generate_classes!(
12
12
  component_html_class: :badge,
13
- modifiers_map: BADGE_MODIFIERS_MAP,
13
+ modifiers_map: modifiers,
14
14
  base_modifiers:,
15
15
  options:
16
16
  ).then do |classes|
@@ -20,7 +20,7 @@ module PhlexyUI
20
20
 
21
21
  private
22
22
 
23
- BADGE_MODIFIERS_MAP = {
23
+ register_modifiers(
24
24
  # "sm:badge-neutral"
25
25
  # "md:badge-neutral"
26
26
  # "lg:badge-neutral"
@@ -77,6 +77,6 @@ module PhlexyUI
77
77
  # "md:badge-xs"
78
78
  # "lg:badge-xs"
79
79
  xs: "badge-xs"
80
- }.freeze
80
+ )
81
81
  end
82
82
  end
@@ -10,7 +10,7 @@ module PhlexyUI
10
10
  def view_template(&)
11
11
  generate_classes!(
12
12
  component_html_class: :btn,
13
- modifiers_map: BUTTON_MODIFIERS_MAP,
13
+ modifiers_map: modifiers,
14
14
  base_modifiers:,
15
15
  options:
16
16
  ).then do |classes|
@@ -20,7 +20,7 @@ module PhlexyUI
20
20
 
21
21
  private
22
22
 
23
- BUTTON_MODIFIERS_MAP = {
23
+ register_modifiers(
24
24
  # Modifiers
25
25
  # "sm:no-animation"
26
26
  # "md:no-animation"
@@ -115,6 +115,6 @@ module PhlexyUI
115
115
  # "md:btn-error"
116
116
  # "lg:btn-error"
117
117
  error: "btn-error"
118
- }.freeze
118
+ ).freeze
119
119
  end
120
120
  end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class Checkbox < Base
5
+ def view_template(&)
6
+ attributes = generate_attributes(base_modifiers, ATTRIBUTES_MAP)
7
+
8
+ generate_classes!(
9
+ component_html_class: :checkbox,
10
+ modifiers_map: modifiers,
11
+ base_modifiers:,
12
+ options:
13
+ ).then do |classes|
14
+ input(type: :checkbox, class: classes, **options, **attributes, &)
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ ATTRIBUTES_MAP = {
21
+ checked: true,
22
+ disabled: true
23
+ }.freeze
24
+
25
+ register_modifiers(
26
+ # "sm:checkbox-primary"
27
+ # "md:checkbox-primary"
28
+ # "lg:checkbox-primary"
29
+ primary: "checkbox-primary",
30
+ # "sm:checkbox-secondary"
31
+ # "md:checkbox-secondary"
32
+ # "lg:checkbox-secondary"
33
+ secondary: "checkbox-secondary",
34
+ # "sm:checkbox-accent"
35
+ # "md:checkbox-accent"
36
+ # "lg:checkbox-accent"
37
+ accent: "checkbox-accent",
38
+ # "sm:checkbox-success"
39
+ # "md:checkbox-success"
40
+ # "lg:checkbox-success"
41
+ success: "checkbox-success",
42
+ # "sm:checkbox-warning"
43
+ # "md:checkbox-warning"
44
+ # "lg:checkbox-warning"
45
+ warning: "checkbox-warning",
46
+ # "sm:checkbox-info"
47
+ # "md:checkbox-info"
48
+ # "lg:checkbox-info"
49
+ info: "checkbox-info",
50
+ # "sm:checkbox-error"
51
+ # "md:checkbox-error"
52
+ # "lg:checkbox-error"
53
+ error: "checkbox-error",
54
+ # "sm:checkbox-lg"
55
+ # "md:checkbox-lg"
56
+ # "lg:checkbox-lg"
57
+ lg: "checkbox-lg",
58
+ # "sm:checkbox-md"
59
+ # "md:checkbox-md"
60
+ # "lg:checkbox-md"
61
+ md: "checkbox-md",
62
+ # "sm:checkbox-sm"
63
+ # "md:checkbox-sm"
64
+ # "lg:checkbox-sm"
65
+ sm: "checkbox-sm",
66
+ # "sm:checkbox-xs"
67
+ # "md:checkbox-xs"
68
+ # "lg:checkbox-xs"
69
+ xs: "checkbox-xs"
70
+ )
71
+ end
72
+ end
@@ -19,6 +19,7 @@ module PhlexyUI
19
19
  classes = []
20
20
  add_component_class(classes)
21
21
  add_selected_modifiers_classes(classes)
22
+ add_conditioned_modifiers_classes(classes)
22
23
  add_responsive_modifiers_classes(classes)
23
24
  add_class_option_classes(classes)
24
25
  classes
@@ -46,6 +47,14 @@ module PhlexyUI
46
47
  )
47
48
  end
48
49
 
50
+ def add_conditioned_modifiers_classes(classes)
51
+ modifiers_map.each do |modifier, class_name|
52
+ next unless options.delete(modifier)
53
+
54
+ classes << with_config_prefix(class_name)
55
+ end
56
+ end
57
+
49
58
  def html_classes_for_modifiers(modifiers, responsive_prefix: nil)
50
59
  modifiers.map do |modifier|
51
60
  with_responsive_prefix(
@@ -58,8 +67,10 @@ module PhlexyUI
58
67
  end
59
68
 
60
69
  def add_responsive_modifiers_classes(classes)
70
+ return unless (responsive_options = options.delete(:responsive))
71
+
61
72
  RESPONSIVE_PREFIXES.each do |responsive_prefix|
62
- if (values = options.delete(responsive_prefix))
73
+ if (values = responsive_options[responsive_prefix])
63
74
  classes.concat(
64
75
  html_classes_for_modifiers(
65
76
  Array(values),
@@ -11,7 +11,7 @@ module PhlexyUI
11
11
  def view_template(&)
12
12
  generate_classes!(
13
13
  component_html_class: :drawer,
14
- modifiers_map: DRAWER_MODIFIERS_MAP,
14
+ modifiers_map: modifiers,
15
15
  base_modifiers:,
16
16
  options:
17
17
  ).then do |classes|
@@ -61,15 +61,15 @@ module PhlexyUI
61
61
 
62
62
  private
63
63
 
64
- DRAWER_MODIFIERS_MAP = {
65
- # "sm:drawer-end",
66
- # "md:drawer-end",
67
- # "lg:drawer-end",
64
+ register_modifiers(
65
+ # "sm:drawer-end"
66
+ # "md:drawer-end"
67
+ # "lg:drawer-end"
68
68
  end: "drawer-end",
69
- # "sm:drawer-open",
70
- # "md:drawer-open",
71
- # "lg:drawer-open",
69
+ # "sm:drawer-open"
70
+ # "md:drawer-open"
71
+ # "lg:drawer-open"
72
72
  open: "drawer-open"
73
- }.freeze
73
+ )
74
74
  end
75
75
  end
@@ -10,7 +10,7 @@ module PhlexyUI
10
10
  def view_template(&)
11
11
  generate_classes!(
12
12
  component_html_class: :dropdown,
13
- modifiers_map: DROPDOWN_MODIFIERS_MAP,
13
+ modifiers_map: modifiers,
14
14
  base_modifiers:,
15
15
  options:
16
16
  ).then do |classes|
@@ -58,7 +58,7 @@ module PhlexyUI
58
58
 
59
59
  private
60
60
 
61
- DROPDOWN_MODIFIERS_MAP = {
61
+ register_modifiers(
62
62
  # "sm:dropdown-end"
63
63
  # "md:dropdown-end"
64
64
  # "lg:dropdown-end"
@@ -87,6 +87,6 @@ module PhlexyUI
87
87
  # "md:dropdown-open"
88
88
  # "lg:dropdown-open"
89
89
  open: "dropdown-open"
90
- }.freeze
90
+ )
91
91
  end
92
92
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class FormControl < 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: "form-control",
13
+ options:
14
+ ).then do |classes|
15
+ public_send(as, class: classes, **options, &)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class Label < Base
5
+ def view_template(&)
6
+ generate_classes!(
7
+ component_html_class: :label,
8
+ options:
9
+ ).then do |classes|
10
+ label(class: classes, **options, &)
11
+ end
12
+ end
13
+
14
+ def text(as: :span, **options, &)
15
+ generate_classes!(
16
+ component_html_class: :"label-text",
17
+ options:
18
+ ).then do |classes|
19
+ public_send(as, class: classes, **options, &)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -4,7 +4,7 @@ module PhlexyUI
4
4
  class Link < Base
5
5
  def view_template(&)
6
6
  generate_classes!(
7
- modifiers_map: LINK_MODIFIERS_MAP,
7
+ modifiers_map: modifiers,
8
8
  base_modifiers:,
9
9
  options:
10
10
  ).then do |classes|
@@ -16,7 +16,7 @@ module PhlexyUI
16
16
 
17
17
  attr_reader :link_to_name
18
18
 
19
- LINK_MODIFIERS_MAP = {
19
+ register_modifiers(
20
20
  # "sm:link"
21
21
  # "md:link"
22
22
  # "lg:link"
@@ -85,6 +85,6 @@ module PhlexyUI
85
85
  # "md:link-error"
86
86
  # "lg:link-error"
87
87
  error: "link-error"
88
- }.freeze
88
+ ).freeze
89
89
  end
90
90
  end
@@ -10,7 +10,7 @@ module PhlexyUI
10
10
  def view_template(&)
11
11
  generate_classes!(
12
12
  component_html_class: :loading,
13
- modifiers_map: LOADING_MODIFIERS_MAP,
13
+ modifiers_map: modifiers,
14
14
  base_modifiers:,
15
15
  options:
16
16
  ).then do |classes|
@@ -20,7 +20,7 @@ module PhlexyUI
20
20
 
21
21
  private
22
22
 
23
- LOADING_MODIFIERS_MAP = {
23
+ register_modifiers(
24
24
  # "sm:loading-spinner"
25
25
  # "md:loading-spinner"
26
26
  # "lg:loading-spinner"
@@ -93,6 +93,6 @@ module PhlexyUI
93
93
  # "md:text-error"
94
94
  # "lg:text-error"
95
95
  error: "text-error"
96
- }.freeze
96
+ ).freeze
97
97
  end
98
98
  end
@@ -0,0 +1,110 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class Mask < 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: :mask,
13
+ modifiers_map: modifiers,
14
+ base_modifiers:,
15
+ options:
16
+ ).then do |classes|
17
+ public_send(as, class: classes, **options, &)
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ register_modifiers(
24
+ # "sm:mask-squircle"
25
+ # "md:mask-squircle"
26
+ # "lg:mask-squircle"
27
+ squircle: "mask-squircle",
28
+ # "sm:mask-heart"
29
+ # "md:mask-heart"
30
+ # "lg:mask-heart"
31
+ heart: "mask-heart",
32
+ # "sm:mask-hexagon"
33
+ # "md:mask-hexagon"
34
+ # "lg:mask-hexagon"
35
+ hexagon: "mask-hexagon",
36
+ # "sm:mask-hexagon-2"
37
+ # "md:mask-hexagon-2"
38
+ # "lg:mask-hexagon-2"
39
+ hexagon_2: "mask-hexagon-2",
40
+ # "sm:mask-decagon"
41
+ # "md:mask-decagon"
42
+ # "lg:mask-decagon"
43
+ decagon: "mask-decagon",
44
+ # "sm:mask-pentagon"
45
+ # "md:mask-pentagon"
46
+ # "lg:mask-pentagon"
47
+ pentagon: "mask-pentagon",
48
+ # "sm:mask-diamond"
49
+ # "md:mask-diamond"
50
+ # "lg:mask-diamond"
51
+ diamond: "mask-diamond",
52
+ # "sm:mask-square"
53
+ # "md:mask-square"
54
+ # "lg:mask-square"
55
+ square: "mask-square",
56
+ # "sm:mask-circle"
57
+ # "md:mask-circle"
58
+ # "lg:mask-circle"
59
+ circle: "mask-circle",
60
+ # "sm:mask-parallelogram"
61
+ # "md:mask-parallelogram"
62
+ # "lg:mask-parallelogram"
63
+ parallelogram: "mask-parallelogram",
64
+ # "sm:mask-parallelogram-2"
65
+ # "md:mask-parallelogram-2"
66
+ # "lg:mask-parallelogram-2"
67
+ parallelogram_2: "mask-parallelogram-2",
68
+ # "sm:mask-parallelogram-3"
69
+ # "md:mask-parallelogram-3"
70
+ # "lg:mask-parallelogram-3"
71
+ parallelogram_3: "mask-parallelogram-3",
72
+ # "sm:mask-parallelogram-4"
73
+ # "md:mask-parallelogram-4"
74
+ # "lg:mask-parallelogram-4"
75
+ parallelogram_4: "mask-parallelogram-4",
76
+ # "sm:mask-star"
77
+ # "md:mask-star"
78
+ # "lg:mask-star"
79
+ star: "mask-star",
80
+ # "sm:mask-star-2"
81
+ # "md:mask-star-2"
82
+ # "lg:mask-star-2"
83
+ star_2: "mask-star-2",
84
+ # "sm:mask-triangle"
85
+ # "md:mask-triangle"
86
+ # "lg:mask-triangle"
87
+ triangle: "mask-triangle",
88
+ # "sm:mask-triangle-2"
89
+ # "md:mask-triangle-2"
90
+ # "lg:mask-triangle-2"
91
+ triangle_2: "mask-triangle-2",
92
+ # "sm:mask-triangle-3"
93
+ # "md:mask-triangle-3"
94
+ # "lg:mask-triangle-3"
95
+ triangle_3: "mask-triangle-3",
96
+ # "sm:mask-triangle-4"
97
+ # "md:mask-triangle-4"
98
+ # "lg:mask-triangle-4"
99
+ triangle_4: "mask-triangle-4",
100
+ # "sm:mask-half-1"
101
+ # "md:mask-half-1"
102
+ # "lg:mask-half-1"
103
+ half_1: "mask-half-1",
104
+ # "sm:mask-half-2"
105
+ # "md:mask-half-2"
106
+ # "lg:mask-half-2"
107
+ half_2: "mask-half-2"
108
+ )
109
+ end
110
+ end
@@ -5,7 +5,7 @@ module PhlexyUI
5
5
  def view_template(&)
6
6
  generate_classes!(
7
7
  component_html_class: :menu,
8
- modifiers_map: MENU_MODIFIERS_MAP,
8
+ modifiers_map: modifiers,
9
9
  base_modifiers:,
10
10
  options:
11
11
  ).then do |classes|
@@ -40,7 +40,7 @@ module PhlexyUI
40
40
 
41
41
  private
42
42
 
43
- MENU_MODIFIERS_MAP = {
43
+ register_modifiers(
44
44
  # "sm:menu-xs"
45
45
  # "md:menu-xs"
46
46
  # "lg:menu-xs"
@@ -109,6 +109,6 @@ module PhlexyUI
109
109
  # "md:bg-error md:text-error-content"
110
110
  # "lg:bg-error lg:text-error-content"
111
111
  error: "bg-error text-error-content"
112
- }.freeze
112
+ )
113
113
  end
114
114
  end
@@ -5,7 +5,7 @@ module PhlexyUI
5
5
  class MenuItem < Base
6
6
  def view_template(&)
7
7
  generate_classes!(
8
- modifiers_map: MENU_ITEM_MODIFIERS_MAP,
8
+ modifiers_map: modifiers,
9
9
  base_modifiers:,
10
10
  options:
11
11
  ).then do |classes|
@@ -32,7 +32,7 @@ module PhlexyUI
32
32
 
33
33
  private
34
34
 
35
- MENU_ITEM_MODIFIERS_MAP = {
35
+ register_modifiers(
36
36
  # "sm:disabled"
37
37
  # "md:disabled"
38
38
  # "lg:disabled"
@@ -45,6 +45,6 @@ module PhlexyUI
45
45
  # "md:focus"
46
46
  # "lg:focus"
47
47
  focus: "focus"
48
- }.freeze
48
+ )
49
49
  end
50
50
  end
data/lib/phlexy_ui/tab.rb CHANGED
@@ -39,18 +39,5 @@ module PhlexyUI
39
39
  end
40
40
  end
41
41
  end
42
-
43
- private
44
-
45
- TAB_MODIFIERS_CLASSES = {
46
- # "sm:tab-active"
47
- # "md:tab-active"
48
- # "lg:tab-active"
49
- active: "tab-active",
50
- # "sm:tab-disabled"
51
- # "md:tab-disabled"
52
- # "lg:tab-disabled"
53
- disabled: "tab-disabled"
54
- }.freeze
55
42
  end
56
43
  end
@@ -20,7 +20,7 @@ module PhlexyUI
20
20
 
21
21
  generate_classes!(
22
22
  component_html_class: :tab,
23
- modifiers_map: Tab::TAB_MODIFIERS_CLASSES,
23
+ modifiers_map: modifiers,
24
24
  base_modifiers:,
25
25
  options:
26
26
  ).then do |classes|
@@ -46,5 +46,16 @@ module PhlexyUI
46
46
  open: {checked: true},
47
47
  closed: true
48
48
  }.freeze
49
+
50
+ register_modifiers(
51
+ # "sm:tab-active"
52
+ # "md:tab-active"
53
+ # "lg:tab-active"
54
+ active: "tab-active",
55
+ # "sm:tab-disabled"
56
+ # "md:tab-disabled"
57
+ # "lg:tab-disabled"
58
+ disabled: "tab-disabled"
59
+ )
49
60
  end
50
61
  end
@@ -6,7 +6,7 @@ module PhlexyUI
6
6
  def view_template(&)
7
7
  generate_classes!(
8
8
  component_html_class: :tab,
9
- modifiers_map: Tab::TAB_MODIFIERS_CLASSES,
9
+ modifiers_map: modifiers,
10
10
  base_modifiers:,
11
11
  options:
12
12
  ).then do |classes|
@@ -18,7 +18,7 @@ module PhlexyUI
18
18
 
19
19
  attr_reader :title
20
20
 
21
- TAB_MODIFIERS_CLASSES = {
21
+ register_modifiers(
22
22
  # "sm:tab-active"
23
23
  # "md:tab-active"
24
24
  # "lg:tab-active"
@@ -27,6 +27,6 @@ module PhlexyUI
27
27
  # "md:tab-disabled"
28
28
  # "lg:tab-disabled"
29
29
  disabled: "tab-disabled"
30
- }.freeze
30
+ )
31
31
  end
32
32
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class Table < Base
5
+ def view_template(&)
6
+ generate_classes!(
7
+ component_html_class: :table,
8
+ modifiers_map: modifiers,
9
+ base_modifiers:,
10
+ options:
11
+ ).then do |classes|
12
+ table(class: classes, **options, &)
13
+ end
14
+ end
15
+
16
+ def header(*, **, &)
17
+ thead(*, **, &)
18
+ end
19
+
20
+ def row(*, **, &)
21
+ render TableRow.new(*, **, &)
22
+ end
23
+
24
+ def body(*, **, &)
25
+ tbody(*, **, &)
26
+ end
27
+
28
+ def footer(*, **, &)
29
+ tfoot(*, **, &)
30
+ end
31
+
32
+ private
33
+
34
+ register_modifiers(
35
+ # "sm:table-zebra"
36
+ # "md:table-zebra"
37
+ # "lg:table-zebra"
38
+ zebra: "table-zebra",
39
+ # "sm:table-pin-rows"
40
+ # "md:table-pin-rows"
41
+ # "lg:table-pin-rows"
42
+ pin_rows: "table-pin-rows",
43
+ # "sm:table-pin-cols"
44
+ # "md:table-pin-cols"
45
+ # "lg:table-pin-cols"
46
+ pin_cols: "table-pin-cols",
47
+ # "sm:table-xs"
48
+ # "md:table-xs"
49
+ # "lg:table-xs"
50
+ xs: "table-xs",
51
+ # "sm:table-sm"
52
+ # "md:table-sm"
53
+ # "lg:table-sm"
54
+ sm: "table-sm",
55
+ # "sm:table-md"
56
+ # "md:table-md"
57
+ # "lg:table-md"
58
+ md: "table-md",
59
+ # "sm:table-lg"
60
+ # "md:table-lg"
61
+ # "lg:table-lg"
62
+ lg: "table-lg"
63
+ )
64
+ end
65
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexyUI
4
+ class TableRow < Base
5
+ def view_template(&)
6
+ generate_classes!(
7
+ modifiers_map: modifiers,
8
+ base_modifiers:,
9
+ options:
10
+ ).then do |classes|
11
+ tr(class: classes, **options, &)
12
+ end
13
+ end
14
+
15
+ def head(*, **, &)
16
+ th(*, **, &)
17
+ end
18
+
19
+ def column(*, **, &)
20
+ td(*, **, &)
21
+ end
22
+ alias_method :cell, :column
23
+
24
+ private
25
+
26
+ register_modifiers(
27
+ # "sm:table-row-hover"
28
+ # "md:table-row-hover"
29
+ # "lg:table-row-hover"
30
+ hover: "hover",
31
+ # "sm:bg-primary sm:text-primary-content"
32
+ # "md:bg-primary md:text-primary-content"
33
+ # "lg:bg-primary lg:text-primary-content"
34
+ primary: "bg-primary text-primary-content",
35
+ # "sm:bg-secondary sm:text-secondary-content"
36
+ # "md:bg-secondary md:text-secondary-content"
37
+ # "lg:bg-secondary lg:text-secondary-content"
38
+ secondary: "bg-secondary text-secondary-content",
39
+ # "sm:bg-accent sm:text-accent-content"
40
+ # "md:bg-accent md:text-accent-content"
41
+ # "lg:bg-accent lg:text-accent-content"
42
+ accent: "bg-accent text-accent-content",
43
+ # "sm:bg-neutral sm:text-neutral-content"
44
+ # "md:bg-neutral md:text-neutral-content"
45
+ # "lg:bg-neutral lg:text-neutral-content"
46
+ neutral: "bg-neutral text-neutral-content",
47
+ # "sm:bg-base-100 sm:text-base-content"
48
+ # "md:bg-base-100 md:text-base-content"
49
+ # "lg:bg-base-100 lg:text-base-content"
50
+ base_100: "bg-base-100 text-base-content",
51
+ # "sm:bg-base-200 sm:text-base-content"
52
+ # "md:bg-base-200 md:text-base-content"
53
+ # "lg:bg-base-200 lg:text-base-content"
54
+ base_200: "bg-base-200 text-base-content",
55
+ # "sm:bg-base-300 sm:text-base-content"
56
+ # "md:bg-base-300 md:text-base-content"
57
+ # "lg:bg-base-300 lg:text-base-content"
58
+ base_300: "bg-base-300 text-base-content",
59
+ # "sm:bg-info sm:text-info-content"
60
+ # "md:bg-info sm:text-info-content"
61
+ # "lg:bg-info sm:text-info-content"
62
+ info: "bg-info text-info-content",
63
+ # "sm:bg-success sm:text-success-content"
64
+ # "md:bg-success md:text-success-content"
65
+ # "lg:bg-success lg:text-success-content"
66
+ success: "bg-success text-success-content",
67
+ # "sm:bg-warning sm:text-warning-content"
68
+ # "md:bg-warning md:text-warning-content"
69
+ # "lg:bg-warning lg:text-warning-content"
70
+ warning: "bg-warning text-warning-content",
71
+ # "sm:bg-error sm:text-error-content"
72
+ # "md:bg-error md:text-error-content"
73
+ # "lg:bg-error lg:text-error-content"
74
+ error: "bg-error text-error-content"
75
+ )
76
+ end
77
+ end
@@ -11,7 +11,7 @@ module PhlexyUI
11
11
  def view_template(&)
12
12
  generate_classes!(
13
13
  component_html_class: :tabs,
14
- modifiers_map: TABS_MODIFIERS_CLASSES,
14
+ modifiers_map: modifiers,
15
15
  base_modifiers:,
16
16
  options:
17
17
  ).then do |classes|
@@ -25,7 +25,7 @@ module PhlexyUI
25
25
 
26
26
  private
27
27
 
28
- TABS_MODIFIERS_CLASSES = {
28
+ register_modifiers(
29
29
  # "sm:tabs-boxed"
30
30
  # "md:tabs-boxed"
31
31
  # "lg:tabs-boxed"
@@ -54,6 +54,6 @@ module PhlexyUI
54
54
  # "md:tabs-lg"
55
55
  # "lg:tabs-lg"
56
56
  lg: "tabs-lg"
57
- }.freeze
57
+ )
58
58
  end
59
59
  end
@@ -11,7 +11,7 @@ module PhlexyUI
11
11
  def view_template(&)
12
12
  generate_classes!(
13
13
  component_html_class: :tooltip,
14
- modifiers_map: TOOLTIP_MODIFIERS_MAP,
14
+ modifiers_map: modifiers,
15
15
  base_modifiers:,
16
16
  options:
17
17
  ).then do |classes|
@@ -23,7 +23,7 @@ module PhlexyUI
23
23
 
24
24
  attr_reader :tip
25
25
 
26
- TOOLTIP_MODIFIERS_MAP = {
26
+ register_modifiers(
27
27
  # "sm:tooltip-open"
28
28
  # "md:tooltip-open"
29
29
  # "lg:tooltip-open"
@@ -72,6 +72,6 @@ module PhlexyUI
72
72
  # "md:tooltip-error"
73
73
  # "lg:tooltip-error"
74
74
  error: "tooltip-error"
75
- }.freeze
75
+ )
76
76
  end
77
77
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PhlexyUI
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.7"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlexy_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
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-17 00:00:00.000000000 Z
11
+ date: 2024-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex
@@ -94,17 +94,23 @@ extra_rdoc_files: []
94
94
  files:
95
95
  - lib/phlexy_ui.rb
96
96
  - lib/phlexy_ui/attribute_set.rb
97
+ - lib/phlexy_ui/avatar.rb
98
+ - lib/phlexy_ui/avatar_group.rb
97
99
  - lib/phlexy_ui/badge.rb
98
100
  - lib/phlexy_ui/base.rb
99
101
  - lib/phlexy_ui/button.rb
100
102
  - lib/phlexy_ui/card.rb
103
+ - lib/phlexy_ui/checkbox.rb
101
104
  - lib/phlexy_ui/class_list.rb
102
105
  - lib/phlexy_ui/collapsible_sub_menu.rb
103
106
  - lib/phlexy_ui/configurable.rb
104
107
  - lib/phlexy_ui/drawer.rb
105
108
  - lib/phlexy_ui/dropdown.rb
109
+ - lib/phlexy_ui/form_control.rb
110
+ - lib/phlexy_ui/label.rb
106
111
  - lib/phlexy_ui/link.rb
107
112
  - lib/phlexy_ui/loading.rb
113
+ - lib/phlexy_ui/mask.rb
108
114
  - lib/phlexy_ui/menu.rb
109
115
  - lib/phlexy_ui/menu_item.rb
110
116
  - lib/phlexy_ui/navbar.rb
@@ -112,6 +118,8 @@ files:
112
118
  - lib/phlexy_ui/tab.rb
113
119
  - lib/phlexy_ui/tab_with_content.rb
114
120
  - lib/phlexy_ui/tab_without_content.rb
121
+ - lib/phlexy_ui/table.rb
122
+ - lib/phlexy_ui/table_row.rb
115
123
  - lib/phlexy_ui/tabs.rb
116
124
  - lib/phlexy_ui/tooltip.rb
117
125
  - lib/phlexy_ui/version.rb