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,321 @@
1
+ @layer components {
2
+ .form-group {
3
+ @apply mb-6;
4
+ }
5
+
6
+ .form-label {
7
+ @apply block mb-1.5 select-none font-medium text-sm text-neutral-700 dark:text-neutral-100 font-tiktok;
8
+
9
+ &.form-label-required {
10
+ @apply after:content-['*'] after:absolute after:text-red-600 after:top-0 relative after:pl-px;
11
+ }
12
+ }
13
+
14
+ .form-input {
15
+ @apply rounded-md px-3 py-1.5 border border-neutral-300 bg-white focus:border-neutral-400/80 focus:ring-4 focus:ring-neutral-400/10 focus:outline-none dark:bg-neutral-800 dark:focus:border-neutral-600 placeholder-neutral-600/80 dark:focus:ring-neutral-600/30 dark:placeholder:text-neutral-200/50 font-normal antialiased font-sans w-full shadow-neutral-200/30 dark:shadow-neutral-900/20 dark:border-neutral-600/80 shadow-xs font-tiktok;
16
+
17
+ &:disabled {
18
+ @apply shadow-none cursor-not-allowed pointer-events-none select-none bg-neutral-100/90 dark:bg-neutral-800/90 dark:opacity-70;
19
+ }
20
+ }
21
+
22
+ .form-input-sm {
23
+ @apply text-sm;
24
+ }
25
+
26
+ .form-textarea {
27
+ @apply rounded-md px-3 py-1.5 border border-neutral-300 bg-white shadow-xs focus:border-neutral-400/80 focus:ring-4 focus:ring-neutral-400/10 focus:outline-none dark:bg-neutral-800 dark:border-neutral-500/80 dark:focus:border-neutral-500 placeholder-neutral-600/80 dark:focus:ring-neutral-500/40 dark:placeholder:text-neutral-300/60 min-h-[100px] w-full font-tiktok;
28
+
29
+ &:disabled {
30
+ @apply shadow-none cursor-not-allowed pointer-events-none select-none bg-neutral-100/90 dark:bg-neutral-800/90 dark:opacity-70;
31
+ }
32
+ }
33
+
34
+ .form-file {
35
+ @apply block w-full text-sm text-neutral-500 dark:text-neutral-400 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-neutral-100 file:text-neutral-700 hover:file:bg-neutral-200/80 dark:file:bg-neutral-600 dark:file:text-neutral-100 dark:hover:file:text-neutral-100 dark:hover:file:bg-neutral-700 font-tiktok;
36
+ }
37
+
38
+ .form-input-color {
39
+ @apply transition border rounded-full appearance-none size-8 border-neutral-200 focus:border-neutral-400 focus:shadow focus:ring-4 focus:ring-neutral-400/10 dark:border-neutral-600 font-tiktok;
40
+
41
+ &::-webkit-color-swatch-wrapper,
42
+ &::-webkit-color-swatch {
43
+ @apply p-0 border-2 border-white rounded-full dark:border-neutral-700;
44
+ }
45
+ }
46
+
47
+ .form-input-datalist {
48
+ @apply font-tiktok;
49
+
50
+ &::-webkit-calendar-picker-indicator {
51
+ @apply hidden!;
52
+ }
53
+ }
54
+
55
+ /* Requires range_controller.js */
56
+ .form-input-range {
57
+ @apply relative bg-transparent appearance-none focus:outline-none;
58
+
59
+ --range-fill: 0;
60
+
61
+ &::-webkit-slider-thumb {
62
+ @apply appearance-none border-2 border-white h-4 w-4 rounded-full bg-white cursor-pointer relative -top-1.5 shadow outline-1 outline-neutral-300 focus:ring-4 focus:outline-neutral-400 hover:outline-neutral-400 dark:bg-neutral-800 dark:focus:outline-neutral-600 dark:hover:outline-neutral-600 dark:border-neutral-500 dark:outline-neutral-700;
63
+ }
64
+
65
+ &::-moz-range-thumb {
66
+ @apply appearance-none border-2 border-white h-4 w-4 rounded-full bg-white cursor-pointer relative -top-1.5 shadow outline-1 outline-neutral-300 focus:ring-4 focus:outline-neutral-400 hover:outline-neutral-400 dark:bg-neutral-800 dark:focus:outline-neutral-600 dark:hover:outline-neutral-600 dark:border-neutral-500 dark:outline-neutral-700;
67
+ }
68
+
69
+ &::-ms-thumb {
70
+ @apply appearance-none border-2 border-white h-4 w-4 rounded-full bg-white cursor-pointer relative -top-1.5 shadow outline-1 outline-neutral-300 focus:ring-4 focus:outline-neutral-400 hover:outline-neutral-400 dark:bg-neutral-800 dark:focus:outline-neutral-600 dark:hover:outline-neutral-600 dark:border-neutral-500 dark:outline-neutral-700;
71
+ }
72
+
73
+ &::-webkit-slider-runnable-track {
74
+ @apply w-full h-1 rounded-lg cursor-pointer;
75
+ background: linear-gradient(
76
+ to right,
77
+ var(--color-emerald-500) var(--range-fill),
78
+ var(--color-neutral-300) var(--range-fill)
79
+ );
80
+
81
+ @variant dark {
82
+ background: linear-gradient(
83
+ to right,
84
+ var(--color-emerald-500) var(--range-fill),
85
+ var(--color-neutral-700) var(--range-fill)
86
+ );
87
+ }
88
+ }
89
+
90
+ &::-moz-range-track {
91
+ @apply w-full h-1 rounded-lg cursor-pointer;
92
+ background: linear-gradient(
93
+ to right,
94
+ var(--color-emerald-500) var(--range-fill),
95
+ var(--color-neutral-300) var(--range-fill)
96
+ );
97
+
98
+ @variant dark {
99
+ background: linear-gradient(
100
+ to right,
101
+ var(--color-emerald-500) var(--range-fill),
102
+ var(--color-neutral-700) var(--range-fill)
103
+ );
104
+ }
105
+ }
106
+
107
+ &::-ms-track {
108
+ @apply w-full h-1 rounded-lg cursor-pointer;
109
+ background: linear-gradient(
110
+ to right,
111
+ var(--color-emerald-500) var(--range-fill),
112
+ var(--color-neutral-300) var(--range-fill)
113
+ );
114
+
115
+ @variant dark {
116
+ background: linear-gradient(
117
+ to right,
118
+ var(--color-emerald-500) var(--range-fill),
119
+ var(--color-neutral-700) var(--range-fill)
120
+ );
121
+ }
122
+ }
123
+
124
+ &:focus::-webkit-slider-runnable-track {
125
+ @apply bg-neutral-200 dark:bg-neutral-600;
126
+ }
127
+
128
+ &:focus::-moz-range-track {
129
+ @apply bg-neutral-200 dark:bg-neutral-600;
130
+ }
131
+
132
+ &:focus::-ms-track {
133
+ @apply bg-neutral-200 dark:bg-neutral-600;
134
+ }
135
+ }
136
+
137
+ .form-input-error {
138
+ @apply text-red-800 border-red-500 focus:ring-red-50 focus:border-red-400 dark:border-red-400 dark:text-red-300 dark:focus:ring-red-300/20 font-tiktok;
139
+
140
+ + svg {
141
+ @apply block!;
142
+
143
+ + p {
144
+ @apply block!;
145
+ }
146
+ }
147
+ }
148
+
149
+ .form-select {
150
+ @apply appearance-none px-3 py-1.5 border border-neutral-300 bg-white font-normal placeholder:text-neutral-500 rounded-md block w-full focus:outline-none focus:ring-4 focus:ring-neutral-400/10 focus:border-neutral-400/80 text-neutral-900 dark:focus:border-neutral-600 dark:text-white dark:placeholder:text-neutral-400 shadow-xs dark:bg-neutral-800 dark:focus:ring-neutral-500/40 font-sans dark:shadow-neutral-900/20 dark:border-neutral-600/80 font-tiktok;
151
+
152
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23a6a09b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
153
+ background-repeat: no-repeat;
154
+ background-size: 1.5em 1.5em;
155
+ background-position: right calc(var(--spacing) * 2) center;
156
+ print-color-adjust: exact;
157
+
158
+ @variant dark {
159
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23a6a09b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
160
+ }
161
+
162
+ &:disabled {
163
+ @apply shadow-none cursor-not-allowed pointer-events-none select-none bg-neutral-100/90 dark:bg-neutral-800/90 dark:opacity-70;
164
+ }
165
+
166
+ &.form-select-sort {
167
+ @apply border-none shadow-none appearance-none;
168
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none'%3E%3Cpath d='M8.25 15L12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9' stroke='%23d6d3d1' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
169
+
170
+ @variant dark {
171
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ctitle%3Echevron-up-down%3C/title%3E%3Cg fill='none'%3E%3Cpath d='M8.25 15L12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9' stroke='%23d6d3d1' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
172
+ }
173
+ }
174
+
175
+ &.form-select-minimal {
176
+ @apply text-base border-0 shadow-none outline-none ring-0 min-w-24 hover:bg-neutral-50 dark:hover:bg-neutral-700/90 dark:bg-neutral-900/90;
177
+ }
178
+ }
179
+
180
+ .form-datetime-select {
181
+ @apply flex items-center gap-2.5 text-neutral-300 font-tiktok;
182
+
183
+ select {
184
+ @apply appearance-none px-3 py-1.5 border border-neutral-300 bg-white font-normal placeholder:text-neutral-500 rounded-md block w-full focus:outline-none focus:ring-4 focus:ring-neutral-400/10 focus:border-neutral-400/80 text-neutral-900 dark:focus:border-neutral-600 dark:text-white dark:placeholder:text-neutral-400 shadow-xs dark:bg-neutral-800 dark:focus:ring-neutral-500/40 font-sans dark:shadow-neutral-900/20 dark:border-neutral-600/80 font-tiktok;
185
+
186
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23a6a09b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
187
+ background-repeat: no-repeat;
188
+ background-size: 1.5em 1.5em;
189
+ background-position: right calc(var(--spacing) * 2) center;
190
+ print-color-adjust: exact;
191
+
192
+ @variant dark {
193
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23a6a09b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
194
+ }
195
+ }
196
+ }
197
+
198
+ .form-input-checkbox {
199
+ @apply border rounded-sm appearance-none border-neutral-400 checked:bg-neutral-800 checked:border-neutral-500 checked:ring-2 checked:ring-neutral-500/10 checked:accent-neutral-500 text-neutral-600 dark:bg-neutral-600 dark:border-neutral-600 focus:ring-neutral-500/30 dark:checked:border-neutral-400 dark:checked:accent-neutral-400 size-4 outline-hidden;
200
+
201
+ + label,
202
+ + .form-label {
203
+ @apply mb-0 select-none;
204
+ }
205
+
206
+ &:checked {
207
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3e%3c/svg%3e");
208
+ }
209
+
210
+ &:indeterminate {
211
+ @apply bg-neutral-500 border-neutral-500 accent-neutral-400 ring-neutral-500/10 ring-2;
212
+
213
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
214
+ }
215
+ }
216
+
217
+ .form-input-radio {
218
+ @apply border rounded-full appearance-none border-neutral-400 focus:ring-2 checked:ring-neutral-200 checked:shadow-neutral-600 text-neutral-600 focus-visible:text-neutral-600 focus-visible:ring-neutral-200 focus-visible:outline-hidden dark:bg-neutral-700 dark:border-neutral-600 dark:checked:border-neutral-400 dark:checked:accent-neutral-400 size-4 checked:bg-neutral-500 checked:border-neutral-500;
219
+
220
+ &:checked {
221
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3ccircle cx='10' cy='10' r='4' fill='%23fff'/%3e%3c/svg%3e");
222
+ }
223
+
224
+ + label,
225
+ + .form-label {
226
+ @apply mb-0 select-none;
227
+ }
228
+ }
229
+
230
+ .form-input-switch {
231
+ @apply hidden;
232
+
233
+ &:disabled + label {
234
+ @apply cursor-not-allowed opacity-70;
235
+ }
236
+
237
+ &:disabled + label::after {
238
+ @apply shadow-none!;
239
+ }
240
+
241
+ &:checked + label::before {
242
+ @apply dark:bg-emerald-600 bg-neutral-900;
243
+ }
244
+
245
+ &:checked + label::after {
246
+ transform: translate3d(16px, 0, 0);
247
+ background-size: 10px 10px;
248
+ @apply bg-white bg-center bg-no-repeat;
249
+ }
250
+
251
+ + label {
252
+ @apply inline-flex cursor-pointer leading-6 select-none relative font-normal text-[15px] font-tiktok;
253
+
254
+ &:before {
255
+ @apply content-[""] block bg-neutral-300 rounded-full h-6 w-10 mr-3 transition-colors ease-out flex-shrink-0 dark:bg-neutral-700;
256
+ }
257
+
258
+ &:after {
259
+ @apply content-[""] block bg-white rounded-full size-4 absolute top-[4px] left-[4px] transition-transform ease-out shadow-md;
260
+ }
261
+ }
262
+ }
263
+
264
+ .form-help {
265
+ @apply mt-1 text-xs text-neutral-500 dark:text-neutral-400 font-tiktok;
266
+ }
267
+
268
+ /* Button Toggle - A fancier UI for grouped checkboxes or radio buttons */
269
+ .form-input-button-toggle {
270
+ @apply hidden;
271
+
272
+ + label {
273
+ @apply inline-flex items-center gap-1.5 justify-center px-3 py-1.5 text-sm rounded-full transition-all duration-200 cursor-pointer select-none font-medium bg-white shadow-xs outline-1 outline-neutral-300/90 text-neutral-900 hover:bg-neutral-100 focus:outline-neutral-300/90 dark:bg-neutral-800 dark:text-neutral-100 dark:hover:bg-neutral-950 shadow-neutral-300/20 dark:outline-neutral-600/90 dark:hover:outline-neutral-600 dark:shadow-none font-tiktok;
274
+ }
275
+
276
+ &:checked + label {
277
+ @apply text-neutral-800 bg-neutral-200/50 hover:bg-neutral-200 hover:outline-neutral-400/70 dark:bg-neutral-900 dark:text-neutral-50 dark:hover:bg-neutral-950 dark:focus:ring-neutral-500/30;
278
+ }
279
+
280
+ &:disabled + label {
281
+ @apply opacity-50 cursor-not-allowed;
282
+ }
283
+
284
+ &:focus + label {
285
+ @apply ring-4 ring-neutral-500/10 dark:ring-neutral-500/30;
286
+ }
287
+ }
288
+
289
+ /* Button Toggle variants */
290
+ .form-input-button-toggle-sm {
291
+ + label {
292
+ @apply px-2.5 py-1 text-xs;
293
+ }
294
+ }
295
+
296
+ .form-input-button-toggle-lg {
297
+ + label {
298
+ @apply px-6 py-3 text-base;
299
+ }
300
+ }
301
+
302
+ .form-input-button-toggle-ghost {
303
+ + label {
304
+ @apply bg-transparent text-neutral-700 hover:bg-neutral-100 focus:outline-none focus:ring-4 focus:ring-neutral-500/20 dark:text-neutral-100 dark:hover:bg-neutral-700 font-tiktok;
305
+ }
306
+
307
+ &:checked + label {
308
+ @apply text-white bg-neutral-900 hover:bg-neutral-950 focus:outline-none focus:ring-4 focus:ring-neutral-600/20 dark:bg-neutral-900 dark:border dark:border-neutral-600/80 dark:text-neutral-50 dark:hover:bg-neutral-950 dark:hover:shadow-sm dark:focus:ring-neutral-500/30;
309
+ }
310
+ }
311
+
312
+ .form-input-button-toggle-muted {
313
+ + label {
314
+ @apply shadow-xs bg-neutral-100 text-neutral-700 hover:bg-neutral-200 focus:outline-none focus:ring-4 focus:ring-neutral-500/20 dark:bg-neutral-700 dark:text-neutral-100 dark:hover:bg-neutral-600 outline-1 outline-neutral-300/90 dark:outline-neutral-700/90 dark:bg-neutral-800 shadow-neutral-300/20 font-tiktok;
315
+ }
316
+
317
+ &:checked + label {
318
+ @apply text-white bg-neutral-900 hover:bg-neutral-950 focus:outline-none focus:ring-4 focus:ring-neutral-600/20 dark:bg-neutral-900 dark:border dark:border-neutral-600/80 dark:text-neutral-50 dark:hover:bg-neutral-950 dark:hover:shadow-sm dark:focus:ring-neutral-500/30;
319
+ }
320
+ }
321
+ }
@@ -0,0 +1,15 @@
1
+ /* Sidebar state classes */
2
+ .sidebar-expanded .sidebar-collapsed-only {
3
+ display: none;
4
+ }
5
+
6
+ .sidebar-collapsed .sidebar-chat-history,
7
+ .sidebar-collapsed .sidebar-expanded-only {
8
+ display: none;
9
+ }
10
+
11
+ .sidebar-collapsed {
12
+ justify-content: start;
13
+ align-items: center;
14
+ flex: none;
15
+ }
@@ -0,0 +1,24 @@
1
+ const execSync = require("child_process").execSync;
2
+ const outputRailsUI = execSync("bundle show railsui", { encoding: "utf-8" });
3
+ const rails_ui_path = outputRailsUI.trim() + "/**/*.rb";
4
+ const rails_ui_template_path = outputRailsUI.trim() + "/**/*.html.erb";
5
+
6
+ module.exports = {
7
+ content: [
8
+ "./lib/generators/templates/**/*.html.erb.tt",
9
+ "./config/initializers/railsui_icon.rb",
10
+ rails_ui_path,
11
+ rails_ui_template_path,
12
+ ],
13
+ theme: {
14
+ extend: {},
15
+ },
16
+ plugins: [
17
+ function ({ addVariant }) {
18
+ addVariant("sidebar-collapsed", ".sidebar-collapsed &", {
19
+ // For direct descendants inside `.sidebar-collapsed`
20
+ respectImportant: false,
21
+ });
22
+ },
23
+ ],
24
+ };
@@ -0,0 +1,77 @@
1
+ @theme {
2
+ --font-tiktok: "TikTok Sans", sans-serif;
3
+ --font-mono:
4
+ "IBM Plex Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono",
5
+ Consolas, "Courier New", monospace;
6
+
7
+ --animate-fade-in: fade-in 0.3s ease-out;
8
+ --animate-slide-up: slide-up 0.3s ease-out;
9
+ --animate-pulse-subtle: pulse-subtle 2s ease-in-out infinite;
10
+
11
+ /* Ken burns effect on auth pages */
12
+ --animate-auth-ambient: auth-ambient 20s ease-in-out infinite;
13
+
14
+ @keyframes fade-in {
15
+ 0% {
16
+ opacity: 0;
17
+ }
18
+ 100% {
19
+ opacity: 1;
20
+ }
21
+ }
22
+
23
+ @keyframes slide-up {
24
+ 0% {
25
+ transform: translateY(10px);
26
+ opacity: 0;
27
+ }
28
+ 100% {
29
+ transform: translateY(0);
30
+ opacity: 1;
31
+ }
32
+ }
33
+
34
+ @keyframes pulse-subtle {
35
+ 0%,
36
+ 100% {
37
+ opacity: 1;
38
+ }
39
+ 50% {
40
+ opacity: 0.8;
41
+ }
42
+ }
43
+
44
+ @keyframes auth-ambient {
45
+ 0%,
46
+ 100% {
47
+ transform: scale(1.05) translate(0px, 0px);
48
+ rotate: 0deg;
49
+ }
50
+ 25% {
51
+ transform: scale(1.08) translate(-2px, -1px);
52
+ rotate: 1deg;
53
+ }
54
+ 50% {
55
+ transform: scale(1.06) translate(1px, -2px);
56
+ rotate: 2deg;
57
+ }
58
+ 75% {
59
+ transform: scale(1.07) translate(-1px, 1px);
60
+ rotate: 1deg;
61
+ }
62
+ }
63
+ }
64
+
65
+ @layer base {
66
+ *,
67
+ ::after,
68
+ ::before,
69
+ ::backdrop,
70
+ ::file-selector-button {
71
+ border-color: var(--color-neutral-200, currentColor);
72
+ }
73
+ }
74
+
75
+ @plugin "@tailwindcss/typography";
76
+ /* Keep: Include Rails UI content paths */
77
+ @config "../../stylesheets/railsui/tailwind.config.js";
@@ -0,0 +1,47 @@
1
+ @utility h1 {
2
+ @apply text-5xl font-normal text-neutral-800 dark:text-neutral-50 font-tiktok tracking-tight;
3
+ }
4
+
5
+ @utility h2 {
6
+ @apply text-4xl font-normal text-neutral-800 dark:text-neutral-50 font-tiktok tracking-tight;
7
+ }
8
+
9
+ @utility h3 {
10
+ @apply text-2xl font-semibold text-neutral-800 dark:text-neutral-50 tracking-tight font-tiktok;
11
+ }
12
+
13
+ @utility h4 {
14
+ @apply text-xl font-semibold text-neutral-800 dark:text-neutral-50 tracking-tight font-tiktok;
15
+ }
16
+
17
+ @utility h5 {
18
+ @apply text-lg font-semibold text-neutral-800 dark:text-neutral-50 tracking-tight font-tiktok;
19
+ }
20
+
21
+ @utility h6 {
22
+ @apply text-base font-semibold text-neutral-800 dark:text-neutral-50 tracking-tight font-tiktok;
23
+ }
24
+
25
+ @utility display-1 {
26
+ @apply font-normal leading-tight md:text-9xl text-7xl [text-wrap:balance] font-tiktok tracking-tight;
27
+ }
28
+
29
+ @utility display-2 {
30
+ @apply text-6xl font-normal leading-tight md:text-8xl [text-wrap:balance] font-tiktok tracking-tight;
31
+ }
32
+
33
+ @utility display-3 {
34
+ @apply text-6xl font-normal leading-tight md:text-7xl [text-wrap:balance] font-tiktok tracking-tight;
35
+ }
36
+
37
+ @utility display-4 {
38
+ @apply text-5xl font-normal leading-tight md:text-6xl [text-wrap:balance] font-tiktok tracking-tight;
39
+ }
40
+
41
+ @utility display-5 {
42
+ @apply text-4xl font-normal leading-tight md:text-5xl [text-wrap:balance] font-tiktok tracking-tight;
43
+ }
44
+
45
+ @utility display-6 {
46
+ @apply text-3xl font-medium leading-tight md:text-4xl [text-wrap:balance] font-tiktok tracking-tight;
47
+ }
@@ -0,0 +1,31 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>
5
+ <%= Railsui.config.application_name || "Rails UI" %>
6
+ </title>
7
+ <meta charset="UTF-8" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <meta name="apple-mobile-web-app-capable" content="yes">
10
+
11
+ <%= csrf_meta_tags %>
12
+ <%= csp_meta_tag %>
13
+
14
+ <%= yield :head %>
15
+
16
+ <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
17
+ <%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
18
+
19
+ <%= railsui_head %>
20
+ </head>
21
+
22
+ <body class="<%= railsui_body_classes %>" data-controller="search railsui-modal">
23
+ <%= render "rui/shared/flash" %>
24
+
25
+ <%= yield %>
26
+
27
+ <%= render "rui/shared/footer" %>
28
+ <%= render "rui/shared/settings/modal" %>
29
+ <%= railsui_launcher if Rails.env.development? %>
30
+ </body>
31
+ </html
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>
5
+ <%= Railsui.config.application_name || "Rails UI" %>
6
+ </title>
7
+ <meta charset="UTF-8" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <meta name="apple-mobile-web-app-capable" content="yes">
10
+
11
+ <%= csrf_meta_tags %>
12
+ <%= csp_meta_tag %>
13
+
14
+ <%= yield :head %>
15
+
16
+ <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
17
+ <%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
18
+
19
+ <%= railsui_head %>
20
+ </head>
21
+
22
+ <body class="<%= railsui_body_classes %>" data-controller="search railsui-modal">
23
+ <%= render "rui/shared/flash" %>
24
+
25
+ <%= yield %>
26
+
27
+ <%= render "rui/shared/settings/modal" %>
28
+ <%= railsui_launcher if Rails.env.development? %>
29
+ </body>
30
+ </html>
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>
5
+ <%= Railsui.config.application_name || "Rails UI" %>
6
+ </title>
7
+ <meta charset="UTF-8" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
+ <meta name="apple-mobile-web-app-capable" content="yes">
10
+
11
+ <%= csrf_meta_tags %>
12
+ <%= csp_meta_tag %>
13
+
14
+ <%= yield :head %>
15
+
16
+ <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
17
+ <%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
18
+
19
+ <%= railsui_head %>
20
+ </head>
21
+
22
+ <body class="<%= railsui_body_classes %>">
23
+ <div class="flex min-h-screen bg-white dark:bg-neutral-900">
24
+ <%= render "rui/shared/flash" %>
25
+ <div class="flex items-center justify-center w-full px-6 lg:w-5/12">
26
+ <div class="w-full max-w-sm space-y-8">
27
+ <div class="flex flex-col items-center justify-center gap-4">
28
+ <%= link_to root_path, class: "flex items-center gap-2.5 shrink-0" do %>
29
+ <!-- Corgie logo -->
30
+ <%= icon "logo.svg", custom_path: "/railsui/logo.svg", class: "size-6 fill-current", variant: :solid %>
31
+
32
+ <span class="h4"><%= Railsui.config.application_name || "Corgie" %></span>
33
+ <% end %>
34
+
35
+ <% if content_for?(:title) %>
36
+ <p class="text-neutral-500 dark:text-neutral-400">
37
+ <%= yield :title %>
38
+ </p>
39
+ <% end %>
40
+ </div>
41
+ <%= yield %>
42
+ </div>
43
+ </div>
44
+ <div class="relative hidden overflow-hidden lg:flex lg:w-7/12 bg-neutral-950">
45
+ <%= 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" %>
46
+ </div>
47
+ </div>
48
+ <%= railsui_launcher if Rails.env.development? %>
49
+ </body>
50
+ </html>