ariadne_view_components 0.0.43 → 0.0.44

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/app/components/ariadne/ariadne-form.d.ts +22 -0
  4. data/app/components/ariadne/ariadne-form.js +85 -0
  5. data/app/components/ariadne/ariadne-form.ts +96 -0
  6. data/app/components/ariadne/ariadne.d.ts +2 -0
  7. data/app/components/ariadne/ariadne.js +16 -0
  8. data/app/components/ariadne/ariadne.ts +21 -0
  9. data/app/components/ariadne/avatar_component.rb +81 -0
  10. data/app/components/ariadne/avatar_stack_component/avatar_stack_component.html.erb +12 -0
  11. data/app/components/ariadne/avatar_stack_component.rb +75 -0
  12. data/app/components/ariadne/base_button.rb +70 -0
  13. data/app/components/ariadne/base_component.rb +37 -0
  14. data/app/components/ariadne/blankslate_component/blankslate_component.html.erb +26 -0
  15. data/app/components/ariadne/blankslate_component.rb +148 -0
  16. data/app/components/ariadne/body_component.rb +30 -0
  17. data/app/components/ariadne/button_component/button_component.html.erb +4 -0
  18. data/app/components/ariadne/button_component.rb +165 -0
  19. data/app/components/ariadne/clipboard_copy_component/clipboard-copy-component.d.ts +4 -0
  20. data/app/components/ariadne/clipboard_copy_component/clipboard-copy-component.js +18 -0
  21. data/app/components/ariadne/clipboard_copy_component/clipboard-copy-component.ts +19 -0
  22. data/app/components/ariadne/clipboard_copy_component/clipboard_copy_component.html.erb +9 -0
  23. data/app/components/ariadne/clipboard_copy_component.rb +90 -0
  24. data/app/components/ariadne/comment_component/comment_component.html.erb +37 -0
  25. data/app/components/ariadne/comment_component.rb +71 -0
  26. data/app/components/ariadne/component.rb +127 -0
  27. data/app/components/ariadne/container_component/container_component.html.erb +3 -0
  28. data/app/components/ariadne/container_component.rb +25 -0
  29. data/app/components/ariadne/content.rb +12 -0
  30. data/app/components/ariadne/counter_component.rb +100 -0
  31. data/app/components/ariadne/details_component/details_component.html.erb +4 -0
  32. data/app/components/ariadne/details_component.rb +81 -0
  33. data/app/components/ariadne/dropdown/menu_component.html.erb +20 -0
  34. data/app/components/ariadne/dropdown/menu_component.rb +101 -0
  35. data/app/components/ariadne/dropdown/menu_component.ts +1 -0
  36. data/app/components/ariadne/dropdown_component/dropdown_component.html.erb +8 -0
  37. data/app/components/ariadne/dropdown_component.rb +172 -0
  38. data/app/components/ariadne/flash_component/flash_component.html.erb +31 -0
  39. data/app/components/ariadne/flash_component.rb +128 -0
  40. data/app/components/ariadne/flex_component/flex_component.html.erb +5 -0
  41. data/app/components/ariadne/flex_component.rb +56 -0
  42. data/app/components/ariadne/footer_component/footer_component.html.erb +7 -0
  43. data/app/components/ariadne/footer_component.rb +23 -0
  44. data/app/components/ariadne/grid_component/grid_component.html.erb +26 -0
  45. data/app/components/ariadne/grid_component.rb +67 -0
  46. data/app/components/ariadne/header_component/header_component.html.erb +29 -0
  47. data/app/components/ariadne/header_component.rb +111 -0
  48. data/app/components/ariadne/heading_component.rb +49 -0
  49. data/app/components/ariadne/heroicon_component/heroicon_component.html.erb +4 -0
  50. data/app/components/ariadne/heroicon_component.rb +166 -0
  51. data/app/components/ariadne/image_component.rb +53 -0
  52. data/app/components/ariadne/inline_flex_component/inline_flex_component.html.erb +6 -0
  53. data/app/components/ariadne/inline_flex_component.rb +72 -0
  54. data/app/components/ariadne/link_component.rb +65 -0
  55. data/app/components/ariadne/list_component/list_component.html.erb +6 -0
  56. data/app/components/ariadne/list_component.rb +70 -0
  57. data/app/components/ariadne/narrow_container_component/narrow_container_component.html.erb +3 -0
  58. data/app/components/ariadne/narrow_container_component.rb +30 -0
  59. data/app/components/ariadne/panel_bar_component/panel_bar_component.html.erb +20 -0
  60. data/app/components/ariadne/panel_bar_component.rb +80 -0
  61. data/app/components/ariadne/pill_component/pill_component.html.erb +3 -0
  62. data/app/components/ariadne/pill_component.rb +44 -0
  63. data/app/components/ariadne/rich_text_area_component/rich-text-area-component.d.ts +6 -0
  64. data/app/components/ariadne/rich_text_area_component/rich-text-area-component.js +38 -0
  65. data/app/components/ariadne/rich_text_area_component/rich-text-area-component.ts +47 -0
  66. data/app/components/ariadne/rich_text_area_component/rich_text_area_component.html.erb +6 -0
  67. data/app/components/ariadne/rich_text_area_component.rb +35 -0
  68. data/app/components/ariadne/slideover_component/slideover-component.d.ts +9 -0
  69. data/app/components/ariadne/slideover_component/slideover-component.js +11 -0
  70. data/app/components/ariadne/slideover_component/slideover-component.ts +17 -0
  71. data/app/components/ariadne/slideover_component/slideover_component.html.erb +9 -0
  72. data/app/components/ariadne/slideover_component.rb +66 -0
  73. data/app/components/ariadne/tab_component/tab_component.html.erb +3 -0
  74. data/app/components/ariadne/tab_component.rb +98 -0
  75. data/app/components/ariadne/tab_container_component/tab-container-component.d.ts +1 -0
  76. data/app/components/ariadne/tab_container_component/tab-container-component.js +23 -0
  77. data/app/components/ariadne/tab_container_component/tab-container-component.ts +24 -0
  78. data/app/components/ariadne/tab_container_component.erb +10 -0
  79. data/app/components/ariadne/tab_container_component.rb +68 -0
  80. data/app/components/ariadne/tab_nav_component/tab-nav-component.d.ts +9 -0
  81. data/app/components/ariadne/tab_nav_component/tab-nav-component.js +33 -0
  82. data/app/components/ariadne/tab_nav_component/tab-nav-component.ts +34 -0
  83. data/app/components/ariadne/tab_nav_component/tab_nav_component.html.erb +7 -0
  84. data/app/components/ariadne/tab_nav_component.rb +72 -0
  85. data/app/components/ariadne/table_nav_component/table_nav_component.html.erb +52 -0
  86. data/app/components/ariadne/table_nav_component.rb +338 -0
  87. data/app/components/ariadne/text.rb +25 -0
  88. data/app/components/ariadne/time_ago_component/time-ago-component.d.ts +1 -0
  89. data/app/components/ariadne/time_ago_component/time-ago-component.js +1 -0
  90. data/app/components/ariadne/time_ago_component/time-ago-component.ts +1 -0
  91. data/app/components/ariadne/time_ago_component.rb +56 -0
  92. data/app/components/ariadne/timeline_component/timeline_component.html.erb +19 -0
  93. data/app/components/ariadne/timeline_component.rb +34 -0
  94. data/app/components/ariadne/tooltip_component/tooltip-component.d.ts +24 -0
  95. data/app/components/ariadne/tooltip_component/tooltip-component.js +43 -0
  96. data/app/components/ariadne/tooltip_component/tooltip-component.ts +57 -0
  97. data/app/components/ariadne/tooltip_component/tooltip_component.html.erb +4 -0
  98. data/app/components/ariadne/tooltip_component.rb +108 -0
  99. data/lib/ariadne/view_components/engine.rb +0 -22
  100. data/lib/ariadne/view_components/version.rb +1 -1
  101. data/tailwind.config.js +10 -15
  102. metadata +98 -2
@@ -0,0 +1,108 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Ariadne
4
+ # `Tooltip` only appears on mouse hover or keyboard focus and contain a label or description text.
5
+ # Use tooltips sparingly and as a last resort.
6
+ #
7
+ # When using a tooltip, follow the provided guidelines to avoid accessibility issues.
8
+ #
9
+ # - Tooltip text should be brief and to the point. The tooltip content must be a string.
10
+ # - Tooltips should contain only **non-essential text**. Tooltips can easily be missed and are not accessible on touch devices so never
11
+ # use tooltips to convey critical information.
12
+ #
13
+ # @accessibility
14
+ # - **Never set tooltips on static elements.** Tooltips should only be used on interactive elements like buttons or links to avoid excluding keyboard-only users
15
+ # and screen reader users.
16
+ # - Place `Tooltip` adjacent after its trigger element in the DOM. This allows screen reader users to navigate to and copy the tooltip
17
+ # content.
18
+ # ### Which `type` should I set?
19
+ # Setting `:description` establishes an `aria-describedby` relationship, while `:label` establishes an `aria-labelledby` relationship between the trigger element and the tooltip,
20
+ #
21
+ # The `type` drastically changes semantics and screen reader behavior so follow these guidelines carefully:
22
+ # - When there is already a visible label text on the trigger element, the tooltip is likely intended to supplement the existing text, so set `type: :description`.
23
+ # The majority of tooltips will fall under this category.
24
+ # - When there is no visible text on the trigger element and the tooltip content is appropriate as a label for the element, set `type: :label`.
25
+ # This type is usually only appropriate for an icon-only control.
26
+ class TooltipComponent < Ariadne::Component
27
+ DEFAULT_TAG = :tooltip
28
+ DEFAULT_PLACEMENT = :top
29
+ VALID_PLACEMENTS = [DEFAULT_PLACEMENT, :right, :bottom, :left].freeze
30
+
31
+ DEFAULT_CLASSES = "ariadne-invisible ariadne-absolute ariadne-bg-slate-900 ariadne-text-white ariadne-font-semibold ariadne-max-w-xs ariadne-py-1 ariadne-px-2 ariadne-rounded ariadne-z-max"
32
+
33
+ DATA_CONTROLLER = "tooltip-component"
34
+ DATA_ACTION = "mouseover->tooltip-component#show mouseout->tooltip-component#hide"
35
+
36
+ TYPE_DEFAULT = :description
37
+ VALID_TYPES = [:label, TYPE_DEFAULT].freeze
38
+
39
+ # DEFAULT_DATA_ATTRIBUTES = {
40
+ # "data-controller": DATA_CONTROLLER,
41
+ # "data-action": "mouseover->tooltip-component#show mouseout->tooltip-component#hide",
42
+ # "data-tooltip-component-placement": DEFAULT_PLACEMENT,
43
+ # }
44
+
45
+ # @example As a description for an icon-only button
46
+ # @description
47
+ # If the tooltip content provides supplementary description, set `type: :description` to establish an `aria-describedby` relationship.
48
+ # The trigger element should also have a _concise_ accessible label via `aria-label`.
49
+ # @code
50
+ # <%= render(Ariadne::HeroiconComponent.new(icon: :moon, variant: HeroiconsHelper::Icon::VARIANT_OUTLINE, attributes: { id: "bold-button-0" })) %>
51
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "bold-button-0", type: :description, text: "Add bold text", direction: :top)) %>
52
+ # @example As a label for an icon-only button
53
+ # @description
54
+ # If the tooltip labels the icon-only button, set `type: :label`. This tooltip content becomes the accessible name for the button.
55
+ # @code
56
+ # <%= render(Ariadne::ButtonComponent.new(attributes: { id: "like-button" })) { "👍" } %>
57
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "like-button", type: :label, text: "Like", direction: :top)) %>
58
+ #
59
+ # @example As a description for a button with visible label
60
+ # @description
61
+ # If the button already has visible label text, the tooltip content is likely supplementary so set `type: :description`.
62
+ # @code
63
+ # <%= render(Ariadne::ButtonComponent.new(attributes: {id: "save-button"}, scheme: :success)) { "Save" } %>
64
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "save-button", type: :description, text: "This will immediately impact all organization members", direction: :right)) %>
65
+ # @example With direction
66
+ # @description
67
+ # Set direction of tooltip with `direction`. The tooltip is responsive and will automatically adjust direction to avoid cutting off.
68
+ # @code
69
+ # <%= render(Ariadne::ButtonComponent.new(attributes: {id: "North", m: 2})) { "North" } %>
70
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "North", type: :description, text: "This is a North-facing tooltip, and is responsive.", direction: :top)) %>
71
+ # <%= render(Ariadne::ButtonComponent.new(attributes: {id: "South", m: 2})) { "South" } %>
72
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "South", type: :description, text: "This is a South-facing tooltip and is responsive.", direction: :bottom)) %>
73
+ # <%= render(Ariadne::ButtonComponent.new(attributes: {id: "East", m: 2})) { "East" } %>
74
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "East", type: :description, text: "This is a East-facing tooltip and is responsive.", direction: :right)) %>
75
+ # <%= render(Ariadne::ButtonComponent.new(attributes: {id: "West", m: 2})) { "West" } %>
76
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "West""", type: :description, text: "This is a West-facing tooltip and is responsive.", direction: :left)) %>
77
+ # @example With relative parent
78
+ # @description
79
+ # When the tooltip and trigger element have a parent container with `relative: position`, it should not affect width of the tooltip.
80
+ # @code
81
+ # <span style="position: relative;">
82
+ # <%= render(Ariadne::ButtonComponent.new(attributes: {id: "test-button"}, scheme: :info)) { "Test" } %>
83
+ # <%= render(Ariadne::TooltipComponent.new(for_id: "test-button", type: :description, text: "This tooltip should take up the full width", direction: :bottom)) %>
84
+ # </span>
85
+ # @param tag [Symbol, String] The rendered tag name
86
+ # @param for_id [String] The ID of the element that the tooltip should be attached to.
87
+ # @param text [String] The text content of the tooltip. This should be brief and no longer than a sentence.
88
+ # @param type [Symbol] <%= one_of(Ariadne::TooltipComponent::VALID_TYPES) %>
89
+ # @param direction [Symbol] <%= one_of(Ariadne::TooltipComponent::VALID_PLACEMENTS) %>
90
+ # @param classes [String] <%= link_to_classes_docs %>
91
+ # @param attributes [Hash] <%= link_to_attributes_docs %>
92
+ def initialize(tag: DEFAULT_TAG, for_id:, text:, type: TYPE_DEFAULT, direction: DEFAULT_PLACEMENT, classes: "", attributes: {})
93
+ raise TypeError, "tooltip text must be a string" unless text.is_a?(String)
94
+
95
+ @tag = check_incoming_tag(DEFAULT_TAG, tag)
96
+
97
+ @text = text
98
+ @classes = merge_class_names(DEFAULT_CLASSES, classes)
99
+
100
+ @attributes = attributes
101
+ @attributes[:for] = for_id
102
+
103
+ @attributes[:"data-tooltip-component-placement"] = fetch_or_raise(VALID_PLACEMENTS, direction)
104
+ @attributes[:"data-type"] = fetch_or_raise(VALID_TYPES, type)
105
+ @attributes[:"data-tooltip-component-target"] = "tooltip"
106
+ end
107
+ end
108
+ end
@@ -46,28 +46,6 @@ module Ariadne
46
46
  end
47
47
 
48
48
  config.after_initialize do |_app|
49
- # TODO: is any of this necessary???
50
- ActionView::Base.field_error_proc = proc do |html_tag, instance_tag|
51
- fragment = Nokogiri::HTML.fragment(html_tag)
52
- field = fragment.at("input,select,textarea")
53
-
54
- model = instance_tag.object
55
- error_message = model.errors.full_messages.join(", ")
56
-
57
- html = if field
58
- field["class"] = "#{field["class"]} invalid"
59
- html = <<-HTML
60
- #{fragment}
61
- <p class="error">#{error_message}</p>
62
- HTML
63
- html
64
- else
65
- html_tag
66
- end
67
-
68
- html.html_safe # rubocop:disable Rails/OutputSafety
69
- end
70
-
71
49
  Ariadne::ViewComponents.tailwind_merger = TailwindMerge::Merger.new
72
50
  end
73
51
  end
@@ -3,6 +3,6 @@
3
3
  # :nocov:
4
4
  module Ariadne
5
5
  module ViewComponents
6
- VERSION = "0.0.43"
6
+ VERSION = "0.0.44"
7
7
  end
8
8
  end
data/tailwind.config.js CHANGED
@@ -19,7 +19,7 @@ module.exports = {
19
19
  resolve(__dirname, 'app/components/**/*.erb'),
20
20
  resolve(__dirname, 'app/components/**/*.rb'),
21
21
  resolve(__dirname, 'app/lib/ariadne'),
22
- resolve(__dirname, 'static/classes.yml')
22
+ resolve(__dirname, 'static/classes.yml'),
23
23
  ],
24
24
  extract: {
25
25
  yml: content => {
@@ -38,15 +38,10 @@ module.exports = {
38
38
  return rez
39
39
  }
40
40
  return []
41
- }
42
- }
41
+ },
42
+ },
43
43
  },
44
- plugins: [
45
- require('@tailwindcss/aspect-ratio'),
46
- require('@tailwindcss/line-clamp'),
47
- require('@tailwindcss/forms'),
48
- require('@tailwindcss/typography')
49
- ],
44
+ plugins: [require('@tailwindcss/aspect-ratio'), require('@tailwindcss/forms'), require('@tailwindcss/typography')],
50
45
  theme: {
51
46
  extend: {
52
47
  colors: {
@@ -62,14 +57,14 @@ module.exports = {
62
57
  'internal-message': colors.amber['100'],
63
58
 
64
59
  'state-closed': '#da1e28',
65
- 'state-open': '#198038'
60
+ 'state-open': '#198038',
66
61
  },
67
62
  fontFamily: {
68
- sans: ['Inter var', ...defaultTheme.fontFamily.sans]
63
+ sans: ['Inter var', ...defaultTheme.fontFamily.sans],
69
64
  },
70
65
  flexBasis: {
71
- 160: '40rem'
72
- }
73
- }
74
- }
66
+ 160: '40rem',
67
+ },
68
+ },
69
+ },
75
70
  }
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.43
4
+ version: 0.0.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen J. Torikian
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-02 00:00:00.000000000 Z
11
+ date: 2023-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tailwind_merge
@@ -126,6 +126,102 @@ files:
126
126
  - app/assets/stylesheets/dropdown.css
127
127
  - app/assets/stylesheets/prosemirror.css
128
128
  - app/assets/stylesheets/tooltip-component.css
129
+ - app/components/ariadne/ariadne-form.d.ts
130
+ - app/components/ariadne/ariadne-form.js
131
+ - app/components/ariadne/ariadne-form.ts
132
+ - app/components/ariadne/ariadne.d.ts
133
+ - app/components/ariadne/ariadne.js
134
+ - app/components/ariadne/ariadne.ts
135
+ - app/components/ariadne/avatar_component.rb
136
+ - app/components/ariadne/avatar_stack_component.rb
137
+ - app/components/ariadne/avatar_stack_component/avatar_stack_component.html.erb
138
+ - app/components/ariadne/base_button.rb
139
+ - app/components/ariadne/base_component.rb
140
+ - app/components/ariadne/blankslate_component.rb
141
+ - app/components/ariadne/blankslate_component/blankslate_component.html.erb
142
+ - app/components/ariadne/body_component.rb
143
+ - app/components/ariadne/button_component.rb
144
+ - app/components/ariadne/button_component/button_component.html.erb
145
+ - app/components/ariadne/clipboard_copy_component.rb
146
+ - app/components/ariadne/clipboard_copy_component/clipboard-copy-component.d.ts
147
+ - app/components/ariadne/clipboard_copy_component/clipboard-copy-component.js
148
+ - app/components/ariadne/clipboard_copy_component/clipboard-copy-component.ts
149
+ - app/components/ariadne/clipboard_copy_component/clipboard_copy_component.html.erb
150
+ - app/components/ariadne/comment_component.rb
151
+ - app/components/ariadne/comment_component/comment_component.html.erb
152
+ - app/components/ariadne/component.rb
153
+ - app/components/ariadne/container_component.rb
154
+ - app/components/ariadne/container_component/container_component.html.erb
155
+ - app/components/ariadne/content.rb
156
+ - app/components/ariadne/counter_component.rb
157
+ - app/components/ariadne/details_component.rb
158
+ - app/components/ariadne/details_component/details_component.html.erb
159
+ - app/components/ariadne/dropdown/menu_component.html.erb
160
+ - app/components/ariadne/dropdown/menu_component.rb
161
+ - app/components/ariadne/dropdown/menu_component.ts
162
+ - app/components/ariadne/dropdown_component.rb
163
+ - app/components/ariadne/dropdown_component/dropdown_component.html.erb
164
+ - app/components/ariadne/flash_component.rb
165
+ - app/components/ariadne/flash_component/flash_component.html.erb
166
+ - app/components/ariadne/flex_component.rb
167
+ - app/components/ariadne/flex_component/flex_component.html.erb
168
+ - app/components/ariadne/footer_component.rb
169
+ - app/components/ariadne/footer_component/footer_component.html.erb
170
+ - app/components/ariadne/grid_component.rb
171
+ - app/components/ariadne/grid_component/grid_component.html.erb
172
+ - app/components/ariadne/header_component.rb
173
+ - app/components/ariadne/header_component/header_component.html.erb
174
+ - app/components/ariadne/heading_component.rb
175
+ - app/components/ariadne/heroicon_component.rb
176
+ - app/components/ariadne/heroicon_component/heroicon_component.html.erb
177
+ - app/components/ariadne/image_component.rb
178
+ - app/components/ariadne/inline_flex_component.rb
179
+ - app/components/ariadne/inline_flex_component/inline_flex_component.html.erb
180
+ - app/components/ariadne/link_component.rb
181
+ - app/components/ariadne/list_component.rb
182
+ - app/components/ariadne/list_component/list_component.html.erb
183
+ - app/components/ariadne/narrow_container_component.rb
184
+ - app/components/ariadne/narrow_container_component/narrow_container_component.html.erb
185
+ - app/components/ariadne/panel_bar_component.rb
186
+ - app/components/ariadne/panel_bar_component/panel_bar_component.html.erb
187
+ - app/components/ariadne/pill_component.rb
188
+ - app/components/ariadne/pill_component/pill_component.html.erb
189
+ - app/components/ariadne/rich_text_area_component.rb
190
+ - app/components/ariadne/rich_text_area_component/rich-text-area-component.d.ts
191
+ - app/components/ariadne/rich_text_area_component/rich-text-area-component.js
192
+ - app/components/ariadne/rich_text_area_component/rich-text-area-component.ts
193
+ - app/components/ariadne/rich_text_area_component/rich_text_area_component.html.erb
194
+ - app/components/ariadne/slideover_component.rb
195
+ - app/components/ariadne/slideover_component/slideover-component.d.ts
196
+ - app/components/ariadne/slideover_component/slideover-component.js
197
+ - app/components/ariadne/slideover_component/slideover-component.ts
198
+ - app/components/ariadne/slideover_component/slideover_component.html.erb
199
+ - app/components/ariadne/tab_component.rb
200
+ - app/components/ariadne/tab_component/tab_component.html.erb
201
+ - app/components/ariadne/tab_container_component.erb
202
+ - app/components/ariadne/tab_container_component.rb
203
+ - app/components/ariadne/tab_container_component/tab-container-component.d.ts
204
+ - app/components/ariadne/tab_container_component/tab-container-component.js
205
+ - app/components/ariadne/tab_container_component/tab-container-component.ts
206
+ - app/components/ariadne/tab_nav_component.rb
207
+ - app/components/ariadne/tab_nav_component/tab-nav-component.d.ts
208
+ - app/components/ariadne/tab_nav_component/tab-nav-component.js
209
+ - app/components/ariadne/tab_nav_component/tab-nav-component.ts
210
+ - app/components/ariadne/tab_nav_component/tab_nav_component.html.erb
211
+ - app/components/ariadne/table_nav_component.rb
212
+ - app/components/ariadne/table_nav_component/table_nav_component.html.erb
213
+ - app/components/ariadne/text.rb
214
+ - app/components/ariadne/time_ago_component.rb
215
+ - app/components/ariadne/time_ago_component/time-ago-component.d.ts
216
+ - app/components/ariadne/time_ago_component/time-ago-component.js
217
+ - app/components/ariadne/time_ago_component/time-ago-component.ts
218
+ - app/components/ariadne/timeline_component.rb
219
+ - app/components/ariadne/timeline_component/timeline_component.html.erb
220
+ - app/components/ariadne/tooltip_component.rb
221
+ - app/components/ariadne/tooltip_component/tooltip-component.d.ts
222
+ - app/components/ariadne/tooltip_component/tooltip-component.js
223
+ - app/components/ariadne/tooltip_component/tooltip-component.ts
224
+ - app/components/ariadne/tooltip_component/tooltip_component.html.erb
129
225
  - config/importmap.rb
130
226
  - exe/tailwindcss
131
227
  - lib/ariadne/view_components.rb