pageflow 17.0.5 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +342 -41
  3. data/README.md +3 -5
  4. data/admins/pageflow/accounts.rb +22 -20
  5. data/admins/pageflow/entry.rb +76 -26
  6. data/admins/pageflow/entry_templates.rb +10 -9
  7. data/admins/pageflow/folder.rb +1 -1
  8. data/admins/pageflow/membership.rb +15 -15
  9. data/admins/pageflow/revisions.rb +5 -5
  10. data/admins/pageflow/site_root_entry.rb +64 -0
  11. data/admins/pageflow/sites.rb +12 -3
  12. data/admins/pageflow/translations.rb +75 -0
  13. data/admins/pageflow/user.rb +21 -35
  14. data/app/assets/images/pageflow/admin/icons/comment.svg +1 -0
  15. data/app/assets/javascripts/pageflow/admin/entries.js +30 -5
  16. data/app/assets/javascripts/pageflow/dist/ui.js +4228 -900
  17. data/app/assets/javascripts/pageflow/editor/vendor.js +0 -1
  18. data/app/assets/javascripts/pageflow/ui.js +0 -1
  19. data/app/assets/stylesheets/pageflow/admin/entries/index_table.scss +2 -1
  20. data/app/assets/stylesheets/pageflow/admin/entry_comments_indicator.scss +45 -0
  21. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +8 -0
  22. data/app/assets/stylesheets/pageflow/admin.scss +1 -0
  23. data/app/assets/stylesheets/pageflow/animations/spin.scss +9 -0
  24. data/app/assets/stylesheets/pageflow/animations.scss +1 -0
  25. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +27 -5
  26. data/app/assets/stylesheets/pageflow/editor/base.scss +11 -1
  27. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +20 -2
  28. data/app/assets/stylesheets/pageflow/editor/edit_configuration_view.scss +5 -0
  29. data/app/assets/stylesheets/pageflow/editor/file_folders.scss +127 -0
  30. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +5 -2
  31. data/app/assets/stylesheets/pageflow/editor/file_meta_data_overlay.scss +45 -0
  32. data/app/assets/stylesheets/pageflow/editor/file_preview.scss +138 -0
  33. data/app/assets/stylesheets/pageflow/editor/file_references.scss +68 -0
  34. data/app/assets/stylesheets/pageflow/editor/file_settings_dialog.scss +1 -1
  35. data/app/assets/stylesheets/pageflow/editor/file_stage_icons.scss +17 -0
  36. data/app/assets/stylesheets/pageflow/editor/file_stages.scss +25 -32
  37. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +31 -48
  38. data/app/assets/stylesheets/pageflow/editor/file_type_pills.scss +73 -0
  39. data/app/assets/stylesheets/pageflow/editor/files.scss +242 -50
  40. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +161 -9
  41. data/app/assets/stylesheets/pageflow/editor/folder_breadcrumb.scss +40 -0
  42. data/app/assets/stylesheets/pageflow/editor/info_box.scss +23 -3
  43. data/app/assets/stylesheets/pageflow/editor/inputs/edit_defaults_button.scss +15 -0
  44. data/app/assets/stylesheets/pageflow/editor/inputs.scss +1 -0
  45. data/app/assets/stylesheets/pageflow/editor/list.scss +89 -37
  46. data/app/assets/stylesheets/pageflow/editor/list_search_field.scss +52 -0
  47. data/app/assets/stylesheets/pageflow/editor/manage_files.scss +9 -0
  48. data/app/assets/stylesheets/pageflow/editor/menu.scss +14 -0
  49. data/app/assets/stylesheets/pageflow/editor/move_to_folder_dialog.scss +83 -0
  50. data/app/assets/stylesheets/pageflow/editor/outline.scss +0 -13
  51. data/app/assets/stylesheets/pageflow/editor/sortable.scss +12 -0
  52. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +4 -4
  53. data/app/assets/stylesheets/pageflow/mixins/pageflow.scss +9 -5
  54. data/app/assets/stylesheets/pageflow/ui/color_picker.scss +230 -0
  55. data/app/assets/stylesheets/pageflow/ui/forms.scss +38 -4
  56. data/app/assets/stylesheets/pageflow/ui/functions.scss +12 -2
  57. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +9 -8
  58. data/app/assets/stylesheets/pageflow/ui/input/file_name_input.scss +37 -0
  59. data/app/assets/stylesheets/pageflow/ui/input/text_area_input.scss +15 -0
  60. data/app/assets/stylesheets/pageflow/ui/overrides.scss +8 -0
  61. data/app/assets/stylesheets/pageflow/ui/properties.scss +34 -0
  62. data/app/assets/stylesheets/pageflow/ui/tabs_view.scss +8 -3
  63. data/app/assets/stylesheets/pageflow/ui.scss +4 -1
  64. data/app/controllers/concerns/pageflow/controller_delegation.rb +1 -1
  65. data/app/controllers/concerns/pageflow/edit_locking.rb +17 -10
  66. data/app/controllers/concerns/pageflow/entry_password_protection.rb +1 -0
  67. data/app/controllers/concerns/pageflow/public_https_mode.rb +2 -1
  68. data/app/controllers/concerns/pageflow/quota_verification.rb +5 -4
  69. data/app/controllers/pageflow/admin/initial_passwords_controller.rb +1 -0
  70. data/app/controllers/pageflow/application_controller.rb +19 -19
  71. data/app/controllers/pageflow/chapters_controller.rb +3 -2
  72. data/app/controllers/pageflow/edit_locks_controller.rb +3 -2
  73. data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -0
  74. data/app/controllers/pageflow/editor/entries_controller.rb +3 -1
  75. data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -0
  76. data/app/controllers/pageflow/editor/file_folders_controller.rb +80 -0
  77. data/app/controllers/pageflow/editor/file_import_controller.rb +4 -3
  78. data/app/controllers/pageflow/editor/files_controller.rb +20 -10
  79. data/app/controllers/pageflow/editor/oembeds_controller.rb +21 -0
  80. data/app/controllers/pageflow/editor/widgets_controller.rb +1 -0
  81. data/app/controllers/pageflow/entries_controller.rb +85 -21
  82. data/app/controllers/pageflow/feeds_controller.rb +1 -1
  83. data/app/controllers/pageflow/files_controller.rb +1 -0
  84. data/app/controllers/pageflow/pages_controller.rb +4 -2
  85. data/app/controllers/pageflow/review/comment_thread_reads_controller.rb +30 -0
  86. data/app/controllers/pageflow/review/comment_threads_controller.rb +60 -0
  87. data/app/controllers/pageflow/review/comments_controller.rb +53 -0
  88. data/app/controllers/pageflow/revisions_controller.rb +5 -1
  89. data/app/controllers/pageflow/sitemaps_controller.rb +1 -1
  90. data/app/controllers/pageflow/storylines_controller.rb +1 -0
  91. data/app/helpers/pageflow/admin/cutoff_modes_helper.rb +12 -0
  92. data/app/helpers/pageflow/admin/entries_helper.rb +41 -1
  93. data/app/helpers/pageflow/admin/entry_translations_helper.rb +18 -0
  94. data/app/helpers/pageflow/admin/features_helper.rb +1 -1
  95. data/app/helpers/pageflow/admin/form_helper.rb +3 -3
  96. data/app/helpers/pageflow/admin/locales_helper.rb +10 -2
  97. data/app/helpers/pageflow/admin/memberships_helper.rb +32 -32
  98. data/app/helpers/pageflow/admin/revisions_helper.rb +1 -1
  99. data/app/helpers/pageflow/admin/sites_helper.rb +22 -0
  100. data/app/helpers/pageflow/admin/users_helper.rb +7 -5
  101. data/app/helpers/pageflow/admin/widgets_helper.rb +5 -5
  102. data/app/helpers/pageflow/asset_urls_helper.rb +1 -1
  103. data/app/helpers/pageflow/audio_files_helper.rb +5 -2
  104. data/app/helpers/pageflow/background_image_helper.rb +7 -6
  105. data/app/helpers/pageflow/common_entry_seed_helper.rb +7 -7
  106. data/app/helpers/pageflow/editor/config_helper.rb +3 -1
  107. data/app/helpers/pageflow/editor/files_helper.rb +1 -1
  108. data/app/helpers/pageflow/embed_code_helper.rb +3 -3
  109. data/app/helpers/pageflow/entries_helper.rb +52 -46
  110. data/app/helpers/pageflow/entry_json_seed_helper.rb +7 -6
  111. data/app/helpers/pageflow/feeds_helper.rb +2 -2
  112. data/app/helpers/pageflow/file_background_images_helper.rb +2 -2
  113. data/app/helpers/pageflow/file_thumbnails_helper.rb +4 -3
  114. data/app/helpers/pageflow/files_helper.rb +5 -4
  115. data/app/helpers/pageflow/folders_helper.rb +8 -5
  116. data/app/helpers/pageflow/help_entries_helper.rb +2 -2
  117. data/app/helpers/pageflow/hreflang_links_helper.rb +37 -0
  118. data/app/helpers/pageflow/info_box_helper.rb +7 -11
  119. data/app/helpers/pageflow/media_query_helper.rb +3 -3
  120. data/app/helpers/pageflow/navigation_bar_helper.rb +1 -1
  121. data/app/helpers/pageflow/overview_helper.rb +1 -1
  122. data/app/helpers/pageflow/page_types_helper.rb +5 -5
  123. data/app/helpers/pageflow/pages_helper.rb +29 -15
  124. data/app/helpers/pageflow/public_i18n_helper.rb +10 -9
  125. data/app/helpers/pageflow/quota_helper.rb +4 -4
  126. data/app/helpers/pageflow/render_json_helper.rb +6 -3
  127. data/app/helpers/pageflow/revision_file_helper.rb +2 -1
  128. data/app/helpers/pageflow/sites_helper.rb +3 -3
  129. data/app/helpers/pageflow/social_share_helper.rb +24 -10
  130. data/app/helpers/pageflow/social_share_links_helper.rb +12 -9
  131. data/app/helpers/pageflow/structured_data_helper.rb +5 -2
  132. data/app/helpers/pageflow/stub_page_configuration.rb +7 -3
  133. data/app/helpers/pageflow/text_direction_helper.rb +1 -1
  134. data/app/helpers/pageflow/themes_helper.rb +2 -4
  135. data/app/helpers/pageflow/video_files_helper.rb +29 -13
  136. data/app/helpers/pageflow/widgets_helper.rb +8 -6
  137. data/app/inputs/pageflow_permalink_input.rb +8 -3
  138. data/app/jobs/pageflow/application_job.rb +1 -0
  139. data/app/jobs/pageflow/entry_export_import/upload_and_publish_file_job.rb +1 -1
  140. data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -0
  141. data/app/jobs/pageflow/poll_zencoder_job.rb +3 -2
  142. data/app/jobs/pageflow/process_image_or_text_track_job.rb +1 -0
  143. data/app/jobs/pageflow/prune_auto_snapshots_job.rb +1 -0
  144. data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +1 -0
  145. data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +1 -0
  146. data/app/mailers/pageflow/user_mailer.rb +1 -0
  147. data/app/models/concerns/pageflow/auto_generated_perma_id.rb +20 -1
  148. data/app/models/concerns/pageflow/entry_publication_states.rb +7 -3
  149. data/app/models/concerns/pageflow/feature_target.rb +8 -4
  150. data/app/models/concerns/pageflow/output_source.rb +3 -3
  151. data/app/models/concerns/pageflow/permalinkable.rb +2 -1
  152. data/app/models/concerns/pageflow/reusable_file.rb +24 -24
  153. data/app/models/concerns/pageflow/serialization_blacklist.rb +3 -5
  154. data/app/models/concerns/pageflow/suspendable.rb +5 -3
  155. data/app/models/concerns/pageflow/theme_referencer.rb +1 -1
  156. data/app/models/concerns/pageflow/translatable.rb +62 -0
  157. data/app/models/concerns/pageflow/translated_attributes.rb +101 -0
  158. data/app/models/concerns/pageflow/uploadable_file.rb +6 -6
  159. data/app/models/pageflow/account.rb +6 -5
  160. data/app/models/pageflow/account_member_query.rb +1 -1
  161. data/app/models/pageflow/account_role_query.rb +1 -1
  162. data/app/models/pageflow/application_query.rb +1 -1
  163. data/app/models/pageflow/application_record.rb +1 -1
  164. data/app/models/pageflow/audio_file.rb +4 -4
  165. data/app/models/pageflow/audio_file_url_templates.rb +1 -1
  166. data/app/models/pageflow/authentication_token.rb +2 -2
  167. data/app/models/pageflow/chapter.rb +6 -1
  168. data/app/models/pageflow/chapter_scaffold.rb +2 -4
  169. data/app/models/pageflow/cname_site_request_scope.rb +1 -1
  170. data/app/models/pageflow/comment.rb +30 -0
  171. data/app/models/pageflow/comment_thread.rb +65 -0
  172. data/app/models/pageflow/comment_thread_read.rb +22 -0
  173. data/app/models/pageflow/customized_theme.rb +9 -8
  174. data/app/models/pageflow/draft_entry.rb +49 -9
  175. data/app/models/pageflow/edit_lock.rb +19 -21
  176. data/app/models/pageflow/encoding_confirmation.rb +2 -2
  177. data/app/models/pageflow/entries_feed.rb +2 -2
  178. data/app/models/pageflow/entry.rb +46 -30
  179. data/app/models/pageflow/entry_at_revision.rb +14 -2
  180. data/app/models/pageflow/entry_comment_summary.rb +114 -0
  181. data/app/models/pageflow/entry_duplicate.rb +8 -5
  182. data/app/models/pageflow/entry_publication.rb +2 -2
  183. data/app/models/pageflow/entry_role_query.rb +4 -4
  184. data/app/models/pageflow/entry_template.rb +4 -4
  185. data/app/models/pageflow/entry_title_or_account_name_query.rb +2 -2
  186. data/app/models/pageflow/entry_translation_group.rb +42 -0
  187. data/app/models/pageflow/file_folder.rb +74 -0
  188. data/app/models/pageflow/file_reuse.rb +5 -4
  189. data/app/models/pageflow/file_usage.rb +18 -3
  190. data/app/models/pageflow/folder.rb +2 -2
  191. data/app/models/pageflow/home_button.rb +7 -7
  192. data/app/models/pageflow/image_file.rb +44 -25
  193. data/app/models/pageflow/image_file_url_templates.rb +4 -4
  194. data/app/models/pageflow/invitation_form.rb +2 -1
  195. data/app/models/pageflow/legal_info.rb +38 -0
  196. data/app/models/pageflow/managed_user_query.rb +1 -1
  197. data/app/models/pageflow/membership.rb +5 -5
  198. data/app/models/pageflow/nested_revision_component_copy.rb +263 -0
  199. data/app/models/pageflow/null_user.rb +1 -1
  200. data/app/models/pageflow/overview_button.rb +1 -1
  201. data/app/models/pageflow/page.rb +7 -3
  202. data/app/models/pageflow/permalink.rb +24 -2
  203. data/app/models/pageflow/permalink_directory.rb +7 -0
  204. data/app/models/pageflow/permalink_redirect.rb +7 -0
  205. data/app/models/pageflow/positioned_file.rb +5 -5
  206. data/app/models/pageflow/potential_entry_translations.rb +55 -0
  207. data/app/models/pageflow/potential_memberships.rb +5 -4
  208. data/app/models/pageflow/published_entry.rb +62 -11
  209. data/app/models/pageflow/revision.rb +29 -16
  210. data/app/models/pageflow/roles.rb +14 -18
  211. data/app/models/pageflow/site.rb +46 -3
  212. data/app/models/pageflow/site_root_entry_form.rb +27 -0
  213. data/app/models/pageflow/sitemaps.rb +10 -1
  214. data/app/models/pageflow/storyline.rb +5 -2
  215. data/app/models/pageflow/storyline_scaffold.rb +1 -1
  216. data/app/models/pageflow/text_track_file.rb +1 -1
  217. data/app/models/pageflow/text_track_file_url_templates.rb +1 -1
  218. data/app/models/pageflow/theme_customization_file.rb +3 -2
  219. data/app/models/pageflow/thumbnail_file_resolver.rb +1 -1
  220. data/app/models/pageflow/url_template.rb +1 -1
  221. data/app/models/pageflow/used_file.rb +13 -3
  222. data/app/models/pageflow/user_name_query.rb +2 -2
  223. data/app/models/pageflow/video_file.rb +22 -15
  224. data/app/models/pageflow/video_file_url_templates.rb +6 -4
  225. data/app/models/pageflow/widget.rb +5 -4
  226. data/app/models/pageflow/with_file_usage_extension.rb +1 -1
  227. data/app/models/pageflow/zencoder_attachment.rb +8 -8
  228. data/app/policies/pageflow/account_policy.rb +3 -1
  229. data/app/policies/pageflow/admin/admin_only_tab_policy.rb +1 -0
  230. data/app/policies/pageflow/admin/entry_tab_policy.rb +1 -0
  231. data/app/policies/pageflow/application_policy.rb +2 -0
  232. data/app/policies/pageflow/entry_policy.rb +7 -1
  233. data/app/policies/pageflow/entry_template_policy.rb +2 -1
  234. data/app/policies/pageflow/file_policy.rb +4 -7
  235. data/app/policies/pageflow/folder_policy.rb +18 -8
  236. data/app/policies/pageflow/membership_policy.rb +6 -4
  237. data/app/policies/pageflow/site_policy.rb +10 -3
  238. data/app/policies/pageflow/user_policy.rb +6 -4
  239. data/app/state_machines/pageflow/image_and_text_track_processing_state_machine.rb +3 -2
  240. data/app/state_machines/pageflow/media_encoding_state_machine.rb +5 -4
  241. data/app/views/admin/accounts/_entry_template_details.html.arb +2 -2
  242. data/app/views/admin/entries/_attributes_table.html.arb +6 -5
  243. data/app/views/admin/entries/_form.html.erb +2 -1
  244. data/app/views/admin/entries/_permalink_inputs.html.erb +9 -2
  245. data/app/views/admin/entry_templates/_form.html.erb +1 -3
  246. data/app/views/admin/site_root_entry/choose.html.erb +19 -0
  247. data/app/views/admin/sites/_fields.html.erb +14 -1
  248. data/app/views/admin/translations/_form.html.erb +31 -0
  249. data/app/views/admin/users/_attributes_table.html.arb +13 -0
  250. data/app/views/components/pageflow/admin/add_membership_button.rb +13 -12
  251. data/app/views/components/pageflow/admin/custom_scopes_renderer.rb +1 -0
  252. data/app/views/components/pageflow/admin/embed_code_field.rb +1 -0
  253. data/app/views/components/pageflow/admin/embedded_index_table.rb +9 -10
  254. data/app/views/components/pageflow/admin/entries_tab.rb +1 -0
  255. data/app/views/components/pageflow/admin/entry_publication_state_indicator.rb +6 -5
  256. data/app/views/components/pageflow/admin/entry_templates_tab.rb +2 -1
  257. data/app/views/components/pageflow/admin/entry_translations_tab.rb +102 -0
  258. data/app/views/components/pageflow/admin/entry_user_badge_list.rb +1 -0
  259. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +9 -8
  260. data/app/views/components/pageflow/admin/features_tab.rb +1 -0
  261. data/app/views/components/pageflow/admin/grouped_folder_list.rb +1 -0
  262. data/app/views/components/pageflow/admin/icon_link_to.rb +1 -0
  263. data/app/views/components/pageflow/admin/members_tab.rb +4 -3
  264. data/app/views/components/pageflow/admin/membership_role_with_tooltip.rb +3 -2
  265. data/app/views/components/pageflow/admin/revisions_tab.rb +14 -10
  266. data/app/views/components/pageflow/admin/sites_tab.rb +1 -0
  267. data/app/views/components/pageflow/admin/tabs_view.rb +1 -0
  268. data/app/views/components/pageflow/admin/timestamp.rb +6 -5
  269. data/app/views/components/pageflow/admin/user_account_badge_list.rb +2 -3
  270. data/app/views/components/pageflow/admin/user_accounts_tab.rb +1 -0
  271. data/app/views/components/pageflow/admin/user_entries_tab.rb +1 -0
  272. data/app/views/components/pageflow/admin/users_tab.rb +1 -0
  273. data/app/views/pageflow/audio_files/_audio_file.json.jbuilder +0 -1
  274. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +5 -3
  275. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +2 -1
  276. data/app/views/pageflow/editor/entries/index.json.jbuilder +1 -1
  277. data/app/views/pageflow/editor/entries/seed.json.erb +1 -0
  278. data/app/views/pageflow/editor/entries/show.json.jbuilder +1 -1
  279. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +2 -2
  280. data/app/views/pageflow/editor/file_folders/_file_folder.json.jbuilder +5 -0
  281. data/app/views/pageflow/editor/file_folders/create.json.jbuilder +1 -0
  282. data/app/views/pageflow/editor/file_folders/index.json.jbuilder +3 -0
  283. data/app/views/pageflow/editor/files/_file.json.jbuilder +7 -14
  284. data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
  285. data/app/views/pageflow/editor/files/index.json.jbuilder +1 -1
  286. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +3 -0
  287. data/app/views/pageflow/editor/sites/_site.json.jbuilder +1 -0
  288. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +4 -3
  289. data/app/views/pageflow/entries/share_menu/_bluesky_link.html.erb +8 -0
  290. data/app/views/pageflow/entries/share_menu/_threads_link.html.erb +8 -0
  291. data/app/views/pageflow/files/_file.json.jbuilder +5 -3
  292. data/app/views/pageflow/image_files/_image_file.json.jbuilder +0 -1
  293. data/app/views/pageflow/review/comment_threads/_comment_thread.json.jbuilder +20 -0
  294. data/app/views/pageflow/review/comment_threads/create.json.jbuilder +2 -0
  295. data/app/views/pageflow/review/comment_threads/index.json.jbuilder +13 -0
  296. data/app/views/pageflow/review/comments/_comment.json.jbuilder +13 -0
  297. data/app/views/pageflow/review/comments/create.json.jbuilder +1 -0
  298. data/app/views/pageflow/sitemaps/index.xml.builder +9 -1
  299. data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +1 -1
  300. data/app/views/pageflow/social_share/_page_meta_tags.html.erb +1 -1
  301. data/app/views/pageflow/structured_data/_entry.json.jbuilder +2 -3
  302. data/app/views/pageflow/video_files/_video_file.json.jbuilder +0 -1
  303. data/config/initializers/active_admin_patches.rb +3 -6
  304. data/config/initializers/admin_resource_tabs.rb +3 -0
  305. data/config/initializers/paperclip.rb +1 -0
  306. data/config/initializers/symmetric_encryption.rb +1 -1
  307. data/config/initializers/zencoder.rb +24 -13
  308. data/config/locales/de.yml +256 -12
  309. data/config/locales/en.yml +253 -15
  310. data/config/routes.rb +29 -13
  311. data/config/spring.rb +2 -1
  312. data/db/migrate/20140418225525_setup_schema.rb +2 -2
  313. data/db/migrate/20190306161431_copy_file_attributes_of_failed_uploads.rb +2 -2
  314. data/db/migrate/20190820152900_drop_accounts_themes.rb +2 -1
  315. data/db/migrate/20191202145757_create_pageflow_scrolled_sections.rb +11 -11
  316. data/db/migrate/20191202150657_create_pageflow_scrolled_chapters.rb +1 -1
  317. data/db/migrate/20191202154723_create_pageflow_scrolled_content_elements.rb +9 -9
  318. data/db/migrate/20191219143450_add_position_to_content_elements.rb +2 -1
  319. data/db/migrate/20200117133200_change_revision_appearance_option_default_and_null.rb +2 -1
  320. data/db/migrate/20200122115400_create_pageflow_entry_templates.rb +25 -25
  321. data/db/migrate/20200206134400_convert_legacy_scrolled_content_element_types.rb +3 -3
  322. data/db/migrate/20221215120856_associate_entry_templates_with_sites.rb +2 -2
  323. data/db/migrate/20230120092923_create_other_files.rb +2 -1
  324. data/db/migrate/20230419083307_create_pageflow_entry_translation_group.rb +9 -0
  325. data/db/migrate/20240612110434_add_cutoff_mode_name_to_sites.rb +5 -0
  326. data/db/migrate/20240918084059_create_pageflow_permalink_redirects.rb +14 -0
  327. data/db/migrate/20250508172234_ensure_scrolled_entries_have_main_storyline.rb +14 -0
  328. data/db/migrate/20250617090048_add_custom404_entry_to_sites.rb +5 -0
  329. data/db/migrate/20250617100000_add_perma_id_counter_to_entries.rb +28 -0
  330. data/db/migrate/20250722174123_add_perma_id_to_chapters.rb +10 -0
  331. data/db/migrate/20250725080603_add_perma_id_indexes_to_revision_components.rb +13 -0
  332. data/db/migrate/20250726000000_add_display_name_to_file_usages.rb +5 -0
  333. data/db/migrate/20251015000000_add_structured_data_type_name_to_revisions.rb +5 -0
  334. data/db/migrate/20251029142849_convert_legacy_social_embeds_to_unified_social_embed.rb +38 -0
  335. data/db/migrate/20251119083347_fix_main_storyline_positions.rb +16 -0
  336. data/db/migrate/20251119083348_ensure_scrolled_entries_have_excursion_storyline.rb +15 -0
  337. data/db/migrate/20260303000000_add_layout_version_to_revisions.rb +6 -0
  338. data/db/migrate/20260323000000_create_comment_threads_and_comments.rb +30 -0
  339. data/db/migrate/20260414000000_add_subject_range_to_comment_threads.rb +5 -0
  340. data/db/migrate/20260415000000_add_section_perma_id_to_comment_threads.rb +5 -0
  341. data/db/migrate/20260727000000_add_quote_to_comments.rb +5 -0
  342. data/db/migrate/20260728000000_create_file_folders.rb +17 -0
  343. data/db/migrate/20260805000000_add_attribute_translations_to_sites.rb +5 -0
  344. data/db/migrate/20260806000000_add_edited_at_to_comments.rb +5 -0
  345. data/db/migrate/20260810000000_create_pageflow_scrolled_lottie_files.rb +24 -0
  346. data/db/migrate/20260817000000_create_comment_thread_reads.rb +16 -0
  347. data/db/migrate/20260819000000_add_unread_comments_since_at_to_users.rb +18 -0
  348. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +12599 -5398
  349. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +1275 -4560
  350. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +20204 -22
  351. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +18657 -19
  352. data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -0
  353. data/entry_types/paged/app/helpers/pageflow_paged/page_background_asset_helper.rb +1 -1
  354. data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +7 -7
  355. data/entry_types/paged/app/views/pageflow_paged/editor/entries/_seed.json.jbuilder +1 -0
  356. data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
  357. data/entry_types/paged/lib/pageflow_paged/plugin.rb +4 -0
  358. data/entry_types/paged/lib/pageflow_paged/react/page_type.rb +1 -1
  359. data/entry_types/paged/lib/pageflow_paged/react/widget_type.rb +3 -3
  360. data/entry_types/paged/lib/pageflow_paged.rb +1 -1
  361. data/entry_types/scrolled/app/assets/stylesheets/pageflow_scrolled/ui.scss +2 -0
  362. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +5 -3
  363. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +35 -5
  364. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +4 -5
  365. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +23 -2
  366. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +3 -3
  367. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +8 -5
  368. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +7 -3
  369. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +72 -10
  370. data/entry_types/scrolled/app/helpers/pageflow_scrolled/i18n_helper.rb +28 -13
  371. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +41 -12
  372. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +23 -25
  373. data/entry_types/scrolled/app/helpers/pageflow_scrolled/sprockets_helper.rb +16 -0
  374. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +189 -3
  375. data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +15 -14
  376. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +61 -7
  377. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file.rb +6 -0
  378. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file_url_templates.rb +16 -0
  379. data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +12 -1
  380. data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +20 -1
  381. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -0
  382. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +2 -2
  383. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +15 -12
  384. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +45 -17
  385. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry_translations.json.jbuilder +14 -0
  386. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +34 -5
  387. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +1 -1
  388. data/entry_types/scrolled/app/views/pageflow_scrolled/storylines/_storyline.json.jbuilder +7 -0
  389. data/entry_types/scrolled/config/configuration_schemas/pageflow-scrolled.json +414 -0
  390. data/entry_types/scrolled/config/locales/de.yml +1094 -78
  391. data/entry_types/scrolled/config/locales/en.yml +1083 -78
  392. data/entry_types/scrolled/config/routes.rb +18 -8
  393. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +11 -11
  394. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantDesktop.svg +56 -0
  395. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantMobile.svg +22 -0
  396. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -11
  397. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +27 -8
  398. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +2 -2
  399. data/entry_types/scrolled/lib/pageflow_scrolled/additional_theme_assets.rb +27 -0
  400. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +67 -10
  401. data/entry_types/scrolled/lib/pageflow_scrolled/configuration_schemas.rb +91 -0
  402. data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +1 -1
  403. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +2 -1
  404. data/entry_types/scrolled/lib/pageflow_scrolled/entry_file_reference_locations.rb +71 -0
  405. data/entry_types/scrolled/lib/pageflow_scrolled/entry_structured_data_types/faq_page.rb +58 -0
  406. data/entry_types/scrolled/lib/pageflow_scrolled/file_reference_locations.rb +69 -0
  407. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +222 -19
  408. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +2 -4
  409. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +76 -54
  410. data/entry_types/scrolled/lib/pageflow_scrolled/theme_options_default_scale.rb +35 -0
  411. data/entry_types/scrolled/lib/pageflow_scrolled.rb +14 -1
  412. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +24 -5
  413. data/entry_types/scrolled/package/config/configurationSchemas.js +70 -0
  414. data/entry_types/scrolled/package/config/rollup/configurationSchemas.js +19 -0
  415. data/entry_types/scrolled/package/config/webpack.js +94 -0
  416. data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -0
  417. data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1795 -0
  418. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.css +1 -0
  419. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.js +219 -0
  420. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.css +1 -0
  421. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.js +244 -0
  422. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.css +1 -0
  423. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.js +823 -0
  424. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.css +1 -0
  425. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +109 -0
  426. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.css +1 -0
  427. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.js +277 -0
  428. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.css +1 -0
  429. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.js +244 -0
  430. data/entry_types/scrolled/package/contentElements-editor.js +3155 -583
  431. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  432. data/entry_types/scrolled/package/contentElements-frontend.js +3375 -1585
  433. data/entry_types/scrolled/package/editor.css +1 -0
  434. data/entry_types/scrolled/package/editor.js +8452 -2867
  435. data/entry_types/scrolled/package/entryState.js +1600 -0
  436. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-20c600de.js +1979 -0
  437. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-58189220.js +2538 -0
  438. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-4ec6b2de.js → PhonePlatformContext-035a99fa.js} +9 -15
  439. data/entry_types/scrolled/package/frontend/PhonePlatformContext-9da43797.js +33 -0
  440. data/entry_types/scrolled/package/frontend/Placeholder.module-bf0966b4.js +5267 -0
  441. data/entry_types/scrolled/package/frontend/Placeholder.module-d22a9335.js +4180 -0
  442. data/entry_types/scrolled/package/frontend/ThemeIcon-ab834849.js +754 -0
  443. data/entry_types/scrolled/package/frontend/ThemeIcon-f6cb3a8f.js +773 -0
  444. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-30fd1124.js +39 -0
  445. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-61c25224.js +72 -0
  446. data/entry_types/scrolled/package/frontend/Viewer-1074fd59.js +147 -0
  447. data/entry_types/scrolled/package/frontend/Viewer-1482ca34.js +480 -0
  448. data/entry_types/scrolled/package/frontend/Viewer-70504231.js +210 -0
  449. data/entry_types/scrolled/package/frontend/{Viewer-1bb5597c.js → Viewer-cc8d4072.js} +100 -135
  450. data/entry_types/scrolled/package/frontend/Wavesurfer-656e3c36.js +302 -0
  451. data/entry_types/scrolled/package/frontend/Wavesurfer-b753b838.js +385 -0
  452. data/entry_types/scrolled/package/frontend/commenting.css +1 -0
  453. data/entry_types/scrolled/package/frontend/extensions-167ae143.js +1455 -0
  454. data/entry_types/scrolled/package/frontend/extensions-2318f92b.js +5918 -0
  455. data/entry_types/scrolled/package/frontend/extensions-a461fd13.js +4890 -0
  456. data/entry_types/scrolled/package/frontend/extensions-c98269fd.js +1982 -0
  457. data/entry_types/scrolled/package/frontend/i18n-493cd2a6.js +93 -0
  458. data/entry_types/scrolled/package/frontend/i18n-e06cac14.js +100 -0
  459. data/entry_types/scrolled/package/frontend/{index-11f32f10.js → index-2e5546f7.js} +39 -54
  460. data/entry_types/scrolled/package/frontend/index-de2b418d.js +130 -0
  461. data/entry_types/scrolled/package/frontend/index.css +1 -1
  462. data/entry_types/scrolled/package/frontend/index.js +1976 -1367
  463. data/entry_types/scrolled/package/frontend/inlineEditing.css +1 -0
  464. data/entry_types/scrolled/package/frontend/useContentElementEditorState-a084912e.js +25 -0
  465. data/entry_types/scrolled/package/frontend/useDelayedBoolean-a387d85b.js +24 -0
  466. data/entry_types/scrolled/package/frontend/usePhonePlatform-4ecb96d4.js +8 -0
  467. data/entry_types/scrolled/package/frontend/usePhonePlatform-ce9ff08d.js +8 -0
  468. data/entry_types/scrolled/package/frontend-server.js +20 -210
  469. data/entry_types/scrolled/package/package.json +22 -12
  470. data/entry_types/scrolled/package/review.css +1 -0
  471. data/entry_types/scrolled/package/review.js +3306 -0
  472. data/entry_types/scrolled/package/testHelpers.js +952 -239
  473. data/entry_types/scrolled/package/values/widgets.module.css +18 -0
  474. data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
  475. data/entry_types/scrolled/package/widgets/consentBar.js +275 -315
  476. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  477. data/entry_types/scrolled/package/widgets/defaultNavigation.js +961 -432
  478. data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -0
  479. data/entry_types/scrolled/package/widgets/excursionSheet.js +225 -0
  480. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
  481. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +62 -32
  482. data/entry_types/scrolled/package/widgets/iconScrollIndicator.css +1 -0
  483. data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +67 -0
  484. data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -0
  485. data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +100 -0
  486. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
  487. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +48 -26
  488. data/entry_types/scrolled/package/widgets-server.js +2 -0
  489. data/entry_types/scrolled/spec/factories/chapters.rb +14 -1
  490. data/entry_types/scrolled/spec/factories/content_elements.rb +1 -1
  491. data/entry_types/scrolled/spec/factories/lottie_files.rb +29 -0
  492. data/entry_types/scrolled/spec/fixtures/animation.lottie +0 -0
  493. data/entry_types/scrolled/spec/fixtures/font.woff +0 -0
  494. data/entry_types/scrolled/spec/fixtures/font.woff2 +0 -0
  495. data/lib/generators/pageflow/active_admin_initializer/active_admin_initializer_generator.rb +5 -3
  496. data/lib/generators/pageflow/assets/assets_generator.rb +7 -5
  497. data/lib/generators/pageflow/cancan/cancan_generator.rb +2 -1
  498. data/lib/generators/pageflow/cancan/templates/ability.rb +1 -1
  499. data/lib/generators/pageflow/error_pages/error_pages_generator.rb +2 -1
  500. data/lib/generators/pageflow/initializer/initializer_generator.rb +3 -2
  501. data/lib/generators/pageflow/install/install_generator.rb +2 -2
  502. data/lib/generators/pageflow/procfile/procfile_generator.rb +2 -1
  503. data/lib/generators/pageflow/resque/resque_generator.rb +4 -4
  504. data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
  505. data/lib/generators/pageflow/routes/routes_generator.rb +4 -2
  506. data/lib/generators/pageflow/seeds/seeds_generator.rb +3 -2
  507. data/lib/generators/pageflow/seeds/templates/seeds.rb +6 -6
  508. data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
  509. data/lib/generators/pageflow/user/user_generator.rb +2 -1
  510. data/lib/pageflow/ability_mixin.rb +25 -15
  511. data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -0
  512. data/lib/pageflow/active_admin_patches/views/pages/base.rb +3 -2
  513. data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -0
  514. data/lib/pageflow/additional_headers.rb +27 -0
  515. data/lib/pageflow/admin/attributes_table_rows.rb +3 -3
  516. data/lib/pageflow/admin/tabs.rb +1 -1
  517. data/lib/pageflow/built_in_file_type.rb +1 -1
  518. data/lib/pageflow/built_in_page_types_plugin.rb +1 -1
  519. data/lib/pageflow/built_in_widget_type.rb +2 -2
  520. data/lib/pageflow/built_in_widget_types_plugin.rb +2 -1
  521. data/lib/pageflow/configuration.rb +183 -18
  522. data/lib/pageflow/cutoff_modes.rb +39 -0
  523. data/lib/pageflow/deprecation.rb +19 -0
  524. data/lib/pageflow/editor_controller.rb +6 -10
  525. data/lib/pageflow/engine.rb +5 -6
  526. data/lib/pageflow/entries_controller_env_helper.rb +32 -2
  527. data/lib/pageflow/entry_export_import/attachment_files.rb +1 -1
  528. data/lib/pageflow/entry_export_import/entry_serialization.rb +9 -8
  529. data/lib/pageflow/entry_export_import/file_mappings.rb +1 -0
  530. data/lib/pageflow/entry_export_import/page_type_versions.rb +2 -2
  531. data/lib/pageflow/entry_export_import/revision_serialization/import.rb +11 -1
  532. data/lib/pageflow/entry_export_import/revision_serialization.rb +3 -0
  533. data/lib/pageflow/entry_export_import.rb +3 -3
  534. data/lib/pageflow/entry_structured_data_types.rb +43 -0
  535. data/lib/pageflow/entry_type_configuration.rb +1 -0
  536. data/lib/pageflow/entry_types.rb +2 -2
  537. data/lib/pageflow/feature.rb +1 -1
  538. data/lib/pageflow/features.rb +4 -6
  539. data/lib/pageflow/file_importers.rb +4 -4
  540. data/lib/pageflow/file_type.rb +5 -5
  541. data/lib/pageflow/file_types.rb +4 -4
  542. data/lib/pageflow/global_config_api.rb +5 -6
  543. data/lib/pageflow/help_entries.rb +7 -7
  544. data/lib/pageflow/help_entry.rb +1 -1
  545. data/lib/pageflow/hooks.rb +1 -1
  546. data/lib/pageflow/nested_revision_component.rb +9 -27
  547. data/lib/pageflow/news_item_api.rb +1 -1
  548. data/lib/pageflow/oembed_providers.rb +42 -0
  549. data/lib/pageflow/page_type.rb +2 -3
  550. data/lib/pageflow/page_types.rb +3 -3
  551. data/lib/pageflow/paperclip_interpolations/support.rb +1 -1
  552. data/lib/pageflow/paperclip_processors/vtt.rb +1 -0
  553. data/lib/pageflow/paperclip_processors/webp.rb +2 -2
  554. data/lib/pageflow/partial_editor_fragment_renderer.rb +2 -2
  555. data/lib/pageflow/plugin.rb +1 -2
  556. data/lib/pageflow/primary_domain_entry_redirect.rb +6 -0
  557. data/lib/pageflow/quota.rb +9 -5
  558. data/lib/pageflow/quotas.rb +1 -1
  559. data/lib/pageflow/rails_version.rb +14 -2
  560. data/lib/pageflow/react.rb +1 -1
  561. data/lib/pageflow/revision_component.rb +8 -40
  562. data/lib/pageflow/revision_components.rb +16 -6
  563. data/lib/pageflow/seeds.rb +12 -16
  564. data/lib/pageflow/theme.rb +1 -1
  565. data/lib/pageflow/theme_customizations.rb +10 -10
  566. data/lib/pageflow/themes.rb +44 -3
  567. data/lib/pageflow/user_mixin.rb +18 -6
  568. data/lib/pageflow/version.rb +1 -1
  569. data/lib/pageflow/widget_type.rb +4 -4
  570. data/lib/pageflow/widget_types.rb +9 -9
  571. data/lib/pageflow/zencoder_api.rb +32 -42
  572. data/lib/pageflow/zencoder_audio_output_definition.rb +14 -13
  573. data/lib/pageflow/zencoder_meta_data_output_definition.rb +3 -2
  574. data/lib/pageflow/zencoder_output_definition.rb +16 -14
  575. data/lib/pageflow/zencoder_video_output_definition.rb +140 -88
  576. data/lib/pageflow.rb +8 -2
  577. data/lib/tasks/pageflow_tasks.rake +1 -1
  578. data/package/config/eslint-rules/documented-in-toc.js +125 -0
  579. data/package/config/jest/index.js +0 -1
  580. data/package/config/webpack.js +0 -1
  581. data/package/config/webpack5.js +0 -1
  582. data/package/editor.js +4880 -2313
  583. data/package/frontend.js +710 -1223
  584. data/package/package.json +3 -1
  585. data/package/review.js +384 -0
  586. data/package/testHelpers.js +257 -243
  587. data/package/ui.js +1487 -813
  588. data/package/vendor/stubs/wysihtml5.js +2 -0
  589. data/spec/factories/accounts.rb +37 -22
  590. data/spec/factories/audio_files.rb +2 -2
  591. data/spec/factories/authentication_tokens.rb +4 -4
  592. data/spec/factories/chapters.rb +4 -4
  593. data/spec/factories/comment_thread_reads.rb +10 -0
  594. data/spec/factories/comment_threads.rb +10 -0
  595. data/spec/factories/comments.rb +9 -0
  596. data/spec/factories/draft_entries.rb +14 -6
  597. data/spec/factories/edit_locks.rb +1 -1
  598. data/spec/factories/entries.rb +28 -19
  599. data/spec/factories/entry_translation_groups.rb +6 -0
  600. data/spec/factories/file_folders.rb +8 -0
  601. data/spec/factories/file_usages.rb +2 -1
  602. data/spec/factories/folders.rb +1 -1
  603. data/spec/factories/image_files.rb +2 -2
  604. data/spec/factories/pages.rb +3 -3
  605. data/spec/factories/published_entries.rb +28 -8
  606. data/spec/factories/revisions.rb +1 -1
  607. data/spec/factories/sites.rb +6 -0
  608. data/spec/factories/test_multi_attachment_files.rb +1 -1
  609. data/spec/factories/text_track_files.rb +1 -1
  610. data/spec/factories/uploadable_files.rb +1 -1
  611. data/spec/factories/users.rb +6 -6
  612. data/spec/factories/video_files.rb +2 -2
  613. data/spec/factories/widgets.rb +1 -1
  614. data/spec/fixtures/7x15_rotated.jpg +0 -0
  615. data/vendor/assets/javascripts/wysihtml-toolbar.js +19288 -0
  616. metadata +266 -92
  617. data/app/assets/stylesheets/pageflow/editor/select_button.scss +0 -51
  618. data/config/initializers/revision_components.rb +0 -5
  619. data/config/locales/twitter_to_x.de.yml +0 -6
  620. data/config/locales/twitter_to_x.en.yml +0 -6
  621. data/entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb +0 -55
  622. data/entry_types/scrolled/config/locales/twitter_to_x.de.yml +0 -12
  623. data/entry_types/scrolled/config/locales/twitter_to_x.en.yml +0 -12
  624. data/entry_types/scrolled/config/locales/vr_image_projection.de.yml +0 -24
  625. data/entry_types/scrolled/config/locales/vr_image_projection.en.yml +0 -24
  626. data/entry_types/scrolled/package/frontend/EditableInlineText.module-ebd22921.js +0 -5497
  627. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-b79159cc.js +0 -107
  628. data/entry_types/scrolled/package/frontend/Viewer-1ecf3375.js +0 -154
  629. data/entry_types/scrolled/package/frontend/Wavesurfer-7d9cf1b7.js +0 -333
  630. data/entry_types/scrolled/package/frontend/arrowRight-62998af9.js +0 -77
  631. data/entry_types/scrolled/package/frontend/components-024a9893.js +0 -2853
  632. data/entry_types/scrolled/package/frontend/createSuper-d0f30da3.js +0 -115
  633. data/entry_types/scrolled/package/frontend/i18n-ce13a8bf.js +0 -1129
  634. data/entry_types/scrolled/package/frontend/useContentElementEditorState-4f4c3cf6.js +0 -52
  635. data/lib/generators/pageflow/resque/templates/resque_enqueue_after_commit_patch.rb +0 -25
  636. data/package/vendor/jquery.minicolors.js +0 -1108
@@ -1,7 +1,11 @@
1
1
  en:
2
2
  pageflow:
3
+ commenting:
4
+ feature_name: Comments
3
5
  datawrapper_chart_embed_opt_in:
4
6
  feature_name: Opt-in for Datawrapper embeds
7
+ image_srcset:
8
+ feature_name: Responsive image srcset
5
9
  defaultNavigation:
6
10
  widget_type_name: Default navigation
7
11
  editor:
@@ -14,6 +18,10 @@ en:
14
18
  name:
15
19
  one: Image
16
20
  other: Images
21
+ lottie_files:
22
+ name:
23
+ one: Lottie animation
24
+ other: Lottie animations
17
25
  other_files:
18
26
  name:
19
27
  one: Other
@@ -22,6 +30,9 @@ en:
22
30
  name:
23
31
  one: Video
24
32
  other: Videos
33
+ files:
34
+ tabs:
35
+ lottie_files: Lottie
25
36
  widgets:
26
37
  attributes:
27
38
  defaultNavigation:
@@ -33,29 +44,102 @@ en:
33
44
  navigation is still always hidden when the page is
34
45
  scrolled in phone layout.
35
46
  label: Keep expanded in desktop layout
47
+ firstBackdropBelowNavigation:
48
+ inline_help: |
49
+ Position the first section's backdrop image below the
50
+ navigation bar instead of behind it.
51
+ inline_help_disabled: |
52
+ Position the first section's backdrop image below the
53
+ navigation bar instead of behind it. Only available
54
+ when navigation is set to stay expanded.
55
+ label: Start backdrop below
36
56
  hideSharingButton:
37
57
  label: Hide share button
38
58
  hideToggleMuteButton:
39
59
  label: Hide unmute button
40
- frontend_v2:
41
- feature_name: Frontend v2
60
+ accentColor:
61
+ label: "Accent color"
62
+ iconScrollIndicator:
63
+ animation:
64
+ label: Animation
65
+ values:
66
+ none: None
67
+ smallBounce: Subtle
68
+ largeBounce: Obvious
69
+ alignment:
70
+ label: Alignment
71
+ values:
72
+ centerContent: Center with content
73
+ centerViewport: Center with viewport
74
+ size:
75
+ label: Size
76
+ values:
77
+ large: Large
78
+ small: Small
42
79
  hls_instead_of_dash:
43
80
  feature_name: Use HLS instead of DASH for videos
44
81
  iconInlineFileRights:
45
82
  widget_type_name: Copyright icons
46
83
  iframe_embed_content_element:
47
84
  feature_name: iframe embed content element
85
+ legacy_social_embed_content_elements:
86
+ feature_name: Legacy Twitter and TikTok content elements
87
+ lottie_animation_content_element:
88
+ feature_name: Lottie animation content element
48
89
  scrolled_entry_fragment_caching:
49
90
  feature_name: Pageflow Next Fragment Caching
91
+ social_embed_content_element:
92
+ feature_name: Social embed content element
50
93
  textInlineFileRights:
51
94
  widget_type_name: Text at element
52
95
  ui:
53
96
  configuration_editor:
54
97
  tabs:
55
98
  defaultNavigation: Default navigation
99
+ iconScrollIndicator: Icon Scroll Indicator
56
100
  widgets:
57
101
  roles:
58
102
  inlineFileRights: Inline file rights
103
+ scrollIndicator: Scroll indicator
104
+ backdrop_content_elements:
105
+ feature_name: "Backdrop content elements"
106
+ backdrop_size:
107
+ feature_name: Backdrop size option
108
+ custom_palette_colors:
109
+ feature_name: "Custom Palette Colors"
110
+ entry_types:
111
+ scrolled:
112
+ editor:
113
+ entry_metadata_configuration_attributes:
114
+ darkWidgets:
115
+ label: "Use dark theme variant"
116
+ files:
117
+ attributes:
118
+ image_files:
119
+ projection:
120
+ cell_text:
121
+ blank: "(none)"
122
+ equirectangular_mono: Equirectangular (mono)
123
+ equirectangular_stereo: Equirectangular (stereo)
124
+ column_header: Projection
125
+ inline_help: Determine whether this image is a mono- or stereoscopic 360° image. It can be chosen as poster image for 360° videos.
126
+ label: 360° projection
127
+ values:
128
+ equirectangular_mono: Equirectangular (mono)
129
+ equirectangular_stereo: Equirectangular (stereo)
130
+ filters:
131
+ image_files:
132
+ with_projection:
133
+ blank_slate: Choose a projection in the file settings, to mark it as a 360° image.
134
+ name: 360° images
135
+ icon_scroll_indicator:
136
+ feature_name: Icon Scroll Indicator
137
+ iconScrollIndicator:
138
+ widget_type_name: Icon at bottom of viewport
139
+ excursion_sheets:
140
+ feature_name: "Excursion sheet widgets"
141
+ file_rights_from_references:
142
+ feature_name: "Credits only for referenced files"
59
143
  pageflow_scrolled:
60
144
  editor:
61
145
  backdrop_effects:
@@ -75,6 +159,12 @@ en:
75
159
  label: Scroll Parallax
76
160
  sepia:
77
161
  label: Sepia
162
+ frame:
163
+ label: 'Frame'
164
+ crop:
165
+ label: Crop
166
+ rounded:
167
+ label: Rounded corners
78
168
  blank_entry:
79
169
  create_chapter: Click <em>New chapter</em> to create your first chapter.
80
170
  create_content_element: Use the <em>Plus buttons</em> inside the preview to add text blocks and other elements.
@@ -89,12 +179,17 @@ en:
89
179
  add_section: New section
90
180
  drag_hint: Drag to move chapter
91
181
  save_error: There was an error while saving this chapter.
182
+ chapter: Chapter
183
+ excursion: Excursion
184
+ unnamed: Untitled
185
+ hidden_in_navigation: Hidden in navigation bar
92
186
  common_content_element_attributes:
93
187
  caption:
94
188
  inline_help: The caption of the element will be displayed directly underneath the element.
95
189
  label: Caption
96
190
  palette_color:
97
191
  blank: "(Auto)"
192
+ custom: Custom
98
193
  position:
99
194
  inline_help: |-
100
195
  Control the position of the element in relation to
@@ -110,11 +205,16 @@ en:
110
205
  scrolling. This gives the reader a stable position to
111
206
  fully view the element. Smaller elements can be given
112
207
  more weight that way.
208
+ backdrop: ''
113
209
  sticky: |-
114
- Place beside the text while scrolling. In mobile view,
115
- sticky elements are automatically turned into inline
116
- elements. Sticky elements work particularly well in
117
- desktop view in combination with long text passages.
210
+ Place alongside the text and keep in a fixed posiiton while
211
+ scrolling. In mobile view, elements are automatically
212
+ turned into inline elements. Sticky elements work
213
+ particularly well in desktop view in combination with
214
+ long text passages.
215
+ side: |-
216
+ Place alongside the text. In mobile view, elements are
217
+ automatically turned into inline elements.
118
218
  label: Position
119
219
  values:
120
220
  full: Full Width
@@ -122,8 +222,10 @@ en:
122
222
  left: Floated left
123
223
  right: Floated right
124
224
  standAlone: Stand alone
125
- sticky: Sticky
126
225
  wide: Wide
226
+ backdrop: 'As Backdrop'
227
+ sticky: Alongside (sticky)
228
+ side: Alongside
127
229
  typographyVariant:
128
230
  blank: "(Default)"
129
231
  label: Variant
@@ -136,6 +238,28 @@ en:
136
238
  elements interrupt the text flow and stand prominently on
137
239
  their own.
138
240
  label: Width
241
+ alignment:
242
+ label: Alignment
243
+ inline_help: |-
244
+ Align narrow elements relative to the content width.
245
+ values:
246
+ center: Center
247
+ left: Left
248
+ right: Right
249
+ captionVariant:
250
+ label: Caption Variant
251
+ inline_help: Switch between different looks of the caption below the element.
252
+ inline_help_disabled: Add a caption below the element to switch between different looks.
253
+ blank: "(Default)"
254
+ styles:
255
+ label: "Styles"
256
+ fullWidthInPhoneLayout:
257
+ label: "Full width in phone layout"
258
+ inline_help: |-
259
+ Allow the element to span the full width of the viewport
260
+ on smaller screens, maximizing use of available space.
261
+ typographySize:
262
+ label: "Text size"
139
263
  content_element_categories:
140
264
  basic:
141
265
  name: Basic
@@ -143,21 +267,26 @@ en:
143
267
  name: Data and Diagrams
144
268
  interactive:
145
269
  name: Interactive
146
- links:
147
- name: Links
148
270
  media:
149
271
  name: Media
272
+ tilesAndLinks:
273
+ name: Links and Tiles
150
274
  content_elements:
151
275
  counter:
152
276
  attributes:
153
277
  countingSpeed:
154
278
  inline_help: Determine the speed of the counting animation.
155
- label: Counting animation
279
+ label: Counting speed
156
280
  values:
157
281
  fast: Fast
158
282
  medium: Medium
159
- none: "(None)"
160
283
  slow: Slow
284
+ countingAnimation:
285
+ label: Counting animation
286
+ values:
287
+ none: "(None)"
288
+ plain: Simple
289
+ wheel: Rolling digits
161
290
  decimalPlaces:
162
291
  inline_help: Determine how many decimal places shall be visible.
163
292
  label: Decimal places
@@ -172,21 +301,32 @@ en:
172
301
  fadeInScaleUp: Fade in and scale up
173
302
  none: "(None)"
174
303
  numberColor:
175
- label: Color
304
+ label: Number color
305
+ unitColor:
306
+ label: Unit color
307
+ descriptionColor:
308
+ label: Description color
176
309
  startValue:
177
310
  inline_help: The counting animation starts with this value
178
311
  label: Start value
312
+ startAnimationTrigger:
313
+ inline_help: Determine when the animation should start.
314
+ label: Start animation
315
+ values:
316
+ onActivate: When scrolled to center of viewport
317
+ onVisible: When first scrolled into view
179
318
  targetValue:
180
319
  inline_help: Value to display. Final value for counting animation.
181
320
  label: Target value
182
- textSize:
321
+ numberSize:
183
322
  inline_help: Determine the font size of the number.
184
- label: Text size
185
- values:
186
- large: Large
187
- medium: Medium
188
- small: Small
189
- verySmall: Very small
323
+ label: Number size
324
+ unitSize:
325
+ inline_help: Relative size of the unit based on the number size.
326
+ label: Unit size
327
+ descriptionSize:
328
+ inline_help: Determine the font size of the description.
329
+ label: Description size
190
330
  unit:
191
331
  inline_help: Display a text before or after the number.
192
332
  label: Unit
@@ -196,6 +336,17 @@ en:
196
336
  values:
197
337
  leading: Leading ($100)
198
338
  trailing: Trailing (100%)
339
+ textAlign:
340
+ label: Text alignment
341
+ blank: "(Auto)"
342
+ values:
343
+ left: Left
344
+ center: Center
345
+ centerRagged: Center (ragged)
346
+ right: Right
347
+ thousandsSeparators:
348
+ label: "Display thousands separators"
349
+ inline_help: "For example, 1,000 in stories with English language setting."
199
350
  description: Animated metrics
200
351
  name: Counter
201
352
  tabs:
@@ -220,30 +371,112 @@ en:
220
371
  externalLinkList:
221
372
  add: Add
222
373
  attributes:
223
- description:
224
- inline_help: Link-description for display in entry.
225
- label: Description
226
- open_in_new_tab:
227
- label: Open in new tab
228
374
  thumbnail:
229
375
  inline_help: Link thumbnail image for display in entry.
230
376
  label: Thumbnail
231
- title:
232
- inline_help: Link-title for display in entry.
233
- label: Title
234
- url:
235
- inline_help: Absolute URL (inkluding http:// oder https://) of Link.
236
- label: URL
377
+ enableScroller:
378
+ label: "Layout behavior"
379
+ values:
380
+ never: "Wrap into multiple lines"
381
+ always: "Scroll horizontally"
382
+ thumbnailAspectRatio:
383
+ label: "Thumbnail aspect ratio"
384
+ inline_help: |-
385
+ Determine the proportions of the thumbnails. If the
386
+ text is displayed next to the image, longer text may
387
+ result in a more portrait-like aspect ratio so that
388
+ the thumbnail covers the entire height of the link.
389
+ textPosition:
390
+ label: "Caption"
391
+ inline_help: |-
392
+ Arrangement of image and text within links.
393
+ values:
394
+ below: "Below image"
395
+ right: "Right from image"
396
+ overlay: "On Image"
397
+ none: "None"
398
+ overlayOpacity:
399
+ label: Shadow opacity
400
+ inline_help: |-
401
+ Intensity of the color gradient that is placed behind
402
+ the text to improve contrast on busy backgrounds
403
+ thumbnailSize:
404
+ label: "Thumbnail width"
405
+ inline_help: |-
406
+ Proportion of the thumbnail width relative to the
407
+ overall width of the link.
408
+ values:
409
+ small: "Small"
410
+ medium: "Medium"
411
+ large: "Large"
412
+ thumbnailFit:
413
+ label: "Thumbnail fit mode"
414
+ inline_help: |-
415
+ If the image's aspect ratio doesn't match the selected
416
+ thumbnail ratio, you can either zoom the image to fill
417
+ the card completely (which may crop it), or scale it
418
+ down to fit within the card entirely (which may leave
419
+ empty space).
420
+ values:
421
+ cover: Cover
422
+ contain: Contain
423
+ linkWidth:
424
+ label: "Link width"
425
+ inline_help: |-
426
+ Choose a narrower width to arrange more links
427
+ side by side.
428
+ linkAlignment:
429
+ label: "Link alignment"
430
+ inline_help: |-
431
+ Determines the alignment in rows that are not
432
+ completely filled with links.
433
+ values:
434
+ spaceEvenly: Space evenly
435
+ left: Left
436
+ right: Right
437
+ center: Center
438
+ textSize:
439
+ label: "Text size"
440
+ inline_help: |-
441
+ Defines the font size for the title and description of the links.
442
+ values:
443
+ small: Small
444
+ medium: Medium
445
+ large: Large
446
+ textAlign:
447
+ label: Text alignment
448
+ inline_help: Align the text in the links.
449
+ values:
450
+ left: Left
451
+ center: Center
452
+ right: Right
453
+ displayButtons:
454
+ label: "Display buttons"
455
+ inline_help: |-
456
+ Display buttons to open the links.
457
+ inline_help_disabled: |-
458
+ Since clicking a teaser triggers the flip animation,
459
+ links can only be offered as buttons.
460
+ thumbnailBackgroundColor:
461
+ label: Thumbnail background color
462
+ inline_help: |-
463
+ Visible when thumbnail fit mode has been set to
464
+ "contain" or when the thumbnail image contains
465
+ transparent areas.
466
+ backfaces:
467
+ label: Card backfaces
468
+ inline_help: |-
469
+ Turn cards with a flip animation and offer
470
+ additional content on the backside of the card.
237
471
  back: Back
238
- confirm_delete: Are you sure you want to delete this element?
239
- confirm_delete_link: Are you sure you want to delete this link?
240
- description: A collection of links to external websites
241
- destroy: Delete
242
- name: External links
243
- outline: Outline
472
+ confirm_destroy: Are you sure you want to delete this teaser?
473
+ destroy: Delete teaser
474
+ description: A list of tiles with thumbnail and caption
475
+ items: Items
476
+ name: Teasers
244
477
  tabs:
245
- edit_link: Edit Link
246
- general: External Links
478
+ general: Teasers
479
+ edit_link: Teaser
247
480
  heading:
248
481
  attributes:
249
482
  children:
@@ -336,11 +569,17 @@ en:
336
569
  title:
337
570
  inline_help: Used by screen readers to describe the chart as a whole.
338
571
  label: Title
572
+ autoResize:
573
+ label: Dynamic Height
574
+ inline_help: Adapt height to content automatically.
339
575
  description: Embed externally hosted websites
340
576
  help_texts:
341
577
  missingConsentVendor: |-
342
578
  No privacy policy information available for the provider
343
579
  of the given URL.
580
+ autoResize: |-
581
+ This option requires a custom script in the embedded
582
+ page. <a target="_blank" rel="noopener noreferrer" href="https://pageflow.freshdesk.com/en/support/solutions/articles/11000130710-how-to-automatically-resize-iframe-embeds-to-fit-the-content">More info</a>.
344
583
  name: iframe Embed
345
584
  tabs:
346
585
  general: iframe Embed
@@ -353,6 +592,15 @@ en:
353
592
  displayed as large as possible by default.
354
593
  inline_help_disabled: Not available if position "Full width" has been selected.
355
594
  label: Enable fullscreen on desktop
595
+ displayPeeks:
596
+ label: "Display peeks of neighboring images"
597
+ inline_help: "Show partial adjacent image previews as navigation cues."
598
+ displayPaginationIndicator:
599
+ label: "Display pagination"
600
+ inline_help: |-
601
+ Displays the current image position and the total
602
+ number of images to make navigating the gallery
603
+ easier.
356
604
  description: A series of images to flip through
357
605
  items:
358
606
  add: Add
@@ -360,6 +608,23 @@ en:
360
608
  name: Image Gallery
361
609
  tabs:
362
610
  general: Image Gallery
611
+ edit_item:
612
+ back: Back
613
+ confirm_destroy: Are you sure you want to delete this image gallery item?
614
+ destroy: Delete item
615
+ attributes:
616
+ image:
617
+ label: Image
618
+ portraitImage:
619
+ inline_help: |-
620
+ Displayed when the browser viewport is taller than
621
+ wide, for example on phones or tablets in portrait
622
+ orientation. Can be used to provide an alternative
623
+ to a landscape image that would otherwise be
624
+ displayed too small.
625
+ label: Image (Portrait)
626
+ tabs:
627
+ item: Image Gallery Item
363
628
  inlineAudio:
364
629
  attributes:
365
630
  atmoDuringPlayback:
@@ -369,25 +634,39 @@ en:
369
634
  mute: Mute
370
635
  play: Keep playing
371
636
  turnDown: Keep playing at lower volume
637
+ autoplay:
638
+ inline_help: Start playing automatically when the element is scrolled into view.
639
+ label: Autoplay
372
640
  id:
373
641
  label: Audio
642
+ invertPlayButton:
643
+ inline_help: Use a dark play button instead of the default white one.
644
+ label: Invert Play Button
374
645
  playerControlVariant:
375
646
  inline_help: Choose the style of player controls.
376
- label: Waveform Style
647
+ label: Player Controls
377
648
  values:
378
649
  classic: Classic
379
- waveform: Waveform (Fein)
650
+ waveform: Waveform (Fine)
380
651
  waveformBars: Waveform (Bars)
381
652
  waveformLines: Waveform (Lines)
382
653
  posterId:
383
654
  label: Poster
655
+ remainingWaveformColor:
656
+ auto: (Auto)
657
+ inline_help: Color of the remaining waveform that has not been played yet.
658
+ label: Remaining Waveform
384
659
  waveformColor:
385
- inline_help: Color of the waveform's parts that represents the already played part of the audio.
386
- label: Waveform Color
660
+ inline_help: Color of the waveform that represents the already played part of the audio.
661
+ label: Played Waveform
662
+ waveformCursorColor:
663
+ auto: (Auto)
664
+ inline_help: Color of the cursor marking the current playback position.
665
+ label: Waveform Cursor
387
666
  description: Player or waveform with controls
388
- name: Inline Audio
667
+ name: Audio
389
668
  tabs:
390
- general: Inline Audio
669
+ general: Audio
391
670
  inlineBeforeAfter:
392
671
  attributes:
393
672
  after_id:
@@ -424,9 +703,9 @@ en:
424
703
  inline_help: Displayed when the browser viewport is taller than wide, for example on phones or tablets in portrait orientation. Can be used to provide an alternative to a landscape image that would otherwise be displayed too small.
425
704
  label: Image (Portrait)
426
705
  description: Display an image
427
- name: Inline Image
706
+ name: Image
428
707
  tabs:
429
- general: Inline Image
708
+ general: Image
430
709
  inlineVideo:
431
710
  attributes:
432
711
  atmoDuringPlayback:
@@ -436,17 +715,22 @@ en:
436
715
  mute: Mute
437
716
  play: Keep playing
438
717
  turnDown: Keep playing at lower volume
718
+ enableFullscreen:
719
+ inline_help: Display a button to open the video in fullscreen mode.
720
+ inline_help_disabled: Not available for backdrop position or loop playback.
721
+ label: Enable Fullscreen
439
722
  hideControlBar:
440
723
  inline_help: For short videos where there is no need to seek.
441
- inline_help_disabled: Controls are always hidden for videos with playback mode "Loop".
724
+ inline_help_disabled: Controls are always hidden for videos with playback mode "Loop" or circle crop.
442
725
  label: Hide controls
443
726
  id:
444
727
  label: Video
445
728
  playbackMode:
446
- inline_help_html: Determines how the video starts:<ul><li><strong>Manual:</strong> When the user clicks the video.</li><li><strong>Autoplay:</strong> When the video is scrolled to the center of the browser viewport.</li><li><strong>Loop:</strong> In an endless loop soon as it becomes visible.</li></ul>
729
+ inline_help_html: Determines how the video starts:<ul><li><strong>Manual:</strong> When the user clicks the video.</li><li><strong>Autoplay:</strong> When the video is scrolled to the center of the browser viewport.</li><li><strong>Autoplay if entry unmuted:</strong> When scrolled to center, but only if sound for the entry has been unmuted, for example via the unmute button in the navigation bar.</li><li><strong>Loop:</strong> In an endless loop soon as it becomes visible.</li></ul>
447
730
  label: Playback Mode
448
731
  values:
449
732
  autoplay: Autoplay
733
+ autoplayIfUnmuted: Autoplay if entry unmuted
450
734
  loop: Loop
451
735
  manual: Manual
452
736
  portraitId:
@@ -472,14 +756,48 @@ en:
472
756
  inline_help_html: By default browsers only allow autoplaying videos with sound after a user interaction. To still be able to autoplay videos, entries therefore start muted.<br /><br />Sound can be activated using the speaker icon in the navigation bar or via an "Audio notice" element that has been placed in the entry.
473
757
  label: Unmute entry
474
758
  description: Player with controls
475
- name: Inline Video
759
+ name: Video
476
760
  tabs:
477
- general: Inline Video
761
+ general: Video
762
+ lottieAnimation:
763
+ attributes:
764
+ id:
765
+ label: Animation
766
+ playbackMode:
767
+ inline_help_html: Determines how the animation is played:<ul><li><strong>Loop:</strong> Again and again as long as it is visible.</li><li><strong>Play once:</strong> Once from start to end. Use the start animation setting to choose when playback begins.</li><li><strong>Scroll position:</strong> Frame by frame while scrolling. Use the scroll range setting to choose when scrolling the page drives the animation.</li></ul>
768
+ label: Playback Mode
769
+ values:
770
+ loop: Loop
771
+ playOnce: Play once
772
+ scroll: Scroll position
773
+ scrollRange:
774
+ inline_help_html: Determines when scrolling the page drives the animation:<ul><li><strong>While visible:</strong> From the moment the element starts entering the viewport until it has completely left it.</li><li><strong>While completely visible:</strong> While the element is completely inside the viewport.</li><li><strong>While crossing the viewport center:</strong> Scrolling the page drives the animation while the element crosses the vertical center of the viewport. Available for all elements except those with position "Alongside (sticky)" or "Stand alone".</li><li><strong>While locked in place:</strong> Scrolling the page drives the animation while the element stays in place. If the element does not stay in place - in mobile view, where such elements are anchored in the text, or if there is not enough text next to it - scrolling drives the animation while crossing the viewport center instead. Available for elements with position "Alongside (sticky)" or "Stand alone".</li><li><strong>While entering:</strong> While the element is entering the viewport.</li></ul>
775
+ label: Scroll Range
776
+ values:
777
+ contain: While completely visible
778
+ cover: While visible
779
+ entry: While entering
780
+ inFocus: While crossing the viewport center
781
+ inFocusWhenPinned: While locked in place
782
+ startAnimationTrigger:
783
+ inline_help_html: Determines when the animation starts playing:<ul><li><strong>When scrolled to center of viewport:</strong> Once the element reaches the vertical center of the viewport.</li><li><strong>When first scrolled into view:</strong> As soon as the element starts entering the viewport.</li></ul>The animation then plays to its end. It only pauses while the element is outside the viewport.
784
+ label: Start animation
785
+ values:
786
+ onActivate: When scrolled to center of viewport
787
+ onVisible: When first scrolled into view
788
+ description: Embed an animation exported as dotLottie file
789
+ name: Lottie animation
790
+ tabs:
791
+ general: Lottie animation
478
792
  question:
479
793
  attributes:
480
794
  expandByDefault:
481
795
  inline_help: Display answer initially.
482
796
  label: Expand by default
797
+ color:
798
+ label: "Color (Question)"
799
+ answerColor:
800
+ label: "Color (Answer)"
483
801
  description: Expand to reveal an answer
484
802
  name: Question/Answer
485
803
  tabs:
@@ -504,10 +822,20 @@ en:
504
822
  name: Audio Notice
505
823
  tabs:
506
824
  general: Audio Notice
825
+ attributes:
826
+ mutedText:
827
+ label: "Muted Text"
828
+ unmutedText:
829
+ label: "Unmuted Text"
507
830
  textBlock:
508
831
  attributes:
509
832
  color:
510
833
  label: Color
834
+ textAlign:
835
+ label: "Text align"
836
+ values:
837
+ ragged: "Ragged"
838
+ justify: "Justified"
511
839
  description: Text with lists, block quotes and sub-headings
512
840
  help_texts:
513
841
  shortcuts: |
@@ -539,12 +867,37 @@ en:
539
867
  name: Text Block
540
868
  tabs:
541
869
  general: Text Block
870
+ socialEmbed:
871
+ attributes:
872
+ provider:
873
+ label: Provider
874
+ values:
875
+ x: X
876
+ instagram: Instagram
877
+ bluesky: Bluesky
878
+ tiktok: TikTok
879
+ url:
880
+ label: Post URL
881
+ hideConversation:
882
+ label: Hide Conversation
883
+ hideMedia:
884
+ label: Hide Media
885
+ description: Embed posts from X, Instagram, Bluesky, or TikTok
886
+ name: Social Media Post
887
+ tabs:
888
+ general: Social Embed
542
889
  twitterEmbed:
543
890
  attributes:
544
891
  hideConversation:
545
892
  label: Hide Conversation
546
893
  hideMedia:
547
894
  label: Hide Media
895
+ url:
896
+ label: Post URL
897
+ description: Embed content from X
898
+ name: X Post
899
+ tabs:
900
+ general: X Embed
548
901
  videoEmbed:
549
902
  attributes:
550
903
  aspectRatio:
@@ -583,23 +936,276 @@ en:
583
936
  label: Initial Pitch
584
937
  initialYaw:
585
938
  label: Initial Yaw
939
+ aspectRatio:
940
+ blank: "(Auto)"
941
+ inline_help: Control the shape of the VR panorama viewport. Auto uses optimized ratios based on element width.
942
+ label: Aspect Ratio
943
+ values:
944
+ narrow: Landscape (4:3)
945
+ portrait: Portrait (9:16)
946
+ square: Square (1:1)
947
+ wide: Landscape (16:9)
948
+ portraitAspectRatio:
949
+ blank: "(Default)"
950
+ inline_help: Displayed when the browser viewport is taller than wide, for example on phones or tablets in portrait orientation. Can be used to provide a different aspect ratio optimized for mobile viewing.
951
+ label: Aspect Ratio (Portrait)
952
+ values:
953
+ narrow: Landscape (4:3)
954
+ portrait: Portrait (9:16)
955
+ square: Square (1:1)
956
+ wide: Landscape (16:9)
586
957
  description: Interactive panorama using an image with rectangular projection
587
958
  name: 360° Image
959
+ hotspots:
960
+ edit_area:
961
+ back: Back
962
+ confirm_destroy: Are you sure you want to delete this area?
963
+ destroy: Delete area
964
+ tabs:
965
+ area: Hotspot Area
966
+ portrait: Portrait
967
+ attributes:
968
+ tooltipPosition:
969
+ label: Tooltip orientation
970
+ inline_help: Prevent the tooltip from covering the parts of the image it is meant to label.
971
+ values:
972
+ below: Below
973
+ above: Above
974
+ tooltipReference:
975
+ label: Tooltip position
976
+ inline_help: Show the tooltip at the indicator point or outside the hotspot area.
977
+ values:
978
+ indicator: At indicator
979
+ area: At area
980
+ tooltipMaxWidth:
981
+ label: Tooltip maximum width
982
+ inline_help: Set how wide the tooltip should be displayed.
983
+ values:
984
+ medium: Medium
985
+ narrow: Narrow
986
+ veryNarrow: Very Narrow
987
+ wide: Wide
988
+ tooltipTextAlign:
989
+ label: Text alignment in tooltip
990
+ inline_help: Align the text inside the tooltip.
991
+ values:
992
+ left: Left
993
+ center: Center
994
+ right: Right
995
+ color:
996
+ inline_help: Used for the indicator point.
997
+ label: Color
998
+ activeImage:
999
+ label: Active image
1000
+ inline_help: |-
1001
+ Display an alternative image when the hotspot area
1002
+ is active. Use an image where the area is visually
1003
+ highlighted.
1004
+ tooltipImage:
1005
+ label: Image in tooltip
1006
+ inline_help: Display an image inside the tooltip.
1007
+ area:
1008
+ label: Area
1009
+ inline_help: Adjust the size and position of the hotspot area.
1010
+ zoom:
1011
+ label: Zoom
1012
+ inline_help: Set how much the image should be zoomed in when the area is active.
1013
+ portraitTooltipPosition:
1014
+ label: Tooltip orientation (Portrait)
1015
+ inline_help: Prevent the tooltip from covering the parts of the image it is meant to label.
1016
+ values:
1017
+ below: Below
1018
+ above: Above
1019
+ portraitTooltipReference:
1020
+ label: Tooltip position (Portrait)
1021
+ inline_help: Show the tooltip at the indicator point or outside the hotspot area.
1022
+ values:
1023
+ indicator: At indicator
1024
+ area: At area
1025
+ portraitTooltipMaxWidth:
1026
+ label: Tooltip maximum width (Portrait)
1027
+ inline_help: Set how wide the tooltip should be displayed.
1028
+ values:
1029
+ medium: Medium
1030
+ narrow: Narrow
1031
+ veryNarrow: Very Narrow
1032
+ wide: Wide
1033
+ portraitColor:
1034
+ label: Color (Portrait)
1035
+ inline_help: Used for the indicator point.
1036
+ portraitActiveImage:
1037
+ label: Active image (Portrait)
1038
+ inline_help: |-
1039
+ Display an alternative image when the hotspot area
1040
+ is active. Use an image where the area is visually
1041
+ highlighted.
1042
+ portraitArea:
1043
+ label: Area (Portrait)
1044
+ inline_help: Adjust the size and position of the hotspot area.
1045
+ portraitZoom:
1046
+ label: Zoom (Portrait)
1047
+ inline_help: Set how much the portrait image should be zoomed in when the area is selected.
1048
+ edit_area_dialog:
1049
+ header: Area outline and indicator position
1050
+ tabs:
1051
+ default: Default image
1052
+ portrait: Portrait image
1053
+ modes:
1054
+ rect: Rectangle
1055
+ polygon: Polygon
1056
+ centerIndicator: Center indicator
1057
+ hotspots_image: Hotspots image
1058
+ double_click_to_delete: Double-click to remove point
1059
+ indicator_title: Drag to position indicator
1060
+ save: Save
1061
+ cancel: Cancel
1062
+ areas:
1063
+ add: Add
1064
+ label: Areas
1065
+ confirm_delete: Are you sure you want to delete this area?
1066
+ area_input:
1067
+ edit: Edit outline and indicator position
1068
+ attributes:
1069
+ image:
1070
+ label: Image
1071
+ inline_help: Image on which the hotspot areas should be placed.
1072
+ portraitImage:
1073
+ inline_help: Displayed when the browser viewport is taller than wide, for example on phones or tablets in portrait orientation. Can be used to provide an alternative to a landscape image that would otherwise be displayed too small.
1074
+ label: Image (Portrait)
1075
+ enablePanZoom:
1076
+ label: Pan & Zoom
1077
+ inline_help_html: |-
1078
+ Animates the image to zoom in on a hotspot when it
1079
+ is selected, making details easier to see.<br/><br/>If
1080
+ all details are clearly visible without zooming on
1081
+ desktop, this effect can optionally be enabled only
1082
+ for portrait mode.
1083
+ values:
1084
+ phonePlatform: In phone layout
1085
+ always: Always
1086
+ never: Never
1087
+ enableFullscreen:
1088
+ label: Enable fullscreen
1089
+ inline_help: Display a button to open the element in fullscreen mode.
1090
+ invertTooltips:
1091
+ label: Invert tooltip colors
1092
+ inline_help: Use dark tooltips with light text.
1093
+ description: Image with clickable areas
1094
+ name: Hotspots
1095
+ tabs:
1096
+ general: Hotspots
1097
+ infoTable:
1098
+ description: Two-column table for label value pairs.
1099
+ name: Info Table
1100
+ tabs:
1101
+ general: Info Table
1102
+ attributes:
1103
+ labelColumnAlign:
1104
+ label: "Text align (First column)"
1105
+ values:
1106
+ auto: "(Auto)"
1107
+ left: Left
1108
+ center: Center
1109
+ right: Right
1110
+ valueColumnAlign:
1111
+ label: "Text align (Second column)"
1112
+ values:
1113
+ auto: "(Auto)"
1114
+ left: Left
1115
+ center: Center
1116
+ right: Right
1117
+ labelColor:
1118
+ label: "Text color (First column)"
1119
+ valueColor:
1120
+ label: "Text align (Second column)"
1121
+ singleColumnInPhoneLayout:
1122
+ label: "Single column in phone layout"
1123
+ inline_help: "Stacks table rows vertically in phone layout to prevent content from being squeezed into narrow columns. Especially helpful for tables with long text or wide content that would otherwise be hard to read on small screens."
1124
+ singleColumnAlign:
1125
+ label: "Text align (Single column)"
1126
+ values:
1127
+ auto: "(Auto)"
1128
+ left: Left
1129
+ center: Center
1130
+ right: Right
1131
+ help_texts:
1132
+ shortcuts: |-
1133
+ <dl class="shortcuts">
1134
+ <dt>
1135
+ <span class="shortcut">
1136
+ <kbd>Enter</kbd>
1137
+ </span>
1138
+ <span class="inline_help">
1139
+ Add a new row to the table..
1140
+ </span>
1141
+ </dt>
1142
+ <dd>
1143
+ Insert table row
1144
+ </dd>
1145
+ <dt>
1146
+ <span class="shortcut">
1147
+ <kbd>Shift</kbd> + <kbd>Enter</kbd>
1148
+ </span>
1149
+ <span class="inline_help">
1150
+ Insert a new line without beginning a new paragraph.
1151
+ </span>
1152
+ </dt>
1153
+ <dd>
1154
+ Insert soft break/new line
1155
+ </dd>
1156
+ <dt>
1157
+ <span class="shortcut">
1158
+ <kbd>Alt</kbd> + <kbd>Enter</kbd>
1159
+ </span>
1160
+ <span class="inline_help">
1161
+ Specify potential line break points within long words
1162
+ to control hyphenation.
1163
+ </span>
1164
+ </dt>
1165
+ <dd>
1166
+ Insert soft hyphen
1167
+ </dd>
1168
+ </dl>
1169
+ tikTokEmbed:
1170
+ attributes:
1171
+ url:
1172
+ label: TikTok URL
1173
+ description: Embed content from TikTok
1174
+ name: TikTok
1175
+ tabs:
1176
+ general: TikTok Embed
588
1177
  edit_chapter:
589
1178
  attributes:
590
1179
  summary:
591
- inline_help: Summary of the chapter for display in the navigation bar. Only chapters with both title and summary set will get added as menu items to the navigation.
592
1180
  label: Summary
1181
+ inline_help: Summary of the chapter for display in the navigation bar.
593
1182
  title:
594
- inline_help: The chapter title will be displayed in the editor overview and the navigation bar of the entry. Only chapters with both title and summary set will get added as menu items to the navigation.
595
1183
  label: Title
596
- confirm_destroy: |-
597
- Really delete this chapter including ALL its sections?
1184
+ inline_help_html: |-
1185
+ The title of the chapter appears in the navigation
1186
+ bar. It is also used to create the part of the web
1187
+ address that helps link directly to that chapter.<br><br>
598
1188
 
599
- This operation cannot be undone.
1189
+ For example, if your chapter is titled 'Our Mission,'
1190
+ the system will create a web address like
1191
+ yourwebsite.com/story#our-mission, so
1192
+ people can jump straight to that chapter
1193
+ hideInNavigation:
1194
+ label: Hide in navigation bar
1195
+ inline_help: |-
1196
+ Chapter can be used as link destination but does not
1197
+ appear in the navigation bar.
1198
+ returnButtonLabel:
1199
+ label: Return button label
1200
+ sheetWidth:
1201
+ label: Overlay width
1202
+ values:
1203
+ full: Full width
1204
+ inset: With side margins
600
1205
  save_error: There was an error while saving this chapter.
601
1206
  tabs:
602
1207
  chapter: Chapter
1208
+ excursion: Excursion
603
1209
  edit_motif_area:
604
1210
  blank_slate: No area selected.
605
1211
  cancel: Cancel
@@ -608,15 +1214,41 @@ en:
608
1214
  hint: Drag to select the most important part of the image.
609
1215
  reset: Reset
610
1216
  save: Save
1217
+ chapter_menu_items:
1218
+ copy_permalink: Copy permalink
1219
+ move_to_main: Turn into chapter
1220
+ move_to_excursions: Turn into excursion
1221
+ destroy_chapter_menu_item:
1222
+ confirm_destroy: |-
1223
+ Really delete this chapter including ALL its sections?
1224
+
1225
+ This operation cannot be undone.
1226
+ destroy: Delete chapter
1227
+ destroy_content_element_menu_item:
1228
+ confirm_destroy: Really delete this element?
1229
+ destroy: Delete element
1230
+ selection_label: Delete selection
1231
+ duplicate_content_element_menu_item:
1232
+ label: Duplicate element
1233
+ selection_label: Duplicate selection
1234
+ content_element_menu_items:
1235
+ move: Move element...
1236
+ move_selection: Move selection...
1237
+ destroy_section_menu_item:
1238
+ confirm_destroy: Really delete this section including all its elements?
1239
+ destroy: Delete section
611
1240
  edit_section:
1241
+ hidden_info: This section is hidden outside of the editor.
1242
+ motif_area_info_text: Mark the most important part of the backdrop that should be visible and unobstructed when reaching the section.
612
1243
  attributes:
613
1244
  appearance:
614
- inline_help: This setting controls how the scrolling foreground should get dimmed to increase contrast from the background. The option "Cards" adds a box with rounded corners to the foreground, with "Shadow" you can add a light or dark shadow to increase readability.
1245
+ inline_help: Controls how the foreground is visually separated from the background. "Shadow" adds a gradient behind text. "Cards" places content on a rounded box. "Split" covers half the viewport width with an overlay for the content.
615
1246
  label: Text-Background
616
1247
  values:
617
1248
  cards: Card
618
1249
  shadow: Shadow
619
1250
  transparent: Transparent
1251
+ split: Split
620
1252
  atmoAudioFileId:
621
1253
  inline_help: Choose an audio file, that shall be played in the background. If you want this audio to continue playing on following sections, just choose the same file again there.
622
1254
  label: Atmo Audio
@@ -634,6 +1266,7 @@ en:
634
1266
  color: Color
635
1267
  image: Image
636
1268
  video: Video
1269
+ contentElement: Interactive Element
637
1270
  backdropVideo:
638
1271
  label: Background-Video
639
1272
  backdropVideoMobile:
@@ -641,15 +1274,13 @@ en:
641
1274
  label: Background-Video (Portrait)
642
1275
  dynamicShadowOpacity:
643
1276
  inline_help: Intensity of the shadow which is faded in behind the text to ensure contrast when content is scrolled to intersect with the motif area. Note that this shadow is only visible if motif area and section content do not fit side by side. It's best to switch to phone preview when adjusting this value.
644
- inline_help_disabled: Activate "Expose motif area" above to use this setting.
1277
+ inline_help_disabled: Set top padding to "Adjust automatically" in the section's padding settings to use this option.
645
1278
  label: Dynamic shadow
646
- exposeMotifArea:
647
- inline_help: Ensure the selected motif area of the background asset is visible and not covered by other elements when first reaching the section. If motif area and section content do not fit side by side, extra space will be inserted at the top of the section to move content down.
648
- inline_help_disabled: Click "Select motif area" in the "three dots" menu of the background image/video field above to use this feature. It let's you make sure important parts of the backdrop asset won't be hidden by other elements.
649
- label: Expose motif area
650
1279
  fullHeight:
651
1280
  inline_help: Activate this option if the background of this section (e.g. image, color or video) is supposed to be enlarged such that the whole browser window (the so called viewport) is covered. Deactivate this option to create a short section. The height of the section and its background is then determined only by the content of the section. Multiple sections with different backgrounds can then be visible at once on the user's screen. This option needs to be activated for two adjacent sections to be able to use a fade transition between them.
652
1281
  label: Use Full Viewport-Height
1282
+ inline_help_disabled: |-
1283
+ Interactive backdrop elements always take up full viewport height.
653
1284
  invert:
654
1285
  label: Invert Text Colors
655
1286
  layout:
@@ -668,7 +1299,34 @@ en:
668
1299
  values:
669
1300
  narrow: Narrow
670
1301
  wide: Wide
671
- edit_motif_area: Select motif area...
1302
+ backdropContentElement:
1303
+ label: Element
1304
+ backdropSize:
1305
+ label: Backdrop scaling
1306
+ values:
1307
+ coverViewport: Cover viewport
1308
+ coverSection: Cover section
1309
+ cardSurfaceColor:
1310
+ inline_help: Background color of the card. Use a translucent color to let the backdrop shine through and enable background blur.
1311
+ label: Cards background color
1312
+ auto: "(Auto)"
1313
+ auto_color: "Auto color"
1314
+ shadowColor:
1315
+ inline_help: Color of the gradients that improve legibility of the content in front of the backdrop.
1316
+ label: Shadow color
1317
+ auto: "(Auto)"
1318
+ auto_color: "Auto color"
1319
+ splitOverlayColor:
1320
+ inline_help: Color of the overlay behind the content.
1321
+ label: Overlay color
1322
+ auto: "(Auto)"
1323
+ auto_color: "Auto color"
1324
+ overlayBackdropBlur:
1325
+ inline_help: Amount of blur applied to the backdrop behind the overlay.
1326
+ label: Background blur
1327
+ inline_help_disabled: Only available when overlay color has transparency.
1328
+ sectionPaddings:
1329
+ label: "Top/bottom padding"
672
1330
  tabs:
673
1331
  section: Section
674
1332
  edit_section_transition:
@@ -700,6 +1358,8 @@ en:
700
1358
  entry_outline:
701
1359
  add_chapter: New chapter
702
1360
  header: Outline
1361
+ finish_reorder_chapters: Finish reordering
1362
+ reorder_chapters: "Reorder chapters..."
703
1363
  inline_file_rights_menu_item:
704
1364
  label: Hide rights information here
705
1365
  insert_content_element:
@@ -707,10 +1367,9 @@ en:
707
1367
  header: Insert element
708
1368
  no_options: No options available
709
1369
  section_item:
1370
+ cutoff: Paywall cutoff
710
1371
  drag_hint: Drag to move section
711
- duplicate: Duplicate
712
- insert_section_above: Insert section above
713
- insert_section_below: Insert section below
1372
+ hidden: Only visible in editor
714
1373
  save_error: There was an error while saving this section.
715
1374
  transitions:
716
1375
  beforeAfter: Static Backgrounds
@@ -719,6 +1378,24 @@ en:
719
1378
  reveal: Reveal
720
1379
  scroll: Scroll
721
1380
  scrollOver: Scroll over
1381
+ section_menu_items:
1382
+ copy_permalink: Copy permalink
1383
+ duplicate: Duplicate section
1384
+ hide: Hide outside of the editor
1385
+ insert_section_above: Insert section above
1386
+ insert_section_below: Insert section below
1387
+ move: Move section...
1388
+ reset_cutoff: Remove paywall cutoff
1389
+ set_cutoff: Set paywall cutoff above
1390
+ show: Show outside of the editor
1391
+ section_padding_visualization:
1392
+ intersecting_auto: "Visualization of dynamic padding that adjusts to the motif area size to prevent text from overlapping the motif"
1393
+ intersecting_manual: "Visualization of manually defined padding that stays constant as viewport size changes"
1394
+ side_by_side: "Visualization of top padding when content fits next to the motif area"
1395
+ top_padding: "Visualization of top padding"
1396
+ bottom_padding: "Visualization of bottom padding"
1397
+ section_paddings_input:
1398
+ motif: Motif
722
1399
  select_link_destination:
723
1400
  cancel: Cancel
724
1401
  create: Create
@@ -730,10 +1407,260 @@ en:
730
1407
  select_file: Provide file download
731
1408
  select_file_description: Let readers download a file when they click the link.
732
1409
  select_in_sidebar: Select file
1410
+ selection_label: a file to download
1411
+ select_move_destination:
1412
+ cancel: Cancel
1413
+ header_insertPosition: Move section
1414
+ header_sectionPart: Move element
1415
+ hint: Select the position to move to.
1416
+ selectable_storyline_item:
1417
+ blank_slate: No chapters
1418
+ blank_slate_excursions: No excursions
733
1419
  selectable_chapter_item:
734
1420
  title: Select chapter
1421
+ insert_here: Move here
735
1422
  selectable_section_item:
736
1423
  title: Select section
1424
+ insert_here: Move here
1425
+ insert_at_beginning: Move to beginning
1426
+ insert_at_end: Move to end
1427
+ edit_motif_area_menu_item: Select motif area...
1428
+ edit_motif_area_input:
1429
+ select: Select motif area
1430
+ edit: Edit motif area
1431
+ warn: No motif area selected
1432
+ ignore_image: Ignore for this image
1433
+ ignore_video: Ignore for this video
1434
+ backdrop_content_element_input:
1435
+ add: New element
1436
+ unset: No longer use as backdrop
1437
+ scales:
1438
+ sectionPaddingTop:
1439
+ none: "-"
1440
+ xxxs: XXXS
1441
+ xxs: XXS
1442
+ xs: XS
1443
+ sm: S
1444
+ md: M
1445
+ lg: L
1446
+ xl: XL
1447
+ xxl: XXL
1448
+ xxxl: XXXL
1449
+ sectionPaddingBottom:
1450
+ none: "-"
1451
+ xxxs: XXXS
1452
+ xxs: XXS
1453
+ xs: XS
1454
+ sm: S
1455
+ md: M
1456
+ lg: L
1457
+ xl: XL
1458
+ xxl: XXL
1459
+ xxxl: XXXL
1460
+ contentElementBoxBorderRadius:
1461
+ none: None
1462
+ contentElementMargin:
1463
+ xxs: XXS
1464
+ xs: XS
1465
+ sm: S
1466
+ md: M
1467
+ lg: L
1468
+ xl: XL
1469
+ xxl: XXL
1470
+ contentElementBoxShadow:
1471
+ sm: S
1472
+ md: M
1473
+ lg: L
1474
+ xl: XL
1475
+ content_element_text_inline_file_rights_attributes:
1476
+ showTextInlineFileRightsBackdrop:
1477
+ label: "Backdrop behind inline file rights"
1478
+ inline_help: "Improve readability on busy backgrounds."
1479
+ inline_help_disabled: "Only available when rights texts are displayed at the element."
1480
+ common:
1481
+ default_suffix: " (Default)"
1482
+ storylines_tabs:
1483
+ main: Outline
1484
+ excursions: Excursions
1485
+ storyline_item:
1486
+ reorder_chapters: To ease reordering, chapters have been collapsed.
1487
+ done: Done
1488
+ add_chapter: New chapter
1489
+ add_excursion: New excursion
1490
+ excursion_blank_slate: |-
1491
+ <p>
1492
+ <strong>Excursions</strong> provide additional content
1493
+ outside the main path. They open in a <strong>separate
1494
+ layer</strong> and readers automatically return to their
1495
+ original position.
1496
+ </p>
1497
+ <p>
1498
+ Create your first excursion and <strong>link to
1499
+ it</strong> from your story to make it accessible to
1500
+ readers.
1501
+ </p>
1502
+ <a target="_blank" rel="noopener noreferrer"
1503
+ href="https://pageflow.freshdesk.com/en/support/solutions/articles/11000134532-what-are-excursions-and-how-can-i-use-them-for-in-depth-content">Learn more about excursions</a>
1504
+ aspect_ratios:
1505
+ narrow: Landscape (4:3)
1506
+ portrait: Portrait (3:4)
1507
+ square: Square (1:1)
1508
+ wide: Landscape (16:9)
1509
+ original: Original
1510
+ content_element_style_list_input:
1511
+ add: "Add style..."
1512
+ remove: "Remove style"
1513
+ marginTop: "Margin top"
1514
+ marginBottom: "Margin bottom"
1515
+ boxShadow: "Box shadow"
1516
+ outlineColor: "Outline"
1517
+ image_modifier_list_input:
1518
+ add: "Add style..."
1519
+ remove: "Remove style"
1520
+ crop_types:
1521
+ circle: Circle
1522
+ edit_section_paddings:
1523
+ tabs:
1524
+ sectionPaddings: Paddings
1525
+ portrait: Portrait
1526
+ side_by_side_info: 'When motif and content fit side by side:'
1527
+ attributes:
1528
+ topPaddingVisualization:
1529
+ label: Top padding
1530
+ exposeMotifArea:
1531
+ label: Top Padding
1532
+ values:
1533
+ 'true': Adjust automatically to expose a motif in the background
1534
+ 'false': Set manually
1535
+ sideBySideVisualization:
1536
+ label: Side by side
1537
+ paddingTop:
1538
+ label: Top padding
1539
+ bottomPaddingVisualization:
1540
+ label: Bottom padding
1541
+ paddingBottom:
1542
+ label: Bottom padding
1543
+ samePortraitPaddings:
1544
+ label: Use same paddings as in landscape orientation
1545
+ portraitExposeMotifArea:
1546
+ label: Top Padding
1547
+ portraitPaddingTop:
1548
+ label: Top padding (Portrait)
1549
+ portraitPaddingBottom:
1550
+ label: Bottom padding (Portrait)
1551
+ remainingVerticalSpace:
1552
+ label: Remaining vertical space
1553
+ inline_help: Controls where content is positioned when it does not fill the full height of the section.
1554
+ inline_help_disabled: Only available when "Use Full Viewport-Height" is enabled in section settings.
1555
+ values:
1556
+ around: Around content
1557
+ above: Above content
1558
+ below: Below content
1559
+ edit_defaults:
1560
+ back: Appearance
1561
+ sections_info: Changes to these settings have no effect on existing sections.
1562
+ content_elements_info: |-
1563
+ Changes to these settings have no effect on existing elements.
1564
+ Settings can later be changed for individual elements.
1565
+ all_elements: All elements
1566
+ tabs:
1567
+ sections: New sections
1568
+ content_elements: New elements
1569
+ attributes:
1570
+ defaultSectionLayout:
1571
+ label: Content alignment
1572
+ inline_help: |-
1573
+ Default position of the scrolling foreground layer of
1574
+ new sections on desktop devices.
1575
+ values:
1576
+ center: Centered
1577
+ centerRagged: Centered (Ragged)
1578
+ left: Left
1579
+ right: Right
1580
+ defaultSectionAppearance:
1581
+ label: Text background
1582
+ inline_help: Default appearance of new sections.
1583
+ values:
1584
+ cards: Card
1585
+ shadow: Shadow
1586
+ transparent: Transparent
1587
+ topPaddingVisualization:
1588
+ label: Top padding
1589
+ defaultSectionPaddingTop:
1590
+ label: Top padding
1591
+ inline_help: Default vertical spacing above the content of new sections.
1592
+ bottomPaddingVisualization:
1593
+ label: Bottom padding
1594
+ defaultSectionPaddingBottom:
1595
+ label: Bottom padding
1596
+ inline_help: Default vertical spacing below the content of new sections.
1597
+ defaultContentElementFullWidthInPhoneLayout:
1598
+ label: Full width in phone layout
1599
+ inline_help: |-
1600
+ By default, make elements span the full width of the
1601
+ viewport on smaller screens.
1602
+ defaultCaptionVariant:
1603
+ label: Caption variant
1604
+ inline_help: Default look of captions of newly added elements.
1605
+ defaultFileRightsDisplay:
1606
+ label: Display rights of uploaded files
1607
+ inline_help: |-
1608
+ Decide if the credit note of newly uploaded files should be
1609
+ displayed in the summary list in the info box, or right at
1610
+ the place in the entry where the file is used.
1611
+ values:
1612
+ credits: In the info box
1613
+ inline: At the element where it is used
1614
+ typography_sizes:
1615
+ xxxl: Huge
1616
+ xxl: Extra large
1617
+ xl: Very large
1618
+ lg: Large
1619
+ md: Medium
1620
+ sm: Small
1621
+ xs: Very small
1622
+ xxs: Extra small
1623
+ xxxs: Tiny
1624
+ short:
1625
+ xxxl: XXXL
1626
+ xxl: XXL
1627
+ xl: XL
1628
+ lg: L
1629
+ md: M
1630
+ sm: S
1631
+ xs: XS
1632
+ xxs: XXS
1633
+ xxxs: XXXS
1634
+ link_button_variant_attributes:
1635
+ linkButtonVariant:
1636
+ label: Button Variante
1637
+ blank: "(Default)"
1638
+ main_menu:
1639
+ comments: Comments
1640
+ comments_view:
1641
+ activity: Latest activity
1642
+ always_show_comments: Always show comments
1643
+ display_options: Comment display
1644
+ filter:
1645
+ all: All topics
1646
+ unresolved: Unresolved topics
1647
+ new_thread: New topic
1648
+ section: Section
1649
+ tabs:
1650
+ comments: All
1651
+ selection: For selection
1652
+ comment_activity_view:
1653
+ back: Comments
1654
+ tabs:
1655
+ activity: Latest activity
1656
+ new_thread_view:
1657
+ back: Comments
1658
+ tabs:
1659
+ newComment: New topic
1660
+ configuration_places:
1661
+ entry: "Settings"
1662
+ label: "%{chapter} - %{subject}"
1663
+ section: "Section %{number}"
737
1664
  help_entries:
738
1665
  content_elements:
739
1666
  menu_item: Content Elements
@@ -848,24 +1775,27 @@ en:
848
1775
  text: "# Section Options\n\nA click in an empty area of a section will display a selection rectangle around the section. On the right side of the selection rectangle you will find a button with a pencil icon that allows you to edit the options of the section in the sidebar.\n\n## Layout\n\nThe **Foreground Positioning** option allows you to select how the contents of the section should be arranged horizontally. For example, if the background of the section is on the right side, text and content elements can be positioned on the left side and vice versa. For backgrounds in the total or a centred motif, the content elements can be positioned in the middle.\n\nBy selecting a **gradient function**, a sufficient contrast between text and background can be ensured. With the **shadow**, the background is darkened or lightened with a colour gradient. With the **Card** setting, the content elements are displayed on a surface with rounded corners.\n\n## Background\n\nEither an **image**, a **colour** or a **video loop** can be displayed in the background of the section. For background images and video, the important (to be emphasised, essential) part of the image can be marked. This motif area is then initially not covered by the scrolling foreground in both desktop and mobile device displays. Further information about the \"motif areas\" here.\n\nThe **Background image (portrait)** option can be used to optionally specify an alternative image to be used if the screen aspect ratio of a terminal device is higher than wide, for example on smartphones and tablets in portrait mode. The image can be configured as an alternative to the background image in landscape mode, from which otherwise important parts might be cut off.\n\n## Atmo Audio\n\nWith the **\"Atmo\"**, each section can play sound in the background, regardless of the content element. It can be determined whether a sound can only be heard in one section or continues over several sections without interruption. Simply select the same audio file for the following sections under **Options** as Atmo. In this way chapters can be acoustically separated from each other and coherent pages can be interwoven more strongly.\n\nWhen playing audio and video, you can also select whether the background sound should continue to play normally or more quietly during media playback, or whether it should fade out completely. The setting of the ambience sounds can be accessed on each page via the **Options** tab. If the atmosphere disturbs you while editing your entry in the editor, you can temporarily mute it with the key combination **Alt + a**. To reactivate the Atmo, simply press **Alt + a** again.\n\n\n## Transitions\n\nA **transition effect** can be selected between every two sections. \nClick in the background of a section to select it. On the right side \nof the selection rectangle, buttons with two interlocking arrows as \nsymbols appear at the borders of the neighbouring sections. \n\nClick on one of the buttons to select the transition effect for the section \nborder in the sidebar.\n\nThe **Fade** effect is only available between sections for which the \n**Full Viewport Height** option has been activated.\n"
849
1776
  inline_editing:
850
1777
  add_caption: Add caption
1778
+ add_comment: Add comment
851
1779
  add_content_element: Add new element
852
1780
  cancel: Cancel
853
1781
  drag_content_element: Drag to move element
1782
+ padding_suppressed_before_full_width: Padding suppressed before full width element
1783
+ padding_suppressed_after_full_width: Padding suppressed after full width element
854
1784
  edit_section_transition_after: Edit section transition
855
1785
  edit_section_transition_before: Edit section transition
856
- external_links:
857
- open_in_new_tab: Open in new tab
858
- open_in_new_tab_message: Opening in same tab is disabled inside the editor
1786
+ flip_card: Flip card
859
1787
  formats:
860
1788
  block_quote: Block quote
861
- bold: Bold
862
1789
  bulleted_list: Bulleted list
863
1790
  heading: Heading
864
- italic: Italic
865
1791
  ordered_list: Ordered list
866
1792
  paragraph: Paragraph
867
- strikethrough: Strikethrough
868
- underline: Underline
1793
+ bold: Bold (Ctrl+B)
1794
+ italic: Italic (Ctrl+I)
1795
+ strikethrough: Strikethrough (Ctrl+Shift+S)
1796
+ underline: Underline (Ctrl+U)
1797
+ sub: Subscript (Ctrl+;)
1798
+ sup: Superscript (Ctrl+,)
869
1799
  insert_content_element:
870
1800
  after: Insert new element below
871
1801
  before: Insert new element above
@@ -874,9 +1804,12 @@ en:
874
1804
  chapter_number: Chapter %{number}
875
1805
  deleted_chapter: Deleted chapter
876
1806
  deleted_file: Deleted file
1807
+ excursion_with_title: "Excursion: %{title}"
877
1808
  opens_in_new_tab: Opens in new tab
878
1809
  opens_in_same_tab: Outside editor, will open in same tab
1810
+ untitled_excursion: Untitled excursion
879
1811
  visit_chapter: Go to chapter
1812
+ visit_excursion: Go to excursion
880
1813
  visit_section: Go to section
881
1814
  remove_link: Remove link
882
1815
  select_content_element: Select element
@@ -892,9 +1825,81 @@ en:
892
1825
  type_text: Type some text
893
1826
  type_title: Title
894
1827
  url_placeholder: Type or paste URL
895
- public:
896
- third_party_consent:
897
- opt_in_prompt:
898
- twitter: I agree with being shown content from Twitter.
899
- twitter:
900
- default_title: Tweet
1828
+ select_backdrop_content_element: Edit backdrop
1829
+ back_to_section: Back to section
1830
+ select_link_destination: "Select link destination"
1831
+ change_link_destination: "Change link destination"
1832
+ remove_link: "Remove link"
1833
+ edit_section_padding_top: Edit top padding
1834
+ edit_section_padding_bottom: Edit bottom padding
1835
+ content_element_margin_top: Top margin
1836
+ content_element_margin_bottom: Bottom margin
1837
+ expose_motif_area: Expose motif
1838
+ review:
1839
+ add_comment: Add comment
1840
+ cancel_add_comment: Cancel
1841
+ hide_comments: Hide comments
1842
+ show_comments: Show comments
1843
+ show_comments_with_unread:
1844
+ one: Show comments (1 topic with new activity)
1845
+ other: Show comments (%{count} topics with new activity)
1846
+ comment_toolbar: Comments
1847
+ filter:
1848
+ label: Filter comments
1849
+ unresolved: Unresolved
1850
+ all: All
1851
+ previous_comment: Previous comment
1852
+ next_comment: Next comment
1853
+ comment_count:
1854
+ zero: No comments
1855
+ one: 1 comment
1856
+ other: '%{count} comments'
1857
+ unread_count:
1858
+ one: 1 unread
1859
+ other: '%{count} unread'
1860
+ unread_reply_count:
1861
+ one: 1 unread
1862
+ other: '%{count} unread'
1863
+ unread_replies: Unread replies
1864
+ select_content_element: Select to comment
1865
+ select_section: Select section to comment
1866
+ select_text_to_comment: Select text to comment
1867
+ new_topic: New topic
1868
+ add_comment_placeholder: Add a comment...
1869
+ reply_placeholder: Reply...
1870
+ cancel: Cancel
1871
+ save: Save
1872
+ send: Send
1873
+ enter_for_new_line: Enter for new line
1874
+ comment_actions: Comment actions
1875
+ edit_comment: Edit
1876
+ edited: Edited %{date}
1877
+ resolve: Mark as resolved
1878
+ unresolve: Mark as unresolved
1879
+ resolution: Marked as resolved
1880
+ resolution_by: Marked as resolved by
1881
+ thread_actions: Thread actions
1882
+ resolved_count:
1883
+ one: 1 resolved
1884
+ other: '%{count} resolved'
1885
+ reply_count:
1886
+ one: 1 reply
1887
+ other: '%{count} replies'
1888
+ earlier_reply_count:
1889
+ one: 1 more
1890
+ other: '%{count} more'
1891
+ no_threads_yet: No comments yet
1892
+ refers_to_deleted_element: Refers to a deleted element
1893
+ activity:
1894
+ toggle: Latest activity
1895
+ summary:
1896
+ topic: topic started
1897
+ reply_count:
1898
+ one: 1 reply
1899
+ other: '%{count} replies'
1900
+ resolution: marked as resolved
1901
+ and: ' and '
1902
+ today: Today
1903
+ yesterday: Yesterday
1904
+ no_activity_yet: No activity yet
1905
+ show_more: Show more