pageflow 17.1.0 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +319 -345
  3. data/README.md +3 -4
  4. data/admins/pageflow/accounts.rb +6 -6
  5. data/admins/pageflow/entry.rb +10 -8
  6. data/admins/pageflow/membership.rb +11 -11
  7. data/admins/pageflow/translations.rb +5 -5
  8. data/app/assets/images/pageflow/admin/icons/comment.svg +1 -0
  9. data/app/assets/javascripts/pageflow/dist/ui.js +1350 -630
  10. data/app/assets/javascripts/pageflow/editor/vendor.js +0 -1
  11. data/app/assets/javascripts/pageflow/ui.js +0 -1
  12. data/app/assets/stylesheets/pageflow/admin/entry_comments_indicator.scss +45 -0
  13. data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +8 -1
  14. data/app/assets/stylesheets/pageflow/admin.scss +1 -0
  15. data/app/assets/stylesheets/pageflow/animations/spin.scss +9 -0
  16. data/app/assets/stylesheets/pageflow/animations.scss +1 -0
  17. data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +21 -5
  18. data/app/assets/stylesheets/pageflow/editor/base.scss +9 -1
  19. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +13 -1
  20. data/app/assets/stylesheets/pageflow/editor/edit_configuration_view.scss +5 -0
  21. data/app/assets/stylesheets/pageflow/editor/file_folders.scss +127 -0
  22. data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +0 -1
  23. data/app/assets/stylesheets/pageflow/editor/file_meta_data_overlay.scss +45 -0
  24. data/app/assets/stylesheets/pageflow/editor/file_preview.scss +138 -0
  25. data/app/assets/stylesheets/pageflow/editor/file_references.scss +68 -0
  26. data/app/assets/stylesheets/pageflow/editor/file_settings_dialog.scss +1 -1
  27. data/app/assets/stylesheets/pageflow/editor/file_stage_icons.scss +17 -0
  28. data/app/assets/stylesheets/pageflow/editor/file_stages.scss +25 -32
  29. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +31 -48
  30. data/app/assets/stylesheets/pageflow/editor/file_type_pills.scss +73 -0
  31. data/app/assets/stylesheets/pageflow/editor/files.scss +230 -50
  32. data/app/assets/stylesheets/pageflow/editor/filtered_files.scss +142 -14
  33. data/app/assets/stylesheets/pageflow/editor/folder_breadcrumb.scss +40 -0
  34. data/app/assets/stylesheets/pageflow/editor/info_box.scss +12 -0
  35. data/app/assets/stylesheets/pageflow/editor/inputs/edit_defaults_button.scss +15 -0
  36. data/app/assets/stylesheets/pageflow/editor/inputs.scss +1 -0
  37. data/app/assets/stylesheets/pageflow/editor/list.scss +88 -38
  38. data/app/assets/stylesheets/pageflow/editor/manage_files.scss +9 -0
  39. data/app/assets/stylesheets/pageflow/editor/menu.scss +14 -0
  40. data/app/assets/stylesheets/pageflow/editor/move_to_folder_dialog.scss +83 -0
  41. data/app/assets/stylesheets/pageflow/mixins/pageflow.scss +9 -5
  42. data/app/assets/stylesheets/pageflow/ui/color_picker.scss +230 -0
  43. data/app/assets/stylesheets/pageflow/ui/forms.scss +34 -4
  44. data/app/assets/stylesheets/pageflow/ui/functions.scss +12 -2
  45. data/app/assets/stylesheets/pageflow/ui/input/color_input.scss +9 -16
  46. data/app/assets/stylesheets/pageflow/ui/input/text_area_input.scss +15 -0
  47. data/app/assets/stylesheets/pageflow/ui/overrides.scss +8 -0
  48. data/app/assets/stylesheets/pageflow/ui/properties.scss +29 -0
  49. data/app/assets/stylesheets/pageflow/ui/tabs_view.scss +8 -3
  50. data/app/assets/stylesheets/pageflow/ui.scss +4 -2
  51. data/app/controllers/pageflow/editor/entries_controller.rb +1 -0
  52. data/app/controllers/pageflow/editor/file_folders_controller.rb +80 -0
  53. data/app/controllers/pageflow/editor/file_import_controller.rb +1 -0
  54. data/app/controllers/pageflow/editor/files_controller.rb +15 -6
  55. data/app/controllers/pageflow/editor/oembeds_controller.rb +21 -0
  56. data/app/controllers/pageflow/entries_controller.rb +17 -13
  57. data/app/controllers/pageflow/review/comment_thread_reads_controller.rb +30 -0
  58. data/app/controllers/pageflow/review/comment_threads_controller.rb +60 -0
  59. data/app/controllers/pageflow/review/comments_controller.rb +53 -0
  60. data/app/controllers/pageflow/revisions_controller.rb +4 -1
  61. data/app/helpers/pageflow/admin/entries_helper.rb +40 -0
  62. data/app/helpers/pageflow/admin/widgets_helper.rb +2 -2
  63. data/app/helpers/pageflow/common_entry_seed_helper.rb +5 -3
  64. data/app/helpers/pageflow/editor/config_helper.rb +3 -1
  65. data/app/helpers/pageflow/entries_helper.rb +24 -42
  66. data/app/helpers/pageflow/entry_json_seed_helper.rb +4 -4
  67. data/app/helpers/pageflow/public_i18n_helper.rb +9 -8
  68. data/app/helpers/pageflow/structured_data_helper.rb +4 -1
  69. data/app/helpers/pageflow/themes_helper.rb +1 -3
  70. data/app/helpers/pageflow/widgets_helper.rb +2 -1
  71. data/app/inputs/pageflow_permalink_input.rb +6 -2
  72. data/app/models/concerns/pageflow/auto_generated_perma_id.rb +11 -4
  73. data/app/models/concerns/pageflow/reusable_file.rb +1 -1
  74. data/app/models/concerns/pageflow/serialization_blacklist.rb +2 -4
  75. data/app/models/concerns/pageflow/translated_attributes.rb +101 -0
  76. data/app/models/concerns/pageflow/uploadable_file.rb +1 -1
  77. data/app/models/pageflow/comment.rb +30 -0
  78. data/app/models/pageflow/comment_thread.rb +65 -0
  79. data/app/models/pageflow/comment_thread_read.rb +22 -0
  80. data/app/models/pageflow/customized_theme.rb +3 -2
  81. data/app/models/pageflow/draft_entry.rb +20 -8
  82. data/app/models/pageflow/entry.rb +2 -0
  83. data/app/models/pageflow/entry_at_revision.rb +9 -1
  84. data/app/models/pageflow/entry_comment_summary.rb +114 -0
  85. data/app/models/pageflow/file_folder.rb +74 -0
  86. data/app/models/pageflow/file_reuse.rb +3 -2
  87. data/app/models/pageflow/file_usage.rb +8 -0
  88. data/app/models/pageflow/image_file.rb +24 -20
  89. data/app/models/pageflow/image_file_url_templates.rb +3 -3
  90. data/app/models/pageflow/legal_info.rb +38 -0
  91. data/app/models/pageflow/nested_revision_component_copy.rb +1 -1
  92. data/app/models/pageflow/permalink.rb +1 -0
  93. data/app/models/pageflow/revision.rb +6 -2
  94. data/app/models/pageflow/site.rb +10 -0
  95. data/app/models/pageflow/used_file.rb +8 -2
  96. data/app/models/pageflow/widget.rb +2 -2
  97. data/app/views/pageflow/audio_files/_audio_file.json.jbuilder +0 -1
  98. data/app/views/pageflow/editor/config/_seeds.json.jbuilder +4 -2
  99. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +2 -1
  100. data/app/views/pageflow/editor/entries/seed.json.erb +1 -0
  101. data/app/views/pageflow/editor/file_folders/_file_folder.json.jbuilder +5 -0
  102. data/app/views/pageflow/editor/file_folders/create.json.jbuilder +1 -0
  103. data/app/views/pageflow/editor/file_folders/index.json.jbuilder +3 -0
  104. data/app/views/pageflow/editor/files/_file.json.jbuilder +2 -1
  105. data/app/views/pageflow/editor/image_files/_image_file.json.jbuilder +3 -0
  106. data/app/views/pageflow/editor/video_files/_video_file.json.jbuilder +3 -0
  107. data/app/views/pageflow/files/_file.json.jbuilder +2 -0
  108. data/app/views/pageflow/image_files/_image_file.json.jbuilder +0 -1
  109. data/app/views/pageflow/review/comment_threads/_comment_thread.json.jbuilder +20 -0
  110. data/app/views/pageflow/review/comment_threads/create.json.jbuilder +2 -0
  111. data/app/views/pageflow/review/comment_threads/index.json.jbuilder +13 -0
  112. data/app/views/pageflow/review/comments/_comment.json.jbuilder +13 -0
  113. data/app/views/pageflow/review/comments/create.json.jbuilder +1 -0
  114. data/app/views/pageflow/structured_data/_entry.json.jbuilder +2 -3
  115. data/app/views/pageflow/video_files/_video_file.json.jbuilder +0 -1
  116. data/config/locales/de.yml +152 -14
  117. data/config/locales/en.yml +150 -14
  118. data/config/routes.rb +14 -0
  119. data/db/migrate/20140418225525_setup_schema.rb +2 -2
  120. data/db/migrate/20251015000000_add_structured_data_type_name_to_revisions.rb +5 -0
  121. data/db/migrate/20251029142849_convert_legacy_social_embeds_to_unified_social_embed.rb +38 -0
  122. data/db/migrate/20251119083347_fix_main_storyline_positions.rb +16 -0
  123. data/db/migrate/20251119083348_ensure_scrolled_entries_have_excursion_storyline.rb +15 -0
  124. data/db/migrate/20260303000000_add_layout_version_to_revisions.rb +6 -0
  125. data/db/migrate/20260323000000_create_comment_threads_and_comments.rb +30 -0
  126. data/db/migrate/20260414000000_add_subject_range_to_comment_threads.rb +5 -0
  127. data/db/migrate/20260415000000_add_section_perma_id_to_comment_threads.rb +5 -0
  128. data/db/migrate/20260727000000_add_quote_to_comments.rb +5 -0
  129. data/db/migrate/20260728000000_create_file_folders.rb +17 -0
  130. data/db/migrate/20260805000000_add_attribute_translations_to_sites.rb +5 -0
  131. data/db/migrate/20260806000000_add_edited_at_to_comments.rb +5 -0
  132. data/db/migrate/20260810000000_create_pageflow_scrolled_lottie_files.rb +24 -0
  133. data/db/migrate/20260817000000_create_comment_thread_reads.rb +16 -0
  134. data/db/migrate/20260819000000_add_unread_comments_since_at_to_users.rb +18 -0
  135. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +8665 -3890
  136. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +979 -3571
  137. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +20199 -28120
  138. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +18652 -26584
  139. data/entry_types/scrolled/app/assets/stylesheets/pageflow_scrolled/ui.scss +2 -0
  140. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +33 -3
  141. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -3
  142. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +21 -1
  143. data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +3 -3
  144. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +7 -5
  145. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +5 -2
  146. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +13 -5
  147. data/entry_types/scrolled/app/helpers/pageflow_scrolled/i18n_helper.rb +28 -13
  148. data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +26 -11
  149. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +2 -2
  150. data/entry_types/scrolled/app/helpers/pageflow_scrolled/sprockets_helper.rb +16 -0
  151. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +174 -3
  152. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +49 -7
  153. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file.rb +6 -0
  154. data/entry_types/scrolled/app/models/pageflow_scrolled/lottie_file_url_templates.rb +16 -0
  155. data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +1 -0
  156. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +13 -12
  157. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +30 -10
  158. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +9 -0
  159. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +1 -1
  160. data/entry_types/scrolled/config/configuration_schemas/pageflow-scrolled.json +414 -0
  161. data/entry_types/scrolled/config/locales/de.yml +512 -65
  162. data/entry_types/scrolled/config/locales/en.yml +518 -52
  163. data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +2 -2
  164. data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +51 -6
  165. data/entry_types/scrolled/lib/pageflow_scrolled/configuration_schemas.rb +91 -0
  166. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +2 -1
  167. data/entry_types/scrolled/lib/pageflow_scrolled/entry_file_reference_locations.rb +71 -0
  168. data/entry_types/scrolled/lib/pageflow_scrolled/entry_structured_data_types/faq_page.rb +58 -0
  169. data/entry_types/scrolled/lib/pageflow_scrolled/file_reference_locations.rb +69 -0
  170. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +205 -22
  171. data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +2 -4
  172. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +56 -36
  173. data/entry_types/scrolled/lib/pageflow_scrolled/theme_options_default_scale.rb +35 -0
  174. data/entry_types/scrolled/lib/pageflow_scrolled.rb +13 -0
  175. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +19 -1
  176. data/entry_types/scrolled/package/config/configurationSchemas.js +70 -0
  177. data/entry_types/scrolled/package/config/rollup/configurationSchemas.js +19 -0
  178. data/entry_types/scrolled/package/config/webpack.js +72 -0
  179. data/entry_types/scrolled/package/contentElements/hotspots-frontend.css +1 -1
  180. data/entry_types/scrolled/package/contentElements/hotspots-frontend.js +1181 -915
  181. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.css +1 -0
  182. data/entry_types/scrolled/package/contentElements/inlineBeforeAfter-frontend.js +219 -0
  183. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.css +1 -0
  184. data/entry_types/scrolled/package/contentElements/lottieAnimation-frontend.js +244 -0
  185. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.css +1 -0
  186. data/entry_types/scrolled/package/contentElements/socialEmbed-frontend.js +823 -0
  187. data/entry_types/scrolled/package/contentElements/tikTokEmbed-frontend.js +71 -21
  188. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.css +1 -0
  189. data/entry_types/scrolled/package/contentElements/twitterEmbed-frontend.js +277 -0
  190. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.css +1 -0
  191. data/entry_types/scrolled/package/contentElements/videoEmbed-frontend.js +244 -0
  192. data/entry_types/scrolled/package/contentElements-editor.js +1915 -1097
  193. data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
  194. data/entry_types/scrolled/package/contentElements-frontend.js +3093 -1679
  195. data/entry_types/scrolled/package/editor.css +1 -0
  196. data/entry_types/scrolled/package/editor.js +8667 -4077
  197. data/entry_types/scrolled/package/entryState.js +1600 -0
  198. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-20c600de.js +1979 -0
  199. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-58189220.js +2538 -0
  200. data/entry_types/scrolled/package/frontend/{PhonePlatformContext-9f76033e.js → PhonePlatformContext-035a99fa.js} +7 -12
  201. data/entry_types/scrolled/package/frontend/PhonePlatformContext-9da43797.js +33 -0
  202. data/entry_types/scrolled/package/frontend/Placeholder.module-bf0966b4.js +5267 -0
  203. data/entry_types/scrolled/package/frontend/Placeholder.module-d22a9335.js +4180 -0
  204. data/entry_types/scrolled/package/frontend/ThemeIcon-ab834849.js +754 -0
  205. data/entry_types/scrolled/package/frontend/ThemeIcon-f6cb3a8f.js +773 -0
  206. data/entry_types/scrolled/package/frontend/{ToggleFullscreenCornerButton-788e9cdb.js → ToggleFullscreenCornerButton-30fd1124.js} +6 -6
  207. data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-61c25224.js +72 -0
  208. data/entry_types/scrolled/package/frontend/Viewer-1074fd59.js +147 -0
  209. data/entry_types/scrolled/package/frontend/Viewer-1482ca34.js +480 -0
  210. data/entry_types/scrolled/package/frontend/Viewer-70504231.js +210 -0
  211. data/entry_types/scrolled/package/frontend/{Viewer-0345ce57.js → Viewer-cc8d4072.js} +84 -92
  212. data/entry_types/scrolled/package/frontend/Wavesurfer-656e3c36.js +302 -0
  213. data/entry_types/scrolled/package/frontend/Wavesurfer-b753b838.js +385 -0
  214. data/entry_types/scrolled/package/frontend/commenting.css +1 -0
  215. data/entry_types/scrolled/package/frontend/extensions-167ae143.js +1455 -0
  216. data/entry_types/scrolled/package/frontend/extensions-2318f92b.js +5918 -0
  217. data/entry_types/scrolled/package/frontend/extensions-a461fd13.js +4890 -0
  218. data/entry_types/scrolled/package/frontend/extensions-c98269fd.js +1982 -0
  219. data/entry_types/scrolled/package/frontend/i18n-493cd2a6.js +93 -0
  220. data/entry_types/scrolled/package/frontend/i18n-e06cac14.js +100 -0
  221. data/entry_types/scrolled/package/frontend/{index-eb670c2f.js → index-2e5546f7.js} +36 -44
  222. data/entry_types/scrolled/package/frontend/index-de2b418d.js +130 -0
  223. data/entry_types/scrolled/package/frontend/index.css +1 -1
  224. data/entry_types/scrolled/package/frontend/index.js +1870 -875
  225. data/entry_types/scrolled/package/frontend/inlineEditing.css +1 -0
  226. data/entry_types/scrolled/package/frontend/useContentElementEditorState-a084912e.js +25 -0
  227. data/entry_types/scrolled/package/frontend/useDelayedBoolean-a387d85b.js +24 -0
  228. data/entry_types/scrolled/package/frontend/{usePhonePlatform-c2ba875d.js → usePhonePlatform-4ecb96d4.js} +1 -1
  229. data/entry_types/scrolled/package/frontend/usePhonePlatform-ce9ff08d.js +8 -0
  230. data/entry_types/scrolled/package/frontend-server.js +20 -209
  231. data/entry_types/scrolled/package/package.json +5 -3
  232. data/entry_types/scrolled/package/review.css +1 -0
  233. data/entry_types/scrolled/package/review.js +3306 -0
  234. data/entry_types/scrolled/package/testHelpers.js +836 -359
  235. data/entry_types/scrolled/package/widgets/consentBar.css +1 -1
  236. data/entry_types/scrolled/package/widgets/consentBar.js +269 -290
  237. data/entry_types/scrolled/package/widgets/defaultNavigation.css +2 -2
  238. data/entry_types/scrolled/package/widgets/defaultNavigation.js +911 -352
  239. data/entry_types/scrolled/package/widgets/excursionSheet.css +1 -1
  240. data/entry_types/scrolled/package/widgets/excursionSheet.js +87 -124
  241. data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -1
  242. data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +62 -29
  243. data/entry_types/scrolled/package/widgets/iconScrollIndicator.js +32 -13
  244. data/entry_types/scrolled/package/widgets/mainStorylineSheet.css +1 -1
  245. data/entry_types/scrolled/package/widgets/mainStorylineSheet.js +56 -100
  246. data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -1
  247. data/entry_types/scrolled/package/widgets/textInlineFileRights.js +33 -28
  248. data/entry_types/scrolled/package/widgets-server.js +1 -0
  249. data/entry_types/scrolled/spec/factories/lottie_files.rb +29 -0
  250. data/entry_types/scrolled/spec/fixtures/animation.lottie +0 -0
  251. data/entry_types/scrolled/spec/fixtures/font.woff +0 -0
  252. data/entry_types/scrolled/spec/fixtures/font.woff2 +0 -0
  253. data/lib/generators/pageflow/resque/resque_generator.rb +0 -2
  254. data/lib/pageflow/configuration.rb +49 -7
  255. data/lib/pageflow/deprecation.rb +19 -0
  256. data/lib/pageflow/engine.rb +1 -1
  257. data/lib/pageflow/entries_controller_env_helper.rb +32 -2
  258. data/lib/pageflow/entry_export_import/entry_serialization.rb +4 -4
  259. data/lib/pageflow/entry_export_import/page_type_versions.rb +2 -2
  260. data/lib/pageflow/entry_export_import/revision_serialization/import.rb +10 -0
  261. data/lib/pageflow/entry_export_import/revision_serialization.rb +3 -0
  262. data/lib/pageflow/entry_structured_data_types.rb +43 -0
  263. data/lib/pageflow/entry_type_configuration.rb +1 -0
  264. data/lib/pageflow/file_type.rb +2 -2
  265. data/lib/pageflow/file_types.rb +1 -1
  266. data/lib/pageflow/oembed_providers.rb +42 -0
  267. data/lib/pageflow/primary_domain_entry_redirect.rb +6 -0
  268. data/lib/pageflow/rails_version.rb +13 -2
  269. data/lib/pageflow/themes.rb +41 -0
  270. data/lib/pageflow/user_mixin.rb +12 -0
  271. data/lib/pageflow/version.rb +1 -1
  272. data/lib/pageflow.rb +1 -0
  273. data/package/config/eslint-rules/documented-in-toc.js +125 -0
  274. data/package/config/jest/index.js +0 -1
  275. data/package/config/webpack.js +0 -1
  276. data/package/config/webpack5.js +0 -1
  277. data/package/editor.js +4378 -1897
  278. data/package/frontend.js +647 -886
  279. data/package/package.json +2 -1
  280. data/package/review.js +384 -0
  281. data/package/testHelpers.js +248 -188
  282. data/package/ui.js +1346 -630
  283. data/package/vendor/stubs/wysihtml5.js +2 -0
  284. data/spec/factories/comment_thread_reads.rb +10 -0
  285. data/spec/factories/comment_threads.rb +10 -0
  286. data/spec/factories/comments.rb +9 -0
  287. data/spec/factories/file_folders.rb +8 -0
  288. data/spec/factories/published_entries.rb +2 -0
  289. metadata +188 -67
  290. data/app/assets/stylesheets/pageflow/editor/select_button.scss +0 -51
  291. data/entry_types/scrolled/app/helpers/pageflow_scrolled/generated_media_queries_helper.rb +0 -55
  292. data/entry_types/scrolled/package/frontend/FloatingPortalRootProvider-51914be7.js +0 -5439
  293. data/entry_types/scrolled/package/frontend/ThemeIcon-81f2f066.js +0 -1932
  294. data/entry_types/scrolled/package/frontend/Viewer-cdc549cc.js +0 -147
  295. data/entry_types/scrolled/package/frontend/Wavesurfer-1cdc3925.js +0 -313
  296. data/entry_types/scrolled/package/frontend/components-96660ffd.js +0 -3803
  297. data/entry_types/scrolled/package/frontend/inherits-539844a6.js +0 -99
  298. data/entry_types/scrolled/package/frontend/useContentElementEditorState-77fe6c79.js +0 -51
  299. data/entry_types/scrolled/package/widgets/excursionDialog.css +0 -1
  300. data/entry_types/scrolled/package/widgets/excursionDialog.js +0 -109
  301. data/lib/generators/pageflow/resque/templates/resque_enqueue_after_commit_patch.rb +0 -25
  302. data/package/vendor/jquery.minicolors.js +0 -1108
@@ -1 +1 @@
1
- .CloseButton-module_button__3aQ6f{position:sticky;top:var(--widget-margin-top,0);z-index:10;display:flex;margin:.25rem .25rem .25rem auto;padding:.75rem;border:0;background-color:transparent;color:var(--theme-light-content-text-color);cursor:pointer;outline-offset:-3px;transition:opacity .5s,top .15s ease;@starting-style{opacity:0}}.CloseButton-module_button__3aQ6f svg{position:relative;transition:color .5s}.CloseButton-module_invert__3C788 svg{color:var(--theme-dark-content-text-color)}.ReturnButton-module_wrapper__3rzAj{height:50lvh;font-family:var(--theme-widget-font-family)}.ReturnButton-module_button__1SKjN{position:absolute;left:50%;display:flex;flex-direction:column;gap:.5rem;align-items:center;text-align:center;border:0;padding:.5rem;background-color:transparent;color:var(--theme-light-content-text-color);font-size:1.25rem;cursor:pointer}.colors-module_contentColorScope__1Oidv{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.ExcursionSheet-module_container__2NpY_{position:relative;margin-top:-100vh;z-index:10;padding-top:33lvh;pointer-events:none}.ExcursionSheet-module_container__2NpY_>*{pointer-events:auto}.ExcursionSheet-module_backdrop__3RyMJ{position:fixed;top:0;height:100vh;width:100%;background-color:rgba(0,0,0,.7);transition:opacity .2s ease;@starting-style{opacity:0}}.ExcursionSheet-module_content__3pYqz{transition:transform .2s ease-out,opacity .2s;box-shadow:0 0 20px 5px rgba(0,0,0,.5);position:relative;overflow:clip;@starting-style{transform:translateY(20lvh);opacity:0}}.ExcursionSheet-module_probe__3xetc{--section-intersection-observer-root-margin-top:calc(var(--widget-margin-top) + 1.5rem)}
1
+ .CloseButton-module_button__3aQ6f{position:sticky;top:var(--widget-margin-top,0);z-index:10;display:flex;margin:.25rem .25rem .25rem auto;padding:.75rem;border:0;background-color:initial;color:var(--theme-light-content-text-color);cursor:pointer;outline-offset:-3px;transition:opacity .5s,top .15s ease;@starting-style{opacity:0}}.CloseButton-module_button__3aQ6f svg{position:relative;transition:color .5s}.CloseButton-module_invert__3C788 svg{color:var(--theme-dark-content-text-color)}.ReturnButton-module_wrapper__3rzAj{height:50lvh;font-family:var(--theme-widget-font-family)}.ReturnButton-module_button__1SKjN{position:absolute;left:50%;display:flex;flex-direction:column;gap:.5rem;align-items:center;text-align:center;border:0;padding:.5rem;background-color:initial;color:var(--theme-light-content-text-color);font-size:1.25rem;cursor:pointer}.colors-module_contentColorScope__1Oidv{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.ExcursionSheet-module_container__2NpY_{position:relative;margin-top:-100vh;z-index:10;padding-top:33lvh;pointer-events:none}.ExcursionSheet-module_width-inset__2uSgb{margin-left:3vw;margin-right:3vw}.ExcursionSheet-module_container__2NpY_>*{pointer-events:auto}.ExcursionSheet-module_backdrop__3RyMJ{position:fixed;top:0;height:100vh;width:100%;background-color:rgba(0,0,0,.7)}@media (prefers-reduced-motion:no-preference){.ExcursionSheet-module_backdrop__3RyMJ{transition:opacity .2s ease;@starting-style{opacity:0}}}.ExcursionSheet-module_content__3pYqz{box-shadow:0 0 20px 5px rgba(0,0,0,.5);position:relative;overflow:clip}.ExcursionSheet-module_clip__2y2Bg{clip-path:inset(0)}@media (prefers-reduced-motion:no-preference){.ExcursionSheet-module_content__3pYqz{transition:transform .2s ease-out,opacity .2s;@starting-style{transform:translateY(20lvh);opacity:0}}}.ExcursionSheet-module_probe__3xetc{--section-intersection-observer-root-margin-top:calc(var(--widget-margin-top) + 1.5rem)}
@@ -1,90 +1,21 @@
1
- import { useI18n, ThemeIcon, useIsomorphicLayoutEffect, SectionIntersectionObserver, frontend } from 'pageflow-scrolled/frontend';
1
+ import { useI18n, ThemeIcon, useIsomorphicLayoutEffect, SectionIntersectionObserver, useOnScreen, frontend } from 'pageflow-scrolled/frontend';
2
2
  import React, { useRef, useEffect, useState } from 'react';
3
3
  import classNames from 'classnames';
4
4
 
5
- function _arrayWithHoles(arr) {
6
- if (Array.isArray(arr)) return arr;
7
- }
8
-
9
- function _iterableToArrayLimit(arr, i) {
10
- if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
11
- var _arr = [];
12
- var _n = true;
13
- var _d = false;
14
- var _e = undefined;
15
-
16
- try {
17
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
18
- _arr.push(_s.value);
19
-
20
- if (i && _arr.length === i) break;
21
- }
22
- } catch (err) {
23
- _d = true;
24
- _e = err;
25
- } finally {
26
- try {
27
- if (!_n && _i["return"] != null) _i["return"]();
28
- } finally {
29
- if (_d) throw _e;
30
- }
31
- }
32
-
33
- return _arr;
34
- }
35
-
36
- function _arrayLikeToArray(arr, len) {
37
- if (len == null || len > arr.length) len = arr.length;
38
-
39
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
40
- arr2[i] = arr[i];
41
- }
42
-
43
- return arr2;
44
- }
45
-
46
- function _unsupportedIterableToArray(o, minLen) {
47
- if (!o) return;
48
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
49
- var n = Object.prototype.toString.call(o).slice(8, -1);
50
- if (n === "Object" && o.constructor) n = o.constructor.name;
51
- if (n === "Map" || n === "Set") return Array.from(n);
52
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
53
- }
54
-
55
- function _nonIterableRest() {
56
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
- }
58
-
59
- function _slicedToArray(arr, i) {
60
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
61
- }
62
-
63
- function _defineProperty(obj, key, value) {
64
- if (key in obj) {
65
- Object.defineProperty(obj, key, {
66
- value: value,
67
- enumerable: true,
68
- configurable: true,
69
- writable: true
70
- });
71
- } else {
72
- obj[key] = value;
73
- }
74
-
75
- return obj;
76
- }
77
-
78
5
  var styles = {"button":"CloseButton-module_button__3aQ6f","invert":"CloseButton-module_invert__3C788"};
79
6
 
80
7
  var _jsxFileName = "/home/tfischbach/code/pageflow/entry_types/scrolled/package/src/widgets/excursionSheet/CloseButton.js";
81
- function CloseButton(_ref) {
82
- var invert = _ref.invert,
83
- onClick = _ref.onClick;
84
- var _useI18n = useI18n(),
85
- t = _useI18n.t;
8
+ function CloseButton({
9
+ invert,
10
+ onClick
11
+ }) {
12
+ const {
13
+ t
14
+ } = useI18n();
86
15
  return /*#__PURE__*/React.createElement("button", {
87
- className: classNames(styles.button, _defineProperty({}, styles.invert, invert)),
16
+ className: classNames(styles.button, {
17
+ [styles.invert]: invert
18
+ }),
88
19
  "aria-label": t('pageflow_scrolled.public.close'),
89
20
  title: t('pageflow_scrolled.public.close'),
90
21
  onClick: onClick,
@@ -108,17 +39,17 @@ function CloseButton(_ref) {
108
39
  }
109
40
 
110
41
  function useScrollCenter() {
111
- var parentRef = useRef();
112
- var childRef = useRef();
113
- useEffect(function () {
42
+ const parentRef = useRef();
43
+ const childRef = useRef();
44
+ useEffect(() => {
114
45
  function onScroll() {
115
- var parentRect = parentRef.current.getBoundingClientRect();
116
- childRef.current.style.transform = "translate(-50%, calc((100lvh - ".concat(parentRect.top, "px) * 0.3 - 50%)");
46
+ const parentRect = parentRef.current.getBoundingClientRect();
47
+ childRef.current.style.transform = `translate(-50%, calc((100lvh - ${parentRect.top}px) * 0.3 - 50%)`;
117
48
  }
118
49
  window.addEventListener('scroll', onScroll);
119
50
  window.addEventListener('resize', onScroll);
120
51
  onScroll();
121
- return function () {
52
+ return () => {
122
53
  window.removeEventListener('scroll', onScroll);
123
54
  window.removeEventListener('resize', onScroll);
124
55
  };
@@ -129,32 +60,29 @@ function useScrollCenter() {
129
60
  var styles$1 = {"wrapper":"ReturnButton-module_wrapper__3rzAj","button":"ReturnButton-module_button__1SKjN"};
130
61
 
131
62
  var _jsxFileName$1 = "/home/tfischbach/code/pageflow/entry_types/scrolled/package/src/widgets/excursionSheet/ReturnButton.js";
132
- function ReturnButton(_ref) {
133
- var label = _ref.label,
134
- onClose = _ref.onClose,
135
- children = _ref.children;
136
- var _useScrollCenter = useScrollCenter(),
137
- _useScrollCenter2 = _slicedToArray(_useScrollCenter, 2),
138
- wrapperRef = _useScrollCenter2[0],
139
- buttonRef = _useScrollCenter2[1];
140
- useIsomorphicLayoutEffect(function () {
141
- var timeline = new window.ViewTimeline({
63
+ function ReturnButton({
64
+ label,
65
+ onClose,
66
+ children
67
+ }) {
68
+ const [wrapperRef, buttonRef] = useScrollCenter();
69
+ useIsomorphicLayoutEffect(() => {
70
+ const timeline = new window.ViewTimeline({
142
71
  subject: wrapperRef.current
143
72
  });
144
- var animation = buttonRef.current.animate({
73
+ const animation = buttonRef.current.animate({
145
74
  opacity: ['0', '1']
146
75
  }, {
147
- timeline: timeline,
76
+ timeline,
148
77
  fill: 'both',
149
78
  rangeStart: 'entry 10%',
150
79
  rangeEnd: 'entry 50%'
151
80
  });
152
- return function () {
153
- return animation.cancel();
154
- };
81
+ return () => animation.cancel();
155
82
  }, []);
156
- var _useI18n = useI18n(),
157
- t = _useI18n.t;
83
+ const {
84
+ t
85
+ } = useI18n();
158
86
  return /*#__PURE__*/React.createElement("div", {
159
87
  className: styles$1.wrapper,
160
88
  ref: wrapperRef,
@@ -187,33 +115,34 @@ function ReturnButton(_ref) {
187
115
  }), label || t('pageflow_scrolled.public.exit_excursion')));
188
116
  }
189
117
 
190
- var styles$2 = {"container":"ExcursionSheet-module_container__2NpY_ colors-module_contentColorScope__1Oidv","backdrop":"ExcursionSheet-module_backdrop__3RyMJ","content":"ExcursionSheet-module_content__3pYqz","probe":"ExcursionSheet-module_probe__3xetc"};
118
+ var styles$2 = {"container":"ExcursionSheet-module_container__2NpY_ colors-module_contentColorScope__1Oidv","width-inset":"ExcursionSheet-module_width-inset__2uSgb","backdrop":"ExcursionSheet-module_backdrop__3RyMJ","content":"ExcursionSheet-module_content__3pYqz","clip":"ExcursionSheet-module_clip__2y2Bg","probe":"ExcursionSheet-module_probe__3xetc"};
191
119
 
192
120
  var _jsxFileName$2 = "/home/tfischbach/code/pageflow/entry_types/scrolled/package/src/widgets/excursionSheet/ExcursionSheet.js";
193
- function ExcursionSheet(_ref) {
194
- var excursion = _ref.excursion,
195
- onClose = _ref.onClose,
196
- children = _ref.children;
197
- var _useState = useState(false),
198
- _useState2 = _slicedToArray(_useState, 2),
199
- intersectingSectionInverted = _useState2[0],
200
- setIntersectingSectionInverted = _useState2[1];
121
+ function ExcursionSheet({
122
+ excursion,
123
+ onClose,
124
+ setIsCoveringBackground,
125
+ children
126
+ }) {
127
+ const contentRef = useRef();
128
+ const [intersectingSectionInverted, setIntersectingSectionInverted] = useState(false);
129
+ useCoversScreen(contentRef, setIsCoveringBackground);
201
130
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
202
131
  className: styles$2.backdrop,
203
132
  onClick: onClose,
204
133
  __self: this,
205
134
  __source: {
206
135
  fileName: _jsxFileName$2,
207
- lineNumber: 16,
136
+ lineNumber: 19,
208
137
  columnNumber: 7
209
138
  }
210
139
  }), /*#__PURE__*/React.createElement("div", {
211
140
  key: excursion.id,
212
- className: styles$2.container,
141
+ className: classNames(styles$2.container, styles$2[`width-${excursion.sheetWidth}`]),
213
142
  __self: this,
214
143
  __source: {
215
144
  fileName: _jsxFileName$2,
216
- lineNumber: 18,
145
+ lineNumber: 21,
217
146
  columnNumber: 7
218
147
  }
219
148
  }, /*#__PURE__*/React.createElement(CloseButton, {
@@ -222,40 +151,74 @@ function ExcursionSheet(_ref) {
222
151
  __self: this,
223
152
  __source: {
224
153
  fileName: _jsxFileName$2,
225
- lineNumber: 20,
154
+ lineNumber: 23,
226
155
  columnNumber: 9
227
156
  }
228
157
  }), /*#__PURE__*/React.createElement("div", {
158
+ ref: contentRef,
229
159
  className: styles$2.content,
230
160
  __self: this,
231
161
  __source: {
232
162
  fileName: _jsxFileName$2,
233
- lineNumber: 22,
163
+ lineNumber: 25,
234
164
  columnNumber: 9
235
165
  }
166
+ }, /*#__PURE__*/React.createElement("div", {
167
+ className: styles$2.clip,
168
+ __self: this,
169
+ __source: {
170
+ fileName: _jsxFileName$2,
171
+ lineNumber: 26,
172
+ columnNumber: 11
173
+ }
236
174
  }, /*#__PURE__*/React.createElement(SectionIntersectionObserver, {
237
175
  sections: excursion.sections,
238
176
  probeClassName: styles$2.probe,
239
- onChange: function onChange(section) {
240
- return setIntersectingSectionInverted(section === null || section === void 0 ? void 0 : section.invert);
241
- },
177
+ onChange: section => setIntersectingSectionInverted(section === null || section === void 0 ? void 0 : section.invert),
242
178
  __self: this,
243
179
  __source: {
244
180
  fileName: _jsxFileName$2,
245
- lineNumber: 23,
246
- columnNumber: 11
181
+ lineNumber: 27,
182
+ columnNumber: 13
247
183
  }
248
- }, children)), /*#__PURE__*/React.createElement(ReturnButton, {
184
+ }, children))), /*#__PURE__*/React.createElement(ReturnButton, {
249
185
  label: excursion.returnButtonLabel,
250
186
  onClose: onClose,
251
187
  __self: this,
252
188
  __source: {
253
189
  fileName: _jsxFileName$2,
254
- lineNumber: 30,
190
+ lineNumber: 35,
255
191
  columnNumber: 9
256
192
  }
257
193
  })));
258
194
  }
195
+ function useCoversScreen(ref, onChange) {
196
+ const intersectsTopRef = useRef(false);
197
+ const intersectsBottomRef = useRef(false);
198
+ const updateCoverage = () => {
199
+ const isCovering = intersectsTopRef.current && intersectsBottomRef.current;
200
+ onChange(isCovering);
201
+ };
202
+ const handleTopEdgeIntersection = intersecting => {
203
+ intersectsTopRef.current = intersecting;
204
+ updateCoverage();
205
+ };
206
+ const handleBottomEdgeIntersection = intersecting => {
207
+ intersectsBottomRef.current = intersecting;
208
+ updateCoverage();
209
+ };
210
+ useOnScreen(ref, {
211
+ rootMargin: '0px 0px -100% 0px',
212
+ onChange: handleTopEdgeIntersection
213
+ });
214
+ useOnScreen(ref, {
215
+ rootMargin: '-100% 0px 0px 0px',
216
+ onChange: handleBottomEdgeIntersection
217
+ });
218
+ useEffect(() => {
219
+ return () => onChange(false);
220
+ }, [onChange]);
221
+ }
259
222
 
260
223
  frontend.widgetTypes.register('excursionSheet', {
261
224
  component: ExcursionSheet
@@ -1 +1 @@
1
- .IconInlineFileRights-module_standAlone__15788{color:#fff;position:absolute;right:0;left:0;display:flex;justify-content:flex-end;pointer-events:none;z-index:2}.IconInlineFileRights-module_position-top__rxJ3d{top:0}.IconInlineFileRights-module_position-bottom__25azC{bottom:0}.IconInlineFileRights-module_standAlone__15788>*{pointer-events:auto}.IconInlineFileRights-module_button__o5ZmR{border:0;padding:0;background-color:transparent;width:44px;height:40px;margin:0;display:flex;align-items:center;justify-content:center;color:currentColor;cursor:pointer;position:relative}.IconInlineFileRights-module_button__o5ZmR,.IconInlineFileRights-module_tooltip__2e1u8{transition:opacity .2s,visibility .2s}.IconInlineFileRights-module_fadedOut__3A7WF .IconInlineFileRights-module_button__o5ZmR{opacity:.6}.IconInlineFileRights-module_wrapper__2kQK_:active .IconInlineFileRights-module_button__o5ZmR,.IconInlineFileRights-module_wrapper__2kQK_:focus .IconInlineFileRights-module_button__o5ZmR,.IconInlineFileRights-module_wrapper__2kQK_:hover .IconInlineFileRights-module_button__o5ZmR{opacity:1}.IconInlineFileRights-module_button__o5ZmR svg{width:23px;height:23px}.IconInlineFileRights-module_standAlone__15788 .IconInlineFileRights-module_button__o5ZmR svg{filter:drop-shadow(0 1px 4px #000)}.IconInlineFileRights-module_tooltip__2e1u8{font-size:13.5555px;font-family:sans-serif;line-height:1.4;position:absolute;right:5px;background-color:rgba(17,17,17,.9);border-radius:3px;color:#fff;padding:8px;visibility:hidden;opacity:0;text-align:right;margin-left:10px;box-sizing:border-box;max-width:95%;z-index:1}.IconInlineFileRights-module_position-bottom__25azC .IconInlineFileRights-module_tooltip__2e1u8{bottom:38px}.IconInlineFileRights-module_position-top__rxJ3d .IconInlineFileRights-module_tooltip__2e1u8{top:38px}.IconInlineFileRights-module_tooltip__2e1u8:after{content:"";display:block;border:5px solid transparent;position:absolute;right:11px}.IconInlineFileRights-module_position-bottom__25azC .IconInlineFileRights-module_tooltip__2e1u8:after{border-top-color:rgba(17,17,17,.9);top:100%}.IconInlineFileRights-module_position-top__rxJ3d .IconInlineFileRights-module_tooltip__2e1u8:after{border-bottom-color:rgba(17,17,17,.9);bottom:100%}.IconInlineFileRights-module_tooltip__2e1u8 a{color:#fff;-webkit-text-decoration-color:hsla(0,0%,100%,.3);text-decoration-color:hsla(0,0%,100%,.3)}.IconInlineFileRights-module_tooltip__2e1u8 li{white-space:nowrap}.IconInlineFileRights-module_tooltip__2e1u8 span{color:hsla(0,0%,100%,.7)}.IconInlineFileRights-module_wrapper__2kQK_:focus-within .IconInlineFileRights-module_tooltip__2e1u8,.IconInlineFileRights-module_wrapper__2kQK_:hover .IconInlineFileRights-module_tooltip__2e1u8{visibility:visible;opacity:1}.IconInlineFileRights-module_scroller__1hT8t{overflow:auto;overflow-y:hidden;scrollbar-width:thin}.IconInlineFileRights-module_scroller__1hT8t::-webkit-scrollbar{height:12px}.IconInlineFileRights-module_scroller__1hT8t::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.9);border-radius:20px;border:3px solid rgba(17,17,17,.9)}
1
+ .colors-module_contentColorScope__1Nxn3{--theme-light-content-surface-color:var(--root-light-content-surface-color);--theme-dark-content-surface-color:var(--root-dark-content-surface-color);--theme-light-content-text-color:var(--root-light-content-text-color);--theme-dark-content-text-color:var(--root-dark-content-text-color)}.IconInlineFileRights-module_wrapper__2kQK_{--ai-indicator-letter-color:var(--theme-dark-content-surface-color,#101010)}.IconInlineFileRights-module_onLightBackground__GTXJd .IconInlineFileRights-module_button__o5ZmR{--ai-indicator-letter-color:var(--theme-light-content-surface-color,#fff)}.IconInlineFileRights-module_standAlone__15788{color:#fff;position:absolute;right:0;left:0;display:flex;justify-content:flex-end;pointer-events:none;z-index:2}.IconInlineFileRights-module_position-top__rxJ3d{top:0}.IconInlineFileRights-module_position-bottom__25azC{bottom:0}.IconInlineFileRights-module_standAlone__15788>*{pointer-events:auto}.IconInlineFileRights-module_button__o5ZmR{border:0;padding:0 10px;background-color:initial;box-sizing:border-box;min-width:44px;height:40px;margin:0;display:flex;align-items:center;justify-content:center;gap:4px;color:currentColor;cursor:pointer;position:relative;outline-offset:-5px}.IconInlineFileRights-module_button__o5ZmR,.IconInlineFileRights-module_tooltip__2e1u8{transition:opacity .2s,visibility .2s}.IconInlineFileRights-module_fadedOut__3A7WF .IconInlineFileRights-module_button__o5ZmR{opacity:.6}.IconInlineFileRights-module_wrapper__2kQK_:active .IconInlineFileRights-module_button__o5ZmR,.IconInlineFileRights-module_wrapper__2kQK_:focus .IconInlineFileRights-module_button__o5ZmR,.IconInlineFileRights-module_wrapper__2kQK_:hover .IconInlineFileRights-module_button__o5ZmR{opacity:1}.IconInlineFileRights-module_button__o5ZmR svg{width:23px;height:23px}.IconInlineFileRights-module_button__o5ZmR .IconInlineFileRights-module_aiIcon__33otY{width:19px;height:19px}.IconInlineFileRights-module_standAlone__15788 .IconInlineFileRights-module_button__o5ZmR svg{filter:drop-shadow(0 1px 4px #000)}.IconInlineFileRights-module_tooltip__2e1u8{font-size:13.5555px;font-family:sans-serif;line-height:1.4;position:absolute;right:5px;background-color:rgba(17,17,17,.9);border-radius:3px;color:#fff;padding:8px;visibility:hidden;opacity:0;text-align:right;margin-left:10px;box-sizing:border-box;max-width:95%;z-index:1}.IconInlineFileRights-module_position-bottom__25azC .IconInlineFileRights-module_tooltip__2e1u8{bottom:38px}.IconInlineFileRights-module_position-top__rxJ3d .IconInlineFileRights-module_tooltip__2e1u8{top:38px}.IconInlineFileRights-module_tooltip__2e1u8:after{content:"";display:block;border:5px solid transparent;position:absolute;right:11px}.IconInlineFileRights-module_position-bottom__25azC .IconInlineFileRights-module_tooltip__2e1u8:after{border-top-color:rgba(17,17,17,.9);top:100%}.IconInlineFileRights-module_position-top__rxJ3d .IconInlineFileRights-module_tooltip__2e1u8:after{border-bottom-color:rgba(17,17,17,.9);bottom:100%}.IconInlineFileRights-module_tooltip__2e1u8 a{color:#fff;-webkit-text-decoration-color:hsla(0,0%,100%,.3);text-decoration-color:hsla(0,0%,100%,.3)}.IconInlineFileRights-module_tooltip__2e1u8 [data-part]{white-space:nowrap}.IconInlineFileRights-module_tooltip__2e1u8 [data-label]{color:hsla(0,0%,100%,.7)}.IconInlineFileRights-module_wrapper__2kQK_:focus-within .IconInlineFileRights-module_tooltip__2e1u8,.IconInlineFileRights-module_wrapper__2kQK_:hover .IconInlineFileRights-module_tooltip__2e1u8{visibility:visible;opacity:1}.IconInlineFileRights-module_scroller__1hT8t{overflow:auto;overflow-y:hidden;scrollbar-width:thin}.IconInlineFileRights-module_scroller__1hT8t::-webkit-scrollbar{height:12px}.IconInlineFileRights-module_scroller__1hT8t::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.9);border-radius:20px;border:3px solid rgba(17,17,17,.9)}
@@ -1,43 +1,76 @@
1
- import { ThemeIcon, frontend } from 'pageflow-scrolled/frontend';
1
+ import { useDarkBackground, AiIndicatorIcon, ThemeIcon, frontend } from 'pageflow-scrolled/frontend';
2
2
  import React from 'react';
3
3
  import classNames from 'classnames';
4
4
 
5
- function _defineProperty(obj, key, value) {
6
- if (key in obj) {
7
- Object.defineProperty(obj, key, {
8
- value: value,
9
- enumerable: true,
10
- configurable: true,
11
- writable: true
12
- });
13
- } else {
14
- obj[key] = value;
15
- }
16
-
17
- return obj;
18
- }
19
-
20
- var styles = {"standAlone":"IconInlineFileRights-module_standAlone__15788","position-top":"IconInlineFileRights-module_position-top__rxJ3d","position-bottom":"IconInlineFileRights-module_position-bottom__25azC","button":"IconInlineFileRights-module_button__o5ZmR","tooltip":"IconInlineFileRights-module_tooltip__2e1u8","fadedOut":"IconInlineFileRights-module_fadedOut__3A7WF","wrapper":"IconInlineFileRights-module_wrapper__2kQK_","scroller":"IconInlineFileRights-module_scroller__1hT8t"};
5
+ var styles = {"darkContentSurfaceColor":"var(--theme-dark-content-surface-color, #101010)","lightContentSurfaceColor":"var(--theme-light-content-surface-color, #fff)","contentColorScope":"colors-module_contentColorScope__1Nxn3","wrapper":"IconInlineFileRights-module_wrapper__2kQK_ colors-module_contentColorScope__1Nxn3","onLightBackground":"IconInlineFileRights-module_onLightBackground__GTXJd","button":"IconInlineFileRights-module_button__o5ZmR","standAlone":"IconInlineFileRights-module_standAlone__15788","position-top":"IconInlineFileRights-module_position-top__rxJ3d","position-bottom":"IconInlineFileRights-module_position-bottom__25azC","tooltip":"IconInlineFileRights-module_tooltip__2e1u8","fadedOut":"IconInlineFileRights-module_fadedOut__3A7WF","aiIcon":"IconInlineFileRights-module_aiIcon__33otY","scroller":"IconInlineFileRights-module_scroller__1hT8t"};
21
6
 
22
- function IconInlineFileRights(_ref) {
23
- var context = _ref.context,
24
- position = _ref.position,
25
- playerControlsStandAlone = _ref.playerControlsStandAlone,
26
- playerControlsFadedOut = _ref.playerControlsFadedOut,
27
- children = _ref.children;
7
+ var _jsxFileName = "/home/tfischbach/code/pageflow/entry_types/scrolled/package/src/widgets/iconInlineFileRights/IconInlineFileRights.js";
8
+ function IconInlineFileRights({
9
+ context,
10
+ position,
11
+ playerControlsStandAlone,
12
+ playerControlsFadedOut,
13
+ hasRights,
14
+ hasAiIndicators,
15
+ children
16
+ }) {
17
+ const darkBackground = useDarkBackground();
28
18
  if (context === 'afterElement') {
29
19
  return null;
30
20
  }
31
21
  return /*#__PURE__*/React.createElement("div", {
32
- className: classNames(styles.wrapper, styles["position-".concat(position || 'bottom')], _defineProperty(_defineProperty({}, styles.fadedOut, context !== 'playerControls' || playerControlsFadedOut), styles.standAlone, context !== 'playerControls'))
22
+ className: classNames(styles.wrapper, styles[`position-${position || 'bottom'}`], {
23
+ [styles.fadedOut]: context !== 'playerControls' || playerControlsFadedOut,
24
+ [styles.standAlone]: context !== 'playerControls',
25
+ [styles.onLightBackground]: context === 'playerControls' && playerControlsStandAlone && !darkBackground
26
+ }),
27
+ __self: this,
28
+ __source: {
29
+ fileName: _jsxFileName,
30
+ lineNumber: 19,
31
+ columnNumber: 5
32
+ }
33
33
  }, /*#__PURE__*/React.createElement("button", {
34
- className: styles.button
35
- }, /*#__PURE__*/React.createElement(ThemeIcon, {
36
- name: "copyright"
34
+ className: styles.button,
35
+ __self: this,
36
+ __source: {
37
+ fileName: _jsxFileName,
38
+ lineNumber: 26,
39
+ columnNumber: 7
40
+ }
41
+ }, hasAiIndicators && /*#__PURE__*/React.createElement(AiIndicatorIcon, {
42
+ kind: "ai",
43
+ className: styles.aiIcon,
44
+ __self: this,
45
+ __source: {
46
+ fileName: _jsxFileName,
47
+ lineNumber: 27,
48
+ columnNumber: 29
49
+ }
50
+ }), hasRights && /*#__PURE__*/React.createElement(ThemeIcon, {
51
+ name: "copyright",
52
+ __self: this,
53
+ __source: {
54
+ fileName: _jsxFileName,
55
+ lineNumber: 28,
56
+ columnNumber: 23
57
+ }
37
58
  })), /*#__PURE__*/React.createElement("div", {
38
- className: styles.tooltip
59
+ className: styles.tooltip,
60
+ __self: this,
61
+ __source: {
62
+ fileName: _jsxFileName,
63
+ lineNumber: 30,
64
+ columnNumber: 7
65
+ }
39
66
  }, /*#__PURE__*/React.createElement("div", {
40
- className: styles.scroller
67
+ className: styles.scroller,
68
+ __self: this,
69
+ __source: {
70
+ fileName: _jsxFileName,
71
+ lineNumber: 31,
72
+ columnNumber: 9
73
+ }
41
74
  }, children)));
42
75
  }
43
76
 
@@ -4,12 +4,14 @@ import classNames from 'classnames';
4
4
 
5
5
  var styles = {"indicator":"IconScrollIndicator-module_indicator__2sC27","size-large":"IconScrollIndicator-module_size-large__Ym7cB","align-center":"IconScrollIndicator-module_align-center__3zoez","align-left":"IconScrollIndicator-module_align-left__3kHWt","align-right":"IconScrollIndicator-module_align-right__3TvRM","animation-smallBounce":"IconScrollIndicator-module_animation-smallBounce__2SngV","animation-largeBounce":"IconScrollIndicator-module_animation-largeBounce__LVzn_","bounce":"IconScrollIndicator-module_bounce__IrI-f"};
6
6
 
7
- function IconScrollIndicator(_ref) {
8
- var configuration = _ref.configuration,
9
- sectionLayout = _ref.sectionLayout;
10
- var ref = useRef();
11
- useEffect(function () {
12
- var animation = ref.current.animate({
7
+ var _jsxFileName = "/home/tfischbach/code/pageflow/entry_types/scrolled/package/src/widgets/iconScrollIndicator/IconScrollIndicator.js";
8
+ function IconScrollIndicator({
9
+ configuration,
10
+ sectionLayout
11
+ }) {
12
+ const ref = useRef();
13
+ useEffect(() => {
14
+ const animation = ref.current.animate({
13
15
  opacity: ['100%', '0%'],
14
16
  visibility: ['visible', 'hidden']
15
17
  }, {
@@ -20,17 +22,34 @@ function IconScrollIndicator(_ref) {
20
22
  rangeStart: 'exit-crossing 0%',
21
23
  rangeEnd: 'exit-crossing 100px'
22
24
  });
23
- return function () {
24
- return animation.cancel();
25
- };
25
+ return () => animation.cancel();
26
26
  }, []);
27
27
  return /*#__PURE__*/React.createElement("div", {
28
- className: classNames(styles.indicator, styles["animation-".concat(configuration.animation || 'smallBounce')], styles["size-".concat(configuration.size)], styles["align-".concat(getAlignment(configuration, sectionLayout))]),
29
- ref: ref
30
- }, /*#__PURE__*/React.createElement(WidgetSelectionRect, null, /*#__PURE__*/React.createElement(ThemeIcon, {
28
+ className: classNames(styles.indicator, styles[`animation-${configuration.animation || 'smallBounce'}`], styles[`size-${configuration.size}`], styles[`align-${getAlignment(configuration, sectionLayout)}`]),
29
+ ref: ref,
30
+ __self: this,
31
+ __source: {
32
+ fileName: _jsxFileName,
33
+ lineNumber: 34,
34
+ columnNumber: 5
35
+ }
36
+ }, /*#__PURE__*/React.createElement(WidgetSelectionRect, {
37
+ __self: this,
38
+ __source: {
39
+ fileName: _jsxFileName,
40
+ lineNumber: 39,
41
+ columnNumber: 7
42
+ }
43
+ }, /*#__PURE__*/React.createElement(ThemeIcon, {
31
44
  name: "scrollDown",
32
45
  width: 30,
33
- height: 30
46
+ height: 30,
47
+ __self: this,
48
+ __source: {
49
+ fileName: _jsxFileName,
50
+ lineNumber: 40,
51
+ columnNumber: 9
52
+ }
34
53
  })));
35
54
  }
36
55
  function getAlignment(configuration, sectionLayout) {
@@ -1 +1 @@
1
- .MainStorylineSheet-module_inactive__1Ji-y{position:sticky;top:0;height:100vh;overflow:clip}.MainStorylineSheet-module_scaler__jscn7{position:relative;transition:filter .3s ease,transform .3s ease;transform-origin:center calc(var(--previous-scroll-y) + 100vh)}.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{filter:blur(2px);top:calc(var(--previous-scroll-y)*-1)}@media (max-width:480px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.94)}}@media (min-width:481px) and (max-width:768px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.95)}}@media (min-width:769px) and (max-width:1024px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.96)}}@media (min-width:1025px) and (max-width:1440px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.97)}}@media (min-width:1441px) and (max-width:1920px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.98)}}@media (min-width:1921px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.99)}}
1
+ .MainStorylineSheet-module_inactive__1Ji-y{position:sticky;top:0;height:100vh;overflow:clip}.MainStorylineSheet-module_scaler__jscn7{position:relative;transform-origin:center calc(var(--previous-scroll-y) + 100vh)}@media (prefers-reduced-motion:no-preference){.MainStorylineSheet-module_scaler__jscn7{transition:filter .3s ease,transform .3s ease}}.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{filter:blur(2px);top:calc(var(--previous-scroll-y)*-1)}.MainStorylineSheet-module_fixedPositioningContainingBlock__3Pz_y{--fixed-positioning-containing-block-offset:var(--previous-scroll-y)}@media (max-width:480px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.94)}}@media (min-width:481px) and (max-width:768px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.95)}}@media (min-width:769px) and (max-width:1024px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.96)}}@media (min-width:1025px) and (max-width:1440px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.97)}}@media (min-width:1441px) and (max-width:1920px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.98)}}@media (min-width:1921px){.MainStorylineSheet-module_inactive__1Ji-y>.MainStorylineSheet-module_scaler__jscn7{transform:scale(.99)}}