inline_forms 8.1.20 → 8.1.40

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 (404) hide show
  1. checksums.yaml +4 -4
  2. data/.forgejo/workflows/ci.yml +63 -0
  3. data/.forgejo/workflows/full-gate.yml +75 -0
  4. data/.gitignore +4 -3
  5. data/.rubocop.yml +30 -0
  6. data/.rubocop_todo.yml +151 -0
  7. data/CHANGELOG.md +267 -0
  8. data/Gemfile +14 -2
  9. data/README.rdoc +23 -6
  10. data/Rakefile +2 -2
  11. data/app/assets/fonts/opensans-v44-latin-italic.woff2 +0 -0
  12. data/app/assets/fonts/opensans-v44-latin-regular.woff2 +0 -0
  13. data/app/assets/javascripts/inline_forms/inline_forms.js +30 -43
  14. data/app/assets/stylesheets/inline_forms/_foundation_icons.scss +6 -12
  15. data/app/assets/stylesheets/inline_forms/_theme.scss +134 -0
  16. data/app/assets/stylesheets/inline_forms/devise.scss +14 -13
  17. data/app/assets/stylesheets/inline_forms/foundation_and_overrides.scss +4 -0
  18. data/app/assets/stylesheets/inline_forms/inline_forms.scss +59 -68
  19. data/app/assets/stylesheets/inline_forms_fonts.css.erb +39 -0
  20. data/app/controllers/inline_forms_application_controller.rb +8 -4
  21. data/app/controllers/inline_forms_controller.rb +73 -14
  22. data/app/helpers/inline_forms_helper.rb +58 -15
  23. data/app/models/concerns/inline_forms/soft_deletable.rb +11 -12
  24. data/app/validators/curacao_id_number_validator.rb +5 -6
  25. data/app/validators/is_curacao_phone_validator.rb +2 -3
  26. data/app/validators/is_email_address_validator.rb +3 -3
  27. data/app/validators/must_be_a_value_validator.rb +6 -6
  28. data/app/views/inline_forms/_show.html.erb +1 -1
  29. data/app/views/layouts/application.html.erb +6 -3
  30. data/app/views/layouts/devise.html.erb +1 -0
  31. data/app/views/layouts/inline_forms.html.erb +7 -4
  32. data/archived/README.md +3 -0
  33. data/archived/form_elements/ckeditor/README.md +26 -0
  34. data/archived/form_elements/dns_records/README.md +25 -0
  35. data/archived/form_elements/question_list/README.md +25 -0
  36. data/inline_forms.gemspec +8 -7
  37. data/lib/generators/inline_forms_attribute_overrides.rb +3 -2
  38. data/lib/generators/templates/application_record.rb +1 -1
  39. data/lib/inline_forms/archived_form_elements.rb +31 -8
  40. data/lib/inline_forms/form_element_from_callee.rb +1 -0
  41. data/lib/inline_forms/form_element_registry.rb +32 -34
  42. data/lib/inline_forms/form_elements/color_field_helper.rb +44 -0
  43. data/lib/inline_forms/form_elements/date_helper.rb +4 -1
  44. data/lib/inline_forms/form_elements/dropdown_with_other_helper.rb +25 -113
  45. data/lib/inline_forms/form_elements/month_year_picker_helper.rb +13 -2
  46. data/lib/inline_forms/form_elements/multi_image_field_helper.rb +18 -6
  47. data/lib/inline_forms/form_elements/slider_with_values_helper.rb +31 -64
  48. data/lib/inline_forms/form_elements/time_helper.rb +3 -1
  49. data/lib/inline_forms/gem_files.rb +1 -0
  50. data/lib/inline_forms/tabs.rb +175 -0
  51. data/lib/inline_forms/turbo_tabs_builder.rb +20 -13
  52. data/lib/inline_forms/version.rb +2 -1
  53. data/lib/inline_forms.rb +59 -46
  54. data/test/archived_form_elements_test.rb +62 -2
  55. data/test/dummy/app/controllers/application_controller.rb +24 -0
  56. data/test/dummy/app/controllers/machines_controller.rb +4 -0
  57. data/test/dummy/app/controllers/parts_controller.rb +4 -0
  58. data/test/dummy/app/controllers/widgets_controller.rb +4 -0
  59. data/test/dummy/app/helpers/application_helper.rb +13 -0
  60. data/test/dummy/app/models/application_record.rb +26 -0
  61. data/test/dummy/app/models/kind.rb +8 -0
  62. data/test/dummy/app/models/machine.rb +23 -0
  63. data/test/dummy/app/models/part.rb +16 -0
  64. data/test/dummy/app/models/widget.rb +39 -0
  65. data/test/dummy/app/views/_inline_forms_tabs.html.erb +40 -0
  66. data/test/dummy/config/application.rb +34 -0
  67. data/test/dummy/config/database.yml +3 -0
  68. data/test/dummy/config/environment.rb +5 -0
  69. data/test/dummy/config/initializers/inline_forms.rb +6 -0
  70. data/test/dummy/config/initializers/paper_trail_yaml_safe_load.rb +28 -0
  71. data/test/dummy/config/routes.rb +22 -0
  72. data/test/form_element_from_callee_test.rb +2 -2
  73. data/test/integration/inline_forms_crud_test.rb +141 -0
  74. data/test/integration/legacy_elements_test.rb +42 -0
  75. data/test/integration/native_inputs_test.rb +138 -0
  76. data/test/integration/open_after_create_test.rb +85 -0
  77. data/test/integration_test_helper.rb +80 -0
  78. data/test/plain_text_configuration_test.rb +3 -3
  79. data/test/tabs_test.rb +98 -0
  80. data/test/user_model_config_test.rb +1 -0
  81. data/vendor/assets/javascripts/trix.min.js +7 -0
  82. data/vendor/assets/stylesheets/trix.css +470 -0
  83. metadata +66 -322
  84. data/app/assets/images/jquery-ui/animated-overlay.gif +0 -0
  85. data/app/assets/images/jquery-ui/ui-bg_diagonal-maze_20_6e4f1c_10x10.png +0 -0
  86. data/app/assets/images/jquery-ui/ui-bg_diagonal-maze_40_000000_10x10.png +0 -0
  87. data/app/assets/images/jquery-ui/ui-bg_diagonals-medium_20_d34d17_40x40.png +0 -0
  88. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
  89. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_25_c5ddfc_40x40.png +0 -0
  90. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_40_db4865_40x40.png +0 -0
  91. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_262626_40x40.png +0 -0
  92. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_93c3cd_40x40.png +0 -0
  93. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_ff3853_40x40.png +0 -0
  94. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_75_ccd232_40x40.png +0 -0
  95. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_15_0b3e6f_40x40.png +0 -0
  96. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
  97. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  98. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  99. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_20_e69700_40x40.png +0 -0
  100. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_22_1484e6_40x40.png +0 -0
  101. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_26_2293f7_40x40.png +0 -0
  102. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_75_f3d8d8_40x40.png +0 -0
  103. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_8_333333_40x40.png +0 -0
  104. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_90_eeeeee_40x40.png +0 -0
  105. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_95_ffdc2e_40x40.png +0 -0
  106. data/app/assets/images/jquery-ui/ui-bg_diamond_10_4f4221_10x8.png +0 -0
  107. data/app/assets/images/jquery-ui/ui-bg_diamond_20_372806_10x8.png +0 -0
  108. data/app/assets/images/jquery-ui/ui-bg_diamond_25_675423_10x8.png +0 -0
  109. data/app/assets/images/jquery-ui/ui-bg_diamond_25_d5ac5d_10x8.png +0 -0
  110. data/app/assets/images/jquery-ui/ui-bg_diamond_8_261803_10x8.png +0 -0
  111. data/app/assets/images/jquery-ui/ui-bg_diamond_8_443113_10x8.png +0 -0
  112. data/app/assets/images/jquery-ui/ui-bg_dots-medium_30_0b58a2_4x4.png +0 -0
  113. data/app/assets/images/jquery-ui/ui-bg_dots-medium_80_ffff38_4x4.png +0 -0
  114. data/app/assets/images/jquery-ui/ui-bg_dots-small_20_333333_2x2.png +0 -0
  115. data/app/assets/images/jquery-ui/ui-bg_dots-small_30_a32d00_2x2.png +0 -0
  116. data/app/assets/images/jquery-ui/ui-bg_dots-small_35_35414f_2x2.png +0 -0
  117. data/app/assets/images/jquery-ui/ui-bg_dots-small_40_00498f_2x2.png +0 -0
  118. data/app/assets/images/jquery-ui/ui-bg_dots-small_65_a6a6a6_2x2.png +0 -0
  119. data/app/assets/images/jquery-ui/ui-bg_fine-grain_10_eceadf_60x60.png +0 -0
  120. data/app/assets/images/jquery-ui/ui-bg_fine-grain_10_f8f7f6_60x60.png +0 -0
  121. data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_eceadf_60x60.png +0 -0
  122. data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_f7f3de_60x60.png +0 -0
  123. data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_ffffff_60x60.png +0 -0
  124. data/app/assets/images/jquery-ui/ui-bg_fine-grain_65_654b24_60x60.png +0 -0
  125. data/app/assets/images/jquery-ui/ui-bg_fine-grain_68_b83400_60x60.png +0 -0
  126. data/app/assets/images/jquery-ui/ui-bg_flat_0_303030_40x100.png +0 -0
  127. data/app/assets/images/jquery-ui/ui-bg_flat_0_333333_40x100.png +0 -0
  128. data/app/assets/images/jquery-ui/ui-bg_flat_0_4c4c4c_40x100.png +0 -0
  129. data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  130. data/app/assets/images/jquery-ui/ui-bg_flat_0_e69700_40x100.png +0 -0
  131. data/app/assets/images/jquery-ui/ui-bg_flat_0_e6b900_40x100.png +0 -0
  132. data/app/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  133. data/app/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
  134. data/app/assets/images/jquery-ui/ui-bg_flat_15_cd0a0a_40x100.png +0 -0
  135. data/app/assets/images/jquery-ui/ui-bg_flat_30_cccccc_40x100.png +0 -0
  136. data/app/assets/images/jquery-ui/ui-bg_flat_40_292929_40x100.png +0 -0
  137. data/app/assets/images/jquery-ui/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  138. data/app/assets/images/jquery-ui/ui-bg_flat_55_994d53_40x100.png +0 -0
  139. data/app/assets/images/jquery-ui/ui-bg_flat_55_999999_40x100.png +0 -0
  140. data/app/assets/images/jquery-ui/ui-bg_flat_55_c0402a_40x100.png +0 -0
  141. data/app/assets/images/jquery-ui/ui-bg_flat_55_eeeeee_40x100.png +0 -0
  142. data/app/assets/images/jquery-ui/ui-bg_flat_55_fafafa_40x100.png +0 -0
  143. data/app/assets/images/jquery-ui/ui-bg_flat_55_fbec88_40x100.png +0 -0
  144. data/app/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  145. data/app/assets/images/jquery-ui/ui-bg_flat_65_ffffff_40x100.png +0 -0
  146. data/app/assets/images/jquery-ui/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
  147. data/app/assets/images/jquery-ui/ui-bg_flat_75_ba9217_40x100.png +0 -0
  148. data/app/assets/images/jquery-ui/ui-bg_flat_75_ddd4b0_40x100.png +0 -0
  149. data/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  150. data/app/assets/images/jquery-ui/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
  151. data/app/assets/images/jquery-ui/ui-bg_glass_100_f5f0e5_1x400.png +0 -0
  152. data/app/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  153. data/app/assets/images/jquery-ui/ui-bg_glass_100_f8f8f8_1x400.png +0 -0
  154. data/app/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  155. data/app/assets/images/jquery-ui/ui-bg_glass_15_5f391b_1x400.png +0 -0
  156. data/app/assets/images/jquery-ui/ui-bg_glass_20_555555_1x400.png +0 -0
  157. data/app/assets/images/jquery-ui/ui-bg_glass_25_cb842e_1x400.png +0 -0
  158. data/app/assets/images/jquery-ui/ui-bg_glass_35_dddddd_1x400.png +0 -0
  159. data/app/assets/images/jquery-ui/ui-bg_glass_40_0078a3_1x400.png +0 -0
  160. data/app/assets/images/jquery-ui/ui-bg_glass_40_0a0a0a_1x400.png +0 -0
  161. data/app/assets/images/jquery-ui/ui-bg_glass_40_111111_1x400.png +0 -0
  162. data/app/assets/images/jquery-ui/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  163. data/app/assets/images/jquery-ui/ui-bg_glass_45_0078ae_1x400.png +0 -0
  164. data/app/assets/images/jquery-ui/ui-bg_glass_50_3baae3_1x400.png +0 -0
  165. data/app/assets/images/jquery-ui/ui-bg_glass_55_1c1c1c_1x400.png +0 -0
  166. data/app/assets/images/jquery-ui/ui-bg_glass_55_f1fbe5_1x400.png +0 -0
  167. data/app/assets/images/jquery-ui/ui-bg_glass_55_f8da4e_1x400.png +0 -0
  168. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
  169. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf8ee_1x400.png +0 -0
  170. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  171. data/app/assets/images/jquery-ui/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
  172. data/app/assets/images/jquery-ui/ui-bg_glass_60_000000_1x400.png +0 -0
  173. data/app/assets/images/jquery-ui/ui-bg_glass_60_eeeeee_1x400.png +0 -0
  174. data/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  175. data/app/assets/images/jquery-ui/ui-bg_glass_70_ede4d4_1x400.png +0 -0
  176. data/app/assets/images/jquery-ui/ui-bg_glass_75_79c9ec_1x400.png +0 -0
  177. data/app/assets/images/jquery-ui/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  178. data/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
  179. data/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  180. data/app/assets/images/jquery-ui/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
  181. data/app/assets/images/jquery-ui/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  182. data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  183. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_100_ece8da_500x100.png +0 -0
  184. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_16_121212_500x100.png +0 -0
  185. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_20_111111_500x100.png +0 -0
  186. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_20_1c160d_500x100.png +0 -0
  187. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
  188. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_25_453326_500x100.png +0 -0
  189. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_30_3d3644_500x100.png +0 -0
  190. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_30_44372c_500x100.png +0 -0
  191. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  192. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_45_817865_500x100.png +0 -0
  193. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_45_e14f1c_500x100.png +0 -0
  194. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_50_6eac2c_500x100.png +0 -0
  195. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_55_000000_500x100.png +0 -0
  196. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  197. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_60_fece2f_500x100.png +0 -0
  198. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_70_ffdd57_500x100.png +0 -0
  199. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_75_2191c0_500x100.png +0 -0
  200. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_85_9fda58_500x100.png +0 -0
  201. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_90_fff9e5_500x100.png +0 -0
  202. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_95_f6ecd5_500x100.png +0 -0
  203. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_eeeeee_1x100.png +0 -0
  204. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
  205. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f4f0ec_1x100.png +0 -0
  206. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f5f3e5_1x100.png +0 -0
  207. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f6f6f6_1x100.png +0 -0
  208. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
  209. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_fafaf4_1x100.png +0 -0
  210. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_15_459e00_1x100.png +0 -0
  211. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_15_888888_1x100.png +0 -0
  212. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_20_0972a5_1x100.png +0 -0
  213. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_30_285c00_1x100.png +0 -0
  214. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_40_aaaaaa_1x100.png +0 -0
  215. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_55_555555_1x100.png +0 -0
  216. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
  217. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
  218. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_75_f5f5b5_1x100.png +0 -0
  219. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_95_cccccc_1x100.png +0 -0
  220. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_dcd9de_1x100.png +0 -0
  221. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
  222. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_eae6ea_1x100.png +0 -0
  223. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  224. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  225. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_f9f9f9_1x100.png +0 -0
  226. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_feeebd_1x100.png +0 -0
  227. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_15_cc0000_1x100.png +0 -0
  228. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_20_201913_1x100.png +0 -0
  229. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_20_619226_1x100.png +0 -0
  230. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  231. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_30273a_1x100.png +0 -0
  232. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_67b021_1x100.png +0 -0
  233. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
  234. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_33_003147_1x100.png +0 -0
  235. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_33_3a8104_1x100.png +0 -0
  236. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_35_222222_1x100.png +0 -0
  237. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_35_adadad_1x100.png +0 -0
  238. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_44_444444_1x100.png +0 -0
  239. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_45_5f5964_1x100.png +0 -0
  240. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_4eb305_1x100.png +0 -0
  241. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_aaaaaa_1x100.png +0 -0
  242. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  243. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_60_4ca20b_1x100.png +0 -0
  244. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_60_dddddd_1x100.png +0 -0
  245. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  246. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  247. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  248. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
  249. data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_eeeeee_1x100.png +0 -0
  250. data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  251. data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  252. data/app/assets/images/jquery-ui/ui-bg_inset-hard_45_cd0a0a_1x100.png +0 -0
  253. data/app/assets/images/jquery-ui/ui-bg_inset-hard_55_ffeb80_1x100.png +0 -0
  254. data/app/assets/images/jquery-ui/ui-bg_inset-hard_75_999999_1x100.png +0 -0
  255. data/app/assets/images/jquery-ui/ui-bg_inset-soft_100_f4f0ec_1x100.png +0 -0
  256. data/app/assets/images/jquery-ui/ui-bg_inset-soft_10_201913_1x100.png +0 -0
  257. data/app/assets/images/jquery-ui/ui-bg_inset-soft_10_285c00_1x100.png +0 -0
  258. data/app/assets/images/jquery-ui/ui-bg_inset-soft_15_121212_1x100.png +0 -0
  259. data/app/assets/images/jquery-ui/ui-bg_inset-soft_15_2b2922_1x100.png +0 -0
  260. data/app/assets/images/jquery-ui/ui-bg_inset-soft_25_000000_1x100.png +0 -0
  261. data/app/assets/images/jquery-ui/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
  262. data/app/assets/images/jquery-ui/ui-bg_inset-soft_30_ffffff_1x100.png +0 -0
  263. data/app/assets/images/jquery-ui/ui-bg_inset-soft_50_c9c9c9_1x100.png +0 -0
  264. data/app/assets/images/jquery-ui/ui-bg_loop_25_000000_21x21.png +0 -0
  265. data/app/assets/images/jquery-ui/ui-bg_white-lines_85_f7f7ba_40x100.png +0 -0
  266. data/app/assets/images/jquery-ui/ui-icons_000000_256x240.png +0 -0
  267. data/app/assets/images/jquery-ui/ui-icons_004276_256x240.png +0 -0
  268. data/app/assets/images/jquery-ui/ui-icons_00498f_256x240.png +0 -0
  269. data/app/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  270. data/app/assets/images/jquery-ui/ui-icons_0078ae_256x240.png +0 -0
  271. data/app/assets/images/jquery-ui/ui-icons_056b93_256x240.png +0 -0
  272. data/app/assets/images/jquery-ui/ui-icons_070603_256x240.png +0 -0
  273. data/app/assets/images/jquery-ui/ui-icons_0a82eb_256x240.png +0 -0
  274. data/app/assets/images/jquery-ui/ui-icons_0b54d5_256x240.png +0 -0
  275. data/app/assets/images/jquery-ui/ui-icons_1f1f1f_256x240.png +0 -0
  276. data/app/assets/images/jquery-ui/ui-icons_217bc0_256x240.png +0 -0
  277. data/app/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
  278. data/app/assets/images/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
  279. data/app/assets/images/jquery-ui/ui-icons_2694e8_256x240.png +0 -0
  280. data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
  281. data/app/assets/images/jquery-ui/ui-icons_3383bb_256x240.png +0 -0
  282. data/app/assets/images/jquery-ui/ui-icons_3572ac_256x240.png +0 -0
  283. data/app/assets/images/jquery-ui/ui-icons_3d3d3d_256x240.png +0 -0
  284. data/app/assets/images/jquery-ui/ui-icons_3d80b3_256x240.png +0 -0
  285. data/app/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  286. data/app/assets/images/jquery-ui/ui-icons_469bdd_256x240.png +0 -0
  287. data/app/assets/images/jquery-ui/ui-icons_4b8e0b_256x240.png +0 -0
  288. data/app/assets/images/jquery-ui/ui-icons_4ca300_256x240.png +0 -0
  289. data/app/assets/images/jquery-ui/ui-icons_4eb305_256x240.png +0 -0
  290. data/app/assets/images/jquery-ui/ui-icons_5fa5e3_256x240.png +0 -0
  291. data/app/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
  292. data/app/assets/images/jquery-ui/ui-icons_6da8d5_256x240.png +0 -0
  293. data/app/assets/images/jquery-ui/ui-icons_70b2e1_256x240.png +0 -0
  294. data/app/assets/images/jquery-ui/ui-icons_72a7cf_256x240.png +0 -0
  295. data/app/assets/images/jquery-ui/ui-icons_72b42d_256x240.png +0 -0
  296. data/app/assets/images/jquery-ui/ui-icons_734d99_256x240.png +0 -0
  297. data/app/assets/images/jquery-ui/ui-icons_808080_256x240.png +0 -0
  298. data/app/assets/images/jquery-ui/ui-icons_847e71_256x240.png +0 -0
  299. data/app/assets/images/jquery-ui/ui-icons_888888_256x240.png +0 -0
  300. data/app/assets/images/jquery-ui/ui-icons_88a206_256x240.png +0 -0
  301. data/app/assets/images/jquery-ui/ui-icons_8DC262_256x240.png +0 -0
  302. data/app/assets/images/jquery-ui/ui-icons_8c291d_256x240.png +0 -0
  303. data/app/assets/images/jquery-ui/ui-icons_8d78a5_256x240.png +0 -0
  304. data/app/assets/images/jquery-ui/ui-icons_98d2fb_256x240.png +0 -0
  305. data/app/assets/images/jquery-ui/ui-icons_999999_256x240.png +0 -0
  306. data/app/assets/images/jquery-ui/ui-icons_9bcc60_256x240.png +0 -0
  307. data/app/assets/images/jquery-ui/ui-icons_9ccdfc_256x240.png +0 -0
  308. data/app/assets/images/jquery-ui/ui-icons_9fda58_256x240.png +0 -0
  309. data/app/assets/images/jquery-ui/ui-icons_a83300_256x240.png +0 -0
  310. data/app/assets/images/jquery-ui/ui-icons_a8a3ae_256x240.png +0 -0
  311. data/app/assets/images/jquery-ui/ui-icons_aaaaaa_256x240.png +0 -0
  312. data/app/assets/images/jquery-ui/ui-icons_add978_256x240.png +0 -0
  313. data/app/assets/images/jquery-ui/ui-icons_b83400_256x240.png +0 -0
  314. data/app/assets/images/jquery-ui/ui-icons_b8ec79_256x240.png +0 -0
  315. data/app/assets/images/jquery-ui/ui-icons_bbbbbb_256x240.png +0 -0
  316. data/app/assets/images/jquery-ui/ui-icons_bd7b00_256x240.png +0 -0
  317. data/app/assets/images/jquery-ui/ui-icons_c02669_256x240.png +0 -0
  318. data/app/assets/images/jquery-ui/ui-icons_c47a23_256x240.png +0 -0
  319. data/app/assets/images/jquery-ui/ui-icons_c98000_256x240.png +0 -0
  320. data/app/assets/images/jquery-ui/ui-icons_cb672b_256x240.png +0 -0
  321. data/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png +0 -0
  322. data/app/assets/images/jquery-ui/ui-icons_cccccc_256x240.png +0 -0
  323. data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
  324. data/app/assets/images/jquery-ui/ui-icons_d19405_256x240.png +0 -0
  325. data/app/assets/images/jquery-ui/ui-icons_d8e7f3_256x240.png +0 -0
  326. data/app/assets/images/jquery-ui/ui-icons_e0fdff_256x240.png +0 -0
  327. data/app/assets/images/jquery-ui/ui-icons_e1e463_256x240.png +0 -0
  328. data/app/assets/images/jquery-ui/ui-icons_e3ddc9_256x240.png +0 -0
  329. data/app/assets/images/jquery-ui/ui-icons_e8e2b5_256x240.png +0 -0
  330. data/app/assets/images/jquery-ui/ui-icons_e9cd86_256x240.png +0 -0
  331. data/app/assets/images/jquery-ui/ui-icons_eb990f_256x240.png +0 -0
  332. data/app/assets/images/jquery-ui/ui-icons_ebccce_256x240.png +0 -0
  333. data/app/assets/images/jquery-ui/ui-icons_ed9f26_256x240.png +0 -0
  334. data/app/assets/images/jquery-ui/ui-icons_ededed_256x240.png +0 -0
  335. data/app/assets/images/jquery-ui/ui-icons_eeeeee_256x240.png +0 -0
  336. data/app/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
  337. data/app/assets/images/jquery-ui/ui-icons_efec9f_256x240.png +0 -0
  338. data/app/assets/images/jquery-ui/ui-icons_f08000_256x240.png +0 -0
  339. data/app/assets/images/jquery-ui/ui-icons_f1fd86_256x240.png +0 -0
  340. data/app/assets/images/jquery-ui/ui-icons_f29a00_256x240.png +0 -0
  341. data/app/assets/images/jquery-ui/ui-icons_f2ec64_256x240.png +0 -0
  342. data/app/assets/images/jquery-ui/ui-icons_f35f07_256x240.png +0 -0
  343. data/app/assets/images/jquery-ui/ui-icons_f5e175_256x240.png +0 -0
  344. data/app/assets/images/jquery-ui/ui-icons_f7a50d_256x240.png +0 -0
  345. data/app/assets/images/jquery-ui/ui-icons_f9bd01_256x240.png +0 -0
  346. data/app/assets/images/jquery-ui/ui-icons_f9f2bd_256x240.png +0 -0
  347. data/app/assets/images/jquery-ui/ui-icons_fadc7a_256x240.png +0 -0
  348. data/app/assets/images/jquery-ui/ui-icons_fbc856_256x240.png +0 -0
  349. data/app/assets/images/jquery-ui/ui-icons_fbdb93_256x240.png +0 -0
  350. data/app/assets/images/jquery-ui/ui-icons_fcd113_256x240.png +0 -0
  351. data/app/assets/images/jquery-ui/ui-icons_fcdd4a_256x240.png +0 -0
  352. data/app/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  353. data/app/assets/images/jquery-ui/ui-icons_ff7519_256x240.png +0 -0
  354. data/app/assets/images/jquery-ui/ui-icons_ffcf29_256x240.png +0 -0
  355. data/app/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
  356. data/app/assets/images/jquery-ui/ui-icons_ffe180_256x240.png +0 -0
  357. data/app/assets/images/jquery-ui/ui-icons_ffeb33_256x240.png +0 -0
  358. data/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  359. data/app/assets/stylesheets/jquery_ui/jquery.ui.accordion.css.scss +0 -39
  360. data/app/assets/stylesheets/jquery_ui/jquery.ui.all.css.scss +0 -14
  361. data/app/assets/stylesheets/jquery_ui/jquery.ui.autocomplete.css.scss +0 -17
  362. data/app/assets/stylesheets/jquery_ui/jquery.ui.base.css.scss +0 -27
  363. data/app/assets/stylesheets/jquery_ui/jquery.ui.button.css.scss +0 -115
  364. data/app/assets/stylesheets/jquery_ui/jquery.ui.core.css.scss +0 -92
  365. data/app/assets/stylesheets/jquery_ui/jquery.ui.datepicker.css.scss +0 -179
  366. data/app/assets/stylesheets/jquery_ui/jquery.ui.dialog.css.scss +0 -70
  367. data/app/assets/stylesheets/jquery_ui/jquery.ui.menu.css.scss +0 -80
  368. data/app/assets/stylesheets/jquery_ui/jquery.ui.progressbar.css.scss +0 -29
  369. data/app/assets/stylesheets/jquery_ui/jquery.ui.resizable.css.scss +0 -79
  370. data/app/assets/stylesheets/jquery_ui/jquery.ui.selectable.css.scss +0 -16
  371. data/app/assets/stylesheets/jquery_ui/jquery.ui.slider.css.scss +0 -74
  372. data/app/assets/stylesheets/jquery_ui/jquery.ui.spinner.css.scss +0 -66
  373. data/app/assets/stylesheets/jquery_ui/jquery.ui.tabs.css.scss +0 -53
  374. data/app/assets/stylesheets/jquery_ui/jquery.ui.theme.css.scss +0 -408
  375. data/app/assets/stylesheets/jquery_ui/jquery.ui.tooltip.css.scss +0 -20
  376. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.base.css.scss +0 -78
  377. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.black-tie.css.scss +0 -80
  378. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.blitzer.css.scss +0 -80
  379. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.cupertino.css.scss +0 -80
  380. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.dark-hive.css.scss +0 -80
  381. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.dot-luv.css.scss +0 -80
  382. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.eggplant.css.scss +0 -80
  383. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.excite-bike.css.scss +0 -80
  384. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.flick.css.scss +0 -80
  385. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.hot-sneaks.css.scss +0 -80
  386. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.humanity.css.scss +0 -80
  387. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.le-frog.css.scss +0 -80
  388. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.mint-choc.css.scss +0 -80
  389. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.overcast.css.scss +0 -80
  390. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.pepper-grinder.css.scss +0 -80
  391. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.redmond.css.scss +0 -80
  392. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.smoothness.css.scss +0 -80
  393. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.south-street.css.scss +0 -80
  394. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.start.css.scss +0 -80
  395. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.sunny.css.scss +0 -80
  396. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.swanky-purse.css.scss +0 -80
  397. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.trontastic.css.scss +0 -80
  398. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.ui-darkness.css.scss +0 -80
  399. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.ui-lightness.css.scss +0 -80
  400. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.vader.css.scss +0 -80
  401. /data/{lib → archived/form_elements/ckeditor/lib}/inline_forms/form_elements/ckeditor_helper.rb +0 -0
  402. /data/{lib → archived/form_elements/ckeditor/lib}/inline_forms/form_elements/text_area_without_ckeditor_helper.rb +0 -0
  403. /data/{lib → archived/form_elements/dns_records/lib}/inline_forms/form_elements/dns_records_helper.rb +0 -0
  404. /data/{lib → archived/form_elements/question_list/lib}/inline_forms/form_elements/question_list_helper.rb +0 -0
@@ -1,8 +1,19 @@
1
1
  // inline_forms
2
- @import url(http://fonts.googleapis.com/css?family=Open+Sans:400,400italic);
3
- @import 'inline_forms/foundation_icons';
4
- @import '../jquery_ui/themes/jquery.ui.sunny.css.scss';
5
- @import '../jquery_ui/jquery.ui.all.css.scss';
2
+ // Open Sans @font-face lives in inline_forms_fonts.css.erb (self-hosted,
3
+ // Sprockets-served; linked from the layouts) — no external font CDN.
4
+ //
5
+ // Module-system status (8.1.24): `foundation_icons` is a self-contained
6
+ // partial and loads via @use. Everything else must stay on @import until
7
+ // the Foundation question is settled: foundation-rails 6.9 is @import-only
8
+ // internally and its settings globals ($body-background, rem-calc, ...)
9
+ // flow into foundation_and_overrides/theme/devise, which @use cannot
10
+ // replicate without a Foundation that ships a module API (it never will —
11
+ // the framework is unmaintained). See stuff/improvement-plan.md §1.
12
+ //
13
+ // jQuery UI SCSS (sunny theme + widget styles) was dropped in 8.1.26 along
14
+ // with the last jQuery UI widgets (native date/time/month/range/datalist
15
+ // inputs replaced them).
16
+ @use 'inline_forms/foundation_icons';
6
17
  @import 'foundation_and_overrides';
7
18
 
8
19
  // Foundation 6 makes `.row` a flex container (`display: flex`); a nested
@@ -20,7 +31,7 @@
20
31
  }
21
32
 
22
33
  .contain-to-grid {
23
- background-color: $body-background !important;
34
+ background-color: var(--if-color-body-bg) !important;
24
35
  }
25
36
 
26
37
  // Foundation 5 used to position .contain-to-grid.fixed at the top of the
@@ -65,15 +76,15 @@
65
76
  .menu > li > a {
66
77
  line-height: 45px;
67
78
  padding: 0 1rem;
68
- color: #FFFFFF;
79
+ color: var(--if-color-on-dark);
69
80
  }
70
81
  // F6 dropdown-menu paints the `::after` triangle indicator with
71
82
  // `border-color: $primary-color transparent ...` (default blue). The
72
83
  // app top bar is dark red, so the blue arrow next to "More" / "Admin"
73
84
  // looks broken; force the triangle to white to match the link text.
74
85
  .is-dropdown-submenu-parent > a::after {
75
- border-top-color: #FFFFFF;
76
- border-color: #FFFFFF transparent transparent;
86
+ border-top-color: var(--if-color-on-dark);
87
+ border-color: var(--if-color-on-dark) transparent transparent;
77
88
  }
78
89
  // F6 ships `.is-dropdown-submenu-parent > a { padding-right: 1.5rem }`
79
90
  // to reserve space for the `::after` triangle, but our `.menu > li > a`
@@ -99,7 +110,7 @@
99
110
  .menu-text,
100
111
  .menu-text h1,
101
112
  .menu-text h1 a {
102
- color: #FFFFFF;
113
+ color: var(--if-color-on-dark);
103
114
  }
104
115
  .menu-text h1 {
105
116
  margin: 0 !important;
@@ -135,38 +146,38 @@ input {
135
146
  }
136
147
 
137
148
  select {
138
- background-color: #fff8e0 !important;
149
+ background-color: var(--if-color-input-bg) !important;
139
150
  border: 0 !important;
140
151
  margin: 2px 0 !important;
141
152
  padding: 0;
142
153
 
143
154
  }
144
155
  select:hover, select:focus {
145
- background-color: lighten(#fff8e0, 2%) !important;
156
+ background-color: var(--if-color-input-bg-hover) !important;
146
157
  border: 0 !important;
147
158
  }
148
159
 
149
160
  #inline_forms_application_top_bar {
150
- background-color: #A3381E;
151
- color: #FFFFFF;
161
+ background-color: var(--if-color-primary);
162
+ color: var(--if-color-on-dark);
152
163
  &,
153
164
  .menu,
154
165
  .menu li,
155
166
  .menu a {
156
- background-color: #A3381E;
157
- color: #FFFFFF;
167
+ background-color: var(--if-color-primary);
168
+ color: var(--if-color-on-dark);
158
169
  }
159
170
  }
160
171
 
161
172
  #inline_forms_model_top_bar {
162
- background-color: #E1C150;
173
+ background-color: var(--if-color-secondary);
163
174
  padding-top: 45px;
164
175
  height: 90px;
165
176
  .top-bar-right,
166
177
  .menu,
167
178
  .menu li,
168
179
  .menu > li > a {
169
- background-color: #E1C150;
180
+ background-color: var(--if-color-secondary);
170
181
  }
171
182
  // F6 buttons (`.button`) and inputs (`input[type=text]`) ship with
172
183
  // different default heights -- buttons size to padding+line-height
@@ -192,8 +203,8 @@ select:hover, select:focus {
192
203
  margin: 0 !important;
193
204
  }
194
205
  .new_button {
195
- background-color: #E1C150;
196
- color: #B94C32;
206
+ background-color: var(--if-color-secondary);
207
+ color: var(--if-color-accent);
197
208
  font-size: 1.3rem;
198
209
  padding: 0 2rem 0 1rem;
199
210
  }
@@ -203,7 +214,7 @@ select:hover, select:focus {
203
214
  transition-property: color;
204
215
  }
205
216
  input[type=text]:hover, input[type=text]:focus {
206
- background-color: lighten(#fff8e0, 5%);
217
+ background-color: var(--if-color-input-bg-focus);
207
218
  -webkit-transition-property: background-color;
208
219
  transition-property: background-color;
209
220
  }
@@ -240,10 +251,10 @@ turbo-frame {
240
251
  margin: 0 auto !important;
241
252
  }
242
253
  .odd {
243
- background-color: #FBE38E;
254
+ background-color: var(--if-color-row-odd);
244
255
  }
245
256
  .even {
246
- background-color: #FBEEC1;
257
+ background-color: var(--if-color-row-even);
247
258
  }
248
259
  }
249
260
 
@@ -253,8 +264,8 @@ turbo-frame {
253
264
  font-weight: normal !important;
254
265
  }
255
266
  .row.form_element_header {
256
- border-top: 1px solid #B94C32;
257
- background-color: rgb(239, 202, 75);
267
+ border-top: 1px solid var(--if-color-accent);
268
+ background-color: var(--if-color-header-band);
258
269
  font-weight: normal !important;
259
270
  font-size: 1.3rem !important;
260
271
  }
@@ -292,17 +303,17 @@ turbo-frame {
292
303
  }
293
304
 
294
305
  .object_presentation {
295
- background-color: #B94C32;
306
+ background-color: var(--if-color-accent);
296
307
  color: white;
297
308
  .close_button {
298
- background-color: #B94C32;
309
+ background-color: var(--if-color-accent);
299
310
  font-size: 1.3rem;
300
311
  padding: 0 1rem 0 1rem;
301
312
  margin: 0;
302
313
  }
303
314
  .close_button:hover, .close_button:focus {
304
- background-color: #B94C32;
305
- color: #FBEEC1;
315
+ background-color: var(--if-color-accent);
316
+ color: var(--if-color-row-even);
306
317
  -webkit-transition-property: color;
307
318
  transition-property: color;
308
319
  }
@@ -314,8 +325,8 @@ turbo-frame {
314
325
  font-weight: normal !important;
315
326
  }
316
327
  .row.form_element_header {
317
- border-top: 1px solid #B94C32;
318
- background-color: rgb(239, 202, 75);
328
+ border-top: 1px solid var(--if-color-accent);
329
+ background-color: var(--if-color-header-band);
319
330
  font-weight: normal !important;
320
331
  font-size: 1.3rem !important;
321
332
  }
@@ -324,29 +335,29 @@ turbo-frame {
324
335
 
325
336
 
326
337
  .associated_auto_header {
327
- border-top: 1px solid #B94C32;
338
+ border-top: 1px solid var(--if-color-accent);
328
339
  .new_button {
329
- background-color: rgb(239, 202, 75);
340
+ background-color: var(--if-color-header-band);
330
341
  font-size: 1.5rem;
331
- color: #B94C32;
342
+ color: var(--if-color-accent);
332
343
  padding: 0 0.5rem 0 1rem;
333
344
  margin: 0;
334
345
  }
335
346
  .new_button:hover, .new_button:focus {
336
- background-color: rgb(239, 202, 75);
347
+ background-color: var(--if-color-header-band);
337
348
  color: white;
338
349
  -webkit-transition-property: color;
339
350
  transition-property: color;
340
351
  }
341
352
  .close_button {
342
- background-color: rgb(239, 202, 75);
353
+ background-color: var(--if-color-header-band);
343
354
  font-size: 1.5rem;
344
- color: #B94C32;
355
+ color: var(--if-color-accent);
345
356
  padding: 0 0.5rem 0 1rem;
346
357
  margin: 0;
347
358
  }
348
359
  .close_button:hover, .new_button:focus {
349
- background-color: rgb(239, 202, 75);
360
+ background-color: var(--if-color-header-band);
350
361
  color: white;
351
362
  -webkit-transition-property: color;
352
363
  transition-property: color;
@@ -370,14 +381,14 @@ turbo-frame {
370
381
  display: inline-block;
371
382
  }
372
383
  a:hover {
373
- color: #B94C32;
384
+ color: var(--if-color-accent);
374
385
  -webkit-transition-property: color;
375
386
  -webkit-transition-duration: 0.3s;
376
387
  transition-property: color;
377
388
  transition-duration: 0.3s;
378
389
  }
379
390
  em {
380
- color: #B94C32;
391
+ color: var(--if-color-accent);
381
392
  font-weight: bold;
382
393
  font-style: normal;
383
394
  }
@@ -387,32 +398,12 @@ turbo-frame {
387
398
  }
388
399
 
389
400
  .record_footer {
390
- background-color: rgb(239, 202, 75);
401
+ background-color: var(--if-color-header-band);
391
402
  height: 0.2em;
392
- border-bottom: 1px solid #B94C32;
403
+ border-bottom: 1px solid var(--if-color-accent);
393
404
  margin-bottom: 1.5em;
394
405
  }
395
406
 
396
- .custom-combobox {
397
- position: relative;
398
- display: inline-block;
399
- }
400
- .custom-combobox-toggle {
401
- position: absolute;
402
- top: 0;
403
- bottom: 0;
404
- margin-left: -1px;
405
- padding: 0;
406
- /* support: IE7 */
407
- *height: 1.7em;
408
- *top: 0.1em;
409
- }
410
- .custom-combobox-input {
411
- margin: 0;
412
- padding: 0.3em;
413
- }
414
-
415
-
416
407
  .column {
417
408
  padding-right: 0 !important;
418
409
  }
@@ -443,31 +434,31 @@ turbo-frame {
443
434
 
444
435
  .flash {
445
436
  padding: 0.3em;
446
- color: #A3381E;
437
+ color: var(--if-color-primary);
447
438
  font-size: 130%;
448
439
  font-weight: bold;
449
440
  line-height: 120%;
450
441
  background-color: white;
451
- border-top: 0.3em solid #fade7a;
442
+ border-top: 0.3em solid var(--if-color-flash-accent);
452
443
  }
453
444
 
454
445
  .error {
455
- color: #ffffff;
446
+ color: var(--if-color-on-dark);
456
447
  font-weight: bold;
457
- background-color: #a70f0f;
448
+ background-color: var(--if-color-error-bg);
458
449
  padding: 0.3em;
459
450
  margin-bottom: 0.5em;
460
451
  }
461
452
  .success {
462
- color: #ffffff;
453
+ color: var(--if-color-on-dark);
463
454
  font-weight: bold;
464
455
  border-bottom: 1px solid #cccccc;
465
- background-color: #4f8d0d;
456
+ background-color: var(--if-color-success-bg);
466
457
  padding: 0.3em;
467
458
  margin-bottom: 0.5em;
468
459
  }
469
460
 
470
- /* jQuery ui Slider 8 */
461
+ /* slider_with_values: native range/progress (8.1.26) */
471
462
  .slider {
472
463
  width: 300px;
473
464
  float: left;
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Self-hosted fonts for inline_forms, served through Sprockets (ERB) so
3
+ * asset_path emits correct digested URLs in every environment.
4
+ *
5
+ * - Open Sans v44 latin 400 / 400 italic: replaces the external
6
+ * `@import url(http://fonts.googleapis.com/...)` that lived in
7
+ * inline_forms.scss / devise.scss (insecure scheme + runtime third-party
8
+ * dependency). Files live in app/assets/fonts/.
9
+ * - Foundation Icons v3 (MIT, ZURB): the @font-face moved here from
10
+ * _foundation_icons.scss because the Dart Sass-built CSS is served from
11
+ * /assets/inline_forms/inline_forms.css, so its relative font reference
12
+ * resolved to /assets/inline_forms/foundation-icons.woff and 404'd; the
13
+ * fonts' real logical paths are flat (/assets/foundation-icons.*).
14
+ */
15
+
16
+ @font-face {
17
+ font-family: "Open Sans";
18
+ font-style: normal;
19
+ font-weight: 400;
20
+ font-display: swap;
21
+ src: url(<%= asset_path("opensans-v44-latin-regular.woff2") %>) format("woff2");
22
+ }
23
+
24
+ @font-face {
25
+ font-family: "Open Sans";
26
+ font-style: italic;
27
+ font-weight: 400;
28
+ font-display: swap;
29
+ src: url(<%= asset_path("opensans-v44-latin-italic.woff2") %>) format("woff2");
30
+ }
31
+
32
+ @font-face {
33
+ font-family: "foundation-icons";
34
+ src: url(<%= asset_path("foundation-icons.woff") %>) format("woff"),
35
+ url(<%= asset_path("foundation-icons.ttf") %>) format("truetype"),
36
+ url(<%= asset_path("foundation-icons.svg") %>#fontcustom) format("svg");
37
+ font-weight: normal;
38
+ font-style: normal;
39
+ }
@@ -1,4 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
+
2
3
  class InlineFormsApplicationController < ActionController::Base
3
4
  protect_from_forgery
4
5
  # `layout 'devise' if :devise_controller?` was wrong: `:devise_controller?` is a
@@ -7,10 +8,14 @@ class InlineFormsApplicationController < ActionController::Base
7
8
  # defaults to `layouts/inline_forms` (actions may still override via `render`).
8
9
  layout ->(controller) { controller.devise_controller? ? "devise" : "inline_forms" }
9
10
 
10
- # limit available locales by setting this. Override in applicaton_controller.
11
- I18n.available_locales = [ :en, :nl, :pp ]
11
+ # NOTE (8.1.31): this class no longer clobbers I18n.available_locales.
12
+ # It used to hard-assign `[ :en, :nl, :pp ]` at class-load time, which ran
13
+ # *after* the host app's initializers in development (classes load lazily)
14
+ # and silently stomped any `config.i18n.available_locales` the app set.
15
+ # Configure available locales in the app: config/application.rb
16
+ # config.i18n.available_locales = [:en, :nl, :pp]
12
17
 
13
- #set the locale based on the subdomain
18
+ # set the locale based on the subdomain
14
19
  def set_locale
15
20
  I18n.locale = extract_locale_from_subdomain || I18n.default_locale
16
21
  end
@@ -21,5 +26,4 @@ class InlineFormsApplicationController < ActionController::Base
21
26
  return nil if locale.nil?
22
27
  I18n.available_locales.include?(locale.to_sym) ? locale.to_s : nil
23
28
  end
24
-
25
29
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
+
2
3
  # == Generic controller for the inline_forms plugin.
3
4
  # === Usage
4
5
  # If you have an Example class, make an ExampleController
@@ -28,7 +29,7 @@ class InlineFormsController < ApplicationController
28
29
 
29
30
  before_action :getKlass
30
31
 
31
- load_and_authorize_resource :except => :revert, :no_params => true if cancan_enabled?
32
+ load_and_authorize_resource except: :revert, no_params: true if cancan_enabled?
32
33
  # :index shows a list of all objects from class @Klass, using will_paginate,
33
34
  # including a link to 'new', that allows you to create a new record.
34
35
  def index
@@ -56,7 +57,7 @@ class InlineFormsController < ApplicationController
56
57
  @objects = @objects.merge(@Klass.inline_forms_search(params[:search]))
57
58
  end
58
59
  @objects = @objects.where(fk_conditions) if fk_conditions
59
- @objects = @objects.paginate(:page => params[:page])
60
+ @objects = @objects.paginate(page: params[:page])
60
61
  respond_to do |format|
61
62
  # `not_accessible_through_html?` is about preventing direct top-level
62
63
  # HTML CRUD on this resource (e.g. /photos when only Apartment is the
@@ -137,7 +138,7 @@ class InlineFormsController < ApplicationController
137
138
  attributes = @inline_forms_attribute_list || @object.inline_forms_attribute_list
138
139
  attributes.each do | attribute, form_element |
139
140
  InlineForms.assert_plain_text_column!(object: @object, attribute: attribute, form_element: form_element)
140
- send("#{form_element.to_s}_update", @object, attribute) unless form_element == :associated || (cancan_enabled? && cannot?(:read, @object, attribute))
141
+ send("#{form_element}_update", @object, attribute) unless form_element == :associated || (cancan_enabled? && cannot?(:read, @object, attribute))
141
142
  end
142
143
  @parent_class = params[:parent_class]
143
144
  @parent_id = params[:parent_id]
@@ -150,20 +151,26 @@ class InlineFormsController < ApplicationController
150
151
  end
151
152
 
152
153
  if @object.save
153
- flash.now[:success] = t('success', :message => @object.class.model_name.human)
154
+ flash.now[:success] = t("success", message: @object.class.model_name.human)
154
155
  @objects = cancan_enabled? ? @Klass.accessible_by(current_ability) : @Klass.all
155
156
  @objects = @objects.merge(@Klass.inline_forms_list) if @Klass.respond_to?(:inline_forms_list)
156
157
  if fk_conditions.nil? && params[:search].present? && @Klass.respond_to?(:inline_forms_search)
157
158
  @objects = @objects.merge(@Klass.inline_forms_search(params[:search]))
158
159
  end
159
160
  @objects = @objects.where(fk_conditions) if fk_conditions
160
- @objects = @objects.paginate(:page => params[:page])
161
+ @objects = @objects.paginate(page: params[:page])
162
+ created_object = @object
161
163
  @object = nil
162
164
  respond_to do |format|
163
- format.html { render_list_frame_after_save } if html_list_flow_allowed?
165
+ if html_list_flow_allowed?
166
+ if open_created_row?(created_object, attributes)
167
+ format.turbo_stream { render_created_row_open_streams(created_object) }
168
+ end
169
+ format.html { render_list_frame_after_save }
170
+ end
164
171
  end
165
172
  else
166
- flash.now[:header] = ["Kan #{@object.class.to_s.underscore} niet aanmaken."]
173
+ flash.now[:header] = [ "Kan #{@object.class.to_s.underscore} niet aanmaken." ]
167
174
  flash.now[:error] = @object.errors.to_a
168
175
  respond_to do |format|
169
176
  @object.inline_forms_attribute_list = attributes
@@ -180,7 +187,7 @@ class InlineFormsController < ApplicationController
180
187
  @sub_id = params[:sub_id]
181
188
  @update_span = params[:update]
182
189
  InlineForms.assert_plain_text_column!(object: @object, attribute: @attribute, form_element: @form_element)
183
- send("#{@form_element.to_s}_update", @object, @attribute)
190
+ send("#{@form_element}_update", @object, @attribute)
184
191
  # Branch on the actual save result. Previously the return value of
185
192
  # `@object.save` was ignored and `field_show` was rendered
186
193
  # unconditionally from the in-memory `@object`. When a save failed
@@ -262,7 +269,7 @@ class InlineFormsController < ApplicationController
262
269
  def destroy
263
270
  @update_span = params[:update]
264
271
  @object = referenced_object
265
- if current_user.role? :superadmin
272
+ if destroy_permitted?
266
273
  @object.destroy
267
274
  # Capture after destroy: `.last` before destroy was the latest *update*
268
275
  # (e.g. a plain_text_area edit), so undo reified the pre-edit state.
@@ -291,7 +298,9 @@ class InlineFormsController < ApplicationController
291
298
  @version = PaperTrail::Version.find(params[:id])
292
299
  @parent = revert_authorization_subject(@version)
293
300
  authorize!(:revert, @parent || @Klass) if cancan_enabled?
294
- return head :forbidden unless current_user.role? :superadmin
301
+ # Same gate as :destroy (see destroy_permitted?): superadmin when the host
302
+ # has the Devise+roles system, otherwise no extra gate beyond CanCan.
303
+ return head :forbidden unless destroy_permitted?
295
304
  return head :not_found unless @parent
296
305
 
297
306
  @object = @version.reify(
@@ -343,6 +352,19 @@ class InlineFormsController < ApplicationController
343
352
 
344
353
  private
345
354
 
355
+ # Hard-destroy gate. Generated apps restrict destroy to a Devise user with
356
+ # `role?(:superadmin)` (Role model + roles HABTM). Hosts without that role
357
+ # system (e.g. the engine's test/dummy harness, or apps using a different
358
+ # auth stack) have no gatekeeper here beyond CanCan's
359
+ # `load_and_authorize_resource`; pre-8.1.27 this crashed with
360
+ # `NoMethodError` on `nil.role?` instead of deciding either way.
361
+ def destroy_permitted?
362
+ user = respond_to?(:current_user, true) ? current_user : nil
363
+ return true unless user.respond_to?(:role?)
364
+
365
+ user.role?(:superadmin)
366
+ end
367
+
346
368
  # Persist a reified *primary* record (Apartment, Photo, ...) for +revert+.
347
369
  #
348
370
  # +reify+ on a +destroy+ version returns a record with +new_record? == true+
@@ -459,13 +481,13 @@ class InlineFormsController < ApplicationController
459
481
  row_html = render_to_string(
460
482
  "inline_forms/row_close",
461
483
  layout: false,
462
- formats: [:html],
484
+ formats: [ :html ],
463
485
  locals: { update_span: row_id, object: @parent, inline_forms_turbo_row: true }
464
486
  )
465
487
  versions_html = render_to_string(
466
488
  "inline_forms/versions_panel",
467
489
  layout: false,
468
- formats: [:html],
490
+ formats: [ :html ],
469
491
  locals: { update_span: versions_id, object: @parent, inline_forms_turbo_row: true }
470
492
  )
471
493
  render turbo_stream: [
@@ -523,6 +545,44 @@ class InlineFormsController < ApplicationController
523
545
  render "inline_forms/create_list_frame", layout: associated_list_frame_layout
524
546
  end
525
547
 
548
+ # "Open after create" (stuff/2026-07-10-nested-creation-options.md, Option A).
549
+ #
550
+ # An `:associated` (has_many) panel only exists on a persisted record, so the
551
+ # new form hides it and the user historically had to find and reopen the
552
+ # record to add children. When a *top-level* create succeeds for a class
553
+ # whose attribute list has an `:associated` panel, respond with Turbo
554
+ # Streams that refresh the list *and* open the new record's row, landing the
555
+ # user where the nested panel (and its "new" link) is immediately usable.
556
+ #
557
+ # Nested creates are excluded (they already return to the parent's panel),
558
+ # and requests without a turbo-stream Accept header fall through to the
559
+ # plain list-frame response.
560
+ def open_created_row?(created_object, attributes)
561
+ return false if @parent_class.present?
562
+ attributes.any? { |_attribute, form_element, *| form_element.to_sym == :associated }
563
+ end
564
+
565
+ def render_created_row_open_streams(created_object)
566
+ list_frame_id = @update_span
567
+ @ul_needed = true
568
+ list_html = render_to_string(partial: "inline_forms/list", formats: [ :html ])
569
+
570
+ row_id = helpers.inline_forms_row_turbo_frame_id(created_object)
571
+ @object = created_object
572
+ @update_span = row_id
573
+ @inline_forms_turbo_row = true
574
+ row_html = render_to_string("inline_forms/row_show", layout: false, formats: [ :html ])
575
+
576
+ # Streams apply in order: the first inserts the fresh list (containing the
577
+ # new record's closed row frame), the second swaps that row open. If the
578
+ # new record sorted onto another page, the second replace finds no target
579
+ # and degrades silently to today's list-refresh behavior.
580
+ render turbo_stream: [
581
+ turbo_stream.replace(list_frame_id, list_html),
582
+ turbo_stream.replace(row_id, row_html)
583
+ ]
584
+ end
585
+
526
586
  def associated_list_frame_layout
527
587
  # Use full inline_forms chrome so the swapped frame is styled; Turbo extracts
528
588
  # the matching <turbo-frame id="…"> from the response body.
@@ -579,7 +639,7 @@ class InlineFormsController < ApplicationController
579
639
  # Get the class from the controller name.
580
640
  # CountryController < InlineFormsController, so what class are we?
581
641
  # TODO think about this a bit more.
582
- def getKlass #:doc:
642
+ def getKlass # :doc:
583
643
  @Klass = self.controller_name.classify.constantize
584
644
  InlineForms.validate_plain_text_configuration_for!(@Klass)
585
645
  @Klass
@@ -596,5 +656,4 @@ class InlineFormsController < ApplicationController
596
656
  def revert_params
597
657
  params.require(:id).permit(:update)
598
658
  end
599
-
600
659
  end