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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/LICENSE-tailwind_merge.txt +21 -0
  4. data/README.md +58 -0
  5. data/lib/daisy_ui/accordion.rb +32 -28
  6. data/lib/daisy_ui/alert.rb +97 -94
  7. data/lib/daisy_ui/aura.rb +37 -37
  8. data/lib/daisy_ui/avatar.rb +16 -14
  9. data/lib/daisy_ui/badge.rb +159 -156
  10. data/lib/daisy_ui/base.rb +38 -4
  11. data/lib/daisy_ui/button.rb +148 -142
  12. data/lib/daisy_ui/card.rb +57 -54
  13. data/lib/daisy_ui/carousel.rb +36 -32
  14. data/lib/daisy_ui/chat.rb +16 -15
  15. data/lib/daisy_ui/checkbox.rb +95 -93
  16. data/lib/daisy_ui/class_merge/cache.rb +40 -0
  17. data/lib/daisy_ui/class_merge/class_group_utils.rb +139 -0
  18. data/lib/daisy_ui/class_merge/configuration.rb +77 -0
  19. data/lib/daisy_ui/class_merge/daisy_groups.rb +83 -0
  20. data/lib/daisy_ui/class_merge/merger.rb +126 -0
  21. data/lib/daisy_ui/class_merge/parse_class_name.rb +110 -0
  22. data/lib/daisy_ui/class_merge/sort_modifiers.rb +36 -0
  23. data/lib/daisy_ui/class_merge/tailwind_config.rb +2505 -0
  24. data/lib/daisy_ui/class_merge/validators.rb +202 -0
  25. data/lib/daisy_ui/class_merge.rb +47 -0
  26. data/lib/daisy_ui/collapse.rb +32 -28
  27. data/lib/daisy_ui/configurable.rb +31 -3
  28. data/lib/daisy_ui/divider.rb +84 -78
  29. data/lib/daisy_ui/dock.rb +37 -35
  30. data/lib/daisy_ui/dropdown.rb +67 -65
  31. data/lib/daisy_ui/file_input.rb +95 -91
  32. data/lib/daisy_ui/footer.rb +16 -14
  33. data/lib/daisy_ui/indicator.rb +40 -36
  34. data/lib/daisy_ui/input.rb +95 -91
  35. data/lib/daisy_ui/join.rb +16 -14
  36. data/lib/daisy_ui/kbd.rb +37 -35
  37. data/lib/daisy_ui/link.rb +58 -58
  38. data/lib/daisy_ui/loading.rb +85 -81
  39. data/lib/daisy_ui/mask.rb +123 -119
  40. data/lib/daisy_ui/megamenu.rb +53 -50
  41. data/lib/daisy_ui/menu.rb +57 -53
  42. data/lib/daisy_ui/modal.rb +49 -47
  43. data/lib/daisy_ui/otp.rb +95 -93
  44. data/lib/daisy_ui/pagination.rb +16 -14
  45. data/lib/daisy_ui/progress.rb +58 -56
  46. data/lib/daisy_ui/radio.rb +95 -91
  47. data/lib/daisy_ui/range.rb +95 -91
  48. data/lib/daisy_ui/rating.rb +37 -35
  49. data/lib/daisy_ui/select.rb +95 -91
  50. data/lib/daisy_ui/stack.rb +24 -22
  51. data/lib/daisy_ui/stat.rb +16 -14
  52. data/lib/daisy_ui/status.rb +95 -91
  53. data/lib/daisy_ui/steps.rb +16 -14
  54. data/lib/daisy_ui/swap.rb +16 -14
  55. data/lib/daisy_ui/table.rb +41 -39
  56. data/lib/daisy_ui/tabs.rb +80 -77
  57. data/lib/daisy_ui/textarea.rb +95 -91
  58. data/lib/daisy_ui/timeline.rb +16 -14
  59. data/lib/daisy_ui/toast.rb +46 -42
  60. data/lib/daisy_ui/toggle.rb +95 -91
  61. data/lib/daisy_ui/tooltip.rb +113 -106
  62. data/lib/daisy_ui/updated_at.rb +1 -1
  63. data/lib/daisy_ui/version.rb +1 -1
  64. 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
@@ -18,34 +18,38 @@ module DaisyUI
18
18
  end
19
19
 
20
20
  register_modifiers(
21
- # "sm:collapse-arrow"
22
- # "@sm:collapse-arrow"
23
- # "md:collapse-arrow"
24
- # "@md:collapse-arrow"
25
- # "lg:collapse-arrow"
26
- # "@lg:collapse-arrow"
27
- arrow: "collapse-arrow",
28
- # "sm:collapse-plus"
29
- # "@sm:collapse-plus"
30
- # "md:collapse-plus"
31
- # "@md:collapse-plus"
32
- # "lg:collapse-plus"
33
- # "@lg:collapse-plus"
34
- plus: "collapse-plus",
35
- # "sm:collapse-open"
36
- # "@sm:collapse-open"
37
- # "md:collapse-open"
38
- # "@md:collapse-open"
39
- # "lg:collapse-open"
40
- # "@lg:collapse-open"
41
- open: "collapse-open",
42
- # "sm:collapse-close"
43
- # "@sm:collapse-close"
44
- # "md:collapse-close"
45
- # "@md:collapse-close"
46
- # "lg:collapse-close"
47
- # "@lg:collapse-close"
48
- close: "collapse-close"
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
- def add(modifier, classes:, component: nil)
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
- attr_accessor :prefix
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
@@ -10,90 +10,96 @@ module DaisyUI
10
10
  end
11
11
 
12
12
  register_modifiers(
13
- # "sm:divider-vertical"
14
- # "@sm:divider-vertical"
15
- # "md:divider-vertical"
16
- # "@md:divider-vertical"
17
- # "lg:divider-vertical"
18
- # "@lg:divider-vertical"
19
- vertical: "divider-vertical",
20
- # "sm:divider-horizontal"
21
- # "@sm:divider-horizontal"
22
- # "md:divider-horizontal"
23
- # "@md:divider-horizontal"
24
- # "lg:divider-horizontal"
25
- # "@lg:divider-horizontal"
26
- horizontal: "divider-horizontal",
27
- # "sm:divider-start"
28
- # "@sm:divider-start"
29
- # "md:divider-start"
30
- # "@md:divider-start"
31
- # "lg:divider-start"
32
- # "@lg:divider-start"
33
- start: "divider-start",
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
- end: "divider-end",
41
- # "sm:divider-neutral"
42
- # "@sm:divider-neutral"
43
- # "md:divider-neutral"
44
- # "@md:divider-neutral"
45
- # "lg:divider-neutral"
46
- # "@lg:divider-neutral"
47
- neutral: "divider-neutral",
48
- # "sm:divider-primary"
49
- # "@sm:divider-primary"
50
- # "md:divider-primary"
51
- # "@md:divider-primary"
52
- # "lg:divider-primary"
53
- # "@lg:divider-primary"
54
- primary: "divider-primary",
55
- # "sm:divider-secondary"
56
- # "@sm:divider-secondary"
57
- # "md:divider-secondary"
58
- # "@md:divider-secondary"
59
- # "lg:divider-secondary"
60
- # "@lg:divider-secondary"
61
- secondary: "divider-secondary",
62
- # "sm:divider-accent"
63
- # "@sm:divider-accent"
64
- # "md:divider-accent"
65
- # "@md:divider-accent"
66
- # "lg:divider-accent"
67
- # "@lg:divider-accent"
68
- accent: "divider-accent",
69
- # "sm:divider-success"
70
- # "@sm:divider-success"
71
- # "md:divider-success"
72
- # "@md:divider-success"
73
- # "lg:divider-success"
74
- # "@lg:divider-success"
75
- success: "divider-success",
76
- # "sm:divider-warning"
77
- # "@sm:divider-warning"
78
- # "md:divider-warning"
79
- # "@md:divider-warning"
80
- # "lg:divider-warning"
81
- # "@lg:divider-warning"
82
- warning: "divider-warning",
83
- # "sm:divider-info"
84
- # "@sm:divider-info"
85
- # "md:divider-info"
86
- # "@md:divider-info"
87
- # "lg:divider-info"
88
- # "@lg:divider-info"
89
- info: "divider-info",
90
- # "sm:divider-error"
91
- # "@sm:divider-error"
92
- # "md:divider-error"
93
- # "@md:divider-error"
94
- # "lg:divider-error"
95
- # "@lg:divider-error"
96
- error: "divider-error"
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
- # "sm:dock-xs"
25
- # "@sm:dock-xs"
26
- # "md:dock-xs"
27
- # "@md:dock-xs"
28
- # "lg:dock-xs"
29
- # "@lg:dock-xs"
30
- xs: "dock-xs",
31
- # "sm:dock-sm"
32
- # "@sm:dock-sm"
33
- # "md:dock-sm"
34
- # "@md:dock-sm"
35
- # "lg:dock-sm"
36
- # "@lg:dock-sm"
37
- sm: "dock-sm",
38
- # "sm:dock-md"
39
- # "@sm:dock-md"
40
- # "md:dock-md"
41
- # "@md:dock-md"
42
- # "lg:dock-md"
43
- # "@lg:dock-md"
44
- md: "dock-md",
45
- # "sm:dock-lg"
46
- # "@sm:dock-lg"
47
- # "md:dock-lg"
48
- # "@md:dock-lg"
49
- # "lg:dock-lg"
50
- # "@lg:dock-lg"
51
- lg: "dock-lg",
52
- # "sm:dock-xl"
53
- # "@sm:dock-xl"
54
- # "md:dock-xl"
55
- # "@md:dock-xl"
56
- # "lg:dock-xl"
57
- # "@lg:dock-xl"
58
- xl: "dock-xl"
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