pageflow 16.0.0 → 16.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 (188) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +86 -33
  3. data/README.md +6 -6
  4. data/Rakefile +1 -1
  5. data/admins/pageflow/entry.rb +0 -1
  6. data/admins/pageflow/sites.rb +3 -0
  7. data/app/assets/images/pageflow/admin/icons/published_with_noindex.svg +4 -0
  8. data/app/assets/javascripts/pageflow/dist/ui.js +299 -72
  9. data/app/assets/stylesheets/pageflow/admin/active_admin_patches.scss +1 -1
  10. data/app/assets/stylesheets/pageflow/admin/entries.scss +4 -0
  11. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +10 -0
  12. data/app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss +4 -0
  13. data/app/assets/stylesheets/pageflow/editor/base.scss +0 -1
  14. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +61 -7
  15. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +12 -1
  16. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +4 -0
  17. data/app/assets/stylesheets/pageflow/editor/help.scss +3 -3
  18. data/app/assets/stylesheets/pageflow/editor/info_box.scss +7 -0
  19. data/app/assets/stylesheets/pageflow/editor/inputs/file_input.scss +0 -5
  20. data/app/assets/stylesheets/pageflow/ui/forms.scss +4 -4
  21. data/app/assets/stylesheets/pageflow/{editor/wysihtml5.scss → ui/input/text_area_input.scss} +13 -1
  22. data/app/assets/stylesheets/pageflow/ui.scss +1 -0
  23. data/app/controllers/pageflow/chapters_controller.rb +2 -2
  24. data/app/controllers/pageflow/editor/entry_publications_controller.rb +5 -1
  25. data/app/controllers/pageflow/editor/file_import_controller.rb +1 -1
  26. data/app/controllers/pageflow/editor/files_controller.rb +1 -1
  27. data/app/controllers/pageflow/entries_controller.rb +12 -2
  28. data/app/controllers/pageflow/feeds_controller.rb +18 -0
  29. data/app/controllers/pageflow/pages_controller.rb +2 -2
  30. data/app/controllers/pageflow/sitemaps_controller.rb +15 -0
  31. data/app/controllers/pageflow/storylines_controller.rb +2 -2
  32. data/app/helpers/pageflow/entries_helper.rb +4 -1
  33. data/app/helpers/pageflow/feeds_helper.rb +66 -0
  34. data/app/helpers/pageflow/meta_tags_helper.rb +2 -1
  35. data/app/helpers/pageflow/page_types_helper.rb +10 -10
  36. data/app/helpers/pageflow/revision_file_helper.rb +3 -3
  37. data/app/helpers/pageflow/social_share_helper.rb +2 -2
  38. data/app/inputs/pageflow_permalink_input.rb +15 -3
  39. data/app/models/concerns/pageflow/entry_publication_states.rb +9 -0
  40. data/app/models/concerns/pageflow/reusable_file.rb +3 -3
  41. data/app/models/concerns/pageflow/uploadable_file.rb +5 -0
  42. data/app/models/pageflow/account.rb +8 -0
  43. data/app/models/pageflow/audio_file_url_templates.rb +2 -1
  44. data/app/models/pageflow/draft_entry.rb +1 -1
  45. data/app/models/pageflow/entries_feed.rb +32 -0
  46. data/app/models/pageflow/entry.rb +7 -5
  47. data/app/models/pageflow/entry_at_revision.rb +2 -0
  48. data/app/models/pageflow/image_file.rb +34 -8
  49. data/app/models/pageflow/image_file_url_templates.rb +7 -1
  50. data/app/models/pageflow/membership.rb +3 -2
  51. data/app/models/pageflow/other_file.rb +5 -0
  52. data/app/models/pageflow/other_file_url_templates.rb +16 -0
  53. data/app/models/pageflow/published_entry.rb +6 -0
  54. data/app/models/pageflow/revision.rb +6 -0
  55. data/app/models/pageflow/site.rb +8 -0
  56. data/app/models/pageflow/sitemaps.rb +14 -0
  57. data/app/models/pageflow/used_file.rb +10 -2
  58. data/app/models/pageflow/video_file_url_templates.rb +3 -1
  59. data/app/models/pageflow/widget.rb +9 -1
  60. data/app/views/admin/entries/_permalink_inputs.html.erb +1 -2
  61. data/app/views/admin/sites/_attributes_table.html.arb +3 -0
  62. data/app/views/admin/sites/_fields.html.erb +6 -0
  63. data/app/views/components/pageflow/admin/extensible_attributes_table.rb +2 -2
  64. data/app/views/components/pageflow/admin/revisions_tab.rb +8 -0
  65. data/app/views/components/pageflow/admin/sites_tab.rb +3 -0
  66. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +2 -0
  67. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -0
  68. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +1 -0
  69. data/app/views/pageflow/feeds/index.atom.builder +20 -0
  70. data/app/views/pageflow/image_files/_image_file.json.jbuilder +1 -0
  71. data/app/views/pageflow/meta_tags/_entry.html.erb +1 -0
  72. data/app/views/pageflow/sitemaps/index.xml.builder +9 -0
  73. data/config/initializers/features.rb +3 -0
  74. data/config/initializers/paperclip.rb +8 -0
  75. data/config/locales/de.yml +77 -6
  76. data/config/locales/en.yml +79 -4
  77. data/config/routes.rb +3 -0
  78. data/config/spring.rb +1 -1
  79. data/db/migrate/20230120092923_create_other_files.rb +23 -0
  80. data/db/migrate/20230323115745_add_feeds_enabled_to_sites.rb +5 -0
  81. data/db/migrate/20230323154323_add_sitemap_enabled_to_sites.rb +5 -0
  82. data/db/migrate/20230331103823_add_title_to_sites.rb +5 -0
  83. data/db/migrate/20230405103612_add_custom_feed_url_to_sites.rb +5 -0
  84. data/db/migrate/20231024062501_add_output_presences_to_image_files.rb +5 -0
  85. data/db/migrate/20231128124523_add_noindex_to_revisions.rb +5 -0
  86. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +710 -259
  87. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +34 -5
  88. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +1 -1
  89. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
  90. data/entry_types/paged/app/controllers/pageflow_paged/editor/entries_controller.rb +0 -2
  91. data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +2 -1
  92. data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
  93. data/entry_types/paged/config/initializers/features.rb +0 -1
  94. data/entry_types/paged/lib/pageflow_paged/engine.rb +13 -1
  95. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +2 -2
  96. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +3 -4
  97. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +13 -6
  98. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +11 -3
  99. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +11 -0
  100. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +42 -0
  101. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +8 -5
  102. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +17 -12
  103. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +9 -1
  104. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +1 -1
  105. data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +23 -0
  106. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -1
  107. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_seed.json.jbuilder +1 -5
  108. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +10 -0
  109. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +44 -41
  110. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_consent_vendors.json.jbuilder +16 -0
  111. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +7 -0
  112. data/entry_types/scrolled/config/initializers/features.rb +5 -0
  113. data/entry_types/scrolled/config/locales/consent_widget.de.yml +4 -0
  114. data/entry_types/scrolled/config/locales/consent_widget.en.yml +4 -0
  115. data/entry_types/scrolled/config/locales/de.yml +225 -8
  116. data/entry_types/scrolled/config/locales/en.yml +239 -2
  117. data/entry_types/scrolled/config/routes.rb +4 -0
  118. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +69 -44
  119. data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +2 -1
  120. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
  121. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +96 -0
  122. data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +38 -0
  123. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +13 -1
  124. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +30 -0
  125. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +6 -1
  126. data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +1 -1
  127. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake +1 -1
  128. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +1 -2
  129. data/entry_types/scrolled/package/config/webpack.js +26 -0
  130. data/entry_types/scrolled/package/contentElements-editor.js +330 -32
  131. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  132. data/entry_types/scrolled/package/contentElements-frontend.js +920 -145
  133. data/entry_types/scrolled/package/editor.js +819 -239
  134. data/entry_types/scrolled/package/frontend/{EditableInlineText.module-14c7b097.js → EditableInlineText.module-6ee0e024.js} +1975 -1792
  135. data/entry_types/scrolled/package/frontend/PhonePlatformContext-b28d991a.js +32 -0
  136. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-8242f213.js +107 -0
  137. data/entry_types/scrolled/package/frontend/Viewer-32cd1ac1.js +154 -0
  138. data/entry_types/scrolled/package/frontend/{Viewer-b6becc57.js → Viewer-6e4d14ed.js} +32 -161
  139. data/entry_types/scrolled/package/frontend/arrowRight-e42e6011.js +77 -0
  140. data/entry_types/scrolled/package/frontend/{components-b3160dd7.js → components-24363f97.js} +188 -47
  141. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-f6093cc6.js → i18n-71c39823.js} +191 -111
  142. data/entry_types/scrolled/package/frontend/index-fc4b13e6.js +118 -0
  143. data/entry_types/scrolled/package/frontend/index.css +1 -1
  144. data/entry_types/scrolled/package/frontend/index.js +252 -76
  145. data/entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js +52 -0
  146. data/entry_types/scrolled/package/package.json +6 -4
  147. data/entry_types/scrolled/package/testHelpers.js +11 -2
  148. data/entry_types/scrolled/package/values/colors.module.css +15 -0
  149. data/entry_types/scrolled/package/widgets/consentBar.css +1 -0
  150. data/entry_types/scrolled/package/widgets/consentBar.js +426 -0
  151. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  152. data/entry_types/scrolled/package/widgets/defaultNavigation.js +39 -4
  153. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -0
  154. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +49 -0
  155. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -0
  156. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +37 -0
  157. data/lib/generators/pageflow/resque/resque_generator.rb +1 -1
  158. data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
  159. data/lib/generators/pageflow/resque/templates/resque.rb +1 -1
  160. data/lib/generators/pageflow/routes/routes_generator.rb +1 -1
  161. data/lib/pageflow/ability_mixin.rb +5 -5
  162. data/lib/pageflow/active_admin_can_can_fix.rb +2 -2
  163. data/lib/pageflow/built_in_file_type.rb +7 -0
  164. data/lib/pageflow/configuration.rb +29 -1
  165. data/lib/pageflow/engine.rb +18 -40
  166. data/lib/pageflow/entry_export_import/revision_serialization.rb +1 -1
  167. data/lib/pageflow/file_type.rb +2 -2
  168. data/lib/pageflow/global_config_api.rb +2 -2
  169. data/lib/pageflow/nested_revision_component.rb +23 -5
  170. data/lib/pageflow/page_type.rb +1 -1
  171. data/lib/pageflow/paperclip_processors/webp.rb +63 -0
  172. data/lib/pageflow/rails_version.rb +19 -0
  173. data/lib/pageflow/seeds.rb +10 -7
  174. data/lib/pageflow/user_mixin.rb +1 -1
  175. data/lib/pageflow/version.rb +1 -1
  176. data/lib/pageflow/widget_types.rb +4 -0
  177. data/package/config/jest/index.js +3 -1
  178. data/package/config/webpack5.js +14 -0
  179. data/package/editor.js +410 -181
  180. data/package/frontend.js +34 -4
  181. data/package/testHelpers.js +1 -1
  182. data/package/ui.js +297 -71
  183. data/spec/factories/entries.rb +34 -3
  184. data/spec/factories/sites.rb +3 -0
  185. data/vendor/assets/javascripts/iscroll.js +4 -7
  186. metadata +118 -80
  187. data/app/helpers/pageflow/admin/permalinks_helper.rb +0 -15
  188. data/entry_types/scrolled/package/frontend/arrowRight-78a7cee4.js +0 -42
@@ -1,6 +1,6 @@
1
1
  import 'regenerator-runtime';
2
- import { E as EventContextDataProvider, C as ConnectedSection, u as usePrevious, g as getEventObject, w as withInlineEditingDecorator, a as useCurrentSectionIndexState, b as usePostMessageListener, c as contentStyles, A as AtmoProvider, S as ScrollToSectionContext, d as api, B as Bar, _ as _asyncToGenerator, e as _regeneratorRuntime, f as useDarkBackground, T as Text, h as useTextTracks, i as useMediaMuted, j as useFocusOutlineVisible, k as useVideoQualitySetting, l as useIsomorphicLayoutEffect, m as withInlineEditingAlternative, n as frontendStyles, o as useFullscreenDimensions, p as information, q as camelize, s as styles$a, R as RootProviders, r as registerVendors, t as loadInlineEditingComponents } from './EditableInlineText.module-14c7b097.js';
3
- export { a0 as Atmo, a1 as AtmoContext, A as AtmoProvider, Z as AudioPlayer, J as EditableText, Q as Image, U as MediaPlayer, K as PhonePlatformProvider, P as PlayerEventContextDataProvider, R as RootProviders, a5 as SectionThumbnail, a4 as StandaloneSectionThumbnail, T as Text, O as ThirdPartyOptIn, L as ThirdPartyOptOutInfo, Y as VideoPlayer, d as frontend, N as getAvailableTransitionNames, V as getInitialPlayerState, M as getTransitionNames, W as playerStateReducer, $ as processSources, r as registerConsentVendors, a2 as useAtmo, v as useAudioFocus, x as useContentElementConfigurationUpdate, y as useContentElementEditorCommandSubscription, z as useContentElementEditorState, D as useContentElementLifecycle, F as useCurrentChapter, f as useDarkBackground, G as useIsStaticPreview, i as useMediaMuted, a3 as useOnScreen, H as useOnUnmuteMedia, X as usePlayerState, I as usePortraitOrientation } from './EditableInlineText.module-14c7b097.js';
2
+ import { E as EventContextDataProvider, C as ConnectedSection, u as usePrevious, g as getEventObject, w as withInlineEditingDecorator, a as useCurrentSectionIndexState, b as usePostMessageListener, c as contentStyles, A as AtmoProvider, S as ScrollToSectionContext, W as Widget, _ as _asyncToGenerator, d as _regeneratorRuntime, e as withInlineEditingAlternative, f as useDarkBackground, i as isBlankEditableTextValue, h as EditableText, j as useContentElementConfigurationUpdate, k as useContentElementAttributes, l as widths, I as InlineFileRights, m as useTextTracks, n as useMediaMuted, o as useFocusOutlineVisible, p as useVideoQualitySetting, q as useIsomorphicLayoutEffect, r as frontendStyles, s as useFullscreenDimensions, t as information, v as camelize, x as isBlank, y as presence, z as styles$a, R as RootProviders, B as registerVendors, D as api, F as loadInlineEditingComponents } from './EditableInlineText.module-6ee0e024.js';
3
+ export { a8 as Atmo, a9 as AtmoContext, A as AtmoProvider, a6 as AudioPlayer, h as EditableText, $ as Image, I as InlineFileRights, a1 as MediaPlayer, O as PhonePlatformProvider, P as PlayerEventContextDataProvider, R as RootProviders, ad as SectionThumbnail, ac as StandaloneSectionThumbnail, a0 as Text, Q as ThirdPartyOptIn, T as ThirdPartyOptOutInfo, a5 as VideoPlayer, W as Widget, Z as contentElementWidthName, l as contentElementWidths, D as frontend, X as getAvailableTransitionNames, a2 as getInitialPlayerState, V as getTransitionNames, Y as paletteColor, a3 as playerStateReducer, a7 as processSources, B as registerConsentVendors, aa as useAtmo, G as useAudioFocus, U as useConsentRequested, j as useContentElementConfigurationUpdate, H as useContentElementEditorCommandSubscription, J as useContentElementLifecycle, K as useCurrentChapter, f as useDarkBackground, L as useIsStaticPreview, n as useMediaMuted, ab as useOnScreen, M as useOnUnmuteMedia, a4 as usePlayerState, N as usePortraitOrientation } from './EditableInlineText.module-6ee0e024.js';
4
4
  import 'core-js/modules/es.symbol';
5
5
  import 'core-js/modules/es.symbol.description';
6
6
  import 'core-js/modules/es.symbol.async-iterator';
@@ -74,23 +74,28 @@ import 'core-js/modules/esnext.symbol.pattern-match';
74
74
  import 'core-js/modules/web.dom-collections.iterator';
75
75
  import 'regenerator-runtime/runtime.js';
76
76
  import { browser, events, consent, features } from 'pageflow/frontend';
77
- import React, { useRef, useState, useEffect, useCallback, Suspense, useContext } from 'react';
77
+ import React, { useRef, useState, useEffect, useCallback, useMemo, Suspense, useContext } from 'react';
78
78
  import ReactDOM from 'react-dom';
79
- import { c as _slicedToArray, m as useSectionsWithChapter, r as useEntryStructure, s as useWidget, t as getFileUrlTemplateHost, b as _defineProperty, a as _objectSpread2, _ as _objectWithoutProperties, u as useI18n, f as useTheme, j as _toConsumableArray, v as useAvailableQualities, w as setupI18n } from './PhonePlatformContext-f6093cc6.js';
80
- export { L as LocaleProvider, w as setupI18n, l as useAdditionalSeedData, x as useChapters, y as useCredits, o as useEntryStateDispatch, i as useFile, z as useFileRights, u as useI18n, e as useLegalInfo, d as useLocale, A as useShareProviders, C as useShareUrl, f as useTheme } from './PhonePlatformContext-f6093cc6.js';
81
- import 'i18n-js';
82
- import 'use-context-selector';
83
- import 'reselect';
84
- import 'slugify';
79
+ import { _ as _slicedToArray, l as useSectionsWithChapter, r as useEntryStructure, s as getFileUrlTemplateHost, u as useI18n, b as _defineProperty, a as _objectSpread2, e as _objectWithoutProperties, g as useTheme, n as _toConsumableArray, t as useAvailableQualities, v as setupI18n } from './i18n-71c39823.js';
80
+ export { L as LocaleProvider, v as setupI18n, k as useAdditionalSeedData, w as useChapters, x as useCredits, p as useEntryStateDispatch, i as useFile, y as useFileRights, h as useFileWithInlineRights, u as useI18n, z as useLegalInfo, C as useLocale, A as useShareProviders, B as useShareUrl, g as useTheme } from './i18n-71c39823.js';
85
81
  import classNames from 'classnames';
82
+ import { a as useContentElementEditorState } from './useContentElementEditorState-245f1986.js';
83
+ export { a as useContentElementEditorState } from './useContentElementEditorState-245f1986.js';
86
84
  import './createSuper-d0f30da3.js';
87
85
  import 'backbone-events-standalone';
86
+ import 'use-context-selector';
87
+ import 'reselect';
88
+ import 'slugify';
89
+ import 'i18n-js';
90
+ import 'striptags';
88
91
  import Measure from 'react-measure';
92
+ import './PhonePlatformContext-b28d991a.js';
89
93
  import { DraggableCore } from 'react-draggable';
90
- import { A as ArrowRightIcon } from './arrowRight-78a7cee4.js';
91
- export { u as usePhonePlatform } from './arrowRight-78a7cee4.js';
94
+ export { T as ToggleFullscreenCornerButton } from './ToggleFullscreenCornerButton-8242f213.js';
95
+ export { F as FullscreenViewer } from './index-fc4b13e6.js';
96
+ import { A as ArrowRightIcon, a as ArrowLeftIcon } from './arrowRight-e42e6011.js';
97
+ export { u as usePhonePlatform } from './arrowRight-e42e6011.js';
92
98
  import invert from 'invert-color';
93
- import stripTags from 'striptags';
94
99
 
95
100
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
96
101
 
@@ -114,6 +119,8 @@ require('intersection-observer'); // Make sure we're in a Browser-like environme
114
119
 
115
120
  if (typeof window !== 'undefined') {
116
121
  require('whatwg-fetch');
122
+
123
+ require('scroll-timeline');
117
124
  }
118
125
 
119
126
  function Chapter(props) {
@@ -308,25 +315,10 @@ function renderChapters(entryStructure, currentSectionIndex, setCurrentSection,
308
315
  });
309
316
  }
310
317
 
311
- function Widget(_ref) {
312
- var role = _ref.role,
313
- props = _ref.props;
314
- var widget = useWidget({
315
- role: role
316
- });
317
-
318
- if (!widget) {
319
- return null;
320
- }
321
-
322
- var Component = api.widgetTypes.getComponent(widget.typeName);
323
- return /*#__PURE__*/React.createElement(Component, Object.assign({
324
- configuration: widget.configuration
325
- }, props));
326
- }
327
-
328
318
  function Entry() {
329
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Bar, null), /*#__PURE__*/React.createElement(Widget, {
319
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Widget, {
320
+ role: "consent"
321
+ }), /*#__PURE__*/React.createElement(Widget, {
330
322
  role: "header"
331
323
  }), /*#__PURE__*/React.createElement(Content, null), /*#__PURE__*/React.createElement(Widget, {
332
324
  role: "footer"
@@ -374,27 +366,80 @@ function hlsHostSupportedByAndroid(seed) {
374
366
  return getFileUrlTemplateHost(seed, 'videoFiles', 'hls-playlist').indexOf('_') < 0;
375
367
  }
376
368
 
377
- var styles = {"darkContentSurfaceColor":"var(--theme-dark-content-surface-color, #101010)","lightContentSurfaceColor":"var(--theme-light-content-surface-color, #fff)","darkContentTextColor":"var(--theme-dark-content-text-color, #222)","lightContentTextColor":"var(--theme-light-content-text-color, #fff)","root":"Figure-module_root__3FC-x","invert":"Figure-module_invert___0BJP"};
369
+ var ActionButton = withInlineEditingAlternative('ActionButton', function ActionButton() {
370
+ return null;
371
+ });
372
+
373
+ var styles = {"darkContentSurfaceColor":"var(--theme-dark-content-surface-color, #101010)","lightContentSurfaceColor":"var(--theme-light-content-surface-color, #fff)","darkContentTextColor":"var(--theme-dark-content-text-color, #222)","lightContentTextColor":"var(--theme-light-content-text-color, #fff)","contentColorScope":"colors-module_contentColorScope__2Zizr","contentLinkColor":"var(--content-link-color)","root":"Figure-module_root__3FC-x colors-module_contentColorScope__2Zizr","invert":"Figure-module_invert___0BJP"};
378
374
 
379
375
  /**
380
376
  * Render a figure with a caption text attached.
381
377
  *
382
378
  * @param {Object} props
383
379
  * @param {string} props.children - Content of figure.
384
- * @param {string} props.text - The text to be displayed.
380
+ * @param {Object[]|string} props.caption - Formatted text data as provided by onCaptionChange.
381
+ * @param {Function} props.onCaptionChange - Receives updated value when it changes.
382
+ * @param {boolean} [props.addCaptionButtonVisible=true] - Control visiblility of action button.
383
+ * @param {string} [props.captionButtonPosition='outside'] - Position of action button.
385
384
  */
386
385
 
387
386
  function Figure(_ref) {
388
387
  var children = _ref.children,
389
- caption = _ref.caption;
388
+ caption = _ref.caption,
389
+ onCaptionChange = _ref.onCaptionChange,
390
+ _ref$addCaptionButton = _ref.addCaptionButtonVisible,
391
+ addCaptionButtonVisible = _ref$addCaptionButton === void 0 ? true : _ref$addCaptionButton,
392
+ _ref$addCaptionButton2 = _ref.addCaptionButtonPosition,
393
+ addCaptionButtonPosition = _ref$addCaptionButton2 === void 0 ? 'outside' : _ref$addCaptionButton2;
390
394
  var darkBackground = useDarkBackground();
391
395
 
392
- if (caption) {
396
+ var _useContentElementEdi = useContentElementEditorState(),
397
+ isSelected = _useContentElementEdi.isSelected,
398
+ isEditable = _useContentElementEdi.isEditable;
399
+
400
+ var _useState = useState(false),
401
+ _useState2 = _slicedToArray(_useState, 2),
402
+ isEditingCaption = _useState2[0],
403
+ setIsEditingCaption = _useState2[1];
404
+
405
+ var _useI18n = useI18n({
406
+ locale: 'ui'
407
+ }),
408
+ t = _useI18n.t;
409
+
410
+ caption = useMemo(function () {
411
+ return typeof caption === 'string' ? [{
412
+ type: 'paragraph',
413
+ children: [{
414
+ text: caption
415
+ }]
416
+ }] : caption;
417
+ }, [caption]);
418
+
419
+ if (!isBlankEditableTextValue(caption) || isEditable) {
393
420
  return /*#__PURE__*/React.createElement("figure", {
394
421
  className: classNames(styles.root, _defineProperty({}, styles.invert, !darkBackground))
395
- }, children, /*#__PURE__*/React.createElement("figcaption", null, /*#__PURE__*/React.createElement(Text, {
396
- scaleCategory: "caption"
397
- }, caption)));
422
+ }, children, isBlankEditableTextValue(caption) && isSelected && !isEditingCaption && addCaptionButtonVisible && /*#__PURE__*/React.createElement(ActionButton, {
423
+ position: addCaptionButtonPosition,
424
+ icon: "pencil",
425
+ text: t('pageflow_scrolled.inline_editing.add_caption'),
426
+ onClick: function onClick() {
427
+ return setIsEditingCaption(true);
428
+ }
429
+ }), (!isBlankEditableTextValue(caption) || isEditingCaption) && /*#__PURE__*/React.createElement("figcaption", {
430
+ onBlur: function onBlur() {
431
+ return setIsEditingCaption(false);
432
+ }
433
+ }, /*#__PURE__*/React.createElement(EditableText, {
434
+ autoFocus: isEditingCaption,
435
+ value: caption,
436
+ scaleCategory: "caption",
437
+ onChange: onCaptionChange,
438
+ onlyParagraphs: true,
439
+ hyphens: "none",
440
+ floatingControlsPosition: "above",
441
+ placeholder: t('pageflow_scrolled.inline_editing.type_text')
442
+ })));
398
443
  } else {
399
444
  return children;
400
445
  }
@@ -417,6 +462,31 @@ function ContentElementBox(_ref) {
417
462
  }, children);
418
463
  }
419
464
 
465
+ /**
466
+ * @param {Object} props
467
+ * @param {Object} props.configuration - Configuration of the content element.
468
+ * @param {string} props.children - Content of box.
469
+ */
470
+
471
+ function ContentElementFigure(_ref) {
472
+ var configuration = _ref.configuration,
473
+ children = _ref.children;
474
+ var updateConfiguration = useContentElementConfigurationUpdate();
475
+
476
+ var _useContentElementAtt = useContentElementAttributes(),
477
+ width = _useContentElementAtt.width;
478
+
479
+ return /*#__PURE__*/React.createElement(Figure, {
480
+ caption: configuration.caption,
481
+ onCaptionChange: function onCaptionChange(caption) {
482
+ return updateConfiguration({
483
+ caption: caption
484
+ });
485
+ },
486
+ addCaptionButtonPosition: width === widths.full ? 'outsideIndented' : 'outside'
487
+ }, children);
488
+ }
489
+
420
490
  function MediaInteractionTracking(_ref) {
421
491
  var playerState = _ref.playerState,
422
492
  playerActions = _ref.playerActions,
@@ -489,7 +559,7 @@ function RemotePeakData(_ref) {
489
559
  }
490
560
  }
491
561
 
492
- var styles$2 = {"container":"Waveform-module_container__1Dxdv","clickMask":"Waveform-module_clickMask__3LYAT","menuBar":"Waveform-module_menuBar__342n-","timeDisplay":"Waveform-module_timeDisplay__1v4Tl","playControl":"Waveform-module_playControl__QWTsJ","waveWrapper":"Waveform-module_waveWrapper__3gamc"};
562
+ var styles$2 = {"container":"Waveform-module_container__1Dxdv","clickMask":"Waveform-module_clickMask__3LYAT","menuBar":"Waveform-module_menuBar__342n-","menuBarInner":"Waveform-module_menuBarInner__3wjQs","timeDisplay":"Waveform-module_timeDisplay__1v4Tl","playControl":"Waveform-module_playControl__QWTsJ","waveWrapper":"Waveform-module_waveWrapper__3gamc"};
493
563
 
494
564
  var waveColor = '#828282ed';
495
565
  var waveColorInverted = 'rgba(0, 0, 0, 0.5)';
@@ -586,7 +656,7 @@ function TimeDisplay(props) {
586
656
  }, formatTime(props.duration)));
587
657
  }
588
658
 
589
- var styles$4 = {"button":"MenuBarButton-module_button__2sY0F ControlBar-module_button___4aXE utils-module_unstyledButton__3rgne","icon":"MenuBarButton-module_icon__2h8__","subMenuItemAnnotation":"MenuBarButton-module_subMenuItemAnnotation__32Quc","subMenu":"MenuBarButton-module_subMenu__f-E-X","subMenuExpanded":"MenuBarButton-module_subMenuExpanded__2UvkJ","subMenuItem":"MenuBarButton-module_subMenuItem__1pyn_","subMenuItemIcon":"MenuBarButton-module_subMenuItemIcon__3iaB-","subMenuItemButton":"MenuBarButton-module_subMenuItemButton__2QnUz utils-module_unstyledButton__3rgne"};
659
+ var styles$4 = {"wrapper":"MenuBarButton-module_wrapper__2lFoI","button":"MenuBarButton-module_button__2sY0F ControlBar-module_button___4aXE utils-module_unstyledButton__3rgne","icon":"MenuBarButton-module_icon__2h8__","subMenuItemAnnotation":"MenuBarButton-module_subMenuItemAnnotation__32Quc","subMenu":"MenuBarButton-module_subMenu__f-E-X","subMenuExpanded":"MenuBarButton-module_subMenuExpanded__2UvkJ","subMenuItem":"MenuBarButton-module_subMenuItem__1pyn_","subMenuItemIcon":"MenuBarButton-module_subMenuItemIcon__3iaB-","subMenuItemButton":"MenuBarButton-module_subMenuItemButton__2QnUz utils-module_unstyledButton__3rgne"};
590
660
 
591
661
  function _extends() {
592
662
  _extends = Object.assign || function (target) {
@@ -775,7 +845,7 @@ TextTracksMenu.defaultProps = {
775
845
  items: []
776
846
  };
777
847
 
778
- var styles$5 = {"container":"ControlBar-module_container__1GH64","transparent":"ControlBar-module_transparent__eS4af","lightBackground":"ControlBar-module_lightBackground__3-tGf","darkBackground":"ControlBar-module_darkBackground__31Wv7","controlBarContainer":"ControlBar-module_controlBarContainer__1cxRO","inset":"ControlBar-module_inset__JvBh9","button":"ControlBar-module_button___4aXE utils-module_unstyledButton__3rgne","playControl":"ControlBar-module_playControl__Vg5et ControlBar-module_button___4aXE utils-module_unstyledButton__3rgne"};
848
+ var styles$5 = {"container":"ControlBar-module_container__1GH64","lightBackground":"ControlBar-module_lightBackground__3-tGf","darkBackground":"ControlBar-module_darkBackground__31Wv7","controlBarContainer":"ControlBar-module_controlBarContainer__1cxRO","inset":"ControlBar-module_inset__JvBh9","controlBarInner":"ControlBar-module_controlBarInner__39fE9","transparent":"ControlBar-module_transparent__eS4af","button":"ControlBar-module_button___4aXE utils-module_unstyledButton__3rgne","playControl":"ControlBar-module_playControl__Vg5et ControlBar-module_button___4aXE utils-module_unstyledButton__3rgne"};
779
849
 
780
850
  function _extends$2() {
781
851
  _extends$2 = Object.assign || function (target) {
@@ -897,12 +967,19 @@ function WaveformPlayerControls(props) {
897
967
  pause: props.pause
898
968
  })), /*#__PURE__*/React.createElement("div", {
899
969
  className: classNames(styles$2.menuBar, darkBackground ? styles$5.darkBackground : styles$5.lightBackground, _defineProperty({}, styles$5.inset, !props.standAlone))
970
+ }, /*#__PURE__*/React.createElement("div", {
971
+ className: styles$2.menuBarInner
900
972
  }, /*#__PURE__*/React.createElement(TimeDisplay, {
901
973
  currentTime: props.currentTime,
902
974
  duration: props.duration
903
975
  }), /*#__PURE__*/React.createElement(TextTracksMenu, {
904
976
  items: props.textTracksMenuItems,
905
977
  onItemClick: props.onTextTracksMenuItemClick
978
+ })), /*#__PURE__*/React.createElement(InlineFileRights, {
979
+ items: props.inlineFileRightsItems,
980
+ context: "playerControls",
981
+ playerControlsTransparent: false,
982
+ playerControlsStandAlone: props.standAlone
906
983
  })));
907
984
  }
908
985
 
@@ -1104,6 +1181,8 @@ function renderControlBar(props, darkBackground, transparent) {
1104
1181
  onMouseEnter: props.onMouseEnter,
1105
1182
  onMouseLeave: props.onMouseLeave,
1106
1183
  className: classNames(styles$5.controlBarContainer, darkBackground ? styles$5.darkBackground : styles$5.lightBackground, (_classNames = {}, _defineProperty(_classNames, styles$5.inset, !props.standAlone), _defineProperty(_classNames, styles$5.transparent, transparent), _classNames))
1184
+ }, /*#__PURE__*/React.createElement("div", {
1185
+ className: styles$5.controlBarInner
1107
1186
  }, /*#__PURE__*/React.createElement(PlayPauseButton, {
1108
1187
  isPlaying: props.isPlaying,
1109
1188
  play: props.play,
@@ -1124,6 +1203,11 @@ function renderControlBar(props, darkBackground, transparent) {
1124
1203
  items: props.qualityMenuItems,
1125
1204
  onItemClick: props.onQualityMenuItemClick,
1126
1205
  subMenuExpanded: props.qualityMenuExpanded
1206
+ })), /*#__PURE__*/React.createElement(InlineFileRights, {
1207
+ items: props.inlineFileRightsItems,
1208
+ context: "playerControls",
1209
+ playerControlsTransparent: transparent,
1210
+ playerControlsStandAlone: props.standAlone
1127
1211
  }));
1128
1212
  }
1129
1213
 
@@ -1185,8 +1269,7 @@ function MediaPlayerControls(props) {
1185
1269
  }, props));
1186
1270
  }
1187
1271
  MediaPlayerControls.defaultProps = {
1188
- configuration: {},
1189
- sectionProps: {}
1272
+ configuration: {}
1190
1273
  };
1191
1274
 
1192
1275
  function getTextTracksMenuItems(textTracks, t) {
@@ -1256,7 +1339,7 @@ function AudioPlayerControls(_ref) {
1256
1339
  }
1257
1340
 
1258
1341
  var Viewer = React.lazy(function () {
1259
- return import('./Viewer-b6becc57.js');
1342
+ return import('./Viewer-6e4d14ed.js');
1260
1343
  });
1261
1344
  function Panorama(props) {
1262
1345
  return /*#__PURE__*/React.createElement(Suspense, {
@@ -1264,6 +1347,22 @@ function Panorama(props) {
1264
1347
  }, /*#__PURE__*/React.createElement(Viewer, props));
1265
1348
  }
1266
1349
 
1350
+ var Viewer$1 = React.lazy(function () {
1351
+ return import('./Viewer-32cd1ac1.js');
1352
+ });
1353
+ function ExpandableImage(_ref) {
1354
+ var enabled = _ref.enabled,
1355
+ props = _objectWithoutProperties(_ref, ["enabled"]);
1356
+
1357
+ if (!enabled) {
1358
+ return props.children;
1359
+ }
1360
+
1361
+ return /*#__PURE__*/React.createElement(Suspense, {
1362
+ fallback: /*#__PURE__*/React.createElement("div", null)
1363
+ }, /*#__PURE__*/React.createElement(Viewer$1, props));
1364
+ }
1365
+
1267
1366
  // from https://github.com/n8tb1t/use-scroll-position
1268
1367
  var isBrowser = typeof window !== "undefined";
1269
1368
 
@@ -1370,6 +1469,7 @@ var AspectRatioContext = React.createContext();
1370
1469
  * @param {Object} props
1371
1470
  * @param {number} [props.aspectRatio] - Aspect ratio of div.
1372
1471
  * @param {Object} [props.file] - Use width/height of file to calculate aspect ratio.
1472
+ * @param {number} [props.scale] - Only take up fraction of the viewport height supplied as value between 0 and 1.
1373
1473
  * @param {Object} [props.opaque] - Render black background behind content.
1374
1474
  */
1375
1475
 
@@ -1377,7 +1477,9 @@ function FitViewport(_ref) {
1377
1477
  var file = _ref.file,
1378
1478
  aspectRatio = _ref.aspectRatio,
1379
1479
  opaque = _ref.opaque,
1380
- children = _ref.children;
1480
+ children = _ref.children,
1481
+ _ref$scale = _ref.scale,
1482
+ scale = _ref$scale === void 0 ? 1 : _ref$scale;
1381
1483
 
1382
1484
  var _useFullscreenDimensi = useFullscreenDimensions(),
1383
1485
  height = _useFullscreenDimensi.height;
@@ -1388,10 +1490,10 @@ function FitViewport(_ref) {
1388
1490
 
1389
1491
  if (height) {
1390
1492
  // thumbnail view/fixed size: calculate absolute width in px
1391
- maxWidthCSS = height / aspectRatio + 'px';
1493
+ maxWidthCSS = height / aspectRatio * scale + 'px';
1392
1494
  } else {
1393
1495
  // published view: set max width to specific aspect ratio depending on viewport height
1394
- maxWidthCSS = 100 / aspectRatio + 'vh';
1496
+ maxWidthCSS = 100 / aspectRatio * scale + 'vh';
1395
1497
  }
1396
1498
 
1397
1499
  return /*#__PURE__*/React.createElement("div", {
@@ -1615,15 +1717,15 @@ function _extends$8() {
1615
1717
 
1616
1718
  return _extends$8.apply(this, arguments);
1617
1719
  }
1618
- var email = (function (_ref) {
1720
+ var gear = (function (_ref) {
1619
1721
  var _ref$styles = _ref.styles,
1620
1722
  props = _objectWithoutProperties(_ref, ["styles"]);
1621
1723
 
1622
1724
  return /*#__PURE__*/React.createElement("svg", _extends$8({
1623
1725
  xmlns: "http://www.w3.org/2000/svg",
1624
- viewBox: "0 0 612 612"
1726
+ viewBox: "-3 -3 30 30"
1625
1727
  }, props), /*#__PURE__*/React.createElement("path", {
1626
- d: "M573.75 57.375H38.25C17.136 57.375 0 74.511 0 95.625v420.75c0 21.133 17.136 38.25 38.25 38.25h535.5c21.133 0 38.25-17.117 38.25-38.25V95.625c0-21.114-17.117-38.25-38.25-38.25zM554.625 497.25H57.375V204.657l224.03 187.999c7.134 5.967 15.874 8.97 24.595 8.97 8.74 0 17.461-3.003 24.595-8.97l224.03-187.999V497.25zm0-367.487L306 338.379 57.375 129.763V114.75h497.25v15.013z"
1728
+ d: "M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0014 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"
1627
1729
  }));
1628
1730
  });
1629
1731
 
@@ -1644,15 +1746,22 @@ function _extends$9() {
1644
1746
 
1645
1747
  return _extends$9.apply(this, arguments);
1646
1748
  }
1647
- var facebook = (function (_ref) {
1749
+ var copyright = (function (_ref) {
1648
1750
  var _ref$styles = _ref.styles,
1649
1751
  props = _objectWithoutProperties(_ref, ["styles"]);
1650
1752
 
1651
1753
  return /*#__PURE__*/React.createElement("svg", _extends$9({
1652
1754
  xmlns: "http://www.w3.org/2000/svg",
1653
- viewBox: "0 0 430.113 430.114"
1755
+ width: "800",
1756
+ height: "800",
1757
+ viewBox: "0 0 24 24",
1758
+ fill: "none"
1654
1759
  }, props), /*#__PURE__*/React.createElement("path", {
1655
- d: "M158.081 83.3v59.218h-43.385v72.412h43.385v215.183h89.122V214.936h59.805s5.601-34.721 8.316-72.685H247.54V92.74c0-7.4 9.717-17.354 19.321-17.354h48.557V.001h-66.021C155.878-.004 158.081 72.48 158.081 83.3z"
1760
+ d: "M14 9c-.48-.6-1.07-1-2-1-1.923 0-3 1.143-3 4s1.077 4 3 4c.93 0 1.52-.4 2-1m-2 6a9 9 0 100-18 9 9 0 000 18z",
1761
+ stroke: "currentColor",
1762
+ strokeWidth: "2",
1763
+ strokeLinecap: "round",
1764
+ strokeLinejoin: "round"
1656
1765
  }));
1657
1766
  });
1658
1767
 
@@ -1673,15 +1782,15 @@ function _extends$a() {
1673
1782
 
1674
1783
  return _extends$a.apply(this, arguments);
1675
1784
  }
1676
- var linkedIn = (function (_ref) {
1785
+ var email = (function (_ref) {
1677
1786
  var _ref$styles = _ref.styles,
1678
1787
  props = _objectWithoutProperties(_ref, ["styles"]);
1679
1788
 
1680
1789
  return /*#__PURE__*/React.createElement("svg", _extends$a({
1681
1790
  xmlns: "http://www.w3.org/2000/svg",
1682
- viewBox: "0 0 430.117 430.117"
1791
+ viewBox: "0 0 612 612"
1683
1792
  }, props), /*#__PURE__*/React.createElement("path", {
1684
- d: "M430.117 261.543V420.56h-92.188V272.193c0-37.271-13.334-62.707-46.703-62.707-25.473 0-40.632 17.142-47.301 33.724-2.432 5.928-3.058 14.179-3.058 22.477V420.56h-92.219s1.242-251.285 0-277.32h92.21v39.309c-.187.294-.43.611-.606.896h.606v-.896c12.251-18.869 34.13-45.824 83.102-45.824 60.673-.001 106.157 39.636 106.157 124.818zM52.183 9.558C20.635 9.558 0 30.251 0 57.463c0 26.619 20.038 47.94 50.959 47.94h.616c32.159 0 52.159-21.317 52.159-47.94-.606-27.212-20-47.905-51.551-47.905zM5.477 420.56h92.184V143.24H5.477v277.32z"
1793
+ d: "M573.75 57.375H38.25C17.136 57.375 0 74.511 0 95.625v420.75c0 21.133 17.136 38.25 38.25 38.25h535.5c21.133 0 38.25-17.117 38.25-38.25V95.625c0-21.114-17.117-38.25-38.25-38.25zM554.625 497.25H57.375V204.657l224.03 187.999c7.134 5.967 15.874 8.97 24.595 8.97 8.74 0 17.461-3.003 24.595-8.97l224.03-187.999V497.25zm0-367.487L306 338.379 57.375 129.763V114.75h497.25v15.013z"
1685
1794
  }));
1686
1795
  });
1687
1796
 
@@ -1702,15 +1811,15 @@ function _extends$b() {
1702
1811
 
1703
1812
  return _extends$b.apply(this, arguments);
1704
1813
  }
1705
- var telegram = (function (_ref) {
1814
+ var facebook = (function (_ref) {
1706
1815
  var _ref$styles = _ref.styles,
1707
1816
  props = _objectWithoutProperties(_ref, ["styles"]);
1708
1817
 
1709
1818
  return /*#__PURE__*/React.createElement("svg", _extends$b({
1710
1819
  xmlns: "http://www.w3.org/2000/svg",
1711
- viewBox: "0 0 512.004 512.004"
1820
+ viewBox: "0 0 430.113 430.114"
1712
1821
  }, props), /*#__PURE__*/React.createElement("path", {
1713
- d: "M508.194 20.517c-4.43-4.96-11.42-6.29-17.21-3.76l-482 211a15.01 15.01 0 00-8.98 13.41 15.005 15.005 0 008.38 13.79l115.09 56.6 28.68 172.06c.93 6.53 6.06 11.78 12.74 12.73 4.8.69 9.57-1 12.87-4.4l90.86-90.86 129.66 92.62a15.02 15.02 0 0014.24 1.74 15.01 15.01 0 009.19-11.01l90-451c.89-4.47-.26-9.26-3.52-12.92zm-372.84 263.45l-84.75-41.68 334.82-146.57-250.07 188.25zm46.94 44.59l-13.95 69.75-15.05-90.3 183.97-138.49-150.88 151.39c-2.12 2.12-3.53 4.88-4.09 7.65zm9.13 107.3l15.74-78.67 36.71 26.22-52.45 52.45zm205.41 19.94l-176.73-126.23 252.47-253.31-75.74 379.54z"
1822
+ d: "M158.081 83.3v59.218h-43.385v72.412h43.385v215.183h89.122V214.936h59.805s5.601-34.721 8.316-72.685H247.54V92.74c0-7.4 9.717-17.354 19.321-17.354h48.557V.001h-66.021C155.878-.004 158.081 72.48 158.081 83.3z"
1714
1823
  }));
1715
1824
  });
1716
1825
 
@@ -1731,15 +1840,15 @@ function _extends$c() {
1731
1840
 
1732
1841
  return _extends$c.apply(this, arguments);
1733
1842
  }
1734
- var twitter = (function (_ref) {
1843
+ var linkedIn = (function (_ref) {
1735
1844
  var _ref$styles = _ref.styles,
1736
1845
  props = _objectWithoutProperties(_ref, ["styles"]);
1737
1846
 
1738
1847
  return /*#__PURE__*/React.createElement("svg", _extends$c({
1739
1848
  xmlns: "http://www.w3.org/2000/svg",
1740
- viewBox: "0 0 612 612"
1849
+ viewBox: "0 0 430.117 430.117"
1741
1850
  }, props), /*#__PURE__*/React.createElement("path", {
1742
- d: "M612 116.258a250.714 250.714 0 01-72.088 19.772c25.929-15.527 45.777-40.155 55.184-69.411-24.322 14.379-51.169 24.82-79.775 30.48-22.907-24.437-55.49-39.658-91.63-39.658-69.334 0-125.551 56.217-125.551 125.513 0 9.828 1.109 19.427 3.251 28.606-104.326-5.24-196.835-55.223-258.75-131.174-10.823 18.51-16.98 40.078-16.98 63.101 0 43.559 22.181 81.993 55.835 104.479a125.556 125.556 0 01-56.867-15.756v1.568c0 60.806 43.291 111.554 100.693 123.104-10.517 2.83-21.607 4.398-33.08 4.398-8.107 0-15.947-.803-23.634-2.333 15.985 49.907 62.336 86.199 117.253 87.194-42.947 33.654-97.099 53.655-155.916 53.655-10.134 0-20.116-.612-29.944-1.721 55.567 35.681 121.536 56.485 192.438 56.485 230.948 0 357.188-191.291 357.188-357.188l-.421-16.253c24.666-17.593 46.005-39.697 62.794-64.861z"
1851
+ d: "M430.117 261.543V420.56h-92.188V272.193c0-37.271-13.334-62.707-46.703-62.707-25.473 0-40.632 17.142-47.301 33.724-2.432 5.928-3.058 14.179-3.058 22.477V420.56h-92.219s1.242-251.285 0-277.32h92.21v39.309c-.187.294-.43.611-.606.896h.606v-.896c12.251-18.869 34.13-45.824 83.102-45.824 60.673-.001 106.157 39.636 106.157 124.818zM52.183 9.558C20.635 9.558 0 30.251 0 57.463c0 26.619 20.038 47.94 50.959 47.94h.616c32.159 0 52.159-21.317 52.159-47.94-.606-27.212-20-47.905-51.551-47.905zM5.477 420.56h92.184V143.24H5.477v277.32z"
1743
1852
  }));
1744
1853
  });
1745
1854
 
@@ -1760,11 +1869,69 @@ function _extends$d() {
1760
1869
 
1761
1870
  return _extends$d.apply(this, arguments);
1762
1871
  }
1763
- var whatsApp = (function (_ref) {
1872
+ var telegram = (function (_ref) {
1764
1873
  var _ref$styles = _ref.styles,
1765
1874
  props = _objectWithoutProperties(_ref, ["styles"]);
1766
1875
 
1767
1876
  return /*#__PURE__*/React.createElement("svg", _extends$d({
1877
+ xmlns: "http://www.w3.org/2000/svg",
1878
+ viewBox: "0 0 512.004 512.004"
1879
+ }, props), /*#__PURE__*/React.createElement("path", {
1880
+ d: "M508.194 20.517c-4.43-4.96-11.42-6.29-17.21-3.76l-482 211a15.01 15.01 0 00-8.98 13.41 15.005 15.005 0 008.38 13.79l115.09 56.6 28.68 172.06c.93 6.53 6.06 11.78 12.74 12.73 4.8.69 9.57-1 12.87-4.4l90.86-90.86 129.66 92.62a15.02 15.02 0 0014.24 1.74 15.01 15.01 0 009.19-11.01l90-451c.89-4.47-.26-9.26-3.52-12.92zm-372.84 263.45l-84.75-41.68 334.82-146.57-250.07 188.25zm46.94 44.59l-13.95 69.75-15.05-90.3 183.97-138.49-150.88 151.39c-2.12 2.12-3.53 4.88-4.09 7.65zm9.13 107.3l15.74-78.67 36.71 26.22-52.45 52.45zm205.41 19.94l-176.73-126.23 252.47-253.31-75.74 379.54z"
1881
+ }));
1882
+ });
1883
+
1884
+ function _extends$e() {
1885
+ _extends$e = Object.assign || function (target) {
1886
+ for (var i = 1; i < arguments.length; i++) {
1887
+ var source = arguments[i];
1888
+
1889
+ for (var key in source) {
1890
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1891
+ target[key] = source[key];
1892
+ }
1893
+ }
1894
+ }
1895
+
1896
+ return target;
1897
+ };
1898
+
1899
+ return _extends$e.apply(this, arguments);
1900
+ }
1901
+ var twitter = (function (_ref) {
1902
+ var _ref$styles = _ref.styles,
1903
+ props = _objectWithoutProperties(_ref, ["styles"]);
1904
+
1905
+ return /*#__PURE__*/React.createElement("svg", _extends$e({
1906
+ xmlns: "http://www.w3.org/2000/svg",
1907
+ viewBox: "0 0 612 612"
1908
+ }, props), /*#__PURE__*/React.createElement("path", {
1909
+ d: "M612 116.258a250.714 250.714 0 01-72.088 19.772c25.929-15.527 45.777-40.155 55.184-69.411-24.322 14.379-51.169 24.82-79.775 30.48-22.907-24.437-55.49-39.658-91.63-39.658-69.334 0-125.551 56.217-125.551 125.513 0 9.828 1.109 19.427 3.251 28.606-104.326-5.24-196.835-55.223-258.75-131.174-10.823 18.51-16.98 40.078-16.98 63.101 0 43.559 22.181 81.993 55.835 104.479a125.556 125.556 0 01-56.867-15.756v1.568c0 60.806 43.291 111.554 100.693 123.104-10.517 2.83-21.607 4.398-33.08 4.398-8.107 0-15.947-.803-23.634-2.333 15.985 49.907 62.336 86.199 117.253 87.194-42.947 33.654-97.099 53.655-155.916 53.655-10.134 0-20.116-.612-29.944-1.721 55.567 35.681 121.536 56.485 192.438 56.485 230.948 0 357.188-191.291 357.188-357.188l-.421-16.253c24.666-17.593 46.005-39.697 62.794-64.861z"
1910
+ }));
1911
+ });
1912
+
1913
+ function _extends$f() {
1914
+ _extends$f = Object.assign || function (target) {
1915
+ for (var i = 1; i < arguments.length; i++) {
1916
+ var source = arguments[i];
1917
+
1918
+ for (var key in source) {
1919
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1920
+ target[key] = source[key];
1921
+ }
1922
+ }
1923
+ }
1924
+
1925
+ return target;
1926
+ };
1927
+
1928
+ return _extends$f.apply(this, arguments);
1929
+ }
1930
+ var whatsApp = (function (_ref) {
1931
+ var _ref$styles = _ref.styles,
1932
+ props = _objectWithoutProperties(_ref, ["styles"]);
1933
+
1934
+ return /*#__PURE__*/React.createElement("svg", _extends$f({
1768
1935
  xmlns: "http://www.w3.org/2000/svg",
1769
1936
  viewBox: "0 0 90 90"
1770
1937
  }, props), /*#__PURE__*/React.createElement("path", {
@@ -1778,24 +1945,33 @@ var icons = {
1778
1945
  muted: muted,
1779
1946
  share: share,
1780
1947
  unmuted: unmuted,
1948
+ gear: gear,
1949
+ copyright: copyright,
1781
1950
  email: email,
1782
1951
  facebook: facebook,
1783
1952
  linkedIn: linkedIn,
1784
1953
  telegram: telegram,
1785
1954
  twitter: twitter,
1786
- whatsApp: whatsApp
1955
+ whatsApp: whatsApp,
1956
+ arrowLeft: ArrowLeftIcon,
1957
+ arrowRight: ArrowRightIcon
1787
1958
  };
1788
1959
  /**
1789
1960
  * Render an SVG icon that can be customized in themes.
1790
1961
  *
1791
1962
  * @param {Object} props
1792
1963
  * @param {string} props.name -
1793
- * Either: expand, information, muted, share, unmuted,
1794
- * email, facebook, linkedIn, telegram, twitter, whatsApp.
1964
+ * Either: copyright, expand, gear, information, muted, share, unmuted,
1965
+ * email, facebook, linkedIn, telegram, twitter, whatsApp,
1966
+ * arrowLeft, arrowRight,
1967
+ * @params {number} [props.width] - Image width.
1968
+ * @params {number} [props.height] - Image height.
1795
1969
  */
1796
1970
 
1797
1971
  function ThemeIcon(_ref) {
1798
- var name = _ref.name;
1972
+ var name = _ref.name,
1973
+ width = _ref.width,
1974
+ height = _ref.height;
1799
1975
  var theme = useTheme();
1800
1976
  var FallbackIcon = icons[name];
1801
1977
  var themeAsset = theme.assets.icons[name];
@@ -1805,11 +1981,17 @@ function ThemeIcon(_ref) {
1805
1981
  }
1806
1982
 
1807
1983
  if (themeAsset) {
1808
- return /*#__PURE__*/React.createElement("svg", null, /*#__PURE__*/React.createElement("use", {
1984
+ return /*#__PURE__*/React.createElement("svg", {
1985
+ width: width,
1986
+ height: height
1987
+ }, /*#__PURE__*/React.createElement("use", {
1809
1988
  xlinkHref: "".concat(themeAsset, "#icon")
1810
1989
  }));
1811
1990
  } else {
1812
- return /*#__PURE__*/React.createElement(FallbackIcon, null);
1991
+ return /*#__PURE__*/React.createElement(FallbackIcon, {
1992
+ width: width,
1993
+ height: height
1994
+ });
1813
1995
  }
1814
1996
  }
1815
1997
 
@@ -1822,16 +2004,10 @@ function registerTemplateWidgetType (typeName, callback) {
1822
2004
  callback(element);
1823
2005
  }
1824
2006
 
1825
- function isBlank(html) {
1826
- return !!stripTags(html).match(/^\s*$/);
1827
- }
1828
- function presence(html) {
1829
- return isBlank(html) ? null : html;
1830
- }
1831
-
1832
2007
  var utils = {
1833
2008
  camelize: camelize,
1834
2009
  isBlank: isBlank,
2010
+ isBlankEditableTextValue: isBlankEditableTextValue,
1835
2011
  presence: presence
1836
2012
  };
1837
2013
 
@@ -1922,4 +2098,4 @@ function Root(_ref2) {
1922
2098
  }, /*#__PURE__*/React.createElement(Entry, null));
1923
2099
  }
1924
2100
 
1925
- export { AudioPlayerControls, ClassicPlayerControls, ContentElementBox, EditableInlineText, Entry, Figure, FitViewport, MediaInteractionTracking, MediaPlayerControls, Panorama, PlayerControls, Root, ThemeIcon, Tooltip, VideoPlayerControls, WaveformPlayerControls, Widget, registerTemplateWidgetType, textColorForBackgroundColor, useScrollPosition, utils, withShadowClassName };
2101
+ export { AudioPlayerControls, ClassicPlayerControls, ContentElementBox, ContentElementFigure, EditableInlineText, Entry, ExpandableImage, Figure, FitViewport, MediaInteractionTracking, MediaPlayerControls, Panorama, PlayerControls, Root, ThemeIcon, Tooltip, VideoPlayerControls, WaveformPlayerControls, registerTemplateWidgetType, textColorForBackgroundColor, useScrollPosition, utils, withShadowClassName };