pageflow 15.1.0.beta6 → 15.1.0.rc0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pageflow might be problematic. Click here for more details.

Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/app/assets/javascripts/pageflow/dist/editor.js +613 -94
  4. data/app/assets/javascripts/pageflow/dist/ui.js +120 -3
  5. data/app/assets/stylesheets/pageflow/editor/base.scss +1 -0
  6. data/app/assets/stylesheets/pageflow/editor/composables.scss +9 -0
  7. data/app/assets/stylesheets/pageflow/editor/file_import.scss +7 -8
  8. data/app/helpers/pageflow/config_helper.rb +1 -1
  9. data/app/helpers/pageflow/entries_helper.rb +6 -1
  10. data/app/helpers/pageflow/social_share_links_helper.rb +5 -1
  11. data/config/locales/de.yml +34 -16
  12. data/config/locales/en.yml +34 -16
  13. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +613 -93
  14. data/entry_types/paged/app/views/layouts/pageflow_paged/application.html.erb +2 -1
  15. data/entry_types/paged/lib/pageflow_paged/engine.rb +1 -0
  16. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +9 -1
  17. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +2 -0
  18. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +28 -0
  19. data/entry_types/scrolled/config/locales/new/de.yml +46 -0
  20. data/entry_types/scrolled/config/locales/new/en.yml +46 -0
  21. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +1 -0
  22. data/entry_types/scrolled/package/editor.js +2844 -78
  23. data/entry_types/scrolled/package/frontend.js +955 -443
  24. data/entry_types/scrolled/package/package.json +1 -0
  25. data/lib/pageflow/version.rb +1 -1
  26. data/packages/pageflow/editor.js +485 -90
  27. data/packages/pageflow/ui.js +120 -3
  28. metadata +5 -4
  29. data/config/locales/new/entry_metadata_configuration.de.yml +0 -17
  30. data/config/locales/new/entry_metadata_configuration.en.yml +0 -17
@@ -205,83 +205,151 @@ function useNativeScrollPrevention(ref) {
205
205
  }, [ref]);
206
206
  }
207
207
 
208
- function styleInject(css, ref) {
209
- if ( ref === void 0 ) ref = {};
210
- var insertAt = ref.insertAt;
208
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
211
209
 
212
- if (!css || typeof document === 'undefined') { return; }
210
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
211
+ var PREFIX = 'PAGEFLOW_SCROLLED_COLLECTION';
212
+ var RESET = "".concat(PREFIX, "_RESET");
213
+ var ADD = "".concat(PREFIX, "_ADD");
214
+ var CHANGE = "".concat(PREFIX, "_CHANGE");
215
+ var REMOVE = "".concat(PREFIX, "_REMOVE");
216
+ var SORT = "".concat(PREFIX, "_SORT");
217
+ function useCollections() {
218
+ var seed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
213
219
 
214
- var head = document.head || document.getElementsByTagName('head')[0];
215
- var style = document.createElement('style');
216
- style.type = 'text/css';
220
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
221
+ keyAttribute = _ref.keyAttribute;
217
222
 
218
- if (insertAt === 'top') {
219
- if (head.firstChild) {
220
- head.insertBefore(style, head.firstChild);
221
- } else {
222
- head.appendChild(style);
223
- }
224
- } else {
225
- head.appendChild(style);
223
+ return useReducer(reducer, Object.keys(seed).reduce(function (result, key) {
224
+ result[key] = init(seed[key], keyAttribute);
225
+ return result;
226
+ }, {}));
227
+ }
228
+
229
+ function reducer(state, action) {
230
+ var collectionName = action.payload.collectionName;
231
+ var keyAttribute = action.payload.keyAttribute;
232
+
233
+ switch (action.type) {
234
+ case RESET:
235
+ return _objectSpread({}, state, _defineProperty({}, collectionName, init(action.payload.items, keyAttribute)));
236
+
237
+ case ADD:
238
+ return _objectSpread({}, state, _defineProperty({}, collectionName, {
239
+ order: action.payload.order,
240
+ items: _objectSpread({}, state[collectionName].items, _defineProperty({}, action.payload.attributes[keyAttribute], action.payload.attributes))
241
+ }));
242
+
243
+ case CHANGE:
244
+ return _objectSpread({}, state, _defineProperty({}, collectionName, {
245
+ order: state[collectionName].order,
246
+ items: _objectSpread({}, state[collectionName].items, _defineProperty({}, action.payload.attributes[keyAttribute], action.payload.attributes))
247
+ }));
248
+
249
+ case REMOVE:
250
+ var clonedItems = _objectSpread({}, state[collectionName].items);
251
+
252
+ delete clonedItems[action.payload.key];
253
+ return _objectSpread({}, state, _defineProperty({}, collectionName, {
254
+ order: action.payload.order,
255
+ items: clonedItems
256
+ }));
257
+
258
+ case SORT:
259
+ return _objectSpread({}, state, _defineProperty({}, collectionName, {
260
+ order: action.payload.order,
261
+ items: state[collectionName].items
262
+ }));
263
+
264
+ default:
265
+ return state;
226
266
  }
267
+ }
227
268
 
228
- if (style.styleSheet) {
229
- style.styleSheet.cssText = css;
269
+ function init(items) {
270
+ var keyAttribute = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
271
+ return {
272
+ order: items.map(function (item) {
273
+ return item[keyAttribute];
274
+ }),
275
+ items: items.reduce(function (result, item) {
276
+ result[item[keyAttribute]] = item;
277
+ return result;
278
+ }, {})
279
+ };
280
+ }
281
+
282
+ function getItems(state, collectionName) {
283
+ if (state[collectionName]) {
284
+ var items = state[collectionName].items;
285
+ return state[collectionName].order.map(function (key) {
286
+ return items[key];
287
+ });
230
288
  } else {
231
- style.appendChild(document.createTextNode(css));
289
+ return [];
290
+ }
291
+ }
292
+ function getItem(state, collectionName, key) {
293
+ if (state[collectionName]) {
294
+ return state[collectionName].items[key];
232
295
  }
233
296
  }
234
297
 
235
- var css = ".ChapterLink-module_chapterLink__v5VRl {\n line-height: 3rem;\n color: rgb(0, 55, 90);\n text-decoration: none;\n position: relative;\n display: block;\n font-family: inherit;\n font-weight: 700;\n font-size: 1rem;\n}\n\n.ChapterLink-module_chapterLink__v5VRl:hover,\n.ChapterLink-module_chapterLinkActive__jl4h5 {\n color: #e10028;\n}\n\n/* mobile view */\n@media (max-width: 780px) {\n .ChapterLink-module_chapterLink__v5VRl,\n .ChapterLink-module_chapterLink__v5VRl:hover {\n padding: 10px 0px;\n }\n}";
236
- var styles = {"chapterLink":"ChapterLink-module_chapterLink__v5VRl","chapterLinkActive":"ChapterLink-module_chapterLinkActive__jl4h5"};
237
- styleInject(css);
298
+ var Context = React.createContext();
299
+ function EntryStateProvider(_ref) {
300
+ var seed = _ref.seed,
301
+ children = _ref.children;
238
302
 
239
- var css$1 = ".navigationTooltip {\n opacity: 1 !important;\n border-bottom: 3px solid #e10028;\n box-shadow: 0 0 0.3125rem rgba(0,0,0,.2);\n width: 200px;\n}\n\n.AppHeaderTooltip-module_tooltipHeadline__pul87 {\n margin: 5px 0 0px;\n color: #e10028;\n}\n\n@media (max-width: 780px) {\n .navigationTooltip {\n display: none !important;\n }\n}\n";
240
- var styles$1 = {"tooltipHeadline":"AppHeaderTooltip-module_tooltipHeadline__pul87"};
241
- styleInject(css$1);
303
+ var _useCollections = useCollections(seed.collections, {
304
+ keyAttribute: 'permaId'
305
+ }),
306
+ _useCollections2 = _slicedToArray(_useCollections, 2),
307
+ collections = _useCollections2[0],
308
+ dispatch = _useCollections2[1];
242
309
 
243
- function AppHeaderTooltip(props) {
244
- return React.createElement(ReactTooltip, {
245
- id: props.chapterLinkId,
246
- type: "light",
247
- effect: "solid",
248
- className: "navigationTooltip",
249
- overridePosition: function overridePosition(_ref) {
250
- var left = _ref.left,
251
- top = _ref.top;
252
- top = 48;
253
- return {
254
- top: top,
255
- left: left
256
- };
257
- }
258
- }, React.createElement("div", null, React.createElement("h3", {
259
- className: styles$1.tooltipHeadline
260
- }, "Kapitel ", props.chapterIndex), React.createElement("p", null, props.summary)));
310
+ var value = useMemo(function () {
311
+ return {
312
+ entryState: {
313
+ collections: collections,
314
+ config: seed.config
315
+ },
316
+ dispatch: dispatch
317
+ };
318
+ }, [collections, dispatch, seed]);
319
+ return React.createElement(Context.Provider, {
320
+ value: value
321
+ }, children);
261
322
  }
262
-
263
- function ChapterLink(props) {
264
- return React.createElement("div", null, React.createElement("a", {
265
- className: classnames(styles.chapterLink, _defineProperty({}, styles.chapterLinkActive, props.active)),
266
- href: "#chapter-".concat(props.permaId),
267
- onClick: function onClick() {
268
- return props.handleMenuClick(props.chapterLinkId);
269
- },
270
- "data-tip": true,
271
- "data-for": props.chapterLinkId
272
- }, props.title), React.createElement(AppHeaderTooltip, Object.assign({
273
- chapterIndex: props.chapterIndex,
274
- chapterLinkId: props.chapterLinkId
275
- }, props)));
323
+ function useEntryState() {
324
+ var value = useContext(Context);
325
+ return value.entryState;
326
+ }
327
+ function useEntryStateDispatch() {
328
+ var value = useContext(Context);
329
+ return value.dispatch;
276
330
  }
277
331
 
278
- var css$2 = "/*!\n * Hamburgers\n * @description Tasty CSS-animated hamburgers\n * @author Jonathan Suh @jonsuh\n * @site https://jonsuh.com/hamburgers\n * @link https://github.com/jonsuh/hamburgers\n */\n.hamburgerIcons-module_hamburger__3XwKv {\n display: inline-block;\n cursor: pointer;\n transition-property: opacity, filter;\n transition-duration: 0.15s;\n transition-timing-function: linear;\n font: inherit;\n color: inherit;\n text-transform: none;\n background-color: transparent;\n border: 0;\n margin: 0;\n overflow: visible;\n}\n\n.hamburgerIcons-module_hamburger__3XwKv.hamburgerIcons-module_is-active__3OTNl .hamburgerIcons-module_hamburger-inner__2Colj,\n.hamburgerIcons-module_hamburger__3XwKv.hamburgerIcons-module_is-active__3OTNl .hamburgerIcons-module_hamburger-inner__2Colj::before,\n.hamburgerIcons-module_hamburger__3XwKv.hamburgerIcons-module_is-active__3OTNl .hamburgerIcons-module_hamburger-inner__2Colj::after {\n background-color: #e10028;\n}\n\n.hamburgerIcons-module_hamburger-box__38Ldp {\n width: 40px;\n height: 24px;\n display: inline-block;\n position: relative;\n}\n\n.hamburgerIcons-module_hamburger-inner__2Colj {\n display: block;\n top: 50%;\n margin-top: -2px;\n}\n\n.hamburgerIcons-module_hamburger-inner__2Colj, .hamburgerIcons-module_hamburger-inner__2Colj::before, .hamburgerIcons-module_hamburger-inner__2Colj::after {\n width: 30px;\n height: 4px;\n background-color: rgb(0, 55, 90);\n border-radius: 4px;\n position: absolute;\n transition-property: transform;\n transition-duration: 0.15s;\n transition-timing-function: ease;\n}\n\n.hamburgerIcons-module_hamburger-inner__2Colj::before, .hamburgerIcons-module_hamburger-inner__2Colj::after {\n content: \"\";\n display: block;\n}\n\n.hamburgerIcons-module_hamburger-inner__2Colj::before {\n top: -10px;\n}\n\n.hamburgerIcons-module_hamburger-inner__2Colj::after {\n bottom: -10px;\n}\n\n/*\n * Collapse\n */\n.hamburgerIcons-module_hamburger--collapse__3Dqee .hamburgerIcons-module_hamburger-inner__2Colj {\n top: auto;\n bottom: 0;\n transition-duration: 0.13s;\n transition-delay: 0.13s;\n transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n}\n\n.hamburgerIcons-module_hamburger--collapse__3Dqee .hamburgerIcons-module_hamburger-inner__2Colj::after {\n top: -20px;\n transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;\n}\n\n.hamburgerIcons-module_hamburger--collapse__3Dqee .hamburgerIcons-module_hamburger-inner__2Colj::before {\n transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);\n}\n\n.hamburgerIcons-module_hamburger--collapse__3Dqee.hamburgerIcons-module_is-active__3OTNl .hamburgerIcons-module_hamburger-inner__2Colj {\n transform: translate3d(0, -10px, 0) rotate(-45deg);\n transition-delay: 0.22s;\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.hamburgerIcons-module_hamburger--collapse__3Dqee.hamburgerIcons-module_is-active__3OTNl .hamburgerIcons-module_hamburger-inner__2Colj::after {\n top: 0;\n opacity: 0;\n transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;\n}\n\n.hamburgerIcons-module_hamburger--collapse__3Dqee.hamburgerIcons-module_is-active__3OTNl .hamburgerIcons-module_hamburger-inner__2Colj::before {\n top: 0;\n transform: rotate(-90deg);\n transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n";
279
- var hamburgerIcons = {"hamburger":"hamburgerIcons-module_hamburger__3XwKv","is-active":"hamburgerIcons-module_is-active__3OTNl","hamburger-inner":"hamburgerIcons-module_hamburger-inner__2Colj","hamburger-box":"hamburgerIcons-module_hamburger-box__38Ldp","hamburger--collapse":"hamburgerIcons-module_hamburger--collapse__3Dqee"};
280
- styleInject(css$2);
332
+ /**
333
+ * Returns a nested data structure representing the metadata of the entry.
334
+ *
335
+ * @example
336
+ *
337
+ * const metaData = useEntryMetadata();
338
+ * metaData // =>
339
+ * {
340
+ * id: 5,
341
+ * shareProviders: {email: false, facebook: true},
342
+ * share_url: 'http://test.host/test',
343
+ * credits: 'Credits: Pageflow'
344
+ * }
345
+ */
281
346
 
282
- var css$3 = "header svg {\n fill: #c2c2c2;\n cursor: pointer;\n}\n\nheader svg:hover {\n fill: rgb(0, 55, 90);;\n}\n\n.AppHeader-module_navigationBar__2EFHw {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n position: sticky;\n top: -50px;\n transition: top .15s;\n z-index: 10000;\n width: 100%;\n text-align: center;\n}\n\n.AppHeader-module_navigationBarExpanded__18nbf {\n top: 0;\n}\n\n.AppHeader-module_navigationBarContentWrapper__2Sf8y {\n position: relative;\n z-index: 2;\n background-color: #fff;\n height: 50px;\n}\n\n.AppHeader-module_menuIcon__5JKuj {\n position: absolute;\n}\n\n.AppHeader-module_wdrLogo__3XGNI {\n position: absolute;\n top: 12px;\n left: 15px;\n width: 80px;\n}\n\n.AppHeader-module_burgerMenuIcon__3isKe {\n display: none;\n top: 12px;\n left: 12px;\n outline: none;\n}\n\n.AppHeader-module_infoIcon__XMTFH {\n top: 12px;\n right: 55px;\n width: 26px;\n}\n\n.AppHeader-module_shareIcon__2lPNl {\n top: 5px;\n right: 10px;\n width: 40px;\n}\n\n.AppHeader-module_chapterList__2lMMD {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.AppHeader-module_chapterListItem__28zrc {\n position: relative;\n display: inline-block;\n padding: 0 15px;\n border-right: 1px solid #e9e9e9;\n}\n\n.AppHeader-module_chapterListItem__28zrc:last-of-type {\n border-right: none;\n}\n\n.AppHeader-module_progressBar__17IVu {\n background-color: rgba(194,194,194,0.8);\n height: 8px;\n width: 100%;\n}\n\n.AppHeader-module_progressIndicator__3SlYz {\n position: absolute;\n top: 0;\n left: 0;\n width: 0vw;\n height: 100%;\n background-color: #e10028;\n}\n\n/* mobile view */\n@media (max-width: 780px) {\n .AppHeader-module_burgerMenuIcon__3isKe {\n display: block;\n }\n\n .AppHeader-module_wdrLogo__3XGNI {\n position: inherit;\n }\n\n .AppHeader-module_navigationChapters__1dzyV {\n touch-action: none;\n display: block;\n position: fixed;\n top: 60px;\n left: 0px;\n background: rgba(255, 255, 255, 0.95);\n width: 100vw;\n height: 100vh;\n }\n\n .AppHeader-module_navigationChaptersHidden__8AEPA {\n display: none;\n }\n\n .AppHeader-module_chapterList__2lMMD {\n margin-top: 50px;\n }\n\n .AppHeader-module_chapterListItem__28zrc {\n display: list-item;\n width: 80vw;\n padding: 25px 10vw;\n border-right: none;\n }\n\n .AppHeader-module_chapterListItem__28zrc::before,\n .AppHeader-module_chapterListItem__28zrc::after {\n display: table;\n content: \" \";\n border-top: 1px solid rgb(100, 100, 100);\n width: 30%;\n margin: 0 35%;\n transition: width .15s, margin .15s;\n }\n\n .AppHeader-module_chapterListItem__28zrc:hover::before,\n .AppHeader-module_chapterListItem__28zrc:hover::after {\n border-top: 1px solid rgb(0, 55, 90);\n width: 80%;\n margin: 0 10%;\n }\n\n .AppHeader-module_chapterLink__1Q-ee,\n .AppHeader-module_chapterLink__1Q-ee:hover {\n padding: 10px 0px;\n }\n\n .AppHeader-module_progressBar__17IVu {\n height: 10px;\n }\n}\n";
283
- var styles$2 = {"navigationBar":"AppHeader-module_navigationBar__2EFHw","navigationBarExpanded":"AppHeader-module_navigationBarExpanded__18nbf","navigationBarContentWrapper":"AppHeader-module_navigationBarContentWrapper__2Sf8y","menuIcon":"AppHeader-module_menuIcon__5JKuj","wdrLogo":"AppHeader-module_wdrLogo__3XGNI","burgerMenuIcon":"AppHeader-module_burgerMenuIcon__3isKe","infoIcon":"AppHeader-module_infoIcon__XMTFH","shareIcon":"AppHeader-module_shareIcon__2lPNl","chapterList":"AppHeader-module_chapterList__2lMMD","chapterListItem":"AppHeader-module_chapterListItem__28zrc","progressBar":"AppHeader-module_progressBar__17IVu","progressIndicator":"AppHeader-module_progressIndicator__3SlYz","navigationChapters":"AppHeader-module_navigationChapters__1dzyV","navigationChaptersHidden":"AppHeader-module_navigationChaptersHidden__8AEPA","chapterLink":"AppHeader-module_chapterLink__1Q-ee"};
284
- styleInject(css$3);
347
+ function useEntryMetadata() {
348
+ var entryState = useEntryState();
349
+ return useMemo(function () {
350
+ return getItems(entryState.collections, 'entries')[0];
351
+ }, [entryState]);
352
+ }
285
353
 
286
354
  function _objectWithoutPropertiesLoose(source, excluded) {
287
355
  if (source == null) return {};
@@ -334,15 +402,15 @@ function _extends() {
334
402
 
335
403
  return _extends.apply(this, arguments);
336
404
  }
337
- var WDRlogo = (function (_ref) {
405
+ var EmailIcon = (function (_ref) {
338
406
  var _ref$styles = _ref.styles,
339
407
  props = _objectWithoutProperties(_ref, ["styles"]);
340
408
 
341
409
  return React.createElement("svg", _extends({
342
- viewBox: "-0.445 -0.445 51.921 15.721"
410
+ xmlns: "http://www.w3.org/2000/svg",
411
+ viewBox: "0 0 612 612"
343
412
  }, props), React.createElement("path", {
344
- d: "M31.189 14.83h3.731v-4.772h.285c.425 0 1.496-.023 2.079.919l2.292 3.854h4.015l-2.088-3.509c-.69-1.176-1.258-1.806-1.704-2.13v-.039c1.259-.446 2.636-1.522 2.636-3.715 0-2.716-1.946-4.116-5.394-4.116H31.19v4.689h-.038c-.708-2.829-3.095-4.689-7.453-4.689h-8.253l-1.257 5.516a42.42 42.42 0 00-.488 2.578h-.04s-.284-1.603-.547-2.74l-1.077-5.354h-4.53L6.43 6.676c-.264 1.137-.547 2.74-.547 2.74H5.84s-.222-1.442-.486-2.578L4.097 1.322H0L3.61 14.83h4.121L9.78 6.169h.041l2.048 8.662h4.056L18.93 3.614h.04v11.217h4.606c4.42 0 6.86-2.028 7.577-4.927h.036v4.927zm-7.309-3.062h-1.135V4.384h1.034c2.475 0 3.59 1.095 3.59 3.612 0 2.473-1.115 3.772-3.489 3.772m13.08-4.565h-2.04V4.182h1.918c1.278 0 1.806.506 1.806 1.52 0 .934-.548 1.501-1.684 1.501m12.003-2.317V1.404L45.48 2.66v.865l1.153-.418v2.616l2.33-.838zM47.573 0a3.469 3.469 0 013.459 3.478 3.468 3.468 0 01-3.46 3.477 3.468 3.468 0 01-3.458-3.478A3.469 3.469 0 0147.573 0m0 .51a2.96 2.96 0 00-2.951 2.967 2.96 2.96 0 002.95 2.968 2.96 2.96 0 002.953-2.967A2.96 2.96 0 0047.573.51",
345
- fill: "#00375a"
413
+ 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"
346
414
  }));
347
415
  });
348
416
 
@@ -363,15 +431,15 @@ function _extends$1() {
363
431
 
364
432
  return _extends$1.apply(this, arguments);
365
433
  }
366
- var ShareIcon = (function (_ref) {
434
+ var FacebookIcon = (function (_ref) {
367
435
  var _ref$styles = _ref.styles,
368
436
  props = _objectWithoutProperties(_ref, ["styles"]);
369
437
 
370
438
  return React.createElement("svg", _extends$1({
371
439
  xmlns: "http://www.w3.org/2000/svg",
372
- viewBox: "0 0 96 96"
440
+ viewBox: "0 0 430.113 430.114"
373
441
  }, props), React.createElement("path", {
374
- d: "M67.5 18c-5.1 0-9.3 4.2-9.3 9.3 0 .5.1 1.1.2 1.6l-23 12.9c-1.7-1.8-4.1-3-6.8-3-5.1 0-9.3 4.1-9.3 9.3 0 5.1 4.1 9.3 9.3 9.3 2.7 0 5.2-1.2 6.9-3.1l22.8 13.4c0 .4-.1.7-.1 1.1 0 5.1 4.1 9.3 9.3 9.3 5.1 0 9.3-4.1 9.3-9.3 0-5.1-4.1-9.3-9.3-9.3-2.8 0-5.4 1.3-7.1 3.3L37.7 49.4c.1-.4.1-.9.1-1.3 0-.5 0-1-.1-1.5l23.1-13c1.7 1.8 4.1 3 6.8 3 5.1 0 9.3-4.1 9.3-9.3-.1-5.1-4.3-9.3-9.4-9.3z"
442
+ 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"
375
443
  }));
376
444
  });
377
445
 
@@ -392,142 +460,200 @@ function _extends$2() {
392
460
 
393
461
  return _extends$2.apply(this, arguments);
394
462
  }
395
- var InfoIcon = (function (_ref) {
463
+ var LinkedInIcon = (function (_ref) {
396
464
  var _ref$styles = _ref.styles,
397
465
  props = _objectWithoutProperties(_ref, ["styles"]);
398
466
 
399
467
  return React.createElement("svg", _extends$2({
400
468
  xmlns: "http://www.w3.org/2000/svg",
401
- viewBox: "0 0 330 330"
469
+ viewBox: "0 0 430.117 430.117"
402
470
  }, props), React.createElement("path", {
403
- d: "M165 0C74.019 0 0 74.02 0 165.001 0 255.982 74.019 330 165 330s165-74.018 165-164.999S255.981 0 165 0zm0 300c-74.44 0-135-60.56-135-134.999S90.56 30 165 30s135 60.562 135 135.001C300 239.44 239.439 300 165 300z"
404
- }), React.createElement("path", {
405
- d: "M164.998 70c-11.026 0-19.996 8.976-19.996 20.009 0 11.023 8.97 19.991 19.996 19.991 11.026 0 19.996-8.968 19.996-19.991 0-11.033-8.97-20.009-19.996-20.009zm.002 70c-8.284 0-15 6.716-15 15v90c0 8.284 6.716 15 15 15 8.284 0 15-6.716 15-15v-90c0-8.284-6.716-15-15-15z"
471
+ 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"
406
472
  }));
407
473
  });
408
474
 
409
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
475
+ function _extends$3() {
476
+ _extends$3 = Object.assign || function (target) {
477
+ for (var i = 1; i < arguments.length; i++) {
478
+ var source = arguments[i];
410
479
 
411
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
412
- var PREFIX = 'PAGEFLOW_SCROLLED_COLLECTION';
413
- var RESET = "".concat(PREFIX, "_RESET");
414
- var ADD = "".concat(PREFIX, "_ADD");
415
- var CHANGE = "".concat(PREFIX, "_CHANGE");
416
- var REMOVE = "".concat(PREFIX, "_REMOVE");
417
- var SORT = "".concat(PREFIX, "_SORT");
418
- function useCollections() {
419
- var seed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
480
+ for (var key in source) {
481
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
482
+ target[key] = source[key];
483
+ }
484
+ }
485
+ }
420
486
 
421
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
422
- keyAttribute = _ref.keyAttribute;
487
+ return target;
488
+ };
423
489
 
424
- return useReducer(reducer, Object.keys(seed).reduce(function (result, key) {
425
- result[key] = init(seed[key], keyAttribute);
426
- return result;
427
- }, {}));
490
+ return _extends$3.apply(this, arguments);
428
491
  }
492
+ var TelegramIcon = (function (_ref) {
493
+ var _ref$styles = _ref.styles,
494
+ props = _objectWithoutProperties(_ref, ["styles"]);
429
495
 
430
- function reducer(state, action) {
431
- var collectionName = action.payload.collectionName;
432
- var keyAttribute = action.payload.keyAttribute;
496
+ return React.createElement("svg", _extends$3({
497
+ xmlns: "http://www.w3.org/2000/svg",
498
+ viewBox: "0 0 512.004 512.004"
499
+ }, props), React.createElement("path", {
500
+ 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"
501
+ }));
502
+ });
433
503
 
434
- switch (action.type) {
435
- case RESET:
436
- return _objectSpread({}, state, _defineProperty({}, collectionName, init(action.payload.items, keyAttribute)));
504
+ function _extends$4() {
505
+ _extends$4 = Object.assign || function (target) {
506
+ for (var i = 1; i < arguments.length; i++) {
507
+ var source = arguments[i];
437
508
 
438
- case ADD:
439
- return _objectSpread({}, state, _defineProperty({}, collectionName, {
440
- order: action.payload.order,
441
- items: _objectSpread({}, state[collectionName].items, _defineProperty({}, action.payload.attributes[keyAttribute], action.payload.attributes))
442
- }));
509
+ for (var key in source) {
510
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
511
+ target[key] = source[key];
512
+ }
513
+ }
514
+ }
443
515
 
444
- case CHANGE:
445
- return _objectSpread({}, state, _defineProperty({}, collectionName, {
446
- order: state[collectionName].order,
447
- items: _objectSpread({}, state[collectionName].items, _defineProperty({}, action.payload.attributes[keyAttribute], action.payload.attributes))
448
- }));
516
+ return target;
517
+ };
449
518
 
450
- case REMOVE:
451
- var clonedItems = _objectSpread({}, state[collectionName].items);
519
+ return _extends$4.apply(this, arguments);
520
+ }
521
+ var TwitterIcon = (function (_ref) {
522
+ var _ref$styles = _ref.styles,
523
+ props = _objectWithoutProperties(_ref, ["styles"]);
452
524
 
453
- delete clonedItems[action.payload.key];
454
- return _objectSpread({}, state, _defineProperty({}, collectionName, {
455
- order: action.payload.order,
456
- items: clonedItems
457
- }));
525
+ return React.createElement("svg", _extends$4({
526
+ xmlns: "http://www.w3.org/2000/svg",
527
+ viewBox: "0 0 612 612"
528
+ }, props), React.createElement("path", {
529
+ 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"
530
+ }));
531
+ });
458
532
 
459
- case SORT:
460
- return _objectSpread({}, state, _defineProperty({}, collectionName, {
461
- order: action.payload.order,
462
- items: state[collectionName].items
463
- }));
533
+ function _extends$5() {
534
+ _extends$5 = Object.assign || function (target) {
535
+ for (var i = 1; i < arguments.length; i++) {
536
+ var source = arguments[i];
464
537
 
465
- default:
466
- return state;
467
- }
468
- }
538
+ for (var key in source) {
539
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
540
+ target[key] = source[key];
541
+ }
542
+ }
543
+ }
469
544
 
470
- function init(items) {
471
- var keyAttribute = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
472
- return {
473
- order: items.map(function (item) {
474
- return item[keyAttribute];
475
- }),
476
- items: items.reduce(function (result, item) {
477
- result[item[keyAttribute]] = item;
478
- return result;
479
- }, {})
545
+ return target;
480
546
  };
547
+
548
+ return _extends$5.apply(this, arguments);
481
549
  }
550
+ var WhatsAppIcon = (function (_ref) {
551
+ var _ref$styles = _ref.styles,
552
+ props = _objectWithoutProperties(_ref, ["styles"]);
482
553
 
483
- function getItems(state, collectionName) {
484
- if (state[collectionName]) {
485
- var items = state[collectionName].items;
486
- return state[collectionName].order.map(function (key) {
487
- return items[key];
554
+ return React.createElement("svg", _extends$5({
555
+ xmlns: "http://www.w3.org/2000/svg",
556
+ viewBox: "0 0 90 90"
557
+ }, props), React.createElement("path", {
558
+ d: "M90 43.841c0 24.213-19.779 43.841-44.182 43.841a44.256 44.256 0 01-21.357-5.455L0 90l7.975-23.522a43.38 43.38 0 01-6.34-22.637C1.635 19.628 21.416 0 45.818 0 70.223 0 90 19.628 90 43.841zM45.818 6.982c-20.484 0-37.146 16.535-37.146 36.859 0 8.065 2.629 15.534 7.076 21.61L11.107 79.14l14.275-4.537A37.122 37.122 0 0045.819 80.7c20.481 0 37.146-16.533 37.146-36.857S66.301 6.982 45.818 6.982zm22.311 46.956c-.273-.447-.994-.717-2.076-1.254-1.084-.537-6.41-3.138-7.4-3.495-.993-.358-1.717-.538-2.438.537-.721 1.076-2.797 3.495-3.43 4.212-.632.719-1.263.809-2.347.271-1.082-.537-4.571-1.673-8.708-5.333-3.219-2.848-5.393-6.364-6.025-7.441-.631-1.075-.066-1.656.475-2.191.488-.482 1.084-1.255 1.625-1.882.543-.628.723-1.075 1.082-1.793.363-.717.182-1.344-.09-1.883-.27-.537-2.438-5.825-3.34-7.977-.902-2.15-1.803-1.792-2.436-1.792-.631 0-1.354-.09-2.076-.09s-1.896.269-2.889 1.344c-.992 1.076-3.789 3.676-3.789 8.963 0 5.288 3.879 10.397 4.422 11.113.541.716 7.49 11.92 18.5 16.223C58.2 65.771 58.2 64.336 60.186 64.156c1.984-.179 6.406-2.599 7.312-5.107.9-2.512.9-4.663.631-5.111z"
559
+ }));
560
+ });
561
+
562
+ /**
563
+ * Returns a list of attributes (icon, name and url) of all configured share providers of the entry.
564
+ * The url provides a %{url} placeholder where the link can be inserted.
565
+ *
566
+ * @example
567
+ *
568
+ * const shareProviders = useShareProviders();
569
+ * shareProviders // =>
570
+ * [
571
+ * {
572
+ * icon: <FacebookSVGIcon />,
573
+ * name: 'Facebook',
574
+ * url: http://www.facebook.com/sharer/sharer.php?u=%{url}
575
+ * },
576
+ * {
577
+ * icon: <TwitterSVGIcon />,
578
+ * name: 'Twitter',
579
+ * url: https://twitter.com/intent/tweet?url=%{url}
580
+ * }
581
+ * ]
582
+ */
583
+
584
+ function useShareProviders() {
585
+ var entryState = useEntryState();
586
+ var entryMetadata = useEntryMetadata();
587
+ var shareProviders = entryMetadata ? entryMetadata.shareProviders : {};
588
+ var urlTemplates = entryState.config.shareUrlTemplates;
589
+ var sharing = {
590
+ email: {
591
+ icon: EmailIcon,
592
+ name: 'Email',
593
+ url: urlTemplates.email
594
+ },
595
+ facebook: {
596
+ icon: FacebookIcon,
597
+ name: 'Facebook',
598
+ url: urlTemplates.facebook
599
+ },
600
+ linked_in: {
601
+ icon: LinkedInIcon,
602
+ name: 'LinkedIn',
603
+ url: urlTemplates.linked_in
604
+ },
605
+ telegram: {
606
+ icon: TelegramIcon,
607
+ name: 'Telegram',
608
+ url: urlTemplates.telegram
609
+ },
610
+ twitter: {
611
+ icon: TwitterIcon,
612
+ name: 'Twitter',
613
+ url: urlTemplates.twitter
614
+ },
615
+ whats_app: {
616
+ icon: WhatsAppIcon,
617
+ name: 'WhatsApp',
618
+ url: urlTemplates.whats_app
619
+ }
620
+ };
621
+ return useMemo(function () {
622
+ return activeShareProviders(shareProviders).map(function (provider) {
623
+ var config = sharing[provider];
624
+ return {
625
+ name: config.name,
626
+ icon: config.icon,
627
+ url: config.url
628
+ };
488
629
  });
489
- } else {
490
- return [];
491
- }
630
+ }, [shareProviders]);
492
631
  }
493
- function getItem(state, collectionName, key) {
494
- if (state[collectionName]) {
495
- return state[collectionName].items[key];
496
- }
632
+
633
+ function activeShareProviders(shareProvidersConfig) {
634
+ return Object.keys(shareProvidersConfig).filter(function (provider) {
635
+ return shareProvidersConfig[provider] !== false;
636
+ });
497
637
  }
638
+ /**
639
+ * Returns the share url of the entry.
640
+ *
641
+ * @example
642
+ *
643
+ * const shareUrl = useShareUrl();
644
+ * shareUrl // => "http://test.host/test"
645
+ */
498
646
 
499
- var Context = React.createContext();
500
- function EntryStateProvider(_ref) {
501
- var seed = _ref.seed,
502
- children = _ref.children;
503
647
 
504
- var _useCollections = useCollections(seed.collections, {
505
- keyAttribute: 'permaId'
506
- }),
507
- _useCollections2 = _slicedToArray(_useCollections, 2),
508
- collections = _useCollections2[0],
509
- dispatch = _useCollections2[1];
648
+ function useShareUrl() {
649
+ var entryMetadata = useEntryMetadata();
650
+ var entryState = useEntryState();
510
651
 
511
- var value = useMemo(function () {
512
- return {
513
- entryState: {
514
- collections: collections,
515
- config: seed.config
516
- },
517
- dispatch: dispatch
518
- };
519
- }, [collections, dispatch, seed]);
520
- return React.createElement(Context.Provider, {
521
- value: value
522
- }, children);
523
- }
524
- function useEntryState() {
525
- var value = useContext(Context);
526
- return value.entryState;
527
- }
528
- function useEntryStateDispatch() {
529
- var value = useContext(Context);
530
- return value.dispatch;
652
+ if (entryMetadata) {
653
+ return entryMetadata.shareUrl ? entryMetadata.shareUrl : entryState.config.prettyUrl;
654
+ } else {
655
+ return entryState.config.shareUrl;
656
+ }
531
657
  }
532
658
 
533
659
  function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
@@ -602,100 +728,468 @@ function useEntryStructure() {
602
728
  }, [entryState]);
603
729
  }
604
730
 
605
- function sectionStructure(collections, section) {
606
- return section && _objectSpread$1({
607
- permaId: section.permaId
608
- }, section.configuration, {
609
- foreground: getItems(collections, 'contentElements').filter(function (item) {
610
- return item.sectionId === section.id;
611
- }).map(function (item) {
612
- return {
613
- type: item.typeName,
614
- position: item.configuration.position,
615
- props: item.configuration
616
- };
617
- })
618
- });
731
+ function sectionStructure(collections, section) {
732
+ return section && _objectSpread$1({
733
+ permaId: section.permaId
734
+ }, section.configuration, {
735
+ foreground: getItems(collections, 'contentElements').filter(function (item) {
736
+ return item.sectionId === section.id;
737
+ }).map(function (item) {
738
+ return {
739
+ type: item.typeName,
740
+ position: item.configuration.position,
741
+ props: item.configuration
742
+ };
743
+ })
744
+ });
745
+ }
746
+
747
+ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
748
+
749
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
750
+
751
+ function expandUrls(collectionName, file, urlTemplates) {
752
+ if (!file) {
753
+ return null;
754
+ }
755
+
756
+ if (!urlTemplates[collectionName]) {
757
+ throw new Error("No file url templates found for ".concat(collectionName));
758
+ }
759
+
760
+ var variants = file.variants || Object.keys(urlTemplates[collectionName]);
761
+ var urls = variants.reduce(function (result, variant) {
762
+ var url = getFileUrl(collectionName, file, variant, urlTemplates);
763
+
764
+ if (url) {
765
+ result[variant] = url;
766
+ }
767
+
768
+ return result;
769
+ }, {});
770
+ return _objectSpread$2({
771
+ urls: urls
772
+ }, file);
773
+ }
774
+
775
+ function getFileUrl(collectionName, file, quality, urlTemplates) {
776
+ var templates = urlTemplates[collectionName];
777
+ var template = templates[quality];
778
+
779
+ if (template) {
780
+ return template.replace(':id_partition', idPartition(file.id)).replace(':basename', file.basename);
781
+ }
782
+ }
783
+
784
+ function idPartition(id) {
785
+ return partition(pad(id, 9));
786
+ }
787
+
788
+ function partition(string, separator) {
789
+ return string.replace(/./g, function (c, i, a) {
790
+ return i && (a.length - i) % 3 === 0 ? '/' + c : c;
791
+ });
792
+ }
793
+
794
+ function pad(string, size) {
795
+ return (Array(size).fill(0).join('') + string).slice(-size);
796
+ }
797
+
798
+ /**
799
+ * Look up a file by its collection and perma id.
800
+ *
801
+ * @param {Object} options
802
+ * @param {String} options.collectionName - Collection name of file type to look for (in camel case).
803
+ * @param {String} options.permaId - Perma id of file look up
804
+ *
805
+ * @example
806
+ * const imageFile = useFile({collectionName: 'imageFiles', permaId: 5});
807
+ * imageFile // =>
808
+ * {
809
+ * id: 102,
810
+ * permaId: 5,
811
+ * width: 1000,
812
+ * height: 500,
813
+ * urls: {
814
+ * large: 'https://...'
815
+ * },
816
+ * }
817
+ */
818
+
819
+ function useFile(_ref) {
820
+ var collectionName = _ref.collectionName,
821
+ permaId = _ref.permaId;
822
+ var entryState = useEntryState();
823
+ return expandUrls(collectionName, getItem(entryState.collections, collectionName, permaId), entryState.config.fileUrlTemplates);
824
+ }
825
+
826
+ /**
827
+ * Returns a string (comma-separated list) of copyrights of
828
+ * all images used in the entry.
829
+ * If none of the images has a rights attribute configured,
830
+ * it falls back to the default file rights of the entry's account,
831
+ * otherwise returns an empty string
832
+ *
833
+ * @example
834
+ *
835
+ * const fileRights = useFileRights();
836
+ * fileRights // => "author of image 1, author of image 2"
837
+ */
838
+
839
+ function useFileRights() {
840
+ var entryState = useEntryState();
841
+ var defaultFileRights = entryState.config.defaultFileRights;
842
+ var imageFiles = getItems(entryState.collections, 'imageFiles');
843
+ var imageFileRights = imageFiles.map(function (imageConfig) {
844
+ return imageConfig.rights ? imageConfig.rights.trim() : undefined;
845
+ }).filter(Boolean).join(', ');
846
+ var fileRights = !!imageFileRights ? imageFileRights : defaultFileRights.trim();
847
+ var fileRightsString = !!fileRights ? 'Bildrechte: ' + fileRights : '';
848
+ return fileRightsString;
849
+ }
850
+ /**
851
+ * Returns a nested data structure representing the legal info of the entry.
852
+ * Each legal info is separated into label and url to use in links.
853
+ * Both label and url can be blank, depending on the configuration.
854
+ *
855
+ * @example
856
+ *
857
+ * const legalInfo = useLegalInfo();
858
+ * legalInfo // =>
859
+ * {
860
+ * imprint: {
861
+ * label: '',
862
+ * url: ''
863
+ * },
864
+ * copyright: {
865
+ * label: '',
866
+ * url: ''
867
+ * },
868
+ * privacy: {
869
+ * label: '',
870
+ * url: ''
871
+ * }
872
+ * }
873
+ */
874
+
875
+ function useLegalInfo() {
876
+ var entryState = useEntryState();
877
+ return entryState.config.legalInfo;
878
+ }
879
+ /**
880
+ * Returns the credits string (rich text) of the entry.
881
+ *
882
+ * @example
883
+ *
884
+ * const credits = useCredits();
885
+ * credits // => "Credits: <a href="http://pageflow.com">pageflow.com</a>"
886
+ */
887
+
888
+ function useCredits() {
889
+ var entryMetadata = useEntryMetadata();
890
+ var credits = '';
891
+
892
+ if (entryMetadata) {
893
+ credits = entryMetadata.credits;
894
+ }
895
+
896
+ return credits;
897
+ }
898
+
899
+ function styleInject(css, ref) {
900
+ if ( ref === void 0 ) ref = {};
901
+ var insertAt = ref.insertAt;
902
+
903
+ if (!css || typeof document === 'undefined') { return; }
904
+
905
+ var head = document.head || document.getElementsByTagName('head')[0];
906
+ var style = document.createElement('style');
907
+ style.type = 'text/css';
908
+
909
+ if (insertAt === 'top') {
910
+ if (head.firstChild) {
911
+ head.insertBefore(style, head.firstChild);
912
+ } else {
913
+ head.appendChild(style);
914
+ }
915
+ } else {
916
+ head.appendChild(style);
917
+ }
918
+
919
+ if (style.styleSheet) {
920
+ style.styleSheet.cssText = css;
921
+ } else {
922
+ style.appendChild(document.createTextNode(css));
923
+ }
924
+ }
925
+
926
+ var css = "header svg {\n fill: #c2c2c2;\n cursor: pointer;\n}\n\nheader svg:hover {\n fill: rgb(0, 55, 90);;\n}\n\n.AppHeader-module_navigationBar__2EFHw {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n position: sticky;\n top: -50px;\n transition: top .15s;\n z-index: 10000;\n width: 100%;\n text-align: center;\n}\n\n.AppHeader-module_navigationBarExpanded__18nbf {\n top: 0;\n}\n\n.AppHeader-module_navigationBarContentWrapper__2Sf8y {\n position: relative;\n z-index: 2;\n background-color: #fff;\n height: 50px;\n}\n\n.AppHeader-module_menuIcon__5JKuj {\n position: absolute;\n}\n\n.AppHeader-module_wdrLogo__3XGNI {\n top: 12px;\n left: 15px;\n width: 80px;\n}\n\n.AppHeader-module_chapterList__2lMMD {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.AppHeader-module_chapterListItem__28zrc {\n position: relative;\n display: inline-block;\n padding: 0 15px;\n border-right: 1px solid #e9e9e9;\n}\n\n.AppHeader-module_chapterListItem__28zrc:last-of-type {\n border-right: none;\n}\n\n.AppHeader-module_navigationTooltip__1EvCy {\n opacity: 1 !important;\n box-shadow: 0 0 0.3125rem rgba(0,0,0,.2);\n}\n\n.AppHeader-module_progressBar__17IVu {\n background-color: rgba(194,194,194,0.8);\n height: 8px;\n width: 100%;\n}\n\n.AppHeader-module_progressIndicator__3SlYz {\n position: absolute;\n top: 0;\n left: 0;\n width: 0vw;\n height: 100%;\n background-color: #e10028;\n}\n\n/* mobile view */\n@media (max-width: 780px) {\n .AppHeader-module_wdrLogo__3XGNI {\n position: inherit;\n }\n\n .AppHeader-module_navigationChapters__1dzyV {\n touch-action: none;\n display: block;\n position: fixed;\n top: 60px;\n left: 0px;\n background: rgba(255, 255, 255, 0.95);\n width: 100vw;\n height: 100vh;\n }\n\n .AppHeader-module_navigationChaptersHidden__8AEPA {\n display: none;\n }\n\n .AppHeader-module_chapterList__2lMMD {\n margin-top: 50px;\n }\n\n .AppHeader-module_chapterListItem__28zrc {\n display: list-item;\n width: 80vw;\n padding: 25px 10vw;\n border-right: none;\n }\n\n .AppHeader-module_chapterListItem__28zrc::before,\n .AppHeader-module_chapterListItem__28zrc::after {\n display: table;\n content: \" \";\n border-top: 1px solid rgb(100, 100, 100);\n width: 30%;\n margin: 0 35%;\n transition: width .15s, margin .15s;\n }\n\n .AppHeader-module_chapterListItem__28zrc:hover::before,\n .AppHeader-module_chapterListItem__28zrc:hover::after {\n border-top: 1px solid rgb(0, 55, 90);\n width: 80%;\n margin: 0 10%;\n }\n\n .AppHeader-module_chapterLink__1Q-ee,\n .AppHeader-module_chapterLink__1Q-ee:hover {\n padding: 10px 0px;\n }\n\n .AppHeader-module_progressBar__17IVu {\n height: 10px;\n }\n}\n";
927
+ var styles = {"navigationBar":"AppHeader-module_navigationBar__2EFHw","navigationBarExpanded":"AppHeader-module_navigationBarExpanded__18nbf","navigationBarContentWrapper":"AppHeader-module_navigationBarContentWrapper__2Sf8y","menuIcon":"AppHeader-module_menuIcon__5JKuj","wdrLogo":"AppHeader-module_wdrLogo__3XGNI","chapterList":"AppHeader-module_chapterList__2lMMD","chapterListItem":"AppHeader-module_chapterListItem__28zrc","navigationTooltip":"AppHeader-module_navigationTooltip__1EvCy","progressBar":"AppHeader-module_progressBar__17IVu","progressIndicator":"AppHeader-module_progressIndicator__3SlYz","navigationChapters":"AppHeader-module_navigationChapters__1dzyV","navigationChaptersHidden":"AppHeader-module_navigationChaptersHidden__8AEPA","chapterLink":"AppHeader-module_chapterLink__1Q-ee"};
928
+ styleInject(css);
929
+
930
+ var css$1 = ".HamburgerIcon-module_burgerMenuIconContainer__26RY4 {\n display: none;\n}\n\n.HamburgerIcon-module_burgerMenuIcon__24t-5 {\n top: 12px;\n left: 12px;\n outline: none;\n}\n\n/* mobile view */\n@media (max-width: 780px) {\n .HamburgerIcon-module_burgerMenuIconContainer__26RY4 {\n display: block;\n }\n}\n";
931
+ var styles$1 = {"burgerMenuIconContainer":"HamburgerIcon-module_burgerMenuIconContainer__26RY4","burgerMenuIcon":"HamburgerIcon-module_burgerMenuIcon__24t-5"};
932
+ styleInject(css$1);
933
+
934
+ var css$2 = "/*!\n * Hamburgers\n * @description Tasty CSS-animated hamburgers\n * @author Jonathan Suh @jonsuh\n * @site https://jonsuh.com/hamburgers\n * @link https://github.com/jonsuh/hamburgers\n */\n.HamburgerIcons-module_hamburger__NnCze {\n display: inline-block;\n cursor: pointer;\n transition-property: opacity, filter;\n transition-duration: 0.15s;\n transition-timing-function: linear;\n font: inherit;\n color: inherit;\n text-transform: none;\n background-color: transparent;\n border: 0;\n margin: 0;\n overflow: visible;\n}\n\n.HamburgerIcons-module_hamburger__NnCze.HamburgerIcons-module_is-active__10qoY .HamburgerIcons-module_hamburger-inner__187lg,\n.HamburgerIcons-module_hamburger__NnCze.HamburgerIcons-module_is-active__10qoY .HamburgerIcons-module_hamburger-inner__187lg::before,\n.HamburgerIcons-module_hamburger__NnCze.HamburgerIcons-module_is-active__10qoY .HamburgerIcons-module_hamburger-inner__187lg::after {\n background-color: #e10028;\n}\n\n.HamburgerIcons-module_hamburger-box__34rgF {\n width: 40px;\n height: 24px;\n display: inline-block;\n position: relative;\n}\n\n.HamburgerIcons-module_hamburger-inner__187lg {\n display: block;\n top: 50%;\n margin-top: -2px;\n}\n\n.HamburgerIcons-module_hamburger-inner__187lg, .HamburgerIcons-module_hamburger-inner__187lg::before, .HamburgerIcons-module_hamburger-inner__187lg::after {\n width: 30px;\n height: 4px;\n background-color: rgb(0, 55, 90);\n border-radius: 4px;\n position: absolute;\n transition-property: transform;\n transition-duration: 0.15s;\n transition-timing-function: ease;\n}\n\n.HamburgerIcons-module_hamburger-inner__187lg::before, .HamburgerIcons-module_hamburger-inner__187lg::after {\n content: \"\";\n display: block;\n}\n\n.HamburgerIcons-module_hamburger-inner__187lg::before {\n top: -10px;\n}\n\n.HamburgerIcons-module_hamburger-inner__187lg::after {\n bottom: -10px;\n}\n\n/*\n * Collapse\n */\n.HamburgerIcons-module_hamburger--collapse__gRQFa .HamburgerIcons-module_hamburger-inner__187lg {\n top: auto;\n bottom: 0;\n transition-duration: 0.13s;\n transition-delay: 0.13s;\n transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n}\n\n.HamburgerIcons-module_hamburger--collapse__gRQFa .HamburgerIcons-module_hamburger-inner__187lg::after {\n top: -20px;\n transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;\n}\n\n.HamburgerIcons-module_hamburger--collapse__gRQFa .HamburgerIcons-module_hamburger-inner__187lg::before {\n transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);\n}\n\n.HamburgerIcons-module_hamburger--collapse__gRQFa.HamburgerIcons-module_is-active__10qoY .HamburgerIcons-module_hamburger-inner__187lg {\n transform: translate3d(0, -10px, 0) rotate(-45deg);\n transition-delay: 0.22s;\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.HamburgerIcons-module_hamburger--collapse__gRQFa.HamburgerIcons-module_is-active__10qoY .HamburgerIcons-module_hamburger-inner__187lg::after {\n top: 0;\n opacity: 0;\n transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;\n}\n\n.HamburgerIcons-module_hamburger--collapse__gRQFa.HamburgerIcons-module_is-active__10qoY .HamburgerIcons-module_hamburger-inner__187lg::before {\n top: 0;\n transform: rotate(-90deg);\n transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n";
935
+ var hamburgerIconStyles = {"hamburger":"HamburgerIcons-module_hamburger__NnCze","is-active":"HamburgerIcons-module_is-active__10qoY","hamburger-inner":"HamburgerIcons-module_hamburger-inner__187lg","hamburger-box":"HamburgerIcons-module_hamburger-box__34rgF","hamburger--collapse":"HamburgerIcons-module_hamburger--collapse__gRQFa"};
936
+ styleInject(css$2);
937
+
938
+ function HamburgerIcon(props) {
939
+ return React.createElement("div", {
940
+ className: styles$1.burgerMenuIconContainer
941
+ }, React.createElement("button", {
942
+ className: classnames(styles.menuIcon, styles$1.burgerMenuIcon, hamburgerIconStyles.hamburger, hamburgerIconStyles['hamburger--collapse'], _defineProperty({}, hamburgerIconStyles['is-active'], !props.mobileNavHidden)),
943
+ type: "button",
944
+ onClick: props.onClick
945
+ }, React.createElement("span", {
946
+ className: hamburgerIconStyles['hamburger-box']
947
+ }, React.createElement("span", {
948
+ className: hamburgerIconStyles['hamburger-inner']
949
+ }))));
950
+ }
951
+
952
+ var css$3 = ".ChapterLink-module_chapterLink__v5VRl {\n line-height: 3rem;\n color: rgb(0, 55, 90);\n text-decoration: none;\n position: relative;\n display: block;\n font-family: inherit;\n font-weight: 700;\n font-size: 1rem;\n height: 48px;\n}\n\n.ChapterLink-module_chapterLink__v5VRl:hover,\n.ChapterLink-module_chapterLinkActive__jl4h5 {\n color: #e10028;\n}\n\n/* mobile view */\n@media (max-width: 780px) {\n .ChapterLink-module_chapterLink__v5VRl,\n .ChapterLink-module_chapterLink__v5VRl:hover {\n padding: 10px 0px;\n }\n}";
953
+ var styles$2 = {"chapterLink":"ChapterLink-module_chapterLink__v5VRl","chapterLinkActive":"ChapterLink-module_chapterLinkActive__jl4h5"};
954
+ styleInject(css$3);
955
+
956
+ var css$4 = ".ChapterLinkTooltip-module_chapterLinkTooltip__cCfsw {\n border-bottom: 3px solid #e10028;\n width: 200px;\n}\n\n.ChapterLinkTooltip-module_tooltipHeadline__reew_ {\n margin: 5px 0 0px;\n color: #e10028;\n}\n\n@media (max-width: 780px) {\n .ChapterLinkTooltip-module_chapterLinkTooltip__cCfsw {\n display: none !important;\n }\n}\n";
957
+ var styles$3 = {"chapterLinkTooltip":"ChapterLinkTooltip-module_chapterLinkTooltip__cCfsw","tooltipHeadline":"ChapterLinkTooltip-module_tooltipHeadline__reew_"};
958
+ styleInject(css$4);
959
+
960
+ function ChapterLinkTooltip(props) {
961
+ return React.createElement(ReactTooltip, {
962
+ id: props.chapterLinkId,
963
+ type: "light",
964
+ place: "bottom",
965
+ effect: "solid",
966
+ className: classnames(styles.navigationTooltip, styles$3.chapterLinkTooltip)
967
+ }, React.createElement("div", null, React.createElement("h3", {
968
+ className: styles$3.tooltipHeadline
969
+ }, "Kapitel ", props.chapterIndex), React.createElement("p", {
970
+ dangerouslySetInnerHTML: {
971
+ __html: props.summary
972
+ }
973
+ })));
974
+ }
975
+
976
+ function ChapterLink(props) {
977
+ return React.createElement("div", null, React.createElement("a", {
978
+ className: classnames(styles$2.chapterLink, _defineProperty({}, styles$2.chapterLinkActive, props.active)),
979
+ href: "#chapter-".concat(props.permaId),
980
+ onClick: function onClick() {
981
+ return props.handleMenuClick(props.chapterLinkId);
982
+ },
983
+ "data-tip": true,
984
+ "data-for": props.chapterLinkId
985
+ }, props.title), React.createElement(ChapterLinkTooltip, Object.assign({
986
+ chapterIndex: props.chapterIndex,
987
+ chapterLinkId: props.chapterLinkId
988
+ }, props)));
989
+ }
990
+
991
+ var css$5 = ".LegalInfoMenu-module_infoIcon__1kTnt {\n top: 12px;\n right: 55px;\n width: 26px;\n}\n\n";
992
+ var styles$4 = {"infoIcon":"LegalInfoMenu-module_infoIcon__1kTnt"};
993
+ styleInject(css$5);
994
+
995
+ function _extends$6() {
996
+ _extends$6 = Object.assign || function (target) {
997
+ for (var i = 1; i < arguments.length; i++) {
998
+ var source = arguments[i];
999
+
1000
+ for (var key in source) {
1001
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1002
+ target[key] = source[key];
1003
+ }
1004
+ }
1005
+ }
1006
+
1007
+ return target;
1008
+ };
1009
+
1010
+ return _extends$6.apply(this, arguments);
619
1011
  }
1012
+ var InfoIcon = (function (_ref) {
1013
+ var _ref$styles = _ref.styles,
1014
+ props = _objectWithoutProperties(_ref, ["styles"]);
620
1015
 
621
- function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1016
+ return React.createElement("svg", _extends$6({
1017
+ xmlns: "http://www.w3.org/2000/svg",
1018
+ viewBox: "0 0 330 330"
1019
+ }, props), React.createElement("path", {
1020
+ d: "M165 0C74.019 0 0 74.02 0 165.001 0 255.982 74.019 330 165 330s165-74.018 165-164.999S255.981 0 165 0zm0 300c-74.44 0-135-60.56-135-134.999S90.56 30 165 30s135 60.562 135 135.001C300 239.44 239.439 300 165 300z"
1021
+ }), React.createElement("path", {
1022
+ d: "M164.998 70c-11.026 0-19.996 8.976-19.996 20.009 0 11.023 8.97 19.991 19.996 19.991 11.026 0 19.996-8.968 19.996-19.991 0-11.033-8.97-20.009-19.996-20.009zm.002 70c-8.284 0-15 6.716-15 15v90c0 8.284 6.716 15 15 15 8.284 0 15-6.716 15-15v-90c0-8.284-6.716-15-15-15z"
1023
+ }));
1024
+ });
622
1025
 
623
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1026
+ var css$6 = ".LegalInfoTooltip-module_legalInfoTooltip__ChzOS {\n width: 200px;\n max-width: 200px;\n text-align: left;\n margin-top: 12px !important;\n margin-bottom: 12px !important;\n}\n\n.LegalInfoTooltip-module_legalInfoTooltip__ChzOS:after {\n left: 90% !important;\n}\n\n.LegalInfoTooltip-module_legalInfoTooltip__ChzOS p {\n margin: 0 0 0.5em;\n}\n\n.LegalInfoTooltip-module_legalInfoTooltip__ChzOS a {\n color: #e10028;\n}\n";
1027
+ var styles$5 = {"legalInfoTooltip":"LegalInfoTooltip-module_legalInfoTooltip__ChzOS"};
1028
+ styleInject(css$6);
624
1029
 
625
- function expandUrls(collectionName, file, urlTemplates) {
626
- if (!file) {
627
- return null;
628
- }
1030
+ function LegalInfoLink(props) {
1031
+ return React.createElement("div", null, props.label && props.url && React.createElement("a", {
1032
+ target: "_blank",
1033
+ href: props.url,
1034
+ dangerouslySetInnerHTML: {
1035
+ __html: props.label
1036
+ }
1037
+ }));
1038
+ }
629
1039
 
630
- if (!urlTemplates[collectionName]) {
631
- throw new Error("No file url templates found for ".concat(collectionName));
632
- }
1040
+ function LegalInfoTooltip() {
1041
+ var fileRights = useFileRights();
1042
+ var legalInfo = useLegalInfo();
1043
+ var credits = useCredits();
1044
+ return React.createElement(ReactTooltip, {
1045
+ id: 'legalInfoTooltip',
1046
+ type: 'light',
1047
+ place: 'bottom',
1048
+ effect: 'solid',
1049
+ event: 'click',
1050
+ globalEventOff: 'click',
1051
+ clickable: true,
1052
+ offset: {
1053
+ bottom: 5,
1054
+ right: -97
1055
+ },
1056
+ className: classnames(styles.navigationTooltip, styles$5.legalInfoTooltip)
1057
+ }, React.createElement("div", {
1058
+ onMouseLeave: function onMouseLeave() {
1059
+ ReactTooltip.hide();
1060
+ }
1061
+ }, credits && React.createElement("p", {
1062
+ dangerouslySetInnerHTML: {
1063
+ __html: credits
1064
+ }
1065
+ }), fileRights && React.createElement("p", null, fileRights), React.createElement(LegalInfoLink, legalInfo.imprint), React.createElement(LegalInfoLink, legalInfo.copyright), React.createElement(LegalInfoLink, legalInfo.privacy)));
1066
+ }
633
1067
 
634
- var variants = file.variants || Object.keys(urlTemplates[collectionName]);
635
- var urls = variants.reduce(function (result, variant) {
636
- var url = getFileUrl(collectionName, file, variant, urlTemplates);
1068
+ function LegalInfoMenu(props) {
1069
+ return React.createElement("div", null, React.createElement("a", {
1070
+ className: classnames(styles.menuIcon, styles$4.infoIcon),
1071
+ "data-tip": true,
1072
+ "data-for": 'legalInfoTooltip',
1073
+ onMouseEnter: function onMouseEnter() {
1074
+ ReactTooltip.hide();
1075
+ }
1076
+ }, React.createElement(InfoIcon, null)), React.createElement(LegalInfoTooltip, null));
1077
+ }
637
1078
 
638
- if (url) {
639
- result[variant] = url;
1079
+ var css$7 = ".SharingMenu-module_shareIcon__1AlDL {\n top: 5px;\n right: 10px;\n width: 40px;\n}";
1080
+ var styles$6 = {"shareIcon":"SharingMenu-module_shareIcon__1AlDL"};
1081
+ styleInject(css$7);
1082
+
1083
+ function _extends$7() {
1084
+ _extends$7 = Object.assign || function (target) {
1085
+ for (var i = 1; i < arguments.length; i++) {
1086
+ var source = arguments[i];
1087
+
1088
+ for (var key in source) {
1089
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1090
+ target[key] = source[key];
1091
+ }
1092
+ }
640
1093
  }
641
1094
 
642
- return result;
643
- }, {});
644
- return _objectSpread$2({
645
- urls: urls
646
- }, file);
1095
+ return target;
1096
+ };
1097
+
1098
+ return _extends$7.apply(this, arguments);
647
1099
  }
1100
+ var ShareIcon = (function (_ref) {
1101
+ var _ref$styles = _ref.styles,
1102
+ props = _objectWithoutProperties(_ref, ["styles"]);
648
1103
 
649
- function getFileUrl(collectionName, file, quality, urlTemplates) {
650
- var templates = urlTemplates[collectionName];
651
- var template = templates[quality];
1104
+ return React.createElement("svg", _extends$7({
1105
+ xmlns: "http://www.w3.org/2000/svg",
1106
+ viewBox: "0 0 96 96"
1107
+ }, props), React.createElement("path", {
1108
+ d: "M67.5 18c-5.1 0-9.3 4.2-9.3 9.3 0 .5.1 1.1.2 1.6l-23 12.9c-1.7-1.8-4.1-3-6.8-3-5.1 0-9.3 4.1-9.3 9.3 0 5.1 4.1 9.3 9.3 9.3 2.7 0 5.2-1.2 6.9-3.1l22.8 13.4c0 .4-.1.7-.1 1.1 0 5.1 4.1 9.3 9.3 9.3 5.1 0 9.3-4.1 9.3-9.3 0-5.1-4.1-9.3-9.3-9.3-2.8 0-5.4 1.3-7.1 3.3L37.7 49.4c.1-.4.1-.9.1-1.3 0-.5 0-1-.1-1.5l23.1-13c1.7 1.8 4.1 3 6.8 3 5.1 0 9.3-4.1 9.3-9.3-.1-5.1-4.3-9.3-9.4-9.3z"
1109
+ }));
1110
+ });
652
1111
 
653
- if (template) {
654
- return template.replace(':id_partition', idPartition(file.id)).replace(':basename', file.basename);
1112
+ var css$8 = "header .share svg {\n fill: rgb(0, 55, 90);\n}\n\nheader .share:hover svg {\n fill: #e10028;\n}\n\n.SharingTooltip-module_sharingTooltip__1cljv {\n width: 160px;\n padding: 0 !important;\n}\n\n.SharingTooltip-module_sharingTooltip__1cljv:after {\n left: 90% !important;\n}\n\n.SharingTooltip-module_shareLinkContainer__2MnKN {\n float: left;\n width: 80px;\n height: 60px;\n cursor: pointer;\n color: transparent;\n text-align: center;\n}\n\n.SharingTooltip-module_shareLink__2ySSX {\n position: relative;\n color: rgb(0, 55, 90);\n text-decoration: none;\n}\n\n.SharingTooltip-module_shareLink__2ySSX:hover {\n color: #e10028;\n}\n\n.SharingTooltip-module_shareIcon__3igrs {\n width: 80px;\n height: 25px;\n margin-top: 5px;\n margin-bottom: 3px;\n}\n";
1113
+ var styles$7 = {"sharingTooltip":"SharingTooltip-module_sharingTooltip__1cljv","shareLinkContainer":"SharingTooltip-module_shareLinkContainer__2MnKN","shareLink":"SharingTooltip-module_shareLink__2ySSX","shareIcon":"SharingTooltip-module_shareIcon__3igrs"};
1114
+ styleInject(css$8);
1115
+
1116
+ function SharingTooltip() {
1117
+ var shareUrl = useShareUrl();
1118
+ var shareProviders = useShareProviders();
1119
+
1120
+ function renderShareLinks(shareProviders) {
1121
+ return shareProviders.map(function (shareProvider) {
1122
+ var Icon = shareProvider.icon;
1123
+ return React.createElement("div", {
1124
+ key: shareProvider.name,
1125
+ className: styles$7.shareLinkContainer
1126
+ }, React.createElement("a", {
1127
+ className: classnames('share', styles$7.shareLink),
1128
+ href: shareProvider.url.replace('%{url}', shareUrl),
1129
+ target: '_blank'
1130
+ }, React.createElement(Icon, {
1131
+ className: styles$7.shareIcon
1132
+ }), shareProvider.name));
1133
+ });
655
1134
  }
1135
+ return React.createElement(ReactTooltip, {
1136
+ id: 'sharingTooltip',
1137
+ type: 'light',
1138
+ place: 'bottom',
1139
+ effect: 'solid',
1140
+ event: 'click',
1141
+ globalEventOff: 'click',
1142
+ clickable: true,
1143
+ offset: {
1144
+ right: -64
1145
+ },
1146
+ className: classnames(styles.navigationTooltip, styles$7.sharingTooltip)
1147
+ }, React.createElement("div", {
1148
+ onMouseLeave: function onMouseLeave() {
1149
+ ReactTooltip.hide();
1150
+ }
1151
+ }, renderShareLinks(shareProviders)));
656
1152
  }
657
1153
 
658
- function idPartition(id) {
659
- return partition(pad(id, 9));
1154
+ function SharingMenu() {
1155
+ return React.createElement("div", null, React.createElement("a", {
1156
+ className: classnames(styles.menuIcon, styles$6.shareIcon),
1157
+ "data-tip": true,
1158
+ "data-for": 'sharingTooltip',
1159
+ onMouseEnter: function onMouseEnter() {
1160
+ ReactTooltip.hide();
1161
+ }
1162
+ }, React.createElement(ShareIcon, null)), React.createElement(SharingTooltip, null));
660
1163
  }
661
1164
 
662
- function partition(string, separator) {
663
- return string.replace(/./g, function (c, i, a) {
664
- return i && (a.length - i) % 3 === 0 ? '/' + c : c;
665
- });
666
- }
1165
+ function _extends$8() {
1166
+ _extends$8 = Object.assign || function (target) {
1167
+ for (var i = 1; i < arguments.length; i++) {
1168
+ var source = arguments[i];
667
1169
 
668
- function pad(string, size) {
669
- return (Array(size).fill(0).join('') + string).slice(-size);
670
- }
1170
+ for (var key in source) {
1171
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1172
+ target[key] = source[key];
1173
+ }
1174
+ }
1175
+ }
671
1176
 
672
- /**
673
- * Look up a file by its collection and perma id.
674
- *
675
- * @param {Object} options
676
- * @param {String} options.collectionName - Collection name of file type to look for (in camel case).
677
- * @param {String} options.permaId - Perma id of file look up
678
- *
679
- * @example
680
- * const imageFile = useFile({collectionName: 'imageFiles', permaId: 5});
681
- * imageFile // =>
682
- * {
683
- * id: 102,
684
- * permaId: 5,
685
- * width: 1000,
686
- * height: 500,
687
- * urls: {
688
- * large: 'https://...'
689
- * },
690
- * }
691
- */
1177
+ return target;
1178
+ };
692
1179
 
693
- function useFile(_ref) {
694
- var collectionName = _ref.collectionName,
695
- permaId = _ref.permaId;
696
- var entryState = useEntryState();
697
- return expandUrls(collectionName, getItem(entryState.collections, collectionName, permaId), entryState.config.fileUrlTemplates);
1180
+ return _extends$8.apply(this, arguments);
698
1181
  }
1182
+ var WDRlogo = (function (_ref) {
1183
+ var _ref$styles = _ref.styles,
1184
+ props = _objectWithoutProperties(_ref, ["styles"]);
1185
+
1186
+ return React.createElement("svg", _extends$8({
1187
+ viewBox: "-0.445 -0.445 51.921 15.721"
1188
+ }, props), React.createElement("path", {
1189
+ d: "M31.189 14.83h3.731v-4.772h.285c.425 0 1.496-.023 2.079.919l2.292 3.854h4.015l-2.088-3.509c-.69-1.176-1.258-1.806-1.704-2.13v-.039c1.259-.446 2.636-1.522 2.636-3.715 0-2.716-1.946-4.116-5.394-4.116H31.19v4.689h-.038c-.708-2.829-3.095-4.689-7.453-4.689h-8.253l-1.257 5.516a42.42 42.42 0 00-.488 2.578h-.04s-.284-1.603-.547-2.74l-1.077-5.354h-4.53L6.43 6.676c-.264 1.137-.547 2.74-.547 2.74H5.84s-.222-1.442-.486-2.578L4.097 1.322H0L3.61 14.83h4.121L9.78 6.169h.041l2.048 8.662h4.056L18.93 3.614h.04v11.217h4.606c4.42 0 6.86-2.028 7.577-4.927h.036v4.927zm-7.309-3.062h-1.135V4.384h1.034c2.475 0 3.59 1.095 3.59 3.612 0 2.473-1.115 3.772-3.489 3.772m13.08-4.565h-2.04V4.182h1.918c1.278 0 1.806.506 1.806 1.52 0 .934-.548 1.501-1.684 1.501m12.003-2.317V1.404L45.48 2.66v.865l1.153-.418v2.616l2.33-.838zM47.573 0a3.469 3.469 0 013.459 3.478 3.468 3.468 0 01-3.46 3.477 3.468 3.468 0 01-3.458-3.478A3.469 3.469 0 0147.573 0m0 .51a2.96 2.96 0 00-2.951 2.967 2.96 2.96 0 002.95 2.968 2.96 2.96 0 002.953-2.967A2.96 2.96 0 0047.573.51",
1190
+ fill: "#00375a"
1191
+ }));
1192
+ });
699
1193
 
700
1194
  function AppHeader(props) {
701
1195
  var _useState = useState(true),
@@ -757,13 +1251,13 @@ function AppHeader(props) {
757
1251
  setMobileNavHidden(true);
758
1252
  }
759
1253
 
760
- function renderMenuLinks(chapters) {
1254
+ function renderChapterLinks(chapters) {
761
1255
  return chapters.map(function (chapter, index) {
762
1256
  var chapterIndex = index + 1;
763
1257
  var chapterLinkId = "chapterLink".concat(chapterIndex);
764
1258
  return React.createElement("li", {
765
1259
  key: index,
766
- className: styles$2.chapterListItem
1260
+ className: styles.chapterListItem
767
1261
  }, React.createElement(ChapterLink, Object.assign({}, chapter, {
768
1262
  chapterIndex: chapterIndex,
769
1263
  chapterLinkId: chapterLinkId,
@@ -773,34 +1267,25 @@ function AppHeader(props) {
773
1267
  });
774
1268
  }
775
1269
  return React.createElement("header", {
776
- className: classnames(styles$2.navigationBar, _defineProperty({}, styles$2.navigationBarExpanded, navExpanded))
1270
+ className: classnames(styles.navigationBar, _defineProperty({}, styles.navigationBarExpanded, navExpanded))
777
1271
  }, React.createElement("div", {
778
- className: styles$2.navigationBarContentWrapper
779
- }, React.createElement("button", {
780
- className: classnames(styles$2.menuIcon, styles$2.burgerMenuIcon, hamburgerIcons.hamburger, hamburgerIcons['hamburger--collapse'], _defineProperty({}, hamburgerIcons['is-active'], !mobileNavHidden)),
781
- type: "button",
782
- onClick: handleBurgerMenuClick
783
- }, React.createElement("span", {
784
- className: hamburgerIcons['hamburger-box']
785
- }, React.createElement("span", {
786
- className: hamburgerIcons['hamburger-inner']
787
- }))), React.createElement(WDRlogo, {
788
- className: classnames(styles$2.wdrLogo)
1272
+ className: styles.navigationBarContentWrapper
1273
+ }, React.createElement(HamburgerIcon, {
1274
+ onClick: handleBurgerMenuClick,
1275
+ mobileNavHidden: mobileNavHidden
1276
+ }), React.createElement(WDRlogo, {
1277
+ className: classnames(styles.menuIcon, styles.wdrLogo)
789
1278
  }), React.createElement("nav", {
790
- className: classnames(styles$2.navigationChapters, _defineProperty({}, styles$2.navigationChaptersHidden, mobileNavHidden)),
1279
+ className: classnames(styles.navigationChapters, _defineProperty({}, styles.navigationChaptersHidden, mobileNavHidden)),
791
1280
  role: "navigation",
792
1281
  ref: ref
793
1282
  }, React.createElement("ul", {
794
- className: styles$2.chapterList
795
- }, renderMenuLinks(chapters))), React.createElement("a", {
796
- className: classnames(styles$2.menuIcon, styles$2.infoIcon)
797
- }, React.createElement(InfoIcon, null)), React.createElement("a", {
798
- className: classnames(styles$2.menuIcon, styles$2.shareIcon)
799
- }, React.createElement(ShareIcon, null))), React.createElement("div", {
800
- className: styles$2.progressBar,
1283
+ className: styles.chapterList
1284
+ }, renderChapterLinks(chapters))), React.createElement(LegalInfoMenu, null), React.createElement(SharingMenu, null)), React.createElement("div", {
1285
+ className: styles.progressBar,
801
1286
  onMouseEnter: handleProgressBarMouseEnter
802
1287
  }, React.createElement("span", {
803
- className: styles$2.progressIndicator,
1288
+ className: styles.progressIndicator,
804
1289
  style: {
805
1290
  width: readingProgress + '%'
806
1291
  }
@@ -842,20 +1327,20 @@ function useOnScreen(ref) {
842
1327
  return isIntersecting;
843
1328
  }
844
1329
 
845
- var css$4 = ".Fullscreen-module_root__1N3CI {\n width: 100%;\n height: 100vh;\n position: relative;\n overflow: hidden;\n}\n";
846
- var styles$3 = {"root":"Fullscreen-module_root__1N3CI"};
847
- styleInject(css$4);
1330
+ var css$9 = ".Fullscreen-module_root__1N3CI {\n width: 100%;\n height: 100vh;\n position: relative;\n overflow: hidden;\n}\n";
1331
+ var styles$8 = {"root":"Fullscreen-module_root__1N3CI"};
1332
+ styleInject(css$9);
848
1333
 
849
1334
  var Fullscreen = React.forwardRef(function Fullscreen(props, ref) {
850
1335
  return React.createElement("div", {
851
1336
  ref: ref,
852
- className: styles$3.root
1337
+ className: styles$8.root
853
1338
  }, props.children);
854
1339
  });
855
1340
 
856
- var css$5 = ".Image-module_root__1ef3j {\n background-size: cover;\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n}\n\n@media (orientation: landscape) {\n .Image-module_portrait__1mRha {\n display: none;\n }\n}\n\n@media (orientation: portrait) {\n .Image-module_portrait__1mRha {\n display: block;\n }\n}";
857
- var styles$4 = {"root":"Image-module_root__1ef3j","portrait":"Image-module_portrait__1mRha"};
858
- styleInject(css$5);
1341
+ var css$a = ".Image-module_root__1ef3j {\n background-size: cover;\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n}\n\n@media (orientation: landscape) {\n .Image-module_portrait__1mRha {\n display: none;\n }\n}\n\n@media (orientation: portrait) {\n .Image-module_portrait__1mRha {\n display: block;\n }\n}";
1342
+ var styles$9 = {"root":"Image-module_root__1ef3j","portrait":"Image-module_portrait__1mRha"};
1343
+ styleInject(css$a);
859
1344
 
860
1345
  /**
861
1346
  * Render an image file.
@@ -874,7 +1359,7 @@ function Image(props) {
874
1359
  var focusX = typeof image.configuration.focusX === 'undefined' ? 50 : image.configuration.focusX;
875
1360
  var focusY = typeof image.configuration.focusY === 'undefined' ? 50 : image.configuration.focusY;
876
1361
  return React.createElement("div", {
877
- className: classnames(styles$4.root, _defineProperty({}, styles$4.portrait, props.mobile)),
1362
+ className: classnames(styles$9.root, _defineProperty({}, styles$9.portrait, props.mobile)),
878
1363
  role: "img",
879
1364
  style: {
880
1365
  backgroundImage: "url(".concat(image.urls.large, ")"),
@@ -886,13 +1371,17 @@ function Image(props) {
886
1371
  return null;
887
1372
  }
888
1373
 
889
- var ScrollToSectionContext = React.createContext();
1374
+ var ScrollToSectionContext = React.createContext(function () {});
890
1375
 
891
- var MutedContext = React.createContext();
1376
+ var MutedContext = React.createContext({
1377
+ muted: true,
1378
+ setMuted: function setMuted() {},
1379
+ mediaOff: true
1380
+ });
892
1381
 
893
- var css$6 = ".Video-module_root__30u0y {\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n}\n\n.Video-module_video__3FJvj {\n width: 100%;\n height: 100%;\n transition: transform ease 0.2s;\n outline: none;\n}\n\n.Video-module_video__3FJvj:focus {\n outline: none;\n}\n\n.Video-module_backdrop__1R7f4 {\n object-fit: cover;\n}\n";
894
- var styles$5 = {"root":"Video-module_root__30u0y","video":"Video-module_video__3FJvj","backdrop":"Video-module_backdrop__1R7f4"};
895
- styleInject(css$6);
1382
+ var css$b = ".Video-module_root__30u0y {\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n}\n\n.Video-module_video__3FJvj {\n width: 100%;\n height: 100%;\n transition: transform ease 0.2s;\n outline: none;\n}\n\n.Video-module_video__3FJvj:focus {\n outline: none;\n}\n\n.Video-module_backdrop__1R7f4 {\n object-fit: cover;\n}\n";
1383
+ var styles$a = {"root":"Video-module_root__30u0y","video":"Video-module_video__3FJvj","backdrop":"Video-module_backdrop__1R7f4"};
1384
+ styleInject(css$b);
896
1385
 
897
1386
  function Video(props) {
898
1387
  var awsBucket = '//s3-eu-west-1.amazonaws.com/de.codevise.pageflow.development/pageflow-next/presentation-videos/';
@@ -930,10 +1419,12 @@ function Video(props) {
930
1419
  }['poster_' + props.id];
931
1420
  var videoRef = useRef();
932
1421
  var state = props.state;
1422
+ var mutedSettings = useContext(MutedContext);
1423
+ var mediaOff = mutedSettings.mediaOff;
933
1424
  useEffect(function () {
934
1425
  var video = videoRef.current;
935
1426
 
936
- if (video) {
1427
+ if (video && !mediaOff) {
937
1428
  if (state === 'active') {
938
1429
  if (video.readyState > 0) {
939
1430
  video.play();
@@ -951,24 +1442,22 @@ function Video(props) {
951
1442
  function play() {
952
1443
  video.play();
953
1444
  }
954
- }, [state, videoRef]);
1445
+ }, [state, videoRef, mediaOff]);
955
1446
  return React.createElement("div", {
956
- className: styles$5.root
957
- }, React.createElement(MutedContext.Consumer, null, function (mutedSettings) {
958
- return React.createElement(ScrollToSectionContext.Consumer, null, function (scrollToSection) {
959
- return React.createElement("video", {
960
- src: videoUrl,
961
- ref: videoRef,
962
- className: classnames(styles$5.video, _defineProperty({}, styles$5.backdrop, !props.interactive)),
963
- controls: props.controls,
964
- playsInline: true,
965
- onEnded: function onEnded() {
966
- return props.nextSectionOnEnd && scrollToSection('next');
967
- },
968
- loop: !props.interactive,
969
- muted: mutedSettings.muted,
970
- poster: posterUrl
971
- });
1447
+ className: styles$a.root
1448
+ }, React.createElement(ScrollToSectionContext.Consumer, null, function (scrollToSection) {
1449
+ return React.createElement("video", {
1450
+ src: videoUrl,
1451
+ ref: videoRef,
1452
+ className: classnames(styles$a.video, _defineProperty({}, styles$a.backdrop, !props.interactive)),
1453
+ controls: props.controls,
1454
+ playsInline: true,
1455
+ onEnded: function onEnded() {
1456
+ return props.nextSectionOnEnd && scrollToSection('next');
1457
+ },
1458
+ loop: !props.interactive,
1459
+ muted: mutedSettings.muted,
1460
+ poster: posterUrl
972
1461
  });
973
1462
  }));
974
1463
  }
@@ -977,22 +1466,22 @@ Video.defaultProps = {
977
1466
  controls: false
978
1467
  };
979
1468
 
980
- var css$7 = ".FillColor-module_FillColor__S1uEG {\n width: 100%;\n height: 100vh;\n}\n";
981
- var styles$6 = {"FillColor":"FillColor-module_FillColor__S1uEG"};
982
- styleInject(css$7);
1469
+ var css$c = ".FillColor-module_FillColor__S1uEG {\n width: 100%;\n height: 100vh;\n}\n";
1470
+ var styles$b = {"FillColor":"FillColor-module_FillColor__S1uEG"};
1471
+ styleInject(css$c);
983
1472
 
984
1473
  function FillColor(props) {
985
1474
  return React.createElement("div", {
986
- className: styles$6.FillColor,
1475
+ className: styles$b.FillColor,
987
1476
  style: {
988
1477
  backgroundColor: props.color
989
1478
  }
990
1479
  });
991
1480
  }
992
1481
 
993
- var css$8 = ".MotifArea-module_root__1_ACd {\n position: absolute;\n background: hsla(0, 0%, 100%, 0.2);\n z-index: 2;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.MotifArea-module_active__1q4z2 {\n opacity: 1;\n}\n\n.MotifArea-module_corner__3hB5t {\n position: absolute;\n width: 10px;\n height: 10px;\n}\n\n.MotifArea-module_topLeft__3vHHi {\n border-top: solid 2px #fff;\n border-left: solid 2px #fff;\n}\n\n.MotifArea-module_topRight__2gNmC {\n right: 0;\n border-top: solid 2px #fff;\n border-right: solid 2px #fff;\n}\n\n.MotifArea-module_bottomLeft__2qEqb {\n bottom: 0;\n border-bottom: solid 2px #fff;\n border-left: solid 2px #fff;\n}\n\n.MotifArea-module_bottomRight__3OjTb {\n right: 0;\n bottom: 0;\n border-bottom: solid 2px #fff;\n border-right: solid 2px #fff;\n}\n";
994
- var styles$7 = {"root":"MotifArea-module_root__1_ACd","active":"MotifArea-module_active__1q4z2","corner":"MotifArea-module_corner__3hB5t","topLeft":"MotifArea-module_topLeft__3vHHi MotifArea-module_corner__3hB5t","topRight":"MotifArea-module_topRight__2gNmC MotifArea-module_corner__3hB5t","bottomLeft":"MotifArea-module_bottomLeft__2qEqb MotifArea-module_corner__3hB5t","bottomRight":"MotifArea-module_bottomRight__3OjTb MotifArea-module_corner__3hB5t"};
995
- styleInject(css$8);
1482
+ var css$d = ".MotifArea-module_root__1_ACd {\n position: absolute;\n background: hsla(0, 0%, 100%, 0.2);\n z-index: 2;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.MotifArea-module_active__1q4z2 {\n opacity: 1;\n}\n\n.MotifArea-module_corner__3hB5t {\n position: absolute;\n width: 10px;\n height: 10px;\n}\n\n.MotifArea-module_topLeft__3vHHi {\n border-top: solid 2px #fff;\n border-left: solid 2px #fff;\n}\n\n.MotifArea-module_topRight__2gNmC {\n right: 0;\n border-top: solid 2px #fff;\n border-right: solid 2px #fff;\n}\n\n.MotifArea-module_bottomLeft__2qEqb {\n bottom: 0;\n border-bottom: solid 2px #fff;\n border-left: solid 2px #fff;\n}\n\n.MotifArea-module_bottomRight__3OjTb {\n right: 0;\n bottom: 0;\n border-bottom: solid 2px #fff;\n border-right: solid 2px #fff;\n}\n";
1483
+ var styles$c = {"root":"MotifArea-module_root__1_ACd","active":"MotifArea-module_active__1q4z2","corner":"MotifArea-module_corner__3hB5t","topLeft":"MotifArea-module_topLeft__3vHHi MotifArea-module_corner__3hB5t","topRight":"MotifArea-module_topRight__2gNmC MotifArea-module_corner__3hB5t","bottomLeft":"MotifArea-module_bottomLeft__2qEqb MotifArea-module_corner__3hB5t","bottomRight":"MotifArea-module_bottomRight__3OjTb MotifArea-module_corner__3hB5t"};
1484
+ styleInject(css$d);
996
1485
 
997
1486
  var MotifArea = React.forwardRef(function MotifArea(props, ref) {
998
1487
  var image = useFile({
@@ -1006,18 +1495,18 @@ var MotifArea = React.forwardRef(function MotifArea(props, ref) {
1006
1495
 
1007
1496
  return React.createElement("div", {
1008
1497
  ref: ref,
1009
- className: classnames(styles$7.root, _defineProperty({}, styles$7.active, props.active)),
1498
+ className: classnames(styles$c.root, _defineProperty({}, styles$c.active, props.active)),
1010
1499
  style: position(props, image),
1011
1500
  onMouseEnter: props.onMouseEnter,
1012
1501
  onMouseLeave: props.onMouseLeave
1013
1502
  }, React.createElement("div", {
1014
- className: styles$7.topLeft
1503
+ className: styles$c.topLeft
1015
1504
  }), React.createElement("div", {
1016
- className: styles$7.topRight
1505
+ className: styles$c.topRight
1017
1506
  }), React.createElement("div", {
1018
- className: styles$7.bottomLeft
1507
+ className: styles$c.bottomLeft
1019
1508
  }), React.createElement("div", {
1020
- className: styles$7.bottomRight
1509
+ className: styles$c.bottomRight
1021
1510
  }));
1022
1511
  });
1023
1512
 
@@ -1859,9 +2348,9 @@ function ReactCompareImage(props) {
1859
2348
 
1860
2349
  ReactCompareImage.defaultProps = defaultProps;
1861
2350
 
1862
- var css$9 = ".BeforeAfter-module_container__38Dru {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.wiggle {\n animation: BeforeAfter-module_shake__3iLe8 1.5s cubic-bezier(.36,.07,.19,.97) both;\n}\n\n@keyframes BeforeAfter-module_shake__3iLe8 {\n 10%, 90% {\n transform: translate3d(-20%, 0, 0);\n }\n\n 20%, 80% {\n transform: translate3d(40%, 0, 0);\n }\n\n 30%, 50%, 70% {\n transform: translate3d(-80%, 0, 0);\n }\n\n 40%, 60% {\n transform: translate3d(80%, 0, 0);\n }\n}";
1863
- var styles$8 = {"container":"BeforeAfter-module_container__38Dru","shake":"BeforeAfter-module_shake__3iLe8"};
1864
- styleInject(css$9);
2351
+ var css$e = ".BeforeAfter-module_container__38Dru {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.wiggle {\n animation: BeforeAfter-module_shake__3iLe8 1.5s cubic-bezier(.36,.07,.19,.97) both;\n}\n\n@keyframes BeforeAfter-module_shake__3iLe8 {\n 10%, 90% {\n transform: translate3d(-20%, 0, 0);\n }\n\n 20%, 80% {\n transform: translate3d(40%, 0, 0);\n }\n\n 30%, 50%, 70% {\n transform: translate3d(-80%, 0, 0);\n }\n\n 40%, 60% {\n transform: translate3d(80%, 0, 0);\n }\n}";
2352
+ var styles$d = {"container":"BeforeAfter-module_container__38Dru","shake":"BeforeAfter-module_shake__3iLe8"};
2353
+ styleInject(css$e);
1865
2354
 
1866
2355
  var BeforeAfter = (function (_ref) {
1867
2356
  var state = _ref.state,
@@ -1974,7 +2463,7 @@ var BeforeAfter = (function (_ref) {
1974
2463
  var afterImage = awsBucket + 'before_after/haldern_church2.jpg';
1975
2464
  return React.createElement("div", {
1976
2465
  ref: beforeAfterRef,
1977
- className: styles$8.container
2466
+ className: styles$d.container
1978
2467
  }, React.createElement(ReactCompareImage, {
1979
2468
  leftImage: beforeImage,
1980
2469
  rightImage: afterImage,
@@ -1989,9 +2478,9 @@ var BeforeAfter = (function (_ref) {
1989
2478
  }));
1990
2479
  });
1991
2480
 
1992
- var css$a = ".Backdrop-module_Backdrop__1w4UZ {\n width: 100%;\n z-index: 2;\n}\n\n.Backdrop-module_offScreen__2_FYZ {\n}\n";
1993
- var styles$9 = {"Backdrop":"Backdrop-module_Backdrop__1w4UZ","offScreen":"Backdrop-module_offScreen__2_FYZ"};
1994
- styleInject(css$a);
2481
+ var css$f = ".Backdrop-module_Backdrop__1w4UZ {\n width: 100%;\n z-index: 2;\n}\n\n.Backdrop-module_offScreen__2_FYZ {\n}\n";
2482
+ var styles$e = {"Backdrop":"Backdrop-module_Backdrop__1w4UZ","offScreen":"Backdrop-module_offScreen__2_FYZ"};
2483
+ styleInject(css$f);
1995
2484
 
1996
2485
  function Backdrop(props) {
1997
2486
  var _useDimension = useDimension(),
@@ -2000,7 +2489,7 @@ function Backdrop(props) {
2000
2489
  setContainerRef = _useDimension2[1];
2001
2490
 
2002
2491
  return React.createElement("div", {
2003
- className: classnames(styles$9.Backdrop, props.transitionStyles.backdrop, props.transitionStyles["backdrop-".concat(props.state)], _defineProperty({}, styles$9.offScreen, props.offScreen))
2492
+ className: classnames(styles$e.Backdrop, props.transitionStyles.backdrop, props.transitionStyles["backdrop-".concat(props.state)], _defineProperty({}, styles$e.offScreen, props.offScreen))
2004
2493
  }, React.createElement("div", {
2005
2494
  className: props.transitionStyles.backdropInner
2006
2495
  }, React.createElement("div", {
@@ -2059,9 +2548,9 @@ function renderContent(props, containerDimension, setContainerRef) {
2059
2548
  }
2060
2549
  }
2061
2550
 
2062
- var css$b = ".Foreground-module_Foreground__13ODU {\n position: relative;\n z-index: 3;\n\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.Foreground-module_fullFadeHeight__2p9dx {\n min-height: 51vh;\n}\n\n.Foreground-module_fullHeight__1vMXb {\n min-height: 100vh;\n}\n\n.Foreground-module_fullFadeHeight__2p9dx.Foreground-module_enlarge__14Plm,\n.Foreground-module_fullHeight__1vMXb.Foreground-module_enlarge__14Plm {\n min-height: 130vh;\n}\n\n.Foreground-module_hidden__2dmAx {\n visibility: hidden;\n}\n";
2063
- var styles$a = {"Foreground":"Foreground-module_Foreground__13ODU","fullFadeHeight":"Foreground-module_fullFadeHeight__2p9dx","fullHeight":"Foreground-module_fullHeight__1vMXb","enlarge":"Foreground-module_enlarge__14Plm","hidden":"Foreground-module_hidden__2dmAx"};
2064
- styleInject(css$b);
2551
+ var css$g = ".Foreground-module_Foreground__13ODU {\n position: relative;\n z-index: 3;\n\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.Foreground-module_fullFadeHeight__2p9dx {\n min-height: 51vh;\n}\n\n.Foreground-module_fullHeight__1vMXb {\n min-height: 100vh;\n}\n\n.Foreground-module_fullFadeHeight__2p9dx.Foreground-module_enlarge__14Plm,\n.Foreground-module_fullHeight__1vMXb.Foreground-module_enlarge__14Plm {\n min-height: 130vh;\n}\n\n.Foreground-module_hidden__2dmAx {\n visibility: hidden;\n}\n";
2552
+ var styles$f = {"Foreground":"Foreground-module_Foreground__13ODU","fullFadeHeight":"Foreground-module_fullFadeHeight__2p9dx","fullHeight":"Foreground-module_fullHeight__1vMXb","enlarge":"Foreground-module_enlarge__14Plm","hidden":"Foreground-module_hidden__2dmAx"};
2553
+ styleInject(css$g);
2065
2554
 
2066
2555
  function Foreground(props) {
2067
2556
  return React.createElement("div", {
@@ -2072,7 +2561,7 @@ function Foreground(props) {
2072
2561
  function className(props) {
2073
2562
  var _classNames;
2074
2563
 
2075
- return classnames(styles$a.Foreground, props.transitionStyles.foreground, props.transitionStyles["foreground-".concat(props.state)], styles$a["".concat(props.heightMode, "Height")], (_classNames = {}, _defineProperty(_classNames, styles$a.hidden, props.hidden), _defineProperty(_classNames, styles$a.enlarge, props.hidden && !props.disableEnlarge), _classNames));
2564
+ return classnames(styles$f.Foreground, props.transitionStyles.foreground, props.transitionStyles["foreground-".concat(props.state)], styles$f["".concat(props.heightMode, "Height")], (_classNames = {}, _defineProperty(_classNames, styles$f.hidden, props.hidden), _defineProperty(_classNames, styles$f.enlarge, props.hidden && !props.disableEnlarge), _classNames));
2076
2565
  }
2077
2566
 
2078
2567
  function _arrayWithoutHoles(arr) {
@@ -2097,24 +2586,24 @@ function _toConsumableArray(arr) {
2097
2586
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
2098
2587
  }
2099
2588
 
2100
- var css$c = "\n\n.Heading-module_Heading__1YSiy {\n font-size: 66px;\n font-weight: 700;\n margin-top: 0;\n margin-bottom: 0.5em;\n padding-top: 0.5em;\n}\n\n.Heading-module_first__1yPxD {\n font-size: 110px;\n line-height: 1;\n}\n\n@media (orientation: landscape) {\n .Heading-module_first__1yPxD {\n padding-top: 25%;\n }\n}\n\n@media (max-width: 600px) {\n .Heading-module_Heading__1YSiy {\n font-size: 40px;\n }\n\n .Heading-module_first__1yPxD {\n font-size: 66px;\n }\n}\n";
2101
- var styles$b = {"text-l":"40px","text-xl":"66px","text-2xl":"110px","Heading":"Heading-module_Heading__1YSiy","first":"Heading-module_first__1yPxD"};
2102
- styleInject(css$c);
2589
+ var css$h = "\n\n.Heading-module_Heading__1YSiy {\n font-size: 66px;\n font-weight: 700;\n margin-top: 0;\n margin-bottom: 0.5em;\n padding-top: 0.5em;\n}\n\n.Heading-module_first__1yPxD {\n font-size: 110px;\n line-height: 1;\n}\n\n@media (orientation: landscape) {\n .Heading-module_first__1yPxD {\n padding-top: 25%;\n }\n}\n\n@media (max-width: 600px) {\n .Heading-module_Heading__1YSiy {\n font-size: 40px;\n }\n\n .Heading-module_first__1yPxD {\n font-size: 66px;\n }\n}\n";
2590
+ var styles$g = {"text-l":"40px","text-xl":"66px","text-2xl":"110px","Heading":"Heading-module_Heading__1YSiy","first":"Heading-module_first__1yPxD"};
2591
+ styleInject(css$h);
2103
2592
 
2104
2593
  function Heading(props) {
2105
2594
  return React.createElement("h1", {
2106
- className: classnames(styles$b.Heading, _defineProperty({}, styles$b.first, props.first)),
2595
+ className: classnames(styles$g.Heading, _defineProperty({}, styles$g.first, props.first)),
2107
2596
  style: props.style
2108
2597
  }, props.children);
2109
2598
  }
2110
2599
 
2111
- var css$d = "\n\n.TextBlock-module_TextBlock__5Zpj7 {\n font-size: 22px;\n line-height: 1.4;\n\n padding: 1em 0;\n margin-top: 0;\n margin-bottom: 0;\n text-shadow: none;\n}\n\n.TextBlock-module_dummy__3W5ls {\n opacity: 0.7;\n}\n\n.TextBlock-module_TextBlock__5Zpj7 a {\n color: #fff;\n word-wrap: break-word;\n}\n\n.TextBlock-module_TextBlock__5Zpj7 ol,\n.TextBlock-module_TextBlock__5Zpj7 ul {\n padding-left: 20px;\n}\n";
2112
- var styles$c = {"text-base":"22px","TextBlock":"TextBlock-module_TextBlock__5Zpj7","dummy":"TextBlock-module_dummy__3W5ls"};
2113
- styleInject(css$d);
2600
+ var css$i = "\n\n.TextBlock-module_TextBlock__5Zpj7 {\n font-size: 22px;\n line-height: 1.4;\n\n padding: 1em 0;\n margin-top: 0;\n margin-bottom: 0;\n text-shadow: none;\n}\n\n.TextBlock-module_dummy__3W5ls {\n opacity: 0.7;\n}\n\n.TextBlock-module_TextBlock__5Zpj7 a {\n color: #fff;\n word-wrap: break-word;\n}\n\n.TextBlock-module_TextBlock__5Zpj7 ol,\n.TextBlock-module_TextBlock__5Zpj7 ul {\n padding-left: 20px;\n}\n";
2601
+ var styles$h = {"text-base":"22px","TextBlock":"TextBlock-module_TextBlock__5Zpj7","dummy":"TextBlock-module_dummy__3W5ls"};
2602
+ styleInject(css$i);
2114
2603
 
2115
2604
  function TextBlock(props) {
2116
2605
  return React.createElement("div", {
2117
- className: classnames(styles$c.TextBlock, _defineProperty({}, styles$c.dummy, props.dummy)),
2606
+ className: classnames(styles$h.TextBlock, _defineProperty({}, styles$h.dummy, props.dummy)),
2118
2607
  style: props.style,
2119
2608
  dangerouslySetInnerHTML: {
2120
2609
  __html: props.children
@@ -2122,83 +2611,83 @@ function TextBlock(props) {
2122
2611
  });
2123
2612
  }
2124
2613
 
2125
- var css$e = ".InlineCaption-module_root__1R8Ib {\n padding: 3px 10px 5px;\n background-color: #fff;\n color: #222;\n font-size: text-s;\n line-height: 1.4;\n text-shadow: none;\n}\n";
2126
- var styles$d = {"text-base":"22px","root":"InlineCaption-module_root__1R8Ib"};
2127
- styleInject(css$e);
2614
+ var css$j = ".InlineCaption-module_root__1R8Ib {\n padding: 3px 10px 5px;\n background-color: #fff;\n color: #222;\n font-size: text-s;\n line-height: 1.4;\n text-shadow: none;\n}\n";
2615
+ var styles$i = {"text-base":"22px","root":"InlineCaption-module_root__1R8Ib"};
2616
+ styleInject(css$j);
2128
2617
 
2129
2618
  function InlineCaption(props) {
2130
2619
  if (props.text) {
2131
2620
  return React.createElement("div", {
2132
- className: styles$d.root
2621
+ className: styles$i.root
2133
2622
  }, props.text);
2134
2623
  } else {
2135
2624
  return null;
2136
2625
  }
2137
2626
  }
2138
2627
 
2139
- var css$f = ".InlineImage-module_root__1DvUb {\n position: relative;\n margin-top: 1em;\n}\n\n.InlineImage-module_container__Pui7E {\n position: relative;\n margin-top: 1em;\n}\n\n.InlineImage-module_spacer__2rMkE {\n padding-top: 75%;\n}\n\n.InlineImage-module_inner__2AMK- {\n border: solid 2px #fff;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n";
2140
- var styles$e = {"root":"InlineImage-module_root__1DvUb","container":"InlineImage-module_container__Pui7E","spacer":"InlineImage-module_spacer__2rMkE","inner":"InlineImage-module_inner__2AMK-"};
2141
- styleInject(css$f);
2628
+ var css$k = ".InlineImage-module_root__1DvUb {\n position: relative;\n margin-top: 1em;\n}\n\n.InlineImage-module_container__Pui7E {\n position: relative;\n margin-top: 1em;\n}\n\n.InlineImage-module_spacer__2rMkE {\n padding-top: 75%;\n}\n\n.InlineImage-module_inner__2AMK- {\n border: solid 2px #fff;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n";
2629
+ var styles$j = {"root":"InlineImage-module_root__1DvUb","container":"InlineImage-module_container__Pui7E","spacer":"InlineImage-module_spacer__2rMkE","inner":"InlineImage-module_inner__2AMK-"};
2630
+ styleInject(css$k);
2142
2631
 
2143
2632
  function InlineImage(props) {
2144
2633
  return React.createElement("div", {
2145
- className: classnames(styles$e.root)
2634
+ className: classnames(styles$j.root)
2146
2635
  }, React.createElement("div", {
2147
- className: styles$e.container
2636
+ className: styles$j.container
2148
2637
  }, React.createElement("div", {
2149
- className: styles$e.spacer
2638
+ className: styles$j.spacer
2150
2639
  }, React.createElement("div", {
2151
- className: styles$e.inner
2640
+ className: styles$j.inner
2152
2641
  }, React.createElement(Image, props)))), React.createElement(InlineCaption, {
2153
2642
  text: props.caption
2154
2643
  }));
2155
2644
  }
2156
2645
 
2157
- var css$g = ".InlineVideo-module_root__2UD3D {\n position: relative;\n max-height: 98vh;\n}\n\n.InlineVideo-module_inner__H81_g {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n";
2158
- var styles$f = {"root":"InlineVideo-module_root__2UD3D","inner":"InlineVideo-module_inner__H81_g"};
2159
- styleInject(css$g);
2646
+ var css$l = ".InlineVideo-module_root__2UD3D {\n position: relative;\n max-height: 98vh;\n}\n\n.InlineVideo-module_inner__H81_g {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n";
2647
+ var styles$k = {"root":"InlineVideo-module_root__2UD3D","inner":"InlineVideo-module_inner__H81_g"};
2648
+ styleInject(css$l);
2160
2649
 
2161
2650
  function InlineVideo(props) {
2162
2651
  var ref = useRef();
2163
2652
  var onScreen = useOnScreen(ref, '-50% 0px -50% 0px');
2164
2653
  return React.createElement("div", {
2165
2654
  ref: ref,
2166
- className: classnames(styles$f.root)
2655
+ className: classnames(styles$k.root)
2167
2656
  }, React.createElement("div", {
2168
2657
  style: {
2169
2658
  paddingTop: props.wideFormat ? '41.15%' : '56.25%'
2170
2659
  }
2171
2660
  }, React.createElement("div", {
2172
- className: styles$f.inner
2661
+ className: styles$k.inner
2173
2662
  }, React.createElement(Video, Object.assign({}, props, {
2174
2663
  state: onScreen ? 'active' : 'inactive',
2175
2664
  interactive: true
2176
2665
  })))));
2177
2666
  }
2178
2667
 
2179
- var css$h = ".InlineBeforeAfter-module_root__2O9F8 {\n position: relative;\n margin: 0 auto;\n}\n";
2180
- var styles$g = {"root":"InlineBeforeAfter-module_root__2O9F8"};
2181
- styleInject(css$h);
2668
+ var css$m = ".InlineBeforeAfter-module_root__2O9F8 {\n position: relative;\n margin: 0 auto;\n}\n";
2669
+ var styles$l = {"root":"InlineBeforeAfter-module_root__2O9F8"};
2670
+ styleInject(css$m);
2182
2671
 
2183
2672
  function InlineBeforeAfter(props) {
2184
2673
  var ref = useRef();
2185
2674
  var onScreen = useOnScreen(ref, '-50% 0px -50% 0px');
2186
2675
  return React.createElement("div", {
2187
2676
  ref: ref,
2188
- className: styles$g.root
2677
+ className: styles$l.root
2189
2678
  }, React.createElement(BeforeAfter, Object.assign({}, props, {
2190
2679
  state: onScreen ? 'active' : 'inactive'
2191
2680
  })));
2192
2681
  }
2193
2682
 
2194
- var css$i = ".SoundDisclaimer-module_soundDisclaimer__1sAiH {\n text-align: center;\n border: 1px solid white;\n border-radius: 4px;\n cursor: pointer;\n font-size: inherit;\n}\n\n.SoundDisclaimer-module_soundDisclaimer__1sAiH:hover {\n background: rgba(255, 255, 255, 0.25);\n}";
2195
- var styles$h = {"soundDisclaimer":"SoundDisclaimer-module_soundDisclaimer__1sAiH"};
2196
- styleInject(css$i);
2683
+ var css$n = ".SoundDisclaimer-module_soundDisclaimer__1sAiH {\n text-align: center;\n border: 1px solid white;\n border-radius: 4px;\n cursor: pointer;\n font-size: inherit;\n}\n\n.SoundDisclaimer-module_soundDisclaimer__1sAiH:hover {\n background: rgba(255, 255, 255, 0.25);\n}";
2684
+ var styles$m = {"soundDisclaimer":"SoundDisclaimer-module_soundDisclaimer__1sAiH"};
2685
+ styleInject(css$n);
2197
2686
 
2198
2687
  function UnmuteButton() {
2199
2688
  return React.createElement(MutedContext.Consumer, null, function (mutedSettings) {
2200
2689
  return React.createElement("div", {
2201
- className: classnames(styles$h.soundDisclaimer),
2690
+ className: classnames(styles$m.soundDisclaimer),
2202
2691
  onClick: function onClick() {
2203
2692
  return mutedSettings.setMuted(false);
2204
2693
  }
@@ -2288,16 +2777,16 @@ ForegroundItems.defaultProps = {
2288
2777
  }
2289
2778
  };
2290
2779
 
2291
- var css$j = ".TwoColumn-module_root__37EqL {\n}\n\n.TwoColumn-module_group__3Hg2y {\n clear: right;\n margin-left: 8%;\n margin-right: 8%;\n}\n\n.TwoColumn-module_group-full__2OT4o {\n margin-left: 0;\n margin-right: 0;\n}\n\n.TwoColumn-module_sticky__4LCDO,\n.TwoColumn-module_inline__1fPfM {\n max-width: 500px;\n}\n\n.TwoColumn-module_right__Fr52a .TwoColumn-module_inline__1fPfM {\n margin-left: auto;\n}\n\n@media (max-width: 949px) {\n .TwoColumn-module_right__Fr52a .TwoColumn-module_sticky__4LCDO {\n margin-left: auto;\n }\n}\n\n@media (min-width: 950px) {\n .TwoColumn-module_sticky__4LCDO {\n position: sticky;\n float: right;\n top: 33%;\n width: 30%;\n max-width: 600px;\n }\n\n .TwoColumn-module_right__Fr52a .TwoColumn-module_sticky__4LCDO {\n float: left;\n }\n}\n";
2292
- var styles$i = {"root":"TwoColumn-module_root__37EqL","group":"TwoColumn-module_group__3Hg2y","group-full":"TwoColumn-module_group-full__2OT4o","sticky":"TwoColumn-module_sticky__4LCDO","inline":"TwoColumn-module_inline__1fPfM","right":"TwoColumn-module_right__Fr52a"};
2293
- styleInject(css$j);
2780
+ var css$o = ".TwoColumn-module_root__37EqL {\n}\n\n.TwoColumn-module_group__3Hg2y {\n clear: right;\n margin-left: 8%;\n margin-right: 8%;\n}\n\n.TwoColumn-module_group-full__2OT4o {\n margin-left: 0;\n margin-right: 0;\n}\n\n.TwoColumn-module_sticky__4LCDO,\n.TwoColumn-module_inline__1fPfM {\n max-width: 500px;\n}\n\n.TwoColumn-module_right__Fr52a .TwoColumn-module_inline__1fPfM {\n margin-left: auto;\n}\n\n@media (max-width: 949px) {\n .TwoColumn-module_right__Fr52a .TwoColumn-module_sticky__4LCDO {\n margin-left: auto;\n }\n}\n\n@media (min-width: 950px) {\n .TwoColumn-module_sticky__4LCDO {\n position: sticky;\n float: right;\n top: 33%;\n width: 30%;\n max-width: 600px;\n }\n\n .TwoColumn-module_right__Fr52a .TwoColumn-module_sticky__4LCDO {\n float: left;\n }\n}\n";
2781
+ var styles$n = {"root":"TwoColumn-module_root__37EqL","group":"TwoColumn-module_group__3Hg2y","group-full":"TwoColumn-module_group-full__2OT4o","sticky":"TwoColumn-module_sticky__4LCDO","inline":"TwoColumn-module_inline__1fPfM","right":"TwoColumn-module_right__Fr52a"};
2782
+ styleInject(css$o);
2294
2783
 
2295
2784
  var availablePositions = ['inline', 'sticky', 'full'];
2296
2785
  function TwoColumn(props) {
2297
2786
  return React.createElement("div", {
2298
- className: classnames(styles$i.root, styles$i[props.align])
2787
+ className: classnames(styles$n.root, styles$n[props.align])
2299
2788
  }, React.createElement("div", {
2300
- className: styles$i.inline,
2789
+ className: styles$n.inline,
2301
2790
  ref: props.contentAreaRef
2302
2791
  }), renderItems(props));
2303
2792
  }
@@ -2309,7 +2798,7 @@ function renderItems(props) {
2309
2798
  return groupItemsByPosition(props.items).map(function (group, index) {
2310
2799
  return React.createElement("div", {
2311
2800
  key: index,
2312
- className: classnames(styles$i.group, styles$i["group-".concat(group.position)])
2801
+ className: classnames(styles$n.group, styles$n["group-".concat(group.position)])
2313
2802
  }, renderItemGroup(props, group, 'sticky'), renderItemGroup(props, group, 'inline'), renderItemGroup(props, group, 'full'));
2314
2803
  });
2315
2804
  }
@@ -2317,7 +2806,7 @@ function renderItems(props) {
2317
2806
  function renderItemGroup(props, group, position) {
2318
2807
  if (group[position].length) {
2319
2808
  return React.createElement("div", {
2320
- className: styles$i[position]
2809
+ className: styles$n[position]
2321
2810
  }, props.children(React.createElement(ForegroundItems, {
2322
2811
  items: group[position]
2323
2812
  })));
@@ -2346,13 +2835,13 @@ function groupItemsByPosition(items) {
2346
2835
  return groups;
2347
2836
  }
2348
2837
 
2349
- var css$k = ".Center-module_outer__3Rr0H {\n margin-left: 8%;\n margin-right: 8%;\n}\n\n.Center-module_outer-full__3dknO {\n margin-left: 0;\n margin-right: 0;\n}\n\n.Center-module_item__1KSs3 {\n margin-left: auto;\n margin-right: auto;\n max-width: 700px;\n}\n\n.Center-module_item-full__1cEuv {\n margin-left: 0;\n margin-right: 0;\n max-width: none;\n}\n\n@media (min-width: 950px) {\n .Center-module_inner-left__2z9Ea {\n float: left;\n width: 60%;\n margin-left: -10%;\n margin-right: 1em;\n margin-bottom: 1em;\n }\n\n .Center-module_inner-right__KBkVt {\n float: right;\n width: 60%;\n margin-right: -10%;\n margin-left: 1em;\n margin-bottom: 1em;\n }\n}\n";
2350
- var styles$j = {"outer":"Center-module_outer__3Rr0H","outer-full":"Center-module_outer-full__3dknO","item":"Center-module_item__1KSs3","item-full":"Center-module_item-full__1cEuv","inner-left":"Center-module_inner-left__2z9Ea","inner-right":"Center-module_inner-right__KBkVt"};
2351
- styleInject(css$k);
2838
+ var css$p = ".Center-module_outer__3Rr0H {\n margin-left: 8%;\n margin-right: 8%;\n}\n\n.Center-module_outer-full__3dknO {\n margin-left: 0;\n margin-right: 0;\n}\n\n.Center-module_item__1KSs3 {\n margin-left: auto;\n margin-right: auto;\n max-width: 700px;\n}\n\n.Center-module_item-full__1cEuv {\n margin-left: 0;\n margin-right: 0;\n max-width: none;\n}\n\n@media (min-width: 950px) {\n .Center-module_inner-left__2z9Ea {\n float: left;\n width: 60%;\n margin-left: -10%;\n margin-right: 1em;\n margin-bottom: 1em;\n }\n\n .Center-module_inner-right__KBkVt {\n float: right;\n width: 60%;\n margin-right: -10%;\n margin-left: 1em;\n margin-bottom: 1em;\n }\n}\n";
2839
+ var styles$o = {"outer":"Center-module_outer__3Rr0H","outer-full":"Center-module_outer-full__3dknO","item":"Center-module_item__1KSs3","item-full":"Center-module_item-full__1cEuv","inner-left":"Center-module_inner-left__2z9Ea","inner-right":"Center-module_inner-right__KBkVt"};
2840
+ styleInject(css$p);
2352
2841
 
2353
2842
  function Center(props) {
2354
2843
  return React.createElement("div", {
2355
- className: classnames(styles$j.root)
2844
+ className: classnames(styles$o.root)
2356
2845
  }, React.createElement("div", {
2357
2846
  ref: props.contentAreaRef
2358
2847
  }), React.createElement(ForegroundItems, {
@@ -2360,11 +2849,11 @@ function Center(props) {
2360
2849
  }, function (item, child) {
2361
2850
  return React.createElement("div", {
2362
2851
  key: item.index,
2363
- className: classnames(styles$j.outer, styles$j["outer-".concat(item.position)])
2852
+ className: classnames(styles$o.outer, styles$o["outer-".concat(item.position)])
2364
2853
  }, React.createElement("div", {
2365
- className: classnames(styles$j.item, styles$j["item-".concat(item.position)])
2854
+ className: classnames(styles$o.item, styles$o["item-".concat(item.position)])
2366
2855
  }, props.children(React.createElement("div", {
2367
- className: styles$j["inner-".concat(item.position)]
2856
+ className: styles$o["inner-".concat(item.position)]
2368
2857
  }, child))));
2369
2858
  }));
2370
2859
  }
@@ -2448,75 +2937,79 @@ function useScrollTarget(ref, isScrollTarget) {
2448
2937
  }, [ref, isScrollTarget]);
2449
2938
  }
2450
2939
 
2451
- var css$l = ".Section-module_Section__Yo58b {\n position: relative;\n}\n\n.Section-module_invert__3_p7F {\n color: #222;\n}\n\n.Section-module_activityProbe__Fsklh {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 2px;\n width: 1px;\n}\n";
2452
- var styles$k = {"Section":"Section-module_Section__Yo58b","invert":"Section-module_invert__3_p7F","activityProbe":"Section-module_activityProbe__Fsklh"};
2453
- styleInject(css$l);
2940
+ var css$q = ".Section-module_Section__Yo58b {\n position: relative;\n}\n\n.Section-module_invert__3_p7F {\n color: #222;\n}\n\n.Section-module_activityProbe__Fsklh {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 2px;\n width: 1px;\n}\n";
2941
+ var styles$p = {"Section":"Section-module_Section__Yo58b","invert":"Section-module_invert__3_p7F","activityProbe":"Section-module_activityProbe__Fsklh"};
2942
+ styleInject(css$q);
2454
2943
 
2455
- var css$m = "\n\n.fadeInBgConceal-module_backdrop__11JGO {\n position: absolute;\n height: 100%;\n}\n\n.fadeInBgConceal-module_backdropInner__1IAYD {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInBgConceal-module_backdrop__11JGO {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgConceal-module_backdrop-below__3E6Uk {\n opacity: 0;\n visibility: hidden;\n}\n";
2944
+ var css$r = "\n\n.fadeInBgConceal-module_backdrop__11JGO {\n position: absolute;\n height: 100%;\n}\n\n.fadeInBgConceal-module_backdropInner__1IAYD {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInBgConceal-module_backdrop__11JGO {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgConceal-module_backdrop-below__3E6Uk {\n opacity: 0;\n visibility: hidden;\n}\n";
2456
2945
  var fadeInBgConceal = {"fade-duration":"0.5s","backdrop":"fadeInBgConceal-module_backdrop__11JGO","backdropInner":"fadeInBgConceal-module_backdropInner__1IAYD","backdrop-below":"fadeInBgConceal-module_backdrop-below__3E6Uk"};
2457
- styleInject(css$m);
2946
+ styleInject(css$r);
2458
2947
 
2459
- var css$n = "\n\n.fadeInBgFadeOut-module_backdrop__r0YXp {\n position: absolute;\n height: 100%;\n}\n\n.fadeInBgFadeOut-module_backdropInner__IQp87 {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInBgFadeOut-module_backdrop__r0YXp .fadeInBgFadeOut-module_backdropInner__IQp87,\n.fadeInBgFadeOut-module_foreground__Q2vkT {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgFadeOut-module_foreground-above__3pmz9,\n.fadeInBgFadeOut-module_backdrop-below__2G-Ic .fadeInBgFadeOut-module_backdropInner__IQp87 {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInBgFadeOut-module_bbackdrop__1thge::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInBgFadeOut-module_bbackdrop-below__yaeMc::before {\n visibility: hidden;\n}\n";
2948
+ var css$s = "\n\n.fadeInBgFadeOut-module_backdrop__r0YXp {\n position: absolute;\n height: 100%;\n}\n\n.fadeInBgFadeOut-module_backdropInner__IQp87 {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInBgFadeOut-module_backdrop__r0YXp .fadeInBgFadeOut-module_backdropInner__IQp87,\n.fadeInBgFadeOut-module_foreground__Q2vkT {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgFadeOut-module_foreground-above__3pmz9,\n.fadeInBgFadeOut-module_backdrop-below__2G-Ic .fadeInBgFadeOut-module_backdropInner__IQp87 {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInBgFadeOut-module_bbackdrop__1thge::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInBgFadeOut-module_bbackdrop-below__yaeMc::before {\n visibility: hidden;\n}\n";
2460
2949
  var fadeInBgFadeOut = {"fade-duration":"0.5s","backdrop":"fadeInBgFadeOut-module_backdrop__r0YXp","backdropInner":"fadeInBgFadeOut-module_backdropInner__IQp87","foreground":"fadeInBgFadeOut-module_foreground__Q2vkT","foreground-above":"fadeInBgFadeOut-module_foreground-above__3pmz9","backdrop-below":"fadeInBgFadeOut-module_backdrop-below__2G-Ic","bbackdrop":"fadeInBgFadeOut-module_bbackdrop__1thge","bbackdrop-below":"fadeInBgFadeOut-module_bbackdrop-below__yaeMc"};
2461
- styleInject(css$n);
2950
+ styleInject(css$s);
2462
2951
 
2463
- var css$o = "\n\n.fadeInBgFadeOutBg-module_backdrop__15ocl {\n position: absolute;\n height: 100%;\n}\n\n.fadeInBgFadeOutBg-module_backdropInner__sAnz6 {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInBgFadeOutBg-module_boxShadow__xUKyj,\n.fadeInBgFadeOutBg-module_backdrop__15ocl .fadeInBgFadeOutBg-module_backdropInner__sAnz6 {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgFadeOutBg-module_boxShadow-above__2bY0E,\n.fadeInBgFadeOutBg-module_backdrop-below__1rDT6 .fadeInBgFadeOutBg-module_backdropInner__sAnz6 {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInBgFadeOutBg-module_bbackdrop__25Ux-::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInBgFadeOutBg-module_bbackdrop-below__2MPgj::before {\n visibility: hidden;\n}\n";
2952
+ var css$t = "\n\n.fadeInBgFadeOutBg-module_backdrop__15ocl {\n position: absolute;\n height: 100%;\n}\n\n.fadeInBgFadeOutBg-module_backdropInner__sAnz6 {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInBgFadeOutBg-module_boxShadow__xUKyj,\n.fadeInBgFadeOutBg-module_backdrop__15ocl .fadeInBgFadeOutBg-module_backdropInner__sAnz6 {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgFadeOutBg-module_boxShadow-above__2bY0E,\n.fadeInBgFadeOutBg-module_backdrop-below__1rDT6 .fadeInBgFadeOutBg-module_backdropInner__sAnz6 {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInBgFadeOutBg-module_bbackdrop__25Ux-::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInBgFadeOutBg-module_bbackdrop-below__2MPgj::before {\n visibility: hidden;\n}\n";
2464
2953
  var fadeInBgFadeOutBg = {"fade-duration":"0.5s","backdrop":"fadeInBgFadeOutBg-module_backdrop__15ocl","backdropInner":"fadeInBgFadeOutBg-module_backdropInner__sAnz6","boxShadow":"fadeInBgFadeOutBg-module_boxShadow__xUKyj","boxShadow-above":"fadeInBgFadeOutBg-module_boxShadow-above__2bY0E","backdrop-below":"fadeInBgFadeOutBg-module_backdrop-below__1rDT6","bbackdrop":"fadeInBgFadeOutBg-module_bbackdrop__25Ux-","bbackdrop-below":"fadeInBgFadeOutBg-module_bbackdrop-below__2MPgj"};
2465
- styleInject(css$o);
2954
+ styleInject(css$t);
2466
2955
 
2467
- var css$p = "\n\n.fadeInBgScrollOut-module_backdrop__1bSsb {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n}\n\n.fadeInBgScrollOut-module_backdropInner__3JZBG {\n position: sticky;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInBgScrollOut-module_backdropInner2__q-00L {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInBgScrollOut-module_foreground__1ODH9 {\n min-height: 100vh;\n}\n\n.fadeInBgScrollOut-module_backdrop__1bSsb {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgScrollOut-module_backdrop-below__2Dbkr {\n opacity: 0;\n visibility: hidden;\n}\n";
2956
+ var css$u = "\n\n.fadeInBgScrollOut-module_backdrop__1bSsb {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n}\n\n.fadeInBgScrollOut-module_backdropInner__3JZBG {\n position: sticky;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInBgScrollOut-module_backdropInner2__q-00L {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInBgScrollOut-module_foreground__1ODH9 {\n min-height: 100vh;\n}\n\n.fadeInBgScrollOut-module_backdrop__1bSsb {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInBgScrollOut-module_backdrop-below__2Dbkr {\n opacity: 0;\n visibility: hidden;\n}\n";
2468
2957
  var fadeInBgScrollOut = {"fade-duration":"0.5s","backdrop":"fadeInBgScrollOut-module_backdrop__1bSsb","backdropInner":"fadeInBgScrollOut-module_backdropInner__3JZBG","backdropInner2":"fadeInBgScrollOut-module_backdropInner2__q-00L","foreground":"fadeInBgScrollOut-module_foreground__1ODH9","backdrop-below":"fadeInBgScrollOut-module_backdrop-below__2Dbkr"};
2469
- styleInject(css$p);
2958
+ styleInject(css$u);
2470
2959
 
2471
- var css$q = "\n\n.fadeInConceal-module_backdrop__1zaRO {\n position: absolute;\n height: 100%;\n}\n\n.fadeInConceal-module_backdropInner__1AIvq {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInConceal-module_backdrop__1zaRO,\n.fadeInConceal-module_foreground__3giM9 {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInConceal-module_backdrop-below__AWyQe,\n.fadeInConceal-module_foreground-below__2z5Op {\n opacity: 0;\n visibility: hidden;\n}\n";
2960
+ var css$v = "\n\n.fadeInConceal-module_backdrop__1zaRO {\n position: absolute;\n height: 100%;\n}\n\n.fadeInConceal-module_backdropInner__1AIvq {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInConceal-module_backdrop__1zaRO,\n.fadeInConceal-module_foreground__3giM9 {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInConceal-module_backdrop-below__AWyQe,\n.fadeInConceal-module_foreground-below__2z5Op {\n opacity: 0;\n visibility: hidden;\n}\n";
2472
2961
  var fadeInConceal = {"fade-duration":"0.5s","backdrop":"fadeInConceal-module_backdrop__1zaRO","backdropInner":"fadeInConceal-module_backdropInner__1AIvq","foreground":"fadeInConceal-module_foreground__3giM9","backdrop-below":"fadeInConceal-module_backdrop-below__AWyQe","foreground-below":"fadeInConceal-module_foreground-below__2z5Op"};
2473
- styleInject(css$q);
2962
+ styleInject(css$v);
2474
2963
 
2475
- var css$r = "\n\n.fadeInFadeOut-module_backdrop__Y4xOA {\n position: absolute;\n height: 100%;\n}\n\n.fadeInFadeOut-module_backdropInner__1oRfP {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInFadeOut-module_backdrop__Y4xOA .fadeInFadeOut-module_backdropInner__1oRfP,\n.fadeInFadeOut-module_foreground__1eleZ {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInFadeOut-module_foreground-above__249wa,\n.fadeInFadeOut-module_backdrop-below__1h2I4 .fadeInFadeOut-module_backdropInner__1oRfP,\n.fadeInFadeOut-module_foreground-below__3mE6f {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInFadeOut-module_bbackdrop__WJjFl::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInFadeOut-module_bbackdrop-below__1Htkz::before {\n visibility: hidden;\n}\n";
2964
+ var css$w = "\n\n.fadeInFadeOut-module_backdrop__Y4xOA {\n position: absolute;\n height: 100%;\n}\n\n.fadeInFadeOut-module_backdropInner__1oRfP {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInFadeOut-module_backdrop__Y4xOA .fadeInFadeOut-module_backdropInner__1oRfP,\n.fadeInFadeOut-module_foreground__1eleZ {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInFadeOut-module_foreground-above__249wa,\n.fadeInFadeOut-module_backdrop-below__1h2I4 .fadeInFadeOut-module_backdropInner__1oRfP,\n.fadeInFadeOut-module_foreground-below__3mE6f {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInFadeOut-module_bbackdrop__WJjFl::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInFadeOut-module_bbackdrop-below__1Htkz::before {\n visibility: hidden;\n}\n";
2476
2965
  var fadeInFadeOut = {"fade-duration":"0.5s","backdrop":"fadeInFadeOut-module_backdrop__Y4xOA","backdropInner":"fadeInFadeOut-module_backdropInner__1oRfP","foreground":"fadeInFadeOut-module_foreground__1eleZ","foreground-above":"fadeInFadeOut-module_foreground-above__249wa","backdrop-below":"fadeInFadeOut-module_backdrop-below__1h2I4","foreground-below":"fadeInFadeOut-module_foreground-below__3mE6f","bbackdrop":"fadeInFadeOut-module_bbackdrop__WJjFl","bbackdrop-below":"fadeInFadeOut-module_bbackdrop-below__1Htkz"};
2477
- styleInject(css$r);
2966
+ styleInject(css$w);
2478
2967
 
2479
- var css$s = "\n\n.fadeInFadeOutBg-module_backdrop__2-IF3 {\n position: absolute;\n height: 100%;\n}\n\n.fadeInFadeOutBg-module_backdropInner__3r_bo {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInFadeOutBg-module_backdrop__2-IF3 .fadeInFadeOutBg-module_backdropInner__3r_bo,\n.fadeInFadeOutBg-module_boxShadow__3x7Ki,\n.fadeInFadeOutBg-module_foreground__24f_M {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInFadeOutBg-module_backdrop-below__4Ys_2 .fadeInFadeOutBg-module_backdropInner__3r_bo,\n.fadeInFadeOutBg-module_boxShadow-above__3T2K5,\n.fadeInFadeOutBg-module_foreground-below__3pTRc {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInFadeOutBg-module_bbackdrop__MVdvw::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInFadeOutBg-module_bbackdrop-below__30mpF::before {\n visibility: hidden;\n}\n";
2968
+ var css$x = "\n\n.fadeInFadeOutBg-module_backdrop__2-IF3 {\n position: absolute;\n height: 100%;\n}\n\n.fadeInFadeOutBg-module_backdropInner__3r_bo {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n}\n\n.fadeInFadeOutBg-module_backdrop__2-IF3 .fadeInFadeOutBg-module_backdropInner__3r_bo,\n.fadeInFadeOutBg-module_boxShadow__3x7Ki,\n.fadeInFadeOutBg-module_foreground__24f_M {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInFadeOutBg-module_backdrop-below__4Ys_2 .fadeInFadeOutBg-module_backdropInner__3r_bo,\n.fadeInFadeOutBg-module_boxShadow-above__3T2K5,\n.fadeInFadeOutBg-module_foreground-below__3pTRc {\n opacity: 0;\n visibility: hidden;\n}\n\n.fadeInFadeOutBg-module_bbackdrop__MVdvw::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.fadeInFadeOutBg-module_bbackdrop-below__30mpF::before {\n visibility: hidden;\n}\n";
2480
2969
  var fadeInFadeOutBg = {"fade-duration":"0.5s","backdrop":"fadeInFadeOutBg-module_backdrop__2-IF3","backdropInner":"fadeInFadeOutBg-module_backdropInner__3r_bo","boxShadow":"fadeInFadeOutBg-module_boxShadow__3x7Ki","foreground":"fadeInFadeOutBg-module_foreground__24f_M","backdrop-below":"fadeInFadeOutBg-module_backdrop-below__4Ys_2","boxShadow-above":"fadeInFadeOutBg-module_boxShadow-above__3T2K5","foreground-below":"fadeInFadeOutBg-module_foreground-below__3pTRc","bbackdrop":"fadeInFadeOutBg-module_bbackdrop__MVdvw","bbackdrop-below":"fadeInFadeOutBg-module_bbackdrop-below__30mpF"};
2481
- styleInject(css$s);
2970
+ styleInject(css$x);
2482
2971
 
2483
- var css$t = "\n\n.fadeInScrollOut-module_backdrop__2FhBb {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n}\n\n.fadeInScrollOut-module_backdropInner__1OfNZ {\n position: sticky;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInScrollOut-module_backdropInner2__5bNPT {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInScrollOut-module_foreground__3h0EX {\n min-height: 100vh;\n}\n\n.fadeInScrollOut-module_backdrop__2FhBb,\n.fadeInScrollOut-module_foreground__3h0EX {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInScrollOut-module_backdrop-below__3cRLH,\n.fadeInScrollOut-module_foreground-below__1Jcql {\n opacity: 0;\n visibility: hidden;\n}\n";
2972
+ var css$y = "\n\n.fadeInScrollOut-module_backdrop__2FhBb {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n}\n\n.fadeInScrollOut-module_backdropInner__1OfNZ {\n position: sticky;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInScrollOut-module_backdropInner2__5bNPT {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n\n.fadeInScrollOut-module_foreground__3h0EX {\n min-height: 100vh;\n}\n\n.fadeInScrollOut-module_backdrop__2FhBb,\n.fadeInScrollOut-module_foreground__3h0EX {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.fadeInScrollOut-module_backdrop-below__3cRLH,\n.fadeInScrollOut-module_foreground-below__1Jcql {\n opacity: 0;\n visibility: hidden;\n}\n";
2484
2973
  var fadeInScrollOut = {"fade-duration":"0.5s","backdrop":"fadeInScrollOut-module_backdrop__2FhBb","backdropInner":"fadeInScrollOut-module_backdropInner__1OfNZ","backdropInner2":"fadeInScrollOut-module_backdropInner2__5bNPT","foreground":"fadeInScrollOut-module_foreground__3h0EX","backdrop-below":"fadeInScrollOut-module_backdrop-below__3cRLH","foreground-below":"fadeInScrollOut-module_foreground-below__1Jcql"};
2485
- styleInject(css$t);
2974
+ styleInject(css$y);
2486
2975
 
2487
- var css$u = ".revealConceal-module_backdrop__dLUhU {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n height: 100%;\n}\n\n.revealConceal-module_backdropInner__2k1Z- {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n";
2976
+ var css$z = ".revealConceal-module_backdrop__dLUhU {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n height: 100%;\n}\n\n.revealConceal-module_backdropInner__2k1Z- {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n";
2488
2977
  var revealConceal = {"backdrop":"revealConceal-module_backdrop__dLUhU","backdropInner":"revealConceal-module_backdropInner__2k1Z-"};
2489
- styleInject(css$u);
2978
+ styleInject(css$z);
2490
2979
 
2491
- var css$v = "\n\n.revealFadeOut-module_backdrop___Q1QF {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n height: 200%;\n}\n\n.revealFadeOut-module_backdropInner__17qRn {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n\n.revealFadeOut-module_foreground__1GzBs {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.revealFadeOut-module_foreground-above__3GxOf {\n opacity: 0;\n visibility: hidden;\n}\n";
2980
+ var css$A = "\n\n.revealFadeOut-module_backdrop___Q1QF {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n height: 200%;\n}\n\n.revealFadeOut-module_backdropInner__17qRn {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n\n.revealFadeOut-module_foreground__1GzBs {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.revealFadeOut-module_foreground-above__3GxOf {\n opacity: 0;\n visibility: hidden;\n}\n";
2492
2981
  var revealFadeOut = {"fade-duration":"0.5s","backdrop":"revealFadeOut-module_backdrop___Q1QF","backdropInner":"revealFadeOut-module_backdropInner__17qRn","foreground":"revealFadeOut-module_foreground__1GzBs","foreground-above":"revealFadeOut-module_foreground-above__3GxOf"};
2493
- styleInject(css$v);
2982
+ styleInject(css$A);
2494
2983
 
2495
- var css$w = "\n\n.revealFadeOutBg-module_backdrop__30OCF {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n height: 200%;\n}\n\n.revealFadeOutBg-module_backdropInner__3v3tM {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n\n.revealFadeOutBg-module_boxShadow__1NZRz {\n transition: opacity 1s ease, visibility 1s;\n}\n\n.revealFadeOutBg-module_boxShadow-above__2r4ov {\n opacity: 0;\n visibility: hidden;\n}\n";
2984
+ var css$B = "\n\n.revealFadeOutBg-module_backdrop__30OCF {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n height: 200%;\n}\n\n.revealFadeOutBg-module_backdropInner__3v3tM {\n position: fixed;\n top: 0;\n height: 100vh;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n\n.revealFadeOutBg-module_boxShadow__1NZRz {\n transition: opacity 1s ease, visibility 1s;\n}\n\n.revealFadeOutBg-module_boxShadow-above__2r4ov {\n opacity: 0;\n visibility: hidden;\n}\n";
2496
2985
  var revealFadeOutBg = {"fade-duration":"0.5s","backdrop":"revealFadeOutBg-module_backdrop__30OCF","backdropInner":"revealFadeOutBg-module_backdropInner__3v3tM","boxShadow":"revealFadeOutBg-module_boxShadow__1NZRz","boxShadow-above":"revealFadeOutBg-module_boxShadow-above__2r4ov"};
2497
- styleInject(css$w);
2986
+ styleInject(css$B);
2498
2987
 
2499
- var css$x = ".revealScrollOut-module_backdrop__2yOXd {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n}\n\n.revealScrollOut-module_backdropInner__211p3 {\n position: sticky;\n bottom: 0;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n\n.revealScrollOut-module_backdropInner2__v6WqM {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n\n.revealScrollOut-module_foreground__3z-hw {\n}\n";
2988
+ var css$C = ".revealScrollOut-module_backdrop__2yOXd {\n position: absolute;\n clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);\n top: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n}\n\n.revealScrollOut-module_backdropInner__211p3 {\n position: sticky;\n bottom: 0;\n width: 100%;\n\n transform: translateZ(0);\n backface-visibility: hidden;\n}\n\n.revealScrollOut-module_backdropInner2__v6WqM {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n\n.revealScrollOut-module_foreground__3z-hw {\n}\n";
2500
2989
  var revealScrollOut = {"backdrop":"revealScrollOut-module_backdrop__2yOXd","backdropInner":"revealScrollOut-module_backdropInner__211p3","backdropInner2":"revealScrollOut-module_backdropInner2__v6WqM","foreground":"revealScrollOut-module_foreground__3z-hw"};
2501
- styleInject(css$x);
2990
+ styleInject(css$C);
2502
2991
 
2503
- var css$y = ".scrollInConceal-module_backdrop__2OJJC {\n position: sticky;\n top: 0;\n height: 0;\n}\n";
2992
+ var css$D = ".scrollInConceal-module_backdrop__2OJJC {\n position: sticky;\n top: 0;\n height: 0;\n}\n";
2504
2993
  var scrollInConceal = {"backdrop":"scrollInConceal-module_backdrop__2OJJC"};
2505
- styleInject(css$y);
2994
+ styleInject(css$D);
2506
2995
 
2507
- var css$z = "\n\n.scrollInFadeOut-module_backdrop__1vXJd {\n position: sticky;\n top: 0;\n height: 0;\n}\n\n.scrollInFadeOut-module_foreground__3Ikxb {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.scrollInFadeOut-module_foreground-above__6ipm- {\n opacity: 0;\n visibility: hidden;\n}\n\n.scrollInFadeOut-module_bbackdrop__2C-bf::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.scrollInFadeOut-module_bbackdrop-below__3tq0M::before {\n visibility: hidden;\n}\n";
2996
+ var css$E = "\n\n.scrollInFadeOut-module_backdrop__1vXJd {\n position: sticky;\n top: 0;\n height: 0;\n}\n\n.scrollInFadeOut-module_foreground__3Ikxb {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.scrollInFadeOut-module_foreground-above__6ipm- {\n opacity: 0;\n visibility: hidden;\n}\n\n.scrollInFadeOut-module_bbackdrop__2C-bf::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.scrollInFadeOut-module_bbackdrop-below__3tq0M::before {\n visibility: hidden;\n}\n";
2508
2997
  var scrollInFadeOut = {"fade-duration":"0.5s","backdrop":"scrollInFadeOut-module_backdrop__1vXJd","foreground":"scrollInFadeOut-module_foreground__3Ikxb","foreground-above":"scrollInFadeOut-module_foreground-above__6ipm-","bbackdrop":"scrollInFadeOut-module_bbackdrop__2C-bf","bbackdrop-below":"scrollInFadeOut-module_bbackdrop-below__3tq0M"};
2509
- styleInject(css$z);
2998
+ styleInject(css$E);
2510
2999
 
2511
- var css$A = "\n\n.scrollInFadeOutBg-module_backdrop__zw95c {\n position: sticky;\n top: 0;\n height: 0;\n}\n\n.scrollInFadeOutBg-module_boxShadow__3UxCQ {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.scrollInFadeOutBg-module_boxShadow-above__3kfau {\n opacity: 0;\n visibility: hidden;\n}\n\n.scrollInFadeOutBg-module_bbackdrop__2pO9o::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.scrollInFadeOutBg-module_bbackdrop-below__1Ky2w::before {\n visibility: hidden;\n}\n";
3000
+ var css$F = "\n\n.scrollInFadeOutBg-module_backdrop__zw95c {\n position: sticky;\n top: 0;\n height: 0;\n}\n\n.scrollInFadeOutBg-module_boxShadow__3UxCQ {\n transition: opacity 0.5s ease, visibility 0.5s;\n}\n\n.scrollInFadeOutBg-module_boxShadow-above__3kfau {\n opacity: 0;\n visibility: hidden;\n}\n\n.scrollInFadeOutBg-module_bbackdrop__2pO9o::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n background-color: #000;\n}\n\n.scrollInFadeOutBg-module_bbackdrop-below__1Ky2w::before {\n visibility: hidden;\n}\n";
2512
3001
  var scrollInFadeOutBg = {"fade-duration":"0.5s","backdrop":"scrollInFadeOutBg-module_backdrop__zw95c","boxShadow":"scrollInFadeOutBg-module_boxShadow__3UxCQ","boxShadow-above":"scrollInFadeOutBg-module_boxShadow-above__3kfau","bbackdrop":"scrollInFadeOutBg-module_bbackdrop__2pO9o","bbackdrop-below":"scrollInFadeOutBg-module_bbackdrop-below__1Ky2w"};
2513
- styleInject(css$A);
3002
+ styleInject(css$F);
2514
3003
 
2515
- var css$B = ".scrollInScrollOut-module_backdrop__XzCge {\n position: sticky;\n top: 0;\n height: 100vh;\n}\n\n.scrollInScrollOut-module_foreground__1yyY8 {\n margin-top: -100vh;\n}\n";
3004
+ var css$G = ".scrollInScrollOut-module_backdrop__XzCge {\n position: sticky;\n top: 0;\n height: 100vh;\n}\n\n.scrollInScrollOut-module_foreground__1yyY8 {\n margin-top: -100vh;\n}\n";
2516
3005
  var scrollInScrollOut = {"backdrop":"scrollInScrollOut-module_backdrop__XzCge","foreground":"scrollInScrollOut-module_foreground__1yyY8"};
2517
- styleInject(css$B);
3006
+ styleInject(css$G);
3007
+
3008
+ var css$H = ".previewScrollOut-module_scene__W9bDl {\n height: 100%;\n}\n\n.previewScrollOut-module_backdrop__2-Bl_ {\n position: absolute;\n top: 0;\n}\n";
3009
+ var previewScrollOut = {"scene":"previewScrollOut-module_scene__W9bDl","backdrop":"previewScrollOut-module_backdrop__2-Bl_"};
3010
+ styleInject(css$H);
2518
3011
 
2519
- var styles$l = {
3012
+ var styles$q = {
2520
3013
  fadeInBgConceal: fadeInBgConceal,
2521
3014
  fadeInBgFadeOut: fadeInBgFadeOut,
2522
3015
  fadeInBgFadeOutBg: fadeInBgFadeOutBg,
@@ -2532,7 +3025,8 @@ var styles$l = {
2532
3025
  scrollInConceal: scrollInConceal,
2533
3026
  scrollInFadeOut: scrollInFadeOut,
2534
3027
  scrollInFadeOutBg: scrollInFadeOutBg,
2535
- scrollInScrollOut: scrollInScrollOut
3028
+ scrollInScrollOut: scrollInScrollOut,
3029
+ previewScrollOut: previewScrollOut
2536
3030
  };
2537
3031
  var enterTransitions = {
2538
3032
  fade: 'fadeIn',
@@ -2540,7 +3034,8 @@ var enterTransitions = {
2540
3034
  scroll: 'scrollIn',
2541
3035
  scrollOver: 'scrollIn',
2542
3036
  reveal: 'reveal',
2543
- beforeAfter: 'reveal'
3037
+ beforeAfter: 'reveal',
3038
+ preview: 'preview'
2544
3039
  };
2545
3040
  var exitTransitions = {
2546
3041
  fade: 'fadeOut',
@@ -2555,11 +3050,11 @@ function getTransitionStyles(section, previousSection, nextSection) {
2555
3050
  var exitTransition = exitTransitions[nextSection ? nextSection.transition : 'scroll'];
2556
3051
  var name = "".concat(enterTransition).concat(capitalize(exitTransition));
2557
3052
 
2558
- if (!styles$l[name]) {
3053
+ if (!styles$q[name]) {
2559
3054
  throw new Error("Unknown transition ".concat(name));
2560
3055
  }
2561
3056
 
2562
- return styles$l[name];
3057
+ return styles$q[name];
2563
3058
  }
2564
3059
 
2565
3060
  function capitalize(string) {
@@ -2570,18 +3065,18 @@ function NoOpShadow(props) {
2570
3065
  return React.createElement("div", null, props.children);
2571
3066
  }
2572
3067
 
2573
- var css$C = ".GradientShadow-module_shadow__2UiDH {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n z-index: 1;\n transition: opacity 1s ease;\n}\n\n.GradientShadow-module_align-right__3iXZs .GradientShadow-module_shadow__2UiDH,\n.GradientShadow-module_align-left__3qcNM .GradientShadow-module_shadow__2UiDH {\n background: linear-gradient(to right, #000 0%,rgba(0, 0, 0, 0) 100%);\n}\n\n@media (min-width: 950px) {\n .GradientShadow-module_align-right__3iXZs .GradientShadow-module_shadow__2UiDH {\n background: linear-gradient(to left, #000 0%,rgba(0, 0, 0, 0) 100%);\n }\n}\n\n.GradientShadow-module_intersecting__h6vpz .GradientShadow-module_shadow__2UiDH,\n.GradientShadow-module_align-center__2C7cl .GradientShadow-module_shadow__2UiDH {\n background: #000;\n}\n";
2574
- var styles$m = {"shadow":"GradientShadow-module_shadow__2UiDH","align-right":"GradientShadow-module_align-right__3iXZs","align-left":"GradientShadow-module_align-left__3qcNM","intersecting":"GradientShadow-module_intersecting__h6vpz","align-center":"GradientShadow-module_align-center__2C7cl"};
2575
- styleInject(css$C);
3068
+ var css$I = ".GradientShadow-module_shadow__2UiDH {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n z-index: 1;\n transition: opacity 1s ease;\n}\n\n.GradientShadow-module_align-right__3iXZs .GradientShadow-module_shadow__2UiDH,\n.GradientShadow-module_align-left__3qcNM .GradientShadow-module_shadow__2UiDH {\n background: linear-gradient(to right, #000 0%,rgba(0, 0, 0, 0) 100%);\n}\n\n@media (min-width: 950px) {\n .GradientShadow-module_align-right__3iXZs .GradientShadow-module_shadow__2UiDH {\n background: linear-gradient(to left, #000 0%,rgba(0, 0, 0, 0) 100%);\n }\n}\n\n.GradientShadow-module_intersecting__h6vpz .GradientShadow-module_shadow__2UiDH,\n.GradientShadow-module_align-center__2C7cl .GradientShadow-module_shadow__2UiDH {\n background: #000;\n}\n";
3069
+ var styles$r = {"shadow":"GradientShadow-module_shadow__2UiDH","align-right":"GradientShadow-module_align-right__3iXZs","align-left":"GradientShadow-module_align-left__3qcNM","intersecting":"GradientShadow-module_intersecting__h6vpz","align-center":"GradientShadow-module_align-center__2C7cl"};
3070
+ styleInject(css$I);
2576
3071
 
2577
3072
  function GradientShadow(props) {
2578
3073
  var maxOpacityOverlap = props.motifAreaRect.height / 2;
2579
3074
  var motifAreaOverlap = Math.min(maxOpacityOverlap, props.motifAreaRect.bottom - props.contentAreaRect.top);
2580
3075
  var opacityFactor = props.intersecting && props.motifAreaRect.height > 0 ? motifAreaOverlap / maxOpacityOverlap : 1;
2581
3076
  return React.createElement("div", {
2582
- className: classnames(styles$m.root, styles$m["align-".concat(props.align)], _defineProperty({}, styles$m.intersecting, props.intersecting))
3077
+ className: classnames(styles$r.root, styles$r["align-".concat(props.align)], _defineProperty({}, styles$r.intersecting, props.intersecting))
2583
3078
  }, React.createElement("div", {
2584
- className: styles$m.shadow,
3079
+ className: styles$r.shadow,
2585
3080
  style: {
2586
3081
  opacity: props.opacity * Math.round(opacityFactor * 10) / 10
2587
3082
  }
@@ -2596,38 +3091,38 @@ function NoOpBoxWrapper(props) {
2596
3091
  return React.createElement("div", null, props.children);
2597
3092
  }
2598
3093
 
2599
- var css$D = ".GradientBox-module_wrapper__1Jj7N {\n padding-bottom: 50px;\n}\n\n.GradientBox-module_shadow__2XilX {\n --background: rgba(0, 0, 0, 0.7);\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n pointer-events: none;\n}\n\n.GradientBox-module_long__10s6v .GradientBox-module_shadow__2XilX {\n bottom: -100vh;\n}\n\n.GradientBox-module_gradient__31tJ- {\n text-shadow: 0px 1px 5px black;\n}\n\n.GradientBox-module_gradient__31tJ- .GradientBox-module_shadow__2XilX {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0px,rgba(0, 0, 0, 0.3) 100px,rgba(0, 0, 0, 0.3) 100%);\n}\n\n.GradientBox-module_content__96lDk {\n position: relative;\n}\n";
2600
- var styles$n = {"wrapper":"GradientBox-module_wrapper__1Jj7N","shadow":"GradientBox-module_shadow__2XilX","long":"GradientBox-module_long__10s6v","gradient":"GradientBox-module_gradient__31tJ-","content":"GradientBox-module_content__96lDk"};
2601
- styleInject(css$D);
3094
+ var css$J = ".GradientBox-module_wrapper__1Jj7N {\n padding-bottom: 50px;\n}\n\n.GradientBox-module_shadow__2XilX {\n --background: rgba(0, 0, 0, 0.7);\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n pointer-events: none;\n}\n\n.GradientBox-module_long__10s6v .GradientBox-module_shadow__2XilX {\n bottom: -100vh;\n}\n\n.GradientBox-module_gradient__31tJ- {\n text-shadow: 0px 1px 5px black;\n}\n\n.GradientBox-module_gradient__31tJ- .GradientBox-module_shadow__2XilX {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0px,rgba(0, 0, 0, 0.3) 100px,rgba(0, 0, 0, 0.3) 100%);\n}\n\n.GradientBox-module_content__96lDk {\n position: relative;\n}\n";
3095
+ var styles$s = {"wrapper":"GradientBox-module_wrapper__1Jj7N","shadow":"GradientBox-module_shadow__2XilX","long":"GradientBox-module_long__10s6v","gradient":"GradientBox-module_gradient__31tJ-","content":"GradientBox-module_content__96lDk"};
3096
+ styleInject(css$J);
2602
3097
 
2603
3098
  function GradientBox(props) {
2604
3099
  var _classNames;
2605
3100
 
2606
3101
  var padding = props.active ? props.padding : 0;
2607
3102
  return React.createElement("div", {
2608
- className: classnames(styles$n.root, (_classNames = {}, _defineProperty(_classNames, styles$n.gradient, padding > 0), _defineProperty(_classNames, styles$n["long"], props.coverInvisibleNextSection), _classNames)),
3103
+ className: classnames(styles$s.root, (_classNames = {}, _defineProperty(_classNames, styles$s.gradient, padding > 0), _defineProperty(_classNames, styles$s["long"], props.coverInvisibleNextSection), _classNames)),
2609
3104
  style: {
2610
3105
  paddingTop: padding
2611
3106
  }
2612
3107
  }, React.createElement("div", {
2613
- className: styles$n.wrapper
3108
+ className: styles$s.wrapper
2614
3109
  }, React.createElement("div", {
2615
- className: classnames(styles$n.shadow, props.transitionStyles.boxShadow, props.transitionStyles["boxShadow-".concat(props.state)]),
3110
+ className: classnames(styles$s.shadow, props.transitionStyles.boxShadow, props.transitionStyles["boxShadow-".concat(props.state)]),
2616
3111
  style: {
2617
3112
  top: padding,
2618
3113
  opacity: props.opacity
2619
3114
  }
2620
3115
  }), React.createElement("div", {
2621
- className: styles$n.content
3116
+ className: styles$s.content
2622
3117
  }, props.children)));
2623
3118
  }
2624
3119
  GradientBox.defaultProps = {
2625
3120
  opacity: 1
2626
3121
  };
2627
3122
 
2628
- var css$E = ".CardBox-module_wrapper__3vnaH {\n}\n\n.CardBox-module_content__36v7J {\n position: relative;\n}\n";
2629
- var styles$o = {"wrapper":"CardBox-module_wrapper__3vnaH","content":"CardBox-module_content__36v7J"};
2630
- styleInject(css$E);
3123
+ var css$K = ".CardBox-module_wrapper__3vnaH {\n}\n\n.CardBox-module_content__36v7J {\n position: relative;\n}\n";
3124
+ var styles$t = {"wrapper":"CardBox-module_wrapper__3vnaH","content":"CardBox-module_content__36v7J"};
3125
+ styleInject(css$K);
2631
3126
 
2632
3127
  function CardBox(props) {
2633
3128
  var padding = props.active ? props.padding : 0;
@@ -2636,23 +3131,23 @@ function CardBox(props) {
2636
3131
  paddingTop: padding
2637
3132
  }
2638
3133
  }, React.createElement("div", {
2639
- className: styles$o.wrapper
3134
+ className: styles$t.wrapper
2640
3135
  }, React.createElement("div", {
2641
3136
  style: {
2642
3137
  top: padding
2643
3138
  }
2644
3139
  }), React.createElement("div", {
2645
- className: styles$o.content
3140
+ className: styles$t.content
2646
3141
  }, props.children)));
2647
3142
  }
2648
3143
 
2649
- var css$F = ".CardBoxWrapper-module_cardBg__154o2 {\n background: white;\n color: black;\n padding: 4%;\n margin: 0 -4% 50px 0;\n border-radius: 15px;\n opacity: 1;\n}\n";
2650
- var styles$p = {"cardBg":"CardBoxWrapper-module_cardBg__154o2"};
2651
- styleInject(css$F);
3144
+ var css$L = ".CardBoxWrapper-module_cardBg__154o2 {\n background: white;\n color: black;\n padding: 4%;\n margin: 0 -4% 50px 0;\n border-radius: 15px;\n opacity: 1;\n}\n";
3145
+ var styles$u = {"cardBg":"CardBoxWrapper-module_cardBg__154o2"};
3146
+ styleInject(css$L);
2652
3147
 
2653
3148
  function CardBoxWrapper(props) {
2654
3149
  return React.createElement("div", {
2655
- className: styles$p.cardBg
3150
+ className: styles$u.cardBg
2656
3151
  }, props.children);
2657
3152
  }
2658
3153
 
@@ -2716,11 +3211,12 @@ function Section(props) {
2716
3211
  var Box = appearance.foreground;
2717
3212
  var BoxWrapper = appearance.foregroundWrapper;
2718
3213
  return React.createElement("section", {
3214
+ id: "section-".concat(props.permaId),
2719
3215
  ref: ref,
2720
- className: classnames(styles$k.Section, transitionStyles.section, _defineProperty({}, styles$k.invert, props.invert))
3216
+ className: classnames(styles$p.Section, transitionStyles.section, _defineProperty({}, styles$p.invert, props.invert))
2721
3217
  }, React.createElement("div", {
2722
3218
  ref: activityProbeRef,
2723
- className: styles$k.activityProbe
3219
+ className: styles$p.activityProbe
2724
3220
  }), React.createElement(Backdrop, Object.assign({}, props.backdrop, {
2725
3221
  motifAreaRef: setMotifAreaRefs,
2726
3222
  onScreen: onScreen,
@@ -2804,15 +3300,15 @@ function renderSections(sections, currentSectionIndex, setCurrentSectionIndex, s
2804
3300
  });
2805
3301
  }
2806
3302
 
2807
- var css$G = "\n\n.Entry-module_Entry__1nDGh {\n font-family: 'Source Sans Pro', sans-serif;\n background-color: #000;\n color: #fff;\n}\n\n.Entry-module_exampleSelect__1uAJs {\n position: absolute;\n top: 5px;\n left: 50%;\n z-index: 10;\n transform: translateX(-50%);\n}\n";
2808
- var styles$q = {"font-sans":"'Source Sans Pro', sans-serif","Entry":"Entry-module_Entry__1nDGh","exampleSelect":"Entry-module_exampleSelect__1uAJs"};
2809
- styleInject(css$G);
3303
+ var css$M = "\n\n.Entry-module_Entry__1nDGh {\n font-family: 'Source Sans Pro', sans-serif;\n background-color: #000;\n color: #fff;\n}\n\n.Entry-module_exampleSelect__1uAJs {\n position: absolute;\n top: 5px;\n left: 50%;\n z-index: 10;\n transform: translateX(-50%);\n}\n";
3304
+ var styles$v = {"font-sans":"'Source Sans Pro', sans-serif","Entry":"Entry-module_Entry__1nDGh","exampleSelect":"Entry-module_exampleSelect__1uAJs"};
3305
+ styleInject(css$M);
2810
3306
 
2811
3307
  function Entry(props) {
2812
3308
  var _useState = useState(0),
2813
3309
  _useState2 = _slicedToArray(_useState, 2),
2814
3310
  currentSectionIndex = _useState2[0],
2815
- setCurrentSectionIndex = _useState2[1];
3311
+ setCurrentSectionIndexState = _useState2[1];
2816
3312
 
2817
3313
  var _useState3 = useState(null),
2818
3314
  _useState4 = _slicedToArray(_useState3, 2),
@@ -2826,6 +3322,18 @@ function Entry(props) {
2826
3322
 
2827
3323
  var dispatch = useEntryStateDispatch();
2828
3324
  var entryStructure = useEntryStructure();
3325
+ var setCurrentSectionIndex = useCallback(function (index) {
3326
+ if (window.parent) {
3327
+ window.parent.postMessage({
3328
+ type: 'CHANGE_SECTION',
3329
+ payload: {
3330
+ index: index
3331
+ }
3332
+ }, window.location.origin);
3333
+ }
3334
+
3335
+ setCurrentSectionIndexState(index);
3336
+ }, [setCurrentSectionIndexState]);
2829
3337
  useEffect(function () {
2830
3338
  if (window.parent) {
2831
3339
  window.addEventListener('message', receive);
@@ -2839,8 +3347,12 @@ function Entry(props) {
2839
3347
  };
2840
3348
 
2841
3349
  function receive(message) {
2842
- if (window.location.href.indexOf(message.origin) === 0 && message.data.type === 'ACTION') {
2843
- dispatch(message.data.payload);
3350
+ if (window.location.href.indexOf(message.origin) === 0) {
3351
+ if (message.data.type === 'ACTION') {
3352
+ dispatch(message.data.payload);
3353
+ } else if (message.data.type === 'SCROLL_TO_SECTION') {
3354
+ setScrollTargetSectionIndex(message.data.payload.index);
3355
+ }
2844
3356
  }
2845
3357
  }
2846
3358
  }, [dispatch]);
@@ -2854,7 +3366,7 @@ function Entry(props) {
2854
3366
  }
2855
3367
 
2856
3368
  return React.createElement("div", {
2857
- className: styles$q.Entry
3369
+ className: styles$v.Entry
2858
3370
  }, React.createElement(MutedContext.Provider, {
2859
3371
  value: {
2860
3372
  muted: muted,
@@ -2879,8 +3391,8 @@ function renderChapters(entryStructure, currentSectionIndex, setCurrentSectionIn
2879
3391
  });
2880
3392
  }
2881
3393
 
2882
- var css$H = "body {\n margin: 0;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n";
2883
- styleInject(css$H);
3394
+ var css$N = "body {\n margin: 0;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n";
3395
+ styleInject(css$N);
2884
3396
 
2885
3397
  function Root() {
2886
3398
  return React.createElement(React.Fragment, null, React.createElement(EntryStateProvider, {