railsui 3.1.4 → 3.2.0

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 (535) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/settings.local.json +10 -0
  3. data/Gemfile.lock +29 -27
  4. data/README.md +1 -1
  5. data/app/assets/images/tailwind-corgie-thumbnail.jpg +0 -0
  6. data/app/assets/stylesheets/railsui/railsui.css +18 -0
  7. data/app/helpers/railsui/application_helper.rb +22 -17
  8. data/app/helpers/railsui/host_route_fallback_helper.rb +18 -0
  9. data/app/javascript/controllers/alert_controller.js +0 -0
  10. data/app/models/railsui/default.rb +28 -109
  11. data/app/views/railsui/admin/fields/_color.html.erb +6 -1
  12. data/app/views/railsui/admin/fields/_theme.html.erb +16 -8
  13. data/app/views/railsui/default/_launchpad.html.erb +1 -1
  14. data/app/views/railsui/shared/_flash_messages.html.erb +2 -2
  15. data/app/views/railsui/shared/_full_access_cta.html.erb +27 -0
  16. data/app/views/railsui/shared/_global_nav.html.erb +2 -2
  17. data/app/views/railsui/shared/_preview.html.erb +1 -1
  18. data/app/views/railsui/shared/_rui_email_preview.html.erb +60 -3
  19. data/app/views/railsui/systems/forms/form_builder.html.erb +171 -0
  20. data/app/views/railsui/themes/corgie/_components.html.erb +7 -0
  21. data/app/views/railsui/themes/corgie/_content.html.erb +9 -0
  22. data/app/views/railsui/themes/corgie/_fonts.html.erb +0 -0
  23. data/app/views/railsui/themes/corgie/_forms.html.erb +19 -0
  24. data/app/views/railsui/themes/corgie/_icons.html.erb +125 -0
  25. data/app/views/railsui/themes/corgie/_nav.html.erb +166 -0
  26. data/app/views/railsui/themes/corgie/_scaffolds.html.erb +42 -0
  27. data/app/views/railsui/themes/corgie/authentication/_overview.html.erb +5 -0
  28. data/app/views/railsui/themes/corgie/authentication/devise/_change_password.html.erb +74 -0
  29. data/app/views/railsui/themes/corgie/authentication/devise/_confirmation.html.erb +63 -0
  30. data/app/views/railsui/themes/corgie/authentication/devise/_edit.html.erb +103 -0
  31. data/app/views/railsui/themes/corgie/authentication/devise/_overview.html.erb +225 -0
  32. data/app/views/railsui/themes/corgie/authentication/devise/_reset_password.html.erb +60 -0
  33. data/app/views/railsui/themes/corgie/authentication/devise/_signin.html.erb +93 -0
  34. data/app/views/railsui/themes/corgie/authentication/devise/_signup.html.erb +98 -0
  35. data/app/views/railsui/themes/corgie/authentication/devise/_unlocks.html.erb +60 -0
  36. data/app/views/railsui/themes/corgie/authentication/static/_change_password.html.erb +67 -0
  37. data/app/views/railsui/themes/corgie/authentication/static/_confirmation.html.erb +58 -0
  38. data/app/views/railsui/themes/corgie/authentication/static/_overview.html.erb +204 -0
  39. data/app/views/railsui/themes/corgie/authentication/static/_reset_password.html.erb +59 -0
  40. data/app/views/railsui/themes/corgie/authentication/static/_signin.html.erb +102 -0
  41. data/app/views/railsui/themes/corgie/authentication/static/_signup.html.erb +108 -0
  42. data/app/views/railsui/themes/corgie/authentication/static/_unlocks.html.erb +60 -0
  43. data/app/views/railsui/themes/corgie/components/_accordion.html.erb +17 -0
  44. data/app/views/railsui/themes/corgie/components/_alert.html.erb +23 -0
  45. data/app/views/railsui/themes/corgie/components/_avatar.html.erb +13 -0
  46. data/app/views/railsui/themes/corgie/components/_badge.html.erb +20 -0
  47. data/app/views/railsui/themes/corgie/components/_breadcrumb.html.erb +14 -0
  48. data/app/views/railsui/themes/corgie/components/_button.html.erb +16 -0
  49. data/app/views/railsui/themes/corgie/components/_card.html.erb +23 -0
  50. data/app/views/railsui/themes/corgie/components/_combobox.html.erb +11 -0
  51. data/app/views/railsui/themes/corgie/components/_dropdown.html.erb +22 -0
  52. data/app/views/railsui/themes/corgie/components/_flash.html.erb +17 -0
  53. data/app/views/railsui/themes/corgie/components/_modal.html.erb +27 -0
  54. data/app/views/railsui/themes/corgie/components/_navigation.html.erb +7 -0
  55. data/app/views/railsui/themes/corgie/components/_pagination.html.erb +15 -0
  56. data/app/views/railsui/themes/corgie/components/_tab.html.erb +23 -0
  57. data/app/views/railsui/themes/corgie/components/_toast.html.erb +75 -0
  58. data/app/views/railsui/themes/corgie/components/_tooltip.html.erb +77 -0
  59. data/app/views/railsui/themes/corgie/components/accordion/_contained.html.erb +90 -0
  60. data/app/views/railsui/themes/corgie/components/accordion/_flush.html.erb +92 -0
  61. data/app/views/railsui/themes/corgie/components/alert/_dismissable.html.erb +45 -0
  62. data/app/views/railsui/themes/corgie/components/alert/_with_accent_border.html.erb +32 -0
  63. data/app/views/railsui/themes/corgie/components/alert/_with_actions.html.erb +57 -0
  64. data/app/views/railsui/themes/corgie/components/alert/_with_description.html.erb +41 -0
  65. data/app/views/railsui/themes/corgie/components/alert/_with_list.html.erb +46 -0
  66. data/app/views/railsui/themes/corgie/components/avatar/_circle.html.erb +53 -0
  67. data/app/views/railsui/themes/corgie/components/avatar/_rounded.html.erb +53 -0
  68. data/app/views/railsui/themes/corgie/components/badge/_basic.html.erb +70 -0
  69. data/app/views/railsui/themes/corgie/components/badge/_outline.html.erb +67 -0
  70. data/app/views/railsui/themes/corgie/components/badge/_pill.html.erb +67 -0
  71. data/app/views/railsui/themes/corgie/components/badge/_tag.html.erb +277 -0
  72. data/app/views/railsui/themes/corgie/components/breadcrumb/_article.html.erb +88 -0
  73. data/app/views/railsui/themes/corgie/components/breadcrumb/_base.html.erb +77 -0
  74. data/app/views/railsui/themes/corgie/components/button/_base.html.erb +38 -0
  75. data/app/views/railsui/themes/corgie/components/button/_expanded.html.erb +24 -0
  76. data/app/views/railsui/themes/corgie/components/button/_sizes.html.erb +31 -0
  77. data/app/views/railsui/themes/corgie/components/card/_article.html.erb +119 -0
  78. data/app/views/railsui/themes/corgie/components/card/_base.html.erb +34 -0
  79. data/app/views/railsui/themes/corgie/components/card/_feature.html.erb +54 -0
  80. data/app/views/railsui/themes/corgie/components/card/_team_member.html.erb +60 -0
  81. data/app/views/railsui/themes/corgie/components/card/_value.html.erb +54 -0
  82. data/app/views/railsui/themes/corgie/components/combobox/_base.html.erb +250 -0
  83. data/app/views/railsui/themes/corgie/components/dropdown/_base.html.erb +61 -0
  84. data/app/views/railsui/themes/corgie/components/dropdown/_dropdown.html.erb +24 -0
  85. data/app/views/railsui/themes/corgie/components/dropdown/_dropdown_w_icon.html.erb +27 -0
  86. data/app/views/railsui/themes/corgie/components/dropdown/_right_aligned.html.erb +82 -0
  87. data/app/views/railsui/themes/corgie/components/dropdown/_with_dividers.html.erb +93 -0
  88. data/app/views/railsui/themes/corgie/components/dropdown/_with_icons.html.erb +85 -0
  89. data/app/views/railsui/themes/corgie/components/dropdown/tutorial/_1.html.erb +44 -0
  90. data/app/views/railsui/themes/corgie/components/dropdown/tutorial/_2.html.erb +16 -0
  91. data/app/views/railsui/themes/corgie/components/dropdown/tutorial/_3.html.erb +16 -0
  92. data/app/views/railsui/themes/corgie/components/dropdown/tutorial/_4.html.erb +27 -0
  93. data/app/views/railsui/themes/corgie/components/dropdown/tutorial/_dependencies.html.erb +3 -0
  94. data/app/views/railsui/themes/corgie/components/dropdown/tutorial/_tutorial.html.erb +25 -0
  95. data/app/views/railsui/themes/corgie/components/flash/_alert.html.erb +29 -0
  96. data/app/views/railsui/themes/corgie/components/flash/_dynamic.html.erb +46 -0
  97. data/app/views/railsui/themes/corgie/components/flash/_notice.html.erb +29 -0
  98. data/app/views/railsui/themes/corgie/components/modal/_base.html.erb +110 -0
  99. data/app/views/railsui/themes/corgie/components/modal/_centered_dual_action.html.erb +124 -0
  100. data/app/views/railsui/themes/corgie/components/modal/_dismiss_icon.html.erb +124 -0
  101. data/app/views/railsui/themes/corgie/components/modal/_settings.html.erb +201 -0
  102. data/app/views/railsui/themes/corgie/components/modal/_single_action.html.erb +119 -0
  103. data/app/views/railsui/themes/corgie/components/modal/_with_form.html.erb +148 -0
  104. data/app/views/railsui/themes/corgie/components/navigation/_base.html.erb +215 -0
  105. data/app/views/railsui/themes/corgie/components/navigation/_chat.html.erb +194 -0
  106. data/app/views/railsui/themes/corgie/components/navigation/_nav_preview.html.erb +9 -0
  107. data/app/views/railsui/themes/corgie/components/pagination/_contained.html.erb +131 -0
  108. data/app/views/railsui/themes/corgie/components/pagination/_pagy.html.erb +97 -0
  109. data/app/views/railsui/themes/corgie/components/pagination/_simple.html.erb +114 -0
  110. data/app/views/railsui/themes/corgie/components/tab/_base.html.erb +101 -0
  111. data/app/views/railsui/themes/corgie/components/tab/_pills.html.erb +102 -0
  112. data/app/views/railsui/themes/corgie/components/tab/_rounded.html.erb +104 -0
  113. data/app/views/railsui/themes/corgie/components/tab/_vertical.html.erb +145 -0
  114. data/app/views/railsui/themes/corgie/components/tab/_with_icons.html.erb +138 -0
  115. data/app/views/railsui/themes/corgie/components/toast/_base.html.erb +98 -0
  116. data/app/views/railsui/themes/corgie/components/tooltip/_base.html.erb +51 -0
  117. data/app/views/railsui/themes/corgie/content/_image.html.erb +31 -0
  118. data/app/views/railsui/themes/corgie/content/_table.html.erb +21 -0
  119. data/app/views/railsui/themes/corgie/content/_typography.html.erb +47 -0
  120. data/app/views/railsui/themes/corgie/content/image/_object_contain.html.erb +31 -0
  121. data/app/views/railsui/themes/corgie/content/image/_object_cover.html.erb +32 -0
  122. data/app/views/railsui/themes/corgie/content/image/_object_fill.html.erb +32 -0
  123. data/app/views/railsui/themes/corgie/content/image/_object_scale_down.html.erb +34 -0
  124. data/app/views/railsui/themes/corgie/content/image/_responsive.html.erb +24 -0
  125. data/app/views/railsui/themes/corgie/content/table/_bordered.html.erb +93 -0
  126. data/app/views/railsui/themes/corgie/content/table/_borderless.html.erb +92 -0
  127. data/app/views/railsui/themes/corgie/content/table/_comparison.html.erb +494 -0
  128. data/app/views/railsui/themes/corgie/content/typography/_blockquote.html.erb +41 -0
  129. data/app/views/railsui/themes/corgie/content/typography/_display_headings.html.erb +70 -0
  130. data/app/views/railsui/themes/corgie/content/typography/_fonts.html.erb +30 -0
  131. data/app/views/railsui/themes/corgie/content/typography/_headings.html.erb +88 -0
  132. data/app/views/railsui/themes/corgie/content/typography/_inline_formatting.html.erb +44 -0
  133. data/app/views/railsui/themes/corgie/content/typography/_lead_paragraph.html.erb +26 -0
  134. data/app/views/railsui/themes/corgie/content/typography/_lists.html.erb +82 -0
  135. data/app/views/railsui/themes/corgie/content/typography/_paragraphs.html.erb +33 -0
  136. data/app/views/railsui/themes/corgie/forms/_action_text.html.erb +54 -0
  137. data/app/views/railsui/themes/corgie/forms/_checkbox.html.erb +60 -0
  138. data/app/views/railsui/themes/corgie/forms/_form_builder.html.erb +487 -0
  139. data/app/views/railsui/themes/corgie/forms/_input.html.erb +378 -0
  140. data/app/views/railsui/themes/corgie/forms/_input_group.html.erb +485 -0
  141. data/app/views/railsui/themes/corgie/forms/_radio.html.erb +92 -0
  142. data/app/views/railsui/themes/corgie/forms/_select.html.erb +118 -0
  143. data/app/views/railsui/themes/corgie/forms/_switch.html.erb +60 -0
  144. data/app/views/railsui/themes/corgie/forms/_validation.html.erb +52 -0
  145. data/app/views/railsui/themes/corgie/mailers/_devise.html.erb +44 -0
  146. data/app/views/railsui/themes/corgie/mailers/_layout.html.erb +536 -0
  147. data/app/views/railsui/themes/corgie/mailers/_mailer_preview.html.erb +523 -0
  148. data/app/views/railsui/themes/corgie/mailers/_minimal.html.erb +63 -0
  149. data/app/views/railsui/themes/corgie/mailers/_promotion.html.erb +62 -0
  150. data/app/views/railsui/themes/corgie/mailers/_transactional.html.erb +133 -0
  151. data/app/views/railsui/themes/corgie/mailers/devise/_confirmation_instructions.html.erb +34 -0
  152. data/app/views/railsui/themes/corgie/mailers/devise/_email_changed.html.erb +32 -0
  153. data/app/views/railsui/themes/corgie/mailers/devise/_password_changed.html.erb +25 -0
  154. data/app/views/railsui/themes/corgie/mailers/devise/_reset_password_instructions.html.erb +33 -0
  155. data/app/views/railsui/themes/corgie/mailers/devise/_unlock_instructions.html.erb +32 -0
  156. data/app/views/railsui/themes/corgie/scaffolds/_edit.html.erb +88 -0
  157. data/app/views/railsui/themes/corgie/scaffolds/_index.html.erb +88 -0
  158. data/app/views/railsui/themes/corgie/scaffolds/_new.html.erb +80 -0
  159. data/app/views/railsui/themes/corgie/scaffolds/_partial.html.erb +56 -0
  160. data/app/views/railsui/themes/corgie/scaffolds/_show.html.erb +85 -0
  161. data/app/views/railsui/themes/hound/_forms.html.erb +2 -0
  162. data/app/views/railsui/themes/hound/_nav.html.erb +2 -0
  163. data/app/views/railsui/themes/hound/authentication/devise/_change_password.html.erb +1 -27
  164. data/app/views/railsui/themes/hound/authentication/devise/_confirmation.html.erb +1 -20
  165. data/app/views/railsui/themes/hound/authentication/devise/_edit.html.erb +1 -44
  166. data/app/views/railsui/themes/hound/authentication/devise/_overview.html.erb +3 -51
  167. data/app/views/railsui/themes/hound/authentication/devise/_reset_password.html.erb +1 -17
  168. data/app/views/railsui/themes/hound/authentication/devise/_signin.html.erb +1 -30
  169. data/app/views/railsui/themes/hound/authentication/devise/_signup.html.erb +1 -31
  170. data/app/views/railsui/themes/hound/authentication/devise/_unlocks.html.erb +1 -17
  171. data/app/views/railsui/themes/hound/authentication/static/_change_password.html.erb +1 -32
  172. data/app/views/railsui/themes/hound/authentication/static/_confirmation.html.erb +1 -23
  173. data/app/views/railsui/themes/hound/authentication/static/_edit.html.erb +1 -39
  174. data/app/views/railsui/themes/hound/authentication/static/_overview.html.erb +2 -40
  175. data/app/views/railsui/themes/hound/authentication/static/_reset_password.html.erb +1 -22
  176. data/app/views/railsui/themes/hound/authentication/static/_signin.html.erb +1 -35
  177. data/app/views/railsui/themes/hound/authentication/static/_signup.html.erb +1 -31
  178. data/app/views/railsui/themes/hound/authentication/static/_unlocks.html.erb +1 -20
  179. data/app/views/railsui/themes/hound/components/_toast.html.erb +0 -3
  180. data/app/views/railsui/themes/hound/components/accordion/_contained.html.erb +0 -27
  181. data/app/views/railsui/themes/hound/components/accordion/_flush.html.erb +0 -27
  182. data/app/views/railsui/themes/hound/components/alert/_dismissable.html.erb +0 -8
  183. data/app/views/railsui/themes/hound/components/alert/_with_accent_border.html.erb +0 -7
  184. data/app/views/railsui/themes/hound/components/alert/_with_actions.html.erb +0 -11
  185. data/app/views/railsui/themes/hound/components/alert/_with_description.html.erb +0 -7
  186. data/app/views/railsui/themes/hound/components/alert/_with_list.html.erb +0 -8
  187. data/app/views/railsui/themes/hound/components/avatar/_circle.html.erb +0 -12
  188. data/app/views/railsui/themes/hound/components/avatar/_rounded.html.erb +0 -12
  189. data/app/views/railsui/themes/hound/components/badge/_basic.html.erb +0 -22
  190. data/app/views/railsui/themes/hound/components/badge/_outline.html.erb +0 -22
  191. data/app/views/railsui/themes/hound/components/badge/_pill.html.erb +0 -22
  192. data/app/views/railsui/themes/hound/components/badge/_tag.html.erb +0 -52
  193. data/app/views/railsui/themes/hound/components/breadcrumb/_base.html.erb +0 -14
  194. data/app/views/railsui/themes/hound/components/breadcrumb/_contained.html.erb +0 -14
  195. data/app/views/railsui/themes/hound/components/button/_base.html.erb +0 -10
  196. data/app/views/railsui/themes/hound/components/button/_expanded.html.erb +0 -3
  197. data/app/views/railsui/themes/hound/components/button/_sizes.html.erb +0 -5
  198. data/app/views/railsui/themes/hound/components/card/_base.html.erb +0 -6
  199. data/app/views/railsui/themes/hound/components/card/_user_card.html.erb +0 -13
  200. data/app/views/railsui/themes/hound/components/card/_user_card_dropdown.html.erb +0 -20
  201. data/app/views/railsui/themes/hound/components/card/_user_card_with_actions.html.erb +0 -18
  202. data/app/views/railsui/themes/hound/components/card/_with_action.html.erb +0 -13
  203. data/app/views/railsui/themes/hound/components/card/_with_header.html.erb +0 -43
  204. data/app/views/railsui/themes/hound/components/combobox/_base.html.erb +0 -40
  205. data/app/views/railsui/themes/hound/components/dropdown/_base.html.erb +0 -10
  206. data/app/views/railsui/themes/hound/components/dropdown/_right_aligned.html.erb +0 -14
  207. data/app/views/railsui/themes/hound/components/dropdown/_with_dividers.html.erb +0 -14
  208. data/app/views/railsui/themes/hound/components/dropdown/_with_icons.html.erb +0 -20
  209. data/app/views/railsui/themes/hound/components/flash/_alert.html.erb +0 -5
  210. data/app/views/railsui/themes/hound/components/flash/_dynamic.html.erb +0 -5
  211. data/app/views/railsui/themes/hound/components/flash/_notice.html.erb +0 -5
  212. data/app/views/railsui/themes/hound/components/modal/_base.html.erb +0 -13
  213. data/app/views/railsui/themes/hound/components/modal/_centered_dual_action.html.erb +0 -16
  214. data/app/views/railsui/themes/hound/components/modal/_dismiss_icon.html.erb +0 -20
  215. data/app/views/railsui/themes/hound/components/modal/_single_action.html.erb +0 -15
  216. data/app/views/railsui/themes/hound/components/modal/_with_form.html.erb +0 -23
  217. data/app/views/railsui/themes/hound/components/navigation/_base.html.erb +1 -41
  218. data/app/views/railsui/themes/hound/components/navigation/_with_action.html.erb +1 -38
  219. data/app/views/railsui/themes/hound/components/navigation/_with_dropdowns.html.erb +1 -105
  220. data/app/views/railsui/themes/hound/components/navigation/_with_search.html.erb +1 -41
  221. data/app/views/railsui/themes/hound/components/pagination/_contained.html.erb +0 -31
  222. data/app/views/railsui/themes/hound/components/pagination/_minimal.html.erb +0 -27
  223. data/app/views/railsui/themes/hound/components/pagination/_pagy.html.erb +47 -72
  224. data/app/views/railsui/themes/hound/components/tab/_base.html.erb +1 -18
  225. data/app/views/railsui/themes/hound/components/tab/_pills.html.erb +1 -18
  226. data/app/views/railsui/themes/hound/components/tab/_rounded.html.erb +1 -18
  227. data/app/views/railsui/themes/hound/components/tab/_with_icons.html.erb +1 -26
  228. data/app/views/railsui/themes/hound/components/toast/_base.html.erb +0 -16
  229. data/app/views/railsui/themes/hound/components/tooltip/_base.html.erb +0 -3
  230. data/app/views/railsui/themes/hound/content/image/_object_contain.html.erb +0 -5
  231. data/app/views/railsui/themes/hound/content/image/_object_cover.html.erb +0 -5
  232. data/app/views/railsui/themes/hound/content/image/_object_fill.html.erb +0 -5
  233. data/app/views/railsui/themes/hound/content/image/_object_scale_down.html.erb +0 -5
  234. data/app/views/railsui/themes/hound/content/image/_responsive.html.erb +0 -4
  235. data/app/views/railsui/themes/hound/content/table/_bordered.html.erb +0 -21
  236. data/app/views/railsui/themes/hound/content/table/_borderless.html.erb +0 -21
  237. data/app/views/railsui/themes/hound/content/typography/_blockquote.html.erb +0 -9
  238. data/app/views/railsui/themes/hound/content/typography/_display_headings.html.erb +0 -9
  239. data/app/views/railsui/themes/hound/content/typography/_headings.html.erb +0 -12
  240. data/app/views/railsui/themes/hound/content/typography/_inline_formatting.html.erb +0 -20
  241. data/app/views/railsui/themes/hound/content/typography/_lead_paragraph.html.erb +0 -5
  242. data/app/views/railsui/themes/hound/content/typography/_lists.html.erb +0 -17
  243. data/app/views/railsui/themes/hound/content/typography/_paragraphs.html.erb +0 -4
  244. data/app/views/railsui/themes/hound/forms/_action_text.html.erb +0 -6
  245. data/app/views/railsui/themes/hound/forms/_checkbox.html.erb +0 -9
  246. data/app/views/railsui/themes/hound/forms/_form_builder.html.erb +487 -0
  247. data/app/views/railsui/themes/hound/forms/_input.html.erb +0 -93
  248. data/app/views/railsui/themes/hound/forms/_input_group.html.erb +0 -83
  249. data/app/views/railsui/themes/hound/forms/_radio.html.erb +0 -13
  250. data/app/views/railsui/themes/hound/forms/_select.html.erb +0 -16
  251. data/app/views/railsui/themes/hound/forms/_switch.html.erb +0 -9
  252. data/app/views/railsui/themes/hound/forms/_validation.html.erb +0 -15
  253. data/app/views/railsui/themes/hound/mailers/_layout.html.erb +1 -432
  254. data/app/views/railsui/themes/hound/mailers/_minimal.html.erb +1 -16
  255. data/app/views/railsui/themes/hound/mailers/_promotion.html.erb +1 -20
  256. data/app/views/railsui/themes/hound/mailers/_transactional.html.erb +1 -43
  257. data/app/views/railsui/themes/hound/mailers/devise/_confirmation_instructions.html.erb +1 -9
  258. data/app/views/railsui/themes/hound/mailers/devise/_email_changed.html.erb +1 -13
  259. data/app/views/railsui/themes/hound/mailers/devise/_password_changed.html.erb +1 -7
  260. data/app/views/railsui/themes/hound/mailers/devise/_reset_password_instructions.html.erb +1 -9
  261. data/app/views/railsui/themes/hound/mailers/devise/_unlock_instructions.html.erb +1 -9
  262. data/app/views/railsui/themes/hound/scaffolds/_edit.html.erb +1 -19
  263. data/app/views/railsui/themes/hound/scaffolds/_index.html.erb +1 -14
  264. data/app/views/railsui/themes/hound/scaffolds/_new.html.erb +1 -17
  265. data/app/views/railsui/themes/hound/scaffolds/_partial.html.erb +1 -17
  266. data/app/views/railsui/themes/hound/scaffolds/_show.html.erb +1 -20
  267. data/app/views/railsui/themes/shepherd/_forms.html.erb +5 -3
  268. data/app/views/railsui/themes/shepherd/_nav.html.erb +2 -0
  269. data/app/views/railsui/themes/shepherd/authentication/devise/_change_password.html.erb +1 -23
  270. data/app/views/railsui/themes/shepherd/authentication/devise/_confirmation.html.erb +1 -12
  271. data/app/views/railsui/themes/shepherd/authentication/devise/_edit.html.erb +1 -74
  272. data/app/views/railsui/themes/shepherd/authentication/devise/_overview.html.erb +2 -57
  273. data/app/views/railsui/themes/shepherd/authentication/devise/_reset_password.html.erb +1 -12
  274. data/app/views/railsui/themes/shepherd/authentication/devise/_signin.html.erb +1 -25
  275. data/app/views/railsui/themes/shepherd/authentication/devise/_signup.html.erb +1 -26
  276. data/app/views/railsui/themes/shepherd/authentication/devise/_unlocks.html.erb +1 -12
  277. data/app/views/railsui/themes/shepherd/authentication/static/_change_password.html.erb +1 -23
  278. data/app/views/railsui/themes/shepherd/authentication/static/_confirmation.html.erb +1 -12
  279. data/app/views/railsui/themes/shepherd/authentication/static/_edit.html.erb +1 -67
  280. data/app/views/railsui/themes/shepherd/authentication/static/_overview.html.erb +1 -56
  281. data/app/views/railsui/themes/shepherd/authentication/static/_reset_password.html.erb +1 -12
  282. data/app/views/railsui/themes/shepherd/authentication/static/_signin.html.erb +1 -24
  283. data/app/views/railsui/themes/shepherd/authentication/static/_signup.html.erb +1 -26
  284. data/app/views/railsui/themes/shepherd/authentication/static/_unlocks.html.erb +1 -16
  285. data/app/views/railsui/themes/shepherd/components/_toast.html.erb +0 -3
  286. data/app/views/railsui/themes/shepherd/components/accordion/_contained.html.erb +0 -28
  287. data/app/views/railsui/themes/shepherd/components/accordion/_flush.html.erb +0 -27
  288. data/app/views/railsui/themes/shepherd/components/alert/_dismissable.html.erb +0 -8
  289. data/app/views/railsui/themes/shepherd/components/alert/_with_accent_border.html.erb +0 -6
  290. data/app/views/railsui/themes/shepherd/components/alert/_with_actions.html.erb +0 -11
  291. data/app/views/railsui/themes/shepherd/components/alert/_with_description.html.erb +0 -7
  292. data/app/views/railsui/themes/shepherd/components/alert/_with_list.html.erb +0 -8
  293. data/app/views/railsui/themes/shepherd/components/avatar/_circle.html.erb +0 -12
  294. data/app/views/railsui/themes/shepherd/components/avatar/_rounded.html.erb +0 -12
  295. data/app/views/railsui/themes/shepherd/components/badge/_basic.html.erb +0 -22
  296. data/app/views/railsui/themes/shepherd/components/badge/_outline.html.erb +0 -22
  297. data/app/views/railsui/themes/shepherd/components/badge/_pill.html.erb +0 -22
  298. data/app/views/railsui/themes/shepherd/components/badge/_tag.html.erb +0 -52
  299. data/app/views/railsui/themes/shepherd/components/breadcrumb/_base.html.erb +0 -14
  300. data/app/views/railsui/themes/shepherd/components/breadcrumb/_contained.html.erb +0 -14
  301. data/app/views/railsui/themes/shepherd/components/button/_base.html.erb +0 -17
  302. data/app/views/railsui/themes/shepherd/components/button/_expanded.html.erb +0 -3
  303. data/app/views/railsui/themes/shepherd/components/button/_sizes.html.erb +0 -5
  304. data/app/views/railsui/themes/shepherd/components/card/_base.html.erb +0 -6
  305. data/app/views/railsui/themes/shepherd/components/card/_property_card.html.erb +0 -28
  306. data/app/views/railsui/themes/shepherd/components/card/_property_user_card.html.erb +0 -14
  307. data/app/views/railsui/themes/shepherd/components/card/_user_card_with_actions.html.erb +0 -12
  308. data/app/views/railsui/themes/shepherd/components/card/_with_action.html.erb +0 -7
  309. data/app/views/railsui/themes/shepherd/components/card/_with_header.html.erb +0 -7
  310. data/app/views/railsui/themes/shepherd/components/combobox/_base.html.erb +0 -40
  311. data/app/views/railsui/themes/shepherd/components/datalist/_booking_list.html.erb +0 -45
  312. data/app/views/railsui/themes/shepherd/components/datalist/_property_list.html.erb +0 -47
  313. data/app/views/railsui/themes/shepherd/components/dropdown/_base.html.erb +0 -10
  314. data/app/views/railsui/themes/shepherd/components/dropdown/_right_aligned.html.erb +0 -13
  315. data/app/views/railsui/themes/shepherd/components/dropdown/_with_dividers.html.erb +0 -14
  316. data/app/views/railsui/themes/shepherd/components/dropdown/_with_menu_icons.html.erb +0 -16
  317. data/app/views/railsui/themes/shepherd/components/flash/_alert.html.erb +0 -5
  318. data/app/views/railsui/themes/shepherd/components/flash/_dynamic.html.erb +0 -5
  319. data/app/views/railsui/themes/shepherd/components/flash/_notice.html.erb +0 -5
  320. data/app/views/railsui/themes/shepherd/components/modal/_base.html.erb +0 -12
  321. data/app/views/railsui/themes/shepherd/components/modal/_centered_dual_action.html.erb +0 -16
  322. data/app/views/railsui/themes/shepherd/components/modal/_dismiss_icon.html.erb +0 -23
  323. data/app/views/railsui/themes/shepherd/components/modal/_single_action.html.erb +0 -14
  324. data/app/views/railsui/themes/shepherd/components/modal/_with_form.html.erb +0 -23
  325. data/app/views/railsui/themes/shepherd/components/navigation/_base.html.erb +0 -81
  326. data/app/views/railsui/themes/shepherd/components/navigation/_logged_out.html.erb +0 -22
  327. data/app/views/railsui/themes/shepherd/components/navigation/_with_dropdowns.html.erb +0 -88
  328. data/app/views/railsui/themes/shepherd/components/navigation/_with_search.html.erb +1 -83
  329. data/app/views/railsui/themes/shepherd/components/pagination/_contained.html.erb +0 -31
  330. data/app/views/railsui/themes/shepherd/components/pagination/_dark.html.erb +0 -31
  331. data/app/views/railsui/themes/shepherd/components/pagination/_pagy.html.erb +53 -98
  332. data/app/views/railsui/themes/shepherd/components/pagination/_simple.html.erb +0 -27
  333. data/app/views/railsui/themes/shepherd/components/tab/_base.html.erb +1 -18
  334. data/app/views/railsui/themes/shepherd/components/tab/_pills.html.erb +1 -18
  335. data/app/views/railsui/themes/shepherd/components/tab/_rounded.html.erb +1 -18
  336. data/app/views/railsui/themes/shepherd/components/tab/_with_icons.html.erb +1 -26
  337. data/app/views/railsui/themes/shepherd/components/toast/_base.html.erb +0 -16
  338. data/app/views/railsui/themes/shepherd/components/tooltip/_base.html.erb +0 -3
  339. data/app/views/railsui/themes/shepherd/content/_image_old.html.erb +0 -20
  340. data/app/views/railsui/themes/shepherd/content/image/_object_contain.html.erb +0 -5
  341. data/app/views/railsui/themes/shepherd/content/image/_object_cover.html.erb +0 -5
  342. data/app/views/railsui/themes/shepherd/content/image/_object_fill.html.erb +0 -5
  343. data/app/views/railsui/themes/shepherd/content/image/_object_scale_down.html.erb +0 -5
  344. data/app/views/railsui/themes/shepherd/content/image/_responsive.html.erb +0 -4
  345. data/app/views/railsui/themes/shepherd/content/table/_bordered.html.erb +0 -21
  346. data/app/views/railsui/themes/shepherd/content/table/_borderless.html.erb +0 -21
  347. data/app/views/railsui/themes/shepherd/content/typography/_blockquote.html.erb +0 -9
  348. data/app/views/railsui/themes/shepherd/content/typography/_display_headings.html.erb +0 -9
  349. data/app/views/railsui/themes/shepherd/content/typography/_headings.html.erb +0 -15
  350. data/app/views/railsui/themes/shepherd/content/typography/_inline_formatting.html.erb +0 -21
  351. data/app/views/railsui/themes/shepherd/content/typography/_lead_paragraph.html.erb +0 -5
  352. data/app/views/railsui/themes/shepherd/content/typography/_lists.html.erb +0 -17
  353. data/app/views/railsui/themes/shepherd/content/typography/_paragraphs.html.erb +0 -4
  354. data/app/views/railsui/themes/shepherd/forms/_action_text.html.erb +0 -6
  355. data/app/views/railsui/themes/shepherd/forms/_checkbox.html.erb +0 -9
  356. data/app/views/railsui/themes/shepherd/forms/_form_builder.html.erb +487 -0
  357. data/app/views/railsui/themes/shepherd/forms/_input.html.erb +0 -119
  358. data/app/views/railsui/themes/shepherd/forms/_input_group.html.erb +0 -81
  359. data/app/views/railsui/themes/shepherd/forms/_radio.html.erb +0 -13
  360. data/app/views/railsui/themes/shepherd/forms/_select.html.erb +0 -16
  361. data/app/views/railsui/themes/shepherd/forms/_switch.html.erb +0 -9
  362. data/app/views/railsui/themes/shepherd/forms/_validation.html.erb +0 -11
  363. data/app/views/railsui/themes/shepherd/mailers/_layout.html.erb +1 -493
  364. data/app/views/railsui/themes/shepherd/mailers/_minimal.html.erb +1 -16
  365. data/app/views/railsui/themes/shepherd/mailers/_promotion.html.erb +1 -20
  366. data/app/views/railsui/themes/shepherd/mailers/_transactional.html.erb +1 -43
  367. data/app/views/railsui/themes/shepherd/mailers/devise/_confirmation_instructions.html.erb +1 -9
  368. data/app/views/railsui/themes/shepherd/mailers/devise/_email_changed.html.erb +1 -12
  369. data/app/views/railsui/themes/shepherd/mailers/devise/_password_changed.html.erb +1 -7
  370. data/app/views/railsui/themes/shepherd/mailers/devise/_reset_password_instructions.html.erb +1 -9
  371. data/app/views/railsui/themes/shepherd/mailers/devise/_unlock_instructions.html.erb +1 -9
  372. data/app/views/railsui/themes/shepherd/scaffolds/_edit.html.erb +1 -19
  373. data/app/views/railsui/themes/shepherd/scaffolds/_index.html.erb +1 -11
  374. data/app/views/railsui/themes/shepherd/scaffolds/_new.html.erb +1 -17
  375. data/app/views/railsui/themes/shepherd/scaffolds/_partial.html.erb +1 -17
  376. data/app/views/railsui/themes/shepherd/scaffolds/_show.html.erb +1 -18
  377. data/config/pages.yml +103 -0
  378. data/config/routes.rb +6 -5
  379. data/config/theme.yml +2 -0
  380. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/auth-bg.jpg +0 -0
  381. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog-feature.jpg +0 -0
  382. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog1.jpg +0 -0
  383. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog2.jpg +0 -0
  384. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog3.jpg +0 -0
  385. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog4.jpg +0 -0
  386. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog5.jpg +0 -0
  387. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog6.jpg +0 -0
  388. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog7.jpg +0 -0
  389. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog8.jpg +0 -0
  390. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/blog9.jpg +0 -0
  391. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/copy.svg +6 -0
  392. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/pencil.svg +1 -0
  393. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/scroll-text.svg +9 -0
  394. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/facebook.svg +1 -0
  395. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/github.svg +1 -0
  396. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/google.svg +1 -0
  397. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/instagram.svg +1 -0
  398. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/linkedin.svg +1 -0
  399. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/twitter.svg +1 -0
  400. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/x.svg +1 -0
  401. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/social/youtube.svg +1 -0
  402. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/stethoscope.svg +8 -0
  403. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/icons/test-tubes.svg +11 -0
  404. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/logo.svg +10 -0
  405. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/android-chrome-192x192.png +0 -0
  406. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/android-chrome-512x512.png +0 -0
  407. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/apple-touch-icon.png +0 -0
  408. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/favicon-16x16.png +0 -0
  409. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/favicon-32x32.png +0 -0
  410. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/favicon.ico +0 -0
  411. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/favicon.svg +20 -0
  412. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/opengraph-mark.jpg +0 -0
  413. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/opengraph.jpg +0 -0
  414. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/meta/site.webmanifest +19 -0
  415. data/lib/generators/railsui/install/templates/themes/corgie/images/railsui/railsui.svg +3 -0
  416. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/character_count_controller.js +134 -0
  417. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/chat_controller.js +45 -0
  418. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/help_search_controller.js +333 -0
  419. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/highlight_controller.js +13 -0
  420. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/markdown_controller.js +106 -0
  421. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/search_controller.js +311 -0
  422. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/sidebar_controller.js +105 -0
  423. data/lib/generators/railsui/install/templates/themes/corgie/javascript/controllers/railsui/snippet_controller.js +223 -0
  424. data/lib/generators/railsui/install/templates/themes/corgie/mail/railsui_mailer/minimal.html.erb +21 -0
  425. data/lib/generators/railsui/install/templates/themes/corgie/mail/railsui_mailer/minimal.text.erb +9 -0
  426. data/lib/generators/railsui/install/templates/themes/corgie/mail/railsui_mailer/promotion.html.erb +23 -0
  427. data/lib/generators/railsui/install/templates/themes/corgie/mail/railsui_mailer/promotion.text.erb +9 -0
  428. data/lib/generators/railsui/install/templates/themes/corgie/mail/railsui_mailer/transactional.html.erb +55 -0
  429. data/lib/generators/railsui/install/templates/themes/corgie/mail/railsui_mailer/transactional.text.erb +22 -0
  430. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/actiontext.css +173 -0
  431. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/blog.css +29 -0
  432. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/buttons.css +49 -0
  433. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/card.css +9 -0
  434. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/chat.css +27 -0
  435. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/code.css +233 -0
  436. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/dropdown.css +9 -0
  437. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/forms.css +321 -0
  438. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/sidebar.css +15 -0
  439. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/tailwind.config.js +24 -0
  440. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/theme.css +77 -0
  441. data/lib/generators/railsui/install/templates/themes/corgie/stylesheets/railsui/typography.css +47 -0
  442. data/lib/generators/railsui/install/templates/themes/corgie/views/layouts/rui/railsui.html.erb +31 -0
  443. data/lib/generators/railsui/install/templates/themes/corgie/views/layouts/rui/railsui_admin.html.erb +30 -0
  444. data/lib/generators/railsui/install/templates/themes/corgie/views/layouts/rui/railsui_auth.html.erb +50 -0
  445. data/lib/generators/railsui/install/templates/themes/corgie/views/layouts/rui/railsui_mailer.html.erb +503 -0
  446. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/about.html.erb +278 -0
  447. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/blog.html.erb +258 -0
  448. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/blog_category.html.erb +261 -0
  449. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/blog_show.html.erb +429 -0
  450. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/chat_new.html.erb +68 -0
  451. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/chat_show.html.erb +152 -0
  452. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/features.html.erb +356 -0
  453. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/help.html.erb +123 -0
  454. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/home.html.erb +252 -0
  455. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/pricing.html.erb +397 -0
  456. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/privacy.html.erb +140 -0
  457. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/signin.html.erb +38 -0
  458. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/signup.html.erb +48 -0
  459. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/pages/terms.html.erb +182 -0
  460. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_account_dropdown.html.erb +46 -0
  461. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_email_action.html.erb +15 -0
  462. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_email_callout.html.erb +7 -0
  463. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_email_spacer.html.erb +7 -0
  464. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_error_messages.html.erb +10 -0
  465. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_faq.html.erb +9 -0
  466. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_flash.html.erb +11 -0
  467. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_fonts.html.erb +7 -0
  468. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_footer.html.erb +72 -0
  469. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_header.html.erb +15 -0
  470. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_meta.html.erb +90 -0
  471. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_nav.html.erb +3 -0
  472. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_railsui_head.html.erb +4 -0
  473. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_search.html.erb +32 -0
  474. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_sidebar.html.erb +7 -0
  475. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/_waves.html.erb +47 -0
  476. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/blog/_article.html.erb +39 -0
  477. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/blog/_pagination.html.erb +21 -0
  478. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_disclaimer.html.erb +4 -0
  479. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_form.html.erb +62 -0
  480. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_header.html.erb +47 -0
  481. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_history.html.erb +36 -0
  482. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_key_legend.html.erb +11 -0
  483. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_link.html.erb +17 -0
  484. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_message.html.erb +69 -0
  485. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/chat/_model_select.html.erb +55 -0
  486. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/common/_cta_section.html.erb +16 -0
  487. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/common/_feature_card.html.erb +23 -0
  488. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/common/_feature_check_item.html.erb +6 -0
  489. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/common/_social_auth_buttons.html.erb +22 -0
  490. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/help/_categories.html.erb +82 -0
  491. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/help/_faq.html.erb +45 -0
  492. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/help/_quick_actions.html.erb +46 -0
  493. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/marketing/_career.html.erb +9 -0
  494. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/marketing/_nav.html.erb +57 -0
  495. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/marketing/_team_member_card.html.erb +16 -0
  496. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/_modal.html.erb +84 -0
  497. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/_nav_item.html.erb +14 -0
  498. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/panels/_billing.html.erb +120 -0
  499. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/panels/_data_controls.html.erb +69 -0
  500. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/panels/_general.html.erb +92 -0
  501. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/panels/_notifications.html.erb +102 -0
  502. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/panels/_personalization.html.erb +100 -0
  503. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/panels/_security.html.erb +98 -0
  504. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/settings/panels/_title.html.erb +5 -0
  505. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/sidebar/_actions.html.erb +39 -0
  506. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/sidebar/_header.html.erb +40 -0
  507. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/sidebar/_history.html.erb +36 -0
  508. data/lib/generators/railsui/install/templates/themes/corgie/views/rui/shared/sidebar/_link.html.erb +23 -0
  509. data/lib/generators/railsui/install/templates/themes/hound/stylesheets/railsui/forms.css +18 -4
  510. data/lib/generators/railsui/install/templates/themes/hound/stylesheets/railsui/theme.css +3 -2
  511. data/lib/generators/railsui/install/templates/themes/shepherd/stylesheets/railsui/forms.css +12 -2
  512. data/lib/generators/railsui/scaffold/templates/themes/corgie/views/_form.html.erb.tt +52 -0
  513. data/lib/generators/railsui/scaffold/templates/themes/corgie/views/edit.html.erb.tt +25 -0
  514. data/lib/generators/railsui/scaffold/templates/themes/corgie/views/index.html.erb.tt +12 -0
  515. data/lib/generators/railsui/scaffold/templates/themes/corgie/views/new.html.erb.tt +22 -0
  516. data/lib/generators/railsui/scaffold/templates/themes/corgie/views/partial.html.erb.tt +22 -0
  517. data/lib/generators/railsui/scaffold/templates/themes/corgie/views/show.html.erb.tt +24 -0
  518. data/lib/generators/railsui/scaffold/templates/themes/hound/views/_form.html.erb.tt +29 -24
  519. data/lib/generators/railsui/scaffold/templates/themes/shepherd/views/_form.html.erb.tt +28 -26
  520. data/lib/railsui/configuration.rb +22 -21
  521. data/lib/railsui/engine.rb +26 -20
  522. data/lib/railsui/form_builder.rb +307 -0
  523. data/lib/railsui/pages.rb +14 -3
  524. data/lib/railsui/theme_helper.rb +8 -8
  525. data/lib/railsui/theme_setup.rb +83 -49
  526. data/lib/railsui/themes.rb +3 -4
  527. data/lib/railsui/version.rb +1 -1
  528. data/lib/railsui.rb +9 -6
  529. data/lib/tasks/install.rake +1 -1
  530. data/lib/tasks/pages.rake +1 -1
  531. data/lib/tasks/stimulus.rake +1 -1
  532. metadata +287 -5
  533. data/.standard.yml +0 -3
  534. data/CHANGELOG.md +0 -9
  535. data/config/colors.yml +0 -50
@@ -0,0 +1,171 @@
1
+ <% content_for :head do %>
2
+ <script type="text/javascript" src="https://unpkg.com/trix@2.0.0/dist/trix.umd.min.js"></script>
3
+ <% end %>
4
+
5
+ <% content_for :header_description do %>
6
+ <p>An optional Form Builder that applys consistent styling to your elements.</p>
7
+ <% end %>
8
+
9
+ <%= render "railsui/shared/header" %>
10
+
11
+ <div class="prose dark:prose-invert">
12
+ <p>The Rails UI Form Builder extends the Ruby on Rails default form builder to automatically apply theme-appropriate CSS classes to all form elements based on your active theme (your active theme is <code><%= Railsui.config.theme.humanize %></code>). It provides a consistent, accessible, and beautiful form experience across your application with less key strokes and more consistency.</p>
13
+
14
+ <h2>Setup</h2>
15
+ <p>The Rails UI Form Builder is available when Rails UI is installed. Simply pass it as the <code>builder</code> parameter to your forms.</p>
16
+
17
+
18
+ <h2>Basic Usage</h2>
19
+ <p>Add <code>builder: Railsui::FormBuilder</code> to your <code>form_with</code> helper to apply automatic styling:</p>
20
+
21
+ <div class="not-prose">
22
+ <% content_for :erb, flush: true do %>
23
+ <%%= form_with model: @user, builder: Railsui::FormBuilder do |f| %>
24
+ <%%= f.text_field :name, label: "Full Name" %>
25
+ <%%= f.email_field :email, help: "We'll never share your email" %>
26
+ <%%= f.submit %>
27
+ <%% end %>
28
+ <% end %>
29
+ <%= render_snippet active_tab: :erb %>
30
+ </div>
31
+
32
+
33
+ <div id="form-builder-field-options">
34
+ <h2>Field Options</h2>
35
+ <p>Rails UI Form Builder fields accept various options to customize their appearance and behavior:</p>
36
+
37
+ <h3>Universal Options</h3>
38
+ <p>These options are available for all field types:</p>
39
+
40
+ <div class="not-prose">
41
+ <table class="table-auto w-full border-collapse border border-neutral-300 dark:border-neutral-600 text-sm">
42
+ <thead>
43
+ <tr class="bg-neutral-50 dark:bg-neutral-800">
44
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Option</th>
45
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Type</th>
46
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Description</th>
47
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Example</th>
48
+ </tr>
49
+ </thead>
50
+ <tbody>
51
+ <tr>
52
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>label</code></td>
53
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">String or false</td>
54
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Sets label text or hides label</td>
55
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>label: "Full Name"</code></td>
56
+ </tr>
57
+ <tr>
58
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>placeholder</code></td>
59
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">String</td>
60
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Input placeholder text</td>
61
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>placeholder: "John Doe"</code></td>
62
+ </tr>
63
+ <tr>
64
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>help</code></td>
65
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">String</td>
66
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Help text below field</td>
67
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>help: "We'll never share this"</code></td>
68
+ </tr>
69
+ <tr>
70
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>class</code></td>
71
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">String</td>
72
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Custom CSS classes for input</td>
73
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>class: "form-input text-lg"</code></td>
74
+ </tr>
75
+ <tr>
76
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>wrapper</code></td>
77
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Hash</td>
78
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Options for wrapper div</td>
79
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>wrapper: { class: "max-w-md" }</code></td>
80
+ </tr>
81
+ <tr>
82
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>label_options</code></td>
83
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Hash</td>
84
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Options for label element</td>
85
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>label_options: { class: "text-blue-600" }</code></td>
86
+ </tr>
87
+ <tr>
88
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>skip_label</code></td>
89
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Boolean</td>
90
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Skip rendering label entirely</td>
91
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>skip_label: true</code></td>
92
+ </tr>
93
+ </tbody>
94
+ </table>
95
+ </div>
96
+
97
+ <h3>Field-Specific Options</h3>
98
+
99
+ <div class="not-prose">
100
+ <table class="table-auto w-full border-collapse border border-neutral-300 dark:border-neutral-600 text-sm">
101
+ <thead>
102
+ <tr class="bg-neutral-50 dark:bg-neutral-800">
103
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Field Type</th>
104
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Additional Options</th>
105
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Example</th>
106
+ </tr>
107
+ </thead>
108
+ <tbody>
109
+ <tr>
110
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>text_area</code></td>
111
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>rows</code> - Number of visible lines</td>
112
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>rows: 4</code></td>
113
+ </tr>
114
+ <tr>
115
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>number_field</code></td>
116
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>min</code>, <code>max</code> - Value limits</td>
117
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>min: 0, max: 100</code></td>
118
+ </tr>
119
+ <tr>
120
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>range_field</code></td>
121
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>min</code>, <code>max</code>, <code>value</code> - Range settings</td>
122
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>min: 0, max: 100, value: 25</code></td>
123
+ </tr>
124
+ <tr>
125
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>select</code></td>
126
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2">Standard Rails select parameters plus Rails UI options</td>
127
+ <td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>{ prompt: "Choose..." }, { label: "Country" }</code></td>
128
+ </tr>
129
+ </tbody>
130
+ </table>
131
+ </div>
132
+
133
+ <h3>Default CSS Classes</h3>
134
+
135
+ <div class="not-prose">
136
+ <table class="table-auto w-full border-collapse border border-neutral-300 dark:border-neutral-600 text-sm">
137
+ <thead>
138
+ <tr class="bg-neutral-50 dark:bg-neutral-800">
139
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Field Type</th>
140
+ <th class="border border-neutral-300 dark:border-neutral-600 px-4 py-2 text-left font-semibold">Default CSS Class</th>
141
+ </tr>
142
+ </thead>
143
+ <tbody>
144
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>text_field</code>, <code>email_field</code>, <code>password_field</code>, etc.</td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-input</code></td></tr>
145
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>text_area</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-textarea</code></td></tr>
146
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>rich_text_area</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>trix-content</code></td></tr>
147
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>select</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-select</code></td></tr>
148
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>check_box</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-input-checkbox</code></td></tr>
149
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>radio_button</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-input-radio</code></td></tr>
150
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>switch_field</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-input-switch</code></td></tr>
151
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>file_field</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-file</code></td></tr>
152
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>range_field</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-input-range</code></td></tr>
153
+ <tr><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>color_field</code></td><td class="border border-neutral-300 dark:border-neutral-600 px-4 py-2"><code>form-input-color</code></td></tr>
154
+ </tbody>
155
+ </table>
156
+ </div>
157
+
158
+ <p><strong>Automatic Features:</strong></p>
159
+ <ul>
160
+ <li>Error states automatically add <code>form-input-error</code> class</li>
161
+ <li>Required fields (with presence validators) get required styling</li>
162
+ <li>Labels automatically use <code>form-label</code> class</li>
163
+ <li>Help text automatically uses <code>form-help</code> class</li>
164
+ <li>Wrapper divs automatically use <code>form-group</code> class</li>
165
+ </ul>
166
+
167
+ <h2>Examples</h2>
168
+ </div>
169
+ </div>
170
+
171
+ <%= render "railsui/themes/#{Railsui.config.theme}/forms/form_builder" %>
@@ -0,0 +1,7 @@
1
+ <%= render layout: "railsui/shared/linkables" do %>
2
+ <% components = ["Accordion", "Alert", "Badge", "Breadcrumb", "Button", "Card", "Dropdown", "Flash", "Modal", "Navigation", "Pagination", "Tab", "Toast", "Tooltip"] %>
3
+
4
+ <% components.each do |component| %>
5
+ <%= render "railsui/shared/linkable", path: eval("systems_components_#{component.downcase}_path"), title: component, description: "Documentation and examples for the #{component.downcase.singularize} component." %>
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <%= render layout: "railsui/shared/linkables" do %>
2
+ <%= render "railsui/shared/linkable", path: systems_content_typography_path, title: "Typography", description: "Documentation and examples for typography and basic content." %>
3
+
4
+ <%= render "railsui/shared/linkable", path: systems_content_table_path, title: "Table", description: "Documentation and examples for opt-in styling of tables." %>
5
+
6
+ <%= render "railsui/shared/linkable", path: systems_content_image_path, title: "Image", description: "A starting point for styling and displaying images." %>
7
+
8
+ <%= render "railsui/shared/linkable", path: systems_scaffolds_path, title: "Scaffolds", description: "Pre-designed scaffold templates." %>
9
+ <% end %>
File without changes
@@ -0,0 +1,19 @@
1
+ <%= render layout: "railsui/shared/linkables" do %>
2
+ <%= render "railsui/shared/linkable", path: systems_forms_form_builder_path, title: "Form Builder", description: "Automatically styled Rails forms with the Rails UI form builder." %>
3
+
4
+ <%= render "railsui/shared/linkable", path: systems_forms_input_path, title: "Input", description: "The building blocks of any given form." %>
5
+
6
+ <%= render "railsui/shared/linkable", path: systems_forms_input_group_path, title: "Input Group", description: "Group inputs together for tailored user experiences." %>
7
+
8
+ <%= render "railsui/shared/linkable", path: systems_forms_select_path, title: "Select", description: "Fancy select fields ready for action." %>
9
+
10
+ <%= render "railsui/shared/linkable", path: systems_forms_checkbox_path, title: "Checkbox".html_safe, description: "Enhance your forms with additional controls." %>
11
+
12
+ <%= render "railsui/shared/linkable", path: systems_forms_radio_path, title: "Radio".html_safe, description: "Switch between multiple named options with radios." %>
13
+
14
+ <%= render "railsui/shared/linkable", path: systems_forms_switch_path, title: "Switch".html_safe, description: "A nicer version of a checkbox." %>
15
+
16
+ <%= render "railsui/shared/linkable", path: systems_forms_action_text_path, title: "ActionText", description: "Custom-themed ActionText UI for your rich text needs." %>
17
+
18
+ <%= render "railsui/shared/linkable", path: systems_forms_validation_path, title: "Validation", description: "Error handling UI is taken care of with Rails UI." %>
19
+ <% end %>
@@ -0,0 +1,125 @@
1
+
2
+ <div id="icons-overview">
3
+ <div class="prose prose-neutral mt-6 max-w-full dark:prose-invert prose-a:font-semibold prose-a:underline">
4
+ <p><%= link_to "Heroicons", "https://heroicons.com/", target: :_blank %> are the default icons of choice for Rails UI. We chose these icons since they are open sourced, updated regularly, and cover a vast set of scenarios in the design world.</p>
5
+ </div>
6
+
7
+ <%= render "railsui/shared/usage_guide", title: "Icon usage guide" do %>
8
+
9
+ <h3>Why SVG icons?</h3>
10
+
11
+ <p>There are a lot of pros to using SVG icons rather than bitmap or font-based icons. The summarized take is they are more accessible, have lighter file sizes, and can scale infinitely, which is excellent for retina screens.</p>
12
+
13
+ <p>The main downside is the way we have to render them in order to have more control. SVGs are essentially vector code and can be complex and cumbersome to drop into a new view whenever you require one. Because of this we bundled another gem called <a href="https://github.com/getrailsui/railsui_icon" target="_blank">railsui_icon</a> into Rails UI that solves for icons.</p>
14
+
15
+ <h3>Dependencies</h3>
16
+
17
+ <p><a href="https://github.com/getrailsui/railsui_icon" target="_blank">railsui_icon</a> contains all of <a href="https://heroicons.com">heroicons.com</a> with plans to expand. The gem is already included as a dependency for each Rails UI installation.</p>
18
+
19
+ <h4 class="dark:text-neutral-200">Options</h4>
20
+ <ul>
21
+ <li>
22
+ <code>:variant</code> &mdash; Pass a style of icon you would like to render. (Defaults to <code>:outline</code>. Options include <code>:outline</code>,<code>:solid</code>, <code>:micro</code>, and <code>:mini</code>).
23
+ </li>
24
+ <li>
25
+ <code>:class</code> &mdash; Add CSS classes here. <code>stroke-current</code> and <code>stroke-fill</code> are appended by default based on the <code>:variant</code> option.
26
+ </li>
27
+ <li>
28
+ <code>:custom_path</code> &mdash; Pass a custom path to an icon. Treat paths as relative. A forward slash prefix is required: <code>/icon_name.svg</code>.
29
+ </li>
30
+ </ul>
31
+
32
+ <h3>Usage</h3>
33
+
34
+ <p>Using and rendering a new icon is quite simple and doesn't pollute your markup. The default style is outline but you can render different variants as necessary. </p>
35
+
36
+ <div class="not-prose">
37
+ <% content_for :bash, flush: true do %>
38
+
39
+ <% end %>
40
+
41
+ <% content_for :ruby, flush: true do %>
42
+
43
+ <% end %>
44
+
45
+ <% content_for :erb, flush: true do %>
46
+ <%%= icon "academic-cap", class: "w-5 h-5 text-indigo-600" %>
47
+ <% end %>
48
+ <%= render_snippet active_tab: "erb", erb_filename: "index.html.erb" %>
49
+ </div>
50
+
51
+ <h3>Custom icons</h3>
52
+ <p>Need to add some of your own icons? You can add those to <code>app/assets/images</code>.</p>
53
+
54
+ <p>If you require something more custom, use the <code>custom_path</code> option to pass a unique path to the helper for rendering. Treat paths as relative. A forward slash prefix is required: <code>/icon_name.svg</code>.</p>
55
+
56
+ <div class="not-prose">
57
+ <% content_for :bash, flush: true do %>
58
+
59
+ <% end %>
60
+
61
+ <% content_for :ruby, flush: true do %>
62
+
63
+ <% end %>
64
+
65
+ <% content_for :erb, flush: true do %>
66
+ <%%= icon "eye-close", custom_path: "/eye-close.svg", class: "w-10 h-10 stroke-current text-pink-400" %>
67
+ <% end %>
68
+ <%= render_snippet active_tab: "erb" %>
69
+ </div>
70
+ <% end %>
71
+ </div>
72
+
73
+ <div id="icons-solid" class="my-10">
74
+ <div class="mb-6">
75
+ <%= render "railsui/shared/code_example_heading", title: "Icons", subtitle: "Solid" %>
76
+ </div>
77
+
78
+ <div class="grid grid-cols-4 md:grid-cols-5 lg:grid-cols-7 items-center justify-between sm:gap-4 gap-2 w-full">
79
+ <% @icon_names.each do |icon_name| %>
80
+ <div>
81
+ <div class="flex items-center justify-center size-20 rounded border border-neutral-300 shadow-xs bg-white relative group hover:shadow-primary-500/20 hover:border-primary-300 dark:bg-neutral-900 dark:border-neutral-700/80 dark:shadow-neutral-500/20" data-controller="railsui-clipboard">
82
+ <%= icon icon_name, class: "fill-current text-neutral-500 w-auto h-6 group-hover:transform group-hover:scale-125 transition ease-in-out duration-300 group-hover:text-primary-500 dark:text-white dark:group-hover:text-white", variant: :solid %>
83
+ <button class="block w-5 h-5 absolute right-1 bottom-1" type="button" data-action="click->railsui-clipboard#copy" aria-label="Copy icon label">
84
+ <%= icon "square-2-stack", class: "w-5 dark:text-neutral-200 text-neutral-400 opacity-0 group-hover:opacity-100 transition ease-in-out duration-300 group-hover:text-primary-500 dark:group-hover:text-primary-300" %>
85
+ </button>
86
+ <span class="hidden" data-railsui-clipboard-target="content"><%= icon_name %></span>
87
+ </div>
88
+ <div class="my-2 text-xs text-neutral-600 dark:text-neutral-100 truncate sm:max-w-[100px]"><%= icon_name %></div>
89
+ </div>
90
+ <% end %>
91
+ </div>
92
+ </div>
93
+
94
+ <div id="icons-outline" class="my-10">
95
+ <div class="mb-6">
96
+ <%= render "railsui/shared/code_example_heading", title: "Icons", subtitle: "Outline" %>
97
+ </div>
98
+
99
+ <div class="grid grid-cols-4 md:grid-cols-5 lg:grid-cols-7 items-center justify-between sm:gap-4 gap-2 w-full">
100
+ <% @icon_names.each do |icon_name| %>
101
+ <div>
102
+ <div class="flex items-center justify-center size-20 rounded border border-neutral-300 shadow-xs bg-white relative group hover:shadow-primary-500/20 hover:border-primary-300 dark:bg-neutral-900 dark:border-neutral-700/80 dark:shadow-neutral-500/20" data-controller="railsui-clipboard">
103
+ <%= icon icon_name, class: "stroke-current text-neutral-500 w-auto h-6 group-hover:transform group-hover:scale-125 transition ease-in-out duration-300 group-hover:text-primary-500 dark:text-white dark:group-hover:text-white" %>
104
+ <button class="block w-5 h-5 absolute right-1 bottom-1" type="button" data-action="click->railsui-clipboard#copy" aria-label="Copy icon label">
105
+ <%= icon "square-2-stack", class: "w-5 dark:text-neutral-200 text-neutral-400 opacity-0 group-hover:opacity-100 transition ease-in-out duration-300 group-hover:text-primary-500 dark:group-hover:text-primary-300" %>
106
+ </button>
107
+ <span class="hidden" data-railsui-clipboard-target="content">"<%= icon_name %></span>
108
+ </div>
109
+ <div class="my-2 text-xs text-neutral-600 dark:text-neutral-100 truncate sm:max-w-[100px]"><%= icon_name %></div>
110
+ </div>
111
+ <% end %>
112
+ </div>
113
+ </div>
114
+
115
+ <% unless local_assigns[:hide_pagination] %>
116
+ <%= system_pagination(prev_path: systems_content_table_path, prev_text: "Table", next_path: systems_content_image_path, next_text: "Image") %>
117
+ <% end %>
118
+
119
+ <%= content_for :component_nav do %>
120
+ <%= render layout: "railsui/shared/component_nav", locals: { title: "On this page" } do %>
121
+ <%= component_link "Overview", "#icons-overview" %>
122
+ <%= component_link "Solid", "#icons-solid" %>
123
+ <%= component_link "Outline", "#icons-outline" %>
124
+ <% end %>
125
+ <% end %>
@@ -0,0 +1,166 @@
1
+ <div class="text-[14px] relative pb-4 pl-4">
2
+ <ul>
3
+ <li>
4
+ <p class="font-medium px-3 py-2 dark:text-neutral-200 mb-1 text-[14px]">Content</p>
5
+ <ul class="border-neutral-300/90 border-l dark:border-neutral-700 ml-3">
6
+ <%= system_nav_item(label: "Typography", path: systems_content_typography_path) %>
7
+
8
+ <%= system_nav_item(label: "Table", path: systems_content_table_path) %>
9
+
10
+ <%= system_nav_item(label: "Icon", path: systems_icons_path) %>
11
+
12
+ <%= system_nav_item(label: "Image", path: systems_content_image_path) %>
13
+
14
+ <%= system_nav_item(label: "Scaffold", path: systems_scaffolds_path) %>
15
+ </ul>
16
+ </li>
17
+ <li>
18
+ <p class="font-medium px-3 py-2 dark:text-neutral-200 mt-4 mb-1 text-[14px]">Forms</p>
19
+ <ul class="border-neutral-300/90 border-l dark:border-neutral-700 ml-3">
20
+
21
+ <%= system_nav_item(label: "Form Builder", path: systems_forms_form_builder_path) %>
22
+
23
+ <%= system_nav_item(label: "Input", path: systems_forms_input_path) %>
24
+
25
+ <%= system_nav_item(label: "Input Group", path: systems_forms_input_group_path) %>
26
+
27
+ <%= system_nav_item(label: "Select", path: systems_forms_select_path) %>
28
+
29
+ <%= system_nav_item(label: "Checkbox", path: systems_forms_checkbox_path) %>
30
+
31
+ <%= system_nav_item(label: "Radio", path: systems_forms_radio_path) %>
32
+
33
+ <%= system_nav_item(label: "Switch", path: systems_forms_switch_path) %>
34
+
35
+ <%= system_nav_item(label: "ActionText", path: systems_forms_action_text_path) %>
36
+
37
+ <%= system_nav_item(label: "Validation", path: systems_forms_validation_path) %>
38
+ </ul>
39
+ </li>
40
+ <li>
41
+ <p class="font-medium px-3 py-2 dark:text-neutral-200 mt-4 mb-1 text-[14px]">Components</p>
42
+ <ul class="border-neutral-300/90 border-l dark:border-neutral-700 ml-3">
43
+
44
+ <%= system_nav_item(label: "Accordion", path: systems_components_accordion_path) %>
45
+
46
+ <%= system_nav_item(label: "Alert", path: systems_components_alert_path) %>
47
+
48
+ <%= system_nav_item(label: "Avatar", path: systems_components_avatar_path) %>
49
+
50
+ <%= system_nav_item(label: "Badge", path: systems_components_badge_path) %>
51
+
52
+ <%= system_nav_item(label: "Breadcrumb", path: systems_components_breadcrumb_path) %>
53
+
54
+ <%= system_nav_item(label: "Button", path: systems_components_button_path) %>
55
+
56
+ <%= system_nav_item(label: "Card", path: systems_components_card_path) %>
57
+
58
+ <%= system_nav_item(label: "Combobox", path: systems_components_combobox_path) %>
59
+
60
+ <%= system_nav_item(label: "Dropdown", path: systems_components_dropdown_path) %>
61
+
62
+ <%= system_nav_item(label: "Flash", path: systems_components_flash_path) %>
63
+
64
+ <%= system_nav_item(label: "Modal", path: systems_components_modal_path) %>
65
+
66
+ <%= system_nav_item(label: "Navigation", path: systems_components_navigation_path) %>
67
+
68
+ <%= system_nav_item(label: "Pagination", path: systems_components_pagination_path) %>
69
+
70
+ <%= system_nav_item(label: "Tab", path: systems_components_tab_path) %>
71
+
72
+ <%= system_nav_item(label: "Toast", path: systems_components_toast_path) %>
73
+
74
+ <%= system_nav_item(label: "Tooltip", path: systems_components_tooltip_path) %>
75
+ </ul>
76
+ </li>
77
+
78
+ <li>
79
+ <p class="font-medium px-3 py-2 dark:text-neutral-200 mt-4 mb-1 text-[14px]">Authentication</p>
80
+
81
+ <ul class="border-neutral-300/90 border-l dark:border-neutral-700 ml-3">
82
+ <%= system_nav_item(label: "Overview", path: systems_authentication_overview_path) %>
83
+ </ul>
84
+
85
+ <ul class="border-neutral-300/90 border-l dark:border-neutral-700 ml-3">
86
+ <details class="marker:content-[''] group" <%= "open" if controller_name == "devise" %>>
87
+ <summary class="py-2 px-3 hover:bg-neutral-100/80 flex items-center justify-between dark:hover:bg-neutral-700/80">
88
+ <p class="font-medium">Devise</p>
89
+ <%= icon "plus", class: "size-4 stroke-neutral-400 group-open:hidden" %>
90
+ <%= icon "minus", class: "size-4 stroke-neutral-400 hidden group-open:block" %>
91
+ </summary>
92
+ <ul class="ml-2">
93
+ <%= system_nav_item(label: "Overview", path: systems_authentication_devise_overview_path) %>
94
+
95
+ <%= system_nav_item(label: "Sign up", path: systems_authentication_devise_signup_path) %>
96
+
97
+ <%= system_nav_item(label: "Sign in", path: systems_authentication_devise_signin_path) %>
98
+
99
+ <%= system_nav_item(label: "Change password", path: systems_authentication_devise_change_password_path) %>
100
+
101
+ <%= system_nav_item(label: "Reset password", path: systems_authentication_devise_reset_password_path) %>
102
+
103
+ <%= system_nav_item(label: "Confirmation", path: systems_authentication_devise_confirmation_path) %>
104
+
105
+ <%= system_nav_item(label: "Edit account", path: systems_authentication_devise_edit_path) %>
106
+
107
+ <%= system_nav_item(label: "Unlock", path: systems_authentication_devise_unlocks_path) %>
108
+ </ul>
109
+ </details>
110
+
111
+ <details class="marker:content-[''] group" <%= "open" if controller_name == "static" %>>
112
+ <summary class="py-2 px-3 hover:bg-neutral-100/80 flex items-center justify-between dark:hover:bg-neutral-700/80">
113
+ <p class="font-medium">Static</p>
114
+ <%= icon "plus", class: "size-4 stroke-neutral-400 group-open:hidden" %>
115
+ <%= icon "minus", class: "size-4 stroke-neutral-400 hidden group-open:block" %>
116
+ </summary>
117
+ <ul class="ml-2">
118
+ <%= system_nav_item(label: "Overview", path: systems_authentication_static_overview_path) %>
119
+
120
+ <%= system_nav_item(label: "Sign up", path: systems_authentication_static_signup_path) %>
121
+
122
+ <%= system_nav_item(label: "Sign in", path: systems_authentication_static_signin_path) %>
123
+
124
+ <%= system_nav_item(label: "Change password", path: systems_authentication_static_change_password_path) %>
125
+
126
+ <%= system_nav_item(label: "Reset password", path: systems_authentication_static_reset_password_path) %>
127
+
128
+ <%= system_nav_item(label: "Confirmation", path: systems_authentication_static_confirmation_path) %>
129
+
130
+ <%= system_nav_item(label: "Unlock", path: systems_authentication_static_unlocks_path) %>
131
+ </ul>
132
+ </details>
133
+ </ul>
134
+ </li>
135
+
136
+ <li>
137
+ <p class="font-medium px-3 py-2 dark:text-neutral-200 mt-4 mb-1 text-[14px]">Mailers</p>
138
+
139
+ <ul class="border-neutral-300/90 border-l dark:border-neutral-700 ml-3">
140
+ <%= system_nav_item(label: "Overview", path: systems_mailers_overview_path) %>
141
+
142
+ <%= system_nav_item(label: "Layout", path: systems_mailers_layout_path) %>
143
+
144
+ <%= system_nav_item(label: "Minimal", path: systems_mailers_minimal_path) %>
145
+
146
+ <%= system_nav_item(label: "Promotion", path: systems_mailers_promotion_path) %>
147
+
148
+ <%= system_nav_item(label: "Transactional", path: systems_mailers_transactional_path) %>
149
+
150
+ <%= system_nav_item(label: "Devise", path: systems_mailers_devise_path) %>
151
+ </ul>
152
+ </li>
153
+ <li>
154
+ <p class="font-medium px-3 py-2 dark:text-neutral-200 mt-4 mb-1 text-[14px]">Helpers</p>
155
+ <ul class="border-neutral-300/90 border-l dark:border-neutral-700 ml-3">
156
+ <%= system_nav_item(label: "Overview", path: systems_helpers_overview_path) %>
157
+ <%= system_nav_item(label: "Icon", path: systems_helpers_icon_path) %>
158
+ <%= system_nav_item(label: "Nav Link", path: systems_helpers_nav_link_path) %>
159
+ <%= system_nav_item(label: "Email Action", path: systems_helpers_email_action_path) %>
160
+ <%= system_nav_item(label: "Email Callout", path: systems_helpers_email_callout_path) %>
161
+ <%= system_nav_item(label: "Email Spacer", path: systems_helpers_spacer_path) %>
162
+ <%= system_nav_item(label: "Demo Avatar", path: systems_helpers_demo_avatar_path) %>
163
+ <%= system_nav_item(label: "Rails UI Head", path: systems_helpers_railsui_head_path) %>
164
+ </li>
165
+ </ul>
166
+ </div>
@@ -0,0 +1,42 @@
1
+
2
+ <div id="scaffolds-overview" class="prose dark:prose-invert my-6 max-w-full">
3
+ <p>Rails UI supplies pre-designed scaffolds in addition to the Rails defaults. To accomplish this you can run an alternative generator when scaffolding a new resource.</p>
4
+
5
+ <h3>Custom scaffold generator</h3>
6
+ <div class="not-prose">
7
+ <% content_for :bash, flush: true do %>
8
+ rails generate railsui:scaffold ModelName
9
+ <% end %>
10
+ <%= render_snippet active_tab: "bash" %>
11
+ </div>
12
+
13
+ <p>The custom scaffold generator performs the same function as the default but uses alternative view templates when generating. Below is an example of each template for the <%= Railsui.config.theme.humanize %> theme.</p>
14
+
15
+ </div>
16
+
17
+ <% content_for :bash, flush: true do %>
18
+
19
+ <% end %>
20
+
21
+ <%= render callout do %>
22
+ <p><strong>Note</strong>: Changing your Rails UI theme will not automatically update existing scaffolds to match the new theme.</p>
23
+ <% end %>
24
+
25
+ <%= render "railsui/themes/#{Railsui.config.theme.downcase}/scaffolds/index" %>
26
+ <%= render "railsui/themes/#{Railsui.config.theme.downcase}/scaffolds/show" %>
27
+ <%= render "railsui/themes/#{Railsui.config.theme.downcase}/scaffolds/new" %>
28
+ <%= render "railsui/themes/#{Railsui.config.theme.downcase}/scaffolds/edit" %>
29
+ <%= render "railsui/themes/#{Railsui.config.theme.downcase}/scaffolds/partial" %>
30
+
31
+ <%= system_pagination(prev_path: systems_content_image_path, prev_text: "Image", next_path: systems_forms_path, next_text: "Forms") %>
32
+
33
+ <%= content_for :component_nav do %>
34
+ <%= render layout: "railsui/shared/component_nav", locals: { title: "On this page" } do %>
35
+ <%= component_link "Overview", "#scaffolds-overview" %>
36
+ <%= component_link "Index", "#scaffolds-index" %>
37
+ <%= component_link "Show", "#scaffolds-show" %>
38
+ <%= component_link "New", "#scaffolds-new" %>
39
+ <%= component_link "Edit", "#scaffolds-edit" %>
40
+ <%= component_link "Partial", "#scaffolds-partial" %>
41
+ <% end %>
42
+ <% end %>
@@ -0,0 +1,5 @@
1
+
2
+ <%= render layout: "railsui/shared/linkables" do %>
3
+ <%= render "railsui/shared/linkable", path: systems_authentication_devise_overview_path, title: "Devise", description: "Ready-to-use authentication patterns for Devise installs." %>
4
+ <%= render "railsui/shared/linkable", path: systems_authentication_static_overview_path, title: "Static", description: "Ready-to-use authentication patterns for generic authentication." %>
5
+ <% end %>
@@ -0,0 +1,74 @@
1
+ <%= render layout: example, locals: { heading: "Change password", section: "Authentication" } do %>
2
+
3
+ <div class=" border border-neutral-200 rounded-3xl overflow-hidden dark:border-neutral-700">
4
+ <div class="flex min-h-screen bg-white dark:bg-neutral-900">
5
+ <%= render "rui/shared/flash" %>
6
+ <div class="flex items-center justify-center w-full px-6 lg:w-5/12">
7
+ <div class="w-full max-w-sm space-y-8">
8
+ <div class="flex flex-col items-center justify-center gap-4">
9
+ <%= link_to root_path, class: "flex items-center gap-2.5 shrink-0" do %>
10
+ <!-- Corgie logo -->
11
+ <%= icon "logo.svg", custom_path: "/railsui/logo.svg", class: "size-6 fill-current", variant: :solid %>
12
+
13
+ <span class="h4 font-semibold">Corgie</span>
14
+ <% end %>
15
+
16
+ <% if content_for?(:title) %>
17
+ <p class="text-neutral-500 dark:text-neutral-400">
18
+ <%= yield :title %>
19
+ </p>
20
+ <% end %>
21
+ </div>
22
+
23
+ <%= form_with(url: "#", builder: Railsui::FormBuilder) do |f| %>
24
+ <%= f.form_group do %>
25
+ <%= f.password_field :password, label: "New password", placeholder: "Enter password", required: true %>
26
+ <% end %>
27
+
28
+ <%= f.form_group do %>
29
+ <%= f.password_field :password_confirmation, label: "Confirm password", placeholder: "Confirm password", required: true %>
30
+ <% end %>
31
+
32
+ <%= f.submit "Change password", class: "w-full btn btn-lg btn-primary" %>
33
+ <% end %>
34
+ </div>
35
+ </div>
36
+ <div class="relative hidden overflow-hidden lg:flex lg:w-7/12 bg-neutral-950">
37
+ <%= image_tag "railsui/auth-bg.jpg", alt: "Authentication visual with pulse animation", class: "absolute inset-0 object-cover w-full h-full opacity-20 animate-auth-ambient" %>
38
+ </div>
39
+ </div>
40
+ </div>
41
+
42
+ <% content_for :example, flush: true do %>
43
+
44
+ <% content_for :erb, flush: true do %>
45
+ <!-- app/views/devise/passwords/edit.html.erb -->
46
+ <%% content_for :title, "Change password" %>
47
+
48
+ <%%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }, bulder: Railsui::FormBuilder) do |f| %>
49
+
50
+ <%%= render "rui/shared/error_messages", resource: f.object %>
51
+
52
+ <%%= f.hidden_field :reset_password_token %>
53
+
54
+ <%%= f.form_group do %>
55
+ <%%= f.password_field :password, label: "New password", autocomplete: "new-password, placeholder: "Enter password", required: true %>
56
+ <%% if @minimum_password_length
57
+ <%%= f.form_help "Must be at least <%%= @minimum_password_length %> characters long" %>
58
+ <%% end %>
59
+ <%% end %>
60
+
61
+ <%%= f.form_group do %>
62
+ <%%= f.password_field :password_confirmation, label: "Confirm password", placeholder: "Confirm password", required: true %>
63
+ <%% end %>
64
+
65
+ <%%= f.submit "Reset Password", class: "w-full btn btn-lg btn-primary" %>
66
+ <%% end %>
67
+ <% end %>
68
+
69
+
70
+ <%= render_snippet active_tab: "erb", erb_filename: "new.html.erb" %>
71
+ <% end %>
72
+ <% end %>
73
+
74
+ <%= system_pagination(prev_path: systems_authentication_devise_signin_path, prev_text: "Sign in", next_path: systems_authentication_devise_reset_password_path, next_text: "Reset password") %>