daisyui 1.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 +7 -0
- data/lib/daisy_ui/accordion.rb +49 -0
- data/lib/daisy_ui/alert.rb +76 -0
- data/lib/daisy_ui/avatar.rb +41 -0
- data/lib/daisy_ui/avatar_group.rb +19 -0
- data/lib/daisy_ui/badge.rb +118 -0
- data/lib/daisy_ui/base.rb +239 -0
- data/lib/daisy_ui/breadcrumbs.rb +25 -0
- data/lib/daisy_ui/button.rb +197 -0
- data/lib/daisy_ui/calendar.rb +48 -0
- data/lib/daisy_ui/card.rb +73 -0
- data/lib/daisy_ui/carousel.rb +51 -0
- data/lib/daisy_ui/chat.rb +49 -0
- data/lib/daisy_ui/checkbox.rb +112 -0
- data/lib/daisy_ui/collapse.rb +53 -0
- data/lib/daisy_ui/collapsible_sub_menu.rb +55 -0
- data/lib/daisy_ui/configurable.rb +45 -0
- data/lib/daisy_ui/countdown.rb +16 -0
- data/lib/daisy_ui/diff.rb +28 -0
- data/lib/daisy_ui/divider.rb +103 -0
- data/lib/daisy_ui/dock.rb +65 -0
- data/lib/daisy_ui/drawer.rb +61 -0
- data/lib/daisy_ui/dropdown.rb +101 -0
- data/lib/daisy_ui/fab.rb +34 -0
- data/lib/daisy_ui/fieldset.rb +20 -0
- data/lib/daisy_ui/file_input.rb +117 -0
- data/lib/daisy_ui/filter.rb +21 -0
- data/lib/daisy_ui/footer.rb +44 -0
- data/lib/daisy_ui/form_control.rb +15 -0
- data/lib/daisy_ui/hero.rb +24 -0
- data/lib/daisy_ui/hover_gallery.rb +16 -0
- data/lib/daisy_ui/indicator.rb +65 -0
- data/lib/daisy_ui/input.rb +117 -0
- data/lib/daisy_ui/join.rb +35 -0
- data/lib/daisy_ui/kbd.rb +54 -0
- data/lib/daisy_ui/label.rb +15 -0
- data/lib/daisy_ui/link.rb +137 -0
- data/lib/daisy_ui/list.rb +37 -0
- data/lib/daisy_ui/loading.rb +146 -0
- data/lib/daisy_ui/mask.rb +167 -0
- data/lib/daisy_ui/menu.rb +79 -0
- data/lib/daisy_ui/menu_item.rb +50 -0
- data/lib/daisy_ui/mockup_browser.rb +20 -0
- data/lib/daisy_ui/mockup_code.rb +16 -0
- data/lib/daisy_ui/mockup_phone.rb +24 -0
- data/lib/daisy_ui/mockup_window.rb +16 -0
- data/lib/daisy_ui/modal.rb +77 -0
- data/lib/daisy_ui/navbar.rb +31 -0
- data/lib/daisy_ui/pagination.rb +37 -0
- data/lib/daisy_ui/progress.rb +75 -0
- data/lib/daisy_ui/radial_progress.rb +181 -0
- data/lib/daisy_ui/radio.rb +110 -0
- data/lib/daisy_ui/range.rb +110 -0
- data/lib/daisy_ui/rating.rb +68 -0
- data/lib/daisy_ui/select.rb +117 -0
- data/lib/daisy_ui/skeleton.rb +19 -0
- data/lib/daisy_ui/stack.rb +47 -0
- data/lib/daisy_ui/stat.rb +57 -0
- data/lib/daisy_ui/status.rb +110 -0
- data/lib/daisy_ui/steps.rb +41 -0
- data/lib/daisy_ui/sub_menu.rb +37 -0
- data/lib/daisy_ui/swap.rb +52 -0
- data/lib/daisy_ui/tab.rb +40 -0
- data/lib/daisy_ui/tab_with_content.rb +72 -0
- data/lib/daisy_ui/tab_without_content.rb +40 -0
- data/lib/daisy_ui/table.rb +81 -0
- data/lib/daisy_ui/table_row.rb +33 -0
- data/lib/daisy_ui/tabs.rb +80 -0
- data/lib/daisy_ui/textarea.rb +117 -0
- data/lib/daisy_ui/theme_controller.rb +64 -0
- data/lib/daisy_ui/timeline.rb +66 -0
- data/lib/daisy_ui/toast.rb +61 -0
- data/lib/daisy_ui/toggle.rb +110 -0
- data/lib/daisy_ui/tooltip.rb +107 -0
- data/lib/daisy_ui/updated_at.rb +7 -0
- data/lib/daisy_ui/validator.rb +25 -0
- data/lib/daisy_ui/version.rb +5 -0
- data/lib/daisy_ui.rb +17 -0
- metadata +156 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DaisyUI
|
|
4
|
+
# @component html class="textarea"
|
|
5
|
+
class Textarea < Base
|
|
6
|
+
self.component_class = :textarea
|
|
7
|
+
|
|
8
|
+
def initialize(*, as: :textarea, **)
|
|
9
|
+
super
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def view_template(&)
|
|
13
|
+
public_send(as, class: classes, **attributes, &)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
register_modifiers(
|
|
17
|
+
# "sm:textarea-ghost"
|
|
18
|
+
# "@sm:textarea-ghost"
|
|
19
|
+
# "md:textarea-ghost"
|
|
20
|
+
# "@md:textarea-ghost"
|
|
21
|
+
# "lg:textarea-ghost"
|
|
22
|
+
# "@lg:textarea-ghost"
|
|
23
|
+
ghost: "textarea-ghost",
|
|
24
|
+
# "sm:textarea-xs"
|
|
25
|
+
# "@sm:textarea-xs"
|
|
26
|
+
# "md:textarea-xs"
|
|
27
|
+
# "@md:textarea-xs"
|
|
28
|
+
# "lg:textarea-xs"
|
|
29
|
+
# "@lg:textarea-xs"
|
|
30
|
+
xs: "textarea-xs",
|
|
31
|
+
# "sm:textarea-sm"
|
|
32
|
+
# "@sm:textarea-sm"
|
|
33
|
+
# "md:textarea-sm"
|
|
34
|
+
# "@md:textarea-sm"
|
|
35
|
+
# "lg:textarea-sm"
|
|
36
|
+
# "@lg:textarea-sm"
|
|
37
|
+
sm: "textarea-sm",
|
|
38
|
+
# "sm:textarea-md"
|
|
39
|
+
# "@sm:textarea-md"
|
|
40
|
+
# "md:textarea-md"
|
|
41
|
+
# "@md:textarea-md"
|
|
42
|
+
# "lg:textarea-md"
|
|
43
|
+
# "@lg:textarea-md"
|
|
44
|
+
md: "textarea-md",
|
|
45
|
+
# "sm:textarea-lg"
|
|
46
|
+
# "@sm:textarea-lg"
|
|
47
|
+
# "md:textarea-lg"
|
|
48
|
+
# "@md:textarea-lg"
|
|
49
|
+
# "lg:textarea-lg"
|
|
50
|
+
# "@lg:textarea-lg"
|
|
51
|
+
lg: "textarea-lg",
|
|
52
|
+
# "sm:textarea-xl"
|
|
53
|
+
# "@sm:textarea-xl"
|
|
54
|
+
# "md:textarea-xl"
|
|
55
|
+
# "@md:textarea-xl"
|
|
56
|
+
# "lg:textarea-xl"
|
|
57
|
+
# "@lg:textarea-xl"
|
|
58
|
+
xl: "textarea-xl",
|
|
59
|
+
# "sm:textarea-neutral"
|
|
60
|
+
# "@sm:textarea-neutral"
|
|
61
|
+
# "md:textarea-neutral"
|
|
62
|
+
# "@md:textarea-neutral"
|
|
63
|
+
# "lg:textarea-neutral"
|
|
64
|
+
# "@lg:textarea-neutral"
|
|
65
|
+
neutral: "textarea-neutral",
|
|
66
|
+
# "sm:textarea-primary"
|
|
67
|
+
# "@sm:textarea-primary"
|
|
68
|
+
# "md:textarea-primary"
|
|
69
|
+
# "@md:textarea-primary"
|
|
70
|
+
# "lg:textarea-primary"
|
|
71
|
+
# "@lg:textarea-primary"
|
|
72
|
+
primary: "textarea-primary",
|
|
73
|
+
# "sm:textarea-secondary"
|
|
74
|
+
# "@sm:textarea-secondary"
|
|
75
|
+
# "md:textarea-secondary"
|
|
76
|
+
# "@md:textarea-secondary"
|
|
77
|
+
# "lg:textarea-secondary"
|
|
78
|
+
# "@lg:textarea-secondary"
|
|
79
|
+
secondary: "textarea-secondary",
|
|
80
|
+
# "sm:textarea-accent"
|
|
81
|
+
# "@sm:textarea-accent"
|
|
82
|
+
# "md:textarea-accent"
|
|
83
|
+
# "@md:textarea-accent"
|
|
84
|
+
# "lg:textarea-accent"
|
|
85
|
+
# "@lg:textarea-accent"
|
|
86
|
+
accent: "textarea-accent",
|
|
87
|
+
# "sm:textarea-info"
|
|
88
|
+
# "@sm:textarea-info"
|
|
89
|
+
# "md:textarea-info"
|
|
90
|
+
# "@md:textarea-info"
|
|
91
|
+
# "lg:textarea-info"
|
|
92
|
+
# "@lg:textarea-info"
|
|
93
|
+
info: "textarea-info",
|
|
94
|
+
# "sm:textarea-success"
|
|
95
|
+
# "@sm:textarea-success"
|
|
96
|
+
# "md:textarea-success"
|
|
97
|
+
# "@md:textarea-success"
|
|
98
|
+
# "lg:textarea-success"
|
|
99
|
+
# "@lg:textarea-success"
|
|
100
|
+
success: "textarea-success",
|
|
101
|
+
# "sm:textarea-warning"
|
|
102
|
+
# "@sm:textarea-warning"
|
|
103
|
+
# "md:textarea-warning"
|
|
104
|
+
# "@md:textarea-warning"
|
|
105
|
+
# "lg:textarea-warning"
|
|
106
|
+
# "@lg:textarea-warning"
|
|
107
|
+
warning: "textarea-warning",
|
|
108
|
+
# "sm:textarea-error"
|
|
109
|
+
# "@sm:textarea-error"
|
|
110
|
+
# "md:textarea-error"
|
|
111
|
+
# "@md:textarea-error"
|
|
112
|
+
# "lg:textarea-error"
|
|
113
|
+
# "@lg:textarea-error"
|
|
114
|
+
error: "textarea-error"
|
|
115
|
+
)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DaisyUI
|
|
4
|
+
# @component html class="theme-controller"
|
|
5
|
+
# Theme controller changes the theme when checkbox/radio is checked
|
|
6
|
+
# Supports common patterns: swap, toggle, dropdown, radio buttons
|
|
7
|
+
class ThemeController < Base
|
|
8
|
+
self.component_class = "theme-controller"
|
|
9
|
+
|
|
10
|
+
register_modifiers(
|
|
11
|
+
# "sm:swap"
|
|
12
|
+
# "md:swap"
|
|
13
|
+
# "lg:swap"
|
|
14
|
+
swap: "swap",
|
|
15
|
+
# "sm:swap sm:swap-rotate"
|
|
16
|
+
# "md:swap md:swap-rotate"
|
|
17
|
+
# "lg:swap lg:swap-rotate"
|
|
18
|
+
swap_rotate: "swap swap-rotate",
|
|
19
|
+
# "sm:swap sm:swap-flip"
|
|
20
|
+
# "md:swap md:swap-flip"
|
|
21
|
+
# "lg:swap lg:swap-flip"
|
|
22
|
+
swap_flip: "swap swap-flip",
|
|
23
|
+
# "sm:toggle"
|
|
24
|
+
# "md:toggle"
|
|
25
|
+
# "lg:toggle"
|
|
26
|
+
toggle: "toggle"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
def initialize(*, theme_value: nil, checked: false, as: :input, **)
|
|
30
|
+
super(*, as:, **)
|
|
31
|
+
@theme_value = theme_value
|
|
32
|
+
@checked = checked
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def view_template(&block)
|
|
36
|
+
# Input always has just the theme-controller class
|
|
37
|
+
input_classes = self.class.component_class.to_s
|
|
38
|
+
|
|
39
|
+
attrs = {type: :checkbox, class: input_classes}
|
|
40
|
+
attrs[:value] = theme_value if theme_value
|
|
41
|
+
attrs[:checked] = true if checked
|
|
42
|
+
attrs.merge!(options)
|
|
43
|
+
|
|
44
|
+
if block
|
|
45
|
+
# If block given, wrap in label with modifier classes (swap, toggle, etc.)
|
|
46
|
+
wrapper_classes = merge_classes(*modifier_classes, *responsive_classes)
|
|
47
|
+
|
|
48
|
+
label(class: wrapper_classes) do
|
|
49
|
+
public_send(as, **attrs)
|
|
50
|
+
whitespace
|
|
51
|
+
block.call
|
|
52
|
+
whitespace
|
|
53
|
+
end
|
|
54
|
+
else
|
|
55
|
+
# Just render the input
|
|
56
|
+
public_send(as, **attrs)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
|
|
62
|
+
attr_reader :theme_value, :checked
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DaisyUI
|
|
4
|
+
# @component html class="timeline"
|
|
5
|
+
class Timeline < Base
|
|
6
|
+
self.component_class = :timeline
|
|
7
|
+
|
|
8
|
+
def initialize(*, as: :ul, **)
|
|
9
|
+
super
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def view_template(&)
|
|
13
|
+
public_send(as, class: classes, **attributes, &)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def start(**opts, &)
|
|
17
|
+
div(class: component_classes("timeline-start", options: opts), **opts, &)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def middle(**opts, &)
|
|
21
|
+
div(class: component_classes("timeline-middle", options: opts), **opts, &)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def end(**opts, &)
|
|
25
|
+
div(class: component_classes("timeline-end", options: opts), **opts, &)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
register_modifiers(
|
|
29
|
+
# "sm:timeline-snap-icon"
|
|
30
|
+
# "@sm:timeline-snap-icon"
|
|
31
|
+
# "md:timeline-snap-icon"
|
|
32
|
+
# "@md:timeline-snap-icon"
|
|
33
|
+
# "lg:timeline-snap-icon"
|
|
34
|
+
# "@lg:timeline-snap-icon"
|
|
35
|
+
snap_icon: "timeline-snap-icon",
|
|
36
|
+
# "sm:timeline-box"
|
|
37
|
+
# "@sm:timeline-box"
|
|
38
|
+
# "md:timeline-box"
|
|
39
|
+
# "@md:timeline-box"
|
|
40
|
+
# "lg:timeline-box"
|
|
41
|
+
# "@lg:timeline-box"
|
|
42
|
+
box: "timeline-box",
|
|
43
|
+
# "sm:timeline-compact"
|
|
44
|
+
# "@sm:timeline-compact"
|
|
45
|
+
# "md:timeline-compact"
|
|
46
|
+
# "@md:timeline-compact"
|
|
47
|
+
# "lg:timeline-compact"
|
|
48
|
+
# "@lg:timeline-compact"
|
|
49
|
+
compact: "timeline-compact",
|
|
50
|
+
# "sm:timeline-vertical"
|
|
51
|
+
# "@sm:timeline-vertical"
|
|
52
|
+
# "md:timeline-vertical"
|
|
53
|
+
# "@md:timeline-vertical"
|
|
54
|
+
# "lg:timeline-vertical"
|
|
55
|
+
# "@lg:timeline-vertical"
|
|
56
|
+
vertical: "timeline-vertical",
|
|
57
|
+
# "sm:timeline-horizontal"
|
|
58
|
+
# "@sm:timeline-horizontal"
|
|
59
|
+
# "md:timeline-horizontal"
|
|
60
|
+
# "@md:timeline-horizontal"
|
|
61
|
+
# "lg:timeline-horizontal"
|
|
62
|
+
# "@lg:timeline-horizontal"
|
|
63
|
+
horizontal: "timeline-horizontal"
|
|
64
|
+
)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DaisyUI
|
|
4
|
+
# @component html class="toast"
|
|
5
|
+
class Toast < Base
|
|
6
|
+
self.component_class = :toast
|
|
7
|
+
|
|
8
|
+
def initialize(*, as: :div, **)
|
|
9
|
+
super
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def view_template(&)
|
|
13
|
+
public_send(as, class: classes, **attributes, &)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
register_modifiers(
|
|
17
|
+
# "sm:toast-start"
|
|
18
|
+
# "@sm:toast-start"
|
|
19
|
+
# "md:toast-start"
|
|
20
|
+
# "@md:toast-start"
|
|
21
|
+
# "lg:toast-start"
|
|
22
|
+
# "@lg:toast-start"
|
|
23
|
+
start: "toast-start",
|
|
24
|
+
# "sm:toast-center"
|
|
25
|
+
# "@sm:toast-center"
|
|
26
|
+
# "md:toast-center"
|
|
27
|
+
# "@md:toast-center"
|
|
28
|
+
# "lg:toast-center"
|
|
29
|
+
# "@lg:toast-center"
|
|
30
|
+
center: "toast-center",
|
|
31
|
+
# "sm:toast-end"
|
|
32
|
+
# "@sm:toast-end"
|
|
33
|
+
# "md:toast-end"
|
|
34
|
+
# "@md:toast-end"
|
|
35
|
+
# "lg:toast-end"
|
|
36
|
+
# "@lg:toast-end"
|
|
37
|
+
end: "toast-end",
|
|
38
|
+
# "sm:toast-top"
|
|
39
|
+
# "@sm:toast-top"
|
|
40
|
+
# "md:toast-top"
|
|
41
|
+
# "@md:toast-top"
|
|
42
|
+
# "lg:toast-top"
|
|
43
|
+
# "@lg:toast-top"
|
|
44
|
+
top: "toast-top",
|
|
45
|
+
# "sm:toast-middle"
|
|
46
|
+
# "@sm:toast-middle"
|
|
47
|
+
# "md:toast-middle"
|
|
48
|
+
# "@md:toast-middle"
|
|
49
|
+
# "lg:toast-middle"
|
|
50
|
+
# "@lg:toast-middle"
|
|
51
|
+
middle: "toast-middle",
|
|
52
|
+
# "sm:toast-bottom"
|
|
53
|
+
# "@sm:toast-bottom"
|
|
54
|
+
# "md:toast-bottom"
|
|
55
|
+
# "@md:toast-bottom"
|
|
56
|
+
# "lg:toast-bottom"
|
|
57
|
+
# "@lg:toast-bottom"
|
|
58
|
+
bottom: "toast-bottom"
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DaisyUI
|
|
4
|
+
# @component html class="toggle"
|
|
5
|
+
class Toggle < Base
|
|
6
|
+
self.component_class = :toggle
|
|
7
|
+
|
|
8
|
+
def initialize(*, as: :input, **)
|
|
9
|
+
super
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def view_template(&)
|
|
13
|
+
public_send(as, type: :checkbox, class: classes, **attributes, &)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
register_modifiers(
|
|
17
|
+
# "sm:toggle-xs"
|
|
18
|
+
# "@sm:toggle-xs"
|
|
19
|
+
# "md:toggle-xs"
|
|
20
|
+
# "@md:toggle-xs"
|
|
21
|
+
# "lg:toggle-xs"
|
|
22
|
+
# "@lg:toggle-xs"
|
|
23
|
+
xs: "toggle-xs",
|
|
24
|
+
# "sm:toggle-sm"
|
|
25
|
+
# "@sm:toggle-sm"
|
|
26
|
+
# "md:toggle-sm"
|
|
27
|
+
# "@md:toggle-sm"
|
|
28
|
+
# "lg:toggle-sm"
|
|
29
|
+
# "@lg:toggle-sm"
|
|
30
|
+
sm: "toggle-sm",
|
|
31
|
+
# "sm:toggle-md"
|
|
32
|
+
# "@sm:toggle-md"
|
|
33
|
+
# "md:toggle-md"
|
|
34
|
+
# "@md:toggle-md"
|
|
35
|
+
# "lg:toggle-md"
|
|
36
|
+
# "@lg:toggle-md"
|
|
37
|
+
md: "toggle-md",
|
|
38
|
+
# "sm:toggle-lg"
|
|
39
|
+
# "@sm:toggle-lg"
|
|
40
|
+
# "md:toggle-lg"
|
|
41
|
+
# "@md:toggle-lg"
|
|
42
|
+
# "lg:toggle-lg"
|
|
43
|
+
# "@lg:toggle-lg"
|
|
44
|
+
lg: "toggle-lg",
|
|
45
|
+
# "sm:toggle-xl"
|
|
46
|
+
# "@sm:toggle-xl"
|
|
47
|
+
# "md:toggle-xl"
|
|
48
|
+
# "@md:toggle-xl"
|
|
49
|
+
# "lg:toggle-xl"
|
|
50
|
+
# "@lg:toggle-xl"
|
|
51
|
+
xl: "toggle-xl",
|
|
52
|
+
# "sm:toggle-primary"
|
|
53
|
+
# "@sm:toggle-primary"
|
|
54
|
+
# "md:toggle-primary"
|
|
55
|
+
# "@md:toggle-primary"
|
|
56
|
+
# "lg:toggle-primary"
|
|
57
|
+
# "@lg:toggle-primary"
|
|
58
|
+
primary: "toggle-primary",
|
|
59
|
+
# "sm:toggle-secondary"
|
|
60
|
+
# "@sm:toggle-secondary"
|
|
61
|
+
# "md:toggle-secondary"
|
|
62
|
+
# "@md:toggle-secondary"
|
|
63
|
+
# "lg:toggle-secondary"
|
|
64
|
+
# "@lg:toggle-secondary"
|
|
65
|
+
secondary: "toggle-secondary",
|
|
66
|
+
# "sm:toggle-accent"
|
|
67
|
+
# "@sm:toggle-accent"
|
|
68
|
+
# "md:toggle-accent"
|
|
69
|
+
# "@md:toggle-accent"
|
|
70
|
+
# "lg:toggle-accent"
|
|
71
|
+
# "@lg:toggle-accent"
|
|
72
|
+
accent: "toggle-accent",
|
|
73
|
+
# "sm:toggle-neutral"
|
|
74
|
+
# "@sm:toggle-neutral"
|
|
75
|
+
# "md:toggle-neutral"
|
|
76
|
+
# "@md:toggle-neutral"
|
|
77
|
+
# "lg:toggle-neutral"
|
|
78
|
+
# "@lg:toggle-neutral"
|
|
79
|
+
neutral: "toggle-neutral",
|
|
80
|
+
# "sm:toggle-success"
|
|
81
|
+
# "@sm:toggle-success"
|
|
82
|
+
# "md:toggle-success"
|
|
83
|
+
# "@md:toggle-success"
|
|
84
|
+
# "lg:toggle-success"
|
|
85
|
+
# "@lg:toggle-success"
|
|
86
|
+
success: "toggle-success",
|
|
87
|
+
# "sm:toggle-warning"
|
|
88
|
+
# "@sm:toggle-warning"
|
|
89
|
+
# "md:toggle-warning"
|
|
90
|
+
# "@md:toggle-warning"
|
|
91
|
+
# "lg:toggle-warning"
|
|
92
|
+
# "@lg:toggle-warning"
|
|
93
|
+
warning: "toggle-warning",
|
|
94
|
+
# "sm:toggle-info"
|
|
95
|
+
# "@sm:toggle-info"
|
|
96
|
+
# "md:toggle-info"
|
|
97
|
+
# "@md:toggle-info"
|
|
98
|
+
# "lg:toggle-info"
|
|
99
|
+
# "@lg:toggle-info"
|
|
100
|
+
info: "toggle-info",
|
|
101
|
+
# "sm:toggle-error"
|
|
102
|
+
# "@sm:toggle-error"
|
|
103
|
+
# "md:toggle-error"
|
|
104
|
+
# "@md:toggle-error"
|
|
105
|
+
# "lg:toggle-error"
|
|
106
|
+
# "@lg:toggle-error"
|
|
107
|
+
error: "toggle-error"
|
|
108
|
+
)
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DaisyUI
|
|
4
|
+
class Tooltip < Base
|
|
5
|
+
self.component_class = :tooltip
|
|
6
|
+
|
|
7
|
+
def initialize(*, tip:, as: :div, **)
|
|
8
|
+
super(*, as:, **)
|
|
9
|
+
@tip = tip
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def view_template(&)
|
|
13
|
+
public_send(as, class: classes, data_tip: tip, **attributes, &)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
attr_reader :tip
|
|
19
|
+
|
|
20
|
+
register_modifiers(
|
|
21
|
+
# "sm:tooltip-open"
|
|
22
|
+
# "@sm:tooltip-open"
|
|
23
|
+
# "md:tooltip-open"
|
|
24
|
+
# "@md:tooltip-open"
|
|
25
|
+
# "lg:tooltip-open"
|
|
26
|
+
# "@lg:tooltip-open"
|
|
27
|
+
open: "tooltip-open",
|
|
28
|
+
# "sm:tooltip-top"
|
|
29
|
+
# "@sm:tooltip-top"
|
|
30
|
+
# "md:tooltip-top"
|
|
31
|
+
# "@md:tooltip-top"
|
|
32
|
+
# "lg:tooltip-top"
|
|
33
|
+
# "@lg:tooltip-top"
|
|
34
|
+
top: "tooltip-top",
|
|
35
|
+
# "sm:tooltip-bottom"
|
|
36
|
+
# "@sm:tooltip-bottom"
|
|
37
|
+
# "md:tooltip-bottom"
|
|
38
|
+
# "@md:tooltip-bottom"
|
|
39
|
+
# "lg:tooltip-bottom"
|
|
40
|
+
# "@lg:tooltip-bottom"
|
|
41
|
+
bottom: "tooltip-bottom",
|
|
42
|
+
# "sm:tooltip-left"
|
|
43
|
+
# "@sm:tooltip-left"
|
|
44
|
+
# "md:tooltip-left"
|
|
45
|
+
# "@md:tooltip-left"
|
|
46
|
+
# "lg:tooltip-left"
|
|
47
|
+
# "@lg:tooltip-left"
|
|
48
|
+
left: "tooltip-left",
|
|
49
|
+
# "sm:tooltip-right"
|
|
50
|
+
# "@sm:tooltip-right"
|
|
51
|
+
# "md:tooltip-right"
|
|
52
|
+
# "@md:tooltip-right"
|
|
53
|
+
# "lg:tooltip-right"
|
|
54
|
+
# "@lg:tooltip-right"
|
|
55
|
+
right: "tooltip-right",
|
|
56
|
+
# "sm:tooltip-primary"
|
|
57
|
+
# "@sm:tooltip-primary"
|
|
58
|
+
# "md:tooltip-primary"
|
|
59
|
+
# "@md:tooltip-primary"
|
|
60
|
+
# "lg:tooltip-primary"
|
|
61
|
+
# "@lg:tooltip-primary"
|
|
62
|
+
primary: "tooltip-primary",
|
|
63
|
+
# "sm:tooltip-secondary"
|
|
64
|
+
# "@sm:tooltip-secondary"
|
|
65
|
+
# "md:tooltip-secondary"
|
|
66
|
+
# "@md:tooltip-secondary"
|
|
67
|
+
# "lg:tooltip-secondary"
|
|
68
|
+
# "@lg:tooltip-secondary"
|
|
69
|
+
secondary: "tooltip-secondary",
|
|
70
|
+
# "sm:tooltip-accent"
|
|
71
|
+
# "@sm:tooltip-accent"
|
|
72
|
+
# "md:tooltip-accent"
|
|
73
|
+
# "@md:tooltip-accent"
|
|
74
|
+
# "lg:tooltip-accent"
|
|
75
|
+
# "@lg:tooltip-accent"
|
|
76
|
+
accent: "tooltip-accent",
|
|
77
|
+
# "sm:tooltip-info"
|
|
78
|
+
# "@sm:tooltip-info"
|
|
79
|
+
# "md:tooltip-info"
|
|
80
|
+
# "@md:tooltip-info"
|
|
81
|
+
# "lg:tooltip-info"
|
|
82
|
+
# "@lg:tooltip-info"
|
|
83
|
+
info: "tooltip-info",
|
|
84
|
+
# "sm:tooltip-success"
|
|
85
|
+
# "@sm:tooltip-success"
|
|
86
|
+
# "md:tooltip-success"
|
|
87
|
+
# "@md:tooltip-success"
|
|
88
|
+
# "lg:tooltip-success"
|
|
89
|
+
# "@lg:tooltip-success"
|
|
90
|
+
success: "tooltip-success",
|
|
91
|
+
# "sm:tooltip-warning"
|
|
92
|
+
# "@sm:tooltip-warning"
|
|
93
|
+
# "md:tooltip-warning"
|
|
94
|
+
# "@md:tooltip-warning"
|
|
95
|
+
# "lg:tooltip-warning"
|
|
96
|
+
# "@lg:tooltip-warning"
|
|
97
|
+
warning: "tooltip-warning",
|
|
98
|
+
# "sm:tooltip-error"
|
|
99
|
+
# "@sm:tooltip-error"
|
|
100
|
+
# "md:tooltip-error"
|
|
101
|
+
# "@md:tooltip-error"
|
|
102
|
+
# "lg:tooltip-error"
|
|
103
|
+
# "@lg:tooltip-error"
|
|
104
|
+
error: "tooltip-error"
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DaisyUI
|
|
4
|
+
# @component html class="validator"
|
|
5
|
+
class Validator < Base
|
|
6
|
+
self.component_class = :validator
|
|
7
|
+
|
|
8
|
+
def initialize(*, as: :input, **)
|
|
9
|
+
super
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def view_template(&block)
|
|
13
|
+
block&.call(self)
|
|
14
|
+
|
|
15
|
+
public_send(as, class: classes, **attributes)
|
|
16
|
+
|
|
17
|
+
# Render hint if it was set
|
|
18
|
+
@hint&.call
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def hint(**options, &block)
|
|
22
|
+
@hint = -> { p(class: component_classes("validator-hint", options: options), **options, &block) }
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/lib/daisy_ui.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require "phlex"
|
|
2
|
+
require "zeitwerk"
|
|
3
|
+
require_relative "daisy_ui/version"
|
|
4
|
+
require_relative "daisy_ui/updated_at"
|
|
5
|
+
|
|
6
|
+
loader = Zeitwerk::Loader.for_gem
|
|
7
|
+
loader.inflector.inflect(
|
|
8
|
+
"daisy_ui" => "DaisyUI"
|
|
9
|
+
)
|
|
10
|
+
loader.ignore("#{__dir__}/daisy_ui/updated_at.rb")
|
|
11
|
+
loader.setup # ready!
|
|
12
|
+
loader.load_file("#{__dir__}/daisy_ui/base.rb")
|
|
13
|
+
|
|
14
|
+
module DaisyUI
|
|
15
|
+
extend Configurable
|
|
16
|
+
extend Phlex::Kit
|
|
17
|
+
end
|