daisyui 1.3.0 → 2.0.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 +4 -4
- data/CHANGELOG.md +45 -0
- data/LICENSE-tailwind_merge.txt +21 -0
- data/README.md +58 -0
- data/lib/daisy_ui/accordion.rb +32 -28
- data/lib/daisy_ui/alert.rb +97 -94
- data/lib/daisy_ui/aura.rb +37 -37
- data/lib/daisy_ui/avatar.rb +16 -14
- data/lib/daisy_ui/badge.rb +159 -156
- data/lib/daisy_ui/base.rb +38 -4
- data/lib/daisy_ui/button.rb +148 -142
- data/lib/daisy_ui/card.rb +57 -54
- data/lib/daisy_ui/carousel.rb +36 -32
- data/lib/daisy_ui/chat.rb +16 -15
- data/lib/daisy_ui/checkbox.rb +95 -93
- data/lib/daisy_ui/class_merge/cache.rb +40 -0
- data/lib/daisy_ui/class_merge/class_group_utils.rb +139 -0
- data/lib/daisy_ui/class_merge/configuration.rb +77 -0
- data/lib/daisy_ui/class_merge/daisy_groups.rb +83 -0
- data/lib/daisy_ui/class_merge/merger.rb +126 -0
- data/lib/daisy_ui/class_merge/parse_class_name.rb +110 -0
- data/lib/daisy_ui/class_merge/sort_modifiers.rb +36 -0
- data/lib/daisy_ui/class_merge/tailwind_config.rb +2505 -0
- data/lib/daisy_ui/class_merge/validators.rb +202 -0
- data/lib/daisy_ui/class_merge.rb +47 -0
- data/lib/daisy_ui/collapse.rb +32 -28
- data/lib/daisy_ui/configurable.rb +31 -3
- data/lib/daisy_ui/divider.rb +84 -78
- data/lib/daisy_ui/dock.rb +37 -35
- data/lib/daisy_ui/dropdown.rb +67 -65
- data/lib/daisy_ui/file_input.rb +95 -91
- data/lib/daisy_ui/footer.rb +16 -14
- data/lib/daisy_ui/indicator.rb +40 -36
- data/lib/daisy_ui/input.rb +95 -91
- data/lib/daisy_ui/join.rb +16 -14
- data/lib/daisy_ui/kbd.rb +37 -35
- data/lib/daisy_ui/link.rb +58 -58
- data/lib/daisy_ui/loading.rb +85 -81
- data/lib/daisy_ui/mask.rb +123 -119
- data/lib/daisy_ui/megamenu.rb +53 -50
- data/lib/daisy_ui/menu.rb +57 -53
- data/lib/daisy_ui/modal.rb +49 -47
- data/lib/daisy_ui/otp.rb +95 -93
- data/lib/daisy_ui/pagination.rb +16 -14
- data/lib/daisy_ui/progress.rb +58 -56
- data/lib/daisy_ui/radio.rb +95 -91
- data/lib/daisy_ui/range.rb +95 -91
- data/lib/daisy_ui/rating.rb +37 -35
- data/lib/daisy_ui/select.rb +95 -91
- data/lib/daisy_ui/stack.rb +24 -22
- data/lib/daisy_ui/stat.rb +16 -14
- data/lib/daisy_ui/status.rb +95 -91
- data/lib/daisy_ui/steps.rb +16 -14
- data/lib/daisy_ui/swap.rb +16 -14
- data/lib/daisy_ui/table.rb +41 -39
- data/lib/daisy_ui/tabs.rb +80 -77
- data/lib/daisy_ui/textarea.rb +95 -91
- data/lib/daisy_ui/timeline.rb +16 -14
- data/lib/daisy_ui/toast.rb +46 -42
- data/lib/daisy_ui/toggle.rb +95 -91
- data/lib/daisy_ui/tooltip.rb +113 -106
- data/lib/daisy_ui/updated_at.rb +1 -1
- data/lib/daisy_ui/version.rb +1 -1
- metadata +18 -1
data/lib/daisy_ui/badge.rb
CHANGED
|
@@ -13,162 +13,165 @@ module DaisyUI
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
register_modifiers(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
16
|
+
style: {
|
|
17
|
+
# "sm:badge-outline"
|
|
18
|
+
# "@sm:badge-outline"
|
|
19
|
+
# "md:badge-outline"
|
|
20
|
+
# "@md:badge-outline"
|
|
21
|
+
# "lg:badge-outline"
|
|
22
|
+
# "@lg:badge-outline"
|
|
23
|
+
# "xl:badge-outline"
|
|
24
|
+
# "@xl:badge-outline"
|
|
25
|
+
outline: "badge-outline",
|
|
26
|
+
# "sm:badge-dash"
|
|
27
|
+
# "@sm:badge-dash"
|
|
28
|
+
# "md:badge-dash"
|
|
29
|
+
# "@md:badge-dash"
|
|
30
|
+
# "lg:badge-dash"
|
|
31
|
+
# "@lg:badge-dash"
|
|
32
|
+
# "xl:badge-dash"
|
|
33
|
+
# "@xl:badge-dash"
|
|
34
|
+
dash: "badge-dash",
|
|
35
|
+
# "sm:badge-soft"
|
|
36
|
+
# "@sm:badge-soft"
|
|
37
|
+
# "md:badge-soft"
|
|
38
|
+
# "@md:badge-soft"
|
|
39
|
+
# "lg:badge-soft"
|
|
40
|
+
# "@lg:badge-soft"
|
|
41
|
+
# "xl:badge-soft"
|
|
42
|
+
# "@xl:badge-soft"
|
|
43
|
+
soft: "badge-soft",
|
|
44
|
+
# "sm:badge-ghost"
|
|
45
|
+
# "@sm:badge-ghost"
|
|
46
|
+
# "md:badge-ghost"
|
|
47
|
+
# "@md:badge-ghost"
|
|
48
|
+
# "lg:badge-ghost"
|
|
49
|
+
# "@lg:badge-ghost"
|
|
50
|
+
# "xl:badge-ghost"
|
|
51
|
+
# "@xl:badge-ghost"
|
|
52
|
+
ghost: "badge-ghost"
|
|
53
|
+
},
|
|
54
|
+
color: {
|
|
55
|
+
# "sm:badge-neutral"
|
|
56
|
+
# "@sm:badge-neutral"
|
|
57
|
+
# "md:badge-neutral"
|
|
58
|
+
# "@md:badge-neutral"
|
|
59
|
+
# "lg:badge-neutral"
|
|
60
|
+
# "@lg:badge-neutral"
|
|
61
|
+
# "xl:badge-neutral"
|
|
62
|
+
# "@xl:badge-neutral"
|
|
63
|
+
neutral: "badge-neutral",
|
|
64
|
+
# "sm:badge-primary"
|
|
65
|
+
# "@sm:badge-primary"
|
|
66
|
+
# "md:badge-primary"
|
|
67
|
+
# "@md:badge-primary"
|
|
68
|
+
# "lg:badge-primary"
|
|
69
|
+
# "@lg:badge-primary"
|
|
70
|
+
# "xl:badge-primary"
|
|
71
|
+
# "@xl:badge-primary"
|
|
72
|
+
primary: "badge-primary",
|
|
73
|
+
# "sm:badge-secondary"
|
|
74
|
+
# "@sm:badge-secondary"
|
|
75
|
+
# "md:badge-secondary"
|
|
76
|
+
# "@md:badge-secondary"
|
|
77
|
+
# "lg:badge-secondary"
|
|
78
|
+
# "@lg:badge-secondary"
|
|
79
|
+
# "xl:badge-secondary"
|
|
80
|
+
# "@xl:badge-secondary"
|
|
81
|
+
secondary: "badge-secondary",
|
|
82
|
+
# "sm:badge-accent"
|
|
83
|
+
# "@sm:badge-accent"
|
|
84
|
+
# "md:badge-accent"
|
|
85
|
+
# "@md:badge-accent"
|
|
86
|
+
# "lg:badge-accent"
|
|
87
|
+
# "@lg:badge-accent"
|
|
88
|
+
# "xl:badge-accent"
|
|
89
|
+
# "@xl:badge-accent"
|
|
90
|
+
accent: "badge-accent",
|
|
91
|
+
# "sm:badge-info"
|
|
92
|
+
# "@sm:badge-info"
|
|
93
|
+
# "md:badge-info"
|
|
94
|
+
# "@md:badge-info"
|
|
95
|
+
# "lg:badge-info"
|
|
96
|
+
# "@lg:badge-info"
|
|
97
|
+
# "xl:badge-info"
|
|
98
|
+
# "@xl:badge-info"
|
|
99
|
+
info: "badge-info",
|
|
100
|
+
# "sm:badge-success"
|
|
101
|
+
# "@sm:badge-success"
|
|
102
|
+
# "md:badge-success"
|
|
103
|
+
# "@md:badge-success"
|
|
104
|
+
# "lg:badge-success"
|
|
105
|
+
# "@lg:badge-success"
|
|
106
|
+
# "xl:badge-success"
|
|
107
|
+
# "@xl:badge-success"
|
|
108
|
+
success: "badge-success",
|
|
109
|
+
# "sm:badge-warning"
|
|
110
|
+
# "@sm:badge-warning"
|
|
111
|
+
# "md:badge-warning"
|
|
112
|
+
# "@md:badge-warning"
|
|
113
|
+
# "lg:badge-warning"
|
|
114
|
+
# "@lg:badge-warning"
|
|
115
|
+
# "xl:badge-warning"
|
|
116
|
+
# "@xl:badge-warning"
|
|
117
|
+
warning: "badge-warning",
|
|
118
|
+
# "sm:badge-error"
|
|
119
|
+
# "@sm:badge-error"
|
|
120
|
+
# "md:badge-error"
|
|
121
|
+
# "@md:badge-error"
|
|
122
|
+
# "lg:badge-error"
|
|
123
|
+
# "@lg:badge-error"
|
|
124
|
+
# "xl:badge-error"
|
|
125
|
+
# "@xl:badge-error"
|
|
126
|
+
error: "badge-error"
|
|
127
|
+
},
|
|
128
|
+
size: {
|
|
129
|
+
# "sm:badge-xs"
|
|
130
|
+
# "@sm:badge-xs"
|
|
131
|
+
# "md:badge-xs"
|
|
132
|
+
# "@md:badge-xs"
|
|
133
|
+
# "lg:badge-xs"
|
|
134
|
+
# "@lg:badge-xs"
|
|
135
|
+
# "xl:badge-xs"
|
|
136
|
+
# "@xl:badge-xs"
|
|
137
|
+
xs: "badge-xs",
|
|
138
|
+
# "sm:badge-sm"
|
|
139
|
+
# "@sm:badge-sm"
|
|
140
|
+
# "md:badge-sm"
|
|
141
|
+
# "@md:badge-sm"
|
|
142
|
+
# "lg:badge-sm"
|
|
143
|
+
# "@lg:badge-sm"
|
|
144
|
+
# "xl:badge-sm"
|
|
145
|
+
# "@xl:badge-sm"
|
|
146
|
+
sm: "badge-sm",
|
|
147
|
+
# "sm:badge-md"
|
|
148
|
+
# "@sm:badge-md"
|
|
149
|
+
# "md:badge-md"
|
|
150
|
+
# "@md:badge-md"
|
|
151
|
+
# "lg:badge-md"
|
|
152
|
+
# "@lg:badge-md"
|
|
153
|
+
# "xl:badge-md"
|
|
154
|
+
# "@xl:badge-md"
|
|
155
|
+
md: "badge-md",
|
|
156
|
+
# "sm:badge-lg"
|
|
157
|
+
# "@sm:badge-lg"
|
|
158
|
+
# "md:badge-lg"
|
|
159
|
+
# "@md:badge-lg"
|
|
160
|
+
# "lg:badge-lg"
|
|
161
|
+
# "@lg:badge-lg"
|
|
162
|
+
# "xl:badge-lg"
|
|
163
|
+
# "@xl:badge-lg"
|
|
164
|
+
lg: "badge-lg",
|
|
165
|
+
# "sm:badge-xl"
|
|
166
|
+
# "@sm:badge-xl"
|
|
167
|
+
# "md:badge-xl"
|
|
168
|
+
# "@md:badge-xl"
|
|
169
|
+
# "lg:badge-xl"
|
|
170
|
+
# "@lg:badge-xl"
|
|
171
|
+
# "xl:badge-xl"
|
|
172
|
+
# "@xl:badge-xl"
|
|
173
|
+
xl: "badge-xl"
|
|
174
|
+
}
|
|
172
175
|
)
|
|
173
176
|
end
|
|
174
177
|
end
|
data/lib/daisy_ui/base.rb
CHANGED
|
@@ -119,9 +119,15 @@ module DaisyUI
|
|
|
119
119
|
}.freeze
|
|
120
120
|
|
|
121
121
|
class << self
|
|
122
|
-
attr_writer :component_class
|
|
122
|
+
attr_writer :component_class, :modifier_groups
|
|
123
123
|
attr_accessor :modifiers
|
|
124
124
|
|
|
125
|
+
# { group => [modifier, ...] }: modifiers in one group are alternatives
|
|
126
|
+
# (sizes, colors, ...), so ClassMerge keeps only the last one.
|
|
127
|
+
def modifier_groups
|
|
128
|
+
@modifier_groups ||= {}
|
|
129
|
+
end
|
|
130
|
+
|
|
125
131
|
def component_class
|
|
126
132
|
return @component_class if instance_variable_defined?(:@component_class)
|
|
127
133
|
|
|
@@ -138,14 +144,37 @@ module DaisyUI
|
|
|
138
144
|
def inherited(subclass)
|
|
139
145
|
super
|
|
140
146
|
subclass.modifiers = (modifiers || {}).dup
|
|
147
|
+
subclass.modifier_groups = modifier_groups.transform_values(&:dup)
|
|
141
148
|
# Inherit component_class if it was explicitly set
|
|
142
149
|
return unless instance_variable_defined?(:@component_class)
|
|
143
150
|
|
|
144
151
|
subclass.component_class = @component_class
|
|
145
152
|
end
|
|
146
153
|
|
|
154
|
+
# Registers modifiers. A Hash value declares a group of alternatives:
|
|
155
|
+
#
|
|
156
|
+
# register_modifiers(
|
|
157
|
+
# size: { sm: "btn-sm", lg: "btn-lg" }, # btn-sm btn-lg merges to btn-lg
|
|
158
|
+
# wide: "btn-wide" # ungrouped, never conflicts
|
|
159
|
+
# )
|
|
147
160
|
def register_modifiers(mods)
|
|
148
|
-
|
|
161
|
+
flat = {}
|
|
162
|
+
mods.each do |key, value|
|
|
163
|
+
if value.is_a?(Hash)
|
|
164
|
+
flat.merge!(value)
|
|
165
|
+
else
|
|
166
|
+
flat[key] = value
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
modifier_groups.each_value { |members| members.delete_if { |member| flat.key?(member) } }
|
|
171
|
+
mods.each do |group, value|
|
|
172
|
+
(modifier_groups[group] ||= []).concat(value.keys) if value.is_a?(Hash)
|
|
173
|
+
end
|
|
174
|
+
modifier_groups.delete_if { |_group, members| members.empty? }
|
|
175
|
+
|
|
176
|
+
self.modifiers = (modifiers || {}).merge(flat)
|
|
177
|
+
ClassMerge.reset!
|
|
149
178
|
end
|
|
150
179
|
end
|
|
151
180
|
|
|
@@ -196,9 +225,14 @@ module DaisyUI
|
|
|
196
225
|
options.dup.merge(id: id).compact
|
|
197
226
|
end
|
|
198
227
|
|
|
199
|
-
#
|
|
228
|
+
# Later classes win over earlier conflicting ones (see DaisyUI::ClassMerge),
|
|
229
|
+
# unless `DaisyUI.configure { |c| c.class_merge.enabled = false }`.
|
|
200
230
|
def merge_classes(*parts)
|
|
201
|
-
result =
|
|
231
|
+
result = if DaisyUI.configuration.class_merge.enabled
|
|
232
|
+
ClassMerge.merge(*parts)
|
|
233
|
+
else
|
|
234
|
+
parts.compact.join(" ")
|
|
235
|
+
end
|
|
202
236
|
result.empty? ? nil : result
|
|
203
237
|
end
|
|
204
238
|
|