openproject-primer_view_components 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Alpha
5
+ # @label CheckBoxGroup
6
+ class CheckBoxGroupPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param name text
10
+ # @param label text
11
+ # @param caption text
12
+ # @param disabled toggle
13
+ def playground(
14
+ name: "my-check-group",
15
+ label: "I would go into battle with:",
16
+ caption: "Qa'pla!",
17
+ disabled: false
18
+ )
19
+ system_arguments = {
20
+ name: name,
21
+ label: label,
22
+ caption: caption,
23
+ disabled: disabled
24
+ }
25
+
26
+ render(Primer::Alpha::CheckBoxGroup.new(**system_arguments)) do |component|
27
+ component.check_box(label: "Jean-Luc Picard", value: "picard")
28
+ component.check_box(label: "Hikaru Sulu", value: "sulu")
29
+ component.check_box(label: "Kathryn Janeway", value: "janeway")
30
+ component.check_box(label: "Benjamin Sisko", value: "sisko")
31
+ end
32
+ end
33
+
34
+ # @label Default
35
+ def default
36
+ render(Primer::Alpha::CheckBoxGroup.new(name: "my-check-group", label: "I would go into battle with:")) do |component|
37
+ component.check_box(label: "Jean-Luc Picard", value: "picard")
38
+ component.check_box(label: "Hikaru Sulu", value: "sulu")
39
+ component.check_box(label: "Kathryn Janeway", value: "janeway")
40
+ component.check_box(label: "Benjamin Sisko", value: "sisko")
41
+ end
42
+ end
43
+
44
+ # @!group Options
45
+ # @snapshot
46
+ #
47
+ # @label With caption
48
+ def with_caption
49
+ render(Primer::Alpha::CheckBoxGroup.new(caption: "With a caption", name: "my-check-group", label: "I would go into battle with:")) do |component|
50
+ component.check_box(label: "Jean-Luc Picard", value: "picard1")
51
+ component.check_box(label: "Hikaru Sulu", value: "sulu1")
52
+ component.check_box(label: "Kathryn Janeway", value: "janeway1")
53
+ component.check_box(label: "Benjamin Sisko", value: "sisko1")
54
+ end
55
+ end
56
+
57
+ # @label Visually hidden label
58
+ def visually_hide_label
59
+ render(Primer::Alpha::CheckBoxGroup.new(visually_hide_label: true, name: "my-check-group", label: "I would go into battle with:")) do |component|
60
+ component.check_box(label: "Jean-Luc Picard", value: "picard2")
61
+ component.check_box(label: "Hikaru Sulu", value: "sulu2")
62
+ component.check_box(label: "Kathryn Janeway", value: "janeway2")
63
+ component.check_box(label: "Benjamin Sisko", value: "sisko2")
64
+ end
65
+ end
66
+
67
+ # @label Full width
68
+ def full_width
69
+ render(Primer::Alpha::CheckBoxGroup.new(full_width: true, name: "my-check-group", label: "I would go into battle with:")) do |component|
70
+ component.check_box(label: "Jean-Luc Picard", value: "picard3")
71
+ component.check_box(label: "Hikaru Sulu", value: "sulu3")
72
+ component.check_box(label: "Kathryn Janeway", value: "janeway3")
73
+ component.check_box(label: "Benjamin Sisko", value: "sisko3")
74
+ end
75
+ end
76
+
77
+ # @label Disabled
78
+ def disabled
79
+ render(Primer::Alpha::CheckBoxGroup.new(disabled: true, name: "my-check-group", label: "I would go into battle with:")) do |component|
80
+ component.check_box(label: "Jean-Luc Picard", value: "picard4")
81
+ component.check_box(label: "Hikaru Sulu", value: "sulu4")
82
+ component.check_box(label: "Kathryn Janeway", value: "janeway4")
83
+ component.check_box(label: "Benjamin Sisko", value: "sisko4")
84
+ end
85
+ end
86
+ #
87
+ # @!endgroup
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Alpha
5
+ # @label CheckBox
6
+ class CheckBoxPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param name text
10
+ # @param id text
11
+ # @param value text
12
+ # @param label text
13
+ # @param caption text
14
+ # @param visually_hide_label toggle
15
+ # @param disabled toggle
16
+ def playground(
17
+ name: "my-check-box",
18
+ id: nil,
19
+ value: "picard",
20
+ label: "Jean-Luc Picard",
21
+ caption: "Make it so",
22
+ visually_hide_label: false,
23
+ disabled: false
24
+ )
25
+ system_arguments = {
26
+ name: name,
27
+ value: value,
28
+ label: label,
29
+ caption: caption,
30
+ visually_hide_label: visually_hide_label,
31
+ disabled: disabled
32
+ }
33
+
34
+ render(Primer::Alpha::CheckBox.new(**system_arguments))
35
+ end
36
+
37
+ # @label Default
38
+ def default
39
+ render(Primer::Alpha::CheckBox.new(name: "my-check-box", label: "Jean-Luc Picard"))
40
+ end
41
+
42
+ # @!group Options
43
+ # @snapshot
44
+ #
45
+ # @label With caption
46
+ def with_caption
47
+ render(Primer::Alpha::CheckBox.new(caption: "With a caption", name: "my-check-box1", label: "Jean-Luc Picard"))
48
+ end
49
+
50
+ # @label Checked
51
+ def checked
52
+ render(Primer::Alpha::CheckBox.new(checked: true, name: "my-check-box1", label: "Jean-Luc Picard"))
53
+ end
54
+
55
+ # @label Visually hidden label
56
+ def visually_hide_label
57
+ render(Primer::Alpha::CheckBox.new(visually_hide_label: true, name: "my-check-box2", label: "Jean-Luc Picard"))
58
+ end
59
+
60
+ # @label Disabled
61
+ def disabled
62
+ render(Primer::Alpha::CheckBox.new(disabled: true, name: "my-check-box4", label: "Jean-Luc Picard"))
63
+ end
64
+ #
65
+ # @!endgroup
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,9 @@
1
+ <div>
2
+ <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
3
+ <%= render(Primer::Alpha::Dialog.new(id: "dialog-one", title: title, subtitle: subtitle, visually_hide_title: false)) do |d| %>
4
+ <% d.with_show_button { button_text } %>
5
+ <% d.with_body do %>
6
+ <p>Dialog</p>
7
+ <% end %>
8
+ <% end %>
9
+ </div>
@@ -0,0 +1,7 @@
1
+ <%= render(Primer::Alpha::Dialog.new(id: "my-dialog", title: title, subtitle: subtitle, visually_hide_title: false)) do |d| %>
2
+ <% d.with_header(show_divider: show_divider) do %>
3
+ <button class="btn">Custom Header Controls</button>
4
+ <% end %>
5
+ <% d.with_show_button { button_text } %>
6
+ <% d.with_body { "Hello World" } %>
7
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <%= render(Primer::Alpha::Dialog.new(id: "dialog-one", title: title, subtitle: subtitle, visually_hide_title: false)) do |d| %>
2
+ <% d.with_show_button { button_text } %>
3
+ <% d.with_body do %>
4
+ <p>Dialog One!</p>
5
+
6
+ <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
7
+ <%= render(Primer::Alpha::Dialog.new(id: "dialog-two", title: title, subtitle: subtitle, visually_hide_title: false)) do |d| %>
8
+ <% d.with_show_button { button_text } %>
9
+ <% d.with_body do %>
10
+ Dialog Two!
11
+ <% end %>
12
+ <% end %>
13
+ <% end %>
14
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%= render(Primer::Alpha::Dialog.new(title: title, subtitle: subtitle)) do |d| %>
2
+ <% d.with_show_button { @button_text } %>
3
+ <% d.with_body { "Content" } %>
4
+ <% d.with_footer do %>
5
+ render(Primer::ButtonComponent.new(scheme: :primary)) { "Submit" }
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <%= render(Primer::Alpha::Dialog.new(id: "my-dialog", title: title, subtitle: subtitle)) do |d| %>
2
+ <% d.with_show_button { button_text } %>
3
+ <% d.with_body { "Content" } %>
4
+ <% d.with_footer(show_divider: show_divider) do %>
5
+ <%= render(Primer::ButtonComponent.new(data: { "close-dialog-id": "my-dialog" })) { "Cancel" } %>
6
+ <%= render(Primer::ButtonComponent.new(scheme: :primary)) { "Submit" } %>
7
+ <% end %>
8
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <%= render(Primer::Alpha::Dialog.new(id: "my-dialog", title: title, subtitle: subtitle)) do |d| %>
2
+ <% d.with_show_button { button_text } %>
3
+ <form class="pt-3">
4
+ <%= render(Primer::Alpha::Dialog::Body.new) do %>
5
+ This is a custom dialog with the body and footer wrapped in a form tag.
6
+ <% end %>
7
+ <%= render(Primer::Alpha::Dialog::Footer.new(show_divider: show_divider)) do %>
8
+ <%= render(Primer::ButtonComponent.new(data: { "close-dialog-id": "my-dialog" })) { "Cancel" } %>
9
+ <%= render(Primer::ButtonComponent.new(scheme: :primary)) { "Submit" } %>
10
+ <% end %>
11
+ </form>
12
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <%= render(Primer::Alpha::Dialog.new(id: "dialog-one", title: title, subtitle: subtitle, visually_hide_title: false)) do |d| %>
2
+ <% d.with_show_button { button_text } %>
3
+ <% d.with_body do %>
4
+ <p>Dialog One!</p>
5
+
6
+ <form>
7
+ <input type="text" value="Some text goes in here">
8
+ </form>
9
+ <% end %>
10
+ <% end %>
@@ -0,0 +1,154 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Alpha
5
+ # @label Dialog
6
+ class DialogPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param title [String] text
10
+ # @param subtitle [String] text
11
+ # @param size [Symbol] select [small, medium, medium_portrait, large, xlarge]
12
+ # @param position [Symbol] select [center, left, right]
13
+ # @param position_narrow [Symbol] select [inherit, bottom, fullscreen, left, right]
14
+ # @param visually_hide_title [Boolean] toggle
15
+ # @param disable_button [Boolean] toggle
16
+ # @param button_text [String] text
17
+ # @param body_text [String] text
18
+ # @param icon [Symbol] octicon
19
+ def playground(title: "Test Dialog", subtitle: nil, size: :medium, button_text: "Show Dialog", body_text: "Content", position: :center, position_narrow: :fullscreen, visually_hide_title: false, icon: nil, disable_button: false)
20
+ render(Primer::Alpha::Dialog.new(title: title, subtitle: subtitle, size: size, position: position, position_narrow: position_narrow, visually_hide_title: visually_hide_title)) do |d|
21
+ if icon.present? && (icon != :none)
22
+ d.with_show_button(icon: icon, "aria-label": icon.to_s, disabled: disable_button)
23
+ else
24
+ d.with_show_button(disabled: disable_button) { button_text }
25
+ end
26
+ d.with_body { body_text }
27
+ end
28
+ end
29
+
30
+ # @label Default options
31
+ #
32
+ # @param title [String] text
33
+ # @param subtitle [String] text
34
+ # @param size [Symbol] select [small, medium, medium_portrait, large, xlarge]
35
+ # @param position [Symbol] select [center, left, right]
36
+ # @param position_narrow [Symbol] select [inherit, bottom, fullscreen, left, right]
37
+ # @param visually_hide_title [Boolean] toggle
38
+ # @param button_text [String] text
39
+ # @param body_text [String] text
40
+ # @snapshot interactive
41
+ def default(title: "Test Dialog", subtitle: nil, size: :medium, button_text: "Show Dialog", body_text: "Content", position: :center, position_narrow: :fullscreen, visually_hide_title: false)
42
+ render(Primer::Alpha::Dialog.new(title: title, subtitle: subtitle, size: size, position: position, position_narrow: position_narrow, visually_hide_title: visually_hide_title)) do |d|
43
+ d.with_show_button { button_text }
44
+ d.with_body { body_text }
45
+ end
46
+ end
47
+
48
+ # @label Long text
49
+ #
50
+ # @param title [String] text
51
+ # @param subtitle [String] text
52
+ # @param button_text [String] text
53
+ # @param size [Symbol] select [small, medium, medium_portrait, large, xlarge]
54
+ # @param position [Symbol] select [center, left, right]
55
+ # @param position_narrow [Symbol] select [inherit, bottom, fullscreen, left, right]
56
+ def long_text(title: "Test Dialog", subtitle: nil, size: :medium, button_text: "Show Dialog", position: :center, position_narrow: :fullscreen)
57
+ render(Primer::Alpha::Dialog.new(title: title, subtitle: subtitle, size: size, position: position, position_narrow: position_narrow)) do |d|
58
+ d.with_show_button { button_text }
59
+ d.with_body { "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?" }
60
+ end
61
+ end
62
+
63
+ # @label With Footer
64
+ #
65
+ # @param title [String] text
66
+ # @param subtitle [String] text
67
+ # @param button_text [String] text
68
+ # @param show_divider [Boolean] toggle
69
+ def with_footer(title: "Test Dialog", subtitle: nil, button_text: "Show Dialog", show_divider: true)
70
+ render_with_template(locals: {
71
+ title: title,
72
+ subtitle: subtitle,
73
+ button_text: button_text,
74
+ show_divider: show_divider
75
+ })
76
+ end
77
+
78
+ # @label With a Form
79
+ #
80
+ # @param title [String] text
81
+ # @param subtitle [String] text
82
+ # @param button_text [String] text
83
+ # @param show_divider [Boolean] toggle
84
+ def with_form(title: "Test Dialog", subtitle: nil, button_text: "Show Dialog", show_divider: true)
85
+ render_with_template(locals: {
86
+ title: title,
87
+ subtitle: subtitle,
88
+ button_text: button_text,
89
+ show_divider: show_divider
90
+ })
91
+ end
92
+
93
+ # @label Custom Header
94
+ #
95
+ # @param title [String] text
96
+ # @param subtitle [String] text
97
+ # @param button_text [String] text
98
+ # @param show_divider [Boolean] toggle
99
+ def custom_header(title: "Test Dialog", subtitle: nil, button_text: "Show Dialog", show_divider: true)
100
+ render_with_template(locals: {
101
+ title: title,
102
+ subtitle: subtitle,
103
+ button_text: button_text,
104
+ show_divider: show_divider
105
+ })
106
+ end
107
+
108
+ # @label Nested dialog
109
+ #
110
+ # @param title [String] text
111
+ # @param subtitle [String] text
112
+ # @param button_text [String] text
113
+ # @param show_divider [Boolean] toggle
114
+ def nested_dialog(title: "Test Dialog", subtitle: nil, button_text: "Show Dialog", show_divider: true)
115
+ render_with_template(locals: {
116
+ title: title,
117
+ subtitle: subtitle,
118
+ button_text: button_text,
119
+ show_divider: show_divider
120
+ })
121
+ end
122
+
123
+ # @label Dialog with text input
124
+ #
125
+ # @param title [String] text
126
+ # @param subtitle [String] text
127
+ # @param button_text [String] text
128
+ # @param show_divider [Boolean] toggle
129
+ def with_text_input(title: "Test Dialog", subtitle: nil, button_text: "Show Dialog", show_divider: true)
130
+ render_with_template(locals: {
131
+ title: title,
132
+ subtitle: subtitle,
133
+ button_text: button_text,
134
+ show_divider: show_divider
135
+ })
136
+ end
137
+
138
+ # @label Page with scrollbar and dialog
139
+ #
140
+ # @param title [String] text
141
+ # @param subtitle [String] text
142
+ # @param button_text [String] text
143
+ # @param show_divider [Boolean] toggle
144
+ def body_has_scrollbar_overflow(title: "Test Dialog", subtitle: nil, button_text: "Show Dialog", show_divider: true)
145
+ render_with_template(locals: {
146
+ title: title,
147
+ subtitle: subtitle,
148
+ button_text: button_text,
149
+ show_divider: show_divider
150
+ })
151
+ end
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,211 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Alpha
5
+ # @label Dropdown
6
+ class DropdownPreview < ViewComponent::Preview
7
+ # @label Playground
8
+ #
9
+ # @param with_caret [Boolean] toggle
10
+ # @param overlay [Symbol] select [none, default, dark]
11
+ def playground(overlay: :default, with_caret: false)
12
+ render(Primer::Alpha::Dropdown.new(overlay: overlay, with_caret: with_caret)) do |component|
13
+ component.with_button { "Dropdown" }
14
+
15
+ component.with_menu(header: "Header") do |menu|
16
+ menu.with_item { "Item 1" }
17
+ menu.with_item { "Item 2" }
18
+ menu.with_item(divider: true)
19
+ menu.with_item { "Item 3" }
20
+ menu.with_item { "Item 4" }
21
+ end
22
+ end
23
+ end
24
+
25
+ # @label Default
26
+ #
27
+ # @snapshot interactive
28
+ def default
29
+ render(Primer::Alpha::Dropdown.new) do |component|
30
+ component.with_button { "Dropdown" }
31
+ component.with_menu do |menu|
32
+ menu.with_item { "Item 1" }
33
+ menu.with_item { "Item 2" }
34
+ menu.with_item { "Item 3" }
35
+ end
36
+ end
37
+ end
38
+
39
+ # @label Menu
40
+ #
41
+ # @param as [Symbol] select [list, default]
42
+ # @param direction [Symbol] select [se, sw, w, e, ne, s]
43
+ # @param scheme [Symbol] select [default, dark]
44
+ def menu(as: :default, direction: :se, scheme: :default)
45
+ render(Primer::Alpha::Dropdown::Menu.new(as: as, direction: direction, scheme: scheme, header: "Header")) do |menu|
46
+ menu.with_item { "Item 1" }
47
+ menu.with_item { "Item 2" }
48
+ menu.with_item(divider: true)
49
+ menu.with_item { "Item 3" }
50
+ menu.with_item { "Item 4" }
51
+ end
52
+ end
53
+
54
+ # @!group Direction
55
+ #
56
+ # @label Direction e
57
+ def direction_e
58
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |component|
59
+ component.with_button { "Dropdown" }
60
+ component.with_menu(direction: :e) do |menu|
61
+ menu.with_item { "Item 1" }
62
+ menu.with_item { "Item 2" }
63
+ menu.with_item { "Item 3" }
64
+ end
65
+ end
66
+ end
67
+
68
+ # @label Direction ne
69
+ def direction_ne
70
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |component|
71
+ component.with_button { "Dropdown" }
72
+ component.with_menu(direction: :ne) do |menu|
73
+ menu.with_item { "Item 1" }
74
+ menu.with_item { "Item 2" }
75
+ menu.with_item { "Item 3" }
76
+ end
77
+ end
78
+ end
79
+
80
+ # @label Direction s
81
+ def direction_s
82
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |component|
83
+ component.with_button { "Dropdown" }
84
+ component.with_menu(direction: :s) do |menu|
85
+ menu.with_item { "Item 1" }
86
+ menu.with_item { "Item 2" }
87
+ menu.with_item { "Item 3" }
88
+ end
89
+ end
90
+ end
91
+
92
+ # @label Direction se
93
+ def direction_se
94
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |component|
95
+ component.with_button { "Dropdown" }
96
+ component.with_menu(direction: :se) do |menu|
97
+ menu.with_item { "Item 1" }
98
+ menu.with_item { "Item 2" }
99
+ menu.with_item { "Item 3" }
100
+ end
101
+ end
102
+ end
103
+
104
+ # @label Direction sw
105
+ def direction_sw
106
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |component|
107
+ component.with_button { "Dropdown" }
108
+ component.with_menu(direction: :sw) do |menu|
109
+ menu.with_item { "Item 1" }
110
+ menu.with_item { "Item 2" }
111
+ menu.with_item { "Item 3" }
112
+ end
113
+ end
114
+ end
115
+
116
+ # @label Direction w
117
+ def direction_w
118
+ render(Primer::Alpha::Dropdown.new(display: :inline_block)) do |component|
119
+ component.with_button { "Dropdown" }
120
+ component.with_menu(direction: :w) do |menu|
121
+ menu.with_item { "Item 1" }
122
+ menu.with_item { "Item 2" }
123
+ menu.with_item { "Item 3" }
124
+ end
125
+ end
126
+ end
127
+ #
128
+ # @!endgroup
129
+
130
+ # @!group Options
131
+ #
132
+ # @label With caret
133
+ def options_with_caret
134
+ render(Primer::Alpha::Dropdown.new(with_caret: true)) do |component|
135
+ component.with_button { "Dropdown" }
136
+ component.with_menu do |menu|
137
+ menu.with_item { "Item 1" }
138
+ menu.with_item { "Item 2" }
139
+ menu.with_item { "Item 3" }
140
+ end
141
+ end
142
+ end
143
+
144
+ # @label With header
145
+ def options_with_header
146
+ render(Primer::Alpha::Dropdown.new) do |component|
147
+ component.with_button { "Dropdown" }
148
+ component.with_menu(header: "Header") do |menu|
149
+ menu.with_item { "Item 1" }
150
+ menu.with_item { "Item 2" }
151
+ menu.with_item { "Item 3" }
152
+ end
153
+ end
154
+ end
155
+
156
+ # @label With dividers
157
+ def options_with_dividers
158
+ render(Primer::Alpha::Dropdown.new) do |component|
159
+ component.with_button { "Dropdown" }
160
+ component.with_menu do |menu|
161
+ menu.with_item { "Item 1" }
162
+ menu.with_item { "Item 2" }
163
+ menu.with_item(divider: true)
164
+ menu.with_item { "Item 3" }
165
+ menu.with_item { "Item 4" }
166
+ menu.with_item(divider: true)
167
+ menu.with_item { "Item 5" }
168
+ end
169
+ end
170
+ end
171
+
172
+ # @label As list
173
+ def options_as_list
174
+ render(Primer::Alpha::Dropdown.new) do |component|
175
+ component.with_button { "Dropdown" }
176
+ component.with_menu(as: :list) do |menu|
177
+ menu.with_item { "Item 1" }
178
+ menu.with_item { "Item 2" }
179
+ menu.with_item { "Item 3" }
180
+ end
181
+ end
182
+ end
183
+
184
+ # @label Overlay none
185
+ def options_overlay_none
186
+ render(Primer::Alpha::Dropdown.new(overlay: :none)) do |component|
187
+ component.with_button { "Dropdown" }
188
+ component.with_menu do |menu|
189
+ menu.with_item { "Item 1" }
190
+ menu.with_item { "Item 2" }
191
+ menu.with_item { "Item 3" }
192
+ end
193
+ end
194
+ end
195
+
196
+ # @label Overlay dark
197
+ def options_overlay_dark
198
+ render(Primer::Alpha::Dropdown.new(overlay: :dark)) do |component|
199
+ component.with_button { "Dropdown" }
200
+ component.with_menu do |menu|
201
+ menu.with_item { "Item 1" }
202
+ menu.with_item { "Item 2" }
203
+ menu.with_item { "Item 3" }
204
+ end
205
+ end
206
+ end
207
+ #
208
+ # @!endgroup
209
+ end
210
+ end
211
+ end
@@ -0,0 +1,9 @@
1
+ <%= render(Primer::Alpha::FormControl.new(**system_arguments)) do |component| %>
2
+ <% component.with_input do |input_arguments| %>
3
+ <%= render(Primer::Alpha::SegmentedControl.new("aria-label": "Best character", **input_arguments)) do |seg| %>
4
+ <% seg.with_item(label: "Han Solo", selected: true) %>
5
+ <% seg.with_item(label: "Luke Skywalker") %>
6
+ <% seg.with_item(label: "Leia Organa") %>
7
+ <% end %>
8
+ <% end %>
9
+ <% end %>