ariadne_view_components 0.0.34-aarch64-linux → 0.0.36-aarch64-linux
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/CHANGELOG.md +66 -5
- data/README.md +2 -2
- data/app/components/ariadne/avatar_component.rb +1 -1
- data/app/components/ariadne/avatar_stack_component.rb +7 -7
- data/app/components/ariadne/base_button.rb +2 -2
- data/app/components/ariadne/base_component.rb +2 -2
- data/app/components/ariadne/blankslate_component.rb +9 -9
- data/app/components/ariadne/body_component.rb +1 -1
- data/app/components/ariadne/button_component.rb +8 -6
- data/app/components/ariadne/clipboard_copy_component.rb +1 -1
- data/app/components/ariadne/comment_component/comment_component.html.erb +6 -6
- data/app/components/ariadne/comment_component.rb +5 -5
- data/app/components/ariadne/component.rb +0 -1
- data/app/components/ariadne/container_component.rb +1 -1
- data/app/components/ariadne/counter_component.rb +1 -1
- data/app/components/ariadne/details_component.rb +10 -9
- data/app/components/ariadne/dropdown/menu_component.rb +3 -3
- data/app/components/ariadne/dropdown_component/dropdown_component.html.erb +2 -2
- data/app/components/ariadne/dropdown_component.rb +52 -52
- data/app/components/ariadne/flash_component.rb +5 -5
- data/app/components/ariadne/flex_component/flex_component.html.erb +5 -0
- data/app/components/ariadne/flex_component.rb +10 -3
- data/app/components/ariadne/footer_component.rb +2 -2
- data/app/components/ariadne/grid_component.rb +4 -8
- data/app/components/ariadne/header_component.rb +7 -7
- data/app/components/ariadne/heading_component.rb +1 -1
- data/app/components/ariadne/heroicon_component.rb +2 -2
- data/app/components/ariadne/inline_flex_component.rb +7 -7
- data/app/components/ariadne/link_component.rb +3 -3
- data/app/components/ariadne/list_component.rb +10 -4
- data/app/components/ariadne/narrow_container_component.rb +1 -1
- data/app/components/ariadne/panel_bar_component.rb +3 -3
- data/app/components/ariadne/pill_component.rb +1 -1
- data/app/components/ariadne/rich_text_area_component/rich-text-area-component.ts +4 -4
- data/app/components/ariadne/rich_text_area_component.rb +1 -1
- data/app/components/ariadne/slideover_component.rb +3 -3
- data/app/components/ariadne/tab_component.rb +1 -1
- data/app/components/ariadne/tab_container_component/tab-container-component.ts +1 -1
- data/app/components/ariadne/tab_container_component.rb +7 -7
- data/app/components/ariadne/tab_nav_component.rb +5 -5
- data/app/components/ariadne/table_nav_component.rb +42 -42
- data/app/components/ariadne/time_ago_component.rb +1 -1
- data/app/components/ariadne/timeline_component.rb +1 -1
- data/app/components/ariadne/tooltip_component/tooltip-component.ts +5 -5
- data/app/components/ariadne/tooltip_component.rb +1 -1
- data/app/lib/ariadne/action_view_extensions/form_helper.rb +1 -1
- data/app/lib/ariadne/class_name_helper.rb +1 -1
- data/app/lib/ariadne/form_builder.rb +10 -10
- data/lib/ariadne/view_components/linters/argument_mappers/conversion_error.rb +10 -0
- data/lib/ariadne/view_components/linters/autocorrectable.rb +32 -0
- data/lib/ariadne/view_components/linters/base_linter.rb +202 -0
- data/lib/ariadne/view_components/linters/tag_tree_helpers.rb +76 -0
- data/lib/ariadne/view_components/version.rb +2 -1
- data/lib/tasks/build.rake +6 -0
- data/lib/tasks/coverage.rake +4 -1
- data/lib/tasks/docs.rake +5 -1
- data/lib/tasks/test.rake +19 -0
- data/static/classes.yml +3 -1
- metadata +8 -16
- data/app/assets/javascripts/ariadne-form-with.d.ts +0 -20
- data/app/assets/javascripts/ariadne-form.d.ts +0 -22
- data/app/assets/javascripts/ariadne.d.ts +0 -2
- data/app/assets/javascripts/ariadne_view_components.js +0 -8
- data/app/assets/javascripts/ariadne_view_components.js.map +0 -1
- data/app/assets/javascripts/clipboard-copy-component.d.ts +0 -4
- data/app/assets/javascripts/comment-component.d.ts +0 -12
- data/app/assets/javascripts/rich-text-area-component.d.ts +0 -6
- data/app/assets/javascripts/slideover-component.d.ts +0 -9
- data/app/assets/javascripts/tab-container-component.d.ts +0 -1
- data/app/assets/javascripts/tab-nav-component.d.ts +0 -9
- data/app/assets/javascripts/time-ago-component.d.ts +0 -1
- data/app/assets/javascripts/time_ago_component.d.ts +0 -1
- data/app/assets/javascripts/tooltip-component.d.ts +0 -24
@@ -0,0 +1,202 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require "openssl"
|
5
|
+
require "ariadne/view_components/constants"
|
6
|
+
|
7
|
+
require_relative "tag_tree_helpers"
|
8
|
+
|
9
|
+
# :nocov:
|
10
|
+
|
11
|
+
module ERBLint
|
12
|
+
module Linters
|
13
|
+
# Provides the basic linter logic. When inherited, you should define:
|
14
|
+
# * `TAGS` - required - The HTML tags that the component supports. It will be used by the linter to match elements.
|
15
|
+
# * `MESSAGE` - required - The message shown when there's an offense.
|
16
|
+
# * `CLASSES` - optional - The CSS classes that the component needs. The linter will only match elements with one of those classes.
|
17
|
+
# * `REQUIRED_ARGUMENTS` - optional - A list of HTML attributes that are required by the component.
|
18
|
+
class BaseLinter < Linter
|
19
|
+
include TagTreeHelpers
|
20
|
+
|
21
|
+
DUMP_FILE = ".erblint-counter-ignore.json"
|
22
|
+
DISALLOWED_CLASSES = [].freeze
|
23
|
+
CLASSES = [].freeze
|
24
|
+
REQUIRED_ARGUMENTS = [].freeze
|
25
|
+
|
26
|
+
class ConfigSchema < LinterConfig # rubocop:disable Style/Documentation
|
27
|
+
property :override_ignores_if_correctable, accepts: [true, false], default: false, reader: :override_ignores_if_correctable?
|
28
|
+
end
|
29
|
+
|
30
|
+
class << self
|
31
|
+
def inherited(base)
|
32
|
+
super
|
33
|
+
base.include(ERBLint::LinterRegistry)
|
34
|
+
base.config_schema = ConfigSchema
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def run(processed_source)
|
39
|
+
@total_offenses = 0
|
40
|
+
@offenses_not_corrected = 0
|
41
|
+
(tags, tag_tree) = build_tag_tree(processed_source)
|
42
|
+
|
43
|
+
tags.each do |tag|
|
44
|
+
next if tag.closing?
|
45
|
+
next if self.class::TAGS&.none?(tag.name)
|
46
|
+
|
47
|
+
classes = tag.attributes["class"]&.value&.split(" ") || []
|
48
|
+
tag_tree[tag][:offense] = false
|
49
|
+
|
50
|
+
next if classes.intersect?(self.class::DISALLOWED_CLASSES)
|
51
|
+
next unless self.class::CLASSES.blank? || classes.intersect?(self.class::CLASSES)
|
52
|
+
|
53
|
+
args = map_arguments(tag, tag_tree[tag])
|
54
|
+
correction = correction(args)
|
55
|
+
|
56
|
+
attributes = tag.attributes.each.map(&:name).join(" ")
|
57
|
+
matches_required_attributes = self.class::REQUIRED_ARGUMENTS.blank? || self.class::REQUIRED_ARGUMENTS.all? { |arg| attributes.match?(arg) }
|
58
|
+
|
59
|
+
tag_tree[tag][:offense] = true
|
60
|
+
tag_tree[tag][:correctable] = matches_required_attributes && !correction.nil?
|
61
|
+
tag_tree[tag][:message] = message(args, processed_source)
|
62
|
+
tag_tree[tag][:correction] = correction
|
63
|
+
end
|
64
|
+
|
65
|
+
tag_tree.each do |tag, h|
|
66
|
+
next unless h[:offense]
|
67
|
+
|
68
|
+
@total_offenses += 1
|
69
|
+
# We always fix the offenses using blocks. The closing tag corresponds to `<% end %>`.
|
70
|
+
if h[:correctable]
|
71
|
+
add_correction(tag, h)
|
72
|
+
else
|
73
|
+
@offenses_not_corrected += 1
|
74
|
+
generate_offense(self.class, processed_source, tag, h[:message])
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
counter_correct?(processed_source)
|
79
|
+
|
80
|
+
dump_data(processed_source) if ENV["DUMP_LINT_DATA"] == "1"
|
81
|
+
end
|
82
|
+
|
83
|
+
def autocorrect(processed_source, offense)
|
84
|
+
return unless offense.context
|
85
|
+
|
86
|
+
lambda do |corrector|
|
87
|
+
if offense.context.include?(counter_disable)
|
88
|
+
correct_counter(corrector, processed_source, offense)
|
89
|
+
else
|
90
|
+
corrector.replace(offense.source_range, offense.context)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
def add_correction(tag, tag_tree)
|
98
|
+
add_offense(tag.loc, tag_tree[:message], tag_tree[:correction])
|
99
|
+
add_offense(tag_tree[:closing].loc, tag_tree[:message], "<% end %>")
|
100
|
+
end
|
101
|
+
|
102
|
+
# Override this function to convert the HTML element attributes to argument for a component.
|
103
|
+
#
|
104
|
+
# @return [Hash] if possible to map all attributes to arguments.
|
105
|
+
# @return [Nil] if cannot map to arguments.
|
106
|
+
def map_arguments(_tag, _tag_tree)
|
107
|
+
nil
|
108
|
+
end
|
109
|
+
|
110
|
+
# Override this function to define how to autocorrect an element to a component.
|
111
|
+
#
|
112
|
+
# @return [String] with the text to replace the HTML element if possible to correct.
|
113
|
+
# @return [Nil] if cannot correct element.
|
114
|
+
def correction(_tag)
|
115
|
+
nil
|
116
|
+
end
|
117
|
+
|
118
|
+
# Override this function to customize the linter message.
|
119
|
+
#
|
120
|
+
# @return [String] message to show on linter error.
|
121
|
+
def message(_tag, _processed_source)
|
122
|
+
self.class::MESSAGE
|
123
|
+
end
|
124
|
+
|
125
|
+
def counter_disable
|
126
|
+
"erblint:counter #{self.class.name.demodulize}"
|
127
|
+
end
|
128
|
+
|
129
|
+
def correct_counter(corrector, processed_source, offense)
|
130
|
+
if processed_source.file_content.include?(counter_disable)
|
131
|
+
# update the counter if exists
|
132
|
+
corrector.replace(offense.source_range, offense.context)
|
133
|
+
else
|
134
|
+
# add comment with counter if none
|
135
|
+
corrector.insert_before(processed_source.source_buffer.source_range, "#{offense.context}\n")
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def tags(processed_source)
|
140
|
+
processed_source.parser.nodes_with_type(:tag).map { |tag_node| BetterHtml::Tree::Tag.from_node(tag_node) }
|
141
|
+
end
|
142
|
+
|
143
|
+
def counter_correct?(processed_source)
|
144
|
+
comment_node = nil
|
145
|
+
expected_count = 0
|
146
|
+
rule_name = self.class.name.match(/:?:?(\w+)\Z/)[1]
|
147
|
+
|
148
|
+
processed_source.parser.ast.descendants(:erb).each do |node|
|
149
|
+
indicator_node, _, code_node, = *node
|
150
|
+
indicator = indicator_node&.loc&.source
|
151
|
+
comment = code_node&.loc&.source&.strip
|
152
|
+
|
153
|
+
if indicator == "#" && comment.start_with?("erblint:count") && comment.match(rule_name)
|
154
|
+
comment_node = node
|
155
|
+
expected_count = comment.match(/\s(\d+)\s?$/)[1].to_i
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
# Unless explicitly set, we don't want to mark correctable offenses if the counter is correct.
|
160
|
+
if !@config.override_ignores_if_correctable? && expected_count == @total_offenses
|
161
|
+
clear_offenses
|
162
|
+
return
|
163
|
+
end
|
164
|
+
|
165
|
+
if @offenses_not_corrected.zero?
|
166
|
+
# have to adjust to get `\n` so we delete the whole line
|
167
|
+
add_offense(processed_source.to_source_range(comment_node.loc.adjust(end_pos: 1)), "Unused erblint:count comment for #{rule_name}", "") if comment_node
|
168
|
+
return
|
169
|
+
end
|
170
|
+
|
171
|
+
first_offense = @offenses[0]
|
172
|
+
|
173
|
+
if comment_node.nil?
|
174
|
+
add_offense(processed_source.to_source_range(first_offense.source_range), "#{rule_name}: If you must, add <%# erblint:counter #{rule_name} #{@offenses_not_corrected} %> to bypass this check.", "<%# erblint:counter #{rule_name} #{@offenses_not_corrected} %>")
|
175
|
+
elsif expected_count != @offenses_not_corrected
|
176
|
+
add_offense(processed_source.to_source_range(comment_node.loc), "Incorrect erblint:counter number for #{rule_name}. Expected: #{expected_count}, actual: #{@offenses_not_corrected}.", "<%# erblint:counter #{rule_name} #{@offenses_not_corrected} %>")
|
177
|
+
# the only offenses remaining are not autocorrectable, so we can ignore them
|
178
|
+
elsif expected_count == @offenses_not_corrected && @offenses.size == @offenses_not_corrected
|
179
|
+
clear_offenses
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
def generate_offense(klass, processed_source, tag, message = nil, replacement = nil)
|
184
|
+
message ||= klass::MESSAGE
|
185
|
+
klass_name = klass.name.demodulize
|
186
|
+
offense = ["#{klass_name}:#{message}", tag.node.loc.source].join("\n")
|
187
|
+
add_offense(processed_source.to_source_range(tag.loc), offense, replacement)
|
188
|
+
end
|
189
|
+
|
190
|
+
def dump_data(processed_source)
|
191
|
+
return if @total_offenses.zero?
|
192
|
+
|
193
|
+
data = File.exist?(DUMP_FILE) ? JSON.parse(File.read(DUMP_FILE)) : {}
|
194
|
+
|
195
|
+
data[processed_source.filename] ||= {}
|
196
|
+
data[processed_source.filename][self.class.name.demodulize] = @total_offenses
|
197
|
+
|
198
|
+
File.write(DUMP_FILE, JSON.pretty_generate(data))
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ERBLint
|
4
|
+
module Linters
|
5
|
+
# Helpers used by linters to organize HTML tags into abstract syntax trees.
|
6
|
+
module TagTreeHelpers
|
7
|
+
# from https://github.com/Shopify/erb-lint/blob/6179ee2d9d681a6ec4dd02351a1e30eefa748d3d/lib/erb_lint/linters/self_closing_tag.rb
|
8
|
+
SELF_CLOSING_TAGS = [
|
9
|
+
"area",
|
10
|
+
"base",
|
11
|
+
"br",
|
12
|
+
"col",
|
13
|
+
"command",
|
14
|
+
"embed",
|
15
|
+
"hr",
|
16
|
+
"input",
|
17
|
+
"keygen",
|
18
|
+
"link",
|
19
|
+
"menuitem",
|
20
|
+
"meta",
|
21
|
+
"param",
|
22
|
+
"source",
|
23
|
+
"track",
|
24
|
+
"wbr",
|
25
|
+
"img",
|
26
|
+
].freeze
|
27
|
+
|
28
|
+
# This assumes that the AST provided represents valid HTML, where each tag has a corresponding closing tag.
|
29
|
+
# From the tags, we build a structured tree which represents the tag hierarchy.
|
30
|
+
# With this, we are able to know where the tags start and end.
|
31
|
+
def build_tag_tree(processed_source)
|
32
|
+
nodes = processed_source.ast.children
|
33
|
+
tag_tree = {}
|
34
|
+
tags = []
|
35
|
+
current_opened_tag = nil
|
36
|
+
|
37
|
+
nodes.each do |node|
|
38
|
+
if node.type == :tag
|
39
|
+
# get the tag from previously calculated list so the references are the same
|
40
|
+
tag = BetterHtml::Tree::Tag.from_node(node)
|
41
|
+
tags << tag
|
42
|
+
|
43
|
+
if tag.closing?
|
44
|
+
if current_opened_tag && tag.name == current_opened_tag.name
|
45
|
+
tag_tree[current_opened_tag][:closing] = tag
|
46
|
+
current_opened_tag = tag_tree[current_opened_tag][:parent]
|
47
|
+
end
|
48
|
+
|
49
|
+
next
|
50
|
+
end
|
51
|
+
|
52
|
+
self_closing = self_closing?(tag)
|
53
|
+
|
54
|
+
tag_tree[tag] = {
|
55
|
+
tag: tag,
|
56
|
+
closing: self_closing ? tag : nil,
|
57
|
+
parent: current_opened_tag,
|
58
|
+
children: [],
|
59
|
+
}
|
60
|
+
|
61
|
+
tag_tree[current_opened_tag][:children] << tag_tree[tag] if current_opened_tag
|
62
|
+
current_opened_tag = tag unless self_closing
|
63
|
+
elsif current_opened_tag
|
64
|
+
tag_tree[current_opened_tag][:children] << node
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
[tags, tag_tree]
|
69
|
+
end
|
70
|
+
|
71
|
+
def self_closing?(tag)
|
72
|
+
tag.self_closing? || SELF_CLOSING_TAGS.include?(tag.name)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/tasks/build.rake
CHANGED
@@ -19,6 +19,12 @@ namespace :ariadne_view_components do
|
|
19
19
|
puts command.inspect
|
20
20
|
system(*command)
|
21
21
|
end
|
22
|
+
|
23
|
+
desc "Prepares the project for release"
|
24
|
+
task :prepare do |_, _args|
|
25
|
+
FileUtils.rm_rf("app/assets/javascripts")
|
26
|
+
system("script/prepare")
|
27
|
+
end
|
22
28
|
end
|
23
29
|
|
24
30
|
Rake::Task["assets:precompile"].enhance(["ariadne_view_components:build"]) if Rake::Task.task_defined?("assets:precompile")
|
data/lib/tasks/coverage.rake
CHANGED
@@ -8,9 +8,12 @@ namespace :coverage do
|
|
8
8
|
|
9
9
|
SimpleCov.minimum_coverage(100)
|
10
10
|
|
11
|
-
SimpleCov.collate(Dir["
|
11
|
+
SimpleCov.collate(Dir["coverage/.resultset.json"], "rails") do
|
12
12
|
formatter SimpleCov::Formatter::Console
|
13
13
|
|
14
|
+
minimum_coverage 90
|
15
|
+
maximum_coverage_drop 2
|
16
|
+
|
14
17
|
add_group "Ignored Code" do |src_file|
|
15
18
|
File.readlines(src_file.filename).grep(/:nocov:/).any?
|
16
19
|
end
|
data/lib/tasks/docs.rake
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "yard"
|
4
|
+
require "yard/renders_one_handler"
|
5
|
+
require "yard/renders_many_handler"
|
6
|
+
|
3
7
|
require "active_support/inflector"
|
4
8
|
require "fileutils"
|
5
9
|
|
@@ -301,7 +305,7 @@ namespace :docs do
|
|
301
305
|
puts "Markdown compiled."
|
302
306
|
|
303
307
|
if components_needing_docs.any?
|
304
|
-
puts "\nThe following components need documentation.
|
308
|
+
puts "\nThe following components need documentation. Could you add it to them? #{components_needing_docs.map(&:name).join(", ")}"
|
305
309
|
end
|
306
310
|
end
|
307
311
|
|
data/lib/tasks/test.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rake/testtask"
|
4
|
+
|
5
|
+
Rake::TestTask.new(:test) do |t|
|
6
|
+
ENV["TZ"] = "Asia/Yerevan"
|
7
|
+
|
8
|
+
t.libs << "test"
|
9
|
+
t.libs << "lib"
|
10
|
+
t.warning = false
|
11
|
+
t.test_files = FileList[ENV["TESTS"] || "test/**/*_test.rb"]
|
12
|
+
end
|
13
|
+
|
14
|
+
Rake::TestTask.new(:bench) do |t|
|
15
|
+
t.libs << "test"
|
16
|
+
t.test_files = FileList["test/benchmarks/**/bench_*.rb"]
|
17
|
+
t.verbose = true
|
18
|
+
t.warning = false
|
19
|
+
end
|
data/static/classes.yml
CHANGED
@@ -116,6 +116,8 @@
|
|
116
116
|
- ".ariadne-ring-black"
|
117
117
|
- ".ariadne-ring-opacity-5"
|
118
118
|
- ".ariadne-text-gray-700"
|
119
|
+
- ".ariadne-ml-2"
|
120
|
+
- ".ariadne--mr-1"
|
119
121
|
- ".ariadne-text-red-500"
|
120
122
|
- ".ariadne-mt-0"
|
121
123
|
- ".ariadne-text-slate-700"
|
@@ -137,7 +139,6 @@
|
|
137
139
|
- ".ariadne-mt-4"
|
138
140
|
- ".ariadne-pt-5"
|
139
141
|
- ".ariadne--mx-2"
|
140
|
-
- ".ariadne-flex-col"
|
141
142
|
- ".ariadne-mt-6"
|
142
143
|
- ".sm:ariadne-mt-0"
|
143
144
|
- ".ariadne-grid"
|
@@ -159,6 +160,7 @@
|
|
159
160
|
- ".md:ariadne-flex"
|
160
161
|
- ".md:ariadne-divide-y-0"
|
161
162
|
- ".ariadne-text-black"
|
163
|
+
- ".ariadne-flex-col"
|
162
164
|
- ".ariadne-hidden"
|
163
165
|
- ".ariadne-list-none"
|
164
166
|
- ".ariadne-border-slate-600"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ariadne_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.36
|
5
5
|
platform: aarch64-linux
|
6
6
|
authors:
|
7
7
|
- Garen J. Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tailwind_merge
|
@@ -112,20 +112,6 @@ files:
|
|
112
112
|
- LICENSE.txt
|
113
113
|
- README.md
|
114
114
|
- app/assets/config/manifest.js
|
115
|
-
- app/assets/javascripts/ariadne-form-with.d.ts
|
116
|
-
- app/assets/javascripts/ariadne-form.d.ts
|
117
|
-
- app/assets/javascripts/ariadne.d.ts
|
118
|
-
- app/assets/javascripts/ariadne_view_components.js
|
119
|
-
- app/assets/javascripts/ariadne_view_components.js.map
|
120
|
-
- app/assets/javascripts/clipboard-copy-component.d.ts
|
121
|
-
- app/assets/javascripts/comment-component.d.ts
|
122
|
-
- app/assets/javascripts/rich-text-area-component.d.ts
|
123
|
-
- app/assets/javascripts/slideover-component.d.ts
|
124
|
-
- app/assets/javascripts/tab-container-component.d.ts
|
125
|
-
- app/assets/javascripts/tab-nav-component.d.ts
|
126
|
-
- app/assets/javascripts/time-ago-component.d.ts
|
127
|
-
- app/assets/javascripts/time_ago_component.d.ts
|
128
|
-
- app/assets/javascripts/tooltip-component.d.ts
|
129
115
|
- app/assets/stylesheets/ariadne_view_components.css
|
130
116
|
- app/assets/stylesheets/dropdown.css
|
131
117
|
- app/assets/stylesheets/prosemirror.css
|
@@ -162,6 +148,7 @@ files:
|
|
162
148
|
- app/components/ariadne/flash_component.rb
|
163
149
|
- app/components/ariadne/flash_component/flash_component.html.erb
|
164
150
|
- app/components/ariadne/flex_component.rb
|
151
|
+
- app/components/ariadne/flex_component/flex_component.html.erb
|
165
152
|
- app/components/ariadne/footer_component.rb
|
166
153
|
- app/components/ariadne/footer_component/footer_component.html.erb
|
167
154
|
- app/components/ariadne/grid_component.rb
|
@@ -224,6 +211,10 @@ files:
|
|
224
211
|
- lib/ariadne/view_components/constants.rb
|
225
212
|
- lib/ariadne/view_components/engine.rb
|
226
213
|
- lib/ariadne/view_components/linters.rb
|
214
|
+
- lib/ariadne/view_components/linters/argument_mappers/conversion_error.rb
|
215
|
+
- lib/ariadne/view_components/linters/autocorrectable.rb
|
216
|
+
- lib/ariadne/view_components/linters/base_linter.rb
|
217
|
+
- lib/ariadne/view_components/linters/tag_tree_helpers.rb
|
227
218
|
- lib/ariadne/view_components/statuses.rb
|
228
219
|
- lib/ariadne/view_components/upstream.rb
|
229
220
|
- lib/ariadne/view_components/version.rb
|
@@ -238,6 +229,7 @@ files:
|
|
238
229
|
- lib/tasks/helpers/ast_processor.rb
|
239
230
|
- lib/tasks/helpers/ast_traverser.rb
|
240
231
|
- lib/tasks/static.rake
|
232
|
+
- lib/tasks/test.rake
|
241
233
|
- lib/yard/docs_helper.rb
|
242
234
|
- lib/yard/renders_many_handler.rb
|
243
235
|
- lib/yard/renders_one_handler.rb
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import { Controller } from '@hotwired/stimulus';
|
2
|
-
import { TemplateResult } from 'lit-html';
|
3
|
-
declare type HTMLFormField = HTMLInputElement | HTMLButtonElement | HTMLSelectElement | HTMLTextAreaElement;
|
4
|
-
export default class AriadneFormWith extends Controller {
|
5
|
-
connect(): void;
|
6
|
-
disconnect(): void;
|
7
|
-
onBlur: (event: Event) => void;
|
8
|
-
onSubmit: (event: Event) => void;
|
9
|
-
validateForm(): boolean;
|
10
|
-
validateField(field: HTMLFormField): boolean;
|
11
|
-
shouldValidateField(field: HTMLFormField): boolean;
|
12
|
-
refreshErrorForInvalidField(field: HTMLFormField, isValid: boolean): void;
|
13
|
-
removeExistingErrorMessage(field: HTMLFormField): void;
|
14
|
-
showErrorForInvalidField(field: HTMLFormField): void;
|
15
|
-
buildFieldErrorHtml(field: HTMLFormField): string;
|
16
|
-
get formFields(): HTMLFormField[];
|
17
|
-
get firstInvalidField(): HTMLFormField | undefined;
|
18
|
-
getRenderString: (data: TemplateResult) => string;
|
19
|
-
}
|
20
|
-
export {};
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import { Controller } from '@hotwired/stimulus';
|
2
|
-
import type { TemplateResult } from 'lit-html';
|
3
|
-
declare type HTMLFormField = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
|
4
|
-
export default class AriadneFormWith extends Controller {
|
5
|
-
static targets: string[];
|
6
|
-
readonly formFieldTargets: [HTMLFormField];
|
7
|
-
connect(): void;
|
8
|
-
disconnect(): void;
|
9
|
-
onBlur: (event: Event) => void;
|
10
|
-
onSubmit: (event: Event) => void;
|
11
|
-
validateForm(): boolean;
|
12
|
-
validateField(field: HTMLFormField): boolean;
|
13
|
-
shouldValidateField(field: HTMLFormField): boolean;
|
14
|
-
refreshErrorForInvalidField(field: HTMLFormField, isValid: boolean): void;
|
15
|
-
removeExistingErrorMessage(field: HTMLFormField): void;
|
16
|
-
showErrorForInvalidField(field: HTMLFormField): void;
|
17
|
-
buildFieldErrorHtml(field: HTMLFormField): string;
|
18
|
-
get formFields(): HTMLFormField[];
|
19
|
-
get firstInvalidField(): HTMLFormField | undefined;
|
20
|
-
getRenderString: (data: TemplateResult) => string;
|
21
|
-
}
|
22
|
-
export {};
|