ariadne_view_components 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +68 -0
- data/app/assets/javascripts/ariadne_view_components.js +2 -0
- data/app/assets/javascripts/ariadne_view_components.js.map +1 -0
- data/app/assets/stylesheets/application.tailwind.css +3 -0
- data/app/components/ariadne/ariadne.ts +14 -0
- data/app/components/ariadne/base_button.rb +60 -0
- data/app/components/ariadne/base_component.rb +155 -0
- data/app/components/ariadne/button_component.html.erb +4 -0
- data/app/components/ariadne/button_component.rb +158 -0
- data/app/components/ariadne/clipboard_copy_component.html.erb +8 -0
- data/app/components/ariadne/clipboard_copy_component.rb +50 -0
- data/app/components/ariadne/clipboard_copy_component.ts +19 -0
- data/app/components/ariadne/component.rb +123 -0
- data/app/components/ariadne/content.rb +12 -0
- data/app/components/ariadne/counter_component.rb +100 -0
- data/app/components/ariadne/flash_component.html.erb +31 -0
- data/app/components/ariadne/flash_component.rb +125 -0
- data/app/components/ariadne/heading_component.rb +49 -0
- data/app/components/ariadne/heroicon_component.html.erb +7 -0
- data/app/components/ariadne/heroicon_component.rb +116 -0
- data/app/components/ariadne/image_component.rb +51 -0
- data/app/components/ariadne/text.rb +25 -0
- data/app/components/ariadne/tooltip_component.rb +105 -0
- data/app/lib/ariadne/audited/dsl.rb +32 -0
- data/app/lib/ariadne/class_name_helper.rb +22 -0
- data/app/lib/ariadne/fetch_or_fallback_helper.rb +100 -0
- data/app/lib/ariadne/icon_helper.rb +47 -0
- data/app/lib/ariadne/join_style_arguments_helper.rb +14 -0
- data/app/lib/ariadne/logger_helper.rb +23 -0
- data/app/lib/ariadne/status/dsl.rb +41 -0
- data/app/lib/ariadne/tab_nav_helper.rb +35 -0
- data/app/lib/ariadne/tabbed_component_helper.rb +39 -0
- data/app/lib/ariadne/test_selector_helper.rb +20 -0
- data/app/lib/ariadne/underline_nav_helper.rb +44 -0
- data/app/lib/ariadne/view_helper.rb +22 -0
- data/lib/ariadne/classify/utilities.rb +199 -0
- data/lib/ariadne/classify/utilities.yml +1817 -0
- data/lib/ariadne/classify/validation.rb +18 -0
- data/lib/ariadne/classify.rb +210 -0
- data/lib/ariadne/view_components/constants.rb +53 -0
- data/lib/ariadne/view_components/engine.rb +30 -0
- data/lib/ariadne/view_components/linters.rb +3 -0
- data/lib/ariadne/view_components/statuses.rb +14 -0
- data/lib/ariadne/view_components/version.rb +7 -0
- data/lib/ariadne/view_components.rb +59 -0
- data/lib/rubocop/config/default.yml +14 -0
- data/lib/rubocop/cop/ariadne/ariadne_heroicon.rb +252 -0
- data/lib/rubocop/cop/ariadne/base_cop.rb +26 -0
- data/lib/rubocop/cop/ariadne/component_name_migration.rb +35 -0
- data/lib/rubocop/cop/ariadne/no_tag_memoize.rb +43 -0
- data/lib/rubocop/cop/ariadne/system_argument_instead_of_class.rb +57 -0
- data/lib/rubocop/cop/ariadne.rb +3 -0
- data/lib/tasks/ariadne_view_components.rake +47 -0
- data/lib/tasks/coverage.rake +19 -0
- data/lib/tasks/custom_utilities.yml +310 -0
- data/lib/tasks/docs.rake +525 -0
- data/lib/tasks/helpers/ast_processor.rb +44 -0
- data/lib/tasks/helpers/ast_traverser.rb +77 -0
- data/lib/tasks/static.rake +15 -0
- data/lib/tasks/tailwind.rake +31 -0
- data/lib/tasks/utilities.rake +121 -0
- data/lib/yard/docs_helper.rb +83 -0
- data/lib/yard/renders_many_handler.rb +19 -0
- data/lib/yard/renders_one_handler.rb +19 -0
- data/static/arguments.yml +251 -0
- data/static/assets/view-components.svg +18 -0
- data/static/audited_at.json +14 -0
- data/static/classes.yml +89 -0
- data/static/constants.json +243 -0
- data/static/statuses.json +14 -0
- data/static/tailwindcss.yml +727 -0
- 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
|
+
}
|
data/static/classes.yml
ADDED
@@ -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"
|