ariadne_view_components 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +68 -0
  4. data/app/assets/javascripts/ariadne_view_components.js +2 -0
  5. data/app/assets/javascripts/ariadne_view_components.js.map +1 -0
  6. data/app/assets/stylesheets/application.tailwind.css +3 -0
  7. data/app/components/ariadne/ariadne.ts +14 -0
  8. data/app/components/ariadne/base_button.rb +60 -0
  9. data/app/components/ariadne/base_component.rb +155 -0
  10. data/app/components/ariadne/button_component.html.erb +4 -0
  11. data/app/components/ariadne/button_component.rb +158 -0
  12. data/app/components/ariadne/clipboard_copy_component.html.erb +8 -0
  13. data/app/components/ariadne/clipboard_copy_component.rb +50 -0
  14. data/app/components/ariadne/clipboard_copy_component.ts +19 -0
  15. data/app/components/ariadne/component.rb +123 -0
  16. data/app/components/ariadne/content.rb +12 -0
  17. data/app/components/ariadne/counter_component.rb +100 -0
  18. data/app/components/ariadne/flash_component.html.erb +31 -0
  19. data/app/components/ariadne/flash_component.rb +125 -0
  20. data/app/components/ariadne/heading_component.rb +49 -0
  21. data/app/components/ariadne/heroicon_component.html.erb +7 -0
  22. data/app/components/ariadne/heroicon_component.rb +116 -0
  23. data/app/components/ariadne/image_component.rb +51 -0
  24. data/app/components/ariadne/text.rb +25 -0
  25. data/app/components/ariadne/tooltip_component.rb +105 -0
  26. data/app/lib/ariadne/audited/dsl.rb +32 -0
  27. data/app/lib/ariadne/class_name_helper.rb +22 -0
  28. data/app/lib/ariadne/fetch_or_fallback_helper.rb +100 -0
  29. data/app/lib/ariadne/icon_helper.rb +47 -0
  30. data/app/lib/ariadne/join_style_arguments_helper.rb +14 -0
  31. data/app/lib/ariadne/logger_helper.rb +23 -0
  32. data/app/lib/ariadne/status/dsl.rb +41 -0
  33. data/app/lib/ariadne/tab_nav_helper.rb +35 -0
  34. data/app/lib/ariadne/tabbed_component_helper.rb +39 -0
  35. data/app/lib/ariadne/test_selector_helper.rb +20 -0
  36. data/app/lib/ariadne/underline_nav_helper.rb +44 -0
  37. data/app/lib/ariadne/view_helper.rb +22 -0
  38. data/lib/ariadne/classify/utilities.rb +199 -0
  39. data/lib/ariadne/classify/utilities.yml +1817 -0
  40. data/lib/ariadne/classify/validation.rb +18 -0
  41. data/lib/ariadne/classify.rb +210 -0
  42. data/lib/ariadne/view_components/constants.rb +53 -0
  43. data/lib/ariadne/view_components/engine.rb +30 -0
  44. data/lib/ariadne/view_components/linters.rb +3 -0
  45. data/lib/ariadne/view_components/statuses.rb +14 -0
  46. data/lib/ariadne/view_components/version.rb +7 -0
  47. data/lib/ariadne/view_components.rb +59 -0
  48. data/lib/rubocop/config/default.yml +14 -0
  49. data/lib/rubocop/cop/ariadne/ariadne_heroicon.rb +252 -0
  50. data/lib/rubocop/cop/ariadne/base_cop.rb +26 -0
  51. data/lib/rubocop/cop/ariadne/component_name_migration.rb +35 -0
  52. data/lib/rubocop/cop/ariadne/no_tag_memoize.rb +43 -0
  53. data/lib/rubocop/cop/ariadne/system_argument_instead_of_class.rb +57 -0
  54. data/lib/rubocop/cop/ariadne.rb +3 -0
  55. data/lib/tasks/ariadne_view_components.rake +47 -0
  56. data/lib/tasks/coverage.rake +19 -0
  57. data/lib/tasks/custom_utilities.yml +310 -0
  58. data/lib/tasks/docs.rake +525 -0
  59. data/lib/tasks/helpers/ast_processor.rb +44 -0
  60. data/lib/tasks/helpers/ast_traverser.rb +77 -0
  61. data/lib/tasks/static.rake +15 -0
  62. data/lib/tasks/tailwind.rake +31 -0
  63. data/lib/tasks/utilities.rake +121 -0
  64. data/lib/yard/docs_helper.rb +83 -0
  65. data/lib/yard/renders_many_handler.rb +19 -0
  66. data/lib/yard/renders_one_handler.rb +19 -0
  67. data/static/arguments.yml +251 -0
  68. data/static/assets/view-components.svg +18 -0
  69. data/static/audited_at.json +14 -0
  70. data/static/classes.yml +89 -0
  71. data/static/constants.json +243 -0
  72. data/static/statuses.json +14 -0
  73. data/static/tailwindcss.yml +727 -0
  74. metadata +193 -0
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :utilities do
4
+ desc "Generate CSS utility classes"
5
+ task :build do
6
+ require "yaml"
7
+ require "json"
8
+ require File.expand_path("./../../lookbook/config/environment.rb", __dir__)
9
+ require "ariadne/classify/utilities"
10
+
11
+ # Keys that are looked for to be included in the utilities.yml file
12
+ SUPPORTED_KEYS = [
13
+ /^anim\b/,
14
+ /^color-bg\b/,
15
+ /^color-border\b/,
16
+ /^color-fg\b/,
17
+ /^col\b/,
18
+ /^container\b/,
19
+ /^clearfix\b/,
20
+ /^d\b/,
21
+ /^float\b/,
22
+ /^height\b/,
23
+ /^hide\b/,
24
+ /^m[trblxy]?\b/,
25
+ /^p[trblxy]?\b/,
26
+ /^position\b/,
27
+ /^wb\b/,
28
+ /^width\b/,
29
+ /^v\b/,
30
+ ].freeze
31
+
32
+ BREAKPOINTS = [nil, "sm", "md", "lg", "xl"].freeze
33
+ utility_data =
34
+ JSON.parse(
35
+ File.read(
36
+ File.expand_path(File.join("..", "..", "node_modules", "@primer", "css", "dist", "stats", "utilities.json"), __dir__)
37
+ )
38
+ )["selectors"]["values"]
39
+
40
+ custom_utility_data = YAML.load_file(
41
+ File.join(__dir__, "custom_utilities.yml")
42
+ )
43
+
44
+ layout_data =
45
+ JSON.parse(
46
+ File.read(
47
+ File.expand_path(File.join("..", "..", "node_modules", "@primer", "css", "dist", "stats", "layout.json"), __dir__)
48
+ )
49
+ )["selectors"]["values"]
50
+
51
+ css_data = utility_data + layout_data
52
+
53
+ output = {}
54
+
55
+ css_data.each do |selector|
56
+ selector.sub!(/^./, "")
57
+ selector.sub!(/:[^\s]*$/, "")
58
+
59
+ # Next if selector has ancestors or sibling selectors
60
+ next if selector.match?(/[:><~\[.]/)
61
+ next unless SUPPORTED_KEYS.any? { |key| selector =~ key }
62
+
63
+ # Dupe so we still have the selector at the end of slicing it up
64
+ classname = selector.dup
65
+ key = ""
66
+
67
+ # Look for a replacement key
68
+ Ariadne::Classify::Utilities::REPLACEMENT_KEYS.each do |k, v|
69
+ next unless classname.match?(Regexp.new(k))
70
+
71
+ key = v
72
+ classname.sub!(Regexp.new("#{k}-"), "")
73
+ end
74
+
75
+ # If we didn't find a replacement, grab the first text before hyphen
76
+ if classname == selector
77
+ key = classname.split("-").first
78
+ classname.sub!(/^[^-]+-/, "")
79
+ end
80
+
81
+ # Check if the next bit of the classname is a breakpoint
82
+ if classname.match?(/^(sm-|md-|lg-|xl-)/)
83
+ breakpoint = classname.split("-").first
84
+ classname.sub!(/^[^-]+-/, "")
85
+ end
86
+
87
+ # Change the rest from hyphens to underscores
88
+ classname.sub!(/-/, "_")
89
+
90
+ # convert padding/margin negative values ie n7 to -7
91
+ classname.sub!(/^n/, "-") if classname.match?(/^n[0-9]/)
92
+
93
+ # If key and classname are equal, then classname is boolean
94
+ classname = true if key == classname
95
+
96
+ key = key.to_sym
97
+
98
+ if classname.is_a?(String)
99
+ classname = classname.match?(/\A[-+]?[0-9]+\z/) ? classname.to_i : classname.to_sym
100
+ end
101
+
102
+ if output[key].nil?
103
+ output[key] = { classname => Array.new(5, nil) }
104
+ elsif output[key][classname].nil?
105
+ output[key][classname] = Array.new(5, nil)
106
+ end
107
+
108
+ output[key][classname][BREAKPOINTS.index(breakpoint)] = selector
109
+ end
110
+
111
+ output.transform_values! do |x|
112
+ x.transform_values { |y| y.reverse.drop_while(&:nil?).reverse }
113
+ end
114
+
115
+ output.merge!(custom_utility_data)
116
+
117
+ File.open("lib/ariadne/classify/utilities.yml", "w") do |f|
118
+ f.puts YAML.dump(output)
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :nocov:
4
+
5
+ module YARD
6
+ # Helper methods to use for yard documentation
7
+ module DocsHelper
8
+ def one_of(enumerable, lower: false, sort: true)
9
+ # Sort the array if requested
10
+ if sort
11
+ enumerable = enumerable.sort do |a, b|
12
+ a.instance_of?(b.class) ? a <=> b : a.class.to_s <=> b.class.to_s
13
+ end
14
+ end
15
+
16
+ values =
17
+ case enumerable
18
+ when Hash
19
+ enumerable.map do |key, value|
20
+ "#{pretty_value(key)} (#{pretty_value(value)})"
21
+ end
22
+ else
23
+ enumerable.map do |key|
24
+ pretty_value(key)
25
+ end
26
+ end
27
+
28
+ prefix = "One of"
29
+ prefix = prefix.downcase if lower
30
+
31
+ "#{prefix} #{values.to_sentence(last_word_connector: ", or ")}."
32
+ end
33
+
34
+ def link_to_accessibility
35
+ "[Accessibility](#accessibility)"
36
+ end
37
+
38
+ def link_to_classes_docs
39
+ "[Classes and attributes](/classes-attributes)"
40
+ end
41
+
42
+ def link_to_attributes_docs
43
+ "[Classes and attributes](/classes-attributes)"
44
+ end
45
+
46
+ def link_to_typography_docs
47
+ "[Typography](/system-arguments#typography)"
48
+ end
49
+
50
+ def link_to_component(component)
51
+ (status_module, short_name) = status_module_and_short_name(component)
52
+ status_path = status_module.nil? ? "" : "/"
53
+
54
+ "[#{short_name}](/components/#{status_path}#{short_name.downcase})"
55
+ end
56
+
57
+ def link_to_heroicons
58
+ "[Heroicon](https://ariadne.style/heroicons/)"
59
+ end
60
+
61
+ def link_to_heading_practices
62
+ "[Learn more about best heading practices (WAI Headings)](https://www.w3.org/WAI/tutorials/page-structure/headings/)"
63
+ end
64
+
65
+ def status_module_and_short_name(component)
66
+ name_with_status = component.name.gsub(/Ariadne::|Component/, "")
67
+
68
+ m = name_with_status.match(/(?<status>Beta|Alpha|Deprecated)?(?<_colons>::)?(?<name>.*)/)
69
+ [m[:status]&.downcase, m[:name].gsub("::", "")]
70
+ end
71
+
72
+ def pretty_value(val)
73
+ case val
74
+ when nil
75
+ "`nil`"
76
+ when Symbol
77
+ "`:#{val}`"
78
+ else
79
+ "`#{val}`"
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YARD
4
+ # YARD Handler to parse `renders_many` calls.
5
+ class RendersManyHandler < YARD::Handlers::Ruby::Base
6
+ handles method_call(:renders_many)
7
+ namespace_only
8
+
9
+ process do
10
+ name = statement.parameters.first.jump(:tstring_content, :ident).source
11
+ object = YARD::CodeObjects::MethodObject.new(namespace, name)
12
+ register(object)
13
+ parse_block(statement.last, owner: object)
14
+
15
+ object.dynamic = true
16
+ object[:renders_many] = true
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YARD
4
+ # YARD Handler to parse `renders_one` calls.
5
+ class RendersOneHandler < YARD::Handlers::Ruby::Base
6
+ handles method_call(:renders_one)
7
+ namespace_only
8
+
9
+ process do
10
+ name = statement.parameters.first.jump(:tstring_content, :ident).source
11
+ object = YARD::CodeObjects::MethodObject.new(namespace, name)
12
+ register(object)
13
+ parse_block(statement.last, owner: object)
14
+
15
+ object.dynamic = true
16
+ object[:renders_one] = true
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,251 @@
1
+ ---
2
+ - component: BaseButton
3
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/base_button.rb
4
+ parameters:
5
+ - name: tag
6
+ type: Symbol
7
+ default: "`:button`"
8
+ description: One of `:a`, `:button`, or `:summary`.
9
+ - name: type
10
+ type: Symbol
11
+ default: "`:button`"
12
+ description: One of `:button`, `:reset`, or `:submit`.
13
+ - name: size
14
+ type: Symbol
15
+ default: "`:m`"
16
+ description: One of `:l`, `:m`, `:s`, `:xl`, or `:xs`.
17
+ - name: classes
18
+ type: String
19
+ default: '`""`'
20
+ description: "[Classes and attributes](/classes-attributes)"
21
+ - name: attributes
22
+ type: Hash
23
+ default: "`{}`"
24
+ description: "[Classes and attributes](/classes-attributes)"
25
+ - component: Button
26
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/button_component.rb
27
+ parameters:
28
+ - name: tag
29
+ type: Symbol
30
+ default: "`:button`"
31
+ description: One of `:a`, `:button`, or `:summary`.
32
+ - name: scheme
33
+ type: Symbol
34
+ default: "`:default`"
35
+ description: One of `:danger`, `:default`, `:info`, `:success`, or `:warning`.
36
+ - name: size
37
+ type: Symbol
38
+ default: "`BaseButton::DEFAULT_SIZE`"
39
+ description: One of `:l`, `:m`, `:s`, `:xl`, or `:xs`.
40
+ - name: type
41
+ type: Symbol
42
+ default: N/A
43
+ description: One of `:button`, `:reset`, or `:submit`.
44
+ - name: classes
45
+ type: String
46
+ default: '`""`'
47
+ description: "[Classes and attributes](/classes-attributes)"
48
+ - name: attributes
49
+ type: Hash
50
+ default: "`{}`"
51
+ description: "[Classes and attributes](/classes-attributes)"
52
+ - component: ClipboardCopy
53
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/clipboard_copy_component.rb
54
+ parameters:
55
+ - name: tag
56
+ type: Symbol, String
57
+ default: "`:clipboard-copy`"
58
+ description: The rendered tag name
59
+ - name: classes
60
+ type: String
61
+ default: '`""`'
62
+ description: "[Classes and attributes](/classes-attributes)"
63
+ - name: value
64
+ type: String
65
+ default: '`""`'
66
+ description: Text to copy into the users clipboard when they click the component.
67
+ - name: aria_label
68
+ type: String
69
+ default: '`""`'
70
+ description: Text for accessibility. Can also be passed in as part of `attributes`,
71
+ but it must be present.
72
+ - name: attributes
73
+ type: Hash
74
+ default: "`{}`"
75
+ description: "[Classes and attributes](/classes-attributes)"
76
+ - component: Counter
77
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/counter_component.rb
78
+ parameters:
79
+ - name: tag
80
+ type: Symbol, String
81
+ default: "`:span`"
82
+ description: The rendered tag name
83
+ - name: classes
84
+ type: String
85
+ default: '`""`'
86
+ description: "[Classes and attributes](/classes-attributes)"
87
+ - name: count
88
+ type: Integer, Float::INFINITY, nil
89
+ default: "`0`"
90
+ description: 'The number to be displayed (e.x. # of issues, pull requests)'
91
+ - name: limit
92
+ type: Integer, nil
93
+ default: "`9_000`"
94
+ description: Maximum value to display. Pass `nil` for no limit. (e.x. if `count`
95
+ == 6,000 and `limit` == 5000, counter will display "5,000+")
96
+ - name: hide_if_zero
97
+ type: Boolean
98
+ default: "`false`"
99
+ description: If true, a `hidden` attribute is added to the counter if `count`
100
+ is zero.
101
+ - name: text
102
+ type: String
103
+ default: '`""`'
104
+ description: Text to display instead of count.
105
+ - name: round
106
+ type: Boolean
107
+ default: "`false`"
108
+ description: Whether to apply rounding logic to value.
109
+ - name: attributes
110
+ type: Hash
111
+ default: "`{}`"
112
+ description: "[Classes and attributes](/classes-attributes)"
113
+ - component: Flash
114
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/flash_component.rb
115
+ parameters:
116
+ - name: tag
117
+ type: Symbol, String
118
+ default: "`:div`"
119
+ description: The rendered tag name.
120
+ - name: dismissible
121
+ type: Boolean
122
+ default: "`false`"
123
+ description: Whether the component can be dismissed with an X button.
124
+ - name: icon
125
+ type: Symbol, String
126
+ default: N/A
127
+ description: Name of [Heroicon](https://ariadne.style/heroicons/) to use.
128
+ - name: scheme
129
+ type: Symbol
130
+ default: "`:default`"
131
+ description: One of `:danger`, `:default`, `:info`, `:success`, or `:warning`.
132
+ - name: classes
133
+ type: String
134
+ default: '`""`'
135
+ description: "[Classes and attributes](/classes-attributes)"
136
+ - name: attributes
137
+ type: Hash
138
+ default: "`{}`"
139
+ description: "[Classes and attributes](/classes-attributes)"
140
+ - component: Heading
141
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/heading_component.rb
142
+ parameters:
143
+ - name: tag
144
+ type: String
145
+ default: "`nil`"
146
+ description: One of `:h1`, `:h2`, `:h3`, `:h4`, `:h5`, or `:h6`.
147
+ - name: classes
148
+ type: String
149
+ default: '`""`'
150
+ description: "[Classes and attributes](/classes-attributes)"
151
+ - name: attributes
152
+ type: Hash
153
+ default: "`{}`"
154
+ description: "[Classes and attributes](/classes-attributes)"
155
+ - component: Heroicon
156
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/heroicon_component.rb
157
+ parameters:
158
+ - name: tag
159
+ type: Symbol, String
160
+ default: "`:svg`"
161
+ description: The rendered tag name
162
+ - name: classes
163
+ type: String
164
+ default: '`""`'
165
+ description: "[Classes and attributes](/classes-attributes)"
166
+ - name: icon
167
+ type: Symbol, String
168
+ default: N/A
169
+ description: Name of [Heroicon](https://ariadne.style/heroicons/) to use.
170
+ - name: variant
171
+ type: String
172
+ default: N/A
173
+ description: One of `outline` and `solid`.
174
+ - name: size
175
+ type: Symbol
176
+ default: "`:small`"
177
+ description: One of `:small` (`16`) and `:medium` (`24`).
178
+ - name: attributes
179
+ type: Hash
180
+ default: "`{}`"
181
+ description: "[Classes and attributes](/classes-attributes)"
182
+ - component: Image
183
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/image_component.rb
184
+ parameters:
185
+ - name: tag
186
+ type: Symbol, String
187
+ default: "`:img`"
188
+ description: The rendered tag name
189
+ - name: classes
190
+ type: String
191
+ default: '`""`'
192
+ description: "[Classes and attributes](/classes-attributes)"
193
+ - name: src
194
+ type: String
195
+ default: N/A
196
+ description: The source url of the image.
197
+ - name: alt
198
+ type: String
199
+ default: N/A
200
+ description: Specifies an alternate text for the image.
201
+ - name: lazy
202
+ type: Boolean
203
+ default: "`false`"
204
+ description: Whether or not to lazily load the image.
205
+ - name: attributes
206
+ type: Hash
207
+ default: "`{}`"
208
+ description: "[Classes and attributes](/classes-attributes)"
209
+ - component: Text
210
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/text.rb
211
+ parameters:
212
+ - name: tag
213
+ type: Symbol, String
214
+ default: "`:span`"
215
+ description: The rendered tag name
216
+ - name: classes
217
+ type: String
218
+ default: '`""`'
219
+ description: "[Classes and attributes](/classes-attributes)"
220
+ - name: attributes
221
+ type: Hash
222
+ default: "`{}`"
223
+ description: "[Classes and attributes](/classes-attributes)"
224
+ - component: Tooltip
225
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/tooltip_component.rb
226
+ parameters:
227
+ - name: tag
228
+ type: Symbol, String
229
+ default: '`:"tool-tip"`'
230
+ description: The rendered tag name
231
+ - name: type
232
+ type: Symbol
233
+ default: "`:description`"
234
+ description: One of `:description` and `:label`.
235
+ - name: text
236
+ type: String
237
+ default: N/A
238
+ description: The text content of the tooltip. This should be brief and no longer
239
+ than a sentence.
240
+ - name: direction
241
+ type: Symbol
242
+ default: "`:s`"
243
+ description: One of `:e`, `:n`, `:ne`, `:nw`, `:s`, `:se`, `:sw`, or `:w`.
244
+ - name: classes
245
+ type: String
246
+ default: '`""`'
247
+ description: "[Classes and attributes](/classes-attributes)"
248
+ - name: attributes
249
+ type: Hash
250
+ default: "`{}`"
251
+ description: "[Classes and attributes](/classes-attributes)"
@@ -0,0 +1,18 @@
1
+ <svg width="400" height="220" viewBox="0 0 400 220" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="400" height="220" fill="#1B1F23"/>
3
+ <rect x="115" y="25" width="170" height="170" fill="#1B1F23" stroke="#79B8FF"/>
4
+ <circle cx="130.597" cy="117.49" r="3.66652" stroke="#C8E1FF"/>
5
+ <circle cx="255.666" cy="92.6387" r="7.33303" fill="#1B1F23" stroke="#C8E1FF"/>
6
+ <rect x="222.26" y="161.673" width="20.3695" height="16.2956" fill="#044289"/>
7
+ <rect x="205" y="162" width="12" height="16" fill="#044289"/>
8
+ <rect x="258.925" y="161.673" width="28.5173" height="16.2956" fill="#044289"/>
9
+ <rect x="106" y="66" width="49" height="17" fill="#005CC5"/>
10
+ <path d="M165.632 51.8996C220.5 29.5 263.42 80.2095 206 99C148.58 117.791 174.28 166.185 222.259 136.23C253 117.037 262.499 142.847 249.962 152.118" stroke="#C8E1FF"/>
11
+ <path d="M241.203 61.677L238.555 56.7883L241.203 51.8997L246.499 51.8997L249.147 56.7883L246.499 61.677H241.203Z" stroke="#2188FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
12
+ <path d="M157.892 170.45L151.374 170.45L154.633 164.747L157.892 170.45Z" stroke="#2188FF" stroke-width="2" stroke-linejoin="round"/>
13
+ <path d="M228.37 111.379C226.293 111.379 226.293 107.305 224.215 107.305C222.137 107.305 222.137 111.379 220.059 111.379C217.982 111.379 217.982 107.305 215.904 107.305C213.826 107.305 213.826 111.379 211.749 111.379C209.671 111.379 209.671 107.305 207.593 107.305" stroke="#2188FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
14
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M151.954 65H145.75C144.784 65 144 64.2165 144 63.25V51.75C144 50.7835 144.784 50 145.75 50H164.25C165.216 50 166 50.7835 166 51.75V63.25C166 64.2165 165.216 65 164.25 65H158.046C158.217 66.3751 158.851 67.6522 159.815 68.7568C160.008 68.9784 160.054 69.2926 159.933 69.5604C159.811 69.8281 159.544 70 159.25 70H150.75C150.456 70 150.189 69.8281 150.067 69.5604C149.945 69.2926 149.991 68.9784 150.185 68.7568C151.149 67.6522 151.783 66.3751 151.954 65ZM164.5 51.75V63.25C164.5 63.3881 164.388 63.5 164.25 63.5H145.75C145.612 63.5 145.5 63.3881 145.5 63.25V51.75C145.5 51.6119 145.612 51.5 145.75 51.5H164.25C164.388 51.5 164.5 51.6119 164.5 51.75ZM156.537 65C156.662 66.2662 157.101 67.445 157.76 68.5H152.24C152.899 67.445 153.337 66.2662 153.463 65H156.537Z" fill="#79B8FF"/>
15
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M248.544 149.734C247.683 148.873 246.228 149.132 245.718 150.238L245.105 151.565C244.953 151.895 244.744 152.196 244.486 152.453C244.083 152.856 243.576 153.14 243.021 153.272L240.567 153.856C239.235 154.173 238.767 155.828 239.735 156.796L241.939 159L238.22 162.72C237.927 163.013 237.927 163.487 238.22 163.78C238.513 164.073 238.987 164.073 239.28 163.78L243 160.061L245.204 162.265C246.172 163.233 247.827 162.765 248.144 161.433L248.728 158.979C248.86 158.424 249.144 157.917 249.547 157.514C249.804 157.256 250.105 157.047 250.435 156.895L251.762 156.282C252.868 155.772 253.127 154.317 252.266 153.456L248.544 149.734ZM247.08 150.866C247.153 150.709 247.361 150.671 247.484 150.794L251.206 154.516C251.329 154.639 251.291 154.847 251.134 154.92L249.806 155.533C249.315 155.759 248.869 156.071 248.486 156.453C247.887 157.052 247.466 157.806 247.269 158.631L246.685 161.085C246.64 161.276 246.403 161.343 246.265 161.204L240.796 155.735C240.657 155.597 240.724 155.36 240.915 155.315L243.369 154.731C244.194 154.534 244.948 154.113 245.547 153.514C245.929 153.131 246.241 152.685 246.467 152.194L247.08 150.866Z" fill="#79B8FF"/>
16
+ <path d="M186.5 106H175.5L170.5 111.5L181 123.5L191.5 112L186.5 106Z" fill="#1B1F23"/>
17
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M174.873 105.26C174.943 105.179 175.03 105.113 175.128 105.068C175.226 105.023 175.332 105 175.44 105H186.75C186.86 105 186.969 105.024 187.068 105.071C187.168 105.118 187.256 105.186 187.326 105.27L192.326 111.27C192.443 111.41 192.505 111.589 192.5 111.771C192.494 111.954 192.423 112.128 192.298 112.262L181.548 123.762C181.478 123.837 181.393 123.897 181.299 123.938C181.204 123.979 181.103 124 181 124C180.897 124 180.796 123.979 180.701 123.938C180.607 123.897 180.522 123.837 180.452 123.762L169.702 112.262C169.575 112.127 169.503 111.95 169.5 111.764C169.496 111.579 169.561 111.399 169.682 111.259L174.872 105.259L174.873 105.26ZM175.783 106.5L171.258 111.73L181 122.153L190.75 111.723L186.399 106.5H175.783Z" fill="#79B8FF"/>
18
+ </svg>
@@ -0,0 +1,14 @@
1
+ {
2
+ "Ariadne::BaseButton": "",
3
+ "Ariadne::BaseComponent": "",
4
+ "Ariadne::ButtonComponent": "",
5
+ "Ariadne::ClipboardCopyComponent": "",
6
+ "Ariadne::Content": "",
7
+ "Ariadne::CounterComponent": "",
8
+ "Ariadne::FlashComponent": "",
9
+ "Ariadne::HeadingComponent": "",
10
+ "Ariadne::HeroiconComponent": "",
11
+ "Ariadne::ImageComponent": "",
12
+ "Ariadne::Text": "",
13
+ "Ariadne::TooltipComponent": ""
14
+ }
@@ -0,0 +1,89 @@
1
+ ---
2
+ - ".-mx-1.5"
3
+ - ".-mx-2"
4
+ - ".-my-1.5"
5
+ - ".bg-blue-50"
6
+ - ".bg-gray-600"
7
+ - ".bg-green-50"
8
+ - ".bg-red-50"
9
+ - ".bg-white"
10
+ - ".bg-yellow-50"
11
+ - ".border"
12
+ - ".border-blue-300"
13
+ - ".border-gray-300"
14
+ - ".border-green-300"
15
+ - ".border-red-300"
16
+ - ".border-transparent"
17
+ - ".border-yellow-300"
18
+ - ".color-fg-success"
19
+ - ".flex"
20
+ - ".flex-shrink-0"
21
+ - ".focus:outline-none"
22
+ - ".focus:ring-2"
23
+ - ".focus:ring-blue-600"
24
+ - ".focus:ring-gray-500"
25
+ - ".focus:ring-green-600"
26
+ - ".focus:ring-indigo-500"
27
+ - ".focus:ring-offset-2"
28
+ - ".focus:ring-offset-blue-50"
29
+ - ".focus:ring-offset-green-50"
30
+ - ".focus:ring-offset-red-50"
31
+ - ".focus:ring-offset-yellow-50"
32
+ - ".focus:ring-red-600"
33
+ - ".focus:ring-yellow-600"
34
+ - ".font-bold"
35
+ - ".font-extrabold"
36
+ - ".font-medium"
37
+ - ".hover:bg-blue-100"
38
+ - ".hover:bg-gray-50"
39
+ - ".hover:bg-gray-700"
40
+ - ".hover:bg-green-100"
41
+ - ".hover:bg-red-100"
42
+ - ".hover:bg-yellow-100"
43
+ - ".inline-flex"
44
+ - ".items-center"
45
+ - ".leading-4"
46
+ - ".leading-7"
47
+ - ".m-2"
48
+ - ".ml-2"
49
+ - ".ml-3"
50
+ - ".mt-2"
51
+ - ".mt-4"
52
+ - ".p-1"
53
+ - ".p-1.5"
54
+ - ".p-4"
55
+ - ".pl-3"
56
+ - ".pt-5"
57
+ - ".px-2.5"
58
+ - ".px-3"
59
+ - ".px-4"
60
+ - ".px-6"
61
+ - ".py-1.5"
62
+ - ".py-2"
63
+ - ".py-3"
64
+ - ".rounded"
65
+ - ".rounded-full"
66
+ - ".rounded-m"
67
+ - ".rounded-md"
68
+ - ".shadow-sm"
69
+ - ".sm:text-3xl"
70
+ - ".sm:truncate"
71
+ - ".sr-only"
72
+ - ".text-2xl"
73
+ - ".text-3xl"
74
+ - ".text-base"
75
+ - ".text-blue-500"
76
+ - ".text-blue-700"
77
+ - ".text-blue-800"
78
+ - ".text-gray-700"
79
+ - ".text-gray-900"
80
+ - ".text-green-700"
81
+ - ".text-green-800"
82
+ - ".text-red-700"
83
+ - ".text-red-800"
84
+ - ".text-sm"
85
+ - ".text-white"
86
+ - ".text-xs"
87
+ - ".text-yellow-600"
88
+ - ".text-yellow-700"
89
+ - ".text-yellow-800"