openproject-primer_view_components 0.6.3

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 (733) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2931 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +17 -0
  5. data/app/assets/javascripts/app/components/primer/alpha/action_bar_element.d.ts +16 -0
  6. data/app/assets/javascripts/app/components/primer/alpha/action_menu/action_menu_element.d.ts +31 -0
  7. data/app/assets/javascripts/app/components/primer/alpha/dropdown/menu.d.ts +1 -0
  8. data/app/assets/javascripts/app/components/primer/alpha/dropdown.d.ts +1 -0
  9. data/app/assets/javascripts/app/components/primer/alpha/image_crop.d.ts +1 -0
  10. data/app/assets/javascripts/app/components/primer/alpha/modal_dialog.d.ts +18 -0
  11. data/app/assets/javascripts/app/components/primer/alpha/nav_list.d.ts +28 -0
  12. data/app/assets/javascripts/app/components/primer/alpha/segmented_control.d.ts +12 -0
  13. data/app/assets/javascripts/app/components/primer/alpha/tab_container.d.ts +1 -0
  14. data/app/assets/javascripts/app/components/primer/alpha/toggle_switch.d.ts +30 -0
  15. data/app/assets/javascripts/app/components/primer/alpha/tool_tip.d.ts +26 -0
  16. data/app/assets/javascripts/app/components/primer/alpha/x_banner.d.ts +13 -0
  17. data/app/assets/javascripts/app/components/primer/anchored_position.d.ts +27 -0
  18. data/app/assets/javascripts/app/components/primer/beta/auto_complete/auto_complete.d.ts +1 -0
  19. data/app/assets/javascripts/app/components/primer/beta/clipboard_copy.d.ts +1 -0
  20. data/app/assets/javascripts/app/components/primer/beta/relative_time.d.ts +1 -0
  21. data/app/assets/javascripts/app/components/primer/focus_group.d.ts +19 -0
  22. data/app/assets/javascripts/app/components/primer/primer.d.ts +21 -0
  23. data/app/assets/javascripts/lib/primer/forms/primer_multi_input.d.ts +10 -0
  24. data/app/assets/javascripts/lib/primer/forms/primer_text_field.d.ts +1 -0
  25. data/app/assets/javascripts/lib/primer/forms/toggle_switch_input.d.ts +5 -0
  26. data/app/assets/javascripts/primer_view_components.js +2 -0
  27. data/app/assets/javascripts/primer_view_components.js.map +1 -0
  28. data/app/assets/styles/primer_view_components.css +1 -0
  29. data/app/assets/styles/primer_view_components.css.map +1 -0
  30. data/app/components/primer/alpha/action_bar/divider.rb +30 -0
  31. data/app/components/primer/alpha/action_bar/item.rb +26 -0
  32. data/app/components/primer/alpha/action_bar.css +1 -0
  33. data/app/components/primer/alpha/action_bar.css.json +17 -0
  34. data/app/components/primer/alpha/action_bar.css.map +1 -0
  35. data/app/components/primer/alpha/action_bar.html.erb +12 -0
  36. data/app/components/primer/alpha/action_bar.pcss +69 -0
  37. data/app/components/primer/alpha/action_bar.rb +109 -0
  38. data/app/components/primer/alpha/action_bar_element.d.ts +16 -0
  39. data/app/components/primer/alpha/action_bar_element.js +172 -0
  40. data/app/components/primer/alpha/action_bar_element.ts +175 -0
  41. data/app/components/primer/alpha/action_list/divider.rb +35 -0
  42. data/app/components/primer/alpha/action_list/form_wrapper.html.erb +10 -0
  43. data/app/components/primer/alpha/action_list/form_wrapper.rb +61 -0
  44. data/app/components/primer/alpha/action_list/heading.html.erb +8 -0
  45. data/app/components/primer/alpha/action_list/heading.rb +50 -0
  46. data/app/components/primer/alpha/action_list/item.html.erb +53 -0
  47. data/app/components/primer/alpha/action_list/item.rb +301 -0
  48. data/app/components/primer/alpha/action_list.css +1 -0
  49. data/app/components/primer/alpha/action_list.css.json +134 -0
  50. data/app/components/primer/alpha/action_list.css.map +1 -0
  51. data/app/components/primer/alpha/action_list.html.erb +20 -0
  52. data/app/components/primer/alpha/action_list.pcss +697 -0
  53. data/app/components/primer/alpha/action_list.rb +256 -0
  54. data/app/components/primer/alpha/action_menu/action_menu_element.d.ts +31 -0
  55. data/app/components/primer/alpha/action_menu/action_menu_element.js +241 -0
  56. data/app/components/primer/alpha/action_menu/action_menu_element.ts +252 -0
  57. data/app/components/primer/alpha/action_menu/list.rb +123 -0
  58. data/app/components/primer/alpha/action_menu.html.erb +26 -0
  59. data/app/components/primer/alpha/action_menu.rb +411 -0
  60. data/app/components/primer/alpha/auto_complete/auto_complete.html.erb +24 -0
  61. data/app/components/primer/alpha/auto_complete/item.rb +46 -0
  62. data/app/components/primer/alpha/auto_complete.css +1 -0
  63. data/app/components/primer/alpha/auto_complete.css.json +23 -0
  64. data/app/components/primer/alpha/auto_complete.css.map +1 -0
  65. data/app/components/primer/alpha/auto_complete.pcss +118 -0
  66. data/app/components/primer/alpha/auto_complete.rb +158 -0
  67. data/app/components/primer/alpha/banner.css +1 -0
  68. data/app/components/primer/alpha/banner.css.json +24 -0
  69. data/app/components/primer/alpha/banner.css.map +1 -0
  70. data/app/components/primer/alpha/banner.html.erb +33 -0
  71. data/app/components/primer/alpha/banner.pcss +126 -0
  72. data/app/components/primer/alpha/banner.rb +141 -0
  73. data/app/components/primer/alpha/button_marketing.css +1 -0
  74. data/app/components/primer/alpha/button_marketing.css.json +33 -0
  75. data/app/components/primer/alpha/button_marketing.css.map +1 -0
  76. data/app/components/primer/alpha/button_marketing.pcss +168 -0
  77. data/app/components/primer/alpha/button_marketing.rb +73 -0
  78. data/app/components/primer/alpha/check_box.rb +74 -0
  79. data/app/components/primer/alpha/check_box_group.rb +36 -0
  80. data/app/components/primer/alpha/dialog/body.rb +28 -0
  81. data/app/components/primer/alpha/dialog/footer.rb +34 -0
  82. data/app/components/primer/alpha/dialog/header.html.erb +17 -0
  83. data/app/components/primer/alpha/dialog/header.rb +40 -0
  84. data/app/components/primer/alpha/dialog.css +1 -0
  85. data/app/components/primer/alpha/dialog.css.json +80 -0
  86. data/app/components/primer/alpha/dialog.css.map +1 -0
  87. data/app/components/primer/alpha/dialog.html.erb +12 -0
  88. data/app/components/primer/alpha/dialog.pcss +482 -0
  89. data/app/components/primer/alpha/dialog.rb +176 -0
  90. data/app/components/primer/alpha/dropdown/menu.d.ts +1 -0
  91. data/app/components/primer/alpha/dropdown/menu.html.erb +25 -0
  92. data/app/components/primer/alpha/dropdown/menu.js +1 -0
  93. data/app/components/primer/alpha/dropdown/menu.rb +107 -0
  94. data/app/components/primer/alpha/dropdown/menu.ts +1 -0
  95. data/app/components/primer/alpha/dropdown.css +1 -0
  96. data/app/components/primer/alpha/dropdown.css.json +40 -0
  97. data/app/components/primer/alpha/dropdown.css.map +1 -0
  98. data/app/components/primer/alpha/dropdown.d.ts +1 -0
  99. data/app/components/primer/alpha/dropdown.html.erb +9 -0
  100. data/app/components/primer/alpha/dropdown.js +1 -0
  101. data/app/components/primer/alpha/dropdown.pcss +261 -0
  102. data/app/components/primer/alpha/dropdown.rb +154 -0
  103. data/app/components/primer/alpha/dropdown.ts +1 -0
  104. data/app/components/primer/alpha/form_button.rb +32 -0
  105. data/app/components/primer/alpha/form_control.html.erb +26 -0
  106. data/app/components/primer/alpha/form_control.rb +105 -0
  107. data/app/components/primer/alpha/hellip_button.rb +43 -0
  108. data/app/components/primer/alpha/hidden_text_expander.rb +57 -0
  109. data/app/components/primer/alpha/image.rb +50 -0
  110. data/app/components/primer/alpha/image_crop.d.ts +1 -0
  111. data/app/components/primer/alpha/image_crop.html.erb +12 -0
  112. data/app/components/primer/alpha/image_crop.js +1 -0
  113. data/app/components/primer/alpha/image_crop.rb +39 -0
  114. data/app/components/primer/alpha/image_crop.ts +1 -0
  115. data/app/components/primer/alpha/layout.css +1 -0
  116. data/app/components/primer/alpha/layout.css.json +80 -0
  117. data/app/components/primer/alpha/layout.css.map +1 -0
  118. data/app/components/primer/alpha/layout.html.erb +5 -0
  119. data/app/components/primer/alpha/layout.pcss +268 -0
  120. data/app/components/primer/alpha/layout.rb +278 -0
  121. data/app/components/primer/alpha/menu.css +1 -0
  122. data/app/components/primer/alpha/menu.css.json +28 -0
  123. data/app/components/primer/alpha/menu.css.map +1 -0
  124. data/app/components/primer/alpha/menu.html.erb +6 -0
  125. data/app/components/primer/alpha/menu.pcss +119 -0
  126. data/app/components/primer/alpha/menu.rb +76 -0
  127. data/app/components/primer/alpha/modal_dialog.d.ts +18 -0
  128. data/app/components/primer/alpha/modal_dialog.js +189 -0
  129. data/app/components/primer/alpha/modal_dialog.ts +202 -0
  130. data/app/components/primer/alpha/multi_input.rb +81 -0
  131. data/app/components/primer/alpha/nav_list/divider.rb +14 -0
  132. data/app/components/primer/alpha/nav_list/group.html.erb +7 -0
  133. data/app/components/primer/alpha/nav_list/group.rb +107 -0
  134. data/app/components/primer/alpha/nav_list/heading.rb +36 -0
  135. data/app/components/primer/alpha/nav_list/item.html.erb +13 -0
  136. data/app/components/primer/alpha/nav_list/item.rb +156 -0
  137. data/app/components/primer/alpha/nav_list.d.ts +28 -0
  138. data/app/components/primer/alpha/nav_list.html.erb +15 -0
  139. data/app/components/primer/alpha/nav_list.js +248 -0
  140. data/app/components/primer/alpha/nav_list.rb +281 -0
  141. data/app/components/primer/alpha/nav_list.ts +267 -0
  142. data/app/components/primer/alpha/navigation/tab.html.erb +11 -0
  143. data/app/components/primer/alpha/navigation/tab.rb +168 -0
  144. data/app/components/primer/alpha/octicon_symbols.html.erb +3 -0
  145. data/app/components/primer/alpha/octicon_symbols.rb +59 -0
  146. data/app/components/primer/alpha/overlay/body.rb +26 -0
  147. data/app/components/primer/alpha/overlay/footer.rb +41 -0
  148. data/app/components/primer/alpha/overlay/header.html.erb +17 -0
  149. data/app/components/primer/alpha/overlay/header.rb +50 -0
  150. data/app/components/primer/alpha/overlay.css +1 -0
  151. data/app/components/primer/alpha/overlay.css.json +8 -0
  152. data/app/components/primer/alpha/overlay.css.map +1 -0
  153. data/app/components/primer/alpha/overlay.html.erb +13 -0
  154. data/app/components/primer/alpha/overlay.pcss +30 -0
  155. data/app/components/primer/alpha/overlay.rb +214 -0
  156. data/app/components/primer/alpha/radio_button.rb +25 -0
  157. data/app/components/primer/alpha/radio_button_group.rb +36 -0
  158. data/app/components/primer/alpha/segmented_control/item.html.erb +13 -0
  159. data/app/components/primer/alpha/segmented_control/item.rb +30 -0
  160. data/app/components/primer/alpha/segmented_control.css +1 -0
  161. data/app/components/primer/alpha/segmented_control.css.json +33 -0
  162. data/app/components/primer/alpha/segmented_control.css.map +1 -0
  163. data/app/components/primer/alpha/segmented_control.d.ts +12 -0
  164. data/app/components/primer/alpha/segmented_control.html.erb +7 -0
  165. data/app/components/primer/alpha/segmented_control.js +47 -0
  166. data/app/components/primer/alpha/segmented_control.pcss +157 -0
  167. data/app/components/primer/alpha/segmented_control.rb +122 -0
  168. data/app/components/primer/alpha/segmented_control.ts +41 -0
  169. data/app/components/primer/alpha/select.rb +37 -0
  170. data/app/components/primer/alpha/submit_button.rb +32 -0
  171. data/app/components/primer/alpha/tab_container.d.ts +1 -0
  172. data/app/components/primer/alpha/tab_container.js +1 -0
  173. data/app/components/primer/alpha/tab_container.rb +43 -0
  174. data/app/components/primer/alpha/tab_container.ts +1 -0
  175. data/app/components/primer/alpha/tab_nav.css +1 -0
  176. data/app/components/primer/alpha/tab_nav.css.json +24 -0
  177. data/app/components/primer/alpha/tab_nav.css.map +1 -0
  178. data/app/components/primer/alpha/tab_nav.html.erb +11 -0
  179. data/app/components/primer/alpha/tab_nav.pcss +100 -0
  180. data/app/components/primer/alpha/tab_nav.rb +136 -0
  181. data/app/components/primer/alpha/tab_panels.html.erb +14 -0
  182. data/app/components/primer/alpha/tab_panels.rb +89 -0
  183. data/app/components/primer/alpha/text_area.rb +24 -0
  184. data/app/components/primer/alpha/text_field.css +1 -0
  185. data/app/components/primer/alpha/text_field.css.json +135 -0
  186. data/app/components/primer/alpha/text_field.css.map +1 -0
  187. data/app/components/primer/alpha/text_field.pcss +706 -0
  188. data/app/components/primer/alpha/text_field.rb +101 -0
  189. data/app/components/primer/alpha/toggle_switch.css +1 -0
  190. data/app/components/primer/alpha/toggle_switch.css.json +40 -0
  191. data/app/components/primer/alpha/toggle_switch.css.map +1 -0
  192. data/app/components/primer/alpha/toggle_switch.d.ts +30 -0
  193. data/app/components/primer/alpha/toggle_switch.html.erb +46 -0
  194. data/app/components/primer/alpha/toggle_switch.js +165 -0
  195. data/app/components/primer/alpha/toggle_switch.pcss +220 -0
  196. data/app/components/primer/alpha/toggle_switch.rb +96 -0
  197. data/app/components/primer/alpha/toggle_switch.ts +189 -0
  198. data/app/components/primer/alpha/tool_tip.d.ts +26 -0
  199. data/app/components/primer/alpha/tool_tip.js +427 -0
  200. data/app/components/primer/alpha/tool_tip.ts +430 -0
  201. data/app/components/primer/alpha/tooltip.rb +128 -0
  202. data/app/components/primer/alpha/underline_nav.css +1 -0
  203. data/app/components/primer/alpha/underline_nav.css.json +28 -0
  204. data/app/components/primer/alpha/underline_nav.css.map +1 -0
  205. data/app/components/primer/alpha/underline_nav.html.erb +15 -0
  206. data/app/components/primer/alpha/underline_nav.pcss +134 -0
  207. data/app/components/primer/alpha/underline_nav.rb +138 -0
  208. data/app/components/primer/alpha/underline_panels.html.erb +18 -0
  209. data/app/components/primer/alpha/underline_panels.rb +86 -0
  210. data/app/components/primer/alpha/x_banner.d.ts +13 -0
  211. data/app/components/primer/alpha/x_banner.js +49 -0
  212. data/app/components/primer/alpha/x_banner.ts +40 -0
  213. data/app/components/primer/anchored_position.d.ts +27 -0
  214. data/app/components/primer/anchored_position.js +147 -0
  215. data/app/components/primer/anchored_position.ts +153 -0
  216. data/app/components/primer/base_component.rb +172 -0
  217. data/app/components/primer/beta/auto_complete/auto_complete.d.ts +1 -0
  218. data/app/components/primer/beta/auto_complete/auto_complete.html.erb +28 -0
  219. data/app/components/primer/beta/auto_complete/auto_complete.js +1 -0
  220. data/app/components/primer/beta/auto_complete/auto_complete.ts +1 -0
  221. data/app/components/primer/beta/auto_complete/item.html.erb +21 -0
  222. data/app/components/primer/beta/auto_complete/item.rb +84 -0
  223. data/app/components/primer/beta/auto_complete.rb +218 -0
  224. data/app/components/primer/beta/avatar.css +1 -0
  225. data/app/components/primer/beta/avatar.css.json +17 -0
  226. data/app/components/primer/beta/avatar.css.map +1 -0
  227. data/app/components/primer/beta/avatar.pcss +73 -0
  228. data/app/components/primer/beta/avatar.rb +84 -0
  229. data/app/components/primer/beta/avatar_stack.css +1 -0
  230. data/app/components/primer/beta/avatar_stack.css.json +28 -0
  231. data/app/components/primer/beta/avatar_stack.css.map +1 -0
  232. data/app/components/primer/beta/avatar_stack.html.erb +10 -0
  233. data/app/components/primer/beta/avatar_stack.pcss +141 -0
  234. data/app/components/primer/beta/avatar_stack.rb +92 -0
  235. data/app/components/primer/beta/base_button.rb +56 -0
  236. data/app/components/primer/beta/blankslate.css +1 -0
  237. data/app/components/primer/beta/blankslate.css.json +22 -0
  238. data/app/components/primer/beta/blankslate.css.map +1 -0
  239. data/app/components/primer/beta/blankslate.html.erb +19 -0
  240. data/app/components/primer/beta/blankslate.pcss +90 -0
  241. data/app/components/primer/beta/blankslate.rb +238 -0
  242. data/app/components/primer/beta/border_box/header.html.erb +4 -0
  243. data/app/components/primer/beta/border_box/header.rb +52 -0
  244. data/app/components/primer/beta/border_box.css +1 -0
  245. data/app/components/primer/beta/border_box.css.json +54 -0
  246. data/app/components/primer/beta/border_box.css.map +1 -0
  247. data/app/components/primer/beta/border_box.html.erb +12 -0
  248. data/app/components/primer/beta/border_box.pcss +284 -0
  249. data/app/components/primer/beta/border_box.rb +147 -0
  250. data/app/components/primer/beta/breadcrumbs.css +1 -0
  251. data/app/components/primer/beta/breadcrumbs.css.json +11 -0
  252. data/app/components/primer/beta/breadcrumbs.css.map +1 -0
  253. data/app/components/primer/beta/breadcrumbs.html.erb +8 -0
  254. data/app/components/primer/beta/breadcrumbs.pcss +30 -0
  255. data/app/components/primer/beta/breadcrumbs.rb +82 -0
  256. data/app/components/primer/beta/button.css +1 -0
  257. data/app/components/primer/beta/button.css.json +75 -0
  258. data/app/components/primer/beta/button.css.map +1 -0
  259. data/app/components/primer/beta/button.html.erb +23 -0
  260. data/app/components/primer/beta/button.pcss +366 -0
  261. data/app/components/primer/beta/button.rb +197 -0
  262. data/app/components/primer/beta/button_group.css +1 -0
  263. data/app/components/primer/beta/button_group.css.json +14 -0
  264. data/app/components/primer/beta/button_group.css.map +1 -0
  265. data/app/components/primer/beta/button_group.html.erb +5 -0
  266. data/app/components/primer/beta/button_group.pcss +27 -0
  267. data/app/components/primer/beta/button_group.rb +59 -0
  268. data/app/components/primer/beta/clipboard_copy.d.ts +1 -0
  269. data/app/components/primer/beta/clipboard_copy.html.erb +8 -0
  270. data/app/components/primer/beta/clipboard_copy.js +43 -0
  271. data/app/components/primer/beta/clipboard_copy.rb +50 -0
  272. data/app/components/primer/beta/clipboard_copy.ts +55 -0
  273. data/app/components/primer/beta/close_button.rb +43 -0
  274. data/app/components/primer/beta/counter.css +1 -0
  275. data/app/components/primer/beta/counter.css.json +10 -0
  276. data/app/components/primer/beta/counter.css.map +1 -0
  277. data/app/components/primer/beta/counter.pcss +35 -0
  278. data/app/components/primer/beta/counter.rb +113 -0
  279. data/app/components/primer/beta/details.html.erb +8 -0
  280. data/app/components/primer/beta/details.rb +80 -0
  281. data/app/components/primer/beta/flash.css +1 -0
  282. data/app/components/primer/beta/flash.css.json +27 -0
  283. data/app/components/primer/beta/flash.css.map +1 -0
  284. data/app/components/primer/beta/flash.html.erb +10 -0
  285. data/app/components/primer/beta/flash.pcss +142 -0
  286. data/app/components/primer/beta/flash.rb +71 -0
  287. data/app/components/primer/beta/heading.rb +46 -0
  288. data/app/components/primer/beta/icon_button.html.erb +6 -0
  289. data/app/components/primer/beta/icon_button.rb +112 -0
  290. data/app/components/primer/beta/label.css +1 -0
  291. data/app/components/primer/beta/label.css.json +25 -0
  292. data/app/components/primer/beta/label.css.map +1 -0
  293. data/app/components/primer/beta/label.pcss +103 -0
  294. data/app/components/primer/beta/label.rb +100 -0
  295. data/app/components/primer/beta/link.css +1 -0
  296. data/app/components/primer/beta/link.css.json +19 -0
  297. data/app/components/primer/beta/link.css.map +1 -0
  298. data/app/components/primer/beta/link.pcss +64 -0
  299. data/app/components/primer/beta/link.rb +95 -0
  300. data/app/components/primer/beta/markdown.rb +290 -0
  301. data/app/components/primer/beta/octicon.html.erb +7 -0
  302. data/app/components/primer/beta/octicon.rb +88 -0
  303. data/app/components/primer/beta/popover.css +1 -0
  304. data/app/components/primer/beta/popover.css.json +39 -0
  305. data/app/components/primer/beta/popover.css.map +1 -0
  306. data/app/components/primer/beta/popover.html.erb +6 -0
  307. data/app/components/primer/beta/popover.pcss +225 -0
  308. data/app/components/primer/beta/popover.rb +127 -0
  309. data/app/components/primer/beta/progress_bar.css +1 -0
  310. data/app/components/primer/beta/progress_bar.css.json +10 -0
  311. data/app/components/primer/beta/progress_bar.css.map +1 -0
  312. data/app/components/primer/beta/progress_bar.html.erb +5 -0
  313. data/app/components/primer/beta/progress_bar.pcss +26 -0
  314. data/app/components/primer/beta/progress_bar.rb +72 -0
  315. data/app/components/primer/beta/relative_time.d.ts +1 -0
  316. data/app/components/primer/beta/relative_time.js +1 -0
  317. data/app/components/primer/beta/relative_time.rb +166 -0
  318. data/app/components/primer/beta/relative_time.ts +1 -0
  319. data/app/components/primer/beta/spinner.html.erb +4 -0
  320. data/app/components/primer/beta/spinner.rb +45 -0
  321. data/app/components/primer/beta/state.css +1 -0
  322. data/app/components/primer/beta/state.css.json +13 -0
  323. data/app/components/primer/beta/state.css.map +1 -0
  324. data/app/components/primer/beta/state.pcss +50 -0
  325. data/app/components/primer/beta/state.rb +76 -0
  326. data/app/components/primer/beta/subhead.css +1 -0
  327. data/app/components/primer/beta/subhead.css.json +12 -0
  328. data/app/components/primer/beta/subhead.css.map +1 -0
  329. data/app/components/primer/beta/subhead.html.erb +5 -0
  330. data/app/components/primer/beta/subhead.pcss +49 -0
  331. data/app/components/primer/beta/subhead.rb +135 -0
  332. data/app/components/primer/beta/text.rb +27 -0
  333. data/app/components/primer/beta/timeline_item.css +1 -0
  334. data/app/components/primer/beta/timeline_item.css.json +16 -0
  335. data/app/components/primer/beta/timeline_item.css.map +1 -0
  336. data/app/components/primer/beta/timeline_item.html.erb +5 -0
  337. data/app/components/primer/beta/timeline_item.pcss +93 -0
  338. data/app/components/primer/beta/timeline_item.rb +90 -0
  339. data/app/components/primer/beta/truncate.css +1 -0
  340. data/app/components/primer/beta/truncate.css.json +12 -0
  341. data/app/components/primer/beta/truncate.css.map +1 -0
  342. data/app/components/primer/beta/truncate.html.erb +5 -0
  343. data/app/components/primer/beta/truncate.pcss +31 -0
  344. data/app/components/primer/beta/truncate.rb +111 -0
  345. data/app/components/primer/blankslate_component.html.erb +25 -0
  346. data/app/components/primer/blankslate_component.rb +156 -0
  347. data/app/components/primer/box.rb +25 -0
  348. data/app/components/primer/button_component.html.erb +12 -0
  349. data/app/components/primer/button_component.rb +175 -0
  350. data/app/components/primer/component.rb +145 -0
  351. data/app/components/primer/conditional_wrapper.rb +36 -0
  352. data/app/components/primer/content.rb +12 -0
  353. data/app/components/primer/focus_group.d.ts +19 -0
  354. data/app/components/primer/focus_group.js +139 -0
  355. data/app/components/primer/focus_group.ts +133 -0
  356. data/app/components/primer/icon_button.html.erb +12 -0
  357. data/app/components/primer/icon_button.rb +108 -0
  358. data/app/components/primer/layout_component.html.erb +11 -0
  359. data/app/components/primer/layout_component.rb +73 -0
  360. data/app/components/primer/navigation/tab_component.rb +10 -0
  361. data/app/components/primer/primer.d.ts +21 -0
  362. data/app/components/primer/primer.js +21 -0
  363. data/app/components/primer/primer.pcss +42 -0
  364. data/app/components/primer/primer.ts +21 -0
  365. data/app/components/primer/tooltip.rb +91 -0
  366. data/app/components/primer/truncate.css +1 -0
  367. data/app/components/primer/truncate.css.json +13 -0
  368. data/app/components/primer/truncate.css.map +1 -0
  369. data/app/components/primer/truncate.pcss +30 -0
  370. data/app/components/primer/truncate.rb +52 -0
  371. data/app/forms/after_content_form/after_content.html.erb +1 -0
  372. data/app/forms/after_content_form.rb +13 -0
  373. data/app/forms/application_form.rb +5 -0
  374. data/app/forms/array_check_box_group_form/places_lopez_caption.html.erb +1 -0
  375. data/app/forms/array_check_box_group_form.rb +15 -0
  376. data/app/forms/both_types_of_caption_form/first_name_caption.html.erb +1 -0
  377. data/app/forms/both_types_of_caption_form.rb +13 -0
  378. data/app/forms/caption_template_form/age_middle_aged_caption.html.erb +1 -0
  379. data/app/forms/caption_template_form/age_young_caption.html.erb +1 -0
  380. data/app/forms/caption_template_form/cool_caption.html.erb +1 -0
  381. data/app/forms/caption_template_form/first_name_caption.html.erb +1 -0
  382. data/app/forms/caption_template_form.rb +22 -0
  383. data/app/forms/check_box_group_form.rb +28 -0
  384. data/app/forms/check_box_with_nested_form.rb +39 -0
  385. data/app/forms/composed_form.rb +14 -0
  386. data/app/forms/example_toggle_switch_form/example_field_caption.html.erb +1 -0
  387. data/app/forms/example_toggle_switch_form.rb +8 -0
  388. data/app/forms/first_name_form.rb +13 -0
  389. data/app/forms/horizontal_form.rb +34 -0
  390. data/app/forms/immediate_validation_form.rb +29 -0
  391. data/app/forms/invalid_form.rb +21 -0
  392. data/app/forms/last_name_form.rb +13 -0
  393. data/app/forms/multi_input_form.rb +27 -0
  394. data/app/forms/multi_text_field_form.rb +27 -0
  395. data/app/forms/name_with_question_mark_form/enabled_caption.html.erb +1 -0
  396. data/app/forms/name_with_question_mark_form.rb +11 -0
  397. data/app/forms/radio_button_group_form.rb +12 -0
  398. data/app/forms/radio_button_with_nested_form.rb +39 -0
  399. data/app/forms/select_form.rb +12 -0
  400. data/app/forms/single_text_field_form.rb +13 -0
  401. data/app/forms/submit_button_form.rb +26 -0
  402. data/app/forms/text_field_and_checkbox_form.rb +19 -0
  403. data/app/helpers/primer/form_helper.rb +23 -0
  404. data/app/lib/primer/attributes_helper.rb +105 -0
  405. data/app/lib/primer/audited/dsl.rb +32 -0
  406. data/app/lib/primer/class_name_helper.rb +29 -0
  407. data/app/lib/primer/css/layout.css +1541 -0
  408. data/app/lib/primer/css/layout.css.json +316 -0
  409. data/app/lib/primer/css/utilities.css +7304 -0
  410. data/app/lib/primer/css/utilities.css.json +1659 -0
  411. data/app/lib/primer/fetch_or_fallback_helper.rb +65 -0
  412. data/app/lib/primer/join_style_arguments_helper.rb +14 -0
  413. data/app/lib/primer/octicon/cache.rb +44 -0
  414. data/app/lib/primer/status/dsl.rb +44 -0
  415. data/app/lib/primer/tab_nav_helper.rb +35 -0
  416. data/app/lib/primer/tabbed_component_helper.rb +39 -0
  417. data/app/lib/primer/test_selector_helper.rb +20 -0
  418. data/app/lib/primer/underline_nav_helper.rb +44 -0
  419. data/app/lib/primer/view_helper.rb +21 -0
  420. data/lib/postcss_mixins/activeIndicatorLine.pcss +11 -0
  421. data/lib/postcss_mixins/clearfix.pcss +12 -0
  422. data/lib/postcss_mixins/focusBoxShadowInset.pcss +6 -0
  423. data/lib/postcss_mixins/focusOutline.pcss +5 -0
  424. data/lib/postcss_mixins/focusOutlineOnEmphasis.pcss +6 -0
  425. data/lib/postcss_mixins/minTouchTarget.js +20 -0
  426. data/lib/postcss_mixins/targetBoxShadow.pcss +6 -0
  427. data/lib/primer/accessibility.rb +74 -0
  428. data/lib/primer/classify/utilities.rb +201 -0
  429. data/lib/primer/classify/utilities.yml +1879 -0
  430. data/lib/primer/classify/validation.rb +18 -0
  431. data/lib/primer/classify.rb +135 -0
  432. data/lib/primer/deprecations.rb +99 -0
  433. data/lib/primer/deprecations.yml +45 -0
  434. data/lib/primer/example_image.rb +8 -0
  435. data/lib/primer/form_components.rb +57 -0
  436. data/lib/primer/forms/acts_as_component.rb +129 -0
  437. data/lib/primer/forms/base.html.erb +8 -0
  438. data/lib/primer/forms/base.rb +133 -0
  439. data/lib/primer/forms/base_component.rb +76 -0
  440. data/lib/primer/forms/buffer_rewriter.rb +51 -0
  441. data/lib/primer/forms/builder.rb +71 -0
  442. data/lib/primer/forms/button.html.erb +4 -0
  443. data/lib/primer/forms/button.rb +66 -0
  444. data/lib/primer/forms/caption.html.erb +10 -0
  445. data/lib/primer/forms/caption.rb +29 -0
  446. data/lib/primer/forms/check_box.html.erb +16 -0
  447. data/lib/primer/forms/check_box.rb +46 -0
  448. data/lib/primer/forms/check_box_group.html.erb +17 -0
  449. data/lib/primer/forms/check_box_group.rb +19 -0
  450. data/lib/primer/forms/dsl/button_input.rb +29 -0
  451. data/lib/primer/forms/dsl/check_box_group_input.rb +53 -0
  452. data/lib/primer/forms/dsl/check_box_input.rb +54 -0
  453. data/lib/primer/forms/dsl/form_object.rb +25 -0
  454. data/lib/primer/forms/dsl/form_reference_input.rb +59 -0
  455. data/lib/primer/forms/dsl/hidden_input.rb +29 -0
  456. data/lib/primer/forms/dsl/input.rb +315 -0
  457. data/lib/primer/forms/dsl/input_group.rb +34 -0
  458. data/lib/primer/forms/dsl/input_methods.rb +139 -0
  459. data/lib/primer/forms/dsl/multi_input.rb +55 -0
  460. data/lib/primer/forms/dsl/radio_button_group_input.rb +37 -0
  461. data/lib/primer/forms/dsl/radio_button_input.rb +37 -0
  462. data/lib/primer/forms/dsl/select_input.rb +61 -0
  463. data/lib/primer/forms/dsl/submit_button_input.rb +29 -0
  464. data/lib/primer/forms/dsl/text_area_input.rb +33 -0
  465. data/lib/primer/forms/dsl/text_field_input.rb +86 -0
  466. data/lib/primer/forms/dsl/toggle_switch_input.rb +39 -0
  467. data/lib/primer/forms/form_control.html.erb +20 -0
  468. data/lib/primer/forms/form_control.rb +28 -0
  469. data/lib/primer/forms/form_list.html.erb +5 -0
  470. data/lib/primer/forms/form_list.rb +21 -0
  471. data/lib/primer/forms/form_reference.html.erb +3 -0
  472. data/lib/primer/forms/form_reference.rb +18 -0
  473. data/lib/primer/forms/group.html.erb +5 -0
  474. data/lib/primer/forms/group.rb +27 -0
  475. data/lib/primer/forms/hidden_field.html.erb +1 -0
  476. data/lib/primer/forms/hidden_field.rb +15 -0
  477. data/lib/primer/forms/multi.html.erb +7 -0
  478. data/lib/primer/forms/multi.rb +16 -0
  479. data/lib/primer/forms/primer_base_component_wrapper.html.erb +3 -0
  480. data/lib/primer/forms/primer_base_component_wrapper.rb +24 -0
  481. data/lib/primer/forms/primer_multi_input.d.ts +10 -0
  482. data/lib/primer/forms/primer_multi_input.js +45 -0
  483. data/lib/primer/forms/primer_multi_input.ts +46 -0
  484. data/lib/primer/forms/primer_text_field.d.ts +1 -0
  485. data/lib/primer/forms/primer_text_field.js +73 -0
  486. data/lib/primer/forms/primer_text_field.ts +56 -0
  487. data/lib/primer/forms/radio_button.html.erb +16 -0
  488. data/lib/primer/forms/radio_button.rb +29 -0
  489. data/lib/primer/forms/radio_button_group.html.erb +17 -0
  490. data/lib/primer/forms/radio_button_group.rb +19 -0
  491. data/lib/primer/forms/select.html.erb +5 -0
  492. data/lib/primer/forms/select.rb +29 -0
  493. data/lib/primer/forms/separator.html.erb +1 -0
  494. data/lib/primer/forms/separator.rb +8 -0
  495. data/lib/primer/forms/spacing_wrapper.html.erb +3 -0
  496. data/lib/primer/forms/spacing_wrapper.rb +8 -0
  497. data/lib/primer/forms/submit_button.html.erb +1 -0
  498. data/lib/primer/forms/submit_button.rb +14 -0
  499. data/lib/primer/forms/text_area.html.erb +5 -0
  500. data/lib/primer/forms/text_area.rb +20 -0
  501. data/lib/primer/forms/text_field.html.erb +17 -0
  502. data/lib/primer/forms/text_field.rb +46 -0
  503. data/lib/primer/forms/toggle_switch.html.erb +22 -0
  504. data/lib/primer/forms/toggle_switch.rb +21 -0
  505. data/lib/primer/forms/toggle_switch_form.rb +81 -0
  506. data/lib/primer/forms/toggle_switch_input.d.ts +5 -0
  507. data/lib/primer/forms/toggle_switch_input.js +34 -0
  508. data/lib/primer/forms/toggle_switch_input.ts +26 -0
  509. data/lib/primer/forms/utils.rb +48 -0
  510. data/lib/primer/static/generate_arguments.rb +55 -0
  511. data/lib/primer/static/generate_audited_at.rb +17 -0
  512. data/lib/primer/static/generate_constants.rb +19 -0
  513. data/lib/primer/static/generate_info_arch.rb +160 -0
  514. data/lib/primer/static/generate_previews.rb +61 -0
  515. data/lib/primer/static/generate_statuses.rb +17 -0
  516. data/lib/primer/static.rb +72 -0
  517. data/lib/primer/view_components/audited.rb +14 -0
  518. data/lib/primer/view_components/constants.rb +55 -0
  519. data/lib/primer/view_components/engine.rb +69 -0
  520. data/lib/primer/view_components/linters/accessibility.yml +9 -0
  521. data/lib/primer/view_components/linters/argument_mappers/base.rb +100 -0
  522. data/lib/primer/view_components/linters/argument_mappers/button.rb +72 -0
  523. data/lib/primer/view_components/linters/argument_mappers/clipboard_copy.rb +21 -0
  524. data/lib/primer/view_components/linters/argument_mappers/close_button.rb +43 -0
  525. data/lib/primer/view_components/linters/argument_mappers/conversion_error.rb +10 -0
  526. data/lib/primer/view_components/linters/argument_mappers/flash.rb +32 -0
  527. data/lib/primer/view_components/linters/argument_mappers/helpers/erb_block.rb +67 -0
  528. data/lib/primer/view_components/linters/argument_mappers/label.rb +56 -0
  529. data/lib/primer/view_components/linters/argument_mappers/system_arguments.rb +48 -0
  530. data/lib/primer/view_components/linters/autocorrectable.rb +32 -0
  531. data/lib/primer/view_components/linters/base_linter.rb +190 -0
  532. data/lib/primer/view_components/linters/blankslate_api_migration.rb +152 -0
  533. data/lib/primer/view_components/linters/blankslate_component_migration_counter.rb +14 -0
  534. data/lib/primer/view_components/linters/breadcrumbs_component_migration_counter.rb +14 -0
  535. data/lib/primer/view_components/linters/button_component_migration_counter.rb +26 -0
  536. data/lib/primer/view_components/linters/clipboard_copy_component_migration_counter.rb +20 -0
  537. data/lib/primer/view_components/linters/close_button_component_migration_counter.rb +121 -0
  538. data/lib/primer/view_components/linters/deprecated_components_counter.rb +84 -0
  539. data/lib/primer/view_components/linters/details_menu_migration.rb +35 -0
  540. data/lib/primer/view_components/linters/disallow_action_list.rb +73 -0
  541. data/lib/primer/view_components/linters/disallow_component_css_counter.rb +69 -0
  542. data/lib/primer/view_components/linters/flash_migration_counter.rb +36 -0
  543. data/lib/primer/view_components/linters/helpers/deprecated_components_helpers.rb +20 -0
  544. data/lib/primer/view_components/linters/helpers/rubocop_helpers.rb +14 -0
  545. data/lib/primer/view_components/linters/helpers/rule_helpers.rb +39 -0
  546. data/lib/primer/view_components/linters/label_component_migration_counter.rb +24 -0
  547. data/lib/primer/view_components/linters/migrate_deprecated_flash_arguments.rb +140 -0
  548. data/lib/primer/view_components/linters/severity_schema.rb +14 -0
  549. data/lib/primer/view_components/linters/subhead_component_migration_counter.rb +14 -0
  550. data/lib/primer/view_components/linters/super_in_component_templates.rb +65 -0
  551. data/lib/primer/view_components/linters/tag_tree_helpers.rb +61 -0
  552. data/lib/primer/view_components/linters/tooltipped_migration.rb +35 -0
  553. data/lib/primer/view_components/linters/two_column_layout_migration_counter.rb +158 -0
  554. data/lib/primer/view_components/linters.rb +3 -0
  555. data/lib/primer/view_components/statuses.rb +14 -0
  556. data/lib/primer/view_components/version.rb +18 -0
  557. data/lib/primer/view_components.rb +15 -0
  558. data/lib/primer/yard/backend.rb +24 -0
  559. data/lib/primer/yard/component_manifest.rb +144 -0
  560. data/lib/primer/yard/component_ref.rb +54 -0
  561. data/lib/primer/yard/docs_helper.rb +98 -0
  562. data/lib/primer/yard/info_arch_docs_helper.rb +31 -0
  563. data/lib/primer/yard/legacy_gatsby_backend.rb +233 -0
  564. data/lib/primer/yard/lookbook_docs_helper.rb +32 -0
  565. data/lib/primer/yard/lookbook_pages_backend.rb +231 -0
  566. data/lib/primer/yard/registry.rb +136 -0
  567. data/lib/primer/yard/renders_many_handler.rb +23 -0
  568. data/lib/primer/yard/renders_one_handler.rb +23 -0
  569. data/lib/primer/yard.rb +20 -0
  570. data/lib/rubocop/config/default.yml +20 -0
  571. data/lib/rubocop/cop/primer/base_cop.rb +28 -0
  572. data/lib/rubocop/cop/primer/component_name_migration.rb +37 -0
  573. data/lib/rubocop/cop/primer/deprecated_arguments.rb +317 -0
  574. data/lib/rubocop/cop/primer/deprecated_button_arguments.rb +51 -0
  575. data/lib/rubocop/cop/primer/deprecated_components.rb +49 -0
  576. data/lib/rubocop/cop/primer/deprecated_label_schemes.rb +68 -0
  577. data/lib/rubocop/cop/primer/deprecated_label_variants.rb +71 -0
  578. data/lib/rubocop/cop/primer/deprecated_layout_component.rb +30 -0
  579. data/lib/rubocop/cop/primer/no_tag_memoize.rb +43 -0
  580. data/lib/rubocop/cop/primer/primer_octicon.rb +217 -0
  581. data/lib/rubocop/cop/primer/system_argument_instead_of_class.rb +57 -0
  582. data/lib/rubocop/cop/primer/test_selector.rb +48 -0
  583. data/lib/rubocop/cop/primer.rb +3 -0
  584. data/lib/tasks/custom_utilities.yml +372 -0
  585. data/previews/pages/forms/01_introduction.md.erb +44 -0
  586. data/previews/pages/forms/02_getting_started.md.erb +125 -0
  587. data/previews/pages/forms/03_caption_templates.md.erb +30 -0
  588. data/previews/pages/forms/04_after_content.md.erb +39 -0
  589. data/previews/pages/forms/05_groups_layouts.md.erb +22 -0
  590. data/previews/pages/forms/06_miscellaneous_inputs.md.erb +43 -0
  591. data/previews/pages/forms/07_toggle_switch_forms.md.erb +58 -0
  592. data/previews/pages/forms/08_validations.md.erb +28 -0
  593. data/previews/pages/forms/09_compound_forms.md.erb +97 -0
  594. data/previews/primer/alpha/action_bar_preview/inline.html.erb +16 -0
  595. data/previews/primer/alpha/action_bar_preview.rb +77 -0
  596. data/previews/primer/alpha/action_list_preview.rb +464 -0
  597. data/previews/primer/alpha/action_menu_preview/align_end.html.erb +6 -0
  598. data/previews/primer/alpha/action_menu_preview/content_labels.html.erb +9 -0
  599. data/previews/primer/alpha/action_menu_preview/multiple_select_form.html.erb +13 -0
  600. data/previews/primer/alpha/action_menu_preview/opens_dialog.html.erb +21 -0
  601. data/previews/primer/alpha/action_menu_preview/single_select_form.html.erb +13 -0
  602. data/previews/primer/alpha/action_menu_preview/submitting_forms.html.erb +15 -0
  603. data/previews/primer/alpha/action_menu_preview/two_menus.html.erb +13 -0
  604. data/previews/primer/alpha/action_menu_preview/with_actions.html.erb +21 -0
  605. data/previews/primer/alpha/action_menu_preview.rb +328 -0
  606. data/previews/primer/alpha/auto_complete_preview.rb +121 -0
  607. data/previews/primer/alpha/banner_preview/with_action_button.html.erb +4 -0
  608. data/previews/primer/alpha/banner_preview/with_action_content.html.erb +6 -0
  609. data/previews/primer/alpha/banner_preview.rb +102 -0
  610. data/previews/primer/alpha/button_marketing_preview.rb +65 -0
  611. data/previews/primer/alpha/check_box_group_preview.rb +90 -0
  612. data/previews/primer/alpha/check_box_preview.rb +68 -0
  613. data/previews/primer/alpha/dialog_preview/body_has_scrollbar_overflow.html.erb +9 -0
  614. data/previews/primer/alpha/dialog_preview/custom_header.html.erb +7 -0
  615. data/previews/primer/alpha/dialog_preview/nested_dialog.html.erb +14 -0
  616. data/previews/primer/alpha/dialog_preview/test.html.erb +7 -0
  617. data/previews/primer/alpha/dialog_preview/with_footer.html.erb +8 -0
  618. data/previews/primer/alpha/dialog_preview/with_form.html.erb +12 -0
  619. data/previews/primer/alpha/dialog_preview/with_text_input.html.erb +10 -0
  620. data/previews/primer/alpha/dialog_preview.rb +154 -0
  621. data/previews/primer/alpha/dropdown_preview.rb +211 -0
  622. data/previews/primer/alpha/form_control_preview/playground.html.erb +9 -0
  623. data/previews/primer/alpha/form_control_preview.rb +106 -0
  624. data/previews/primer/alpha/hellip_button_preview.rb +26 -0
  625. data/previews/primer/alpha/hidden_text_expander_preview.rb +23 -0
  626. data/previews/primer/alpha/image_crop_preview.rb +31 -0
  627. data/previews/primer/alpha/layout_preview.rb +215 -0
  628. data/previews/primer/alpha/menu_preview/default.html.erb +17 -0
  629. data/previews/primer/alpha/menu_preview/playground.html.erb +17 -0
  630. data/previews/primer/alpha/menu_preview.rb +15 -0
  631. data/previews/primer/alpha/multi_input_preview/playground.html.erb +41 -0
  632. data/previews/primer/alpha/multi_input_preview.rb +84 -0
  633. data/previews/primer/alpha/nav_list_preview/trailing_action.html.erb +19 -0
  634. data/previews/primer/alpha/nav_list_preview.rb +125 -0
  635. data/previews/primer/alpha/overlay_preview/middle_of_page.html.erb +17 -0
  636. data/previews/primer/alpha/overlay_preview/middle_of_page_with_relative_container.html.erb +19 -0
  637. data/previews/primer/alpha/overlay_preview.rb +179 -0
  638. data/previews/primer/alpha/radio_button_group_preview.rb +85 -0
  639. data/previews/primer/alpha/radio_button_preview.rb +72 -0
  640. data/previews/primer/alpha/segmented_control_preview/with_label_and_caption.html.erb +9 -0
  641. data/previews/primer/alpha/segmented_control_preview/with_subhead_actions.html.erb +11 -0
  642. data/previews/primer/alpha/segmented_control_preview.rb +183 -0
  643. data/previews/primer/alpha/select_preview.rb +136 -0
  644. data/previews/primer/alpha/tab_nav_preview/with_extra.html.erb +8 -0
  645. data/previews/primer/alpha/tab_nav_preview.rb +63 -0
  646. data/previews/primer/alpha/tab_panels_preview/with_extra.html.erb +17 -0
  647. data/previews/primer/alpha/tab_panels_preview.rb +44 -0
  648. data/previews/primer/alpha/text_area_preview.rb +94 -0
  649. data/previews/primer/alpha/text_field_preview.rb +194 -0
  650. data/previews/primer/alpha/toggle_switch_preview.rb +63 -0
  651. data/previews/primer/alpha/tooltip_preview/tooltip_inside_primer_overlay.html.erb +20 -0
  652. data/previews/primer/alpha/tooltip_preview/with_multiple_on_a_page.html.erb +14 -0
  653. data/previews/primer/alpha/tooltip_preview/with_right_most_position.html.erb +7 -0
  654. data/previews/primer/alpha/tooltip_preview.rb +88 -0
  655. data/previews/primer/alpha/underline_nav_preview/default.html.erb +8 -0
  656. data/previews/primer/alpha/underline_nav_preview/playground.html.erb +8 -0
  657. data/previews/primer/alpha/underline_nav_preview.rb +58 -0
  658. data/previews/primer/alpha/underline_panels_preview.rb +38 -0
  659. data/previews/primer/beta/auto_complete_item_preview/default.html.erb +9 -0
  660. data/previews/primer/beta/auto_complete_item_preview/playground.html.erb +9 -0
  661. data/previews/primer/beta/auto_complete_item_preview/with_description.html.erb +11 -0
  662. data/previews/primer/beta/auto_complete_item_preview.rb +57 -0
  663. data/previews/primer/beta/auto_complete_preview/with_submit_button.html.erb +20 -0
  664. data/previews/primer/beta/auto_complete_preview.rb +287 -0
  665. data/previews/primer/beta/avatar_preview.rb +92 -0
  666. data/previews/primer/beta/avatar_stack_preview.rb +104 -0
  667. data/previews/primer/beta/base_button_preview.rb +33 -0
  668. data/previews/primer/beta/blankslate_preview.rb +139 -0
  669. data/previews/primer/beta/border_box_preview.rb +102 -0
  670. data/previews/primer/beta/breadcrumbs_preview.rb +31 -0
  671. data/previews/primer/beta/button_group_preview/action_menus.html.erb +8 -0
  672. data/previews/primer/beta/button_group_preview.rb +74 -0
  673. data/previews/primer/beta/button_preview/all_schemes.html.erb +30 -0
  674. data/previews/primer/beta/button_preview/invisible_all_visuals.html.erb +54 -0
  675. data/previews/primer/beta/button_preview/leading_visual.html.erb +10 -0
  676. data/previews/primer/beta/button_preview/trailing_action.html.erb +10 -0
  677. data/previews/primer/beta/button_preview/trailing_counter.html.erb +11 -0
  678. data/previews/primer/beta/button_preview/trailing_visual.html.erb +11 -0
  679. data/previews/primer/beta/button_preview/with_tooltip.html.erb +10 -0
  680. data/previews/primer/beta/button_preview.rb +324 -0
  681. data/previews/primer/beta/clipboard_copy_preview/element.html.erb +2 -0
  682. data/previews/primer/beta/clipboard_copy_preview.rb +41 -0
  683. data/previews/primer/beta/close_button_preview.rb +24 -0
  684. data/previews/primer/beta/counter_preview.rb +93 -0
  685. data/previews/primer/beta/details_preview.rb +63 -0
  686. data/previews/primer/beta/flash_preview.rb +77 -0
  687. data/previews/primer/beta/heading_preview.rb +25 -0
  688. data/previews/primer/beta/icon_button_preview.rb +113 -0
  689. data/previews/primer/beta/label_preview.rb +117 -0
  690. data/previews/primer/beta/link_preview.rb +71 -0
  691. data/previews/primer/beta/markdown_preview.rb +294 -0
  692. data/previews/primer/beta/octicon_preview.rb +25 -0
  693. data/previews/primer/beta/popover_preview.rb +85 -0
  694. data/previews/primer/beta/progress_bar_preview.rb +64 -0
  695. data/previews/primer/beta/relative_time_preview.rb +286 -0
  696. data/previews/primer/beta/spinner_preview.rb +23 -0
  697. data/previews/primer/beta/state_preview.rb +72 -0
  698. data/previews/primer/beta/subhead_preview/actions.html.erb +14 -0
  699. data/previews/primer/beta/subhead_preview.rb +103 -0
  700. data/previews/primer/beta/text_preview.rb +25 -0
  701. data/previews/primer/beta/timeline_item_preview.rb +31 -0
  702. data/previews/primer/beta/truncate_preview.rb +55 -0
  703. data/previews/primer/box_preview.rb +30 -0
  704. data/previews/primer/forms_preview/after_content_form.html.erb +3 -0
  705. data/previews/primer/forms_preview/array_check_box_group_form.html.erb +3 -0
  706. data/previews/primer/forms_preview/caption_template_form.html.erb +3 -0
  707. data/previews/primer/forms_preview/check_box_group_form.html.erb +3 -0
  708. data/previews/primer/forms_preview/check_box_with_nested_form.html.erb +3 -0
  709. data/previews/primer/forms_preview/composed_form.html.erb +4 -0
  710. data/previews/primer/forms_preview/example_toggle_switch_form.html.erb +3 -0
  711. data/previews/primer/forms_preview/horizontal_form.html.erb +3 -0
  712. data/previews/primer/forms_preview/immediate_validation_form.html.erb +3 -0
  713. data/previews/primer/forms_preview/invalid_form.html.erb +3 -0
  714. data/previews/primer/forms_preview/multi_input_form.html.erb +14 -0
  715. data/previews/primer/forms_preview/multi_text_field_form.html.erb +3 -0
  716. data/previews/primer/forms_preview/name_with_question_mark_form.html.erb +3 -0
  717. data/previews/primer/forms_preview/radio_button_group_form.html.erb +3 -0
  718. data/previews/primer/forms_preview/radio_button_with_nested_form.html.erb +3 -0
  719. data/previews/primer/forms_preview/select_form.html.erb +3 -0
  720. data/previews/primer/forms_preview/single_text_field_form.html.erb +3 -0
  721. data/previews/primer/forms_preview/submit_button_form.html.erb +3 -0
  722. data/previews/primer/forms_preview/text_field_and_checkbox_form.html.erb +3 -0
  723. data/previews/primer/forms_preview.rb +44 -0
  724. data/previews/primer/url_helpers.rb +15 -0
  725. data/static/arguments.json +4501 -0
  726. data/static/assets/view-components.svg +18 -0
  727. data/static/audited_at.json +107 -0
  728. data/static/classes.json +606 -0
  729. data/static/constants.json +1335 -0
  730. data/static/info_arch.json +14465 -0
  731. data/static/previews.json +6408 -0
  732. data/static/statuses.json +107 -0
  733. metadata +1145 -0
@@ -0,0 +1,287 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../url_helpers"
4
+
5
+ module Primer
6
+ module Beta
7
+ # @label AutoComplete
8
+ class AutoCompletePreview < ViewComponent::Preview
9
+ # @label Playground
10
+ # @param label_text text
11
+ # @param show_clear_button toggle
12
+ # @param visually_hide_label toggle
13
+ # @param placeholder text
14
+ # @param size select [small, medium, large]
15
+ # @param full_width toggle
16
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
17
+ # @param disabled toggle
18
+ # @param invalid toggle
19
+ # @param input_id text
20
+ # @param list_id text
21
+ # @param input_name text
22
+ # @param inset toggle
23
+ # @param monospace toggle
24
+ def playground(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id", inset: false, monospace: false)
25
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name, inset: inset, monospace: monospace)) do |component|
26
+ component.with_leading_visual_icon(icon: :search)
27
+ end
28
+ end
29
+
30
+ # @label Default
31
+ # @param label_text text
32
+ # @param show_clear_button toggle
33
+ # @param visually_hide_label toggle
34
+ # @param placeholder text
35
+ # @param size select [small, medium, large]
36
+ # @param full_width toggle
37
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
38
+ # @param disabled toggle
39
+ # @param invalid toggle
40
+ # @param input_id text
41
+ # @param list_id text
42
+ # @param input_name text
43
+ # @param inset toggle
44
+ # @param monospace toggle
45
+ def default(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id", inset: false, monospace: false)
46
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name, inset: inset, monospace: monospace)) do |component|
47
+ component.with_leading_visual_icon(icon: :search)
48
+ end
49
+ end
50
+
51
+ # @label With submit button
52
+ # @param label_text text
53
+ # @param show_clear_button toggle
54
+ # @param visually_hide_label toggle
55
+ # @param placeholder text
56
+ # @param size select [small, medium, large]
57
+ # @param full_width toggle
58
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
59
+ # @param disabled toggle
60
+ # @param invalid toggle
61
+ # @param input_id text
62
+ # @param list_id text
63
+ # @param input_name text
64
+ def with_submit_button(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: true, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id")
65
+ render_with_template(locals: {
66
+ label_text: label_text,
67
+ show_clear_button: show_clear_button,
68
+ visually_hide_label: visually_hide_label,
69
+ placeholder: placeholder,
70
+ size: size,
71
+ full_width: full_width,
72
+ width: width,
73
+ disabled: disabled,
74
+ invalid: invalid,
75
+ input_id: input_id,
76
+ list_id: list_id,
77
+ input_name: input_name
78
+ })
79
+ end
80
+
81
+ # @label Leading visual
82
+ # @snapshot
83
+ # @param label_text text
84
+ # @param show_clear_button toggle
85
+ # @param visually_hide_label toggle
86
+ # @param placeholder text
87
+ # @param size select [small, medium, large]
88
+ # @param full_width toggle
89
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
90
+ # @param disabled toggle
91
+ # @param invalid toggle
92
+ # @param input_id text
93
+ # @param list_id text
94
+ # @param input_name text
95
+ def leading_visual(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id")
96
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name)) do |component|
97
+ component.with_leading_visual_icon(icon: :search)
98
+ end
99
+ end
100
+
101
+ # @label Trailing action
102
+ # @snapshot
103
+ # @param label_text text
104
+ # @param show_clear_button toggle
105
+ # @param visually_hide_label toggle
106
+ # @param placeholder text
107
+ # @param size select [small, medium, large]
108
+ # @param full_width toggle
109
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
110
+ # @param disabled toggle
111
+ # @param invalid toggle
112
+ # @param input_id text
113
+ # @param list_id text
114
+ # @param input_name text
115
+ def trailing_action(label_text: "Select a fruit", show_clear_button: true, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id")
116
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name))
117
+ end
118
+
119
+ # @label Full width
120
+ # @snapshot
121
+ # @param label_text text
122
+ # @param show_clear_button toggle
123
+ # @param visually_hide_label toggle
124
+ # @param placeholder text
125
+ # @param size select [small, medium, large]
126
+ # @param full_width toggle
127
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
128
+ # @param disabled toggle
129
+ # @param invalid toggle
130
+ # @param input_id text
131
+ # @param list_id text
132
+ # @param input_name text
133
+ def full_width(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: true, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id")
134
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name)) do |component|
135
+ component.with_leading_visual_icon(icon: :search)
136
+ end
137
+ end
138
+
139
+ # @label Visually hide label
140
+ # @snapshot
141
+ # @param label_text text
142
+ # @param show_clear_button toggle
143
+ # @param visually_hide_label toggle
144
+ # @param placeholder text
145
+ # @param size select [small, medium, large]
146
+ # @param full_width toggle
147
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
148
+ # @param disabled toggle
149
+ # @param invalid toggle
150
+ # @param input_id text
151
+ # @param list_id text
152
+ # @param input_name text
153
+ def visually_hide_label(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: true, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id")
154
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name)) do |component|
155
+ component.with_leading_visual_icon(icon: :search)
156
+ end
157
+ end
158
+
159
+ # @!group Sizes
160
+
161
+ # @param label_text text
162
+ # @param show_clear_button toggle
163
+ # @param visually_hide_label toggle
164
+ # @param placeholder text
165
+ # @param size select [small, medium, large]
166
+ # @param full_width toggle
167
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
168
+ # @param disabled toggle
169
+ # @param invalid toggle
170
+ # @param input_id text
171
+ # @param list_id text
172
+ # @param input_name text
173
+ # @snapshot
174
+ def small(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :small, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id-1", list_id: "list-id-1", input_name: "input-id-1")
175
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name)) do |component|
176
+ component.with_leading_visual_icon(icon: :search)
177
+ end
178
+ end
179
+
180
+ # @param label_text text
181
+ # @param show_clear_button toggle
182
+ # @param visually_hide_label toggle
183
+ # @param placeholder text
184
+ # @param size select [small, medium, large]
185
+ # @param full_width toggle
186
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
187
+ # @param disabled toggle
188
+ # @param invalid toggle
189
+ # @param input_id text
190
+ # @param list_id text
191
+ # @param input_name text
192
+ # @snapshot
193
+ def medium(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id-2", list_id: "list-id-2", input_name: "input-id-2")
194
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name)) do |component|
195
+ component.with_leading_visual_icon(icon: :search)
196
+ end
197
+ end
198
+
199
+ # @param label_text text
200
+ # @param show_clear_button toggle
201
+ # @param visually_hide_label toggle
202
+ # @param placeholder text
203
+ # @param size select [small, medium, large]
204
+ # @param full_width toggle
205
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
206
+ # @param disabled toggle
207
+ # @param invalid toggle
208
+ # @param input_id text
209
+ # @param list_id text
210
+ # @param input_name text
211
+ # @snapshot
212
+ def large(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :large, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id-3", list_id: "list-id-3", input_name: "input-id-3")
213
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path, show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name)) do |component|
214
+ component.with_leading_visual_icon(icon: :search)
215
+ end
216
+ end
217
+
218
+ # @!endgroup
219
+
220
+ # @label Leading visual in results
221
+ # @param label_text text
222
+ # @param show_clear_button toggle
223
+ # @param visually_hide_label toggle
224
+ # @param placeholder text
225
+ # @param size select [small, medium, large]
226
+ # @param full_width toggle
227
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
228
+ # @param disabled toggle
229
+ # @param invalid toggle
230
+ # @param input_id text
231
+ # @param list_id text
232
+ # @param input_name text
233
+ def leading_visual_in_results(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id")
234
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path(visual: "leading"), show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name))
235
+ end
236
+
237
+ # @label Trailing visual in results
238
+ # @param label_text text
239
+ # @param show_clear_button toggle
240
+ # @param visually_hide_label toggle
241
+ # @param placeholder text
242
+ # @param size select [small, medium, large]
243
+ # @param full_width toggle
244
+ # @param width select [auto, small, medium, large, xlarge, xxlarge]
245
+ # @param disabled toggle
246
+ # @param invalid toggle
247
+ # @param input_id text
248
+ # @param list_id text
249
+ # @param input_name text
250
+ def trailing_visual_in_results(label_text: "Select a fruit", show_clear_button: false, visually_hide_label: false, placeholder: "Placeholder text", size: :medium, full_width: false, width: :auto, disabled: false, invalid: false, input_id: "input-id", list_id: "list-id", input_name: "input-id")
251
+ render(Primer::Beta::AutoComplete.new(label_text: label_text, input_id: input_id, list_id: list_id, src: UrlHelpers.autocomplete_index_path(visual: "trailing"), show_clear_button: show_clear_button, visually_hide_label: visually_hide_label, placeholder: placeholder, size: size, full_width: full_width, width: width, disabled: disabled, invalid: invalid, input_name: input_name))
252
+ end
253
+
254
+ # @hidden
255
+ def with_non_visible_label
256
+ render(Primer::Beta::AutoComplete.new(label_text: "Select a fruit", input_id: "input-id", list_id: "test-id", src: UrlHelpers.autocomplete_index_path, visually_hide_label: true))
257
+ end
258
+
259
+ # @hidden
260
+ def with_icon
261
+ render(Primer::Beta::AutoComplete.new(label_text: "Select a fruit", input_id: "input-id", list_id: "test-id", src: UrlHelpers.autocomplete_index_path)) do |component|
262
+ component.with_leading_visual_icon(icon: :search)
263
+ end
264
+ end
265
+
266
+ # @hidden
267
+ def show_clear_button
268
+ render(Primer::Beta::AutoComplete.new(label_text: "Select a fruit", input_id: "input-id", list_id: "test-id", src: UrlHelpers.autocomplete_index_path, show_clear_button: true))
269
+ end
270
+
271
+ # @hidden
272
+ def size_small
273
+ render(Primer::Beta::AutoComplete.new(label_text: "Select a fruit", input_id: "input-id", list_id: "test-id", src: UrlHelpers.autocomplete_index_path, show_clear_button: false, size: :small))
274
+ end
275
+
276
+ # @hidden
277
+ def monospace
278
+ render(Primer::Beta::AutoComplete.new(label_text: "Select a fruit", input_id: "input-id", list_id: "test-id", src: UrlHelpers.autocomplete_index_path, show_clear_button: false, monospace: true))
279
+ end
280
+
281
+ # @hidden
282
+ def inset
283
+ render(Primer::Beta::AutoComplete.new(label_text: "Select a fruit", input_id: "input-id", list_id: "test-id", src: UrlHelpers.autocomplete_index_path, show_clear_button: false, inset: true))
284
+ end
285
+ end
286
+ end
287
+ end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Beta
5
+ # @label Avatar
6
+ class AvatarPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param size [Integer] select [16, 20, 24, 32, 40, 48, 80]
10
+ # @param shape [Symbol] select [circle, square]
11
+ # @param href [String] text
12
+ def playground(size: 24, shape: :circle, href: nil)
13
+ render(Primer::Beta::Avatar.new(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser", size: size, shape: shape, href: href))
14
+ end
15
+
16
+ # @label Default
17
+ # @snapshot
18
+ def default
19
+ render(Primer::Beta::Avatar.new(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
20
+ end
21
+
22
+ # @label As link
23
+ #
24
+ # @param href [String] text
25
+ def as_link(href: "#")
26
+ render(Primer::Beta::Avatar.new(href: href, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
27
+ end
28
+
29
+ # @!group Sizes
30
+ #
31
+ # @label 16px
32
+ # @snapshot
33
+ def size_16
34
+ render(Primer::Beta::Avatar.new(size: 16, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
35
+ end
36
+
37
+ # @label 20px
38
+ # @snapshot
39
+ def size_20
40
+ render(Primer::Beta::Avatar.new(size: 20, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
41
+ end
42
+
43
+ # @label 24px
44
+ # @snapshot
45
+ def size_24
46
+ render(Primer::Beta::Avatar.new(size: 24, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
47
+ end
48
+
49
+ # @label 32px
50
+ # @snapshot
51
+ def size_32
52
+ render(Primer::Beta::Avatar.new(size: 32, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
53
+ end
54
+
55
+ # @label 40px
56
+ # @snapshot
57
+ def size_40
58
+ render(Primer::Beta::Avatar.new(size: 40, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
59
+ end
60
+
61
+ # @label 48px
62
+ # @snapshot
63
+ def size_48
64
+ render(Primer::Beta::Avatar.new(size: 48, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
65
+ end
66
+
67
+ # @label 80px
68
+ # @snapshot
69
+ def size_80
70
+ render(Primer::Beta::Avatar.new(size: 80, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
71
+ end
72
+ #
73
+ # @!endgroup
74
+
75
+ # @!group Shape
76
+ #
77
+ # @label Circle
78
+ # @snapshot
79
+ def shape_circle
80
+ render(Primer::Beta::Avatar.new(shape: :circle, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
81
+ end
82
+
83
+ # @label Square
84
+ # @snapshot
85
+ def shape_square
86
+ render(Primer::Beta::Avatar.new(shape: :square, src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser"))
87
+ end
88
+ #
89
+ # @!endgroup
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Beta
5
+ # @label AvatarStack
6
+ class AvatarStackPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param number_of_avatars [Integer] number
10
+ # @param tag select [["div", div], ["span", span]]
11
+ # @param align select [["Left", left], ["Right", right]]
12
+ # @param tooltipped toggle
13
+ # @param tooltip_label text
14
+ def playground(number_of_avatars: 1, tag: :div, align: :left, tooltipped: false, tooltip_label: "This is a tooltip!")
15
+ render(Primer::Beta::AvatarStack.new(tag: tag, align: align, tooltipped: tooltipped, body_arguments: { label: tooltip_label })) do |component|
16
+ Array.new(number_of_avatars || 1) do
17
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
18
+ end
19
+ end
20
+ end
21
+
22
+ # @label Default
23
+ # @snapshot
24
+ def default
25
+ render(Primer::Beta::AvatarStack.new) do |component|
26
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
27
+ end
28
+ end
29
+
30
+ # @!group Multiple avatars
31
+ #
32
+ # @label 1 avatar
33
+ def avatar_1
34
+ render(Primer::Beta::AvatarStack.new) do |component|
35
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
36
+ end
37
+ end
38
+
39
+ # @label 2 avatars
40
+ # @snapshot
41
+ def avatar_2
42
+ render(Primer::Beta::AvatarStack.new) do |component|
43
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
44
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
45
+ end
46
+ end
47
+
48
+ # @label 3 avatars
49
+ # @snapshot
50
+ def avatar_3
51
+ render(Primer::Beta::AvatarStack.new) do |component|
52
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
53
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
54
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
55
+ end
56
+ end
57
+
58
+ # @label 4 avatars
59
+ def avatar_4
60
+ render(Primer::Beta::AvatarStack.new) do |component|
61
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
62
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
63
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
64
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
65
+ end
66
+ end
67
+
68
+ # @label 5 avatars
69
+ def avatar_5
70
+ render(Primer::Beta::AvatarStack.new) do |component|
71
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
72
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
73
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
74
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
75
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
76
+ end
77
+ end
78
+ #
79
+ # @!endgroup
80
+
81
+ # @!group More options
82
+ #
83
+ # @label Align right
84
+ def align_right
85
+ render(Primer::Beta::AvatarStack.new(align: :right)) do |component|
86
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
87
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
88
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
89
+ end
90
+ end
91
+
92
+ # @label With tooltip
93
+ def with_tooltip
94
+ render(Primer::Beta::AvatarStack.new(tooltipped: true, body_arguments: { label: "This is a tooltip!" })) do |component|
95
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
96
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
97
+ component.with_avatar(src: Primer::ExampleImage::BASE64_SRC, alt: "@kittenuser")
98
+ end
99
+ end
100
+ #
101
+ # @!endgroup
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Beta
5
+ # @label BaseButton
6
+ class BaseButtonPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param type [Symbol] select [button, submit]
10
+ # @param tag [Symbol] select [button, a, summary]
11
+ # @param block [Boolean] toggle
12
+ # @param disabled [Boolean]
13
+ def playground(tag: :button, block: false, type: :button, disabled: false)
14
+ render(Primer::Beta::BaseButton.new(tag: tag, block: block, type: type, disabled: disabled)) { "Button" }
15
+ end
16
+
17
+ # @label Default options
18
+ #
19
+ # @param type [Symbol] select [button, submit]
20
+ # @param tag [Symbol] select [button, a, summary]
21
+ # @param block [Boolean] toggle
22
+ def default(tag: :button, block: false, type: :button)
23
+ render(Primer::Beta::BaseButton.new(tag: tag, block: block, type: type)) { "Button" }
24
+ end
25
+
26
+ # @label Disabled
27
+ #
28
+ def disabled
29
+ render(Primer::Beta::BaseButton.new(disabled: true)) { "Button" }
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,139 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Beta
5
+ # @label Blankslate
6
+ class BlankslatePreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param narrow [Boolean] toggle
10
+ # @param spacious [Boolean] toggle
11
+ # @param border [Boolean] toggle
12
+ def playground(narrow: false, spacious: false, border: false)
13
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
14
+ component.with_heading(tag: :h2).with_content("Title")
15
+ component.with_description { "Description" }
16
+ end
17
+ end
18
+
19
+ # @label Default options
20
+ # @snapshot
21
+ def default
22
+ render Primer::Beta::Blankslate.new do |component|
23
+ component.with_heading(tag: :h2).with_content("Title")
24
+ component.with_description { "Description" }
25
+ end
26
+ end
27
+
28
+ # @!group Options
29
+ #
30
+ # @label Narrow
31
+ def option_narrow
32
+ render Primer::Beta::Blankslate.new(narrow: true) do |component|
33
+ component.with_heading(tag: :h2).with_content("Title")
34
+ component.with_description { "Description" }
35
+ end
36
+ end
37
+
38
+ # @label Spacious
39
+ def option_spacious
40
+ render Primer::Beta::Blankslate.new(spacious: true) do |component|
41
+ component.with_heading(tag: :h2).with_content("Title")
42
+ component.with_description { "Description" }
43
+ end
44
+ end
45
+
46
+ # @label Border
47
+ # @snapshot
48
+ def option_border
49
+ render Primer::Beta::Blankslate.new(border: true) do |component|
50
+ component.with_heading(tag: :h2).with_content("Title")
51
+ component.with_description { "Description" }
52
+ end
53
+ end
54
+ #
55
+ # @!endgroup
56
+
57
+ # @param narrow [Boolean] toggle
58
+ # @param spacious [Boolean] toggle
59
+ # @param border [Boolean] toggle
60
+ # @snapshot
61
+ def with_icon(narrow: false, spacious: false, border: false)
62
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
63
+ component.with_visual_icon(icon: :shield)
64
+ component.with_heading(tag: :h2).with_content("It looks like we have discovered a vulnerability")
65
+ end
66
+ end
67
+
68
+ # @param narrow [Boolean] toggle
69
+ # @param spacious [Boolean] toggle
70
+ # @param border [Boolean] toggle
71
+ # @snapshot
72
+ def with_image(narrow: false, spacious: false, border: false)
73
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
74
+ component.with_heading(tag: :h2).with_content("Millions of teams trust GitHub to keep their work safe")
75
+ component.with_visual_image(src: Primer::ExampleImage::BASE64_SRC, alt: "Security - secure vault")
76
+ end
77
+ end
78
+
79
+ # @param narrow [Boolean] toggle
80
+ # @param spacious [Boolean] toggle
81
+ # @param border [Boolean] toggle
82
+ # @snapshot
83
+ def loading(narrow: false, spacious: false, border: false)
84
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
85
+ component.with_heading(tag: :h2).with_content("Mirroring your repository")
86
+ component.with_description { "We’re currently mirroring this repository. It should take anywhere from a few minutes to a couple of hours depending on the size of the repository." }
87
+ component.with_visual_spinner(size: :large)
88
+ end
89
+ end
90
+
91
+ # @param narrow [Boolean] toggle
92
+ # @param spacious [Boolean] toggle
93
+ # @param border [Boolean] toggle
94
+ # @snapshot
95
+ def description(narrow: false, spacious: false, border: false)
96
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
97
+ component.with_heading(tag: :h2).with_content("It looks like we have discovered a vulnerability")
98
+ component.with_description { "Millions of teams trust GitHub to keep their work safe" }
99
+ end
100
+ end
101
+
102
+ # @param narrow [Boolean] toggle
103
+ # @param spacious [Boolean] toggle
104
+ # @param border [Boolean] toggle
105
+ # @snapshot
106
+ def primary_action(narrow: false, spacious: false, border: false)
107
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
108
+ component.with_heading(tag: :h2).with_content("It looks like we have discovered a vulnerability")
109
+ component.with_primary_action(href: "#").with_content("Fix issue")
110
+ end
111
+ end
112
+
113
+ # @param narrow [Boolean] toggle
114
+ # @param spacious [Boolean] toggle
115
+ # @param border [Boolean] toggle
116
+ # @snapshot
117
+ def secondary_action(narrow: false, spacious: false, border: false)
118
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
119
+ component.with_heading(tag: :h2).with_content("It looks like we have discovered a vulnerability")
120
+ component.with_secondary_action(href: "#").with_content("Fix issue")
121
+ end
122
+ end
123
+
124
+ # @param narrow [Boolean] toggle
125
+ # @param spacious [Boolean] toggle
126
+ # @param border [Boolean] toggle
127
+ # @snapshot
128
+ def full(narrow: false, spacious: false, border: false)
129
+ render Primer::Beta::Blankslate.new(narrow: narrow, spacious: spacious, border: border) do |component|
130
+ component.with_visual_icon(icon: :shield)
131
+ component.with_heading(tag: :h2).with_content("It looks like we have discovered a vulnerability")
132
+ component.with_description { "Millions of teams trust GitHub to keep their work safe" }
133
+ component.with_primary_action(href: "#").with_content("Fix issue")
134
+ component.with_secondary_action(href: "#").with_content("Learn more about vulnerabilities")
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end