inline_forms 8.1.21 → 8.1.42

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 (424) hide show
  1. checksums.yaml +4 -4
  2. data/.forgejo/workflows/ci.yml +63 -0
  3. data/.forgejo/workflows/full-gate.yml +77 -0
  4. data/.gitignore +10 -5
  5. data/.rubocop.yml +31 -0
  6. data/.rubocop_todo.yml +151 -0
  7. data/CHANGELOG.md +305 -0
  8. data/CLAUDE.md +68 -0
  9. data/Gemfile +18 -2
  10. data/README.rdoc +23 -6
  11. data/Rakefile +53 -12
  12. data/app/assets/fonts/opensans-v44-latin-italic.woff2 +0 -0
  13. data/app/assets/fonts/opensans-v44-latin-regular.woff2 +0 -0
  14. data/app/assets/javascripts/inline_forms/inline_forms.js +30 -43
  15. data/app/assets/stylesheets/inline_forms/_foundation_icons.scss +6 -12
  16. data/app/assets/stylesheets/inline_forms/_theme.scss +134 -0
  17. data/app/assets/stylesheets/inline_forms/devise.scss +14 -13
  18. data/app/assets/stylesheets/inline_forms/foundation_and_overrides.scss +4 -0
  19. data/app/assets/stylesheets/inline_forms/inline_forms.scss +59 -68
  20. data/app/assets/stylesheets/inline_forms_fonts.css.erb +39 -0
  21. data/app/controllers/inline_forms_application_controller.rb +8 -4
  22. data/app/controllers/inline_forms_controller.rb +88 -14
  23. data/app/helpers/inline_forms_helper.rb +58 -15
  24. data/app/models/concerns/inline_forms/soft_deletable.rb +11 -12
  25. data/app/validators/curacao_id_number_validator.rb +5 -6
  26. data/app/validators/is_curacao_phone_validator.rb +2 -3
  27. data/app/validators/is_email_address_validator.rb +3 -3
  28. data/app/validators/must_be_a_value_validator.rb +6 -6
  29. data/app/views/inline_forms/_new.html.erb +4 -1
  30. data/app/views/inline_forms/_pending_migration_row.html.erb +15 -0
  31. data/app/views/inline_forms/_show.html.erb +5 -2
  32. data/app/views/inline_forms/field_pending.html.erb +10 -0
  33. data/app/views/layouts/application.html.erb +6 -3
  34. data/app/views/layouts/devise.html.erb +1 -0
  35. data/app/views/layouts/inline_forms.html.erb +7 -4
  36. data/archived/README.md +2 -0
  37. data/archived/form_elements/dns_records/README.md +25 -0
  38. data/archived/form_elements/question_list/README.md +25 -0
  39. data/inline_forms.gemspec +8 -7
  40. data/lib/generators/inline_forms_addto/USAGE +31 -0
  41. data/lib/generators/inline_forms_addto_generator.rb +198 -26
  42. data/lib/generators/inline_forms_attribute_overrides.rb +3 -2
  43. data/lib/generators/templates/application_record.rb +1 -1
  44. data/lib/inline_forms/archived_form_elements.rb +23 -10
  45. data/lib/inline_forms/attribute_list.rb +191 -0
  46. data/lib/inline_forms/form_element_from_callee.rb +1 -0
  47. data/lib/inline_forms/form_element_registry.rb +32 -32
  48. data/lib/inline_forms/form_elements/color_field_helper.rb +44 -0
  49. data/lib/inline_forms/form_elements/date_helper.rb +4 -1
  50. data/lib/inline_forms/form_elements/dropdown_with_other_helper.rb +25 -113
  51. data/lib/inline_forms/form_elements/month_year_picker_helper.rb +13 -2
  52. data/lib/inline_forms/form_elements/multi_image_field_helper.rb +18 -6
  53. data/lib/inline_forms/form_elements/slider_with_values_helper.rb +31 -64
  54. data/lib/inline_forms/form_elements/time_helper.rb +3 -1
  55. data/lib/inline_forms/gem_files.rb +27 -0
  56. data/lib/inline_forms/schema_apply.rb +85 -0
  57. data/lib/inline_forms/schema_intent.rb +76 -0
  58. data/lib/inline_forms/schema_label.rb +65 -0
  59. data/lib/inline_forms/schema_preview.rb +135 -0
  60. data/lib/inline_forms/tabs.rb +175 -0
  61. data/lib/inline_forms/turbo_tabs_builder.rb +20 -13
  62. data/lib/inline_forms/version.rb +2 -1
  63. data/lib/inline_forms.rb +145 -45
  64. data/lib/locales/inline_forms.en.yml +2 -0
  65. data/lib/locales/inline_forms.nl.yml +2 -0
  66. data/test/archived_form_elements_test.rb +34 -4
  67. data/test/attribute_list_test.rb +165 -0
  68. data/test/dummy/app/controllers/application_controller.rb +24 -0
  69. data/test/dummy/app/controllers/gizmos_controller.rb +4 -0
  70. data/test/dummy/app/controllers/machines_controller.rb +4 -0
  71. data/test/dummy/app/controllers/parts_controller.rb +4 -0
  72. data/test/dummy/app/controllers/widgets_controller.rb +4 -0
  73. data/test/dummy/app/helpers/application_helper.rb +13 -0
  74. data/test/dummy/app/models/application_record.rb +26 -0
  75. data/test/dummy/app/models/gizmo.rb +25 -0
  76. data/test/dummy/app/models/kind.rb +8 -0
  77. data/test/dummy/app/models/machine.rb +23 -0
  78. data/test/dummy/app/models/part.rb +16 -0
  79. data/test/dummy/app/models/widget.rb +39 -0
  80. data/test/dummy/app/views/_inline_forms_tabs.html.erb +40 -0
  81. data/test/dummy/config/application.rb +37 -0
  82. data/test/dummy/config/database.yml +3 -0
  83. data/test/dummy/config/environment.rb +5 -0
  84. data/test/dummy/config/initializers/inline_forms.rb +6 -0
  85. data/test/dummy/config/initializers/paper_trail_yaml_safe_load.rb +28 -0
  86. data/test/dummy/config/routes.rb +31 -0
  87. data/test/inline_forms_addto_generator_test.rb +220 -0
  88. data/test/integration/inline_forms_crud_test.rb +141 -0
  89. data/test/integration/legacy_elements_test.rb +42 -0
  90. data/test/integration/native_inputs_test.rb +138 -0
  91. data/test/integration/open_after_create_test.rb +85 -0
  92. data/test/integration/pending_migration_gate_test.rb +75 -0
  93. data/test/integration/schema_batch_pipeline_test.rb +189 -0
  94. data/test/integration/schema_edit_test.rb +141 -0
  95. data/test/integration/schema_preview_test.rb +65 -0
  96. data/test/integration_test_helper.rb +121 -0
  97. data/test/plain_text_configuration_test.rb +3 -3
  98. data/test/schema_apply_test.rb +73 -0
  99. data/test/schema_intent_test.rb +53 -0
  100. data/test/schema_label_test.rb +61 -0
  101. data/test/tabs_test.rb +98 -0
  102. data/test/user_model_config_test.rb +1 -0
  103. data/vendor/assets/javascripts/trix.min.js +7 -0
  104. data/vendor/assets/stylesheets/trix.css +470 -0
  105. metadata +91 -320
  106. data/app/assets/images/jquery-ui/animated-overlay.gif +0 -0
  107. data/app/assets/images/jquery-ui/ui-bg_diagonal-maze_20_6e4f1c_10x10.png +0 -0
  108. data/app/assets/images/jquery-ui/ui-bg_diagonal-maze_40_000000_10x10.png +0 -0
  109. data/app/assets/images/jquery-ui/ui-bg_diagonals-medium_20_d34d17_40x40.png +0 -0
  110. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
  111. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_25_c5ddfc_40x40.png +0 -0
  112. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_40_db4865_40x40.png +0 -0
  113. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_262626_40x40.png +0 -0
  114. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_93c3cd_40x40.png +0 -0
  115. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_ff3853_40x40.png +0 -0
  116. data/app/assets/images/jquery-ui/ui-bg_diagonals-small_75_ccd232_40x40.png +0 -0
  117. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_15_0b3e6f_40x40.png +0 -0
  118. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
  119. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  120. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  121. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_20_e69700_40x40.png +0 -0
  122. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_22_1484e6_40x40.png +0 -0
  123. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_26_2293f7_40x40.png +0 -0
  124. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_75_f3d8d8_40x40.png +0 -0
  125. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_8_333333_40x40.png +0 -0
  126. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_90_eeeeee_40x40.png +0 -0
  127. data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_95_ffdc2e_40x40.png +0 -0
  128. data/app/assets/images/jquery-ui/ui-bg_diamond_10_4f4221_10x8.png +0 -0
  129. data/app/assets/images/jquery-ui/ui-bg_diamond_20_372806_10x8.png +0 -0
  130. data/app/assets/images/jquery-ui/ui-bg_diamond_25_675423_10x8.png +0 -0
  131. data/app/assets/images/jquery-ui/ui-bg_diamond_25_d5ac5d_10x8.png +0 -0
  132. data/app/assets/images/jquery-ui/ui-bg_diamond_8_261803_10x8.png +0 -0
  133. data/app/assets/images/jquery-ui/ui-bg_diamond_8_443113_10x8.png +0 -0
  134. data/app/assets/images/jquery-ui/ui-bg_dots-medium_30_0b58a2_4x4.png +0 -0
  135. data/app/assets/images/jquery-ui/ui-bg_dots-medium_80_ffff38_4x4.png +0 -0
  136. data/app/assets/images/jquery-ui/ui-bg_dots-small_20_333333_2x2.png +0 -0
  137. data/app/assets/images/jquery-ui/ui-bg_dots-small_30_a32d00_2x2.png +0 -0
  138. data/app/assets/images/jquery-ui/ui-bg_dots-small_35_35414f_2x2.png +0 -0
  139. data/app/assets/images/jquery-ui/ui-bg_dots-small_40_00498f_2x2.png +0 -0
  140. data/app/assets/images/jquery-ui/ui-bg_dots-small_65_a6a6a6_2x2.png +0 -0
  141. data/app/assets/images/jquery-ui/ui-bg_fine-grain_10_eceadf_60x60.png +0 -0
  142. data/app/assets/images/jquery-ui/ui-bg_fine-grain_10_f8f7f6_60x60.png +0 -0
  143. data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_eceadf_60x60.png +0 -0
  144. data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_f7f3de_60x60.png +0 -0
  145. data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_ffffff_60x60.png +0 -0
  146. data/app/assets/images/jquery-ui/ui-bg_fine-grain_65_654b24_60x60.png +0 -0
  147. data/app/assets/images/jquery-ui/ui-bg_fine-grain_68_b83400_60x60.png +0 -0
  148. data/app/assets/images/jquery-ui/ui-bg_flat_0_303030_40x100.png +0 -0
  149. data/app/assets/images/jquery-ui/ui-bg_flat_0_333333_40x100.png +0 -0
  150. data/app/assets/images/jquery-ui/ui-bg_flat_0_4c4c4c_40x100.png +0 -0
  151. data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  152. data/app/assets/images/jquery-ui/ui-bg_flat_0_e69700_40x100.png +0 -0
  153. data/app/assets/images/jquery-ui/ui-bg_flat_0_e6b900_40x100.png +0 -0
  154. data/app/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  155. data/app/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
  156. data/app/assets/images/jquery-ui/ui-bg_flat_15_cd0a0a_40x100.png +0 -0
  157. data/app/assets/images/jquery-ui/ui-bg_flat_30_cccccc_40x100.png +0 -0
  158. data/app/assets/images/jquery-ui/ui-bg_flat_40_292929_40x100.png +0 -0
  159. data/app/assets/images/jquery-ui/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  160. data/app/assets/images/jquery-ui/ui-bg_flat_55_994d53_40x100.png +0 -0
  161. data/app/assets/images/jquery-ui/ui-bg_flat_55_999999_40x100.png +0 -0
  162. data/app/assets/images/jquery-ui/ui-bg_flat_55_c0402a_40x100.png +0 -0
  163. data/app/assets/images/jquery-ui/ui-bg_flat_55_eeeeee_40x100.png +0 -0
  164. data/app/assets/images/jquery-ui/ui-bg_flat_55_fafafa_40x100.png +0 -0
  165. data/app/assets/images/jquery-ui/ui-bg_flat_55_fbec88_40x100.png +0 -0
  166. data/app/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  167. data/app/assets/images/jquery-ui/ui-bg_flat_65_ffffff_40x100.png +0 -0
  168. data/app/assets/images/jquery-ui/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
  169. data/app/assets/images/jquery-ui/ui-bg_flat_75_ba9217_40x100.png +0 -0
  170. data/app/assets/images/jquery-ui/ui-bg_flat_75_ddd4b0_40x100.png +0 -0
  171. data/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  172. data/app/assets/images/jquery-ui/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
  173. data/app/assets/images/jquery-ui/ui-bg_glass_100_f5f0e5_1x400.png +0 -0
  174. data/app/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  175. data/app/assets/images/jquery-ui/ui-bg_glass_100_f8f8f8_1x400.png +0 -0
  176. data/app/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  177. data/app/assets/images/jquery-ui/ui-bg_glass_15_5f391b_1x400.png +0 -0
  178. data/app/assets/images/jquery-ui/ui-bg_glass_20_555555_1x400.png +0 -0
  179. data/app/assets/images/jquery-ui/ui-bg_glass_25_cb842e_1x400.png +0 -0
  180. data/app/assets/images/jquery-ui/ui-bg_glass_35_dddddd_1x400.png +0 -0
  181. data/app/assets/images/jquery-ui/ui-bg_glass_40_0078a3_1x400.png +0 -0
  182. data/app/assets/images/jquery-ui/ui-bg_glass_40_0a0a0a_1x400.png +0 -0
  183. data/app/assets/images/jquery-ui/ui-bg_glass_40_111111_1x400.png +0 -0
  184. data/app/assets/images/jquery-ui/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  185. data/app/assets/images/jquery-ui/ui-bg_glass_45_0078ae_1x400.png +0 -0
  186. data/app/assets/images/jquery-ui/ui-bg_glass_50_3baae3_1x400.png +0 -0
  187. data/app/assets/images/jquery-ui/ui-bg_glass_55_1c1c1c_1x400.png +0 -0
  188. data/app/assets/images/jquery-ui/ui-bg_glass_55_f1fbe5_1x400.png +0 -0
  189. data/app/assets/images/jquery-ui/ui-bg_glass_55_f8da4e_1x400.png +0 -0
  190. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
  191. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf8ee_1x400.png +0 -0
  192. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  193. data/app/assets/images/jquery-ui/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
  194. data/app/assets/images/jquery-ui/ui-bg_glass_60_000000_1x400.png +0 -0
  195. data/app/assets/images/jquery-ui/ui-bg_glass_60_eeeeee_1x400.png +0 -0
  196. data/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  197. data/app/assets/images/jquery-ui/ui-bg_glass_70_ede4d4_1x400.png +0 -0
  198. data/app/assets/images/jquery-ui/ui-bg_glass_75_79c9ec_1x400.png +0 -0
  199. data/app/assets/images/jquery-ui/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  200. data/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
  201. data/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  202. data/app/assets/images/jquery-ui/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
  203. data/app/assets/images/jquery-ui/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  204. data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  205. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_100_ece8da_500x100.png +0 -0
  206. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_16_121212_500x100.png +0 -0
  207. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_20_111111_500x100.png +0 -0
  208. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_20_1c160d_500x100.png +0 -0
  209. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
  210. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_25_453326_500x100.png +0 -0
  211. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_30_3d3644_500x100.png +0 -0
  212. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_30_44372c_500x100.png +0 -0
  213. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  214. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_45_817865_500x100.png +0 -0
  215. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_45_e14f1c_500x100.png +0 -0
  216. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_50_6eac2c_500x100.png +0 -0
  217. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_55_000000_500x100.png +0 -0
  218. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  219. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_60_fece2f_500x100.png +0 -0
  220. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_70_ffdd57_500x100.png +0 -0
  221. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_75_2191c0_500x100.png +0 -0
  222. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_85_9fda58_500x100.png +0 -0
  223. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_90_fff9e5_500x100.png +0 -0
  224. data/app/assets/images/jquery-ui/ui-bg_gloss-wave_95_f6ecd5_500x100.png +0 -0
  225. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_eeeeee_1x100.png +0 -0
  226. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
  227. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f4f0ec_1x100.png +0 -0
  228. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f5f3e5_1x100.png +0 -0
  229. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f6f6f6_1x100.png +0 -0
  230. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
  231. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_fafaf4_1x100.png +0 -0
  232. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_15_459e00_1x100.png +0 -0
  233. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_15_888888_1x100.png +0 -0
  234. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_20_0972a5_1x100.png +0 -0
  235. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_30_285c00_1x100.png +0 -0
  236. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_40_aaaaaa_1x100.png +0 -0
  237. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_55_555555_1x100.png +0 -0
  238. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
  239. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
  240. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_75_f5f5b5_1x100.png +0 -0
  241. data/app/assets/images/jquery-ui/ui-bg_highlight-hard_95_cccccc_1x100.png +0 -0
  242. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_dcd9de_1x100.png +0 -0
  243. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
  244. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_eae6ea_1x100.png +0 -0
  245. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  246. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  247. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_f9f9f9_1x100.png +0 -0
  248. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_feeebd_1x100.png +0 -0
  249. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_15_cc0000_1x100.png +0 -0
  250. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_20_201913_1x100.png +0 -0
  251. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_20_619226_1x100.png +0 -0
  252. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  253. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_30273a_1x100.png +0 -0
  254. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_67b021_1x100.png +0 -0
  255. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
  256. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_33_003147_1x100.png +0 -0
  257. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_33_3a8104_1x100.png +0 -0
  258. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_35_222222_1x100.png +0 -0
  259. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_35_adadad_1x100.png +0 -0
  260. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_44_444444_1x100.png +0 -0
  261. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_45_5f5964_1x100.png +0 -0
  262. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_4eb305_1x100.png +0 -0
  263. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_aaaaaa_1x100.png +0 -0
  264. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  265. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_60_4ca20b_1x100.png +0 -0
  266. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_60_dddddd_1x100.png +0 -0
  267. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  268. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  269. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  270. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
  271. data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_eeeeee_1x100.png +0 -0
  272. data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  273. data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  274. data/app/assets/images/jquery-ui/ui-bg_inset-hard_45_cd0a0a_1x100.png +0 -0
  275. data/app/assets/images/jquery-ui/ui-bg_inset-hard_55_ffeb80_1x100.png +0 -0
  276. data/app/assets/images/jquery-ui/ui-bg_inset-hard_75_999999_1x100.png +0 -0
  277. data/app/assets/images/jquery-ui/ui-bg_inset-soft_100_f4f0ec_1x100.png +0 -0
  278. data/app/assets/images/jquery-ui/ui-bg_inset-soft_10_201913_1x100.png +0 -0
  279. data/app/assets/images/jquery-ui/ui-bg_inset-soft_10_285c00_1x100.png +0 -0
  280. data/app/assets/images/jquery-ui/ui-bg_inset-soft_15_121212_1x100.png +0 -0
  281. data/app/assets/images/jquery-ui/ui-bg_inset-soft_15_2b2922_1x100.png +0 -0
  282. data/app/assets/images/jquery-ui/ui-bg_inset-soft_25_000000_1x100.png +0 -0
  283. data/app/assets/images/jquery-ui/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
  284. data/app/assets/images/jquery-ui/ui-bg_inset-soft_30_ffffff_1x100.png +0 -0
  285. data/app/assets/images/jquery-ui/ui-bg_inset-soft_50_c9c9c9_1x100.png +0 -0
  286. data/app/assets/images/jquery-ui/ui-bg_loop_25_000000_21x21.png +0 -0
  287. data/app/assets/images/jquery-ui/ui-bg_white-lines_85_f7f7ba_40x100.png +0 -0
  288. data/app/assets/images/jquery-ui/ui-icons_000000_256x240.png +0 -0
  289. data/app/assets/images/jquery-ui/ui-icons_004276_256x240.png +0 -0
  290. data/app/assets/images/jquery-ui/ui-icons_00498f_256x240.png +0 -0
  291. data/app/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  292. data/app/assets/images/jquery-ui/ui-icons_0078ae_256x240.png +0 -0
  293. data/app/assets/images/jquery-ui/ui-icons_056b93_256x240.png +0 -0
  294. data/app/assets/images/jquery-ui/ui-icons_070603_256x240.png +0 -0
  295. data/app/assets/images/jquery-ui/ui-icons_0a82eb_256x240.png +0 -0
  296. data/app/assets/images/jquery-ui/ui-icons_0b54d5_256x240.png +0 -0
  297. data/app/assets/images/jquery-ui/ui-icons_1f1f1f_256x240.png +0 -0
  298. data/app/assets/images/jquery-ui/ui-icons_217bc0_256x240.png +0 -0
  299. data/app/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
  300. data/app/assets/images/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
  301. data/app/assets/images/jquery-ui/ui-icons_2694e8_256x240.png +0 -0
  302. data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
  303. data/app/assets/images/jquery-ui/ui-icons_3383bb_256x240.png +0 -0
  304. data/app/assets/images/jquery-ui/ui-icons_3572ac_256x240.png +0 -0
  305. data/app/assets/images/jquery-ui/ui-icons_3d3d3d_256x240.png +0 -0
  306. data/app/assets/images/jquery-ui/ui-icons_3d80b3_256x240.png +0 -0
  307. data/app/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  308. data/app/assets/images/jquery-ui/ui-icons_469bdd_256x240.png +0 -0
  309. data/app/assets/images/jquery-ui/ui-icons_4b8e0b_256x240.png +0 -0
  310. data/app/assets/images/jquery-ui/ui-icons_4ca300_256x240.png +0 -0
  311. data/app/assets/images/jquery-ui/ui-icons_4eb305_256x240.png +0 -0
  312. data/app/assets/images/jquery-ui/ui-icons_5fa5e3_256x240.png +0 -0
  313. data/app/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
  314. data/app/assets/images/jquery-ui/ui-icons_6da8d5_256x240.png +0 -0
  315. data/app/assets/images/jquery-ui/ui-icons_70b2e1_256x240.png +0 -0
  316. data/app/assets/images/jquery-ui/ui-icons_72a7cf_256x240.png +0 -0
  317. data/app/assets/images/jquery-ui/ui-icons_72b42d_256x240.png +0 -0
  318. data/app/assets/images/jquery-ui/ui-icons_734d99_256x240.png +0 -0
  319. data/app/assets/images/jquery-ui/ui-icons_808080_256x240.png +0 -0
  320. data/app/assets/images/jquery-ui/ui-icons_847e71_256x240.png +0 -0
  321. data/app/assets/images/jquery-ui/ui-icons_888888_256x240.png +0 -0
  322. data/app/assets/images/jquery-ui/ui-icons_88a206_256x240.png +0 -0
  323. data/app/assets/images/jquery-ui/ui-icons_8DC262_256x240.png +0 -0
  324. data/app/assets/images/jquery-ui/ui-icons_8c291d_256x240.png +0 -0
  325. data/app/assets/images/jquery-ui/ui-icons_8d78a5_256x240.png +0 -0
  326. data/app/assets/images/jquery-ui/ui-icons_98d2fb_256x240.png +0 -0
  327. data/app/assets/images/jquery-ui/ui-icons_999999_256x240.png +0 -0
  328. data/app/assets/images/jquery-ui/ui-icons_9bcc60_256x240.png +0 -0
  329. data/app/assets/images/jquery-ui/ui-icons_9ccdfc_256x240.png +0 -0
  330. data/app/assets/images/jquery-ui/ui-icons_9fda58_256x240.png +0 -0
  331. data/app/assets/images/jquery-ui/ui-icons_a83300_256x240.png +0 -0
  332. data/app/assets/images/jquery-ui/ui-icons_a8a3ae_256x240.png +0 -0
  333. data/app/assets/images/jquery-ui/ui-icons_aaaaaa_256x240.png +0 -0
  334. data/app/assets/images/jquery-ui/ui-icons_add978_256x240.png +0 -0
  335. data/app/assets/images/jquery-ui/ui-icons_b83400_256x240.png +0 -0
  336. data/app/assets/images/jquery-ui/ui-icons_b8ec79_256x240.png +0 -0
  337. data/app/assets/images/jquery-ui/ui-icons_bbbbbb_256x240.png +0 -0
  338. data/app/assets/images/jquery-ui/ui-icons_bd7b00_256x240.png +0 -0
  339. data/app/assets/images/jquery-ui/ui-icons_c02669_256x240.png +0 -0
  340. data/app/assets/images/jquery-ui/ui-icons_c47a23_256x240.png +0 -0
  341. data/app/assets/images/jquery-ui/ui-icons_c98000_256x240.png +0 -0
  342. data/app/assets/images/jquery-ui/ui-icons_cb672b_256x240.png +0 -0
  343. data/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png +0 -0
  344. data/app/assets/images/jquery-ui/ui-icons_cccccc_256x240.png +0 -0
  345. data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
  346. data/app/assets/images/jquery-ui/ui-icons_d19405_256x240.png +0 -0
  347. data/app/assets/images/jquery-ui/ui-icons_d8e7f3_256x240.png +0 -0
  348. data/app/assets/images/jquery-ui/ui-icons_e0fdff_256x240.png +0 -0
  349. data/app/assets/images/jquery-ui/ui-icons_e1e463_256x240.png +0 -0
  350. data/app/assets/images/jquery-ui/ui-icons_e3ddc9_256x240.png +0 -0
  351. data/app/assets/images/jquery-ui/ui-icons_e8e2b5_256x240.png +0 -0
  352. data/app/assets/images/jquery-ui/ui-icons_e9cd86_256x240.png +0 -0
  353. data/app/assets/images/jquery-ui/ui-icons_eb990f_256x240.png +0 -0
  354. data/app/assets/images/jquery-ui/ui-icons_ebccce_256x240.png +0 -0
  355. data/app/assets/images/jquery-ui/ui-icons_ed9f26_256x240.png +0 -0
  356. data/app/assets/images/jquery-ui/ui-icons_ededed_256x240.png +0 -0
  357. data/app/assets/images/jquery-ui/ui-icons_eeeeee_256x240.png +0 -0
  358. data/app/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
  359. data/app/assets/images/jquery-ui/ui-icons_efec9f_256x240.png +0 -0
  360. data/app/assets/images/jquery-ui/ui-icons_f08000_256x240.png +0 -0
  361. data/app/assets/images/jquery-ui/ui-icons_f1fd86_256x240.png +0 -0
  362. data/app/assets/images/jquery-ui/ui-icons_f29a00_256x240.png +0 -0
  363. data/app/assets/images/jquery-ui/ui-icons_f2ec64_256x240.png +0 -0
  364. data/app/assets/images/jquery-ui/ui-icons_f35f07_256x240.png +0 -0
  365. data/app/assets/images/jquery-ui/ui-icons_f5e175_256x240.png +0 -0
  366. data/app/assets/images/jquery-ui/ui-icons_f7a50d_256x240.png +0 -0
  367. data/app/assets/images/jquery-ui/ui-icons_f9bd01_256x240.png +0 -0
  368. data/app/assets/images/jquery-ui/ui-icons_f9f2bd_256x240.png +0 -0
  369. data/app/assets/images/jquery-ui/ui-icons_fadc7a_256x240.png +0 -0
  370. data/app/assets/images/jquery-ui/ui-icons_fbc856_256x240.png +0 -0
  371. data/app/assets/images/jquery-ui/ui-icons_fbdb93_256x240.png +0 -0
  372. data/app/assets/images/jquery-ui/ui-icons_fcd113_256x240.png +0 -0
  373. data/app/assets/images/jquery-ui/ui-icons_fcdd4a_256x240.png +0 -0
  374. data/app/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  375. data/app/assets/images/jquery-ui/ui-icons_ff7519_256x240.png +0 -0
  376. data/app/assets/images/jquery-ui/ui-icons_ffcf29_256x240.png +0 -0
  377. data/app/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
  378. data/app/assets/images/jquery-ui/ui-icons_ffe180_256x240.png +0 -0
  379. data/app/assets/images/jquery-ui/ui-icons_ffeb33_256x240.png +0 -0
  380. data/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  381. data/app/assets/stylesheets/jquery_ui/jquery.ui.accordion.css.scss +0 -39
  382. data/app/assets/stylesheets/jquery_ui/jquery.ui.all.css.scss +0 -14
  383. data/app/assets/stylesheets/jquery_ui/jquery.ui.autocomplete.css.scss +0 -17
  384. data/app/assets/stylesheets/jquery_ui/jquery.ui.base.css.scss +0 -27
  385. data/app/assets/stylesheets/jquery_ui/jquery.ui.button.css.scss +0 -115
  386. data/app/assets/stylesheets/jquery_ui/jquery.ui.core.css.scss +0 -92
  387. data/app/assets/stylesheets/jquery_ui/jquery.ui.datepicker.css.scss +0 -179
  388. data/app/assets/stylesheets/jquery_ui/jquery.ui.dialog.css.scss +0 -70
  389. data/app/assets/stylesheets/jquery_ui/jquery.ui.menu.css.scss +0 -80
  390. data/app/assets/stylesheets/jquery_ui/jquery.ui.progressbar.css.scss +0 -29
  391. data/app/assets/stylesheets/jquery_ui/jquery.ui.resizable.css.scss +0 -79
  392. data/app/assets/stylesheets/jquery_ui/jquery.ui.selectable.css.scss +0 -16
  393. data/app/assets/stylesheets/jquery_ui/jquery.ui.slider.css.scss +0 -74
  394. data/app/assets/stylesheets/jquery_ui/jquery.ui.spinner.css.scss +0 -66
  395. data/app/assets/stylesheets/jquery_ui/jquery.ui.tabs.css.scss +0 -53
  396. data/app/assets/stylesheets/jquery_ui/jquery.ui.theme.css.scss +0 -408
  397. data/app/assets/stylesheets/jquery_ui/jquery.ui.tooltip.css.scss +0 -20
  398. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.base.css.scss +0 -78
  399. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.black-tie.css.scss +0 -80
  400. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.blitzer.css.scss +0 -80
  401. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.cupertino.css.scss +0 -80
  402. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.dark-hive.css.scss +0 -80
  403. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.dot-luv.css.scss +0 -80
  404. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.eggplant.css.scss +0 -80
  405. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.excite-bike.css.scss +0 -80
  406. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.flick.css.scss +0 -80
  407. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.hot-sneaks.css.scss +0 -80
  408. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.humanity.css.scss +0 -80
  409. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.le-frog.css.scss +0 -80
  410. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.mint-choc.css.scss +0 -80
  411. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.overcast.css.scss +0 -80
  412. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.pepper-grinder.css.scss +0 -80
  413. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.redmond.css.scss +0 -80
  414. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.smoothness.css.scss +0 -80
  415. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.south-street.css.scss +0 -80
  416. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.start.css.scss +0 -80
  417. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.sunny.css.scss +0 -80
  418. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.swanky-purse.css.scss +0 -80
  419. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.trontastic.css.scss +0 -80
  420. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.ui-darkness.css.scss +0 -80
  421. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.ui-lightness.css.scss +0 -80
  422. data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.vader.css.scss +0 -80
  423. /data/{lib → archived/form_elements/dns_records/lib}/inline_forms/form_elements/dns_records_helper.rb +0 -0
  424. /data/{lib → archived/form_elements/question_list/lib}/inline_forms/form_elements/question_list_helper.rb +0 -0
@@ -1,8 +1,5 @@
1
1
  //= require jquery
2
- //= require jquery.ui.all
3
- //= require jquery.timepicker.js
4
2
  //= require foundation
5
- //= require autocomplete-rails
6
3
 
7
4
  // Turbo / Hotwire is intentionally NOT required into this Sprockets bundle.
8
5
  // `turbo-rails` ships only an ES-module build of turbo (`app/assets/javascripts/turbo.js`
@@ -13,13 +10,11 @@
13
10
  // (and `application.html.erb`) as `<script type="module">`. Inline flows use
14
11
  // `<turbo-frame>` + HTML responses; jquery-ujs / remotipart were removed in 7.8.0.
15
12
 
13
+ // jQuery UI is gone (8.1.26): date/time/month inputs are native, the
14
+ // dropdown_with_other combobox is an <input list> + <datalist>, and
15
+ // slider_with_values is a native <input type="range">. jQuery itself stays
16
+ // only because Foundation 6's JS requires it.
16
17
  $(function(){
17
- $.datepicker.setDefaults({
18
- changeMonth : true,
19
- changeYear : true,
20
- yearRange: '-100:+100',
21
- dateFormat: 'dd-mm-yy'
22
- });
23
18
  $(document).foundation();
24
19
  initInlineFormsWidgets(document);
25
20
  });
@@ -28,44 +23,36 @@ document.addEventListener("turbo:load", function() {
28
23
  initInlineFormsWidgets(document);
29
24
  });
30
25
 
31
- // jQuery UI date/time pickers: one init path for first paint and turbo:frame-load
32
- // (form element helpers emit class hooks only — no inline <script> tags).
26
+ // Widget init: one path for first paint, turbo:load and turbo:frame-load.
27
+ // Form element helpers emit class hooks only — no inline <script> tags.
28
+ // Native inputs (date/time/month/range/datalist) and Trix 2 custom elements
29
+ // need no re-init after frame swaps; only tooltips and the range-slider
30
+ // label sync are wired here.
33
31
  function initInlineFormsWidgets(root) {
34
- var $root = root instanceof jQuery ? root : $(root);
35
-
36
32
  initValidationHintTooltips(root);
33
+ initSliderValueLabels(root);
34
+ }
37
35
 
38
- $root.find("input.datepicker-month-year").each(function() {
39
- var $el = $(this);
40
- if ($el.hasClass("hasDatepicker")) { return; }
41
- $el.datepicker({
42
- changeMonth: true,
43
- changeYear: true,
44
- showButtonPanel: true,
45
- dateFormat: "MM yy",
46
- onClose: function() {
47
- var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
48
- var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
49
- $(this).datepicker("setDate", new Date(year, month, 1));
50
- }
51
- });
52
- });
53
-
54
- $root.find("input.datepicker").not(".datepicker-month-year").each(function() {
55
- var $el = $(this);
56
- if (!$el.hasClass("hasDatepicker")) { $el.datepicker(); }
57
- });
36
+ // slider_with_values: keep the <output> label in sync with the range input.
37
+ // Labels array rides in data-slider-values; the <output> id in
38
+ // data-slider-output (both emitted by slider_with_values_edit).
39
+ function initSliderValueLabels(root) {
40
+ var scope = (root && root.querySelectorAll) ? root : document;
41
+ scope.querySelectorAll("input[type=range].slider_with_values").forEach(function (el) {
42
+ if (el._ifSliderBound) { return; }
43
+ el._ifSliderBound = true;
58
44
 
59
- $root.find("input.timepicker").each(function() {
60
- var $el = $(this);
61
- if (!$el.data("timepicker")) { $el.timepicker(); }
62
- });
45
+ var labels = [];
46
+ try {
47
+ labels = JSON.parse(el.getAttribute("data-slider-values") || "[]");
48
+ } catch (e) { /* keep empty; label just won't update */ }
49
+ var output = document.getElementById(el.getAttribute("data-slider-output"));
50
+ if (!output || !labels.length) { return; }
63
51
 
64
- $root.find("trix-editor").each(function() {
65
- if (window.Trix && this.editor) { return; }
66
- if (window.Trix && typeof Trix.Editor === "function") {
67
- new Trix.Editor(this);
68
- }
52
+ el.addEventListener("input", function () {
53
+ var label = labels[parseInt(el.value, 10)];
54
+ output.textContent = (label === undefined || label === null) ? "" : label;
55
+ });
69
56
  });
70
57
  }
71
58
 
@@ -109,7 +96,7 @@ $(document).ready(function() {
109
96
  });
110
97
  });
111
98
 
112
- // Re-bind jQuery UI widgets and Trix after Turbo Frame swaps (Step 3).
99
+ // Re-bind widgets (tooltips) after Turbo Frame swaps.
113
100
  document.addEventListener("turbo:frame-load", function(event) {
114
101
  var root = event.target;
115
102
  if (!root || !root.querySelectorAll) { return; }
@@ -3,20 +3,14 @@
3
3
  * Made by ZURB 2013 http://zurb.com/playground/foundation-icon-fonts-3
4
4
  * MIT License
5
5
  *
6
- * Vendored into inline_forms (replaces foundation-icons-sass-rails): @font-face
7
- * uses plain url() for dartsass-rails. Font files live in app/assets/fonts/
8
- * (woff/ttf/svg; woff+ttf mirrored from cdnjs foundicons 3.0.0).
6
+ * Vendored into inline_forms (replaces foundation-icons-sass-rails). Font files
7
+ * live in app/assets/fonts/ (woff/ttf/svg; mirrored from cdnjs foundicons 3.0.0).
8
+ *
9
+ * The @font-face moved to inline_forms_fonts.css.erb (Sprockets ERB): from the
10
+ * Dart Sass build the relative url("foundation-icons.woff") resolved against
11
+ * /assets/inline_forms/ and 404'd. Only the fi-* glyph classes live here.
9
12
  */
10
13
 
11
- @font-face {
12
- font-family: "foundation-icons";
13
- src: url("foundation-icons.woff") format("woff"),
14
- url("foundation-icons.ttf") format("truetype"),
15
- url("foundation-icons.svg#fontcustom") format("svg");
16
- font-weight: normal;
17
- font-style: normal;
18
- }
19
-
20
14
  .fi-address-book:before,
21
15
  .fi-alert:before,
22
16
  .fi-align-center:before,
@@ -0,0 +1,134 @@
1
+ // inline_forms theme bridge (8.1.24).
2
+ //
3
+ // Exposes the admin-chrome palette as CSS custom properties on :root so a
4
+ // host app (or a future per-user preferences feature — see
5
+ // stuff/user-preferences-and-theming.md) can re-theme the UI at runtime by
6
+ // overriding variables, without recompiling the Sass build:
7
+ //
8
+ // :root { --if-color-primary: #2563eb; }
9
+ // /* or per user: */
10
+ // body.theme-dark { --if-color-body-bg: #111; --if-color-body-text: #eee; }
11
+ //
12
+ // The values are computed at build time from the Sass palette below (hover
13
+ // shades via lighten()), and every usage site keeps working with the same
14
+ // visual result when nothing overrides the variables. Foundation's own
15
+ // components still read the Sass settings at build time; only the
16
+ // inline_forms chrome (bars, rows, buttons, flashes) is variable-driven.
17
+ //
18
+ // Import order matters: this partial reads Foundation's globals
19
+ // ($body-background, $body-font-color, $anchor-color), so it must be
20
+ // imported after `@import 'foundation'` (see foundation_and_overrides.scss).
21
+
22
+ @use 'sass:color';
23
+
24
+ // Palette (single source of truth for the classic inline_forms look).
25
+ $if-primary: #A3381E !default; // dark red: app top bar, devise chrome
26
+ $if-accent: #B94C32 !default; // brick red: buttons, borders, pagination
27
+ $if-secondary: #E1C150 !default; // gold: model top bar band
28
+ $if-header-band: #EFCA4B !default; // deep gold: section headers, footers
29
+ $if-row-odd: #FBE38E !default; // list zebra: odd rows
30
+ $if-row-even: #FBEEC1 !default; // list zebra: even rows
31
+ $if-input-bg: #fff8e0 !default; // selects / search input background
32
+ $if-flash-accent: #fade7a !default; // flash border band
33
+ $if-error-bg: #a70f0f !default;
34
+ $if-success-bg: #4f8d0d !default;
35
+ $if-on-dark: #FFFFFF !default; // text/icons on primary/secondary bands
36
+
37
+ :root {
38
+ --if-color-primary: #{$if-primary};
39
+ --if-color-accent: #{$if-accent};
40
+ --if-color-secondary: #{$if-secondary};
41
+ --if-color-header-band: #{$if-header-band};
42
+ --if-color-row-odd: #{$if-row-odd};
43
+ --if-color-row-even: #{$if-row-even};
44
+ --if-color-input-bg: #{$if-input-bg};
45
+ --if-color-input-bg-hover: #{color.adjust($if-input-bg, $lightness: 2%)};
46
+ --if-color-input-bg-focus: #{color.adjust($if-input-bg, $lightness: 5%)};
47
+ --if-color-flash-accent: #{$if-flash-accent};
48
+ --if-color-error-bg: #{$if-error-bg};
49
+ --if-color-success-bg: #{$if-success-bg};
50
+ --if-color-on-dark: #{$if-on-dark};
51
+ // Foundation globals, bridged so body/anchors can be re-themed too.
52
+ --if-color-body-bg: #{$body-background};
53
+ --if-color-body-text: #{$body-font-color};
54
+ --if-color-anchor: #{$anchor-color};
55
+ }
56
+
57
+ // Re-bind the document base styles to the bridge. Foundation's
58
+ // foundation-global-styles emitted the same values from Sass; these rules
59
+ // win by cascade order and change nothing until a variable is overridden.
60
+ body {
61
+ background: var(--if-color-body-bg);
62
+ color: var(--if-color-body-text);
63
+ }
64
+
65
+ a {
66
+ color: var(--if-color-anchor);
67
+ }
68
+
69
+ // ---------------------------------------------------------------------------
70
+ // Preset themes (Pattern 1, stuff/user-preferences-and-theming.md).
71
+ // The engine layouts put `theme-<name>` on <body> via
72
+ // inline_forms_body_theme_class; a host user model opts in by responding to
73
+ // #inline_forms_theme (installer-generated user models store an integer
74
+ // `theme` column and map it). `theme-default` is the :root palette above.
75
+ // ---------------------------------------------------------------------------
76
+
77
+ body.theme-dark {
78
+ --if-color-primary: #7d2a15;
79
+ --if-color-accent: #d0603f;
80
+ --if-color-secondary: #6b5a22;
81
+ --if-color-header-band: #7a6829;
82
+ --if-color-row-odd: #2e2a20;
83
+ --if-color-row-even: #262319;
84
+ --if-color-input-bg: #2c2820;
85
+ --if-color-input-bg-hover: #332e25;
86
+ --if-color-input-bg-focus: #3a352b;
87
+ --if-color-flash-accent: #7a6829;
88
+ --if-color-body-bg: #1c1a16;
89
+ --if-color-body-text: #e8e4da;
90
+ --if-color-anchor: #e0a179;
91
+
92
+ // Foundation's body/input styles are compiled from Sass (light palette);
93
+ // patch the pieces the chrome uses that are not variable-driven.
94
+ input, select, textarea, trix-editor {
95
+ background-color: var(--if-color-input-bg);
96
+ color: var(--if-color-body-text);
97
+ }
98
+ }
99
+
100
+ body.theme-sepia {
101
+ --if-color-primary: #8a4a2a;
102
+ --if-color-accent: #a35a32;
103
+ --if-color-secondary: #d4b45a;
104
+ --if-color-header-band: #dcc078;
105
+ --if-color-row-odd: #ece0c0;
106
+ --if-color-row-even: #f2ead2;
107
+ --if-color-input-bg: #fdf6e3;
108
+ --if-color-input-bg-hover: #fffaf0;
109
+ --if-color-input-bg-focus: #fffdf7;
110
+ --if-color-flash-accent: #dcc078;
111
+ --if-color-body-bg: #f4ecd8;
112
+ --if-color-body-text: #5b4636;
113
+ --if-color-anchor: #8b5e3c;
114
+ }
115
+
116
+ body.theme-high-contrast {
117
+ --if-color-primary: #000000;
118
+ --if-color-accent: #b30000;
119
+ --if-color-secondary: #ffd500;
120
+ --if-color-header-band: #ffe066;
121
+ --if-color-row-odd: #ffffff;
122
+ --if-color-row-even: #ededed;
123
+ --if-color-input-bg: #ffffff;
124
+ --if-color-input-bg-hover: #f5f5f5;
125
+ --if-color-input-bg-focus: #ffffff;
126
+ --if-color-flash-accent: #ffd500;
127
+ --if-color-body-bg: #ffffff;
128
+ --if-color-body-text: #000000;
129
+ --if-color-anchor: #0000d6;
130
+
131
+ a, .top-level a {
132
+ text-decoration: underline;
133
+ }
134
+ }
@@ -1,17 +1,18 @@
1
- @import url(http://fonts.googleapis.com/css?family=Open+Sans:400,400italic);
1
+ // Open Sans @font-face lives in inline_forms_fonts.css.erb (self-hosted,
2
+ // Sprockets-served; linked from the layouts) — no external font CDN.
2
3
  @import 'foundation_and_overrides';
3
4
 
4
5
  // Devise pages have only `.contain-to-grid` as the top-bar wrapper (no
5
6
  // `.fixed` variant), so constrain it directly to the F5 1000px row
6
7
  // width and center it. Matches the logged-in chrome's banner.
7
8
  .contain-to-grid {
8
- background-color: $body-background !important;
9
+ background-color: var(--if-color-body-bg) !important;
9
10
  max-width: 62.5rem;
10
11
  margin: 0 auto;
11
12
  }
12
13
 
13
14
  #inline_forms_devise_outer_container a {
14
- color: #A3381E;
15
+ color: var(--if-color-primary);
15
16
  }
16
17
 
17
18
  // Foundation 6's default `.top-bar` adds 0.5rem padding and gives every
@@ -23,13 +24,13 @@
23
24
  padding: 0;
24
25
  min-height: 0;
25
26
  height: 45px;
26
- background-color: #A3381E;
27
+ background-color: var(--if-color-primary);
27
28
  .top-bar-left,
28
29
  .menu,
29
30
  .menu li,
30
31
  .menu a {
31
- background-color: #A3381E;
32
- color: #FFFFFF;
32
+ background-color: var(--if-color-primary);
33
+ color: var(--if-color-on-dark);
33
34
  }
34
35
  .menu-text {
35
36
  padding: 0 1rem;
@@ -44,15 +45,15 @@
44
45
  }
45
46
 
46
47
  #inline_forms_devise_top_nav_bar a {
47
- color: #FFFFFF;
48
+ color: var(--if-color-on-dark);
48
49
  }
49
50
 
50
51
  #inline_forms_devise_flash_div {
51
- border-top: 0.5em solid #fade7a;
52
+ border-top: 0.5em solid var(--if-color-flash-accent);
52
53
  .flash {
53
54
  margin-top: 0.2em;
54
55
  padding: 0.5em;
55
- color: #A3381E;
56
+ color: var(--if-color-primary);
56
57
  font-size: 130%;
57
58
  font-weight: bold;
58
59
  line-height: 120%;
@@ -65,7 +66,7 @@
65
66
  h1 {
66
67
  text-align: center;
67
68
  margin: 30px 0;
68
- color: #A3381E;
69
+ color: var(--if-color-primary);
69
70
  }
70
71
  }
71
72
 
@@ -91,9 +92,9 @@
91
92
  top: 15px;
92
93
  }
93
94
  #error_explanation {
94
- color: #A3381E;
95
+ color: var(--if-color-primary);
95
96
  h2 {
96
- color: #A3381E;
97
+ color: var(--if-color-primary);
97
98
  font-size: 120%;
98
99
  font-weight: bolder;
99
100
  }
@@ -112,7 +113,7 @@
112
113
  h1 {
113
114
  text-align: center;
114
115
  margin: 0 0 0.5em 0;
115
- color: #A3381E;
116
+ color: var(--if-color-primary);
116
117
  font-weight: bolder;
117
118
  }
118
119
 
@@ -53,6 +53,10 @@ $body-font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans
53
53
  @include foundation-visibility-classes;
54
54
  @include foundation-float-classes;
55
55
 
56
+ // Theme bridge: palette as CSS custom properties (must come after
57
+ // 'foundation' so it can read $body-background / $anchor-color).
58
+ @import 'theme';
59
+
56
60
  @import '../../../vendor/assets/stylesheets/tippy.css';
57
61
 
58
62
  .validation-hints-source[hidden] {
@@ -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;