protos 0.2.3 → 0.4.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/.rubocop.yml +5 -5
- data/CHANGELOG.md +11 -0
- data/README.md +82 -67
- data/benchmarks/.keep +0 -0
- data/benchmarks/table.txt +12 -0
- data/examples/list.rb +3 -1
- data/examples/navbar.rb +1 -1
- data/lib/protos/accordion/item.rb +7 -8
- data/lib/protos/accordion.rb +6 -10
- data/lib/protos/alert/actions.rb +2 -2
- data/lib/protos/alert/icon.rb +2 -2
- data/lib/protos/alert.rb +4 -8
- data/lib/protos/attributes.rb +7 -8
- data/lib/protos/avatar.rb +1 -1
- data/lib/protos/breadcrumbs/crumb.rb +2 -2
- data/lib/protos/breadcrumbs.rb +2 -4
- data/lib/protos/card/actions.rb +2 -2
- data/lib/protos/card/body.rb +2 -2
- data/lib/protos/card/image.rb +2 -2
- data/lib/protos/card/title.rb +2 -2
- data/lib/protos/card.rb +6 -14
- data/lib/protos/carousel/actions.rb +2 -2
- data/lib/protos/carousel/item.rb +2 -2
- data/lib/protos/carousel.rb +4 -8
- data/lib/protos/chat_bubble/content.rb +2 -2
- data/lib/protos/chat_bubble/footer.rb +2 -2
- data/lib/protos/chat_bubble/header.rb +2 -2
- data/lib/protos/chat_bubble/image.rb +2 -2
- data/lib/protos/chat_bubble.rb +6 -14
- data/lib/protos/collapse/content.rb +2 -2
- data/lib/protos/collapse/title.rb +3 -3
- data/lib/protos/collapse.rb +4 -8
- data/lib/protos/combobox.rb +8 -24
- data/lib/protos/command/dialog.rb +1 -1
- data/lib/protos/command/empty.rb +2 -2
- data/lib/protos/command/group.rb +1 -1
- data/lib/protos/command/input.rb +3 -2
- data/lib/protos/command/item.rb +2 -2
- data/lib/protos/command/list.rb +2 -2
- data/lib/protos/command/title.rb +2 -2
- data/lib/protos/command/trigger.rb +2 -2
- data/lib/protos/command.rb +10 -26
- data/lib/protos/component.rb +21 -30
- data/lib/protos/drawer/content.rb +2 -2
- data/lib/protos/drawer/side.rb +1 -1
- data/lib/protos/drawer/trigger.rb +2 -2
- data/lib/protos/drawer.rb +5 -11
- data/lib/protos/dropdown/item.rb +2 -2
- data/lib/protos/dropdown/menu.rb +1 -1
- data/lib/protos/dropdown.rb +3 -9
- data/lib/protos/hero/content.rb +2 -2
- data/lib/protos/hero/overlay.rb +2 -2
- data/lib/protos/hero.rb +4 -8
- data/lib/protos/list/item.rb +2 -2
- data/lib/protos/list.rb +3 -5
- data/lib/protos/modal/close_button.rb +1 -1
- data/lib/protos/modal/dialog.rb +1 -1
- data/lib/protos/modal/trigger.rb +2 -2
- data/lib/protos/modal.rb +5 -11
- data/lib/protos/popover/content.rb +3 -1
- data/lib/protos/popover/trigger.rb +2 -2
- data/lib/protos/popover.rb +4 -8
- data/lib/protos/stats/actions.rb +2 -2
- data/lib/protos/stats/description.rb +2 -2
- data/lib/protos/stats/figure.rb +2 -2
- data/lib/protos/stats/stat.rb +2 -2
- data/lib/protos/stats/title.rb +2 -2
- data/lib/protos/stats/value.rb +2 -2
- data/lib/protos/stats.rb +8 -20
- data/lib/protos/swap/off.rb +2 -2
- data/lib/protos/swap/on.rb +2 -2
- data/lib/protos/swap.rb +5 -10
- data/lib/protos/table/body.rb +2 -2
- data/lib/protos/table/caption.rb +3 -3
- data/lib/protos/table/cell.rb +2 -2
- data/lib/protos/table/footer.rb +2 -2
- data/lib/protos/table/head.rb +2 -2
- data/lib/protos/table/header.rb +2 -2
- data/lib/protos/table/row.rb +2 -2
- data/lib/protos/table.rb +8 -22
- data/lib/protos/tabs/tab.rb +5 -4
- data/lib/protos/tabs.rb +3 -5
- data/lib/protos/theme.rb +34 -45
- data/lib/protos/timeline/center.rb +2 -2
- data/lib/protos/timeline/item.rb +2 -2
- data/lib/protos/timeline/left.rb +2 -2
- data/lib/protos/timeline/right.rb +2 -2
- data/lib/protos/timeline.rb +6 -14
- data/lib/protos/toast/close_button.rb +2 -1
- data/lib/protos/toast.rb +3 -5
- data/lib/protos/token_list.rb +18 -31
- data/lib/protos/typography/heading.rb +2 -2
- data/lib/protos/typography/inline_link.rb +3 -3
- data/lib/protos/typography/paragraph.rb +2 -2
- data/lib/protos/typography.rb +12 -12
- data/lib/protos/version.rb +1 -1
- data/protos.gemspec +15 -3
- metadata +8 -6
data/lib/protos/token_list.rb
CHANGED
@@ -3,19 +3,7 @@
|
|
3
3
|
module Protos
|
4
4
|
class TokenList
|
5
5
|
# DOCS: A list of utility tokens that can handle parsing and merging sets of
|
6
|
-
# tokens together safely.
|
7
|
-
# while accounting for their conflicts.
|
8
|
-
|
9
|
-
def self.parse(input)
|
10
|
-
case input
|
11
|
-
when String then new(input.split)
|
12
|
-
when Array then new(input)
|
13
|
-
when TokenList then input
|
14
|
-
when NilClass then new
|
15
|
-
else raise ArgumentError,
|
16
|
-
"Invalid input for #{self.class.name}: #{input.inspect}"
|
17
|
-
end
|
18
|
-
end
|
6
|
+
# tokens together safely.
|
19
7
|
|
20
8
|
attr_reader :tokens
|
21
9
|
|
@@ -23,34 +11,33 @@ module Protos
|
|
23
11
|
@tokens = Set.new(tokens)
|
24
12
|
end
|
25
13
|
|
14
|
+
def empty?
|
15
|
+
@tokens.empty?
|
16
|
+
end
|
17
|
+
|
26
18
|
def to_s
|
27
19
|
@tokens.join(" ")
|
28
20
|
end
|
29
21
|
|
30
|
-
def
|
31
|
-
|
32
|
-
self
|
22
|
+
def remove(tokens)
|
23
|
+
@tokens.subtract(parse(tokens))
|
24
|
+
self
|
33
25
|
end
|
34
26
|
|
35
|
-
def
|
36
|
-
|
37
|
-
self
|
27
|
+
def add(tokens)
|
28
|
+
@tokens.merge(parse(tokens))
|
29
|
+
self
|
38
30
|
end
|
39
31
|
|
40
|
-
def
|
41
|
-
|
42
|
-
|
43
|
-
@tokens.delete(token)
|
44
|
-
end
|
45
|
-
end
|
32
|
+
def clear
|
33
|
+
@tokens.clear
|
34
|
+
self
|
46
35
|
end
|
47
36
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
end
|
53
|
-
end
|
37
|
+
private
|
38
|
+
|
39
|
+
def parse(tokens)
|
40
|
+
tokens.split
|
54
41
|
end
|
55
42
|
end
|
56
43
|
end
|
@@ -12,8 +12,8 @@ module Protos
|
|
12
12
|
option :size, type: SizeTypes, default: -> { "md" }, reader: false
|
13
13
|
option :level, type: LevelTypes, default: -> { 1 }, reader: false
|
14
14
|
|
15
|
-
def
|
16
|
-
send(element, **attrs, &
|
15
|
+
def view_template(&)
|
16
|
+
send(element, **attrs, &)
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
@@ -5,8 +5,8 @@ module Protos
|
|
5
5
|
class InlineLink < Component
|
6
6
|
# DOCS: A link that is styled to be inline with text
|
7
7
|
|
8
|
-
def
|
9
|
-
a(**attrs, &
|
8
|
+
def view_template(&)
|
9
|
+
a(**attrs, &)
|
10
10
|
end
|
11
11
|
|
12
12
|
private
|
@@ -14,7 +14,7 @@ module Protos
|
|
14
14
|
def theme
|
15
15
|
{
|
16
16
|
container: tokens(
|
17
|
-
"font-
|
17
|
+
"font-semibold",
|
18
18
|
"hover:underline",
|
19
19
|
"underline-offset-4",
|
20
20
|
"cursor-pointer"
|
data/lib/protos/typography.rb
CHANGED
@@ -5,28 +5,28 @@ module Protos
|
|
5
5
|
# DOCS: The core typography module that can be mixedin to override the
|
6
6
|
# default elements with custom elements.
|
7
7
|
|
8
|
-
def h1(
|
9
|
-
render
|
8
|
+
def h1(**, &)
|
9
|
+
render Heading.new(level: 1, size: :xl, **, &)
|
10
10
|
end
|
11
11
|
|
12
|
-
def h2(
|
13
|
-
render
|
12
|
+
def h2(**, &)
|
13
|
+
render Heading.new(level: 2, size: :lg, **, &)
|
14
14
|
end
|
15
15
|
|
16
|
-
def h3(
|
17
|
-
render
|
16
|
+
def h3(**, &)
|
17
|
+
render Heading.new(level: 3, size: :md, **, &)
|
18
18
|
end
|
19
19
|
|
20
|
-
def h4(
|
21
|
-
render
|
20
|
+
def h4(**, &)
|
21
|
+
render Heading.new(level: 4, size: :sm, **, &)
|
22
22
|
end
|
23
23
|
|
24
|
-
def p(
|
25
|
-
render
|
24
|
+
def p(**, &)
|
25
|
+
render Paragraph.new(**, &)
|
26
26
|
end
|
27
27
|
|
28
|
-
def inline_a(
|
29
|
-
render
|
28
|
+
def inline_a(**, &)
|
29
|
+
render InlineLink.new(**, &)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
data/lib/protos/version.rb
CHANGED
data/protos.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = "A UI component library built with phlex and daisyui"
|
13
13
|
spec.homepage = "https://github.com/inhouse-work/protos"
|
14
14
|
spec.license = "MIT"
|
15
|
-
spec.required_ruby_version = ">= 3.
|
15
|
+
spec.required_ruby_version = ">= 3.2"
|
16
16
|
spec.requirements << "tailwindcss"
|
17
17
|
spec.requirements << "daisyui"
|
18
18
|
spec.requirements << "protos-stimulus"
|
@@ -26,7 +26,19 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.files = Dir.chdir(__dir__) do
|
27
27
|
`git ls-files -z`.split("\x0").reject do |f|
|
28
28
|
(File.expand_path(f) == __FILE__) ||
|
29
|
-
f.start_with?(
|
29
|
+
f.start_with?(
|
30
|
+
*%w[
|
31
|
+
bin/
|
32
|
+
test/
|
33
|
+
spec/
|
34
|
+
features/
|
35
|
+
rakelib/
|
36
|
+
benchmark/
|
37
|
+
.git
|
38
|
+
appveyor
|
39
|
+
Gemfile
|
40
|
+
]
|
41
|
+
)
|
30
42
|
end
|
31
43
|
end
|
32
44
|
spec.bindir = "exe"
|
@@ -37,7 +49,7 @@ Gem::Specification.new do |spec|
|
|
37
49
|
spec.add_dependency "dry-core", "~> 1.0"
|
38
50
|
spec.add_dependency "dry-initializer", "~> 3.1"
|
39
51
|
spec.add_dependency "dry-types", "~> 1.7"
|
40
|
-
spec.add_dependency "phlex", "~> 1.
|
52
|
+
spec.add_dependency "phlex", "~> 1.10"
|
41
53
|
spec.add_dependency "tailwind_merge", "~> 0.10"
|
42
54
|
|
43
55
|
# For more information and examples about making a new gem, check out our
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nolan J Tait
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-core
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.10'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.10'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: tailwind_merge
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,6 +93,8 @@ files:
|
|
93
93
|
- LICENSE.txt
|
94
94
|
- README.md
|
95
95
|
- Rakefile
|
96
|
+
- benchmarks/.keep
|
97
|
+
- benchmarks/table.txt
|
96
98
|
- examples/list.rb
|
97
99
|
- examples/navbar.rb
|
98
100
|
- lib/protos.rb
|
@@ -205,7 +207,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
207
|
requirements:
|
206
208
|
- - ">="
|
207
209
|
- !ruby/object:Gem::Version
|
208
|
-
version: '3.
|
210
|
+
version: '3.2'
|
209
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
212
|
requirements:
|
211
213
|
- - ">="
|
@@ -215,7 +217,7 @@ requirements:
|
|
215
217
|
- tailwindcss
|
216
218
|
- daisyui
|
217
219
|
- protos-stimulus
|
218
|
-
rubygems_version: 3.5.
|
220
|
+
rubygems_version: 3.5.7
|
219
221
|
signing_key:
|
220
222
|
specification_version: 4
|
221
223
|
summary: A UI component library built with phlex and daisyui
|