protos 0.6.0 → 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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -1
  3. data/README.md +62 -81
  4. data/examples/list.rb +2 -2
  5. data/examples/navbar.rb +3 -8
  6. data/lib/protos/accordion/item.rb +4 -2
  7. data/lib/protos/accordion.rb +10 -11
  8. data/lib/protos/alert.rb +4 -4
  9. data/lib/protos/avatar.rb +12 -20
  10. data/lib/protos/badge.rb +58 -0
  11. data/lib/protos/breadcrumbs.rb +2 -0
  12. data/lib/protos/card.rb +37 -19
  13. data/lib/protos/carousel.rb +15 -10
  14. data/lib/protos/chat_bubble/content.rb +9 -17
  15. data/lib/protos/chat_bubble.rb +13 -6
  16. data/lib/protos/collapse/title.rb +3 -3
  17. data/lib/protos/collapse.rb +32 -11
  18. data/lib/protos/combobox.rb +3 -3
  19. data/lib/protos/command/input.rb +4 -4
  20. data/lib/protos/command.rb +16 -2
  21. data/lib/protos/component.rb +12 -36
  22. data/lib/protos/diff/item.rb +34 -0
  23. data/lib/protos/diff/resizer.rb +19 -0
  24. data/lib/protos/diff.rb +30 -0
  25. data/lib/protos/drawer.rb +7 -3
  26. data/lib/protos/dropdown/menu.rb +2 -5
  27. data/lib/protos/dropdown.rb +10 -6
  28. data/lib/protos/hero.rb +3 -0
  29. data/lib/protos/list/item.rb +7 -3
  30. data/lib/protos/list.rb +3 -1
  31. data/lib/protos/menu/item.rb +23 -0
  32. data/lib/protos/menu.rb +56 -0
  33. data/lib/protos/mix.rb +3 -5
  34. data/lib/protos/modal/close_button.rb +8 -0
  35. data/lib/protos/modal/dialog.rb +4 -6
  36. data/lib/protos/modal.rb +6 -1
  37. data/lib/protos/popover/content.rb +1 -1
  38. data/lib/protos/popover.rb +24 -21
  39. data/lib/protos/stats.rb +7 -0
  40. data/lib/protos/status.rb +46 -0
  41. data/lib/protos/steps/step.rb +1 -12
  42. data/lib/protos/steps.rb +5 -3
  43. data/lib/protos/swap.rb +3 -0
  44. data/lib/protos/table/caption.rb +5 -3
  45. data/lib/protos/table/cell.rb +3 -3
  46. data/lib/protos/table/head.rb +3 -3
  47. data/lib/protos/table.rb +23 -13
  48. data/lib/protos/tabs/tab.rb +4 -4
  49. data/lib/protos/tabs.rb +30 -22
  50. data/lib/protos/tailwind_merge.rb +65 -0
  51. data/lib/protos/theme.rb +32 -30
  52. data/lib/protos/timeline.rb +8 -3
  53. data/lib/protos/toast.rb +5 -3
  54. data/lib/protos/types.rb +11 -0
  55. data/lib/protos/typography/paragraph.rb +3 -3
  56. data/lib/protos/typography.rb +4 -0
  57. data/lib/protos/version.rb +1 -1
  58. data/lib/protos.rb +41 -121
  59. data/protos.gemspec +4 -5
  60. metadata +19 -29
  61. data/lib/protos/command/dialog.rb +0 -40
data/lib/protos.rb CHANGED
@@ -8,127 +8,47 @@ require "tailwind_merge"
8
8
 
9
9
  module Protos
10
10
  class Error < StandardError; end
11
- end
12
-
13
- require_relative "protos/version"
14
- require_relative "protos/types"
15
- require_relative "protos/token_list"
16
- require_relative "protos/component"
17
- require_relative "protos/theme"
18
- require_relative "protos/mix"
19
- require_relative "protos/attributes"
20
-
21
- # Components
22
- require_relative "protos/accordion"
23
- require_relative "protos/accordion/item"
24
-
25
- require_relative "protos/alert"
26
- require_relative "protos/alert/actions"
27
- require_relative "protos/alert/icon"
28
-
29
- require_relative "protos/avatar"
30
-
31
- require_relative "protos/breadcrumbs"
32
- require_relative "protos/breadcrumbs/crumb"
33
-
34
- require_relative "protos/card"
35
- require_relative "protos/card/body"
36
- require_relative "protos/card/title"
37
- require_relative "protos/card/actions"
38
- require_relative "protos/card/image"
39
-
40
- require_relative "protos/carousel"
41
- require_relative "protos/carousel/item"
42
- require_relative "protos/carousel/actions"
43
-
44
- require_relative "protos/chat_bubble"
45
- require_relative "protos/chat_bubble/content"
46
- require_relative "protos/chat_bubble/image"
47
- require_relative "protos/chat_bubble/header"
48
- require_relative "protos/chat_bubble/footer"
49
-
50
- require_relative "protos/collapse"
51
- require_relative "protos/collapse/title"
52
- require_relative "protos/collapse/content"
53
-
54
- require_relative "protos/command"
55
- require_relative "protos/command/input"
56
- require_relative "protos/command/dialog"
57
- require_relative "protos/command/group"
58
- require_relative "protos/command/list"
59
- require_relative "protos/command/trigger"
60
- require_relative "protos/command/title"
61
- require_relative "protos/command/item"
62
- require_relative "protos/command/empty"
63
-
64
- require_relative "protos/drawer"
65
- require_relative "protos/drawer/side"
66
- require_relative "protos/drawer/trigger"
67
- require_relative "protos/drawer/content"
68
-
69
- require_relative "protos/hero"
70
- require_relative "protos/hero/content"
71
- require_relative "protos/hero/overlay"
72
11
 
73
- require_relative "protos/list"
74
- require_relative "protos/list/item"
75
-
76
- require_relative "protos/modal"
77
- require_relative "protos/modal/close_button"
78
- require_relative "protos/modal/dialog"
79
- require_relative "protos/modal/trigger"
80
-
81
- require_relative "protos/popover"
82
- require_relative "protos/popover/trigger"
83
- require_relative "protos/popover/content"
84
-
85
- require_relative "protos/stats"
86
- require_relative "protos/stats/actions"
87
- require_relative "protos/stats/description"
88
- require_relative "protos/stats/figure"
89
- require_relative "protos/stats/stat"
90
- require_relative "protos/stats/title"
91
- require_relative "protos/stats/value"
92
-
93
- require_relative "protos/steps"
94
- require_relative "protos/steps/step"
95
-
96
- require_relative "protos/swap"
97
- require_relative "protos/swap/on"
98
- require_relative "protos/swap/off"
99
-
100
- require_relative "protos/tabs"
101
- require_relative "protos/tabs/tab"
102
-
103
- require_relative "protos/table"
104
- require_relative "protos/table/caption"
105
- require_relative "protos/table/header"
106
- require_relative "protos/table/head"
107
- require_relative "protos/table/body"
108
- require_relative "protos/table/footer"
109
- require_relative "protos/table/row"
110
- require_relative "protos/table/cell"
111
-
112
- require_relative "protos/toast"
113
- require_relative "protos/toast/close_button"
114
-
115
- require_relative "protos/timeline"
116
- require_relative "protos/timeline/item"
117
- require_relative "protos/timeline/left"
118
- require_relative "protos/timeline/center"
119
- require_relative "protos/timeline/right"
120
-
121
- require_relative "protos/typography"
122
- require_relative "protos/typography/heading"
123
- require_relative "protos/typography/paragraph"
124
- require_relative "protos/typography/inline_link"
125
-
126
- # Dependent
127
- require_relative "protos/dropdown"
128
- require_relative "protos/dropdown/item"
129
- require_relative "protos/dropdown/menu"
130
- require_relative "protos/dropdown/trigger"
131
-
132
- require_relative "protos/combobox"
12
+ autoload :Version, "protos/version"
13
+ autoload :Types, "protos/types"
14
+ autoload :TokenList, "protos/token_list"
15
+ autoload :Component, "protos/component"
16
+ autoload :Theme, "protos/theme"
17
+ autoload :Mix, "protos/mix"
18
+ autoload :Attributes, "protos/attributes"
19
+ autoload :TailwindMerge, "protos/tailwind_merge"
20
+
21
+ # Components
22
+ autoload :Accordion, "protos/accordion"
23
+ autoload :Alert, "protos/alert"
24
+ autoload :Avatar, "protos/avatar"
25
+ autoload :Badge, "protos/badge"
26
+ autoload :Breadcrumbs, "protos/breadcrumbs"
27
+ autoload :Card, "protos/card"
28
+ autoload :Carousel, "protos/carousel"
29
+ autoload :ChatBubble, "protos/chat_bubble"
30
+ autoload :Collapse, "protos/collapse"
31
+ autoload :Command, "protos/command"
32
+ autoload :Diff, "protos/diff"
33
+ autoload :Drawer, "protos/drawer"
34
+ autoload :Hero, "protos/hero"
35
+ autoload :List, "protos/list"
36
+ autoload :Menu, "protos/menu"
37
+ autoload :Modal, "protos/modal"
38
+ autoload :Popover, "protos/popover"
39
+ autoload :Stats, "protos/stats"
40
+ autoload :Steps, "protos/steps"
41
+ autoload :Status, "protos/status"
42
+ autoload :Swap, "protos/swap"
43
+ autoload :Tabs, "protos/tabs"
44
+ autoload :Table, "protos/table"
45
+ autoload :Toast, "protos/toast"
46
+ autoload :Timeline, "protos/timeline"
47
+ autoload :Typography, "protos/typography"
48
+
49
+ # Dependent
50
+ autoload :Dropdown, "protos/dropdown"
51
+ autoload :Combobox, "protos/combobox"
52
+ end
133
53
 
134
54
  require_relative "protos/engine" if defined?(Rails)
data/protos.gemspec CHANGED
@@ -46,11 +46,10 @@ Gem::Specification.new do |spec|
46
46
  spec.require_paths = ["lib"]
47
47
 
48
48
  # Uncomment to register a new dependency of your gem
49
- spec.add_dependency "dry-core", "~> 1.0"
50
- spec.add_dependency "dry-initializer", "~> 3.1"
51
- spec.add_dependency "dry-types", "~> 1.7"
52
- spec.add_dependency "phlex", "~> 1.10"
53
- spec.add_dependency "tailwind_merge", "~> 0.10"
49
+ spec.add_dependency "dry-initializer", "~> 3.2"
50
+ spec.add_dependency "dry-types", "~> 1.8"
51
+ spec.add_dependency "phlex", "~> 2"
52
+ spec.add_dependency "tailwind_merge", "~> 1"
54
53
 
55
54
  # For more information and examples about making a new gem, check out our
56
55
  # guide at: https://bundler.io/guides/creating_gem.html
metadata CHANGED
@@ -1,85 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nolan J Tait
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-09-04 00:00:00.000000000 Z
10
+ date: 2025-03-02 00:00:00.000000000 Z
12
11
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: dry-core
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.0'
27
12
  - !ruby/object:Gem::Dependency
28
13
  name: dry-initializer
29
14
  requirement: !ruby/object:Gem::Requirement
30
15
  requirements:
31
16
  - - "~>"
32
17
  - !ruby/object:Gem::Version
33
- version: '3.1'
18
+ version: '3.2'
34
19
  type: :runtime
35
20
  prerelease: false
36
21
  version_requirements: !ruby/object:Gem::Requirement
37
22
  requirements:
38
23
  - - "~>"
39
24
  - !ruby/object:Gem::Version
40
- version: '3.1'
25
+ version: '3.2'
41
26
  - !ruby/object:Gem::Dependency
42
27
  name: dry-types
43
28
  requirement: !ruby/object:Gem::Requirement
44
29
  requirements:
45
30
  - - "~>"
46
31
  - !ruby/object:Gem::Version
47
- version: '1.7'
32
+ version: '1.8'
48
33
  type: :runtime
49
34
  prerelease: false
50
35
  version_requirements: !ruby/object:Gem::Requirement
51
36
  requirements:
52
37
  - - "~>"
53
38
  - !ruby/object:Gem::Version
54
- version: '1.7'
39
+ version: '1.8'
55
40
  - !ruby/object:Gem::Dependency
56
41
  name: phlex
57
42
  requirement: !ruby/object:Gem::Requirement
58
43
  requirements:
59
44
  - - "~>"
60
45
  - !ruby/object:Gem::Version
61
- version: '1.10'
46
+ version: '2'
62
47
  type: :runtime
63
48
  prerelease: false
64
49
  version_requirements: !ruby/object:Gem::Requirement
65
50
  requirements:
66
51
  - - "~>"
67
52
  - !ruby/object:Gem::Version
68
- version: '1.10'
53
+ version: '2'
69
54
  - !ruby/object:Gem::Dependency
70
55
  name: tailwind_merge
71
56
  requirement: !ruby/object:Gem::Requirement
72
57
  requirements:
73
58
  - - "~>"
74
59
  - !ruby/object:Gem::Version
75
- version: '0.10'
60
+ version: '1'
76
61
  type: :runtime
77
62
  prerelease: false
78
63
  version_requirements: !ruby/object:Gem::Requirement
79
64
  requirements:
80
65
  - - "~>"
81
66
  - !ruby/object:Gem::Version
82
- version: '0.10'
67
+ version: '1'
83
68
  description: A UI component library built with phlex and daisyui
84
69
  email:
85
70
  - nolanjtait@gmail.com
@@ -106,6 +91,7 @@ files:
106
91
  - lib/protos/alert/icon.rb
107
92
  - lib/protos/attributes.rb
108
93
  - lib/protos/avatar.rb
94
+ - lib/protos/badge.rb
109
95
  - lib/protos/breadcrumbs.rb
110
96
  - lib/protos/breadcrumbs/crumb.rb
111
97
  - lib/protos/card.rb
@@ -126,7 +112,6 @@ files:
126
112
  - lib/protos/collapse/title.rb
127
113
  - lib/protos/combobox.rb
128
114
  - lib/protos/command.rb
129
- - lib/protos/command/dialog.rb
130
115
  - lib/protos/command/empty.rb
131
116
  - lib/protos/command/group.rb
132
117
  - lib/protos/command/input.rb
@@ -135,6 +120,9 @@ files:
135
120
  - lib/protos/command/title.rb
136
121
  - lib/protos/command/trigger.rb
137
122
  - lib/protos/component.rb
123
+ - lib/protos/diff.rb
124
+ - lib/protos/diff/item.rb
125
+ - lib/protos/diff/resizer.rb
138
126
  - lib/protos/drawer.rb
139
127
  - lib/protos/drawer/content.rb
140
128
  - lib/protos/drawer/side.rb
@@ -149,6 +137,8 @@ files:
149
137
  - lib/protos/hero/overlay.rb
150
138
  - lib/protos/list.rb
151
139
  - lib/protos/list/item.rb
140
+ - lib/protos/menu.rb
141
+ - lib/protos/menu/item.rb
152
142
  - lib/protos/mix.rb
153
143
  - lib/protos/modal.rb
154
144
  - lib/protos/modal/close_button.rb
@@ -164,6 +154,7 @@ files:
164
154
  - lib/protos/stats/stat.rb
165
155
  - lib/protos/stats/title.rb
166
156
  - lib/protos/stats/value.rb
157
+ - lib/protos/status.rb
167
158
  - lib/protos/steps.rb
168
159
  - lib/protos/steps/step.rb
169
160
  - lib/protos/swap.rb
@@ -179,6 +170,7 @@ files:
179
170
  - lib/protos/table/row.rb
180
171
  - lib/protos/tabs.rb
181
172
  - lib/protos/tabs/tab.rb
173
+ - lib/protos/tailwind_merge.rb
182
174
  - lib/protos/theme.rb
183
175
  - lib/protos/timeline.rb
184
176
  - lib/protos/timeline/center.rb
@@ -203,7 +195,6 @@ metadata:
203
195
  source_code_uri: https://github.com/inhouse-work/protos
204
196
  changelog_uri: https://github.com/inhouse-work/protos
205
197
  rubygems_mfa_required: 'true'
206
- post_install_message:
207
198
  rdoc_options: []
208
199
  require_paths:
209
200
  - lib
@@ -221,8 +212,7 @@ requirements:
221
212
  - tailwindcss
222
213
  - daisyui
223
214
  - protos-stimulus
224
- rubygems_version: 3.5.18
225
- signing_key:
215
+ rubygems_version: 3.6.2
226
216
  specification_version: 4
227
217
  summary: A UI component library built with phlex and daisyui
228
218
  test_files: []
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Protos
4
- class Command
5
- class Dialog < Component
6
- # DOCS: The dialog for a command wraps the command content and provides a
7
- # modal backdrop for the command when it is opened.
8
-
9
- def view_template(&block)
10
- dialog(**attrs) do
11
- div(class: css[:modal], &block)
12
- form(method: :dialog, class: css[:form]) do
13
- button { "close" }
14
- end
15
- end
16
- end
17
-
18
- private
19
-
20
- def default_attrs
21
- {
22
- data: { "protos--modal-target": "modal" }
23
- }
24
- end
25
-
26
- def theme
27
- {
28
- container: %w[
29
- modal
30
- modal-bottom
31
- backdrop-blur-sm
32
- sm:modal-middle
33
- ],
34
- modal: "modal-box p-0",
35
- form: "modal-backdrop"
36
- }
37
- end
38
- end
39
- end
40
- end