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,485 @@
1
+ <%### input w/ label %>
2
+ <div id="input-group-with-label">
3
+ <%= render layout: example, locals: { heading: "Input with label", section: "Input Group" } do %>
4
+
5
+ <%= render preview('neutral') do %>
6
+ <div class="form-group mb-0 font-tiktok">
7
+ <label for="email" class="form-label">Email</label>
8
+ <input type="email" class="form-input" placeholder="john.doe@example.com" aria-label="Email">
9
+ </div>
10
+ <% end %>
11
+
12
+ <% content_for :example, flush: true do %>
13
+ <% content_for :html, flush: true do %>
14
+ <div class="form-group">
15
+ <label for="email" class="form-label">Email</label>
16
+ <input type="email" class="form-input" placeholder="john.doe@example.com" aria-label="Email">
17
+ </div>
18
+ <% end %>
19
+
20
+ <% content_for :erb, flush: true do %>
21
+ <!-- ActionView::Helpers::FormHelper -->
22
+ <%%= form_with model: @form do |f| %>
23
+ <div class="form-group">
24
+ <%%= f.label :email, class: "form-label" %>
25
+ <%%= f.email_field :email, class: "form-input", placeholder: "john.doe@example.com", "aria-label": "Email" %>
26
+ </div>
27
+ <%%= f.submit class: "btn btn-primary" %>
28
+ <%% end %>
29
+
30
+ <!-- Railsui::FormBuilder -->
31
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
32
+ <%%= f.email_field :email, label: "Email", placeholder: "john.doe@example.com" %>
33
+ <%%= f.submit %>
34
+ <%% end %>
35
+ <% end %>
36
+
37
+ <%= render_snippet active_tab: :erb %>
38
+ <% end %>
39
+ <% end %>
40
+ </div>
41
+
42
+ <%### input w/ label + help text %>
43
+ <%= divider %>
44
+
45
+ <div id="input-group-with-help-text">
46
+ <%= render layout: example, locals: { heading: "Input with label and help text" } do %>
47
+
48
+ <%= render preview('neutral') do %>
49
+ <div class="form-group mb-0 font-tiktok">
50
+ <label for="email" class="form-label">Email</label>
51
+ <input type="email" class="form-input" placeholder="john.doe@example.com" aria-label="Email">
52
+ <p class="form-help">This text helps you, right?</p>
53
+ </div>
54
+ <% end %>
55
+
56
+ <% content_for :example, flush: true do %>
57
+ <% content_for :html, flush: true do %>
58
+ <div class="form-group">
59
+ <label for="email" class="form-label">Email</label>
60
+ <input type="email" class="form-input" placeholder="john.doe@example.com" aria-label="Email">
61
+ <p class="form-help">This text helps you, right?</p>
62
+ </div>
63
+ <% end %>
64
+
65
+ <% content_for :erb, flush: true do %>
66
+ <!-- ActionView::Helpers::FormHelper -->
67
+ <%%= form_with model: @form do |f| %>
68
+ <div class="form-group">
69
+ <%%= f.label :email, class: "form-label" %>
70
+ <%%= f.email_field :email, class: "form-input", placeholder: "john.doe@example.com", "aria-label": "Email" %>
71
+ <p class="form-help">This text helps you, right?</p>
72
+ </div>
73
+ <%%= f.submit class: "btn btn-primary" %>
74
+ <%% end %>
75
+
76
+ <!-- Railsui::FormBuilder -->
77
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
78
+ <%%= f.email_field :email, label: "Email", placeholder: "john.doe@example.com", help: "This text helps you, right?" %>
79
+ <%%= f.submit %>
80
+ <%% end %>
81
+ <% end %>
82
+
83
+ <%= render_snippet active_tab: :erb %>
84
+ <% end %>
85
+ <% end %>
86
+ </div>
87
+
88
+ <%#### Input with dynamic error messages %>
89
+ <%= divider %>
90
+
91
+ <div id="input-group-with-dynamic-errors">
92
+ <%= render layout: example, locals: { heading: "Input with dynamic error messages", section: "Input Group" } do %>
93
+
94
+ <span class="rounded-full bg-yellow-300 px-2 py-0.5 text-xs text-black font-medium">JavaScript</span> or <span class="rounded-full bg-teal-300 text-black px-2 py-0.5 text-xs font-medium">Turbo</span> required.
95
+
96
+ <div class="prose dark:prose-invert my-6 max-w-full">
97
+ <p>Add the class <code>.form-input-error</code> dynamically to display an invalid state. The icon and helper text is hidden by default but is displayed when the class gets appended.</p>
98
+ <p>Read the <%= link_to "Icon documentation", systems_icons_path, class: "text-neutral-800 underline hover:text-neutral-900 font-medium dark:text-neutral-200 dark:hover:text-neutral-100", target: :_blank %> for the <code>icon</code> view helper as shown in the following snippet(s).</p>
99
+ </div>
100
+
101
+ <%= render preview('neutral') do %>
102
+ <div class="form-group relative mb-0 font-tiktok">
103
+ <input type="email" class="form-input form-input-error pr-10" placeholder="john.doe@example.com" aria-label="Email" value="john.doe@">
104
+
105
+ <%= icon "exclamation-circle", class: "hidden size-5 text-red-600 dark:text-red-400 absolute right-3 top-3" %>
106
+ <p class="hidden mt-1 text-sm text-red-700 dark:text-red-400">Please enter a valid email</p>
107
+ </div>
108
+ <% end %>
109
+
110
+ <% content_for :example, flush: true do %>
111
+ <%# .html %>
112
+ <% content_for :html, flush: true do %>
113
+ <div class="form-group relative">
114
+ <input type="email" class="form-input form-input-error pr-10" placeholder="john.doe@example.com" aria-label="Email">
115
+ <%%= icon "exclamation-circle", class: "hidden size-5 text-red-600 dark:text-red-400 absolute right-3 top-3" %>
116
+ <p class="hidden mt-1 text-sm text-red-700 dark:text-red-400">Please enter a valid email</p>
117
+ </div>
118
+ <% end %>
119
+
120
+ <%# .erb %>
121
+ <% content_for :erb, flush: true do %>
122
+ <!-- ActionView::Helpers::FormTagHelper -->
123
+ <div class="form-group relative">
124
+ <%%= email_field_tag "email", nil, class: "form-input form-input-error pr-10", placeholder: "Email", "aria-label": "Email" %>
125
+ <%%= icon "exclamation-circle", class: "hidden size-5 text-red-600 dark:text-red-400 absolute right-3 top-3" %>
126
+ <p class="hidden mt-1 text-sm text-red-700 dark:text-red-400">Please enter a valid email</p>
127
+ </div>
128
+
129
+ <!-- ActionView::Helpers::FormHelper -->
130
+ <%%= form_with model: @form do |f| %>
131
+ <div class="form-group relative">
132
+ <%%= f.email_field :email, class: "form-input form-input-error pr-10", placeholder: "Email", "aria-label": "Email" %>
133
+ <%%= icon "exclamation-circle", class: "hidden size-5 text-red-600 dark:text-red-400 absolute right-3 top-3" %>
134
+ <p class="hidden mt-1 text-sm text-red-700 dark:text-red-400">Please enter a valid email</p>
135
+ </div>
136
+ <%%= f.submit class: "btn btn-primary" %>
137
+ <%% end %>
138
+
139
+ <!-- Railsui::FormBuilder -->
140
+ <!-- Note: FormBuilder automatically handles error states when model validations fail -->
141
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
142
+ <%%= f.email_field :email, label: "Email", placeholder: "Email" %>
143
+ <%%= f.submit %>
144
+ <%% end %>
145
+ <% end %>
146
+
147
+ <%= render_snippet active_tab: :erb %>
148
+ <% end %>
149
+ <% end %>
150
+ </div>
151
+
152
+ <%#### Input with browser-based error messages %>
153
+ <%= divider %>
154
+
155
+ <div id="input-group-with-browser-errors">
156
+ <%= render layout: example, locals: { heading: "Input with browser-based error messages" } do %>
157
+
158
+ <div class="prose dark:prose-invert my-6 max-w-full">
159
+ <p>Most modern browsers have invalid properties and states you can customize the design for. This type of validation uses those in lieu of reaching for JavaScript.</p>
160
+ </div>
161
+
162
+ <%= render preview('neutral') do %>
163
+ <div class="form-group mb-0 font-tiktok">
164
+ <label for="email" class="form-label">Email</label>
165
+ <div class="relative">
166
+ <input type="email" class="form-input peer pr-10 invalid:border-red-700 invalid:text-red-700 invalid:ring-red-50 dark:invalid:border-red-400 dark:invalid:text-red-400 dark:invalid:ring-red-50/10" placeholder="john.doe@example.com" aria-label="Email" value="john.doe@">
167
+
168
+ <%= icon "exclamation-circle", class: "size-5 stroke-current text-red-700 dark:text-red-400 absolute right-3 top-3 invisible peer-invalid:visible" %>
169
+ <p class="mt-1 text-sm text-red-700 dark:text-red-400 invisible peer-invalid:visible">Please enter a valid email</p>
170
+ </div>
171
+ </div>
172
+ <% end %>
173
+
174
+ <% content_for :example, flush: true do %>
175
+ <%# .html %>
176
+ <% content_for :html, flush: true do %>
177
+ <div class="form-group">
178
+ <label for="email" class="form-label">Email</label>
179
+ <div class="relative">
180
+ <input type="email" class="form-input peer pr-10 invalid:border-red-700 invalid:text-red-700 invalid:ring-red-50 dark:invalid:border-red-400 dark:invalid:text-red-400 dark:invalid:ring-red-50/10" placeholder="john.doe@example.com" aria-label="Email" value="john.doe@">
181
+
182
+ <%%= icon "exclamation-circle", class: "size-5 stroke-current text-red-700 dark:text-red-400 absolute right-3 top-3 invisible peer-invalid:visible" %>
183
+ <p class="mt-1 text-sm text-red-700 dark:text-red-400 invisible peer-invalid:visible">Please enter a valid email</p>
184
+ </div>
185
+ </div>
186
+ <% end %>
187
+
188
+ <%# .erb %>
189
+ <% content_for :erb, flush: true do %>
190
+ <!-- ActionView::Helpers::FormTagHelper -->
191
+ <div class="form-group">
192
+ <%%= label_tag "email", "Email", class: "form-label" %>
193
+ <div class="relative">
194
+ <%%= email_field_tag "email", "john.doe@", class: "form-input peer pr-10 invalid:border-red-700 invalid:text-red-700 invalid:ring-red-50 dark:invalid:border-red-400 dark:invalid:text-red-400 dark:invalid:ring-red-50/10", placeholder: "john.doe@example.com", "aria-label": "Email" %>
195
+
196
+ <%%= icon "exclamation-circle", class: "size-5 stroke-current text-red-700 dark:text-red-400 absolute right-3 top-3 invisible peer-invalid:visible" %>
197
+ <p class="mt-1 text-sm text-red-700 dark:text-red-400 invisible peer-invalid:visible">Please enter a valid email</p>
198
+ </div>
199
+ </div>
200
+
201
+ <!-- ActionView::Helpers::FormHelper -->
202
+ <%%= form_with model: @form do |f| %>
203
+ <div class="form-group">
204
+ <%%= f.label :email, class: "form-label" %>
205
+ <div class="relative">
206
+ <%%= f.email_field :email, class: "form-input peer pr-10 invalid:border-red-700 invalid:text-red-700 invalid:ring-red-50 dark:invalid:border-red-400 dark:invalid:text-red-400 dark:invalid:ring-red-50/10", placeholder: "john.doe@example.com", "aria-label": "Email" %>
207
+ <%%= icon "exclamation-circle", class: "size-5 stroke-current text-red-700 dark:text-red-400 absolute right-3 top-3 invisible peer-invalid:visible" %>
208
+ <p class="mt-1 text-sm text-red-700 dark:text-red-400 invisible peer-invalid:visible">Please enter a valid email</p>
209
+ </div>
210
+ </div>
211
+ <%%= f.submit class: "btn btn-primary" %>
212
+ <%% end %>
213
+
214
+ <!-- Railsui::FormBuilder -->
215
+ <!-- Note: For browser validation, use class option to add peer and invalid classes -->
216
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
217
+ <%%= f.email_field :email, label: "Email", placeholder: "john.doe@example.com", class: "peer invalid:border-red-700 invalid:text-red-700 invalid:ring-red-50 dark:invalid:border-red-400 dark:invalid:text-red-400 dark:invalid:ring-red-50/10" %>
218
+ <%%= f.submit %>
219
+ <%% end %>
220
+ <% end %>
221
+
222
+ <%= render_snippet active_tab: :erb %>
223
+ <% end %>
224
+ <% end %>
225
+ </div>
226
+
227
+ <%### disabled input w/ label %>
228
+ <%= divider %>
229
+
230
+ <div id="input-group-disabled-with-label">
231
+ <%= render layout: example, locals: { heading: "Disabled input with label", section: "Input Group" } do %>
232
+
233
+ <div class="prose prose-neutral dark:prose-invert mb-6">
234
+ <p>Adding a <code>disabled</code> attribute to the input field will automatically style disabled inputs</p>
235
+ </div>
236
+
237
+ <%= render preview('neutral') do %>
238
+ <div class="form-group mb-0 font-tiktok">
239
+ <label for="email" class="form-label">Email</label>
240
+ <input type="email" class="form-input" placeholder="john.doe@example.com" aria-label="Email" disabled>
241
+ </div>
242
+ <% end %>
243
+
244
+ <% content_for :example, flush: true do %>
245
+ <% content_for :html, flush: true do %>
246
+ <div class="form-group">
247
+ <label for="email" class="form-label">Email</label>
248
+ <input type="email" class="form-input" placeholder="john.doe@example.com" aria-label="Email" disabled>
249
+ </div>
250
+ <% end %>
251
+
252
+ <% content_for :erb, flush: true do %>
253
+ <!-- ActionView::Helpers::FormHelper -->
254
+ <%%= form_with model: @form do |f| %>
255
+ <div class="form-group">
256
+ <%%= f.label :email, class: "form-label" %>
257
+ <%%= f.email_field :email, class: "form-input", placeholder: "john.doe@example.com", "aria-label": "Email", disabled: true %>
258
+ </div>
259
+ <%%= f.submit class: "btn btn-primary" %>
260
+ <%% end %>
261
+
262
+ <!-- Railsui::FormBuilder -->
263
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
264
+ <%%= f.email_field :email, label: "Email", placeholder: "john.doe@example.com", disabled: true %>
265
+ <%%= f.submit %>
266
+ <%% end %>
267
+ <% end %>
268
+
269
+ <%= render_snippet active_tab: :erb %>
270
+ <% end %>
271
+ <% end %>
272
+ </div>
273
+
274
+ <%### Input with add-on %>
275
+ <%= divider %>
276
+
277
+ <div id="input-group-with-add-on">
278
+ <%= render layout: example, locals: { heading: "Input with add-on" } do %>
279
+
280
+ <div class="prose prose-neutral dark:prose-invert mb-6 max-w-full">
281
+ <p>Using custom offsets you can add an add-on to the beginning or end of an input. Modify the <code>w-[40px]</code> class of the add-on to account for its content. Do the same for the input padding <code>pl-[90px]</code> to adjust offset proportionally.</p>
282
+ </div>
283
+
284
+ <%= render preview('neutral') do %>
285
+ <div class="form-group mb-0 font-tiktok">
286
+ <label for="website" class="form-label">Website</label>
287
+ <div class="relative">
288
+ <div class="absolute left-px border-r border-neutral-300 top-px bg-neutral-100 dark:bg-neutral-700/80 dark:border-neutral-700 dark:text-neutral-200 h-[36px] text-base rounded-l-md flex items-center justify-center px-3 text-neutral-700 select-none">https://</div>
289
+ <input type="text" id="website" class="form-input pl-[90px]" placeholder="example.com" aria-label="Website">
290
+ </div>
291
+ </div>
292
+ <% end %>
293
+
294
+ <% content_for :example, flush: true do %>
295
+ <% content_for :html, flush: true do %>
296
+ <div class="form-group">
297
+ <label for="website" class="form-label">Website</label>
298
+ <div class="relative">
299
+ <div class="absolute left-px border-r border-neutral-300 top-px bg-neutral-100 dark:bg-neutral-700/80 dark:border-neutral-700 dark:text-neutral-200 h-[36px] text-base rounded-l-md flex items-center justify-center px-3 text-neutral-700 select-none">https://</div>
300
+ <input type="text" id="website" class="form-input pl-[90px]" placeholder="example.com" aria-label="Website">
301
+ </div>
302
+ </div>
303
+ <% end %>
304
+
305
+ <% content_for :erb, flush: true do %>
306
+ <!-- ActionView::Helpers::FormHelper -->
307
+ <%%= form_with model: @form do |f| %>
308
+ <div class="form-group">
309
+ <%%= f.label :website, class: "form-label" %>
310
+ <div class="relative">
311
+ <div class="absolute left-px border-r border-neutral-300 top-px bg-neutral-100 dark:bg-neutral-700/80 dark:border-neutral-700 dark:text-neutral-200 h-[36px] text-base rounded-l-md flex items-center justify-center px-3 text-neutral-700 select-none">https://</div>
312
+ <%%= f.text_field :website, class: "form-input pl-[90px]", placeholder: "example.com", "aria-label": "Website" %>
313
+ </div>
314
+ </div>
315
+ <%%= f.submit class: "btn btn-primary" %>
316
+ <%% end %>
317
+
318
+ <!-- Railsui::FormBuilder -->
319
+ <!-- Note: For add-ons, use wrapper option and skip_label to customize structure -->
320
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
321
+ <%%= f.form_group do %>
322
+ <%%= f.label :website, "Website" %>
323
+ <div class="relative">
324
+ <div class="absolute left-px border-r border-neutral-300 top-px bg-neutral-100 dark:bg-neutral-700/80 dark:border-neutral-700 dark:text-neutral-200 h-[36px] text-base rounded-l-md flex items-center justify-center px-3 text-neutral-700 select-none">https://</div>
325
+ <%%= f.text_field :website, class: "pl-[90px]", placeholder: "example.com", skip_label: true %>
326
+ </div>
327
+ <%% end %>
328
+ <%%= f.submit %>
329
+ <%% end %>
330
+ <% end %>
331
+
332
+ <%= render_snippet active_tab: :erb %>
333
+ <% end %>
334
+ <% end %>
335
+ </div>
336
+
337
+ <%### Input with leading inline and trailing add-ons %>
338
+ <%= divider %>
339
+
340
+ <div id="input-group-with-leading-inline-and-trailing-add-ons">
341
+ <%= render layout: example, locals: { heading: "Input with leading inline and trailing add-ons", section: "Input Group" } do %>
342
+
343
+ <%= render preview('neutral') do %>
344
+ <div class="form-group mb-0 font-tiktok">
345
+ <label for="amount" class="form-label">Enter amount</label>
346
+ <div class="relative">
347
+ <span class="absolute left-3 top-[7px] text-neutral-500 dark:text-neutral-400">$</span>
348
+ <input type="text" id="amount" class="form-input pl-7" placeholder="5.00" aria-label="Website">
349
+ <span class="absolute right-3 top-2.5 text-neutral-500 text-sm dark:text-neutral-400">USD</span>
350
+ </div>
351
+ </div>
352
+ <% end %>
353
+
354
+ <% content_for :example, flush: true do %>
355
+ <% content_for :html, flush: true do %>
356
+ <div class="form-group">
357
+ <label for="amount" class="form-label">Enter amount</label>
358
+ <div class="relative">
359
+ <span class="absolute left-3 top-[7px] text-neutral-500 dark:text-neutral-400">$</span>
360
+ <input type="text" id="amount" class="form-input pl-7" placeholder="5.00" aria-label="Enter amount">
361
+ <span class="absolute right-3 top-2.5 text-neutral-500 dark:text-neutral-400 text-sm">USD</span>
362
+ </div>
363
+ </div>
364
+ <% end %>
365
+
366
+ <% content_for :erb, flush: true do %>
367
+ <!-- ActionView::Helpers::FormHelper -->
368
+ <%%= form_with model: @form do |f| %>
369
+ <div class="form-group">
370
+ <%%= f.label :amount, "Enter amount", class: "form-label" %>
371
+ <div class="relative">
372
+ <span class="absolute left-3 top-[7px] text-neutral-500 dark:text-neutral-400">$</span>
373
+ <%%= f.text_field :amount, class: "form-input pl-7", placeholder: "5.00", "aria-label": "Enter amount" %>
374
+ <span class="absolute right-3 top-2.5 text-neutral-500 dark:text-neutral-400 text-sm">USD</span>
375
+ </div>
376
+ </div>
377
+ <%%= f.submit class: "btn btn-primary" %>
378
+ <%% end %>
379
+
380
+ <!-- Railsui::FormBuilder -->
381
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
382
+ <%%= f.form_group do %>
383
+ <%%= f.label :amount, "Enter amount" %>
384
+ <div class="relative">
385
+ <span class="absolute left-3 top-[7px] text-neutral-500 dark:text-neutral-400">$</span>
386
+ <%%= f.text_field :amount, class: "pl-7", placeholder: "5.00", skip_label: true %>
387
+ <span class="absolute right-3 top-2.5 text-neutral-500 dark:text-neutral-400 text-sm">USD</span>
388
+ </div>
389
+ <%% end %>
390
+ <%%= f.submit %>
391
+ <%% end %>
392
+ <% end %>
393
+
394
+ <%= render_snippet active_tab: :erb %>
395
+ <% end %>
396
+ <% end %>
397
+ </div>
398
+
399
+ <%### Input with add-on and trailing button %>
400
+ <%= divider %>
401
+
402
+ <div id="input-group-with-add-on-and-trailing-button">
403
+ <%= render layout: example, locals: { heading: "Input with add-on and trailing button", section: "Input Group" } do %>
404
+
405
+ <%= render preview('neutral') do %>
406
+ <div class="form-group mb-0 font-tiktok">
407
+ <label for="users" class="form-label">Search users</label>
408
+ <div class="relative">
409
+ <%= icon "users", class: "size-4 text-neutral-500 absolute left-3 top-3" %>
410
+ <input type="search" id="users" class="form-input pl-9" placeholder="John Doe" aria-label="Search users" />
411
+ <button type="submit" class="btn btn-ghost rounded-md absolute h-6 w-8 top-[7px] right-1.5">
412
+ <span class="sr-only">Search</span>
413
+ <%= icon "magnifying-glass", class: "size-5 text-neutral-500 shrink-0" %>
414
+ </button>
415
+ </div>
416
+ </div>
417
+ <% end %>
418
+
419
+ <% content_for :example, flush: true do %>
420
+ <% content_for :html, flush: true do %>
421
+ <div class="form-group">
422
+ <label for="users" class="form-label">Search users</label>
423
+ <div class="relative">
424
+ <%%= icon "users", class: "size-4 text-neutral-500 absolute left-3 top-3" %>
425
+ <input type="search" id="users" class="form-input pl-9" placeholder="John Doe" aria-label="Search users" />
426
+ <button type="submit" class="btn btn-ghost rounded-md absolute h-6 w-8 top-[7px] right-1.5">
427
+ <span class="sr-only">Search</span>
428
+ <%%= icon "magnifying-glass", class: "size-5 text-neutral-500 shrink-0" %>
429
+ </button>
430
+ </div>
431
+ </div>
432
+ <% end %>
433
+
434
+ <% content_for :erb, flush: true do %>
435
+ <!-- ActionView::Helpers::FormHelper -->
436
+ <%%= form_with model: @form do |f| %>
437
+ <div class="form-group">
438
+ <%%= f.label :users, "Search users", class: "form-label" %>
439
+ <div class="relative">
440
+ <%%= icon "users", class: "size-4 text-neutral-500 absolute left-3 top-3" %>
441
+ <%%= f.search_field :users, class: "form-input pl-9", placeholder: "John Doe", "aria-label": "Search users" %>
442
+ <button type="submit" class="btn btn-ghost rounded-md absolute h-6 w-8 top-[7px] right-1.5">
443
+ <span class="sr-only">Search</span>
444
+ <%%= icon "magnifying-glass", class: "size-5 text-neutral-500 shrink-0" %>
445
+ </button>
446
+ </div>
447
+ </div>
448
+ <%%= f.submit class: "btn btn-primary" %>
449
+ <%% end %>
450
+
451
+ <!-- Railsui::FormBuilder -->
452
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
453
+ <%%= f.form_group do %>
454
+ <%%= f.label :users, "Search users" %>
455
+ <div class="relative">
456
+ <%%= icon "users", class: "size-4 text-neutral-500 absolute left-3 top-3" %>
457
+ <%%= f.search_field :users, class: "pl-9", placeholder: "John Doe", skip_label: true %>
458
+ <button type="submit" class="btn btn-ghost rounded-md absolute h-6 w-8 top-[7px] right-1.5">
459
+ <span class="sr-only">Search</span>
460
+ <%%= icon "magnifying-glass", class: "size-5 text-neutral-500 shrink-0" %>
461
+ </button>
462
+ </div>
463
+ <%% end %>
464
+ <%% end %>
465
+ <% end %>
466
+
467
+ <%= render_snippet active_tab: :erb %>
468
+ <% end %>
469
+ <% end %>
470
+ </div>
471
+
472
+ <%= system_pagination(prev_path: systems_forms_input_path, prev_text: "Input", next_path: systems_forms_select_path, next_text: "Select") %>
473
+
474
+ <%= content_for :component_nav do %>
475
+ <%= render layout: "railsui/shared/component_nav", locals: { title: "On this page" } do %>
476
+ <%= component_link "Input with label", "#input-group-with-label" %>
477
+ <%= component_link "Input with label and help text", "#input-group-with-help-text" %>
478
+ <%= component_link "Input with dynamic errors", "#input-group-with-dynamic-errors" %>
479
+ <%= component_link "Input with browser errors", "#input-group-with-browser-errors" %>
480
+ <%= component_link "Disabled input with label", "#input-group-disabled-with-label" %>
481
+ <%= component_link "Input with add-on", "#input-group-with-add-on" %>
482
+ <%= component_link "Input with leading inline and trailing add-ons", "#input-group-with-leading-inline-and-trailing-add-ons" %>
483
+ <%= component_link "Input with add-on and trailing button", "#input-group-with-add-on-and-trailing-button" %>
484
+ <% end %>
485
+ <% end %>
@@ -0,0 +1,92 @@
1
+ <div id="form-radio">
2
+ <%= render layout: example, locals: { heading: "Base" } do %>
3
+
4
+ <%= render preview('neutral') do %>
5
+ <div class="form-group mb-0 font-tiktok">
6
+ <div class="mb-2 flex items-center">
7
+ <input class="form-input-radio" type="radio" name="radio_default" id="radio_default_1">
8
+ <label class="ml-2" for="radio_default_1">
9
+ Default radio
10
+ </label>
11
+ </div>
12
+ <div class="flex items-center">
13
+ <input class="form-input-radio" type="radio" name="radio_default" id="radio_default_2" checked>
14
+ <label class="ml-2" for="radio_default_2">
15
+ Default checked radio
16
+ </label>
17
+ </div>
18
+ </div>
19
+ <% end %>
20
+
21
+
22
+ <% content_for :example, flush: true do %>
23
+ <%# .html %>
24
+ <% content_for :html, flush: true do %>
25
+ <div class="form-group">
26
+ <div class="mb-2 flex items-center">
27
+ <input class="form-input-radio" type="radio" name="radio_default" id="radio_default_1">
28
+ <label class="ml-2" for="radio_default_1">
29
+ Default radio
30
+ </label>
31
+ </div>
32
+ <div class="flex items-center">
33
+ <input class="form-input-radio" type="radio" name="radio_default" id="radio_default_2" checked>
34
+ <label class="ml-2" for="radio_default_2">
35
+ Default checked radio
36
+ </label>
37
+ </div>
38
+ </div>
39
+ <% end %>
40
+
41
+ <%# .erb %>
42
+ <% content_for :erb, flush: true do %>
43
+ <!-- ActionView::Helpers::FormTagHelper -->
44
+ <div class="form-group">
45
+ <div class="mb-2 flex items-center">
46
+ <%%= radio_button_tag "radio_default", "1", false, class: "form-input-radio" %>
47
+ <%%= label_tag "radio_default_1", "Default radio", class: "ml-2" %>
48
+ </div>
49
+
50
+ <div class="flex items-center">
51
+ <%%= radio_button_tag "radio_default", "2", true, class: "form-input-radio" %>
52
+ <%%= label_tag "radio_default_2", "Default checked radio", class: "ml-2" %>
53
+ </div>
54
+ </div>
55
+
56
+ <!-- ActionView::Helpers::FormHelper -->
57
+ <%%= form_with model: @form do |f| %>
58
+ <div class="form-group">
59
+ <div class="mb-2 flex items-center">
60
+ <%%= f.radio_button :radio_default, "1", class: "form-input-radio" %>
61
+ <%%= f.label :radio_default_1, "Default radio", class: "ml-2" %>
62
+ </div>
63
+
64
+ <div class="flex items-center">
65
+ <%%= f.radio_button :radio_default, "2", class: "form-input-radio" %>
66
+ <%%= f.label :radio_default_2, "Default checked radio", class: "ml-2" %>
67
+ </div>
68
+ </div>
69
+
70
+ <%%= f.submit class: "btn btn-primary" %>
71
+ <%% end %>
72
+
73
+ <!-- Railsui::FormBuilder -->
74
+ <%%= form_with model: @form, builder: Railsui::FormBuilder do |f| %>
75
+ <%%= f.radio_button :radio_default, "1", label: "Default radio" %>
76
+ <%%= f.radio_button :radio_default, "2", label: "Default checked radio" %>
77
+ <%%= f.submit %>
78
+ <%% end %>
79
+ <% end %>
80
+
81
+ <%= render_snippet active_tab: :erb %>
82
+ <% end %>
83
+ <% end %>
84
+ </div>
85
+
86
+ <%= system_pagination(prev_path: systems_forms_checkbox_path, prev_text: "Checkbox", next_path: systems_forms_switch_path, next_text: "Switch") %>
87
+
88
+ <%= content_for :component_nav do %>
89
+ <%= render layout: "railsui/shared/component_nav", locals: { title: "On this page" } do %>
90
+ <%= component_link "Base", "#radio-base" %>
91
+ <% end %>
92
+ <% end %>