daisyui 1.3.1 → 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 +41 -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 +111 -105
- data/lib/daisy_ui/updated_at.rb +1 -1
- data/lib/daisy_ui/version.rb +1 -1
- metadata +18 -1
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Ported from tailwind_merge 1.5.6 (https://github.com/gjtorikian/tailwind_merge)
|
|
4
|
+
# Copyright (c) 2022 Garen J. Torikian. MIT License, see LICENSE-tailwind_merge.txt.
|
|
5
|
+
|
|
6
|
+
module DaisyUI
|
|
7
|
+
module ClassMerge
|
|
8
|
+
module Validators
|
|
9
|
+
class << self
|
|
10
|
+
def arbitrary_value?(class_part, test_label, test_value)
|
|
11
|
+
match = ARBITRARY_VALUE_REGEX.match(class_part)
|
|
12
|
+
return false unless match
|
|
13
|
+
|
|
14
|
+
return test_label.call(match[1]) unless match[1].nil?
|
|
15
|
+
|
|
16
|
+
test_value.call(match[2])
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def arbitrary_variable?(class_part, test_label, should_match_no_label: false)
|
|
20
|
+
match = ARBITRARY_VARIABLE_REGEX.match(class_part)
|
|
21
|
+
return false unless match
|
|
22
|
+
|
|
23
|
+
return test_label.call(match[1]) unless match[1].nil?
|
|
24
|
+
|
|
25
|
+
should_match_no_label
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def numeric?(value)
|
|
29
|
+
Float(value, exception: false).is_a?(Numeric)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def integer?(value)
|
|
33
|
+
Integer(value, exception: false).is_a?(Integer)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
ARBITRARY_VALUE_REGEX = /^\[(?:(\w[\w-]*):)?(.+)\]$/i
|
|
38
|
+
ARBITRARY_VARIABLE_REGEX = /^\((?:(\w[\w-]*):)?(.+)\)$/i
|
|
39
|
+
FRACTION_REGEX = %r{^\d+(?:\.\d+)?/\d+(?:\.\d+)?$}
|
|
40
|
+
TSHIRT_UNIT_REGEX = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/
|
|
41
|
+
LENGTH_UNIT_REGEX = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/
|
|
42
|
+
COLOR_FUNCTION_REGEX = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/
|
|
43
|
+
|
|
44
|
+
# Shadow always begins with x and y offset separated by underscore optionally prepended by inset
|
|
45
|
+
SHADOW_REGEX = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/
|
|
46
|
+
IMAGE_REGEX = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/
|
|
47
|
+
|
|
48
|
+
IS_FRACTION = lambda { |value|
|
|
49
|
+
FRACTION_REGEX.match?(value)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
IS_NUMBER = lambda { |value|
|
|
53
|
+
numeric?(value)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
IS_INTEGER = lambda { |value|
|
|
57
|
+
integer?(value)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
IS_PERCENT = lambda { |value|
|
|
61
|
+
value.end_with?("%") && IS_NUMBER.call(value[0..-2])
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
IS_TSHIRT_SIZE = lambda { |value|
|
|
65
|
+
TSHIRT_UNIT_REGEX.match?(value)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
IS_ANY = ->(_ = nil) { true }
|
|
69
|
+
|
|
70
|
+
IS_LENGTH_ONLY = lambda { |value|
|
|
71
|
+
# `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
|
|
72
|
+
# For example, `hsl(0 0% 0%)` would be classified as a length without this check.
|
|
73
|
+
# I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
|
|
74
|
+
LENGTH_UNIT_REGEX.match?(value) && !COLOR_FUNCTION_REGEX.match?(value)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
IS_NEVER = ->(_) { false }
|
|
78
|
+
|
|
79
|
+
IS_SHADOW = lambda { |value|
|
|
80
|
+
SHADOW_REGEX.match?(value)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
IS_IMAGE = lambda { |value|
|
|
84
|
+
IMAGE_REGEX.match?(value)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
IS_ANY_NON_ARBITRARY = lambda { |value|
|
|
88
|
+
!IS_ARBITRARY_VALUE.call(value) && !IS_ARBITRARY_VARIABLE.call(value)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
NAMED_CONTAINER_QUERY_REGEX = %r{\A@container(?:-size|-normal)?/.+\z}
|
|
92
|
+
|
|
93
|
+
IS_NAMED_CONTAINER_QUERY = lambda { |value|
|
|
94
|
+
NAMED_CONTAINER_QUERY_REGEX.match?(value)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
IS_ARBITRARY_SIZE = lambda { |value|
|
|
98
|
+
arbitrary_value?(value, IS_LABEL_SIZE, IS_NEVER)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
IS_ARBITRARY_VALUE = lambda { |value|
|
|
102
|
+
ARBITRARY_VALUE_REGEX.match?(value)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
IS_ARBITRARY_LENGTH = lambda { |value|
|
|
106
|
+
arbitrary_value?(value, IS_LABEL_LENGTH, IS_LENGTH_ONLY)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
IS_ARBITRARY_NUMBER = lambda { |value|
|
|
110
|
+
arbitrary_value?(value, IS_LABEL_NUMBER, IS_NUMBER)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
IS_ARBITRARY_WEIGHT = lambda { |value|
|
|
114
|
+
arbitrary_value?(value, IS_LABEL_WEIGHT, IS_ANY)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
IS_ARBITRARY_FAMILY_NAME = lambda { |value|
|
|
118
|
+
arbitrary_value?(value, IS_LABEL_FAMILY_NAME, IS_NEVER)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
IS_ARBITRARY_POSITION = lambda { |value|
|
|
122
|
+
arbitrary_value?(value, IS_LABEL_POSITION, IS_NEVER)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
IS_ARBITRARY_IMAGE = lambda { |value|
|
|
126
|
+
arbitrary_value?(value, IS_LABEL_IMAGE, IS_IMAGE)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
IS_ARBITRARY_SHADOW = lambda { |value|
|
|
130
|
+
arbitrary_value?(value, IS_LABEL_SHADOW, IS_SHADOW)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
IS_ARBITRARY_VARIABLE = lambda { |value|
|
|
134
|
+
ARBITRARY_VARIABLE_REGEX.match?(value)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
IS_ARBITRARY_VARIABLE_LENGTH = lambda { |value|
|
|
138
|
+
arbitrary_variable?(value, IS_LABEL_LENGTH)
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
IS_ARBITRARY_VARIABLE_FAMILY_NAME = lambda { |value|
|
|
142
|
+
arbitrary_variable?(value, IS_LABEL_FAMILY_NAME)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
IS_ARBITRARY_VARIABLE_POSITION = lambda { |value|
|
|
146
|
+
arbitrary_variable?(value, IS_LABEL_POSITION)
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
IS_ARBITRARY_VARIABLE_SIZE = lambda { |value|
|
|
150
|
+
arbitrary_variable?(value, IS_LABEL_SIZE)
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
IS_ARBITRARY_VARIABLE_IMAGE = lambda { |value|
|
|
154
|
+
arbitrary_variable?(value, IS_LABEL_IMAGE)
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
IS_ARBITRARY_VARIABLE_SHADOW = lambda { |value|
|
|
158
|
+
arbitrary_variable?(value, IS_LABEL_SHADOW, should_match_no_label: true)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
IS_ARBITRARY_VARIABLE_WEIGHT = lambda { |value|
|
|
162
|
+
arbitrary_variable?(value, IS_LABEL_WEIGHT, should_match_no_label: true)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
############
|
|
166
|
+
# Labels
|
|
167
|
+
############
|
|
168
|
+
|
|
169
|
+
IS_LABEL_POSITION = lambda { |label|
|
|
170
|
+
%w[position percentage].include?(label)
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
IS_LABEL_IMAGE = lambda { |label|
|
|
174
|
+
%w[image url].include?(label)
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
IS_LABEL_SIZE = lambda { |label|
|
|
178
|
+
%w[length size bg-size].include?(label)
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
IS_LABEL_LENGTH = lambda { |label|
|
|
182
|
+
label == "length"
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
IS_LABEL_NUMBER = lambda { |label|
|
|
186
|
+
label == "number"
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
IS_LABEL_FAMILY_NAME = lambda { |label|
|
|
190
|
+
label == "family-name"
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
IS_LABEL_WEIGHT = lambda { |label|
|
|
194
|
+
%w[number weight].include?(label)
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
IS_LABEL_SHADOW = lambda { |label|
|
|
198
|
+
label == "shadow"
|
|
199
|
+
}
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "monitor"
|
|
4
|
+
|
|
5
|
+
module DaisyUI
|
|
6
|
+
# Merges CSS class lists so that later classes win over earlier conflicting
|
|
7
|
+
# ones, for Tailwind utilities and daisyUI modifiers alike:
|
|
8
|
+
#
|
|
9
|
+
# DaisyUI::ClassMerge.merge("btn btn-sm", "btn-lg px-2", "px-4")
|
|
10
|
+
# # => "btn btn-lg px-4"
|
|
11
|
+
#
|
|
12
|
+
# The Tailwind engine is a port of tailwind_merge (see TAILWIND_MERGE_VERSION);
|
|
13
|
+
# daisyUI groups come from DaisyGroups. The public surface is `merge` and
|
|
14
|
+
# `DaisyUI.configure { |c| c.class_merge }`; `Merger.new(config:)` takes a raw
|
|
15
|
+
# tailwind_merge config for an isolated instance. Everything else is internal.
|
|
16
|
+
module ClassMerge
|
|
17
|
+
TAILWIND_MERGE_VERSION = "1.5.6"
|
|
18
|
+
|
|
19
|
+
# Reentrant, so a reset! triggered while the merger is being built (e.g. a
|
|
20
|
+
# component file configuring DaisyUI as it loads) cannot deadlock.
|
|
21
|
+
@monitor = Monitor.new
|
|
22
|
+
|
|
23
|
+
class << self
|
|
24
|
+
# Accepts strings, nested arrays, nil and false (dropped, as Phlex does
|
|
25
|
+
# for `class:`). Returns a frozen String, "" when empty.
|
|
26
|
+
def merge(*parts)
|
|
27
|
+
merger.merge(parts.flatten.select(&:itself).join(" "))
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def merger
|
|
31
|
+
@merger || @monitor.synchronize do
|
|
32
|
+
@merger ||= Merger.new(config: DaisyUI.configuration.class_merge.merger_config)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @api private The stock Tailwind class groups, for classifying tokens.
|
|
37
|
+
def tailwind_utils
|
|
38
|
+
@tailwind_utils ||= ClassGroupUtils.new(TailwindConfig::DEFAULTS)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Drops the memoized merger so the next merge picks up configuration changes.
|
|
42
|
+
def reset!
|
|
43
|
+
@monitor.synchronize { @merger = nil }
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
data/lib/daisy_ui/collapse.rb
CHANGED
|
@@ -18,34 +18,38 @@ module DaisyUI
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
register_modifiers(
|
|
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
|
-
|
|
21
|
+
icon: {
|
|
22
|
+
# "sm:collapse-arrow"
|
|
23
|
+
# "@sm:collapse-arrow"
|
|
24
|
+
# "md:collapse-arrow"
|
|
25
|
+
# "@md:collapse-arrow"
|
|
26
|
+
# "lg:collapse-arrow"
|
|
27
|
+
# "@lg:collapse-arrow"
|
|
28
|
+
arrow: "collapse-arrow",
|
|
29
|
+
# "sm:collapse-plus"
|
|
30
|
+
# "@sm:collapse-plus"
|
|
31
|
+
# "md:collapse-plus"
|
|
32
|
+
# "@md:collapse-plus"
|
|
33
|
+
# "lg:collapse-plus"
|
|
34
|
+
# "@lg:collapse-plus"
|
|
35
|
+
plus: "collapse-plus"
|
|
36
|
+
},
|
|
37
|
+
state: {
|
|
38
|
+
# "sm:collapse-open"
|
|
39
|
+
# "@sm:collapse-open"
|
|
40
|
+
# "md:collapse-open"
|
|
41
|
+
# "@md:collapse-open"
|
|
42
|
+
# "lg:collapse-open"
|
|
43
|
+
# "@lg:collapse-open"
|
|
44
|
+
open: "collapse-open",
|
|
45
|
+
# "sm:collapse-close"
|
|
46
|
+
# "@sm:collapse-close"
|
|
47
|
+
# "md:collapse-close"
|
|
48
|
+
# "@md:collapse-close"
|
|
49
|
+
# "lg:collapse-close"
|
|
50
|
+
# "@lg:collapse-close"
|
|
51
|
+
close: "collapse-close"
|
|
52
|
+
}
|
|
49
53
|
)
|
|
50
54
|
end
|
|
51
55
|
end
|
|
@@ -5,6 +5,7 @@ module DaisyUI
|
|
|
5
5
|
def configure
|
|
6
6
|
self.configuration ||= Configuration.new
|
|
7
7
|
yield(configuration) if block_given?
|
|
8
|
+
ClassMerge.reset!
|
|
8
9
|
configuration
|
|
9
10
|
end
|
|
10
11
|
|
|
@@ -15,30 +16,57 @@ module DaisyUI
|
|
|
15
16
|
class Modifiers
|
|
16
17
|
def initialize
|
|
17
18
|
@modifiers = {}
|
|
19
|
+
@groups = {}
|
|
18
20
|
end
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
# `group:` makes the modifier an alternative to the component's other
|
|
23
|
+
# modifiers in that group, e.g. `add(:huge, classes: "btn-xl",
|
|
24
|
+
# component: DaisyUI::Button, group: :size)`.
|
|
25
|
+
def add(modifier, classes:, component: nil, group: nil)
|
|
21
26
|
@modifiers[component] ||= {}
|
|
22
27
|
@modifiers[component][modifier] = classes
|
|
28
|
+
@groups[[component, modifier]] = group
|
|
29
|
+
ClassMerge.reset!
|
|
23
30
|
end
|
|
24
31
|
|
|
25
32
|
def remove(modifier, component: nil)
|
|
26
33
|
@modifiers[component] ||= {}
|
|
27
|
-
@modifiers[component]&.delete(modifier)
|
|
34
|
+
removed = @modifiers[component]&.delete(modifier)
|
|
35
|
+
@groups.delete([component, modifier])
|
|
36
|
+
ClassMerge.reset!
|
|
37
|
+
removed
|
|
28
38
|
end
|
|
29
39
|
|
|
30
40
|
def for(component: nil)
|
|
31
41
|
@modifiers[component] || {}
|
|
32
42
|
end
|
|
43
|
+
|
|
44
|
+
# @api private { [component, group] => [classes, ...] } for grouped modifiers.
|
|
45
|
+
def groups
|
|
46
|
+
@groups.each_with_object({}) do |((component, modifier), group), result|
|
|
47
|
+
next unless group
|
|
48
|
+
|
|
49
|
+
(result[[component, group]] ||= []) << @modifiers[component][modifier]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
33
52
|
end
|
|
34
53
|
|
|
35
54
|
class Configuration
|
|
36
|
-
|
|
55
|
+
attr_reader :prefix
|
|
37
56
|
|
|
38
57
|
def initialize
|
|
39
58
|
@prefix = nil
|
|
40
59
|
end
|
|
41
60
|
|
|
61
|
+
def prefix=(prefix)
|
|
62
|
+
@prefix = prefix
|
|
63
|
+
ClassMerge.reset!
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def class_merge
|
|
67
|
+
@class_merge ||= ClassMerge::Configuration.new
|
|
68
|
+
end
|
|
69
|
+
|
|
42
70
|
def modifiers
|
|
43
71
|
@modifiers ||= Modifiers.new
|
|
44
72
|
end
|
data/lib/daisy_ui/divider.rb
CHANGED
|
@@ -10,90 +10,96 @@ module DaisyUI
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
register_modifiers(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
13
|
+
direction: {
|
|
14
|
+
# "sm:divider-vertical"
|
|
15
|
+
# "@sm:divider-vertical"
|
|
16
|
+
# "md:divider-vertical"
|
|
17
|
+
# "@md:divider-vertical"
|
|
18
|
+
# "lg:divider-vertical"
|
|
19
|
+
# "@lg:divider-vertical"
|
|
20
|
+
vertical: "divider-vertical",
|
|
21
|
+
# "sm:divider-horizontal"
|
|
22
|
+
# "@sm:divider-horizontal"
|
|
23
|
+
# "md:divider-horizontal"
|
|
24
|
+
# "@md:divider-horizontal"
|
|
25
|
+
# "lg:divider-horizontal"
|
|
26
|
+
# "@lg:divider-horizontal"
|
|
27
|
+
horizontal: "divider-horizontal"
|
|
28
|
+
},
|
|
29
|
+
position: {
|
|
30
|
+
# "sm:divider-start"
|
|
31
|
+
# "@sm:divider-start"
|
|
32
|
+
# "md:divider-start"
|
|
33
|
+
# "@md:divider-start"
|
|
34
|
+
# "lg:divider-start"
|
|
35
|
+
# "@lg:divider-start"
|
|
36
|
+
start: "divider-start",
|
|
34
37
|
# "sm:divider-end"
|
|
35
38
|
# "@sm:divider-end"
|
|
36
39
|
# "md:divider-end"
|
|
37
40
|
# "@md:divider-end"
|
|
38
41
|
# "lg:divider-end"
|
|
39
42
|
# "@lg:divider-end"
|
|
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
|
-
|
|
43
|
+
end: "divider-end"
|
|
44
|
+
},
|
|
45
|
+
color: {
|
|
46
|
+
# "sm:divider-neutral"
|
|
47
|
+
# "@sm:divider-neutral"
|
|
48
|
+
# "md:divider-neutral"
|
|
49
|
+
# "@md:divider-neutral"
|
|
50
|
+
# "lg:divider-neutral"
|
|
51
|
+
# "@lg:divider-neutral"
|
|
52
|
+
neutral: "divider-neutral",
|
|
53
|
+
# "sm:divider-primary"
|
|
54
|
+
# "@sm:divider-primary"
|
|
55
|
+
# "md:divider-primary"
|
|
56
|
+
# "@md:divider-primary"
|
|
57
|
+
# "lg:divider-primary"
|
|
58
|
+
# "@lg:divider-primary"
|
|
59
|
+
primary: "divider-primary",
|
|
60
|
+
# "sm:divider-secondary"
|
|
61
|
+
# "@sm:divider-secondary"
|
|
62
|
+
# "md:divider-secondary"
|
|
63
|
+
# "@md:divider-secondary"
|
|
64
|
+
# "lg:divider-secondary"
|
|
65
|
+
# "@lg:divider-secondary"
|
|
66
|
+
secondary: "divider-secondary",
|
|
67
|
+
# "sm:divider-accent"
|
|
68
|
+
# "@sm:divider-accent"
|
|
69
|
+
# "md:divider-accent"
|
|
70
|
+
# "@md:divider-accent"
|
|
71
|
+
# "lg:divider-accent"
|
|
72
|
+
# "@lg:divider-accent"
|
|
73
|
+
accent: "divider-accent",
|
|
74
|
+
# "sm:divider-success"
|
|
75
|
+
# "@sm:divider-success"
|
|
76
|
+
# "md:divider-success"
|
|
77
|
+
# "@md:divider-success"
|
|
78
|
+
# "lg:divider-success"
|
|
79
|
+
# "@lg:divider-success"
|
|
80
|
+
success: "divider-success",
|
|
81
|
+
# "sm:divider-warning"
|
|
82
|
+
# "@sm:divider-warning"
|
|
83
|
+
# "md:divider-warning"
|
|
84
|
+
# "@md:divider-warning"
|
|
85
|
+
# "lg:divider-warning"
|
|
86
|
+
# "@lg:divider-warning"
|
|
87
|
+
warning: "divider-warning",
|
|
88
|
+
# "sm:divider-info"
|
|
89
|
+
# "@sm:divider-info"
|
|
90
|
+
# "md:divider-info"
|
|
91
|
+
# "@md:divider-info"
|
|
92
|
+
# "lg:divider-info"
|
|
93
|
+
# "@lg:divider-info"
|
|
94
|
+
info: "divider-info",
|
|
95
|
+
# "sm:divider-error"
|
|
96
|
+
# "@sm:divider-error"
|
|
97
|
+
# "md:divider-error"
|
|
98
|
+
# "@md:divider-error"
|
|
99
|
+
# "lg:divider-error"
|
|
100
|
+
# "@lg:divider-error"
|
|
101
|
+
error: "divider-error"
|
|
102
|
+
}
|
|
97
103
|
)
|
|
98
104
|
end
|
|
99
105
|
end
|
data/lib/daisy_ui/dock.rb
CHANGED
|
@@ -21,41 +21,43 @@ module DaisyUI
|
|
|
21
21
|
# "lg:dock-active"
|
|
22
22
|
# "@lg:dock-active"
|
|
23
23
|
active: "dock-active",
|
|
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
|
-
|
|
24
|
+
size: {
|
|
25
|
+
# "sm:dock-xs"
|
|
26
|
+
# "@sm:dock-xs"
|
|
27
|
+
# "md:dock-xs"
|
|
28
|
+
# "@md:dock-xs"
|
|
29
|
+
# "lg:dock-xs"
|
|
30
|
+
# "@lg:dock-xs"
|
|
31
|
+
xs: "dock-xs",
|
|
32
|
+
# "sm:dock-sm"
|
|
33
|
+
# "@sm:dock-sm"
|
|
34
|
+
# "md:dock-sm"
|
|
35
|
+
# "@md:dock-sm"
|
|
36
|
+
# "lg:dock-sm"
|
|
37
|
+
# "@lg:dock-sm"
|
|
38
|
+
sm: "dock-sm",
|
|
39
|
+
# "sm:dock-md"
|
|
40
|
+
# "@sm:dock-md"
|
|
41
|
+
# "md:dock-md"
|
|
42
|
+
# "@md:dock-md"
|
|
43
|
+
# "lg:dock-md"
|
|
44
|
+
# "@lg:dock-md"
|
|
45
|
+
md: "dock-md",
|
|
46
|
+
# "sm:dock-lg"
|
|
47
|
+
# "@sm:dock-lg"
|
|
48
|
+
# "md:dock-lg"
|
|
49
|
+
# "@md:dock-lg"
|
|
50
|
+
# "lg:dock-lg"
|
|
51
|
+
# "@lg:dock-lg"
|
|
52
|
+
lg: "dock-lg",
|
|
53
|
+
# "sm:dock-xl"
|
|
54
|
+
# "@sm:dock-xl"
|
|
55
|
+
# "md:dock-xl"
|
|
56
|
+
# "@md:dock-xl"
|
|
57
|
+
# "lg:dock-xl"
|
|
58
|
+
# "@lg:dock-xl"
|
|
59
|
+
xl: "dock-xl"
|
|
60
|
+
}
|
|
59
61
|
)
|
|
60
62
|
end
|
|
61
63
|
end
|