pageflow 17.0.5 → 17.1.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 (488) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +362 -35
  3. data/README.md +0 -1
  4. data/admins/pageflow/accounts.rb +16 -14
  5. data/admins/pageflow/entry.rb +68 -20
  6. data/admins/pageflow/entry_templates.rb +10 -9
  7. data/admins/pageflow/folder.rb +1 -1
  8. data/admins/pageflow/membership.rb +4 -4
  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/javascripts/pageflow/admin/entries.js +30 -5
  15. data/app/assets/javascripts/pageflow/dist/ui.js +2865 -257
  16. data/app/assets/stylesheets/pageflow/admin/entries/index_table.scss +2 -1
  17. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +2 -1
  18. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +6 -0
  19. data/app/assets/stylesheets/pageflow/editor/base.scss +2 -0
  20. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +7 -1
  21. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +5 -1
  22. data/app/assets/stylesheets/pageflow/editor/files.scss +28 -16
  23. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +24 -0
  24. data/app/assets/stylesheets/pageflow/editor/info_box.scss +11 -3
  25. data/app/assets/stylesheets/pageflow/editor/list.scss +6 -4
  26. data/app/assets/stylesheets/pageflow/editor/list_search_field.scss +52 -0
  27. data/app/assets/stylesheets/pageflow/editor/outline.scss +0 -13
  28. data/app/assets/stylesheets/pageflow/editor/select_button.scss +1 -1
  29. data/app/assets/stylesheets/pageflow/editor/sortable.scss +12 -0
  30. data/app/assets/stylesheets/pageflow/mixins/buttons.scss +4 -4
  31. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -0
  32. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +8 -0
  33. data/app/assets/stylesheets/pageflow/ui/input/file_name_input.scss +37 -0
  34. data/app/assets/stylesheets/pageflow/ui/properties.scss +5 -0
  35. data/app/assets/stylesheets/pageflow/ui.scss +1 -0
  36. data/app/controllers/concerns/pageflow/controller_delegation.rb +1 -1
  37. data/app/controllers/concerns/pageflow/edit_locking.rb +17 -10
  38. data/app/controllers/concerns/pageflow/entry_password_protection.rb +1 -0
  39. data/app/controllers/concerns/pageflow/public_https_mode.rb +2 -1
  40. data/app/controllers/concerns/pageflow/quota_verification.rb +5 -4
  41. data/app/controllers/pageflow/admin/initial_passwords_controller.rb +1 -0
  42. data/app/controllers/pageflow/application_controller.rb +19 -19
  43. data/app/controllers/pageflow/chapters_controller.rb +3 -2
  44. data/app/controllers/pageflow/edit_locks_controller.rb +3 -2
  45. data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -0
  46. data/app/controllers/pageflow/editor/entries_controller.rb +2 -1
  47. data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -0
  48. data/app/controllers/pageflow/editor/file_import_controller.rb +3 -3
  49. data/app/controllers/pageflow/editor/files_controller.rb +7 -6
  50. data/app/controllers/pageflow/editor/widgets_controller.rb +1 -0
  51. data/app/controllers/pageflow/entries_controller.rb +77 -17
  52. data/app/controllers/pageflow/feeds_controller.rb +1 -1
  53. data/app/controllers/pageflow/files_controller.rb +1 -0
  54. data/app/controllers/pageflow/pages_controller.rb +4 -2
  55. data/app/controllers/pageflow/revisions_controller.rb +2 -1
  56. data/app/controllers/pageflow/sitemaps_controller.rb +1 -1
  57. data/app/controllers/pageflow/storylines_controller.rb +1 -0
  58. data/app/helpers/pageflow/admin/cutoff_modes_helper.rb +12 -0
  59. data/app/helpers/pageflow/admin/entries_helper.rb +1 -1
  60. data/app/helpers/pageflow/admin/entry_translations_helper.rb +18 -0
  61. data/app/helpers/pageflow/admin/features_helper.rb +1 -1
  62. data/app/helpers/pageflow/admin/form_helper.rb +3 -3
  63. data/app/helpers/pageflow/admin/locales_helper.rb +10 -2
  64. data/app/helpers/pageflow/admin/memberships_helper.rb +32 -32
  65. data/app/helpers/pageflow/admin/revisions_helper.rb +1 -1
  66. data/app/helpers/pageflow/admin/sites_helper.rb +22 -0
  67. data/app/helpers/pageflow/admin/users_helper.rb +7 -5
  68. data/app/helpers/pageflow/admin/widgets_helper.rb +3 -3
  69. data/app/helpers/pageflow/asset_urls_helper.rb +1 -1
  70. data/app/helpers/pageflow/audio_files_helper.rb +5 -2
  71. data/app/helpers/pageflow/background_image_helper.rb +7 -6
  72. data/app/helpers/pageflow/common_entry_seed_helper.rb +2 -4
  73. data/app/helpers/pageflow/editor/config_helper.rb +1 -1
  74. data/app/helpers/pageflow/editor/files_helper.rb +1 -1
  75. data/app/helpers/pageflow/embed_code_helper.rb +3 -3
  76. data/app/helpers/pageflow/entries_helper.rb +58 -34
  77. data/app/helpers/pageflow/entry_json_seed_helper.rb +3 -2
  78. data/app/helpers/pageflow/feeds_helper.rb +2 -2
  79. data/app/helpers/pageflow/file_background_images_helper.rb +2 -2
  80. data/app/helpers/pageflow/file_thumbnails_helper.rb +4 -3
  81. data/app/helpers/pageflow/files_helper.rb +5 -4
  82. data/app/helpers/pageflow/folders_helper.rb +8 -5
  83. data/app/helpers/pageflow/help_entries_helper.rb +2 -2
  84. data/app/helpers/pageflow/hreflang_links_helper.rb +37 -0
  85. data/app/helpers/pageflow/info_box_helper.rb +7 -11
  86. data/app/helpers/pageflow/media_query_helper.rb +3 -3
  87. data/app/helpers/pageflow/navigation_bar_helper.rb +1 -1
  88. data/app/helpers/pageflow/overview_helper.rb +1 -1
  89. data/app/helpers/pageflow/page_types_helper.rb +5 -5
  90. data/app/helpers/pageflow/pages_helper.rb +29 -15
  91. data/app/helpers/pageflow/public_i18n_helper.rb +1 -1
  92. data/app/helpers/pageflow/quota_helper.rb +4 -4
  93. data/app/helpers/pageflow/render_json_helper.rb +6 -3
  94. data/app/helpers/pageflow/revision_file_helper.rb +2 -1
  95. data/app/helpers/pageflow/sites_helper.rb +3 -3
  96. data/app/helpers/pageflow/social_share_helper.rb +24 -10
  97. data/app/helpers/pageflow/social_share_links_helper.rb +12 -9
  98. data/app/helpers/pageflow/structured_data_helper.rb +1 -1
  99. data/app/helpers/pageflow/stub_page_configuration.rb +7 -3
  100. data/app/helpers/pageflow/text_direction_helper.rb +1 -1
  101. data/app/helpers/pageflow/themes_helper.rb +1 -1
  102. data/app/helpers/pageflow/video_files_helper.rb +29 -13
  103. data/app/helpers/pageflow/widgets_helper.rb +7 -6
  104. data/app/inputs/pageflow_permalink_input.rb +3 -2
  105. data/app/jobs/pageflow/application_job.rb +1 -0
  106. data/app/jobs/pageflow/entry_export_import/upload_and_publish_file_job.rb +1 -1
  107. data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +1 -0
  108. data/app/jobs/pageflow/poll_zencoder_job.rb +3 -2
  109. data/app/jobs/pageflow/process_image_or_text_track_job.rb +1 -0
  110. data/app/jobs/pageflow/prune_auto_snapshots_job.rb +1 -0
  111. data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +1 -0
  112. data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +1 -0
  113. data/app/mailers/pageflow/user_mailer.rb +1 -0
  114. data/app/models/concerns/pageflow/auto_generated_perma_id.rb +13 -1
  115. data/app/models/concerns/pageflow/entry_publication_states.rb +7 -3
  116. data/app/models/concerns/pageflow/feature_target.rb +8 -4
  117. data/app/models/concerns/pageflow/output_source.rb +3 -3
  118. data/app/models/concerns/pageflow/permalinkable.rb +2 -1
  119. data/app/models/concerns/pageflow/reusable_file.rb +23 -23
  120. data/app/models/concerns/pageflow/serialization_blacklist.rb +1 -1
  121. data/app/models/concerns/pageflow/suspendable.rb +5 -3
  122. data/app/models/concerns/pageflow/theme_referencer.rb +1 -1
  123. data/app/models/concerns/pageflow/translatable.rb +62 -0
  124. data/app/models/concerns/pageflow/uploadable_file.rb +6 -6
  125. data/app/models/pageflow/account.rb +6 -5
  126. data/app/models/pageflow/account_member_query.rb +1 -1
  127. data/app/models/pageflow/account_role_query.rb +1 -1
  128. data/app/models/pageflow/application_query.rb +1 -1
  129. data/app/models/pageflow/application_record.rb +1 -1
  130. data/app/models/pageflow/audio_file.rb +4 -4
  131. data/app/models/pageflow/audio_file_url_templates.rb +1 -1
  132. data/app/models/pageflow/authentication_token.rb +2 -2
  133. data/app/models/pageflow/chapter.rb +6 -1
  134. data/app/models/pageflow/chapter_scaffold.rb +2 -4
  135. data/app/models/pageflow/cname_site_request_scope.rb +1 -1
  136. data/app/models/pageflow/customized_theme.rb +6 -6
  137. data/app/models/pageflow/draft_entry.rb +37 -9
  138. data/app/models/pageflow/edit_lock.rb +19 -21
  139. data/app/models/pageflow/encoding_confirmation.rb +2 -2
  140. data/app/models/pageflow/entries_feed.rb +2 -2
  141. data/app/models/pageflow/entry.rb +44 -30
  142. data/app/models/pageflow/entry_at_revision.rb +5 -1
  143. data/app/models/pageflow/entry_duplicate.rb +8 -5
  144. data/app/models/pageflow/entry_publication.rb +2 -2
  145. data/app/models/pageflow/entry_role_query.rb +4 -4
  146. data/app/models/pageflow/entry_template.rb +4 -4
  147. data/app/models/pageflow/entry_title_or_account_name_query.rb +2 -2
  148. data/app/models/pageflow/entry_translation_group.rb +42 -0
  149. data/app/models/pageflow/file_reuse.rb +2 -2
  150. data/app/models/pageflow/file_usage.rb +10 -3
  151. data/app/models/pageflow/folder.rb +2 -2
  152. data/app/models/pageflow/home_button.rb +7 -7
  153. data/app/models/pageflow/image_file.rb +20 -5
  154. data/app/models/pageflow/image_file_url_templates.rb +1 -1
  155. data/app/models/pageflow/invitation_form.rb +2 -1
  156. data/app/models/pageflow/managed_user_query.rb +1 -1
  157. data/app/models/pageflow/membership.rb +5 -5
  158. data/app/models/pageflow/nested_revision_component_copy.rb +263 -0
  159. data/app/models/pageflow/null_user.rb +1 -1
  160. data/app/models/pageflow/overview_button.rb +1 -1
  161. data/app/models/pageflow/page.rb +7 -3
  162. data/app/models/pageflow/permalink.rb +23 -2
  163. data/app/models/pageflow/permalink_directory.rb +7 -0
  164. data/app/models/pageflow/permalink_redirect.rb +7 -0
  165. data/app/models/pageflow/positioned_file.rb +5 -5
  166. data/app/models/pageflow/potential_entry_translations.rb +55 -0
  167. data/app/models/pageflow/potential_memberships.rb +5 -4
  168. data/app/models/pageflow/published_entry.rb +62 -11
  169. data/app/models/pageflow/revision.rb +24 -15
  170. data/app/models/pageflow/roles.rb +14 -18
  171. data/app/models/pageflow/site.rb +36 -3
  172. data/app/models/pageflow/site_root_entry_form.rb +27 -0
  173. data/app/models/pageflow/sitemaps.rb +10 -1
  174. data/app/models/pageflow/storyline.rb +5 -2
  175. data/app/models/pageflow/storyline_scaffold.rb +1 -1
  176. data/app/models/pageflow/text_track_file.rb +1 -1
  177. data/app/models/pageflow/text_track_file_url_templates.rb +1 -1
  178. data/app/models/pageflow/theme_customization_file.rb +3 -2
  179. data/app/models/pageflow/thumbnail_file_resolver.rb +1 -1
  180. data/app/models/pageflow/url_template.rb +1 -1
  181. data/app/models/pageflow/used_file.rb +7 -3
  182. data/app/models/pageflow/user_name_query.rb +2 -2
  183. data/app/models/pageflow/video_file.rb +22 -15
  184. data/app/models/pageflow/video_file_url_templates.rb +6 -4
  185. data/app/models/pageflow/widget.rb +4 -3
  186. data/app/models/pageflow/with_file_usage_extension.rb +1 -1
  187. data/app/models/pageflow/zencoder_attachment.rb +8 -8
  188. data/app/policies/pageflow/account_policy.rb +3 -1
  189. data/app/policies/pageflow/admin/admin_only_tab_policy.rb +1 -0
  190. data/app/policies/pageflow/admin/entry_tab_policy.rb +1 -0
  191. data/app/policies/pageflow/application_policy.rb +2 -0
  192. data/app/policies/pageflow/entry_policy.rb +7 -1
  193. data/app/policies/pageflow/entry_template_policy.rb +2 -1
  194. data/app/policies/pageflow/file_policy.rb +4 -7
  195. data/app/policies/pageflow/folder_policy.rb +18 -8
  196. data/app/policies/pageflow/membership_policy.rb +6 -4
  197. data/app/policies/pageflow/site_policy.rb +10 -3
  198. data/app/policies/pageflow/user_policy.rb +6 -4
  199. data/app/state_machines/pageflow/image_and_text_track_processing_state_machine.rb +3 -2
  200. data/app/state_machines/pageflow/media_encoding_state_machine.rb +5 -4
  201. data/app/views/admin/accounts/_entry_template_details.html.arb +2 -2
  202. data/app/views/admin/entries/_attributes_table.html.arb +6 -5
  203. data/app/views/admin/entries/_form.html.erb +2 -1
  204. data/app/views/admin/entries/_permalink_inputs.html.erb +9 -2
  205. data/app/views/admin/entry_templates/_form.html.erb +1 -3
  206. data/app/views/admin/site_root_entry/choose.html.erb +19 -0
  207. data/app/views/admin/sites/_fields.html.erb +14 -1
  208. data/app/views/admin/translations/_form.html.erb +31 -0
  209. data/app/views/admin/users/_attributes_table.html.arb +13 -0
  210. data/app/views/components/pageflow/admin/add_membership_button.rb +13 -12
  211. data/app/views/components/pageflow/admin/custom_scopes_renderer.rb +1 -0
  212. data/app/views/components/pageflow/admin/embed_code_field.rb +1 -0
  213. data/app/views/components/pageflow/admin/embedded_index_table.rb +9 -10
  214. data/app/views/components/pageflow/admin/entries_tab.rb +1 -0
  215. data/app/views/components/pageflow/admin/entry_publication_state_indicator.rb +6 -5
  216. data/app/views/components/pageflow/admin/entry_templates_tab.rb +2 -1
  217. data/app/views/components/pageflow/admin/entry_translations_tab.rb +102 -0
  218. data/app/views/components/pageflow/admin/entry_user_badge_list.rb +1 -0
  219. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +9 -8
  220. data/app/views/components/pageflow/admin/features_tab.rb +1 -0
  221. data/app/views/components/pageflow/admin/grouped_folder_list.rb +1 -0
  222. data/app/views/components/pageflow/admin/icon_link_to.rb +1 -0
  223. data/app/views/components/pageflow/admin/members_tab.rb +4 -3
  224. data/app/views/components/pageflow/admin/membership_role_with_tooltip.rb +3 -2
  225. data/app/views/components/pageflow/admin/revisions_tab.rb +14 -10
  226. data/app/views/components/pageflow/admin/sites_tab.rb +1 -0
  227. data/app/views/components/pageflow/admin/tabs_view.rb +1 -0
  228. data/app/views/components/pageflow/admin/timestamp.rb +6 -5
  229. data/app/views/components/pageflow/admin/user_account_badge_list.rb +2 -3
  230. data/app/views/components/pageflow/admin/user_accounts_tab.rb +1 -0
  231. data/app/views/components/pageflow/admin/user_entries_tab.rb +1 -0
  232. data/app/views/components/pageflow/admin/users_tab.rb +1 -0
  233. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +1 -1
  234. data/app/views/pageflow/editor/entries/index.json.jbuilder +1 -1
  235. data/app/views/pageflow/editor/entries/show.json.jbuilder +1 -1
  236. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +2 -2
  237. data/app/views/pageflow/editor/files/_file.json.jbuilder +5 -13
  238. data/app/views/pageflow/editor/files/create.json.jbuilder +1 -1
  239. data/app/views/pageflow/editor/files/index.json.jbuilder +1 -1
  240. data/app/views/pageflow/editor/sites/_site.json.jbuilder +1 -0
  241. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +1 -3
  242. data/app/views/pageflow/entries/share_menu/_bluesky_link.html.erb +8 -0
  243. data/app/views/pageflow/entries/share_menu/_threads_link.html.erb +8 -0
  244. data/app/views/pageflow/files/_file.json.jbuilder +3 -3
  245. data/app/views/pageflow/sitemaps/index.xml.builder +9 -1
  246. data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +1 -1
  247. data/app/views/pageflow/social_share/_page_meta_tags.html.erb +1 -1
  248. data/config/initializers/active_admin_patches.rb +3 -6
  249. data/config/initializers/admin_resource_tabs.rb +3 -0
  250. data/config/initializers/paperclip.rb +1 -0
  251. data/config/initializers/symmetric_encryption.rb +1 -1
  252. data/config/initializers/zencoder.rb +24 -13
  253. data/config/locales/de.yml +110 -4
  254. data/config/locales/en.yml +109 -7
  255. data/config/routes.rb +15 -13
  256. data/config/spring.rb +2 -1
  257. data/db/migrate/20140418225525_setup_schema.rb +2 -2
  258. data/db/migrate/20190306161431_copy_file_attributes_of_failed_uploads.rb +2 -2
  259. data/db/migrate/20190820152900_drop_accounts_themes.rb +2 -1
  260. data/db/migrate/20191202145757_create_pageflow_scrolled_sections.rb +11 -11
  261. data/db/migrate/20191202150657_create_pageflow_scrolled_chapters.rb +1 -1
  262. data/db/migrate/20191202154723_create_pageflow_scrolled_content_elements.rb +9 -9
  263. data/db/migrate/20191219143450_add_position_to_content_elements.rb +2 -1
  264. data/db/migrate/20200117133200_change_revision_appearance_option_default_and_null.rb +2 -1
  265. data/db/migrate/20200122115400_create_pageflow_entry_templates.rb +25 -25
  266. data/db/migrate/20200206134400_convert_legacy_scrolled_content_element_types.rb +3 -3
  267. data/db/migrate/20221215120856_associate_entry_templates_with_sites.rb +2 -2
  268. data/db/migrate/20230120092923_create_other_files.rb +2 -1
  269. data/db/migrate/20230419083307_create_pageflow_entry_translation_group.rb +9 -0
  270. data/db/migrate/20240612110434_add_cutoff_mode_name_to_sites.rb +5 -0
  271. data/db/migrate/20240918084059_create_pageflow_permalink_redirects.rb +14 -0
  272. data/db/migrate/20250508172234_ensure_scrolled_entries_have_main_storyline.rb +14 -0
  273. data/db/migrate/20250617090048_add_custom404_entry_to_sites.rb +5 -0
  274. data/db/migrate/20250617100000_add_perma_id_counter_to_entries.rb +28 -0
  275. data/db/migrate/20250722174123_add_perma_id_to_chapters.rb +10 -0
  276. data/db/migrate/20250725080603_add_perma_id_indexes_to_revision_components.rb +13 -0
  277. data/db/migrate/20250726000000_add_display_name_to_file_usages.rb +5 -0
  278. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +3912 -1486
  279. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +468 -1161
  280. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +28125 -22
  281. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +26589 -19
  282. data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -0
  283. data/entry_types/paged/app/helpers/pageflow_paged/page_background_asset_helper.rb +1 -1
  284. data/entry_types/paged/app/helpers/pageflow_paged/third_party_embed_consent_helper.rb +7 -7
  285. data/entry_types/paged/app/views/pageflow_paged/editor/entries/_seed.json.jbuilder +1 -0
  286. data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
  287. data/entry_types/paged/lib/pageflow_paged/plugin.rb +4 -0
  288. data/entry_types/paged/lib/pageflow_paged/react/page_type.rb +1 -1
  289. data/entry_types/paged/lib/pageflow_paged/react/widget_type.rb +3 -3
  290. data/entry_types/paged/lib/pageflow_paged.rb +1 -1
  291. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +5 -3
  292. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +2 -2
  293. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -2
  294. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +2 -1
  295. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +2 -2
  296. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +1 -0
  297. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +2 -1
  298. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +60 -6
  299. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +16 -2
  300. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +21 -23
  301. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +16 -1
  302. data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +15 -14
  303. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +12 -0
  304. data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +12 -1
  305. data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +19 -1
  306. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -0
  307. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +2 -2
  308. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +2 -0
  309. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +17 -9
  310. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry_translations.json.jbuilder +14 -0
  311. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +25 -5
  312. data/entry_types/scrolled/app/views/pageflow_scrolled/storylines/_storyline.json.jbuilder +7 -0
  313. data/entry_types/scrolled/config/locales/de.yml +614 -45
  314. data/entry_types/scrolled/config/locales/en.yml +586 -47
  315. data/entry_types/scrolled/config/routes.rb +18 -8
  316. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +11 -11
  317. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantDesktop.svg +56 -0
  318. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDarkVariantMobile.svg +22 -0
  319. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -11
  320. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +27 -8
  321. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
  322. data/entry_types/scrolled/lib/pageflow_scrolled/additional_theme_assets.rb +27 -0
  323. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +16 -4
  324. data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +1 -1
  325. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +24 -4
  326. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +24 -22
  327. data/entry_types/scrolled/lib/pageflow_scrolled.rb +1 -1
  328. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +6 -5
  329. data/entry_types/scrolled/package/config/webpack.js +22 -0
  330. data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -0
  331. data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1529 -0
  332. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.css +1 -0
  333. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +59 -0
  334. data/entry_types/scrolled/package/contentElements-editor.js +2075 -321
  335. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  336. data/entry_types/scrolled/package/contentElements-frontend.js +1019 -643
  337. data/entry_types/scrolled/package/editor.js +2086 -1091
  338. data/entry_types/scrolled/package/frontend/{EditableInlineText.module-ebd22921.js → FloatingPortalRootProvider-51914be7.js} +1200 -1258
  339. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-4ec6b2de.js → PhonePlatformContext-9f76033e.js} +7 -8
  340. data/entry_types/scrolled/package/frontend/ThemeIcon-81f2f066.js +1932 -0
  341. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-788e9cdb.js +39 -0
  342. data/entry_types/scrolled/package/frontend/{Viewer-1bb5597c.js → Viewer-0345ce57.js} +36 -63
  343. data/entry_types/scrolled/package/frontend/{Viewer-1ecf3375.js → Viewer-cdc549cc.js} +15 -22
  344. data/entry_types/scrolled/package/frontend/{Wavesurfer-7d9cf1b7.js → Wavesurfer-1cdc3925.js} +54 -74
  345. data/entry_types/scrolled/package/frontend/{components-024a9893.js → components-96660ffd.js} +1791 -841
  346. data/entry_types/scrolled/package/frontend/{index-11f32f10.js → index-eb670c2f.js} +11 -18
  347. data/entry_types/scrolled/package/frontend/index.css +1 -1
  348. data/entry_types/scrolled/package/frontend/index.js +517 -903
  349. data/entry_types/scrolled/package/frontend/{createSuper-d0f30da3.js → inherits-539844a6.js} +40 -56
  350. data/entry_types/scrolled/package/frontend/{useContentElementEditorState-4f4c3cf6.js → useContentElementEditorState-77fe6c79.js} +7 -8
  351. data/entry_types/scrolled/package/frontend/usePhonePlatform-c2ba875d.js +8 -0
  352. data/entry_types/scrolled/package/frontend-server.js +0 -1
  353. data/entry_types/scrolled/package/package.json +18 -10
  354. data/entry_types/scrolled/package/testHelpers.js +306 -70
  355. data/entry_types/scrolled/package/values/widgets.module.css +18 -0
  356. data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
  357. data/entry_types/scrolled/package/widgets/consentBar.js +47 -66
  358. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  359. data/entry_types/scrolled/package/widgets/defaultNavigation.js +177 -207
  360. data/entry_types/scrolled/package/widgets/excursionDialog.css +1 -0
  361. data/entry_types/scrolled/package/widgets/excursionDialog.js +109 -0
  362. data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -0
  363. data/entry_types/scrolled/package/widgets/excursionSheet.js +262 -0
  364. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
  365. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +6 -9
  366. data/entry_types/scrolled/package/widgets/iconScrollIndicator.css +1 -0
  367. data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +48 -0
  368. data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -0
  369. data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +144 -0
  370. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
  371. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +26 -9
  372. data/entry_types/scrolled/package/widgets-server.js +1 -0
  373. data/entry_types/scrolled/spec/factories/chapters.rb +14 -1
  374. data/entry_types/scrolled/spec/factories/content_elements.rb +1 -1
  375. data/lib/generators/pageflow/active_admin_initializer/active_admin_initializer_generator.rb +5 -3
  376. data/lib/generators/pageflow/assets/assets_generator.rb +7 -5
  377. data/lib/generators/pageflow/cancan/cancan_generator.rb +2 -1
  378. data/lib/generators/pageflow/cancan/templates/ability.rb +1 -1
  379. data/lib/generators/pageflow/error_pages/error_pages_generator.rb +2 -1
  380. data/lib/generators/pageflow/initializer/initializer_generator.rb +3 -2
  381. data/lib/generators/pageflow/install/install_generator.rb +2 -2
  382. data/lib/generators/pageflow/procfile/procfile_generator.rb +2 -1
  383. data/lib/generators/pageflow/resque/resque_generator.rb +6 -4
  384. data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
  385. data/lib/generators/pageflow/routes/routes_generator.rb +4 -2
  386. data/lib/generators/pageflow/seeds/seeds_generator.rb +3 -2
  387. data/lib/generators/pageflow/seeds/templates/seeds.rb +6 -6
  388. data/lib/generators/pageflow/theme/theme_generator.rb +2 -1
  389. data/lib/generators/pageflow/user/user_generator.rb +2 -1
  390. data/lib/pageflow/ability_mixin.rb +25 -15
  391. data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -0
  392. data/lib/pageflow/active_admin_patches/views/pages/base.rb +3 -2
  393. data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -0
  394. data/lib/pageflow/additional_headers.rb +27 -0
  395. data/lib/pageflow/admin/attributes_table_rows.rb +3 -3
  396. data/lib/pageflow/admin/tabs.rb +1 -1
  397. data/lib/pageflow/built_in_file_type.rb +1 -1
  398. data/lib/pageflow/built_in_page_types_plugin.rb +1 -1
  399. data/lib/pageflow/built_in_widget_type.rb +2 -2
  400. data/lib/pageflow/built_in_widget_types_plugin.rb +2 -1
  401. data/lib/pageflow/configuration.rb +141 -18
  402. data/lib/pageflow/cutoff_modes.rb +39 -0
  403. data/lib/pageflow/editor_controller.rb +6 -10
  404. data/lib/pageflow/engine.rb +4 -5
  405. data/lib/pageflow/entry_export_import/attachment_files.rb +1 -1
  406. data/lib/pageflow/entry_export_import/entry_serialization.rb +5 -4
  407. data/lib/pageflow/entry_export_import/file_mappings.rb +1 -0
  408. data/lib/pageflow/entry_export_import/revision_serialization/import.rb +1 -1
  409. data/lib/pageflow/entry_export_import.rb +3 -3
  410. data/lib/pageflow/entry_types.rb +2 -2
  411. data/lib/pageflow/feature.rb +1 -1
  412. data/lib/pageflow/features.rb +4 -6
  413. data/lib/pageflow/file_importers.rb +4 -4
  414. data/lib/pageflow/file_type.rb +3 -3
  415. data/lib/pageflow/file_types.rb +3 -3
  416. data/lib/pageflow/global_config_api.rb +5 -6
  417. data/lib/pageflow/help_entries.rb +7 -7
  418. data/lib/pageflow/help_entry.rb +1 -1
  419. data/lib/pageflow/hooks.rb +1 -1
  420. data/lib/pageflow/nested_revision_component.rb +9 -27
  421. data/lib/pageflow/news_item_api.rb +1 -1
  422. data/lib/pageflow/page_type.rb +2 -3
  423. data/lib/pageflow/page_types.rb +3 -3
  424. data/lib/pageflow/paperclip_interpolations/support.rb +1 -1
  425. data/lib/pageflow/paperclip_processors/vtt.rb +1 -0
  426. data/lib/pageflow/paperclip_processors/webp.rb +2 -2
  427. data/lib/pageflow/partial_editor_fragment_renderer.rb +2 -2
  428. data/lib/pageflow/plugin.rb +1 -2
  429. data/lib/pageflow/quota.rb +9 -5
  430. data/lib/pageflow/quotas.rb +1 -1
  431. data/lib/pageflow/rails_version.rb +1 -0
  432. data/lib/pageflow/react.rb +1 -1
  433. data/lib/pageflow/revision_component.rb +8 -40
  434. data/lib/pageflow/revision_components.rb +16 -6
  435. data/lib/pageflow/seeds.rb +12 -16
  436. data/lib/pageflow/theme.rb +1 -1
  437. data/lib/pageflow/theme_customizations.rb +10 -10
  438. data/lib/pageflow/themes.rb +3 -3
  439. data/lib/pageflow/user_mixin.rb +6 -6
  440. data/lib/pageflow/version.rb +1 -1
  441. data/lib/pageflow/widget_type.rb +4 -4
  442. data/lib/pageflow/widget_types.rb +9 -9
  443. data/lib/pageflow/zencoder_api.rb +32 -42
  444. data/lib/pageflow/zencoder_audio_output_definition.rb +14 -13
  445. data/lib/pageflow/zencoder_meta_data_output_definition.rb +3 -2
  446. data/lib/pageflow/zencoder_output_definition.rb +16 -14
  447. data/lib/pageflow/zencoder_video_output_definition.rb +140 -88
  448. data/lib/pageflow.rb +7 -2
  449. data/lib/tasks/pageflow_tasks.rake +1 -1
  450. data/package/editor.js +954 -868
  451. data/package/frontend.js +113 -387
  452. data/package/package.json +2 -1
  453. data/package/testHelpers.js +10 -56
  454. data/package/ui.js +209 -251
  455. data/spec/factories/accounts.rb +37 -22
  456. data/spec/factories/audio_files.rb +2 -2
  457. data/spec/factories/authentication_tokens.rb +4 -4
  458. data/spec/factories/chapters.rb +4 -4
  459. data/spec/factories/draft_entries.rb +14 -6
  460. data/spec/factories/edit_locks.rb +1 -1
  461. data/spec/factories/entries.rb +28 -19
  462. data/spec/factories/entry_translation_groups.rb +6 -0
  463. data/spec/factories/file_usages.rb +2 -1
  464. data/spec/factories/folders.rb +1 -1
  465. data/spec/factories/image_files.rb +2 -2
  466. data/spec/factories/pages.rb +3 -3
  467. data/spec/factories/published_entries.rb +26 -8
  468. data/spec/factories/revisions.rb +1 -1
  469. data/spec/factories/sites.rb +6 -0
  470. data/spec/factories/test_multi_attachment_files.rb +1 -1
  471. data/spec/factories/text_track_files.rb +1 -1
  472. data/spec/factories/uploadable_files.rb +1 -1
  473. data/spec/factories/users.rb +6 -6
  474. data/spec/factories/video_files.rb +2 -2
  475. data/spec/factories/widgets.rb +1 -1
  476. data/spec/fixtures/7x15_rotated.jpg +0 -0
  477. data/vendor/assets/javascripts/wysihtml-toolbar.js +19288 -0
  478. metadata +98 -45
  479. data/config/initializers/revision_components.rb +0 -5
  480. data/config/locales/twitter_to_x.de.yml +0 -6
  481. data/config/locales/twitter_to_x.en.yml +0 -6
  482. data/entry_types/scrolled/config/locales/twitter_to_x.de.yml +0 -12
  483. data/entry_types/scrolled/config/locales/twitter_to_x.en.yml +0 -12
  484. data/entry_types/scrolled/config/locales/vr_image_projection.de.yml +0 -24
  485. data/entry_types/scrolled/config/locales/vr_image_projection.en.yml +0 -24
  486. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-b79159cc.js +0 -107
  487. data/entry_types/scrolled/package/frontend/arrowRight-62998af9.js +0 -77
  488. data/entry_types/scrolled/package/frontend/i18n-ce13a8bf.js +0 -1129
@@ -1,4 +1,4 @@
1
- import { useTheme, useI18n, utils, Tooltip, useFileRights, useLegalInfo, useCredits, Widget, ThemeIcon, useShareUrl, useMediaMuted, useOnUnmuteMedia, useChapters, useCurrentChapter, usePhonePlatform, useShareProviders, useScrollPosition, frontend } from 'pageflow-scrolled/frontend';
1
+ import { useTheme, useI18n, ThemeIcon, utils, Tooltip, useFileRights, useLegalInfo, useCredits, Widget, useEntryMetadata, useEntryTranslations, useShareUrl, useMediaMuted, useOnUnmuteMedia, useDarkWidgets, useMainChapters, useCurrentChapter, usePhonePlatform, useShareProviders, useScrollPosition, paletteColor, WidgetSelectionRect, SelectableWidget, frontend } from 'pageflow-scrolled/frontend';
2
2
  import React, { useRef, useEffect, useCallback, useState } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import { media } from 'pageflow/frontend';
@@ -77,40 +77,46 @@ function _slicedToArray(arr, i) {
77
77
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
78
78
  }
79
79
 
80
- var styles = {"breakpoint-below-md":"(max-width: 767px)","navigationBar":"DefaultNavigation-module_navigationBar__2RK0h scope-defaultNavigation","navigationBarExpanded":"DefaultNavigation-module_navigationBarExpanded__C3sLq","navigationBarContentWrapper":"DefaultNavigation-module_navigationBarContentWrapper__3narH","menuIcon":"DefaultNavigation-module_menuIcon__2bb8s","contextIcons":"DefaultNavigation-module_contextIcons__2e65s","contextIcon":"DefaultNavigation-module_contextIcon__ELsqa utils-module_unstyledButton__3rgne","logo":"DefaultNavigation-module_logo__3gUbx","chapterList":"DefaultNavigation-module_chapterList__3VoXX scope-defaultNavigationChapterList","chapterListItem":"DefaultNavigation-module_chapterListItem__1YF5e","navigationTooltip":"DefaultNavigation-module_navigationTooltip__26Fvn","progressBar":"DefaultNavigation-module_progressBar__1jvov","progressIndicator":"DefaultNavigation-module_progressIndicator__2d_e3","hasChapters":"DefaultNavigation-module_hasChapters__3ab-r","navigationChapters":"DefaultNavigation-module_navigationChapters__3M6zh","navigationChaptersHidden":"DefaultNavigation-module_navigationChaptersHidden__2TrUo"};
80
+ var styles = {"breakpoint-below-md":"(max-width: 767px)","navigationBar":"DefaultNavigation-module_navigationBar__2RK0h scope-defaultNavigation","contextIcons":"DefaultNavigation-module_contextIcons__2e65s","navigationBarExpanded":"DefaultNavigation-module_navigationBarExpanded__C3sLq","navigationBarContentWrapper":"DefaultNavigation-module_navigationBarContentWrapper__3narH widgets-module_translucentWidgetSurface__kYVg7","button":"DefaultNavigation-module_button__3QCuK utils-module_unstyledButton__3rgne","menuIcon":"DefaultNavigation-module_menuIcon__2bb8s DefaultNavigation-module_button__3QCuK utils-module_unstyledButton__3rgne","contextIcon":"DefaultNavigation-module_contextIcon__ELsqa DefaultNavigation-module_button__3QCuK utils-module_unstyledButton__3rgne","logo":"DefaultNavigation-module_logo__3gUbx","chapterList":"DefaultNavigation-module_chapterList__3VoXX scope-defaultNavigationChapterList","chapterListItem":"DefaultNavigation-module_chapterListItem__1YF5e","navigationTooltip":"DefaultNavigation-module_navigationTooltip__26Fvn","progressBar":"DefaultNavigation-module_progressBar__1jvov","progressIndicator":"DefaultNavigation-module_progressIndicator__2d_e3","hasChapters":"DefaultNavigation-module_hasChapters__3ab-r","centerMobileLogo":"DefaultNavigation-module_centerMobileLogo__3jtk3","navigationChapters":"DefaultNavigation-module_navigationChapters__3M6zh","navigationChaptersHidden":"DefaultNavigation-module_navigationChaptersHidden__2TrUo"};
81
81
 
82
- var styles$1 = {"breakpoint-md":"(min-width: 768px)","burgerMenuIconContainer":"HamburgerIcon-module_burgerMenuIconContainer__3aBkk","burgerMenuIcon":"HamburgerIcon-module_burgerMenuIcon__1WUV0","small":"HamburgerIcon-module_small__asAkY"};
82
+ var styles$1 = {"breakpoint-md":"(min-width: 768px)","burgerMenuIconContainer":"HamburgerIcon-module_burgerMenuIconContainer__3aBkk","small":"HamburgerIcon-module_small__asAkY"};
83
83
 
84
84
  var hamburgerIconStyles = {"hamburger":"HamburgerIcons-module_hamburger__SOreS","is-active":"HamburgerIcons-module_is-active__2jpzX","hamburger-inner":"HamburgerIcons-module_hamburger-inner__Wv7Dn","hamburger-box":"HamburgerIcons-module_hamburger-box__10MR1","hamburger--collapse":"HamburgerIcons-module_hamburger--collapse__1xOkf"};
85
85
 
86
- function HamburgerIcon(props) {
86
+ function HamburgerIcon(_ref) {
87
+ var mobileNavHidden = _ref.mobileNavHidden,
88
+ onClick = _ref.onClick;
87
89
  var theme = useTheme();
88
-
89
90
  var _useI18n = useI18n(),
90
- t = _useI18n.t;
91
-
91
+ t = _useI18n.t;
92
92
  return /*#__PURE__*/React.createElement("div", {
93
93
  className: styles$1.burgerMenuIconContainer
94
94
  }, /*#__PURE__*/React.createElement("button", {
95
- className: classNames(styles.menuIcon, styles$1.burgerMenuIcon, hamburgerIconStyles.hamburger, hamburgerIconStyles['hamburger--collapse'], _defineProperty({}, styles$1.small, theme.options.defaultNavigationMenuIconVariant === 'small'), _defineProperty({}, hamburgerIconStyles['is-active'], !props.mobileNavHidden)),
96
- title: props.mobileNavHidden ? t('pageflow_scrolled.public.navigation.open_mobile_menu') : t('pageflow_scrolled.public.navigation.close_mobile_menu'),
95
+ className: styles.menuIcon,
96
+ title: mobileNavHidden ? t('pageflow_scrolled.public.navigation.open_mobile_menu') : t('pageflow_scrolled.public.navigation.close_mobile_menu'),
97
97
  type: "button",
98
- onClick: props.onClick
99
- }, /*#__PURE__*/React.createElement("span", {
100
- className: hamburgerIconStyles['hamburger-box']
101
- }, /*#__PURE__*/React.createElement("span", {
102
- className: hamburgerIconStyles['hamburger-inner']
103
- }))));
98
+ onClick: onClick
99
+ }, /*#__PURE__*/React.createElement(ThemeIcon, {
100
+ name: "menu",
101
+ renderFallback: function renderFallback() {
102
+ return /*#__PURE__*/React.createElement("span", {
103
+ className: classNames(hamburgerIconStyles.hamburger, hamburgerIconStyles['hamburger--collapse'], _defineProperty({}, styles$1.small, theme.options.defaultNavigationMenuIconVariant === 'small'), _defineProperty({}, hamburgerIconStyles['is-active'], !mobileNavHidden))
104
+ }, /*#__PURE__*/React.createElement("span", {
105
+ className: hamburgerIconStyles['hamburger-box']
106
+ }, /*#__PURE__*/React.createElement("span", {
107
+ className: hamburgerIconStyles['hamburger-inner']
108
+ })));
109
+ }
110
+ })));
104
111
  }
105
112
 
106
- var styles$2 = {"breakpoint-md":"(min-width: 768px)","chapterLink":"ChapterLink-module_chapterLink__3YspQ typography-defaultNavigationChapterLink","chapterLinkActive":"ChapterLink-module_chapterLinkActive__9i8SL typography-defaultNavigationActiveChapterLink","summary":"ChapterLink-module_summary__2ZfRU","tooltipBubble":"ChapterLink-module_tooltipBubble__3VRUO"};
113
+ var styles$2 = {"breakpoint-md":"(min-width: 768px)","chapterLink":"ChapterLink-module_chapterLink__3YspQ typography-defaultNavigationChapterLink","chapterLinkActive":"ChapterLink-module_chapterLinkActive__9i8SL typography-defaultNavigationActiveChapterLink","summary":"ChapterLink-module_summary__2ZfRU typography-defaultNavigationChapterSummary","inlineSummary":"ChapterLink-module_inlineSummary__2Mhk-","tooltipBubble":"ChapterLink-module_tooltipBubble__3VRUO"};
107
114
 
108
115
  var isBlank = utils.isBlank,
109
- presence = utils.presence;
116
+ presence = utils.presence;
110
117
  function ChapterLink(props) {
111
118
  var _useI18n = useI18n(),
112
- t = _useI18n.t;
113
-
119
+ t = _useI18n.t;
114
120
  var item = /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
115
121
  className: classNames(styles$2.chapterLink, _defineProperty({}, styles$2.chapterLinkActive, props.active)),
116
122
  href: "#".concat(props.chapterSlug),
@@ -120,17 +126,16 @@ function ChapterLink(props) {
120
126
  }, presence(props.title) || t('pageflow_scrolled.public.navigation.chapter', {
121
127
  number: props.chapterIndex
122
128
  })), !isBlank(props.summary) && /*#__PURE__*/React.createElement("p", {
123
- className: styles$2.summary,
129
+ className: classNames(styles$2.summary, styles$2.inlineSummary),
124
130
  dangerouslySetInnerHTML: {
125
131
  __html: props.summary
126
132
  }
127
133
  }));
128
-
129
134
  if (isBlank(props.summary)) {
130
135
  return item;
131
136
  }
132
-
133
137
  var content = /*#__PURE__*/React.createElement("p", {
138
+ className: styles$2.summary,
134
139
  dangerouslySetInnerHTML: {
135
140
  __html: props.summary
136
141
  }
@@ -146,6 +151,20 @@ function ChapterLink(props) {
146
151
  var styles$3 = {"legalInfoTooltip":"LegalInfoMenu-module_legalInfoTooltip__Qmf8u","scroller":"LegalInfoMenu-module_scroller__3NPW_","links":"LegalInfoMenu-module_links__1kpsd","separator":"LegalInfoMenu-module_separator__3mmjA","section":"LegalInfoMenu-module_section__1bLWD","legalInfoLink":"LegalInfoMenu-module_legalInfoLink__gkXaF","rights":"LegalInfoMenu-module_rights__-XGYO"};
147
152
 
148
153
  function LegalInfoLink(props) {
154
+ // eslint-disable-next-line no-script-url
155
+ if (props.url === 'javascript:pageflowDisplayPrivacySettings()' && props.label) {
156
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
157
+ href: "#privacySettings",
158
+ onClick: function onClick(event) {
159
+ window.pageflowDisplayPrivacySettings();
160
+ event.preventDefault();
161
+ },
162
+ className: styles$3.legalInfoLink,
163
+ dangerouslySetInnerHTML: {
164
+ __html: props.label
165
+ }
166
+ }));
167
+ }
149
168
  return /*#__PURE__*/React.createElement("div", null, props.label && props.url && /*#__PURE__*/React.createElement("a", {
150
169
  target: "_blank",
151
170
  rel: "noreferrer noopener",
@@ -161,10 +180,8 @@ function LegalInfoMenu(props) {
161
180
  var fileRights = useFileRights();
162
181
  var legalInfo = useLegalInfo();
163
182
  var credits = useCredits();
164
-
165
183
  var _useI18n = useI18n(),
166
- t = _useI18n.t;
167
-
184
+ t = _useI18n.t;
168
185
  var content = /*#__PURE__*/React.createElement("div", {
169
186
  className: styles$3.legalInfoTooltip
170
187
  }, /*#__PURE__*/React.createElement("div", {
@@ -193,7 +210,6 @@ function LegalInfoMenu(props) {
193
210
  name: "information"
194
211
  })));
195
212
  }
196
-
197
213
  function renderFileRights(items) {
198
214
  return /*#__PURE__*/React.createElement("ul", {
199
215
  className: styles$3.rights
@@ -203,7 +219,6 @@ function renderFileRights(items) {
203
219
  }, index > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, "\xA0| "), renderFileRightsText(item));
204
220
  }));
205
221
  }
206
-
207
222
  function renderFileRightsText(item) {
208
223
  if (item.urls.length > 1) {
209
224
  return /*#__PURE__*/React.createElement(React.Fragment, null, item.text, " (", item.urls.flatMap(function (url, index) {
@@ -225,23 +240,70 @@ function renderFileRightsText(item) {
225
240
  }
226
241
  }
227
242
 
228
- var styles$4 = {"sharingTooltip":"SharingMenu-module_sharingTooltip__2Tyev","shareLinkContainer":"SharingMenu-module_shareLinkContainer__3-3W6","shareLink":"SharingMenu-module_shareLink__3PdRE"};
243
+ var styles$4 = {"tooltip":"TranslationsMenu-module_tooltip__g1k9g","list":"TranslationsMenu-module_list__2zLEz","tag":"TranslationsMenu-module_tag__xRYH9"};
244
+
245
+ function TranslationsMenu(_ref) {
246
+ var _ref$tooltipOffset = _ref.tooltipOffset,
247
+ tooltipOffset = _ref$tooltipOffset === void 0 ? 0 : _ref$tooltipOffset;
248
+ var _useI18n = useI18n(),
249
+ t = _useI18n.t;
250
+ var entry = useEntryMetadata();
251
+ var translations = useEntryTranslations();
252
+ if (translations.length < 2) {
253
+ return null;
254
+ }
255
+ var content = /*#__PURE__*/React.createElement("div", {
256
+ className: styles$4.tooltip
257
+ }, /*#__PURE__*/React.createElement("ul", {
258
+ className: styles$4.list
259
+ }, translations.map(function (_ref2) {
260
+ var id = _ref2.id,
261
+ url = _ref2.url,
262
+ displayLocale = _ref2.displayLocale;
263
+ if (entry.id === id) {
264
+ return /*#__PURE__*/React.createElement("li", {
265
+ key: id,
266
+ "aria-current": "page"
267
+ }, /*#__PURE__*/React.createElement("strong", null, displayLocale));
268
+ } else {
269
+ return /*#__PURE__*/React.createElement("li", {
270
+ key: id
271
+ }, /*#__PURE__*/React.createElement("a", {
272
+ target: "_top",
273
+ href: url
274
+ }, displayLocale));
275
+ }
276
+ })));
277
+ return /*#__PURE__*/React.createElement(Tooltip, {
278
+ horizontalOffset: tooltipOffset - 30,
279
+ arrowPos: 120 - tooltipOffset,
280
+ content: content
281
+ }, /*#__PURE__*/React.createElement("button", {
282
+ className: classNames(styles.contextIcon),
283
+ "aria-haspopup": "true",
284
+ title: t('pageflow_scrolled.public.navigation.language')
285
+ }, /*#__PURE__*/React.createElement(ThemeIcon, {
286
+ name: "world"
287
+ }), /*#__PURE__*/React.createElement("div", {
288
+ className: styles$4.tag
289
+ }, /*#__PURE__*/React.createElement("span", null, entry.locale.substring(0, 2).toUpperCase()))));
290
+ }
291
+
292
+ var styles$5 = {"sharingTooltip":"SharingMenu-module_sharingTooltip__2Tyev","shareLinkContainer":"SharingMenu-module_shareLinkContainer__3-3W6","shareLink":"SharingMenu-module_shareLink__3PdRE"};
229
293
 
230
294
  function SharingMenu(_ref) {
231
295
  var shareProviders = _ref.shareProviders;
232
296
  var shareUrl = useShareUrl();
233
-
234
297
  var _useI18n = useI18n(),
235
- t = _useI18n.t;
236
-
298
+ t = _useI18n.t;
237
299
  function renderShareLinks(shareProviders) {
238
300
  return shareProviders.map(function (shareProvider) {
239
301
  return /*#__PURE__*/React.createElement("div", {
240
302
  key: shareProvider.name,
241
- className: styles$4.shareLinkContainer
303
+ className: styles$5.shareLinkContainer
242
304
  }, /*#__PURE__*/React.createElement("a", {
243
- className: classNames('share', styles$4.shareLink),
244
- href: shareProvider.url.replace('%{url}', shareUrl),
305
+ className: classNames('share', styles$5.shareLink),
306
+ href: shareProvider.url.replace('%<url>s', shareUrl),
245
307
  target: '_blank',
246
308
  rel: "noopener noreferrer"
247
309
  }, /*#__PURE__*/React.createElement(ThemeIcon, {
@@ -261,19 +323,17 @@ function SharingMenu(_ref) {
261
323
  })));
262
324
  }
263
325
 
264
- var styles$5 = {"button":"ToggleMuteButton-module_button__1ACmo","animate":"ToggleMuteButton-module_animate__pd1yK","pulse":"ToggleMuteButton-module_pulse__2UN7Q"};
326
+ var styles$6 = {"button":"ToggleMuteButton-module_button__1ACmo","animate":"ToggleMuteButton-module_animate__pd1yK","pulse":"ToggleMuteButton-module_pulse__2UN7Q"};
265
327
 
266
328
  function ToggleMuteButton() {
267
329
  var muted = useMediaMuted();
268
-
269
330
  var _useI18n = useI18n(),
270
- t = _useI18n.t;
271
-
331
+ t = _useI18n.t;
272
332
  useUnmuteSound();
273
333
  return /*#__PURE__*/React.createElement("div", {
274
- className: classNames(_defineProperty({}, styles$5.animate, !muted))
334
+ className: classNames(_defineProperty({}, styles$6.animate, !muted))
275
335
  }, /*#__PURE__*/React.createElement("button", {
276
- className: classNames(styles.contextIcon, styles$5.button),
336
+ className: classNames(styles.contextIcon, styles$6.button),
277
337
  title: muted ? t('pageflow_scrolled.public.navigation.unmute') : t('pageflow_scrolled.public.navigation.mute'),
278
338
  onClick: function onClick() {
279
339
  return media.mute(!muted);
@@ -284,7 +344,6 @@ function ToggleMuteButton() {
284
344
  name: "unmuted"
285
345
  })));
286
346
  }
287
-
288
347
  function useUnmuteSound() {
289
348
  var theme = useTheme();
290
349
  var audio = useRef();
@@ -296,163 +355,73 @@ function useUnmuteSound() {
296
355
  }, []));
297
356
  }
298
357
 
299
- function Logo() {
358
+ function Logo(_ref) {
359
+ var srcMobile = _ref.srcMobile,
360
+ srcDesktop = _ref.srcDesktop,
361
+ url = _ref.url,
362
+ altText = _ref.altText;
300
363
  var theme = useTheme();
364
+ var darkWidgets = useDarkWidgets();
365
+ srcDesktop = srcDesktop || (darkWidgets ? theme.assets.logoDarkVariantDesktop : theme.assets.logoDesktop);
366
+ srcMobile = srcMobile || (darkWidgets ? theme.assets.logoDarkVariantMobile : theme.assets.logoMobile);
367
+ var inIframe = typeof window !== 'undefined' && window.parent !== window;
301
368
  return /*#__PURE__*/React.createElement("a", {
302
- target: "_blank",
369
+ target: inIframe || !theme.options.logoOpenInSameTab ? "_blank" : null,
303
370
  rel: "noopener noreferrer",
304
- href: theme.options.logoUrl,
305
- className: classNames(styles.menuIcon, styles.logo)
371
+ href: url || theme.options.logoUrl,
372
+ className: classNames(styles.logo, _defineProperty({}, styles.centerMobileLogo, theme.options.defaultNavigationMobileLogoPosition === 'center'))
306
373
  }, /*#__PURE__*/React.createElement("picture", null, /*#__PURE__*/React.createElement("source", {
307
374
  media: "(max-width: 780px)",
308
- srcSet: theme.assets.logoMobile
375
+ srcSet: srcMobile
309
376
  }), /*#__PURE__*/React.createElement("source", {
310
377
  media: "(min-width: 781px)",
311
- srcSet: theme.assets.logoDesktop
378
+ srcSet: srcDesktop
312
379
  }), /*#__PURE__*/React.createElement("img", {
313
- src: theme.assets.logoDesktop,
314
- alt: theme.options.logoAltText
380
+ src: srcDesktop,
381
+ alt: altText || theme.options.logoAltText
315
382
  })));
316
383
  }
317
384
 
318
- var styles$6 = {"link":"SkipLinks-module_link__HMj9l"};
385
+ var styles$7 = {"link":"SkipLinks-module_link__HMj9l"};
319
386
 
320
387
  function SkipLinks() {
321
388
  var _useI18n = useI18n(),
322
- t = _useI18n.t;
323
-
389
+ t = _useI18n.t;
324
390
  function scrollDown() {
325
391
  setTimeout(function () {
326
392
  window.scrollTo(0, 50);
327
393
  }, 50);
328
394
  }
329
-
330
395
  return /*#__PURE__*/React.createElement("div", {
331
396
  id: "skipLinks"
332
397
  }, /*#__PURE__*/React.createElement("a", {
333
398
  href: "#goToContent",
334
- className: styles$6.link,
399
+ className: styles$7.link,
335
400
  onClick: scrollDown
336
401
  }, t('pageflow_scrolled.public.navigation_skip_links.content')));
337
402
  }
338
403
 
339
- function _objectWithoutPropertiesLoose(source, excluded) {
340
- if (source == null) return {};
341
- var target = {};
342
- var sourceKeys = Object.keys(source);
343
- var key, i;
344
-
345
- for (i = 0; i < sourceKeys.length; i++) {
346
- key = sourceKeys[i];
347
- if (excluded.indexOf(key) >= 0) continue;
348
- target[key] = source[key];
349
- }
350
-
351
- return target;
352
- }
353
-
354
- function _objectWithoutProperties(source, excluded) {
355
- if (source == null) return {};
356
- var target = _objectWithoutPropertiesLoose(source, excluded);
357
- var key, i;
358
-
359
- if (Object.getOwnPropertySymbols) {
360
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
361
-
362
- for (i = 0; i < sourceSymbolKeys.length; i++) {
363
- key = sourceSymbolKeys[i];
364
- if (excluded.indexOf(key) >= 0) continue;
365
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
366
- target[key] = source[key];
367
- }
368
- }
369
-
370
- return target;
371
- }
372
-
373
- function _extends() {
374
- _extends = Object.assign || function (target) {
375
- for (var i = 1; i < arguments.length; i++) {
376
- var source = arguments[i];
377
-
378
- for (var key in source) {
379
- if (Object.prototype.hasOwnProperty.call(source, key)) {
380
- target[key] = source[key];
381
- }
382
- }
383
- }
384
-
385
- return target;
386
- };
387
-
388
- return _extends.apply(this, arguments);
389
- }
390
- var ChevronLeftIcon = (function (_ref) {
391
- var _ref$styles = _ref.styles,
392
- props = _objectWithoutProperties(_ref, ["styles"]);
393
-
394
- return /*#__PURE__*/React.createElement("svg", _extends({
395
- xmlns: "http://www.w3.org/2000/svg",
396
- viewBox: "0 0 320 512"
397
- }, props), /*#__PURE__*/React.createElement("path", {
398
- fill: "currentColor",
399
- d: "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
400
- }));
401
- });
402
-
403
- function _extends$1() {
404
- _extends$1 = Object.assign || function (target) {
405
- for (var i = 1; i < arguments.length; i++) {
406
- var source = arguments[i];
407
-
408
- for (var key in source) {
409
- if (Object.prototype.hasOwnProperty.call(source, key)) {
410
- target[key] = source[key];
411
- }
412
- }
413
- }
414
-
415
- return target;
416
- };
417
-
418
- return _extends$1.apply(this, arguments);
419
- }
420
- var ChevronRightIcon = (function (_ref) {
421
- var _ref$styles = _ref.styles,
422
- props = _objectWithoutProperties(_ref, ["styles"]);
423
-
424
- return /*#__PURE__*/React.createElement("svg", _extends$1({
425
- xmlns: "http://www.w3.org/2000/svg",
426
- viewBox: "0 0 320 512"
427
- }, props), /*#__PURE__*/React.createElement("path", {
428
- fill: "currentColor",
429
- d: "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"
430
- }));
431
- });
432
-
433
- var styles$7 = {"button":"ScrollButton-module_button__1GKRF utils-module_unstyledButton__3rgne","visible":"ScrollButton-module_visible__29yco","start":"ScrollButton-module_start__1XPra ScrollButton-module_button__1GKRF utils-module_unstyledButton__3rgne","end":"ScrollButton-module_end__3PxQt ScrollButton-module_button__1GKRF utils-module_unstyledButton__3rgne"};
404
+ var styles$8 = {"button":"ScrollButton-module_button__1GKRF utils-module_unstyledButton__3rgne","visible":"ScrollButton-module_visible__29yco","start":"ScrollButton-module_start__1XPra ScrollButton-module_button__1GKRF utils-module_unstyledButton__3rgne","end":"ScrollButton-module_end__3PxQt ScrollButton-module_button__1GKRF utils-module_unstyledButton__3rgne"};
434
405
 
435
406
  function ScrollButton(_ref) {
436
- var _classNames;
437
-
438
407
  var type = _ref.type,
439
- contentRect = _ref.contentRect,
440
- onStep = _ref.onStep;
408
+ contentRect = _ref.contentRect,
409
+ onStep = _ref.onStep;
441
410
  var visible = type === 'start' ? contentRect.scroll.left > 0 : contentRect.scroll.width > contentRect.client.width && contentRect.scroll.left < contentRect.scroll.width - contentRect.client.width;
442
411
  var step = type === 'start' ? -100 : 100;
443
412
  var interval = useRef();
444
413
  return /*#__PURE__*/React.createElement("button", {
445
- className: classNames((_classNames = {}, _defineProperty(_classNames, styles$7.start, type === 'start'), _defineProperty(_classNames, styles$7.end, type === 'end'), _defineProperty(_classNames, styles$7.visible, visible), _classNames)),
414
+ className: classNames(_defineProperty(_defineProperty(_defineProperty({}, styles$8.start, type === 'start'), styles$8.end, type === 'end'), styles$8.visible, visible)),
446
415
  onMouseDown: handleMouseDown,
447
416
  onKeyPress: handleKeyPress
448
- }, type === 'start' ? /*#__PURE__*/React.createElement(ChevronLeftIcon, null) : /*#__PURE__*/React.createElement(ChevronRightIcon, null));
449
-
417
+ }, /*#__PURE__*/React.createElement(ThemeIcon, {
418
+ name: type === 'start' ? 'arrowLeft' : 'arrowRight'
419
+ }));
450
420
  function handleMouseDown(event) {
451
421
  if (event.button === 0) {
452
422
  scrollUntilMouseUp();
453
423
  }
454
424
  }
455
-
456
425
  function scrollUntilMouseUp() {
457
426
  scrollStep();
458
427
  clearInterval(interval.current);
@@ -460,25 +429,22 @@ function ScrollButton(_ref) {
460
429
  return scrollStep();
461
430
  }, 400);
462
431
  document.addEventListener('mouseup', stopScrolling);
463
-
464
432
  function stopScrolling() {
465
433
  document.removeEventListener('mouseup', stopScrolling);
466
434
  clearInterval(interval.current);
467
435
  }
468
436
  }
469
-
470
437
  function handleKeyPress(event) {
471
438
  if (event.key === 'Enter' || event.key === ' ') {
472
439
  scrollStep();
473
440
  }
474
441
  }
475
-
476
442
  function scrollStep() {
477
443
  onStep(step);
478
444
  }
479
445
  }
480
446
 
481
- var styles$8 = {"breakpoint-md":"(min-width: 768px)","scroller":"Scroller-module_scroller__139cK","inner":"Scroller-module_inner__3dhuM"};
447
+ var styles$9 = {"breakpoint-md":"(min-width: 768px)","scroller":"Scroller-module_scroller__139cK","inner":"Scroller-module_inner__3dhuM"};
482
448
 
483
449
  function Scroller(_ref) {
484
450
  var children = _ref.children;
@@ -489,8 +455,8 @@ function Scroller(_ref) {
489
455
  innerRef: ref
490
456
  }, function (_ref2) {
491
457
  var contentRect = _ref2.contentRect,
492
- measureRef = _ref2.measureRef,
493
- measure = _ref2.measure;
458
+ measureRef = _ref2.measureRef,
459
+ measure = _ref2.measure;
494
460
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScrollButton, {
495
461
  type: "start",
496
462
  contentRect: contentRect,
@@ -500,27 +466,24 @@ function Scroller(_ref) {
500
466
  contentRect: contentRect,
501
467
  onStep: scrollBy
502
468
  }), /*#__PURE__*/React.createElement("div", {
503
- className: styles$8.scroller,
469
+ className: styles$9.scroller,
504
470
  ref: measureRef,
505
471
  onFocus: scrollTargetIntoView,
506
472
  onScroll: function onScroll() {
507
473
  return measure();
508
474
  }
509
475
  }, /*#__PURE__*/React.createElement("div", {
510
- className: styles$8.inner
476
+ className: styles$9.inner
511
477
  }, children)));
512
478
  });
513
-
514
479
  function scrollBy(x) {
515
480
  // IE11 does not support scrollBy
516
481
  ref.current.scrollLeft = ref.current.scrollLeft + x;
517
482
  }
518
-
519
483
  function scrollTargetIntoView(event) {
520
484
  var targetBounds = event.target.getBoundingClientRect();
521
485
  var scrollerClipRight = ref.current.clientWidth * 0.75;
522
486
  var scrollerClipLeft = ref.current.clientWidth * 0.25;
523
-
524
487
  if (targetBounds.left < scrollerClipLeft) {
525
488
  scrollBy(targetBounds.left - scrollerClipLeft);
526
489
  } else if (targetBounds.right > scrollerClipRight) {
@@ -530,26 +493,26 @@ function Scroller(_ref) {
530
493
  }
531
494
 
532
495
  function DefaultNavigation(_ref) {
533
- var _chapters$, _chapters$2, _classNames2;
534
-
535
- var configuration = _ref.configuration;
536
-
496
+ var _chapters$, _chapters$2;
497
+ var configuration = _ref.configuration,
498
+ ExtraButtons = _ref.ExtraButtons,
499
+ MobileMenu = _ref.MobileMenu,
500
+ logo = _ref.logo;
537
501
  var _useState = useState(true),
538
- _useState2 = _slicedToArray(_useState, 2),
539
- navExpanded = _useState2[0],
540
- setNavExpanded = _useState2[1];
541
-
542
- var _useState3 = useState(true),
543
- _useState4 = _slicedToArray(_useState3, 2),
544
- mobileNavHidden = _useState4[0],
545
- setMobileNavHidden = _useState4[1];
546
-
502
+ _useState2 = _slicedToArray(_useState, 2),
503
+ navExpanded = _useState2[0],
504
+ setNavExpanded = _useState2[1];
505
+ var _useState3 = useState(!configuration.defaultMobileNavVisible),
506
+ _useState4 = _slicedToArray(_useState3, 2),
507
+ mobileNavHidden = _useState4[0],
508
+ setMobileNavHidden = _useState4[1];
547
509
  var _useState5 = useState(0),
548
- _useState6 = _slicedToArray(_useState5, 2),
549
- readingProgress = _useState6[0],
550
- setReadingProgress = _useState6[1];
551
-
552
- var chapters = useChapters();
510
+ _useState6 = _slicedToArray(_useState5, 2),
511
+ readingProgress = _useState6[0],
512
+ setReadingProgress = _useState6[1];
513
+ var chapters = useMainChapters().filter(function (chapter) {
514
+ return !chapter.hideInNavigation;
515
+ });
553
516
  var currentChapter = useCurrentChapter();
554
517
  var isPhonePlatform = usePhonePlatform();
555
518
  var shareProviders = useShareProviders({
@@ -558,8 +521,9 @@ function DefaultNavigation(_ref) {
558
521
  var theme = useTheme();
559
522
  useScrollPosition(function (_ref2) {
560
523
  var prevPos = _ref2.prevPos,
561
- currPos = _ref2.currPos;
562
- var expand = currPos.y > prevPos.y || // Mobile Safari reports positive scroll position
524
+ currPos = _ref2.currPos;
525
+ var expand = currPos.y > prevPos.y ||
526
+ // Mobile Safari reports positive scroll position
563
527
  // during scroll bounce animation when scrolling
564
528
  // back to the top. Make sure navigation bar
565
529
  // stays expanded:
@@ -568,9 +532,9 @@ function DefaultNavigation(_ref) {
568
532
  }, [navExpanded]);
569
533
  useScrollPosition(function (_ref3) {
570
534
  var prevPos = _ref3.prevPos,
571
- currPos = _ref3.currPos;
572
- var current = currPos.y * -1; // Todo: Memoize and update on window resize
573
-
535
+ currPos = _ref3.currPos;
536
+ var current = currPos.y * -1;
537
+ // Todo: Memoize and update on window resize
574
538
  var total = document.body.clientHeight - window.innerHeight;
575
539
  var progress = Math.min(100, Math.abs(current / total) * 100);
576
540
  setReadingProgress(progress);
@@ -578,20 +542,17 @@ function DefaultNavigation(_ref) {
578
542
  useOnUnmuteMedia(useCallback(function () {
579
543
  return setNavExpanded(true);
580
544
  }, []));
545
+ var darkWidgets = useDarkWidgets();
581
546
  var hasChapters = chapters.length > 1 || !utils.isBlank((_chapters$ = chapters[0]) === null || _chapters$ === void 0 ? void 0 : _chapters$.title) || !utils.isBlank((_chapters$2 = chapters[0]) === null || _chapters$2 === void 0 ? void 0 : _chapters$2.summary);
582
-
583
547
  function handleProgressBarMouseEnter() {
584
548
  setNavExpanded(true);
585
549
  }
586
-
587
550
  function handleBurgerMenuClick() {
588
551
  setMobileNavHidden(!mobileNavHidden);
589
552
  }
590
-
591
553
  function handleMenuClick(chapterLinkId) {
592
554
  setMobileNavHidden(true);
593
555
  }
594
-
595
556
  function renderChapterLinks(chapters) {
596
557
  return chapters.map(function (chapter, index) {
597
558
  var chapterIndex = index + 1;
@@ -607,35 +568,42 @@ function DefaultNavigation(_ref) {
607
568
  })));
608
569
  });
609
570
  }
610
-
611
571
  function renderNav() {
612
572
  if (!hasChapters) {
613
573
  return null;
614
574
  }
615
-
616
575
  return /*#__PURE__*/React.createElement(Scroller, null, /*#__PURE__*/React.createElement("nav", {
617
- className: classNames(styles.navigationChapters, _defineProperty({}, styles.navigationChaptersHidden, mobileNavHidden)),
618
- role: "navigation"
576
+ className: classNames(styles.navigationChapters, _defineProperty({}, styles.navigationChaptersHidden, mobileNavHidden || MobileMenu))
619
577
  }, /*#__PURE__*/React.createElement("ul", {
620
578
  className: styles.chapterList
621
579
  }, renderChapterLinks(chapters))));
622
580
  }
623
-
624
581
  var hideSharingButton = configuration.hideSharingButton || !shareProviders.length;
625
582
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("header", {
626
- className: classNames(styles.navigationBar, (_classNames2 = {}, _defineProperty(_classNames2, styles.navigationBarExpanded, navExpanded || !isPhonePlatform && configuration.fixedOnDesktop || !mobileNavHidden), _defineProperty(_classNames2, styles.hasChapters, hasChapters), _classNames2))
627
- }, /*#__PURE__*/React.createElement("div", {
583
+ className: classNames(styles.navigationBar, _defineProperty(_defineProperty({
584
+ 'scope-dark': darkWidgets
585
+ }, styles.navigationBarExpanded, navExpanded || !isPhonePlatform && configuration.fixedOnDesktop || !mobileNavHidden), styles.hasChapters, hasChapters)),
586
+ style: {
587
+ '--theme-accent-color': paletteColor(configuration.accentColor)
588
+ }
589
+ }, /*#__PURE__*/React.createElement(WidgetSelectionRect, null, /*#__PURE__*/React.createElement("div", {
628
590
  className: styles.navigationBarContentWrapper
629
- }, hasChapters && /*#__PURE__*/React.createElement(HamburgerIcon, {
591
+ }, (hasChapters || MobileMenu) && /*#__PURE__*/React.createElement(HamburgerIcon, {
630
592
  onClick: handleBurgerMenuClick,
631
593
  mobileNavHidden: mobileNavHidden
632
- }), /*#__PURE__*/React.createElement(SkipLinks, null), /*#__PURE__*/React.createElement(Logo, null), renderNav(), /*#__PURE__*/React.createElement("div", {
594
+ }), /*#__PURE__*/React.createElement(SkipLinks, null), /*#__PURE__*/React.createElement(Logo, logo), renderNav(), MobileMenu && /*#__PURE__*/React.createElement(MobileMenu, {
595
+ configuration: configuration,
596
+ open: !mobileNavHidden,
597
+ close: function close() {
598
+ return setMobileNavHidden(true);
599
+ }
600
+ }), /*#__PURE__*/React.createElement("div", {
633
601
  className: classNames(styles.contextIcons)
634
- }, !configuration.hideToggleMuteButton && /*#__PURE__*/React.createElement(ToggleMuteButton, null), !theme.options.hideLegalInfoButton && /*#__PURE__*/React.createElement(LegalInfoMenu, {
602
+ }, !configuration.hideToggleMuteButton && /*#__PURE__*/React.createElement(ToggleMuteButton, null), /*#__PURE__*/React.createElement(TranslationsMenu, null), !theme.options.hideLegalInfoButton && /*#__PURE__*/React.createElement(LegalInfoMenu, {
635
603
  tooltipOffset: hideSharingButton ? -40 : 0
636
604
  }), !hideSharingButton && /*#__PURE__*/React.createElement(SharingMenu, {
637
605
  shareProviders: shareProviders
638
- }))), /*#__PURE__*/React.createElement("div", {
606
+ }), ExtraButtons && /*#__PURE__*/React.createElement(ExtraButtons, null))), /*#__PURE__*/React.createElement("div", {
639
607
  className: styles.progressBar,
640
608
  onMouseEnter: handleProgressBarMouseEnter
641
609
  }, /*#__PURE__*/React.createElement("span", {
@@ -643,7 +611,7 @@ function DefaultNavigation(_ref) {
643
611
  style: {
644
612
  width: readingProgress + '%'
645
613
  }
646
- }))), /*#__PURE__*/React.createElement(Widget, {
614
+ })))), /*#__PURE__*/React.createElement(SelectableWidget, {
647
615
  role: "defaultNavigationExtra",
648
616
  props: {
649
617
  navigationExpanded: navExpanded,
@@ -655,3 +623,5 @@ function DefaultNavigation(_ref) {
655
623
  frontend.widgetTypes.register('defaultNavigation', {
656
624
  component: DefaultNavigation
657
625
  });
626
+
627
+ export { DefaultNavigation };