ariadne_view_components 0.0.59 → 0.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +70 -0
  3. data/LICENSE.txt +661 -49
  4. data/README.md +52 -4
  5. data/app/assets/javascripts/ariadne_view_components.js +98 -7
  6. data/app/assets/javascripts/ariadne_view_components.js.br +0 -0
  7. data/app/assets/javascripts/ariadne_view_components.js.gz +0 -0
  8. data/app/assets/javascripts/ariadne_view_components.js.map +1 -1
  9. data/app/assets/stylesheets/ariadne_view_components.css +1 -7
  10. data/app/assets/stylesheets/ariadne_view_components.css.br +0 -0
  11. data/app/assets/stylesheets/ariadne_view_components.css.gz +0 -0
  12. data/app/components/ariadne/base_component.rb +79 -27
  13. data/app/components/ariadne/behaviors/tooltipable.rb +120 -0
  14. data/app/components/ariadne/conditional_wrapper.rb +21 -0
  15. data/app/components/ariadne/form/base_component.rb +74 -0
  16. data/app/components/ariadne/form/base_input_component.rb +60 -0
  17. data/app/components/ariadne/form/caption/component.html.erb +10 -0
  18. data/app/components/ariadne/form/caption/component.rb +29 -0
  19. data/app/components/ariadne/form/form_control/component.html.erb +19 -0
  20. data/app/components/ariadne/form/form_control/component.rb +27 -0
  21. data/app/components/ariadne/form/form_reference/component.html.erb +1 -0
  22. data/app/components/ariadne/form/form_reference/component.rb +18 -0
  23. data/app/components/ariadne/form/group/component.html.erb +5 -0
  24. data/app/components/ariadne/form/group/component.rb +27 -0
  25. data/app/components/ariadne/form/hidden_field/component.html.erb +1 -0
  26. data/app/components/ariadne/form/hidden_field/component.rb +15 -0
  27. data/app/components/ariadne/form/separator/component.html.erb +1 -0
  28. data/app/components/ariadne/form/separator/component.rb +8 -0
  29. data/app/components/ariadne/form/spacing_wrapper/component.html.erb +3 -0
  30. data/app/components/ariadne/form/spacing_wrapper/component.rb +8 -0
  31. data/app/components/ariadne/form/text_field/component.html.erb +25 -0
  32. data/app/components/ariadne/form/text_field/component.rb +132 -0
  33. data/app/components/ariadne/form/validation_message/component.html.erb +5 -0
  34. data/app/components/ariadne/form/validation_message/component.rb +14 -0
  35. data/app/components/ariadne/layout/narrow/component.html.erb +10 -0
  36. data/app/components/ariadne/layout/narrow/component.rb +24 -0
  37. data/app/components/ariadne/layout/nav_bar/component.css +0 -0
  38. data/app/components/ariadne/layout/nav_bar/component.html.erb +123 -0
  39. data/app/components/ariadne/layout/nav_bar/component.rb +77 -0
  40. data/app/components/ariadne/ui/button/component.html.erb +5 -0
  41. data/app/components/ariadne/ui/button/component.rb +184 -0
  42. data/app/components/ariadne/ui/clipboard_copy/component.html.erb +8 -0
  43. data/app/components/ariadne/ui/clipboard_copy/component.rb +102 -0
  44. data/app/components/ariadne/ui/clipboard_copy/component.ts +54 -0
  45. data/app/components/ariadne/ui/combobox/component.html.erb +32 -0
  46. data/app/components/ariadne/ui/combobox/component.rb +83 -0
  47. data/app/components/ariadne/ui/combobox/component.ts +119 -0
  48. data/app/components/ariadne/ui/combobox/menu_item/component.html.erb +9 -0
  49. data/app/components/ariadne/ui/combobox/menu_item/component.rb +53 -0
  50. data/app/components/ariadne/ui/combobox/option/component.html.erb +11 -0
  51. data/app/components/ariadne/ui/combobox/option/component.rb +45 -0
  52. data/app/components/ariadne/ui/heroicon/component.html.erb +3 -0
  53. data/app/components/ariadne/ui/heroicon/component.rb +141 -0
  54. data/app/components/ariadne/ui/image/component.rb +69 -0
  55. data/app/components/ariadne/ui/link/component.html.erb +3 -0
  56. data/app/components/ariadne/ui/link/component.rb +56 -0
  57. data/app/components/ariadne/ui/typography/component.html.erb +3 -0
  58. data/app/components/ariadne/ui/typography/component.rb +41 -0
  59. data/app/frontend/ariadne/index.ts +14 -0
  60. data/app/frontend/ariadne/stimulus_app.ts +53 -0
  61. data/app/frontend/ariadne/theme.ts +8 -0
  62. data/app/frontend/controllers/tooltip.ts +75 -0
  63. data/app/frontend/entrypoints/application.ts +1 -0
  64. data/app/frontend/stylesheets/ariadne_view_components.css +18 -0
  65. data/app/frontend/stylesheets/scrollbar.css +28 -0
  66. data/app/frontend/stylesheets/tippy.js/themes/tomato.css +4 -0
  67. data/app/frontend/stylesheets/typography.css +117 -0
  68. data/app/frontend/utils/createController.ts +95 -0
  69. data/app/helpers/ariadne/form_helper.rb +31 -0
  70. data/app/lib/ariadne/attributes_helper.rb +119 -0
  71. data/app/lib/ariadne/fetch_or_fallback_helper.rb +1 -1
  72. data/app/lib/ariadne/form.rb +16 -0
  73. data/app/lib/ariadne/view_helper.rb +2 -5
  74. data/app/lib/view_components_contrib/html_attrs.rb +64 -0
  75. data/app/lib/view_components_contrib/style_variants.rb +14 -0
  76. data/lib/ariadne/forms/acts_as_component.rb +125 -0
  77. data/lib/ariadne/forms/base.html.erb +8 -0
  78. data/lib/ariadne/forms/base.rb +132 -0
  79. data/lib/ariadne/forms/buffer_rewriter.rb +51 -0
  80. data/lib/ariadne/forms/builder.rb +88 -0
  81. data/lib/ariadne/forms/dsl/button_input.rb +33 -0
  82. data/lib/ariadne/forms/dsl/form_object.rb +26 -0
  83. data/lib/ariadne/forms/dsl/input.rb +322 -0
  84. data/lib/ariadne/forms/dsl/input_group.rb +34 -0
  85. data/lib/ariadne/forms/dsl/input_methods.rb +157 -0
  86. data/lib/ariadne/forms/dsl/submit_button_input.rb +36 -0
  87. data/lib/ariadne/forms/dsl/text_field_input.rb +73 -0
  88. data/lib/ariadne/forms/utils.rb +34 -0
  89. data/lib/ariadne/generate.rb +11 -0
  90. data/lib/ariadne/view_components/engine.rb +24 -7
  91. data/lib/ariadne/view_components/version.rb +1 -1
  92. data/lib/ariadne/view_components.rb +1 -1
  93. data/lib/ariadne/yard/backend.rb +24 -0
  94. data/lib/ariadne/yard/component_manifest.rb +148 -0
  95. data/lib/ariadne/yard/component_ref.rb +49 -0
  96. data/lib/ariadne/yard/docs_helper.rb +98 -0
  97. data/lib/ariadne/yard/info_arch_docs_helper.rb +31 -0
  98. data/lib/ariadne/yard/lookbook_docs_helper.rb +32 -0
  99. data/lib/ariadne/yard/lookbook_pages_backend.rb +235 -0
  100. data/lib/ariadne/yard/registry.rb +136 -0
  101. data/lib/ariadne/yard/renders_many_handler.rb +23 -0
  102. data/lib/ariadne/yard/renders_one_handler.rb +23 -0
  103. data/lib/ariadne/yard.rb +19 -0
  104. data/static/arguments.yml +141 -48
  105. data/static/audited_at.json +0 -9
  106. data/static/classes.yml +210 -209
  107. data/static/constants.json +2 -209
  108. data/static/statuses.json +0 -9
  109. metadata +140 -210
  110. data/app/assets/builds/ariadne_view_components.css +0 -2202
  111. data/app/assets/javascripts/components/ariadne/accumulator_controller/accumulator_controller.d.ts +0 -22
  112. data/app/assets/javascripts/components/ariadne/ariadne-form.d.ts +0 -22
  113. data/app/assets/javascripts/components/ariadne/ariadne.d.ts +0 -2
  114. data/app/assets/javascripts/components/ariadne/clipboard_copy_component/clipboard-copy-component.d.ts +0 -4
  115. data/app/assets/javascripts/components/ariadne/dropdown/menu_component.d.ts +0 -1
  116. data/app/assets/javascripts/components/ariadne/events_controller/events_controller.d.ts +0 -4
  117. data/app/assets/javascripts/components/ariadne/options_controller/options_controller.d.ts +0 -39
  118. data/app/assets/javascripts/components/ariadne/outlet_manager_controller/outlet_manager_controller.d.ts +0 -42
  119. data/app/assets/javascripts/components/ariadne/slideover_component/slideover-component.d.ts +0 -9
  120. data/app/assets/javascripts/components/ariadne/string_match_controller/string_match_controller.d.ts +0 -27
  121. data/app/assets/javascripts/components/ariadne/synced_boolean_attributes_controller/synced_boolean_attributes_controller.d.ts +0 -48
  122. data/app/assets/javascripts/components/ariadne/tab_container_component/tab-container-component.d.ts +0 -1
  123. data/app/assets/javascripts/components/ariadne/tab_nav_component/tab-nav-component.d.ts +0 -9
  124. data/app/assets/javascripts/components/ariadne/time_ago_component/time-ago-component.d.ts +0 -1
  125. data/app/assets/javascripts/components/ariadne/toggleable_controller/toggleable_controller.d.ts +0 -34
  126. data/app/assets/javascripts/components/ariadne/tooltip_component/tooltip-component.d.ts +0 -24
  127. data/app/assets/stylesheets/dropdown.css +0 -46
  128. data/app/assets/stylesheets/prosemirror.css +0 -323
  129. data/app/assets/stylesheets/tooltip-component.css +0 -37
  130. data/app/components/ariadne/accumulator_controller/accumulator_controller.d.ts +0 -22
  131. data/app/components/ariadne/accumulator_controller/accumulator_controller.js +0 -39
  132. data/app/components/ariadne/accumulator_controller/accumulator_controller.ts +0 -48
  133. data/app/components/ariadne/action_card_component.html.erb +0 -13
  134. data/app/components/ariadne/action_card_component.rb +0 -88
  135. data/app/components/ariadne/ariadne-form.d.ts +0 -22
  136. data/app/components/ariadne/ariadne-form.js +0 -85
  137. data/app/components/ariadne/ariadne.d.ts +0 -2
  138. data/app/components/ariadne/ariadne.js +0 -24
  139. data/app/components/ariadne/ariadne.ts +0 -29
  140. data/app/components/ariadne/avatar_component.rb +0 -81
  141. data/app/components/ariadne/avatar_stack_component/avatar_stack_component.html.erb +0 -12
  142. data/app/components/ariadne/avatar_stack_component.rb +0 -75
  143. data/app/components/ariadne/base_button.rb +0 -70
  144. data/app/components/ariadne/blankslate_component/blankslate_component.html.erb +0 -26
  145. data/app/components/ariadne/blankslate_component.rb +0 -148
  146. data/app/components/ariadne/body_component.rb +0 -30
  147. data/app/components/ariadne/bottom_tab_component.html.erb +0 -4
  148. data/app/components/ariadne/bottom_tab_component.rb +0 -44
  149. data/app/components/ariadne/bottom_tab_nav_component.html.erb +0 -5
  150. data/app/components/ariadne/bottom_tab_nav_component.rb +0 -33
  151. data/app/components/ariadne/breadcrumbs_component.html.erb +0 -13
  152. data/app/components/ariadne/breadcrumbs_component.rb +0 -31
  153. data/app/components/ariadne/button_component/button_component.html.erb +0 -4
  154. data/app/components/ariadne/button_component.rb +0 -165
  155. data/app/components/ariadne/checkbox_component.html.erb +0 -5
  156. data/app/components/ariadne/checkbox_component.rb +0 -43
  157. data/app/components/ariadne/clipboard_copy_component/clipboard-copy-component.d.ts +0 -4
  158. data/app/components/ariadne/clipboard_copy_component/clipboard-copy-component.js +0 -18
  159. data/app/components/ariadne/clipboard_copy_component/clipboard-copy-component.ts +0 -19
  160. data/app/components/ariadne/clipboard_copy_component/clipboard_copy_component.html.erb +0 -9
  161. data/app/components/ariadne/clipboard_copy_component.rb +0 -90
  162. data/app/components/ariadne/close_button_component.html.erb +0 -4
  163. data/app/components/ariadne/close_button_component.rb +0 -33
  164. data/app/components/ariadne/combobox_component.html.erb +0 -14
  165. data/app/components/ariadne/combobox_component.rb +0 -76
  166. data/app/components/ariadne/component.rb +0 -127
  167. data/app/components/ariadne/container_component/container_component.html.erb +0 -3
  168. data/app/components/ariadne/container_component.rb +0 -25
  169. data/app/components/ariadne/content.rb +0 -12
  170. data/app/components/ariadne/counter_component.rb +0 -100
  171. data/app/components/ariadne/details_component/details_component.html.erb +0 -4
  172. data/app/components/ariadne/details_component.rb +0 -81
  173. data/app/components/ariadne/dropdown/menu_component.d.ts +0 -1
  174. data/app/components/ariadne/dropdown/menu_component.html.erb +0 -20
  175. data/app/components/ariadne/dropdown/menu_component.js +0 -1
  176. data/app/components/ariadne/dropdown/menu_component.rb +0 -101
  177. data/app/components/ariadne/dropdown/menu_component.ts +0 -1
  178. data/app/components/ariadne/dropdown_component/dropdown_component.html.erb +0 -8
  179. data/app/components/ariadne/dropdown_component.rb +0 -172
  180. data/app/components/ariadne/events_controller/events_controller.d.ts +0 -4
  181. data/app/components/ariadne/events_controller/events_controller.js +0 -6
  182. data/app/components/ariadne/events_controller/events_controller.ts +0 -7
  183. data/app/components/ariadne/flash_component/flash_component.html.erb +0 -31
  184. data/app/components/ariadne/flash_component.rb +0 -128
  185. data/app/components/ariadne/flex_component/flex_component.html.erb +0 -5
  186. data/app/components/ariadne/flex_component.rb +0 -56
  187. data/app/components/ariadne/footer_component/footer_component.html.erb +0 -7
  188. data/app/components/ariadne/footer_component.rb +0 -23
  189. data/app/components/ariadne/grid_component/grid_component.html.erb +0 -26
  190. data/app/components/ariadne/grid_component.rb +0 -67
  191. data/app/components/ariadne/header_component/header_component.html.erb +0 -29
  192. data/app/components/ariadne/header_component.rb +0 -111
  193. data/app/components/ariadne/heading_component.rb +0 -49
  194. data/app/components/ariadne/heroicon_component/heroicon_component.html.erb +0 -4
  195. data/app/components/ariadne/heroicon_component.rb +0 -166
  196. data/app/components/ariadne/image_component.rb +0 -53
  197. data/app/components/ariadne/inline_flex_component/inline_flex_component.html.erb +0 -6
  198. data/app/components/ariadne/inline_flex_component.rb +0 -72
  199. data/app/components/ariadne/layout_component.html.erb +0 -21
  200. data/app/components/ariadne/layout_component.rb +0 -69
  201. data/app/components/ariadne/link_component.rb +0 -65
  202. data/app/components/ariadne/list_component/list_component.html.erb +0 -3
  203. data/app/components/ariadne/list_component.rb +0 -70
  204. data/app/components/ariadne/modal_component.html.erb +0 -11
  205. data/app/components/ariadne/modal_component.rb +0 -88
  206. data/app/components/ariadne/narrow_container_component/narrow_container_component.html.erb +0 -3
  207. data/app/components/ariadne/narrow_container_component.rb +0 -30
  208. data/app/components/ariadne/options_controller/options_controller.d.ts +0 -39
  209. data/app/components/ariadne/options_controller/options_controller.js +0 -89
  210. data/app/components/ariadne/options_controller/options_controller.ts +0 -122
  211. data/app/components/ariadne/outlet_manager_controller/outlet_manager_controller.d.ts +0 -42
  212. data/app/components/ariadne/outlet_manager_controller/outlet_manager_controller.js +0 -237
  213. data/app/components/ariadne/outlet_manager_controller/outlet_manager_controller.ts +0 -278
  214. data/app/components/ariadne/panel_bar_component/panel_bar_component.html.erb +0 -20
  215. data/app/components/ariadne/panel_bar_component.rb +0 -80
  216. data/app/components/ariadne/pill_component/pill_component.html.erb +0 -3
  217. data/app/components/ariadne/pill_component.rb +0 -44
  218. data/app/components/ariadne/popover_component.html.erb +0 -10
  219. data/app/components/ariadne/popover_component.rb +0 -81
  220. data/app/components/ariadne/progress_bar_component.html.erb +0 -5
  221. data/app/components/ariadne/progress_bar_component.rb +0 -63
  222. data/app/components/ariadne/relative_time_component.html.erb +0 -3
  223. data/app/components/ariadne/relative_time_component.rb +0 -61
  224. data/app/components/ariadne/show_more_button_component.html.erb +0 -11
  225. data/app/components/ariadne/show_more_button_component.rb +0 -47
  226. data/app/components/ariadne/slideover_component/slideover-component.d.ts +0 -9
  227. data/app/components/ariadne/slideover_component/slideover-component.js +0 -11
  228. data/app/components/ariadne/slideover_component/slideover-component.ts +0 -17
  229. data/app/components/ariadne/slideover_component/slideover_component.html.erb +0 -9
  230. data/app/components/ariadne/slideover_component.rb +0 -66
  231. data/app/components/ariadne/spinner_component.html.erb +0 -16
  232. data/app/components/ariadne/spinner_component.rb +0 -45
  233. data/app/components/ariadne/string_match_controller/string_match_controller.d.ts +0 -27
  234. data/app/components/ariadne/string_match_controller/string_match_controller.js +0 -51
  235. data/app/components/ariadne/string_match_controller/string_match_controller.ts +0 -65
  236. data/app/components/ariadne/subheader_component.html.erb +0 -11
  237. data/app/components/ariadne/subheader_component.rb +0 -65
  238. data/app/components/ariadne/synced_boolean_attributes_controller/synced_boolean_attributes_controller.d.ts +0 -48
  239. data/app/components/ariadne/synced_boolean_attributes_controller/synced_boolean_attributes_controller.js +0 -207
  240. data/app/components/ariadne/synced_boolean_attributes_controller/synced_boolean_attributes_controller.ts +0 -256
  241. data/app/components/ariadne/tab_component/tab_component.html.erb +0 -3
  242. data/app/components/ariadne/tab_component.rb +0 -98
  243. data/app/components/ariadne/tab_container_component/tab-container-component.d.ts +0 -1
  244. data/app/components/ariadne/tab_container_component/tab-container-component.js +0 -23
  245. data/app/components/ariadne/tab_container_component/tab-container-component.ts +0 -24
  246. data/app/components/ariadne/tab_container_component.erb +0 -10
  247. data/app/components/ariadne/tab_container_component.rb +0 -68
  248. data/app/components/ariadne/tab_nav_component/tab-nav-component.d.ts +0 -9
  249. data/app/components/ariadne/tab_nav_component/tab-nav-component.js +0 -33
  250. data/app/components/ariadne/tab_nav_component/tab-nav-component.ts +0 -34
  251. data/app/components/ariadne/tab_nav_component/tab_nav_component.html.erb +0 -7
  252. data/app/components/ariadne/tab_nav_component.rb +0 -72
  253. data/app/components/ariadne/table_nav_component/table_nav_component.html.erb +0 -52
  254. data/app/components/ariadne/table_nav_component.rb +0 -338
  255. data/app/components/ariadne/text.rb +0 -25
  256. data/app/components/ariadne/time_ago_component/time-ago-component.d.ts +0 -1
  257. data/app/components/ariadne/time_ago_component/time-ago-component.js +0 -1
  258. data/app/components/ariadne/time_ago_component/time-ago-component.ts +0 -1
  259. data/app/components/ariadne/time_ago_component.rb +0 -56
  260. data/app/components/ariadne/timeline_component/timeline_component.html.erb +0 -19
  261. data/app/components/ariadne/timeline_component.rb +0 -34
  262. data/app/components/ariadne/toggle_component/toggle_component.html.erb +0 -15
  263. data/app/components/ariadne/toggle_component.rb +0 -95
  264. data/app/components/ariadne/toggleable_controller/toggleable_controller.d.ts +0 -34
  265. data/app/components/ariadne/toggleable_controller/toggleable_controller.js +0 -54
  266. data/app/components/ariadne/toggleable_controller/toggleable_controller.ts +0 -77
  267. data/app/components/ariadne/tooltip_component/tooltip-component.d.ts +0 -24
  268. data/app/components/ariadne/tooltip_component/tooltip-component.js +0 -43
  269. data/app/components/ariadne/tooltip_component/tooltip-component.ts +0 -57
  270. data/app/components/ariadne/tooltip_component/tooltip_component.html.erb +0 -4
  271. data/app/components/ariadne/tooltip_component.rb +0 -108
  272. data/app/lib/ariadne/action_view_extensions/form_helper.rb +0 -30
  273. data/app/lib/ariadne/audited/dsl.rb +0 -32
  274. data/app/lib/ariadne/form_builder.rb +0 -80
  275. data/app/lib/ariadne/status/dsl.rb +0 -41
  276. data/config/importmap.rb +0 -3
  277. data/exe/tailwindcss +0 -21
  278. data/lib/rubocop/cop/ariadne/base_cop.rb +0 -26
  279. data/tailwind.config.js +0 -70
@@ -0,0 +1,136 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :nocov:
4
+
5
+ require "view_component/test_helpers"
6
+
7
+ module Ariadne
8
+ module Yard
9
+ # A wrapper around a YARD class reference that provides convenience methods
10
+ # for extracting component parameters, accessibility status, etc.
11
+ class RegistryEntry
12
+ include DocsHelper
13
+
14
+ attr_reader :component, :docs
15
+
16
+ delegate_missing_to :docs
17
+
18
+ def initialize(component, docs)
19
+ @component = component
20
+ @docs = docs
21
+ end
22
+
23
+ def metadata
24
+ @metadata ||= begin
25
+ status_module, short_name, class_name = status_module_and_short_name(component)
26
+ status = component.status.to_s
27
+ a11y_reviewed = component.audited_at.nil? ? "false" : "true"
28
+
29
+ {
30
+ title: class_name,
31
+ class_name: class_name,
32
+ component_id: short_name.underscore,
33
+ status: status.capitalize,
34
+ status_module: status_module,
35
+ short_name: short_name,
36
+ a11y_reviewed: a11y_reviewed,
37
+ }
38
+ end
39
+ end
40
+
41
+ def constructor
42
+ docs.meths.find(&:constructor?)
43
+ end
44
+
45
+ def params
46
+ constructor&.tags(:param) || []
47
+ end
48
+
49
+ def slot_methods
50
+ public_methods.select { |mtd| slot_method?(mtd) }
51
+ end
52
+
53
+ def non_slot_methods
54
+ public_methods.reject { |mtd| slot_method?(mtd) }
55
+ end
56
+
57
+ def slot_method?(mtd)
58
+ mtd[:renders_one] || mtd[:renders_many]
59
+ end
60
+
61
+ def public_methods
62
+ # Returns: only public methods that belong to this class (i.e. no inherited methods)
63
+ # excluding the constructor
64
+ @public_methods ||= docs.meths.reject do |mtd|
65
+ mtd.tag(:private) || mtd.name == :initialize
66
+ end
67
+ end
68
+
69
+ def title
70
+ metadata[:title]
71
+ end
72
+
73
+ def component_id
74
+ metadata[:component_id]
75
+ end
76
+
77
+ def status
78
+ metadata[:status]
79
+ end
80
+
81
+ def status_module
82
+ metadata[:status_module]
83
+ end
84
+
85
+ def short_name
86
+ metadata[:short_name]
87
+ end
88
+
89
+ def a11y_reviewed?
90
+ metadata[:a11y_reviewed]
91
+ end
92
+
93
+ def manifest_entry
94
+ @manifest_entry ||= ComponentManifest.ref_for(component)
95
+ end
96
+ end
97
+
98
+ # Wrapper around an instance of YARD::Registry that provides easy access to component
99
+ # documentation.
100
+ class Registry
101
+ class << self
102
+ include ViewComponent::TestHelpers
103
+ include Ariadne::ViewHelper
104
+ include Ariadne::Yard::DocsHelper
105
+
106
+ def make
107
+ registry = ::YARD::RegistryStore.new
108
+ registry.load!(File.expand_path(File.join("..", "..", "..", ".yardoc"), __dir__))
109
+
110
+ new(registry)
111
+ end
112
+ end
113
+
114
+ attr_reader :yard_registry
115
+
116
+ def initialize(yard_registry)
117
+ @yard_registry = yard_registry
118
+ end
119
+
120
+ def find(component)
121
+ return entries[component] if entries.include?(component)
122
+
123
+ return unless (docs = yard_registry.get(component.name))
124
+
125
+ entries[component] = RegistryEntry.new(component, docs)
126
+ end
127
+
128
+ private
129
+
130
+ def entries
131
+ @entries ||= {}
132
+ end
133
+ end
134
+ end
135
+ end
136
+ # :nocov:
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :nocov:
4
+ module Ariadne
5
+ module Yard
6
+ # YARD Handler to parse `renders_many` calls.
7
+ class RendersManyHandler < ::YARD::Handlers::Ruby::Base
8
+ handles method_call(:renders_many)
9
+ namespace_only
10
+
11
+ process do
12
+ name = statement.parameters.first.jump(:tstring_content, :ident).source
13
+ object = ::YARD::CodeObjects::MethodObject.new(namespace, name)
14
+ register(object)
15
+ parse_block(statement.last, owner: object)
16
+
17
+ object.dynamic = true
18
+ object[:renders_many] = true
19
+ end
20
+ end
21
+ end
22
+ end
23
+ # :nocov:
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :nocov:
4
+ module Ariadne
5
+ module Yard
6
+ # YARD Handler to parse `renders_one` calls.
7
+ class RendersOneHandler < ::YARD::Handlers::Ruby::Base
8
+ handles method_call(:renders_one)
9
+ namespace_only
10
+
11
+ process do
12
+ name = statement.parameters.first.jump(:tstring_content, :ident).source
13
+ object = ::YARD::CodeObjects::MethodObject.new(namespace, name)
14
+ register(object)
15
+ parse_block(statement.last, owner: object)
16
+
17
+ object.dynamic = true
18
+ object[:renders_one] = true
19
+ end
20
+ end
21
+ end
22
+ end
23
+ # :nocov:
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "yard"
4
+
5
+ module Ariadne
6
+ # :nodoc:
7
+ module Yard
8
+ autoload :Backend, "primer/yard/backend"
9
+ autoload :ComponentManifest, "primer/yard/component_manifest"
10
+ autoload :ComponentRef, "primer/yard/component_ref"
11
+ autoload :DocsHelper, "primer/yard/docs_helper"
12
+ autoload :InfoArchDocsHelper, "primer/yard/info_arch_docs_helper"
13
+ autoload :Registry, "primer/yard/registry"
14
+ autoload :RendersManyHandler, "primer/yard/renders_many_handler"
15
+ autoload :RendersOneHandler, "primer/yard/renders_one_handler"
16
+
17
+ ::YARD::Tags::Library.define_tag("Snapshot preview", :snapshot)
18
+ end
19
+ end
data/static/arguments.yml CHANGED
@@ -99,6 +99,33 @@
99
99
  type: Hash
100
100
  default: "`{}`"
101
101
  description: "[Classes and attributes](/classes-attributes)"
102
+ - component: BreadcrumbsComponent
103
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/breadcrumbs_component.rb
104
+ parameters:
105
+ - name: tag
106
+ type: Symbol, String
107
+ default: "`:nav`"
108
+ description: The rendered tag name.
109
+ - name: items
110
+ type: Array<Hash>
111
+ default: "`[]`"
112
+ description: The items to display in the breadcrumb.
113
+ - name: classes
114
+ type: String
115
+ default: '`""`'
116
+ description: "[Classes and attributes](/classes-attributes)"
117
+ - name: item_classes
118
+ type: String
119
+ default: '`""`'
120
+ description: List of additional classes to apply to each item.
121
+ - name: active_item_classes
122
+ type: String
123
+ default: '`""`'
124
+ description: List of additional classes to apply to the active item.
125
+ - name: attributes
126
+ type: Hash
127
+ default: "`{}`"
128
+ description: "[Classes and attributes](/classes-attributes)"
102
129
  - component: ButtonComponent
103
130
  source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/button_component.rb
104
131
  parameters:
@@ -131,6 +158,33 @@
131
158
  type: Hash
132
159
  default: "`{}`"
133
160
  description: "[Classes and attributes](/classes-attributes)"
161
+ - component: CheckboxComponent
162
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/checkbox_component.rb
163
+ parameters:
164
+ - name: tag
165
+ type: Symbol, String
166
+ default: "`:label`"
167
+ description: The rendered tag name.
168
+ - name: classes
169
+ type: String
170
+ default: '`""`'
171
+ description: "[Classes and attributes](/classes-attributes)"
172
+ - name: input_classes
173
+ type: String
174
+ default: '`""`'
175
+ description: List of additional classes to apply to the input.
176
+ - name: initial_value
177
+ type: Boolean
178
+ default: "`false`"
179
+ description: The initial value of the checkbox.
180
+ - name: attributes
181
+ type: Hash
182
+ default: "`{}`"
183
+ description: "[Classes and attributes](/classes-attributes)"
184
+ - name: input_attributes
185
+ type: Hash
186
+ default: "`{}`"
187
+ description: "[Classes and attributes](/classes-attributes)"
134
188
  - component: ClipboardCopyComponent
135
189
  source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/clipboard_copy_component.rb
136
190
  parameters:
@@ -159,29 +213,44 @@
159
213
  type: Hash
160
214
  default: "`{}`"
161
215
  description: "[Classes and attributes](/classes-attributes)"
162
- - component: CommentComponent
163
- source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/comment_component.rb
216
+ - component: CloseButtonComponent
217
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/close_button_component.rb
164
218
  parameters:
165
- - name: url
166
- type: String
167
- default: N/A
168
- description: The URL to take action against.
169
- - name: method
170
- type: String
171
- default: "`:post`"
172
- description: The method to use when submitting the form.
173
- - name: sr_label
174
- type: String
175
- default: N/A
176
- description: A label to introduce these tabs for screen readers.
177
- - name: hidden_fields
178
- type: "[String]"
179
- default: "`[]`"
180
- description: An array of arrays of additional (hidden) fields to add to the form.
219
+ - name: tag
220
+ type: Symbol, String
221
+ default: "`:button`"
222
+ description: The rendered tag name.
181
223
  - name: classes
182
224
  type: String
183
225
  default: '`""`'
184
226
  description: "[Classes and attributes](/classes-attributes)"
227
+ - name: icon_classes
228
+ type: String
229
+ default: '`""`'
230
+ description: Classes to apply to the icon.
231
+ - name: size
232
+ type: Symbol
233
+ default: "`:xs`"
234
+ description: One of `:xs` (`16`), `:sm` (`20`), `:md` (`24`), or `:lg` (`128`).
235
+ - name: aria_label
236
+ type: String
237
+ default: "`nil`"
238
+ description: A label for the button that describes what it will close.
239
+ - name: scheme
240
+ type: Symbol
241
+ default: "`:none`"
242
+ description: One of `:link` (`ariadne-cursor-pointer ariadne-font-semibold ariadne-underline
243
+ ariadne-decoration-double`), `:none` (``), `:default` (`ariadne-text-slate-800
244
+ ariadne-bg-slate-50 hover:ariadne-bg-slate-100 ariadne-border-slate-300 focus:ariadne-ring-offset-slate-50
245
+ focus:ariadne-ring-slate-600`), `:info` (`ariadne-text-slate-800 ariadne-bg-slate-50
246
+ hover:ariadne-bg-slate-100 ariadne-border-slate-300 focus:ariadne-ring-offset-blue-50
247
+ focus:ariadne-ring-slate-600`), `:success` (`ariadne-text-green-800 ariadne-bg-green-50
248
+ hover:ariadne-bg-green-100 ariadne-border-green-300 focus:ariadne-ring-offset-green-50
249
+ focus:ariadne-ring-green-600`), `:warning` (`ariadne-text-yellow-800 ariadne-bg-yellow-50
250
+ hover:ariadne-bg-yellow-100 ariadne-border-yellow-300 focus:ariadne-ring-offset-yellow-50
251
+ focus:ariadne-ring-yellow-600`), or `:danger` (`ariadne-text-red-800 ariadne-bg-red-50
252
+ hover:ariadne-bg-red-100 ariadne-border-red-300 focus:ariadne-ring-offset-red-50
253
+ focus:ariadne-ring-red-600`).
185
254
  - name: attributes
186
255
  type: Hash
187
256
  default: "`{}`"
@@ -240,13 +309,17 @@
240
309
  - name: overlay
241
310
  type: Symbol
242
311
  default: "`:none`"
243
- description: Dictates the type of overlay to render with. One of `:default` and
244
- `:none`.
312
+ description: Dictates the type of overlay to render with. One of `:dark`, `:default`,
313
+ or `:none`.
245
314
  - name: reset
246
315
  type: Boolean
247
316
  default: "`true`"
248
317
  description: If set to true, it will remove the default caret and remove style
249
318
  from the summary element
319
+ - name: disabled
320
+ type: Boolean
321
+ default: "`false`"
322
+ description: Whether or not to disable the summary button.
250
323
  - name: classes
251
324
  type: String
252
325
  default: '`""`'
@@ -261,7 +334,7 @@
261
334
  - name: overlay
262
335
  type: Symbol
263
336
  default: "`:default`"
264
- description: One of `:default` and `:none`.
337
+ description: One of `:dark`, `:default`, or `:none`.
265
338
  - name: with_caret
266
339
  type: Boolean
267
340
  default: "`false`"
@@ -524,25 +597,60 @@
524
597
  type: Hash
525
598
  default: "`{}`"
526
599
  description: "[Classes and attributes](/classes-attributes)"
527
- - component: RichTextAreaComponent
528
- source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/rich_text_area_component.rb
600
+ - component: ProgressBarComponent
601
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/progress_bar_component.rb
529
602
  parameters:
530
- - name: name
603
+ - name: tag
604
+ type: Symbol, String
605
+ default: "`DEFAULT_TAGS[:wrapper]`"
606
+ description: The rendered tag name.
607
+ - name: min
608
+ type: Integer
609
+ default: "`0`"
610
+ description: The minimum value of the progress bar.
611
+ - name: max
612
+ type: Integer
613
+ default: "`100`"
614
+ description: The maximum value of the progress bar.
615
+ - name: size
531
616
  type: Symbol
532
- default: N/A
533
- description: Identifies the form/param name for this rich text area.
534
- - name: sr_label
617
+ default: "`:md`"
618
+ description: One of `:sm` (`ariadne-h-2`), `:md` (`ariadne-h-3`), or `:lg` (`ariadne-h-4`).
619
+ - name: classes
535
620
  type: String
536
- default: N/A
537
- description: A label to introduce these tabs for screen readers.
538
- - name: has_form
539
- type: Boolean
540
- default: "`true`"
541
- description: Indicates whether this component is wrapped in a form.
621
+ default: '`""`'
622
+ description: "[Classes and attributes](/classes-attributes)"
623
+ - name: attributes
624
+ type: Hash
625
+ default: "`{}`"
626
+ description: "[Classes and attributes](/classes-attributes)"
627
+ - component: RelativeTimeComponent
628
+ source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/relative_time_component.rb
629
+ parameters:
630
+ - name: tag
631
+ type: Symbol, String
632
+ default: "`:span`"
633
+ description: The rendered tag name.
542
634
  - name: classes
543
635
  type: String
544
636
  default: '`""`'
545
637
  description: "[Classes and attributes](/classes-attributes)"
638
+ - name: time
639
+ type: Time
640
+ default: "`nil`"
641
+ description: The time to display.
642
+ - name: format
643
+ type: String
644
+ default: "`%b %-d, %Y`"
645
+ description: The format to display the time in.
646
+ - name: date_format_switch
647
+ type: Integer
648
+ default: "`2592000`"
649
+ description: The number of seconds after which to switch to the date format.
650
+ - name: force_relative
651
+ type: Boolean
652
+ default: "`false`"
653
+ description: Force the time to be displayed in relative format.
546
654
  - name: attributes
547
655
  type: Hash
548
656
  default: "`{}`"
@@ -574,21 +682,6 @@
574
682
  type: Hash
575
683
  default: "`{}`"
576
684
  description: "[Classes and attributes](/classes-attributes)"
577
- - component: SubheaderComponent
578
- source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/subheader_component.rb
579
- parameters:
580
- - name: tag
581
- type: Symbol, String
582
- default: "`:p`"
583
- description: The rendered tag name.
584
- - name: classes
585
- type: String
586
- default: '`""`'
587
- description: "[Classes and attributes](/classes-attributes)"
588
- - name: attributes
589
- type: Hash
590
- default: "`{}`"
591
- description: "[Classes and attributes](/classes-attributes)"
592
685
  - component: TabComponent
593
686
  source: https://github.com/yettoapp/ariadne/ruby/view_components/tree/main/app/components/ariadne/tab_component.rb
594
687
  parameters:
@@ -1,19 +1,15 @@
1
1
  {
2
- "Ariadne::ActionCardComponent": "",
3
2
  "Ariadne::AvatarComponent": "",
4
3
  "Ariadne::AvatarStackComponent": "",
5
4
  "Ariadne::BaseButton": "",
6
5
  "Ariadne::BaseComponent": "",
7
6
  "Ariadne::BlankslateComponent": "",
8
7
  "Ariadne::BodyComponent": "",
9
- "Ariadne::BottomTabComponent": "",
10
- "Ariadne::BottomTabNavComponent": "",
11
8
  "Ariadne::BreadcrumbsComponent": "",
12
9
  "Ariadne::ButtonComponent": "",
13
10
  "Ariadne::CheckboxComponent": "",
14
11
  "Ariadne::ClipboardCopyComponent": "",
15
12
  "Ariadne::CloseButtonComponent": "",
16
- "Ariadne::ComboboxComponent": "",
17
13
  "Ariadne::ContainerComponent": "",
18
14
  "Ariadne::Content": "",
19
15
  "Ariadne::CounterComponent": "",
@@ -31,22 +27,17 @@
31
27
  "Ariadne::HeroiconComponent": "",
32
28
  "Ariadne::ImageComponent": "",
33
29
  "Ariadne::InlineFlexComponent": "",
34
- "Ariadne::LayoutComponent": "",
35
30
  "Ariadne::LinkComponent": "",
36
31
  "Ariadne::ListComponent": "",
37
32
  "Ariadne::ListComponent::ListItem": "",
38
- "Ariadne::ModalComponent": "",
39
33
  "Ariadne::NarrowContainerComponent": "",
40
34
  "Ariadne::PanelBarComponent": "",
41
35
  "Ariadne::PanelBarComponent::PanelItem": "",
42
36
  "Ariadne::PillComponent": "",
43
- "Ariadne::PopoverComponent": "",
44
37
  "Ariadne::ProgressBarComponent": "",
45
38
  "Ariadne::RelativeTimeComponent": "",
46
- "Ariadne::ShowMoreButtonComponent": "",
47
39
  "Ariadne::SlideoverComponent": "",
48
40
  "Ariadne::SpinnerComponent": "",
49
- "Ariadne::SubheaderComponent": "",
50
41
  "Ariadne::TabComponent": "",
51
42
  "Ariadne::TabContainerComponent": "",
52
43
  "Ariadne::TabNavComponent": "",