pageflow 15.8.0 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -130
  3. data/admins/pageflow/accounts.rb +12 -16
  4. data/admins/pageflow/entry.rb +28 -25
  5. data/admins/pageflow/entry_templates.rb +5 -7
  6. data/admins/pageflow/sites.rb +50 -0
  7. data/app/assets/javascripts/pageflow/admin/entries.js +16 -7
  8. data/app/controllers/pageflow/entries_controller.rb +2 -2
  9. data/app/helpers/pageflow/admin/permalinks_helper.rb +2 -2
  10. data/app/helpers/pageflow/common_entry_seed_helper.rb +1 -1
  11. data/app/helpers/pageflow/embed_code_helper.rb +1 -1
  12. data/app/helpers/pageflow/entries_helper.rb +15 -15
  13. data/app/helpers/pageflow/sites_helper.rb +11 -0
  14. data/app/helpers/pageflow/social_share_helper.rb +2 -2
  15. data/app/models/pageflow/account.rb +7 -33
  16. data/app/models/pageflow/{cname_theming_request_scope.rb → cname_site_request_scope.rb} +3 -3
  17. data/app/models/pageflow/customized_theme.rb +1 -1
  18. data/app/models/pageflow/entry.rb +3 -4
  19. data/app/models/pageflow/entry_at_revision.rb +2 -2
  20. data/app/models/pageflow/entry_duplicate.rb +1 -1
  21. data/app/models/pageflow/entry_template.rb +4 -4
  22. data/app/models/pageflow/home_button.rb +7 -7
  23. data/app/models/pageflow/permalink.rb +3 -3
  24. data/app/models/pageflow/permalink_directory.rb +2 -2
  25. data/app/models/pageflow/published_entry.rb +2 -2
  26. data/app/models/pageflow/site.rb +59 -0
  27. data/app/models/pageflow/theme_customization.rb +1 -1
  28. data/app/policies/pageflow/account_policy.rb +2 -2
  29. data/app/policies/pageflow/entry_policy.rb +2 -2
  30. data/app/policies/pageflow/entry_template_policy.rb +1 -1
  31. data/app/policies/pageflow/{theming_policy.rb → site_policy.rb} +13 -11
  32. data/app/views/admin/accounts/_entry_template_details.html.arb +1 -1
  33. data/app/views/admin/accounts/_form.html.erb +4 -22
  34. data/app/views/admin/accounts/_site_defaults_inline_help.html.erb +5 -0
  35. data/app/views/admin/entries/_form.html.erb +4 -13
  36. data/app/views/admin/entries/_permalink_inputs.html.erb +2 -2
  37. data/app/views/admin/entries/_site_input.html.erb +15 -0
  38. data/app/views/admin/entries/{entry_type_name_input.html.erb → entry_site_and_type_name_input.html.erb} +3 -0
  39. data/app/views/admin/entry_templates/_form.html.erb +5 -5
  40. data/app/views/admin/sites/_attributes_table.html.arb +9 -0
  41. data/app/views/admin/sites/_fields.html.erb +17 -0
  42. data/app/views/admin/sites/_form.html.erb +5 -0
  43. data/app/views/components/pageflow/admin/entries_tab.rb +1 -2
  44. data/app/views/components/pageflow/admin/entry_templates_tab.rb +10 -11
  45. data/app/views/components/pageflow/admin/features_tab.rb +1 -1
  46. data/app/views/components/pageflow/admin/sites_tab.rb +32 -0
  47. data/app/views/components/pageflow/admin/users_tab.rb +1 -2
  48. data/app/views/pageflow/editor/entries/seed.json.erb +1 -1
  49. data/app/views/pageflow/editor/sites/_site.json.jbuilder +1 -0
  50. data/app/views/pageflow/entries/{_theming.css.erb → _site.css.erb} +0 -0
  51. data/app/views/pageflow/entries/stylesheet.css.erb +1 -1
  52. data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +1 -1
  53. data/app/views/pageflow/social_share/_page_meta_tags.html.erb +1 -1
  54. data/config/initializers/admin_resource_tabs.rb +29 -12
  55. data/config/locales/de.yml +19 -17
  56. data/config/locales/en.yml +19 -17
  57. data/db/migrate/20221215101134_rename_theming_to_site.rb +9 -0
  58. data/db/migrate/20221215120856_associate_entry_templates_with_sites.rb +34 -0
  59. data/db/migrate/20221219203023_add_name_to_sites.rb +5 -0
  60. data/db/migrate/20230103155934_associate_theme_customizations_with_sites.rb +27 -0
  61. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +10 -10
  62. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +5 -5
  63. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +1 -1
  64. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
  65. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +5 -5
  66. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +1 -1
  67. data/entry_types/scrolled/package/frontend/{EditableInlineText.module-c6672f27.js → EditableInlineText.module-14c7b097.js} +2 -2
  68. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-22e65f92.js → PhonePlatformContext-f6093cc6.js} +47 -219
  69. data/entry_types/scrolled/package/frontend/{Viewer-6b05522f.js → Viewer-b6becc57.js} +2 -2
  70. data/entry_types/scrolled/package/frontend/{arrowRight-7e3d9dd5.js → arrowRight-78a7cee4.js} +1 -1
  71. data/entry_types/scrolled/package/frontend/{components-487daafa.js → components-b3160dd7.js} +2 -2
  72. data/entry_types/scrolled/package/frontend/index.css +1 -1
  73. data/entry_types/scrolled/package/frontend/index.js +195 -12
  74. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  75. data/entry_types/scrolled/package/widgets/defaultNavigation.js +16 -9
  76. data/lib/pageflow/ability_mixin.rb +16 -8
  77. data/lib/pageflow/admin/attributes_table_rows.rb +1 -1
  78. data/lib/pageflow/admin/form_inputs.rb +1 -1
  79. data/lib/pageflow/admin/tabs.rb +1 -1
  80. data/lib/pageflow/configuration/permissions.rb +3 -3
  81. data/lib/pageflow/configuration.rb +17 -17
  82. data/lib/pageflow/entry_export_import/entry_serialization.rb +1 -1
  83. data/lib/pageflow/primary_domain_entry_redirect.rb +7 -7
  84. data/lib/pageflow/seeds.rb +10 -10
  85. data/lib/pageflow/theme_customizations.rb +10 -10
  86. data/lib/pageflow/version.rb +1 -1
  87. data/package/editor.js +7 -7
  88. data/spec/factories/accounts.rb +5 -2
  89. data/spec/factories/draft_entries.rb +2 -2
  90. data/spec/factories/entries.rb +2 -2
  91. data/spec/factories/entry_templates.rb +1 -1
  92. data/spec/factories/permalink_directory.rb +1 -1
  93. data/spec/factories/published_entries.rb +2 -2
  94. data/spec/factories/sites.rb +9 -0
  95. metadata +27 -18
  96. data/app/helpers/pageflow/themings_helper.rb +0 -11
  97. data/app/models/pageflow/theming.rb +0 -30
  98. data/app/views/admin/accounts/_theming_defaults_inline_help.html.erb +0 -5
  99. data/app/views/admin/accounts/_theming_details.html.arb +0 -5
  100. data/app/views/pageflow/editor/themings/_theming.json.jbuilder +0 -1
  101. data/spec/factories/themings.rb +0 -7
@@ -14,14 +14,14 @@ json.config do
14
14
  json.default_file_rights entry.account.default_file_rights
15
15
 
16
16
  json.legal_info do
17
- theming = entry.theming
17
+ site = entry.site
18
18
  json.imprint do
19
- json.label raw(theming.imprint_link_label)
20
- json.url theming.imprint_link_url
19
+ json.label raw(site.imprint_link_label)
20
+ json.url site.imprint_link_url
21
21
  end
22
22
  json.copyright do
23
- json.label raw(theming.copyright_link_label)
24
- json.url theming.copyright_link_url
23
+ json.label raw(site.copyright_link_label)
24
+ json.url site.copyright_link_url
25
25
  end
26
26
  json.privacy do
27
27
  json.label I18n.t('pageflow.public.privacy_notice')
@@ -42,7 +42,7 @@ module PageflowScrolled
42
42
  :video_files,
43
43
  :audio_files,
44
44
  :text_track_files)) do |created_entry|
45
- created_entry.theming = attributes.fetch(:account).default_theming
45
+ created_entry.site = attributes.fetch(:account).default_site
46
46
 
47
47
  say_creating_scrolled_entry(created_entry)
48
48
  yield(created_entry) if block_given?
@@ -1,7 +1,7 @@
1
1
  import regeneratorRuntime from 'regenerator-runtime';
2
2
  import { events, browser, documentHiddenState, PlayerSourceIDMap, media, MultiPlayer, settings, consent } from 'pageflow/frontend';
3
3
  import React, { useReducer, useState, useLayoutEffect, useEffect, useRef, createContext, useContext, useMemo, useCallback } from 'react';
4
- import { _ as _objectWithoutProperties, u as useI18n, a as _objectSpread2, b as _defineProperty, c as _slicedToArray, d as useLocale, e as useLegalInfo, f as useTheme, g as useEntryMetadata, h as useNestedFiles, i as useFile, j as _toConsumableArray, k as useSectionContentElements, l as useAdditionalSeedData, m as useSectionsWithChapter, n as useBrowserFeature, P as PhonePlatformContext, B as BrowserFeaturesProvider, E as EntryStateProvider, L as LocaleProvider, o as useEntryStateDispatch, p as useSection, q as useChapter } from './PhonePlatformContext-22e65f92.js';
4
+ import { _ as _objectWithoutProperties, u as useI18n, a as _objectSpread2, b as _defineProperty, c as _slicedToArray, d as useLocale, e as useLegalInfo, f as useTheme, g as useEntryMetadata, h as useNestedFiles, i as useFile, j as _toConsumableArray, k as useSectionContentElements, l as useAdditionalSeedData, m as useSectionsWithChapter, n as useBrowserFeature, P as PhonePlatformContext, B as BrowserFeaturesProvider, E as EntryStateProvider, L as LocaleProvider, o as useEntryStateDispatch, p as useSection, q as useChapter } from './PhonePlatformContext-f6093cc6.js';
5
5
  import I18n from 'i18n-js';
6
6
  import classNames from 'classnames';
7
7
  import { _ as _createClass, a as _classCallCheck, b as _inherits, c as _createSuper } from './createSuper-d0f30da3.js';
@@ -2472,7 +2472,7 @@ var api = {
2472
2472
  // file with an empty one, but found out that extracting the import
2473
2473
  // to a separate file apparently is enough.
2474
2474
  function importComponents() {
2475
- return import('./components-487daafa.js');
2475
+ return import('./components-b3160dd7.js');
2476
2476
  }
2477
2477
 
2478
2478
  var components = {};
@@ -347,217 +347,11 @@ function useEntryMetadata() {
347
347
  }, [entries]);
348
348
  }
349
349
 
350
- function _objectWithoutPropertiesLoose(source, excluded) {
351
- if (source == null) return {};
352
- var target = {};
353
- var sourceKeys = Object.keys(source);
354
- var key, i;
355
-
356
- for (i = 0; i < sourceKeys.length; i++) {
357
- key = sourceKeys[i];
358
- if (excluded.indexOf(key) >= 0) continue;
359
- target[key] = source[key];
360
- }
361
-
362
- return target;
363
- }
364
-
365
- function _objectWithoutProperties(source, excluded) {
366
- if (source == null) return {};
367
- var target = _objectWithoutPropertiesLoose(source, excluded);
368
- var key, i;
369
-
370
- if (Object.getOwnPropertySymbols) {
371
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
372
-
373
- for (i = 0; i < sourceSymbolKeys.length; i++) {
374
- key = sourceSymbolKeys[i];
375
- if (excluded.indexOf(key) >= 0) continue;
376
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
377
- target[key] = source[key];
378
- }
379
- }
380
-
381
- return target;
382
- }
383
-
384
- function _extends() {
385
- _extends = Object.assign || function (target) {
386
- for (var i = 1; i < arguments.length; i++) {
387
- var source = arguments[i];
388
-
389
- for (var key in source) {
390
- if (Object.prototype.hasOwnProperty.call(source, key)) {
391
- target[key] = source[key];
392
- }
393
- }
394
- }
395
-
396
- return target;
397
- };
398
-
399
- return _extends.apply(this, arguments);
400
- }
401
- var EmailIcon = (function (_ref) {
402
- var _ref$styles = _ref.styles,
403
- props = _objectWithoutProperties(_ref, ["styles"]);
404
-
405
- return /*#__PURE__*/React.createElement("svg", _extends({
406
- xmlns: "http://www.w3.org/2000/svg",
407
- viewBox: "0 0 612 612"
408
- }, props), /*#__PURE__*/React.createElement("path", {
409
- 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"
410
- }));
411
- });
412
-
413
- function _extends$1() {
414
- _extends$1 = Object.assign || function (target) {
415
- for (var i = 1; i < arguments.length; i++) {
416
- var source = arguments[i];
417
-
418
- for (var key in source) {
419
- if (Object.prototype.hasOwnProperty.call(source, key)) {
420
- target[key] = source[key];
421
- }
422
- }
423
- }
424
-
425
- return target;
426
- };
427
-
428
- return _extends$1.apply(this, arguments);
429
- }
430
- var FacebookIcon = (function (_ref) {
431
- var _ref$styles = _ref.styles,
432
- props = _objectWithoutProperties(_ref, ["styles"]);
433
-
434
- return /*#__PURE__*/React.createElement("svg", _extends$1({
435
- xmlns: "http://www.w3.org/2000/svg",
436
- viewBox: "0 0 430.113 430.114"
437
- }, props), /*#__PURE__*/React.createElement("path", {
438
- 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"
439
- }));
440
- });
441
-
442
- function _extends$2() {
443
- _extends$2 = Object.assign || function (target) {
444
- for (var i = 1; i < arguments.length; i++) {
445
- var source = arguments[i];
446
-
447
- for (var key in source) {
448
- if (Object.prototype.hasOwnProperty.call(source, key)) {
449
- target[key] = source[key];
450
- }
451
- }
452
- }
453
-
454
- return target;
455
- };
456
-
457
- return _extends$2.apply(this, arguments);
458
- }
459
- var LinkedInIcon = (function (_ref) {
460
- var _ref$styles = _ref.styles,
461
- props = _objectWithoutProperties(_ref, ["styles"]);
462
-
463
- return /*#__PURE__*/React.createElement("svg", _extends$2({
464
- xmlns: "http://www.w3.org/2000/svg",
465
- viewBox: "0 0 430.117 430.117"
466
- }, props), /*#__PURE__*/React.createElement("path", {
467
- 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"
468
- }));
469
- });
470
-
471
- function _extends$3() {
472
- _extends$3 = Object.assign || function (target) {
473
- for (var i = 1; i < arguments.length; i++) {
474
- var source = arguments[i];
475
-
476
- for (var key in source) {
477
- if (Object.prototype.hasOwnProperty.call(source, key)) {
478
- target[key] = source[key];
479
- }
480
- }
481
- }
482
-
483
- return target;
484
- };
485
-
486
- return _extends$3.apply(this, arguments);
487
- }
488
- var TelegramIcon = (function (_ref) {
489
- var _ref$styles = _ref.styles,
490
- props = _objectWithoutProperties(_ref, ["styles"]);
491
-
492
- return /*#__PURE__*/React.createElement("svg", _extends$3({
493
- xmlns: "http://www.w3.org/2000/svg",
494
- viewBox: "0 0 512.004 512.004"
495
- }, props), /*#__PURE__*/React.createElement("path", {
496
- 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"
497
- }));
498
- });
499
-
500
- function _extends$4() {
501
- _extends$4 = Object.assign || function (target) {
502
- for (var i = 1; i < arguments.length; i++) {
503
- var source = arguments[i];
504
-
505
- for (var key in source) {
506
- if (Object.prototype.hasOwnProperty.call(source, key)) {
507
- target[key] = source[key];
508
- }
509
- }
510
- }
511
-
512
- return target;
513
- };
514
-
515
- return _extends$4.apply(this, arguments);
516
- }
517
- var TwitterIcon = (function (_ref) {
518
- var _ref$styles = _ref.styles,
519
- props = _objectWithoutProperties(_ref, ["styles"]);
520
-
521
- return /*#__PURE__*/React.createElement("svg", _extends$4({
522
- xmlns: "http://www.w3.org/2000/svg",
523
- viewBox: "0 0 612 612"
524
- }, props), /*#__PURE__*/React.createElement("path", {
525
- 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"
526
- }));
527
- });
528
-
529
- function _extends$5() {
530
- _extends$5 = Object.assign || function (target) {
531
- for (var i = 1; i < arguments.length; i++) {
532
- var source = arguments[i];
533
-
534
- for (var key in source) {
535
- if (Object.prototype.hasOwnProperty.call(source, key)) {
536
- target[key] = source[key];
537
- }
538
- }
539
- }
540
-
541
- return target;
542
- };
543
-
544
- return _extends$5.apply(this, arguments);
545
- }
546
- var WhatsAppIcon = (function (_ref) {
547
- var _ref$styles = _ref.styles,
548
- props = _objectWithoutProperties(_ref, ["styles"]);
549
-
550
- return /*#__PURE__*/React.createElement("svg", _extends$5({
551
- xmlns: "http://www.w3.org/2000/svg",
552
- viewBox: "0 0 90 90"
553
- }, props), /*#__PURE__*/React.createElement("path", {
554
- 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"
555
- }));
556
- });
557
-
558
350
  /**
559
- * Returns a list of attributes (icon, name and url) of all configured share providers of the entry.
560
- * The url provides a %{url} placeholder where the link can be inserted.
351
+ * Returns a list of attributes (iconName, name and url) of all configured share
352
+ * providers of the entry. The url provides a %{url} placeholder where the link
353
+ * can be inserted. iconName can be passed to ThemeIcon to render a theme
354
+ * specific icon.
561
355
  *
562
356
  * @example
563
357
  *
@@ -565,12 +359,12 @@ var WhatsAppIcon = (function (_ref) {
565
359
  * shareProviders // =>
566
360
  * [
567
361
  * {
568
- * icon: <FacebookSVGIcon />,
362
+ * iconName: 'facebook',
569
363
  * name: 'Facebook',
570
364
  * url: http://www.facebook.com/sharer/sharer.php?u=%{url}
571
365
  * },
572
366
  * {
573
- * icon: <TwitterSVGIcon />,
367
+ * iconName: 'twitter',
574
368
  * name: 'Twitter',
575
369
  * url: https://twitter.com/intent/tweet?url=%{url}
576
370
  * }
@@ -586,32 +380,32 @@ function useShareProviders(_ref) {
586
380
  return useMemo(function () {
587
381
  var sharing = {
588
382
  email: {
589
- icon: EmailIcon,
383
+ iconName: 'email',
590
384
  name: 'Mail',
591
385
  url: urlTemplates.email
592
386
  },
593
387
  facebook: {
594
- icon: FacebookIcon,
388
+ iconName: 'facebook',
595
389
  name: 'Facebook',
596
390
  url: urlTemplates.facebook
597
391
  },
598
392
  linked_in: {
599
- icon: LinkedInIcon,
393
+ iconName: 'linkedIn',
600
394
  name: 'LinkedIn',
601
395
  url: urlTemplates.linked_in
602
396
  },
603
397
  telegram: {
604
- icon: TelegramIcon,
398
+ iconName: 'telegram',
605
399
  name: 'Telegram',
606
400
  url: urlTemplates.telegram
607
401
  },
608
402
  twitter: {
609
- icon: TwitterIcon,
403
+ iconName: 'twitter',
610
404
  name: 'Twitter',
611
405
  url: urlTemplates.twitter
612
406
  },
613
407
  whats_app: {
614
- icon: WhatsAppIcon,
408
+ iconName: 'whatsApp',
615
409
  name: 'WhatsApp',
616
410
  url: urlTemplates.whats_app
617
411
  }
@@ -620,7 +414,7 @@ function useShareProviders(_ref) {
620
414
  var config = sharing[provider];
621
415
  return {
622
416
  name: config.name,
623
- icon: config.icon,
417
+ iconName: config.iconName,
624
418
  url: config.url
625
419
  };
626
420
  });
@@ -1191,6 +985,40 @@ function useI18n() {
1191
985
  };
1192
986
  }
1193
987
 
988
+ function _objectWithoutPropertiesLoose(source, excluded) {
989
+ if (source == null) return {};
990
+ var target = {};
991
+ var sourceKeys = Object.keys(source);
992
+ var key, i;
993
+
994
+ for (i = 0; i < sourceKeys.length; i++) {
995
+ key = sourceKeys[i];
996
+ if (excluded.indexOf(key) >= 0) continue;
997
+ target[key] = source[key];
998
+ }
999
+
1000
+ return target;
1001
+ }
1002
+
1003
+ function _objectWithoutProperties(source, excluded) {
1004
+ if (source == null) return {};
1005
+ var target = _objectWithoutPropertiesLoose(source, excluded);
1006
+ var key, i;
1007
+
1008
+ if (Object.getOwnPropertySymbols) {
1009
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1010
+
1011
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
1012
+ key = sourceSymbolKeys[i];
1013
+ if (excluded.indexOf(key) >= 0) continue;
1014
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
1015
+ target[key] = source[key];
1016
+ }
1017
+ }
1018
+
1019
+ return target;
1020
+ }
1021
+
1194
1022
  var BrowserFeaturesAvailableContext = createContext$1(); // Browser feature detection is not available during server side
1195
1023
  // rendering. To prevent mismatches during hydration, we keep features
1196
1024
  // disabled in the initial render. Since hydration only starts after
@@ -1,13 +1,13 @@
1
1
  import 'pageflow/frontend';
2
2
  import React, { useMemo, useEffect, useRef, useState } from 'react';
3
3
  import ReactDOM from 'react-dom';
4
- import { _ as _objectWithoutProperties, u as useI18n, b as _defineProperty, n as useBrowserFeature, c as _slicedToArray } from './PhonePlatformContext-22e65f92.js';
4
+ import { _ as _objectWithoutProperties, u as useI18n, b as _defineProperty, n as useBrowserFeature, c as _slicedToArray } from './PhonePlatformContext-f6093cc6.js';
5
5
  import 'i18n-js';
6
6
  import 'use-context-selector';
7
7
  import 'reselect';
8
8
  import 'slugify';
9
9
  import classNames from 'classnames';
10
- import { A as ArrowRightIcon, u as usePhonePlatform } from './arrowRight-7e3d9dd5.js';
10
+ import { A as ArrowRightIcon, u as usePhonePlatform } from './arrowRight-78a7cee4.js';
11
11
  import { PanoViewer } from '@egjs/view360';
12
12
  import screenfull from 'screenfull';
13
13
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { P as PhonePlatformContext, _ as _objectWithoutProperties } from './PhonePlatformContext-22e65f92.js';
2
+ import { P as PhonePlatformContext, _ as _objectWithoutProperties } from './PhonePlatformContext-f6093cc6.js';
3
3
 
4
4
  function usePhonePlatform() {
5
5
  return React.useContext(PhonePlatformContext);
@@ -1,8 +1,8 @@
1
1
  import 'regenerator-runtime';
2
- import { a6 as ContentElementEditorCommandEmitterContext, b as usePostMessageListener, a7 as MotifAreaVisibilityProvider, a8 as ForcePaddingContext, a9 as ContentElementConfigurationUpdateContext, aa as ContentElementEditorStateContext, d as api, z as useContentElementEditorState, ab as LayoutWithoutInlineEditing, a5 as SectionThumbnail, ac as renderElement, ad as renderLeaf$1, y as useContentElementEditorCommandSubscription, T as Text$1, n as frontendStyles } from './EditableInlineText.module-c6672f27.js';
2
+ import { a6 as ContentElementEditorCommandEmitterContext, b as usePostMessageListener, a7 as MotifAreaVisibilityProvider, a8 as ForcePaddingContext, a9 as ContentElementConfigurationUpdateContext, aa as ContentElementEditorStateContext, d as api, z as useContentElementEditorState, ab as LayoutWithoutInlineEditing, a5 as SectionThumbnail, ac as renderElement, ad as renderLeaf$1, y as useContentElementEditorCommandSubscription, T as Text$1, n as frontendStyles } from './EditableInlineText.module-14c7b097.js';
3
3
  import 'pageflow/frontend';
4
4
  import React, { useMemo, useState, useCallback, useContext, useRef, useEffect, createContext, memo } from 'react';
5
- import { c as _slicedToArray, o as useEntryStateDispatch, b as _defineProperty, _ as _objectWithoutProperties, u as useI18n, D as updateContentElementConfiguration, q as useChapter, a as _objectSpread2, j as _toConsumableArray, F as _unsupportedIterableToArray, P as PhonePlatformContext } from './PhonePlatformContext-22e65f92.js';
5
+ import { c as _slicedToArray, o as useEntryStateDispatch, b as _defineProperty, _ as _objectWithoutProperties, u as useI18n, D as updateContentElementConfiguration, q as useChapter, a as _objectSpread2, j as _toConsumableArray, F as _unsupportedIterableToArray, P as PhonePlatformContext } from './PhonePlatformContext-f6093cc6.js';
6
6
  import 'i18n-js';
7
7
  import 'use-context-selector';
8
8
  import 'reselect';