phlex_ui 0.0.4 → 0.0.5

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/lib/phlex_ui/alert/description.rb +17 -0
  3. data/lib/phlex_ui/alert/title.rb +17 -0
  4. data/lib/phlex_ui/alert.rb +36 -0
  5. data/lib/phlex_ui/alert_dialog/action.rb +17 -0
  6. data/lib/phlex_ui/alert_dialog/cancel.rb +21 -0
  7. data/lib/phlex_ui/alert_dialog/content.rb +45 -0
  8. data/lib/phlex_ui/alert_dialog/description.rb +17 -0
  9. data/lib/phlex_ui/alert_dialog/footer.rb +17 -0
  10. data/lib/phlex_ui/alert_dialog/header.rb +17 -0
  11. data/lib/phlex_ui/alert_dialog/title.rb +17 -0
  12. data/lib/phlex_ui/alert_dialog/trigger.rb +18 -0
  13. data/lib/phlex_ui/alert_dialog.rb +26 -0
  14. data/lib/phlex_ui/aspect_ratio.rb +33 -0
  15. data/lib/phlex_ui/avatar/fallback.rb +17 -0
  16. data/lib/phlex_ui/avatar/image.rb +26 -0
  17. data/lib/phlex_ui/avatar.rb +49 -0
  18. data/lib/phlex_ui/badge.rb +46 -62
  19. data/lib/phlex_ui/button.rb +86 -63
  20. data/lib/phlex_ui/card/content.rb +17 -0
  21. data/lib/phlex_ui/card/description.rb +17 -0
  22. data/lib/phlex_ui/card/footer.rb +17 -0
  23. data/lib/phlex_ui/card/header.rb +17 -0
  24. data/lib/phlex_ui/card/title.rb +17 -0
  25. data/lib/phlex_ui/card.rb +17 -0
  26. data/lib/phlex_ui/checkbox.rb +18 -0
  27. data/lib/phlex_ui/clipboard/popover.rb +36 -0
  28. data/lib/phlex_ui/clipboard/source.rb +19 -0
  29. data/lib/phlex_ui/clipboard/trigger.rb +20 -0
  30. data/lib/phlex_ui/clipboard.rb +39 -0
  31. data/lib/phlex_ui/codeblock.rb +105 -0
  32. data/lib/phlex_ui/collapsible/content.rb +18 -0
  33. data/lib/phlex_ui/collapsible/trigger.rb +19 -0
  34. data/lib/phlex_ui/collapsible.rb +25 -0
  35. data/lib/phlex_ui/context_menu/content.rb +25 -0
  36. data/lib/phlex_ui/context_menu/item.rb +66 -0
  37. data/lib/phlex_ui/context_menu/label.rb +24 -0
  38. data/lib/phlex_ui/context_menu/separator.rb +19 -0
  39. data/lib/phlex_ui/context_menu/trigger.rb +20 -0
  40. data/lib/phlex_ui/context_menu.rb +26 -0
  41. data/lib/phlex_ui/dialog/content.rb +78 -0
  42. data/lib/phlex_ui/dialog/description.rb +17 -0
  43. data/lib/phlex_ui/dialog/footer.rb +17 -0
  44. data/lib/phlex_ui/dialog/header.rb +17 -0
  45. data/lib/phlex_ui/dialog/middle.rb +17 -0
  46. data/lib/phlex_ui/dialog/title.rb +17 -0
  47. data/lib/phlex_ui/dialog/trigger.rb +19 -0
  48. data/lib/phlex_ui/dialog.rb +25 -0
  49. data/lib/phlex_ui/dropdown_menu/content.rb +22 -0
  50. data/lib/phlex_ui/dropdown_menu/item.rb +28 -0
  51. data/lib/phlex_ui/dropdown_menu/label.rb +17 -0
  52. data/lib/phlex_ui/dropdown_menu/separator.rb +19 -0
  53. data/lib/phlex_ui/dropdown_menu/trigger.rb +17 -0
  54. data/lib/phlex_ui/dropdown_menu.rb +26 -0
  55. data/lib/phlex_ui/form/item.rb +17 -0
  56. data/lib/phlex_ui/form/spacer.rb +17 -0
  57. data/lib/phlex_ui/form.rb +34 -0
  58. data/lib/phlex_ui/hint.rb +17 -0
  59. data/lib/phlex_ui/hover_card/content.rb +22 -0
  60. data/lib/phlex_ui/hover_card/trigger.rb +19 -0
  61. data/lib/phlex_ui/hover_card.rb +27 -0
  62. data/lib/phlex_ui/input.rb +29 -0
  63. data/lib/phlex_ui/input_error.rb +17 -0
  64. data/lib/phlex_ui/label.rb +17 -0
  65. data/lib/phlex_ui/link.rb +97 -0
  66. data/lib/phlex_ui/popover/content.rb +22 -0
  67. data/lib/phlex_ui/popover/trigger.rb +19 -0
  68. data/lib/phlex_ui/popover.rb +25 -0
  69. data/lib/phlex_ui/shortcut_key.rb +17 -0
  70. data/lib/phlex_ui/table/body.rb +17 -0
  71. data/lib/phlex_ui/table/builder.rb +77 -0
  72. data/lib/phlex_ui/table/caption.rb +17 -0
  73. data/lib/phlex_ui/table/cell.rb +17 -0
  74. data/lib/phlex_ui/table/footer.rb +17 -0
  75. data/lib/phlex_ui/table/head.rb +17 -0
  76. data/lib/phlex_ui/table/header.rb +17 -0
  77. data/lib/phlex_ui/table/row.rb +17 -0
  78. data/lib/phlex_ui/table.rb +19 -0
  79. data/lib/phlex_ui/tabs/content.rb +26 -0
  80. data/lib/phlex_ui/tabs/list.rb +17 -0
  81. data/lib/phlex_ui/tabs/trigger.rb +28 -0
  82. data/lib/phlex_ui/tabs.rb +25 -0
  83. data/lib/phlex_ui/theme_toggle.rb +41 -0
  84. data/lib/phlex_ui/tooltip/content.rb +22 -0
  85. data/lib/phlex_ui/tooltip/trigger.rb +17 -0
  86. data/lib/phlex_ui/tooltip.rb +25 -0
  87. data/lib/phlex_ui/typography/blockquote.rb +17 -0
  88. data/lib/phlex_ui/typography/h1.rb +17 -0
  89. data/lib/phlex_ui/typography/h2.rb +17 -0
  90. data/lib/phlex_ui/typography/h3.rb +17 -0
  91. data/lib/phlex_ui/typography/h4.rb +17 -0
  92. data/lib/phlex_ui/typography/inline_code.rb +17 -0
  93. data/lib/phlex_ui/typography/large.rb +17 -0
  94. data/lib/phlex_ui/typography/lead.rb +17 -0
  95. data/lib/phlex_ui/typography/list.rb +47 -0
  96. data/lib/phlex_ui/typography/list_item.rb +17 -0
  97. data/lib/phlex_ui/typography/muted.rb +17 -0
  98. data/lib/phlex_ui/typography/p.rb +17 -0
  99. data/lib/phlex_ui/typography/small.rb +17 -0
  100. metadata +112 -2
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::H3 < Base
5
+ def template(&)
6
+ h3(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "scroll-m-20 text-2xl font-semibold tracking-tight"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::H4 < Base
5
+ def template(&)
6
+ h4(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "scroll-m-20 text-lg font-medium tracking-tight"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::InlineCode < Base
5
+ def template(&)
6
+ code(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "relative rounded bg-muted-background px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::Large < Base
5
+ def template(&)
6
+ div(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "text-lg font-semibold"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::Lead < Base
5
+ def template(&)
6
+ p(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "text-xl text-muted-text"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::List < Base
5
+ def initialize(items: [], numbered: false, **attrs)
6
+ @items = items
7
+ @numbered = numbered
8
+ super(**attrs)
9
+ end
10
+
11
+ def template(&)
12
+ if @items.empty?
13
+ list(**attrs, &)
14
+ else
15
+ list(**attrs) do
16
+ @items.each do |item|
17
+ render PhlexUI::Typography::ListItem.new { item }
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def list(**attrs, &)
26
+ if numbered?
27
+ ol(**attrs, &)
28
+ else
29
+ ul(**attrs, &)
30
+ end
31
+ end
32
+
33
+ def numbered? = @numbered
34
+
35
+ def not_numbered? = !numbered?
36
+
37
+ def default_attrs
38
+ {
39
+ class: tokens(
40
+ "my-6 ml-6 [&>li]:mt-2 indent-2",
41
+ numbered?: "list-decimal marker:font-medium",
42
+ not_numbered?: "list-disc"
43
+ )
44
+ }
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::ListItem < Base
5
+ def template(&)
6
+ li(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "leading-7"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::Muted < Base
5
+ def template(&)
6
+ p(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "text-sm text-muted-text"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::P < Base
5
+ def template(&)
6
+ p(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "leading-7 [&:not(:first-child)]:mt-6"
14
+ }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PhlexUI
4
+ class Typography::Small < Base
5
+ def template(&)
6
+ small(**attrs, &)
7
+ end
8
+
9
+ private
10
+
11
+ def default_attrs
12
+ {
13
+ class: "text-sm font-medium leading-none"
14
+ }
15
+ end
16
+ end
17
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlex_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - George Kettle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-10 00:00:00.000000000 Z
11
+ date: 2023-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rouge
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 4.2.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 4.2.0
41
55
  description: PhlexUI is a UI Component Library for Ruby developers. Built on top of
42
56
  the Phlex Framework.
43
57
  email: george.kettle@icloud.com
@@ -53,10 +67,106 @@ files:
53
67
  - lib/phlex_ui/accordion/icon.rb
54
68
  - lib/phlex_ui/accordion/item.rb
55
69
  - lib/phlex_ui/accordion/trigger.rb
70
+ - lib/phlex_ui/alert.rb
71
+ - lib/phlex_ui/alert/description.rb
72
+ - lib/phlex_ui/alert/title.rb
73
+ - lib/phlex_ui/alert_dialog.rb
74
+ - lib/phlex_ui/alert_dialog/action.rb
75
+ - lib/phlex_ui/alert_dialog/cancel.rb
76
+ - lib/phlex_ui/alert_dialog/content.rb
77
+ - lib/phlex_ui/alert_dialog/description.rb
78
+ - lib/phlex_ui/alert_dialog/footer.rb
79
+ - lib/phlex_ui/alert_dialog/header.rb
80
+ - lib/phlex_ui/alert_dialog/title.rb
81
+ - lib/phlex_ui/alert_dialog/trigger.rb
82
+ - lib/phlex_ui/aspect_ratio.rb
56
83
  - lib/phlex_ui/attribute_merger.rb
84
+ - lib/phlex_ui/avatar.rb
85
+ - lib/phlex_ui/avatar/fallback.rb
86
+ - lib/phlex_ui/avatar/image.rb
57
87
  - lib/phlex_ui/badge.rb
58
88
  - lib/phlex_ui/base.rb
59
89
  - lib/phlex_ui/button.rb
90
+ - lib/phlex_ui/card.rb
91
+ - lib/phlex_ui/card/content.rb
92
+ - lib/phlex_ui/card/description.rb
93
+ - lib/phlex_ui/card/footer.rb
94
+ - lib/phlex_ui/card/header.rb
95
+ - lib/phlex_ui/card/title.rb
96
+ - lib/phlex_ui/checkbox.rb
97
+ - lib/phlex_ui/clipboard.rb
98
+ - lib/phlex_ui/clipboard/popover.rb
99
+ - lib/phlex_ui/clipboard/source.rb
100
+ - lib/phlex_ui/clipboard/trigger.rb
101
+ - lib/phlex_ui/codeblock.rb
102
+ - lib/phlex_ui/collapsible.rb
103
+ - lib/phlex_ui/collapsible/content.rb
104
+ - lib/phlex_ui/collapsible/trigger.rb
105
+ - lib/phlex_ui/context_menu.rb
106
+ - lib/phlex_ui/context_menu/content.rb
107
+ - lib/phlex_ui/context_menu/item.rb
108
+ - lib/phlex_ui/context_menu/label.rb
109
+ - lib/phlex_ui/context_menu/separator.rb
110
+ - lib/phlex_ui/context_menu/trigger.rb
111
+ - lib/phlex_ui/dialog.rb
112
+ - lib/phlex_ui/dialog/content.rb
113
+ - lib/phlex_ui/dialog/description.rb
114
+ - lib/phlex_ui/dialog/footer.rb
115
+ - lib/phlex_ui/dialog/header.rb
116
+ - lib/phlex_ui/dialog/middle.rb
117
+ - lib/phlex_ui/dialog/title.rb
118
+ - lib/phlex_ui/dialog/trigger.rb
119
+ - lib/phlex_ui/dropdown_menu.rb
120
+ - lib/phlex_ui/dropdown_menu/content.rb
121
+ - lib/phlex_ui/dropdown_menu/item.rb
122
+ - lib/phlex_ui/dropdown_menu/label.rb
123
+ - lib/phlex_ui/dropdown_menu/separator.rb
124
+ - lib/phlex_ui/dropdown_menu/trigger.rb
125
+ - lib/phlex_ui/form.rb
126
+ - lib/phlex_ui/form/item.rb
127
+ - lib/phlex_ui/form/spacer.rb
128
+ - lib/phlex_ui/hint.rb
129
+ - lib/phlex_ui/hover_card.rb
130
+ - lib/phlex_ui/hover_card/content.rb
131
+ - lib/phlex_ui/hover_card/trigger.rb
132
+ - lib/phlex_ui/input.rb
133
+ - lib/phlex_ui/input_error.rb
134
+ - lib/phlex_ui/label.rb
135
+ - lib/phlex_ui/link.rb
136
+ - lib/phlex_ui/popover.rb
137
+ - lib/phlex_ui/popover/content.rb
138
+ - lib/phlex_ui/popover/trigger.rb
139
+ - lib/phlex_ui/shortcut_key.rb
140
+ - lib/phlex_ui/table.rb
141
+ - lib/phlex_ui/table/body.rb
142
+ - lib/phlex_ui/table/builder.rb
143
+ - lib/phlex_ui/table/caption.rb
144
+ - lib/phlex_ui/table/cell.rb
145
+ - lib/phlex_ui/table/footer.rb
146
+ - lib/phlex_ui/table/head.rb
147
+ - lib/phlex_ui/table/header.rb
148
+ - lib/phlex_ui/table/row.rb
149
+ - lib/phlex_ui/tabs.rb
150
+ - lib/phlex_ui/tabs/content.rb
151
+ - lib/phlex_ui/tabs/list.rb
152
+ - lib/phlex_ui/tabs/trigger.rb
153
+ - lib/phlex_ui/theme_toggle.rb
154
+ - lib/phlex_ui/tooltip.rb
155
+ - lib/phlex_ui/tooltip/content.rb
156
+ - lib/phlex_ui/tooltip/trigger.rb
157
+ - lib/phlex_ui/typography/blockquote.rb
158
+ - lib/phlex_ui/typography/h1.rb
159
+ - lib/phlex_ui/typography/h2.rb
160
+ - lib/phlex_ui/typography/h3.rb
161
+ - lib/phlex_ui/typography/h4.rb
162
+ - lib/phlex_ui/typography/inline_code.rb
163
+ - lib/phlex_ui/typography/large.rb
164
+ - lib/phlex_ui/typography/lead.rb
165
+ - lib/phlex_ui/typography/list.rb
166
+ - lib/phlex_ui/typography/list_item.rb
167
+ - lib/phlex_ui/typography/muted.rb
168
+ - lib/phlex_ui/typography/p.rb
169
+ - lib/phlex_ui/typography/small.rb
60
170
  homepage: https://rubygems.org/gems/phlex_ui
61
171
  licenses:
62
172
  - MIT