protos 0.4.1 → 0.4.2
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 +10 -1
- data/README.md +2 -1
- data/TODO.md +18 -0
- data/lib/protos/accordion/item.rb +2 -2
- data/lib/protos/accordion.rb +3 -9
- data/lib/protos/alert/actions.rb +1 -1
- data/lib/protos/alert/icon.rb +1 -1
- data/lib/protos/alert.rb +15 -13
- data/lib/protos/attributes.rb +3 -0
- data/lib/protos/avatar.rb +60 -32
- data/lib/protos/breadcrumbs.rb +1 -1
- data/lib/protos/card/actions.rb +1 -1
- data/lib/protos/card/body.rb +1 -1
- data/lib/protos/card/title.rb +1 -1
- data/lib/protos/card.rb +9 -7
- data/lib/protos/carousel/actions.rb +10 -10
- data/lib/protos/carousel/item.rb +1 -1
- data/lib/protos/carousel.rb +7 -5
- data/lib/protos/chat_bubble/content.rb +17 -12
- data/lib/protos/chat_bubble/footer.rb +1 -1
- data/lib/protos/chat_bubble/header.rb +1 -1
- data/lib/protos/chat_bubble/image.rb +1 -1
- data/lib/protos/chat_bubble.rb +10 -5
- data/lib/protos/collapse/content.rb +1 -1
- data/lib/protos/collapse/title.rb +1 -1
- data/lib/protos/collapse.rb +5 -1
- data/lib/protos/combobox.rb +1 -1
- data/lib/protos/command/dialog.rb +8 -8
- data/lib/protos/command/empty.rb +1 -1
- data/lib/protos/command/input.rb +12 -12
- data/lib/protos/command/list.rb +1 -1
- data/lib/protos/command/title.rb +1 -1
- data/lib/protos/drawer/content.rb +1 -1
- data/lib/protos/drawer/side.rb +6 -6
- data/lib/protos/drawer/trigger.rb +1 -1
- data/lib/protos/drawer.rb +2 -2
- data/lib/protos/dropdown/menu.rb +7 -7
- data/lib/protos/dropdown.rb +2 -2
- data/lib/protos/hero/content.rb +1 -1
- data/lib/protos/hero/overlay.rb +1 -1
- data/lib/protos/hero.rb +1 -1
- data/lib/protos/list/item.rb +4 -4
- data/lib/protos/list.rb +1 -4
- data/lib/protos/modal/close_button.rb +1 -4
- data/lib/protos/modal/dialog.rb +17 -12
- data/lib/protos/popover.rb +6 -6
- data/lib/protos/stats/actions.rb +1 -1
- data/lib/protos/stats/description.rb +1 -1
- data/lib/protos/stats/figure.rb +1 -1
- data/lib/protos/stats/stat.rb +1 -1
- data/lib/protos/stats/title.rb +1 -1
- data/lib/protos/stats/value.rb +1 -1
- data/lib/protos/stats.rb +1 -1
- data/lib/protos/steps/step.rb +49 -0
- data/lib/protos/steps.rb +27 -0
- data/lib/protos/swap/off.rb +1 -1
- data/lib/protos/swap/on.rb +1 -1
- data/lib/protos/swap.rb +1 -1
- data/lib/protos/table/caption.rb +15 -1
- data/lib/protos/table/cell.rb +13 -8
- data/lib/protos/table/head.rb +11 -18
- data/lib/protos/table.rb +9 -7
- data/lib/protos/tabs/tab.rb +1 -1
- data/lib/protos/tabs.rb +13 -7
- data/lib/protos/timeline/center.rb +1 -1
- data/lib/protos/timeline/left.rb +1 -1
- data/lib/protos/timeline/right.rb +1 -1
- data/lib/protos/toast/close_button.rb +1 -1
- data/lib/protos/toast.rb +19 -17
- data/lib/protos/token_list.rb +7 -1
- data/lib/protos/types.rb +0 -25
- data/lib/protos/typography/heading.rb +15 -13
- data/lib/protos/typography/inline_link.rb +6 -6
- data/lib/protos/typography/paragraph.rb +3 -3
- data/lib/protos/version.rb +1 -1
- data/lib/protos.rb +3 -0
- metadata +5 -2
data/lib/protos/command/input.rb
CHANGED
@@ -6,10 +6,10 @@ module Protos
|
|
6
6
|
# DOCS: The search input for the command palette
|
7
7
|
|
8
8
|
option :placeholder,
|
9
|
+
reader: :private,
|
9
10
|
default: -> {
|
10
11
|
"Type a command or search..."
|
11
|
-
}
|
12
|
-
reader: :private
|
12
|
+
}
|
13
13
|
|
14
14
|
def view_template(&block)
|
15
15
|
div(**attrs) do
|
@@ -30,16 +30,16 @@ module Protos
|
|
30
30
|
|
31
31
|
def theme
|
32
32
|
{
|
33
|
-
container:
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
33
|
+
container: "form-control",
|
34
|
+
input: "grow bg-transparent",
|
35
|
+
icon: "flex place-items-center",
|
36
|
+
label: %w[
|
37
|
+
input
|
38
|
+
input-bordered
|
39
|
+
flex
|
40
|
+
items-center
|
41
|
+
gap-2
|
42
|
+
]
|
43
43
|
}
|
44
44
|
end
|
45
45
|
end
|
data/lib/protos/command/list.rb
CHANGED
data/lib/protos/command/title.rb
CHANGED
data/lib/protos/drawer/side.rb
CHANGED
@@ -19,12 +19,12 @@ module Protos
|
|
19
19
|
|
20
20
|
def theme
|
21
21
|
{
|
22
|
-
container:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
toggle:
|
22
|
+
container: %w[
|
23
|
+
drawer-side
|
24
|
+
z-20
|
25
|
+
peer-checked:backdrop-blur-sm
|
26
|
+
],
|
27
|
+
toggle: "drawer-overlay"
|
28
28
|
}
|
29
29
|
end
|
30
30
|
end
|
data/lib/protos/drawer.rb
CHANGED
data/lib/protos/dropdown/menu.rb
CHANGED
@@ -17,13 +17,13 @@ module Protos
|
|
17
17
|
|
18
18
|
def theme
|
19
19
|
{
|
20
|
-
container:
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
20
|
+
container: %w[
|
21
|
+
menu
|
22
|
+
dropdown-content
|
23
|
+
z-10
|
24
|
+
bg-base-100
|
25
|
+
rounded-box
|
26
|
+
]
|
27
27
|
}
|
28
28
|
end
|
29
29
|
end
|
data/lib/protos/dropdown.rb
CHANGED
@@ -11,13 +11,13 @@ module Protos
|
|
11
11
|
# tricky to get right and we felt the dependency tradeoff was worthwhile.
|
12
12
|
|
13
13
|
option :position,
|
14
|
-
type:
|
14
|
+
type: Popover::Positions,
|
15
15
|
default: -> { :bottom },
|
16
16
|
reader: false
|
17
17
|
option :trigger,
|
18
18
|
default: -> { :click },
|
19
19
|
reader: false,
|
20
|
-
type:
|
20
|
+
type: Popover::Triggers | Types::Array.of(Popover::Triggers)
|
21
21
|
|
22
22
|
def item(...) = render Item.new(...)
|
23
23
|
|
data/lib/protos/hero/content.rb
CHANGED
data/lib/protos/hero/overlay.rb
CHANGED
data/lib/protos/hero.rb
CHANGED
data/lib/protos/list/item.rb
CHANGED
data/lib/protos/list.rb
CHANGED
data/lib/protos/modal/dialog.rb
CHANGED
@@ -14,18 +14,6 @@ module Protos
|
|
14
14
|
|
15
15
|
private
|
16
16
|
|
17
|
-
def theme
|
18
|
-
{
|
19
|
-
container: tokens(
|
20
|
-
"modal",
|
21
|
-
"modal-bottom",
|
22
|
-
"backdrop-blur-sm",
|
23
|
-
"sm:modal-middle"
|
24
|
-
),
|
25
|
-
modal: tokens("modal-box", "flex", "flex-col", "gap-xs")
|
26
|
-
}
|
27
|
-
end
|
28
|
-
|
29
17
|
def attrs
|
30
18
|
@attrs ||= build_attrs(
|
31
19
|
{
|
@@ -33,6 +21,23 @@ module Protos
|
|
33
21
|
}
|
34
22
|
)
|
35
23
|
end
|
24
|
+
|
25
|
+
def theme
|
26
|
+
{
|
27
|
+
container: %w[
|
28
|
+
modal
|
29
|
+
modal-bottom
|
30
|
+
backdrop-blur-sm
|
31
|
+
sm:modal-middle
|
32
|
+
],
|
33
|
+
modal: %w[
|
34
|
+
modal-box
|
35
|
+
flex
|
36
|
+
flex-col
|
37
|
+
gap-xs
|
38
|
+
]
|
39
|
+
}
|
40
|
+
end
|
36
41
|
end
|
37
42
|
end
|
38
43
|
end
|
data/lib/protos/popover.rb
CHANGED
@@ -12,7 +12,7 @@ module Protos
|
|
12
12
|
# Tippy.js options can be passed in via the `options` attribute or, more
|
13
13
|
# conveniently by the typed options listed below.
|
14
14
|
|
15
|
-
|
15
|
+
Positions = Types::Coercible::Symbol.enum(
|
16
16
|
:top,
|
17
17
|
:top_start,
|
18
18
|
:top_end,
|
@@ -27,7 +27,7 @@ module Protos
|
|
27
27
|
:left_end
|
28
28
|
)
|
29
29
|
|
30
|
-
|
30
|
+
Animations = Types::Coercible::Symbol.enum(
|
31
31
|
:fade,
|
32
32
|
:shift_away,
|
33
33
|
:shift_away_subtle,
|
@@ -43,7 +43,7 @@ module Protos
|
|
43
43
|
:perspective_extreme
|
44
44
|
)
|
45
45
|
|
46
|
-
|
46
|
+
Triggers = Types::Coercible::Symbol.enum(
|
47
47
|
:focus,
|
48
48
|
:mouseenter,
|
49
49
|
:click,
|
@@ -52,11 +52,11 @@ module Protos
|
|
52
52
|
)
|
53
53
|
|
54
54
|
option :position,
|
55
|
-
type:
|
55
|
+
type: Positions,
|
56
56
|
default: -> { :top },
|
57
57
|
reader: false
|
58
58
|
option :animation,
|
59
|
-
type:
|
59
|
+
type: Animations,
|
60
60
|
default: -> { :fade },
|
61
61
|
reader: false
|
62
62
|
option :duration,
|
@@ -78,7 +78,7 @@ module Protos
|
|
78
78
|
option :trigger,
|
79
79
|
default: -> { %i[mouseenter focus] },
|
80
80
|
reader: false,
|
81
|
-
type:
|
81
|
+
type: Triggers | Types::Array.of(Triggers)
|
82
82
|
|
83
83
|
def view_template(&)
|
84
84
|
div(**attrs, &)
|
data/lib/protos/stats/actions.rb
CHANGED
data/lib/protos/stats/figure.rb
CHANGED
data/lib/protos/stats/stat.rb
CHANGED
data/lib/protos/stats/title.rb
CHANGED
data/lib/protos/stats/value.rb
CHANGED
data/lib/protos/stats.rb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Protos
|
4
|
+
class Steps
|
5
|
+
class Step < Protos::Component
|
6
|
+
# DOCS: Step component that contains a single step in a list of steps
|
7
|
+
|
8
|
+
Styles = Types::Coercible::Symbol.enum(
|
9
|
+
:default,
|
10
|
+
:primary,
|
11
|
+
:secondary,
|
12
|
+
:accent,
|
13
|
+
:info,
|
14
|
+
:success,
|
15
|
+
:warning,
|
16
|
+
:error
|
17
|
+
)
|
18
|
+
|
19
|
+
STYLES = {
|
20
|
+
default: "",
|
21
|
+
primary: "step-primary",
|
22
|
+
secondary: "step-secondary",
|
23
|
+
accent: "step-accent",
|
24
|
+
info: "step-info",
|
25
|
+
success: "step-success",
|
26
|
+
warning: "step-warning",
|
27
|
+
error: "step-error"
|
28
|
+
}.freeze
|
29
|
+
|
30
|
+
option :type, reader: false, type: Styles, default: -> { :default }
|
31
|
+
|
32
|
+
def view_template(&)
|
33
|
+
li(**attrs, &)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def type
|
39
|
+
STYLES.fetch(@type)
|
40
|
+
end
|
41
|
+
|
42
|
+
def theme
|
43
|
+
{
|
44
|
+
container: "step #{type}"
|
45
|
+
}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/protos/steps.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Protos
|
4
|
+
class Steps < Component
|
5
|
+
# DOCS: Steps can be used to show a list of steps in a process.
|
6
|
+
# https://daisyui.com/components/steps/
|
7
|
+
|
8
|
+
option :vertical, type: Types::Bool, default: -> { false }
|
9
|
+
|
10
|
+
def view_template(&)
|
11
|
+
ol(**attrs, &)
|
12
|
+
end
|
13
|
+
|
14
|
+
def step(...) = render Step.new(...)
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def theme
|
19
|
+
{
|
20
|
+
container: tokens(
|
21
|
+
"steps",
|
22
|
+
vertical: "steps-vertical"
|
23
|
+
)
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/protos/swap/off.rb
CHANGED
data/lib/protos/swap/on.rb
CHANGED
data/lib/protos/swap.rb
CHANGED
data/lib/protos/table/caption.rb
CHANGED
@@ -5,15 +5,29 @@ module Protos
|
|
5
5
|
class Caption < Component
|
6
6
|
# DOCS: The caption of a table
|
7
7
|
|
8
|
+
SIDES = {
|
9
|
+
bottom: "caption-bottom",
|
10
|
+
top: "caption-top"
|
11
|
+
}.freeze
|
12
|
+
|
13
|
+
option :side,
|
14
|
+
reader: false,
|
15
|
+
type: Types::Coercible::Symbol.enum(:bottom, :top),
|
16
|
+
default: -> { :bottom }
|
17
|
+
|
8
18
|
def view_template(&)
|
9
19
|
caption(**attrs, &)
|
10
20
|
end
|
11
21
|
|
12
22
|
private
|
13
23
|
|
24
|
+
def side
|
25
|
+
SIDES.fetch(@side)
|
26
|
+
end
|
27
|
+
|
14
28
|
def theme
|
15
29
|
{
|
16
|
-
container:
|
30
|
+
container: side
|
17
31
|
}
|
18
32
|
end
|
19
33
|
end
|
data/lib/protos/table/cell.rb
CHANGED
@@ -5,11 +5,16 @@ module Protos
|
|
5
5
|
class Cell < Component
|
6
6
|
# DOCS: A single cell in a table
|
7
7
|
|
8
|
+
ALLIGNMENT = {
|
9
|
+
left: "text-left",
|
10
|
+
right: "text-right",
|
11
|
+
center: "text-center"
|
12
|
+
}.freeze
|
13
|
+
|
8
14
|
option :align,
|
9
15
|
type: Types::Coercible::Symbol.enum(:left, :center, :right),
|
10
|
-
|
11
|
-
|
12
|
-
}
|
16
|
+
reader: false,
|
17
|
+
default: -> { :left }
|
13
18
|
|
14
19
|
def view_template(&)
|
15
20
|
td(**attrs, &)
|
@@ -29,13 +34,13 @@ module Protos
|
|
29
34
|
align == :right
|
30
35
|
end
|
31
36
|
|
37
|
+
def align
|
38
|
+
ALLIGNMENT.fetch(@align)
|
39
|
+
end
|
40
|
+
|
32
41
|
def theme
|
33
42
|
{
|
34
|
-
container:
|
35
|
-
left?: "text-left",
|
36
|
-
right?: "text-right",
|
37
|
-
center?: "text-center"
|
38
|
-
)
|
43
|
+
container: align
|
39
44
|
}
|
40
45
|
end
|
41
46
|
end
|
data/lib/protos/table/head.rb
CHANGED
@@ -5,11 +5,16 @@ module Protos
|
|
5
5
|
class Head < Component
|
6
6
|
# DOCS: The head of a table
|
7
7
|
|
8
|
+
ALLIGNMENT = {
|
9
|
+
left: "text-left",
|
10
|
+
right: "text-right",
|
11
|
+
center: "text-center"
|
12
|
+
}.freeze
|
13
|
+
|
8
14
|
option :align,
|
9
15
|
type: Types::Coercible::Symbol.enum(:left, :center, :right),
|
10
|
-
|
11
|
-
|
12
|
-
}
|
16
|
+
reader: false,
|
17
|
+
default: -> { :left }
|
13
18
|
|
14
19
|
def view_template(&)
|
15
20
|
th(**attrs, &)
|
@@ -17,25 +22,13 @@ module Protos
|
|
17
22
|
|
18
23
|
private
|
19
24
|
|
20
|
-
def
|
21
|
-
align
|
22
|
-
end
|
23
|
-
|
24
|
-
def center?
|
25
|
-
align == :center
|
26
|
-
end
|
27
|
-
|
28
|
-
def right?
|
29
|
-
align == :right
|
25
|
+
def align
|
26
|
+
ALLIGNMENT.fetch(@align)
|
30
27
|
end
|
31
28
|
|
32
29
|
def theme
|
33
30
|
{
|
34
|
-
container:
|
35
|
-
left?: "text-left",
|
36
|
-
right?: "text-right",
|
37
|
-
center?: "text-center"
|
38
|
-
)
|
31
|
+
container: align
|
39
32
|
}
|
40
33
|
end
|
41
34
|
end
|
data/lib/protos/table.rb
CHANGED
@@ -5,6 +5,13 @@ module Protos
|
|
5
5
|
# DOCS: A table component
|
6
6
|
# https://daisyui.com/components/table/
|
7
7
|
|
8
|
+
SIZES = {
|
9
|
+
xs: "table-xs",
|
10
|
+
sm: "table-sm",
|
11
|
+
md: "table-md",
|
12
|
+
lg: "table-lg"
|
13
|
+
}.freeze
|
14
|
+
|
8
15
|
option :pin_rows, default: -> { false }, type: Types::Bool
|
9
16
|
option :pin_columns, default: -> { false }, type: Types::Bool
|
10
17
|
option :striped, default: -> { false }, type: Types::Bool
|
@@ -41,17 +48,12 @@ module Protos
|
|
41
48
|
private
|
42
49
|
|
43
50
|
def size
|
44
|
-
|
45
|
-
xs: "table-xs",
|
46
|
-
sm: "table-sm",
|
47
|
-
md: "table-md",
|
48
|
-
lg: "table-lg"
|
49
|
-
}.fetch(@size)
|
51
|
+
SIZES.fetch(@size)
|
50
52
|
end
|
51
53
|
|
52
54
|
def theme
|
53
55
|
{
|
54
|
-
container:
|
56
|
+
container: "w-full overflow-x-auto",
|
55
57
|
table: tokens(
|
56
58
|
"table",
|
57
59
|
size,
|