@edrlab/thorium-web 1.1.7 → 1.2.1

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 (79) hide show
  1. package/dist/{ThPreferencesAdapter-B8AYujCA.d.mts → ThPreferencesAdapter-DrZ5_6Dv.d.mts} +4 -139
  2. package/dist/{ThSettingsWrapper-BlmAxcWF.d.mts → ThSettingsWrapper-8Kx0SnH4.d.mts} +1 -1
  3. package/dist/{actions-BRtHsxpm.d.mts → actions-D2CHvCHu.d.mts} +2 -2
  4. package/dist/{actionsReducer-bT0pfxLJ.d.mts → actionsReducer-kc-S130w.d.mts} +3 -24
  5. package/dist/{chunk-KJXHAJYK.mjs → chunk-4VHEHMJN.mjs} +128 -11
  6. package/dist/chunk-4VHEHMJN.mjs.map +1 -0
  7. package/dist/{chunk-6V3O7FCS.mjs → chunk-72XCX5TD.mjs} +3 -3
  8. package/dist/{chunk-6V3O7FCS.mjs.map → chunk-72XCX5TD.mjs.map} +1 -1
  9. package/dist/{chunk-YIW2OOMW.mjs → chunk-7NEQAW7J.mjs} +2 -2
  10. package/dist/chunk-7NEQAW7J.mjs.map +1 -0
  11. package/dist/{chunk-COQXDRKD.mjs → chunk-K3K7TUWM.mjs} +2 -2
  12. package/dist/chunk-K3K7TUWM.mjs.map +1 -0
  13. package/dist/chunk-P4V3LA5R.mjs +407 -0
  14. package/dist/chunk-P4V3LA5R.mjs.map +1 -0
  15. package/dist/{chunk-4C3UOTX4.mjs → chunk-PXAUQJEU.mjs} +172 -27
  16. package/dist/chunk-PXAUQJEU.mjs.map +1 -0
  17. package/dist/chunk-QPE574OW.mjs +913 -0
  18. package/dist/chunk-QPE574OW.mjs.map +1 -0
  19. package/dist/chunk-RRDEPGBK.mjs +75 -0
  20. package/dist/chunk-RRDEPGBK.mjs.map +1 -0
  21. package/dist/components/Epub/index.css +7 -0
  22. package/dist/components/Epub/index.css.map +1 -1
  23. package/dist/components/Epub/index.d.mts +17 -11
  24. package/dist/components/Epub/index.mjs +9 -828
  25. package/dist/components/Epub/index.mjs.map +1 -1
  26. package/dist/components/Misc/index.css +23 -0
  27. package/dist/components/Misc/index.css.map +1 -1
  28. package/dist/components/Misc/index.d.mts +10 -1
  29. package/dist/components/Misc/index.mjs +31 -3
  30. package/dist/components/Misc/index.mjs.map +1 -1
  31. package/dist/components/Reader/index.css +1290 -0
  32. package/dist/components/Reader/index.css.map +1 -0
  33. package/dist/components/Reader/index.d.mts +30 -0
  34. package/dist/components/Reader/index.mjs +79 -0
  35. package/dist/components/Reader/index.mjs.map +1 -0
  36. package/dist/components/WebPub/index.css +7 -0
  37. package/dist/components/WebPub/index.css.map +1 -1
  38. package/dist/components/WebPub/index.d.mts +16 -32
  39. package/dist/components/WebPub/index.mjs +9 -372
  40. package/dist/components/WebPub/index.mjs.map +1 -1
  41. package/dist/core/Components/index.d.mts +7 -6
  42. package/dist/core/Helpers/index.d.mts +1 -1
  43. package/dist/core/Hooks/index.d.mts +55 -6
  44. package/dist/core/Hooks/index.mjs +1 -1
  45. package/dist/errorHandler-CL2YIfQY.d.mts +26 -0
  46. package/dist/i18n/index.mjs +2 -2
  47. package/dist/immer.d-CoRThNOF.d.mts +23 -0
  48. package/dist/lib/index.d.mts +12 -162
  49. package/dist/lib/index.mjs +1 -1
  50. package/dist/locales/el/thorium-web.json +31 -0
  51. package/dist/locales/en/thorium-shared.json +84 -0
  52. package/dist/locales/en/thorium-web.json +10 -1
  53. package/dist/locales/et/thorium-shared.json +93 -2
  54. package/dist/locales/et/thorium-web.json +6 -2
  55. package/dist/locales/fi/thorium-shared.json +82 -8
  56. package/dist/locales/fi/thorium-web.json +2 -1
  57. package/dist/locales/fr/thorium-shared.json +100 -0
  58. package/dist/locales/it/thorium-shared.json +9 -0
  59. package/dist/locales/lt/thorium-shared.json +22 -13
  60. package/dist/locales/lt/thorium-web.json +2 -1
  61. package/dist/locales/pt-PT/thorium-shared.json +64 -1
  62. package/dist/locales/pt-PT/thorium-web.json +4 -3
  63. package/dist/locales/sv/thorium-shared.json +61 -3
  64. package/dist/locales/sv/thorium-web.json +4 -3
  65. package/dist/preferences/index.d.mts +8 -7
  66. package/dist/preferences/index.mjs +1 -1
  67. package/dist/settingsReducer-C1wwCAMv.d.mts +159 -0
  68. package/dist/{ui-BVlJcPL_.d.mts → ui-CamWuqOo.d.mts} +1 -1
  69. package/dist/useContrast-D6sjPjxy.d.mts +152 -0
  70. package/dist/{useEpubNavigator-CsraD65e.d.mts → useEpubNavigator-CwHJfoiV.d.mts} +1 -1
  71. package/dist/{usePreferences-rfT368__.d.mts → usePreferences-BXFJbval.d.mts} +1 -1
  72. package/dist/{StatefulReader-CjgFzHoO.d.mts → useReaderTransitions-guT-eA-Q.d.mts} +50 -50
  73. package/dist/{useWebPubNavigator-Che8r5Wg.d.mts → useWebPubNavigator-CuSNQKMw.d.mts} +1 -1
  74. package/package.json +5 -3
  75. package/dist/chunk-4C3UOTX4.mjs.map +0 -1
  76. package/dist/chunk-COQXDRKD.mjs.map +0 -1
  77. package/dist/chunk-KJXHAJYK.mjs.map +0 -1
  78. package/dist/chunk-YIW2OOMW.mjs.map +0 -1
  79. package/dist/useContrast-Cgsrl7GS.d.mts +0 -15
@@ -1,48 +1,32 @@
1
- import { S as StatefulReaderProps } from '../../StatefulReader-CjgFzHoO.mjs';
2
- export { a7 as ScrimPref, e as StatefulActionContainerProps, n as StatefulActionIcon, m as StatefulActionIconProps, d as StatefulActionTriggerProps, c as StatefulActionsMapObject, a8 as StatefulBottomSheet, a6 as StatefulBottomSheetProps, r as StatefulCollapsibleActionsBar, q as StatefulCollapsibleActionsBarProps, aa as StatefulDockedSheet, a9 as StatefulDockedSheetProps, A as StatefulDropdown, z as StatefulDropdownProps, Z as StatefulFontFamily, ac as StatefulFullScreenSheet, ab as StatefulFullScreenSheetProps, f as StatefulFullscreenTrigger, y as StatefulGroupWrapper, x as StatefulGroupWrapperProps, $ as StatefulHyphens, g as StatefulJumpToPositionContainer, h as StatefulJumpToPositionTrigger, N as StatefulLetterSpacing, O as StatefulLineHeight, C as StatefulNumberField, B as StatefulNumberFieldProps, t as StatefulOverflowMenu, p as StatefulOverflowMenuItem, o as StatefulOverflowMenuItemProps, s as StatefulOverflowMenuProps, P as StatefulParagraphIndent, Q as StatefulParagraphSpacing, ae as StatefulPopoverSheet, ad as StatefulPopoverSheetProps, ah as StatefulPreferencesProvider, a4 as StatefulPublisherStyles, E as StatefulRadioGroup, D as StatefulRadioGroupProps, i as StatefulSettingsContainer, M as StatefulSettingsItemProps, j as StatefulSettingsTrigger, ag as StatefulSheet, af as StatefulSheetWrapper, G as StatefulSlider, F as StatefulSliderProps, R as StatefulSpacingGroup, U as StatefulSpacingGroupContainer, V as StatefulSpacingPresets, I as StatefulSwitch, H as StatefulSwitchProps, a0 as StatefulTextAlign, a1 as StatefulTextGroup, a2 as StatefulTextGroupContainer, a3 as StatefulTextNormalize, k as StatefulTocContainer, l as StatefulTocTrigger, W as StatefulWordSpacing, a5 as StatefulZoom, T as ThPlugin, _ as UnstableStatefulFontWeight, w as createDefaultPlugin, v as useDocking, K as useGridNavigation, J as useGridNavigationProps, L as useGridTemplate, X as useLineHeight, u as useNavigator, a as usePublication, b as useReaderTransitions, Y as useSpacingPresets } from '../../StatefulReader-CjgFzHoO.mjs';
1
+ import { ai as StatefulReaderProps } from '../../useReaderTransitions-guT-eA-Q.mjs';
2
+ export { a6 as ScrimPref, d as StatefulActionContainerProps, m as StatefulActionIcon, l as StatefulActionIconProps, c as StatefulActionTriggerProps, S as StatefulActionsMapObject, a7 as StatefulBottomSheet, a5 as StatefulBottomSheetProps, q as StatefulCollapsibleActionsBar, p as StatefulCollapsibleActionsBarProps, a9 as StatefulDockedSheet, a8 as StatefulDockedSheetProps, z as StatefulDropdown, y as StatefulDropdownProps, Y as StatefulFontFamily, ab as StatefulFullScreenSheet, aa as StatefulFullScreenSheetProps, e as StatefulFullscreenTrigger, x as StatefulGroupWrapper, w as StatefulGroupWrapperProps, _ as StatefulHyphens, f as StatefulJumpToPositionContainer, g as StatefulJumpToPositionTrigger, M as StatefulLetterSpacing, N as StatefulLineHeight, B as StatefulNumberField, A as StatefulNumberFieldProps, s as StatefulOverflowMenu, o as StatefulOverflowMenuItem, n as StatefulOverflowMenuItemProps, r as StatefulOverflowMenuProps, O as StatefulParagraphIndent, P as StatefulParagraphSpacing, ad as StatefulPopoverSheet, ac as StatefulPopoverSheetProps, ag as StatefulPreferencesProvider, a3 as StatefulPublisherStyles, D as StatefulRadioGroup, C as StatefulRadioGroupProps, h as StatefulSettingsContainer, L as StatefulSettingsItemProps, i as StatefulSettingsTrigger, af as StatefulSheet, ae as StatefulSheetWrapper, F as StatefulSlider, E as StatefulSliderProps, Q as StatefulSpacingGroup, R as StatefulSpacingGroupContainer, U as StatefulSpacingPresets, H as StatefulSwitch, G as StatefulSwitchProps, $ as StatefulTextAlign, a0 as StatefulTextGroup, a1 as StatefulTextGroupContainer, a2 as StatefulTextNormalize, j as StatefulTocContainer, k as StatefulTocTrigger, V as StatefulWordSpacing, a4 as StatefulZoom, T as ThPlugin, Z as UnstableStatefulFontWeight, v as createDefaultPlugin, t as useDocking, J as useGridNavigation, I as useGridNavigationProps, K as useGridTemplate, W as useLineHeight, u as useNavigator, a as usePublication, b as useReaderTransitions, X as useSpacingPresets } from '../../useReaderTransitions-guT-eA-Q.mjs';
3
3
  export { canRenderProgressionFormat, getBestMatchingProgressionFormat, getPlatform, getSupportedProgressionFormats, isActiveElement, isIOSish, isInteractiveElement, isIpadOS, isKeyboardTriggered, isMacish, makeBreakpointsMap, propsToCSSVars } from '../../core/Helpers/index.mjs';
4
4
  export { U as UnstableKey, a as UnstableMetaKey, c as UnstableMetaKeys, g as UnstablePShortcut, b as UnstablePlatformModifier, f as UnstableShortcut, d as UnstableShortcutMetaKeywords, e as UnstableShortcutRepresentation, j as buildShortcut, h as defaultPlatformModifier, i as getPlatformModifier, m as metaKeys } from '../../keyboardUtilities-BWAyLS_D.mjs';
5
- import { FontFamilyStateObject } from '../../lib/index.mjs';
6
- export { AppDispatch, AppState, AppStore, L10nObject, LineLengthStateObject, PaginatedAffordanceObject, PaginatedAffordancePayload, PaginatedAffordanceProperties, PreferencesReducerState, PublicationReducerState, ReaderReducerState, RenditionChangePayload, RenditionObject, RenditionProperties, RootState, SetFontFamilyPayload, SetLineLengthPayload, SetSpacingPresetPayload, SetSpacingSettingPayload, SettingsReducerState, SpacingStateKey, SpacingStateObject, ThReduxPreferencesAdapter, ThStoreProvider, ThemeReducerState, ThemeStateChangePayload, ThemeStateObject, UIChangePayload, WebPubSettingsReducerState, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, preferencesSlice, publicationSlice, readerSlice, setBreakpoint, setColorScheme, setColumnCount, setContrast, setDirection, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPositionsList, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRunningHeadFormat, setScroll, setScrollAffordance, setScrollAffordances, setSettingsContainer, setSpacingPreset, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setUI, setUserNavigated, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice } from '../../lib/index.mjs';
7
- export { f as ActionOverflowOpenPayload, c as ActionStateDockPayload, g as ActionStateDockedPayload, a as ActionStateObject, d as ActionStateOpenPayload, h as ActionStateSlotPayload, i as ActionStateSlotWidthPayload, e as ActionStateTogglePayload, k as ActionsReducerState, A as ActionsStateKeys, j as DockState, D as DockStateObject, O as OverflowStateKeys, b as OverflowStateObject, l as actionsSlice, o as activateDockPanel, q as collapseDockPanel, p as deactivateDockPanel, m as dockAction, r as expandDockPanel, s as setActionOpen, u as setDockPanelWidth, n as setOverflow, t as toggleActionOpen } from '../../actionsReducer-bT0pfxLJ.mjs';
8
- import { T as ThLineHeightOptions, a as ThTextAlignOptions } from '../../ThPreferencesAdapter-B8AYujCA.mjs';
9
- export { u as useTheming } from '../../ThPreferencesAdapter-B8AYujCA.mjs';
10
- export { T as ThPreferencesProvider, u as usePreferences } from '../../usePreferences-rfT368__.mjs';
5
+ export { AppDispatch, AppState, AppStore, L10nObject, PaginatedAffordanceObject, PaginatedAffordancePayload, PaginatedAffordanceProperties, PreferencesReducerState, PublicationReducerState, ReaderProfile, ReaderReducerState, RenditionChangePayload, RenditionObject, RenditionProperties, RootState, ThReduxPreferencesAdapter, ThStoreProvider, ThemeReducerState, ThemeStateChangePayload, ThemeStateObject, UIChangePayload, WebPubSettingsReducerState, initialWebPubSettingsState, makeStore, preferencesSlice, publicationSlice, readerSlice, setBreakpoint, setColorScheme, setContrast, setDirection, setFXL, setFontLanguage, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setImmersive, setL10n, setLoading, setMonochrome, setPaginatedAffordance, setPlatformModifier, setPositionsList, setProgressionFormat, setPublicationEnd, setPublicationStart, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRunningHeadFormat, setScrollAffordance, setScrollAffordances, setSettingsContainer, setTheme, setTimeline, setTocEntry, setTocTree, setUI, setUserNavigated, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, themeSlice, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice } from '../../lib/index.mjs';
6
+ export { f as ActionOverflowOpenPayload, c as ActionStateDockPayload, g as ActionStateDockedPayload, a as ActionStateObject, d as ActionStateOpenPayload, h as ActionStateSlotPayload, i as ActionStateSlotWidthPayload, e as ActionStateTogglePayload, k as ActionsReducerState, A as ActionsStateKeys, j as DockState, D as DockStateObject, O as OverflowStateKeys, b as OverflowStateObject, l as actionsSlice, o as activateDockPanel, q as collapseDockPanel, p as deactivateDockPanel, m as dockAction, r as expandDockPanel, s as setActionOpen, u as setDockPanelWidth, n as setOverflow, t as toggleActionOpen } from '../../actionsReducer-kc-S130w.mjs';
7
+ export { F as FontFamilyStateObject, L as LineLengthStateObject, S as SetFontFamilyPayload, a as SetLineLengthPayload, c as SetSpacingPresetPayload, b as SetSpacingSettingPayload, f as SettingsReducerState, d as SpacingStateKey, e as SpacingStateObject, h as handleSpacingSetting, i as initialSettingsState, g as setColumnCount, l as setFontFamily, j as setFontSize, k as setFontWeight, m as setHyphens, n as setLetterSpacing, o as setLineHeight, p as setLineLength, q as setParagraphIndent, r as setParagraphSpacing, t as setPublisherStyles, u as setScroll, v as setSpacingPreset, w as setTextAlign, x as setTextNormalization, y as setWordSpacing, s as settingsSlice } from '../../settingsReducer-C1wwCAMv.mjs';
8
+ export { u as useTheming } from '../../ThPreferencesAdapter-DrZ5_6Dv.mjs';
9
+ export { T as ThPreferencesProvider, u as usePreferences } from '../../usePreferences-BXFJbval.mjs';
11
10
  export { Trans } from 'react-i18next';
12
11
  export { DEFAULT_CONFIG, ThI18nProvider, initI18n, useI18n } from '../../i18n/index.mjs';
13
12
  import * as react_jsx_runtime from 'react/jsx-runtime';
14
- export { u as useWebPubNavigator } from '../../useWebPubNavigator-Che8r5Wg.mjs';
13
+ export { u as useWebPubNavigator } from '../../useWebPubNavigator-CuSNQKMw.mjs';
15
14
  export { default as i18n } from 'i18next';
16
15
  import 'react-aria-components';
17
- import '../../actions-BRtHsxpm.mjs';
18
- import '../../ui-BVlJcPL_.mjs';
19
- import '../../ThSettingsWrapper-BlmAxcWF.mjs';
16
+ import '../../actions-D2CHvCHu.mjs';
17
+ import '../../ui-CamWuqOo.mjs';
18
+ import '../../ThSettingsWrapper-8Kx0SnH4.mjs';
20
19
  import 'react';
21
20
  import 'react-aria';
22
- import '../../useContrast-Cgsrl7GS.mjs';
21
+ import '../../useContrast-D6sjPjxy.mjs';
23
22
  import '@readium/shared';
23
+ import '../../errorHandler-CL2YIfQY.mjs';
24
24
  import '../../useTimeline-DyMx_aWY.mjs';
25
25
  import '@reduxjs/toolkit';
26
+ import '../../immer.d-CoRThNOF.mjs';
26
27
  import 'react-redux';
27
28
  import '@readium/navigator';
28
29
 
29
- interface WebPubCSSSettings {
30
- fontFamily: FontFamilyStateObject;
31
- fontWeight: number;
32
- hyphens: boolean | null;
33
- letterSpacing: number | null;
34
- lineHeight: ThLineHeightOptions | null;
35
- paragraphIndent: number | null;
36
- paragraphSpacing: number | null;
37
- publisherStyles: boolean;
38
- textAlign: ThTextAlignOptions | null;
39
- textNormalization: boolean;
40
- wordSpacing: number | null;
41
- zoom: number;
42
- }
43
- interface WebPubStatelessCache {
44
- settings: WebPubCSSSettings;
45
- }
46
- declare const ExperimentalWebPubStatefulReader: ({ rawManifest, selfHref, plugins }: StatefulReaderProps) => react_jsx_runtime.JSX.Element | null;
30
+ declare const ExperimentalWebPubStatefulReader: ({ publication, localDataKey, plugins, positionStorage }: StatefulReaderProps) => react_jsx_runtime.JSX.Element | null;
47
31
 
48
- export { ExperimentalWebPubStatefulReader, FontFamilyStateObject, type WebPubCSSSettings, type WebPubStatelessCache };
32
+ export { ExperimentalWebPubStatefulReader };
@@ -1,382 +1,19 @@
1
- import { ThPluginRegistry, createDefaultPlugin, ThPluginProvider, useSpacingPresets, useFonts, useSettingsComponentStatus, useLineHeight, Peripherals, NavigatorProvider, thorium_web_reader_app_default, StatefulDockingWrapper, StatefulReaderHeader, StatefulReaderFooter, getReaderClassNames } from '../../chunk-4C3UOTX4.mjs';
2
- export { StatefulActionIcon, StatefulBottomSheet, StatefulCollapsibleActionsBar, StatefulDockedSheet, StatefulDropdown, StatefulFontFamily, StatefulFullScreenSheet, StatefulFullscreenTrigger, StatefulGroupWrapper, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLetterSpacing, StatefulLineHeight, StatefulNumberField, StatefulOverflowMenu, StatefulOverflowMenuItem, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, StatefulSettingsContainer, StatefulSettingsTrigger, StatefulSheetWrapper, StatefulSlider, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTocContainer, StatefulTocTrigger, StatefulWordSpacing, StatefulZoom, UnstableStatefulFontWeight, createDefaultPlugin, useDocking, useGridNavigation, useGridTemplate, useLineHeight, useNavigator, usePublication, useReaderTransitions, useSpacingPresets } from '../../chunk-4C3UOTX4.mjs';
1
+ export { ExperimentalWebPubStatefulReader } from '../../chunk-P4V3LA5R.mjs';
2
+ export { StatefulActionIcon, StatefulBottomSheet, StatefulCollapsibleActionsBar, StatefulDockedSheet, StatefulDropdown, StatefulFontFamily, StatefulFullScreenSheet, StatefulFullscreenTrigger, StatefulGroupWrapper, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLetterSpacing, StatefulLineHeight, StatefulNumberField, StatefulOverflowMenu, StatefulOverflowMenuItem, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, StatefulSettingsContainer, StatefulSettingsTrigger, StatefulSheetWrapper, StatefulSlider, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTocContainer, StatefulTocTrigger, StatefulWordSpacing, StatefulZoom, UnstableStatefulFontWeight, createDefaultPlugin, useDocking, useGridNavigation, useGridTemplate, useLineHeight, useNavigator, usePublication, useReaderTransitions, useSpacingPresets } from '../../chunk-PXAUQJEU.mjs';
3
3
  export { canRenderProgressionFormat, getBestMatchingProgressionFormat, getSupportedProgressionFormats, isActiveElement, isInteractiveElement, isKeyboardTriggered, makeBreakpointsMap } from '../../chunk-47AIIJFO.mjs';
4
- import { useFullscreen, useWebPubNavigator, useLocalStorage, useTimeline, useDocumentTitle } from '../../chunk-KJXHAJYK.mjs';
5
- export { useWebPubNavigator } from '../../chunk-KJXHAJYK.mjs';
6
- export { ThI18nProvider, Trans } from '../../chunk-6V3O7FCS.mjs';
7
- import { useAppSelector, useAppDispatch, setReducedTransparency, setReducedMotion, setMonochrome, setForcedColors, setContrast, setColorScheme, setBreakpoint, setFullscreen, setTimeline, setHovering, toggleImmersive, useAppStore, toggleActionOpen, setDirection, setPlatformModifier, setReaderProfile, setRTL, setFontLanguage, setHasDisplayTransformability, setLoading, setPublicationStart, setPublicationEnd } from '../../chunk-COQXDRKD.mjs';
8
- export { ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, collapseDockPanel, deactivateDockPanel, dockAction, expandDockPanel, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setBreakpoint, setColorScheme, setColumnCount, setContrast, setDirection, setDockPanelWidth, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPositionsList, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRunningHeadFormat, setScroll, setScrollAffordance, setScrollAffordances, setSettingsContainer, setSpacingPreset, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setUI, setUserNavigated, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice } from '../../chunk-COQXDRKD.mjs';
9
- import { usePreferences, useTheming, prefixString, resolveContentProtectionConfig } from '../../chunk-YIW2OOMW.mjs';
10
- export { ThPreferencesProvider, usePreferences, useTheming } from '../../chunk-YIW2OOMW.mjs';
11
- import { propsToCSSVars } from '../../chunk-XVSFXHYB.mjs';
4
+ export { useWebPubNavigator } from '../../chunk-4VHEHMJN.mjs';
5
+ export { ThI18nProvider, Trans } from '../../chunk-72XCX5TD.mjs';
6
+ export { ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, collapseDockPanel, deactivateDockPanel, dockAction, expandDockPanel, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setBreakpoint, setColorScheme, setColumnCount, setContrast, setDirection, setDockPanelWidth, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPositionsList, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRunningHeadFormat, setScroll, setScrollAffordance, setScrollAffordances, setSettingsContainer, setSpacingPreset, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setUI, setUserNavigated, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice } from '../../chunk-K3K7TUWM.mjs';
7
+ export { ThPreferencesProvider, usePreferences, useTheming } from '../../chunk-7NEQAW7J.mjs';
12
8
  export { propsToCSSVars } from '../../chunk-XVSFXHYB.mjs';
13
9
  import '../../chunk-GFSLVQIG.mjs';
14
- import { getPlatformModifier } from '../../chunk-5LUMM7FW.mjs';
15
10
  export { UnstableShortcutMetaKeywords, UnstableShortcutRepresentation, buildShortcut, defaultPlatformModifier, getPlatform, getPlatformModifier, isIOSish, isIpadOS, isMacish, metaKeys } from '../../chunk-5LUMM7FW.mjs';
16
11
  import '../../chunk-NQ2ZSGCX.mjs';
17
- import { useI18n } from '../../chunk-IYAFKTPL.mjs';
18
- export { DEFAULT_CONFIG, i18n, initI18n, useI18n } from '../../chunk-IYAFKTPL.mjs';
19
- import '../../chunk-B3WDMWCT.mjs';
12
+ import '../../chunk-RRDEPGBK.mjs';
20
13
  import '../../chunk-NYZBHYW2.mjs';
21
14
  import '../../chunk-YZ73DHRU.mjs';
15
+ export { DEFAULT_CONFIG, i18n, initI18n, useI18n } from '../../chunk-IYAFKTPL.mjs';
16
+ import '../../chunk-B3WDMWCT.mjs';
22
17
  import '../../chunk-MLEYTQGK.mjs';
23
- import { useState, useEffect, useRef, useCallback } from 'react';
24
- import { I18nProvider } from 'react-aria';
25
- import { HttpFetcher, Manifest, Publication, ReadingProgression, Feature, Locator } from '@readium/shared';
26
- import classNames from 'classnames';
27
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
28
-
29
- var ExperimentalWebPubStatefulReader = ({
30
- rawManifest,
31
- selfHref,
32
- plugins
33
- }) => {
34
- const [pluginsRegistered, setPluginsRegistered] = useState(false);
35
- useEffect(() => {
36
- if (plugins && plugins.length > 0) {
37
- plugins.forEach((plugin) => {
38
- ThPluginRegistry.register(plugin);
39
- });
40
- } else {
41
- ThPluginRegistry.register(createDefaultPlugin());
42
- }
43
- setPluginsRegistered(true);
44
- }, [plugins]);
45
- if (!pluginsRegistered) {
46
- return null;
47
- }
48
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ThPluginProvider, { children: /* @__PURE__ */ jsx(WebPubStatefulReaderInner, { rawManifest, selfHref }) }) });
49
- };
50
- var WebPubStatefulReaderInner = ({ rawManifest, selfHref }) => {
51
- const { preferences, resolveFontLanguage, getFontMetadata, getFontInjectables } = usePreferences();
52
- const { t } = useI18n();
53
- const { getEffectiveSpacingValue } = useSpacingPresets();
54
- const { injectFontResources, removeFontResources } = useFonts();
55
- const { isComponentUsed: isFontFamilyUsed } = useSettingsComponentStatus({
56
- settingsKey: "fontFamily" /* fontFamily */,
57
- publicationType: "webpub",
58
- componentType: "text"
59
- });
60
- const [publication, setPublication] = useState(null);
61
- const container = useRef(null);
62
- const localDataKey = useRef(`${selfHref}-current-location`);
63
- const textAlign = useAppSelector((state) => state.webPubSettings.textAlign);
64
- const fontFamily = useAppSelector((state) => state.webPubSettings.fontFamily);
65
- const fontWeight = useAppSelector((state) => state.webPubSettings.fontWeight);
66
- const hyphens = useAppSelector((state) => state.webPubSettings.hyphens);
67
- const letterSpacing = getEffectiveSpacingValue("letterSpacing" /* letterSpacing */);
68
- const lineHeight = getEffectiveSpacingValue("lineHeight" /* lineHeight */);
69
- const paragraphIndent = getEffectiveSpacingValue("paragraphIndent" /* paragraphIndent */);
70
- const paragraphSpacing = getEffectiveSpacingValue("paragraphSpacing" /* paragraphSpacing */);
71
- const publisherStyles = useAppSelector((state) => state.webPubSettings.publisherStyles);
72
- const textNormalization = useAppSelector((state) => state.webPubSettings.textNormalization);
73
- const wordSpacing = getEffectiveSpacingValue("wordSpacing" /* wordSpacing */);
74
- const theme = "light" /* light */;
75
- const zoom = useAppSelector((state) => state.webPubSettings.zoom);
76
- const isImmersive = useAppSelector((state) => state.reader.isImmersive);
77
- const isHovering = useAppSelector((state) => state.reader.isHovering);
78
- const layoutUI = preferences.theming.layout.ui?.webPub || "stacked-ui" /* stacked */;
79
- useTheming({
80
- theme,
81
- themeKeys: preferences.theming.themes.keys,
82
- systemKeys: preferences.theming.themes.systemThemes,
83
- breakpointsMap: preferences.theming.breakpoints,
84
- initProps: {
85
- ...propsToCSSVars(preferences.theming.arrow, { prefix: prefixString("arrow") }),
86
- ...propsToCSSVars(preferences.theming.icon, { prefix: prefixString("icon") }),
87
- ...propsToCSSVars(preferences.theming.layout, {
88
- prefix: prefixString("layout"),
89
- exclude: ["ui"]
90
- })
91
- },
92
- onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),
93
- onColorSchemeChange: (colorScheme) => dispatch(setColorScheme(colorScheme)),
94
- onContrastChange: (contrast) => dispatch(setContrast(contrast)),
95
- onForcedColorsChange: (forcedColors) => dispatch(setForcedColors(forcedColors)),
96
- onMonochromeChange: (isMonochrome) => dispatch(setMonochrome(isMonochrome)),
97
- onReducedMotionChange: (reducedMotion) => dispatch(setReducedMotion(reducedMotion)),
98
- onReducedTransparencyChange: (reducedTransparency) => dispatch(setReducedTransparency(reducedTransparency))
99
- });
100
- const dispatch = useAppDispatch();
101
- const onFsChange = useCallback((isFullscreen) => {
102
- dispatch(setFullscreen(isFullscreen));
103
- }, [dispatch]);
104
- const fs = useFullscreen(onFsChange);
105
- const webPubNavigator = useWebPubNavigator();
106
- const {
107
- WebPubNavigatorLoad,
108
- WebPubNavigatorDestroy,
109
- currentPositions,
110
- canGoBackward,
111
- canGoForward
112
- } = webPubNavigator;
113
- const { setLocalData, getLocalData, localData } = useLocalStorage(localDataKey.current);
114
- const timeline = useTimeline({
115
- publication,
116
- currentLocation: localData,
117
- currentPositions: currentPositions() || [],
118
- positionsList: void 0,
119
- onChange: (timeline2) => {
120
- dispatch(setTimeline(timeline2));
121
- }
122
- });
123
- const lineHeightOptions = useLineHeight();
124
- const documentTitleFormat = preferences.metadata?.documentTitle?.format;
125
- let documentTitle;
126
- if (documentTitleFormat) {
127
- if (typeof documentTitleFormat === "object" && "key" in documentTitleFormat) {
128
- const translatedTitle = t(documentTitleFormat.key);
129
- documentTitle = translatedTitle !== documentTitleFormat.key ? translatedTitle : documentTitleFormat.fallback;
130
- } else {
131
- switch (documentTitleFormat) {
132
- case "title" /* title */:
133
- documentTitle = timeline?.title;
134
- break;
135
- case "chapter" /* chapter */:
136
- documentTitle = timeline?.progression?.currentChapter;
137
- break;
138
- case "titleAndChapter" /* titleAndChapter */:
139
- if (timeline?.title && timeline?.progression?.currentChapter) {
140
- documentTitle = `${timeline.title} \u2013 ${timeline.progression.currentChapter}`;
141
- }
142
- break;
143
- case "none" /* none */:
144
- documentTitle = void 0;
145
- break;
146
- default:
147
- documentTitle = documentTitleFormat;
148
- break;
149
- }
150
- }
151
- }
152
- useDocumentTitle(documentTitle);
153
- const cache = useRef({
154
- settings: {
155
- fontFamily,
156
- fontWeight,
157
- hyphens,
158
- letterSpacing,
159
- lineHeight,
160
- paragraphIndent,
161
- paragraphSpacing,
162
- publisherStyles,
163
- textAlign,
164
- textNormalization,
165
- wordSpacing,
166
- zoom
167
- }
168
- });
169
- const toggleIsImmersive = useCallback(() => {
170
- dispatch(setHovering(false));
171
- dispatch(toggleImmersive());
172
- }, [dispatch]);
173
- const p = new Peripherals(useAppStore(), preferences.actions, {
174
- moveTo: () => {
175
- },
176
- goProgression: () => {
177
- },
178
- toggleAction: (actionKey) => {
179
- switch (actionKey) {
180
- case "fullscreen" /* fullscreen */:
181
- fs.handleFullscreen();
182
- break;
183
- case "settings" /* settings */:
184
- case "toc" /* toc */:
185
- dispatch(toggleActionOpen({
186
- key: actionKey
187
- }));
188
- break;
189
- }
190
- }
191
- });
192
- const listeners = {
193
- frameLoaded: async function(_wnd) {
194
- p.observe(window);
195
- },
196
- positionChanged: async function(locator) {
197
- setLocalData(locator);
198
- if (canGoBackward()) {
199
- dispatch(setPublicationStart(false));
200
- } else {
201
- dispatch(setPublicationStart(true));
202
- }
203
- if (canGoForward()) {
204
- dispatch(setPublicationEnd(false));
205
- } else {
206
- dispatch(setPublicationEnd(true));
207
- }
208
- },
209
- tap: function(_e) {
210
- toggleIsImmersive();
211
- return true;
212
- },
213
- click: function(_e) {
214
- return false;
215
- },
216
- zoom: function(_scale) {
217
- },
218
- scroll: function(_delta) {
219
- },
220
- customEvent: function(_key, _data) {
221
- },
222
- handleLocator: function(locator) {
223
- const href = locator.href;
224
- if (href.startsWith("http://") || href.startsWith("https://") || href.startsWith("mailto:") || href.startsWith("tel:")) {
225
- if (confirm(`Open "${href}" ?`)) window.open(href, "_blank");
226
- } else {
227
- console.warn("Unhandled locator", locator);
228
- }
229
- return false;
230
- },
231
- textSelected: function(_selection) {
232
- },
233
- contentProtection: function(_type, _data) {
234
- },
235
- contextMenu: function(_data) {
236
- },
237
- peripheral: function(_data) {
238
- }
239
- };
240
- useEffect(() => {
241
- cache.current.settings.fontFamily = fontFamily;
242
- }, [fontFamily]);
243
- useEffect(() => {
244
- cache.current.settings.fontWeight = fontWeight;
245
- }, [fontWeight]);
246
- useEffect(() => {
247
- cache.current.settings.hyphens = hyphens;
248
- }, [hyphens]);
249
- useEffect(() => {
250
- cache.current.settings.letterSpacing = letterSpacing;
251
- }, [letterSpacing]);
252
- useEffect(() => {
253
- cache.current.settings.lineHeight = lineHeight;
254
- }, [lineHeight]);
255
- useEffect(() => {
256
- cache.current.settings.paragraphIndent = paragraphIndent;
257
- }, [paragraphIndent]);
258
- useEffect(() => {
259
- cache.current.settings.paragraphSpacing = paragraphSpacing;
260
- }, [paragraphSpacing]);
261
- useEffect(() => {
262
- cache.current.settings.textAlign = textAlign;
263
- }, [textAlign]);
264
- useEffect(() => {
265
- cache.current.settings.textNormalization = textNormalization;
266
- }, [textNormalization]);
267
- useEffect(() => {
268
- cache.current.settings.wordSpacing = wordSpacing;
269
- }, [wordSpacing]);
270
- useEffect(() => {
271
- cache.current.settings.zoom = zoom;
272
- }, [zoom]);
273
- useEffect(() => {
274
- preferences.direction && dispatch(setDirection(preferences.direction));
275
- dispatch(setPlatformModifier(getPlatformModifier()));
276
- }, [preferences.direction, dispatch]);
277
- useEffect(() => {
278
- const fetcher = new HttpFetcher(void 0, selfHref);
279
- const manifest = Manifest.deserialize(rawManifest);
280
- manifest.setSelfLink(selfHref);
281
- setPublication(new Publication({
282
- manifest,
283
- fetcher
284
- }));
285
- dispatch(setReaderProfile("webPub"));
286
- }, [rawManifest, selfHref, dispatch]);
287
- useEffect(() => {
288
- if (!publication) return;
289
- dispatch(setRTL(publication.metadata.effectiveReadingProgression === ReadingProgression.rtl));
290
- const resolvedMainLanguage = resolveFontLanguage(publication.metadata.languages?.[0], publication.metadata.effectiveReadingProgression);
291
- dispatch(setFontLanguage(resolvedMainLanguage));
292
- const displayTransformability = publication.metadata.accessibility?.feature?.some((feature) => feature && feature.value === Feature.DISPLAY_TRANSFORMABILITY.value);
293
- dispatch(setHasDisplayTransformability(displayTransformability));
294
- const initialPosition = getLocalData();
295
- const webPubPreferences = {
296
- zoom: cache.current.settings.zoom
297
- };
298
- let injectables = void 0;
299
- if (displayTransformability) {
300
- webPubPreferences.fontFamily = getFontMetadata(cache.current.settings.fontFamily[resolvedMainLanguage] ?? "")?.fontStack || null;
301
- webPubPreferences.fontWeight = cache.current.settings.fontWeight;
302
- webPubPreferences.hyphens = cache.current.settings.hyphens;
303
- webPubPreferences.letterSpacing = cache.current.settings.letterSpacing;
304
- webPubPreferences.lineHeight = cache.current.settings.lineHeight === null ? null : lineHeightOptions[cache.current.settings.lineHeight];
305
- webPubPreferences.paragraphIndent = cache.current.settings.paragraphIndent;
306
- webPubPreferences.paragraphSpacing = cache.current.settings.paragraphSpacing;
307
- webPubPreferences.textAlign = cache.current.settings.textAlign;
308
- webPubPreferences.textNormalization = cache.current.settings.textNormalization;
309
- webPubPreferences.wordSpacing = cache.current.settings.wordSpacing;
310
- if (isFontFamilyUsed) {
311
- const fontResources = getFontInjectables({ language: resolvedMainLanguage });
312
- if (fontResources) {
313
- injectFontResources(getFontInjectables(void 0, true));
314
- injectables = {
315
- allowedDomains: fontResources.allowedDomains,
316
- rules: [{
317
- resources: [/\.xhtml$/, /\.html$/],
318
- prepend: fontResources.prepend,
319
- append: fontResources.append
320
- }]
321
- };
322
- }
323
- }
324
- }
325
- WebPubNavigatorLoad({
326
- container: container.current,
327
- publication,
328
- listeners,
329
- initialPosition: initialPosition ? new Locator(initialPosition) : void 0,
330
- preferences: webPubPreferences,
331
- defaults: {
332
- experiments: preferences.experiments?.webPub || null
333
- },
334
- injectables,
335
- contentProtection: resolveContentProtectionConfig(preferences.contentProtection, t)
336
- }, () => {
337
- p.observe(window);
338
- });
339
- dispatch(setLoading(false));
340
- return () => {
341
- WebPubNavigatorDestroy(() => p.destroy());
342
- removeFontResources();
343
- };
344
- }, [publication, preferences, isFontFamilyUsed, injectFontResources, removeFontResources]);
345
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(I18nProvider, { locale: preferences.locale, children: /* @__PURE__ */ jsx(NavigatorProvider, { navigator: webPubNavigator, children: /* @__PURE__ */ jsx("main", { className: thorium_web_reader_app_default.main, children: /* @__PURE__ */ jsx(StatefulDockingWrapper, { children: /* @__PURE__ */ jsxs(
346
- "div",
347
- {
348
- className: classNames(
349
- getReaderClassNames({
350
- isScroll: true,
351
- isImmersive,
352
- isHovering,
353
- layoutUI
354
- })
355
- ),
356
- children: [
357
- /* @__PURE__ */ jsx(
358
- StatefulReaderHeader,
359
- {
360
- actionKeys: preferences.actions.webPubOrder,
361
- actionsOrder: preferences.actions.webPubOrder,
362
- layout: layoutUI,
363
- runningHeadFormatPref: preferences.theming.header?.runningHead?.format?.webPub
364
- }
365
- ),
366
- /* @__PURE__ */ jsx("article", { className: thorium_web_reader_app_default.wrapper, "aria-label": t("reader.app.publicationWrapper"), children: /* @__PURE__ */ jsx("div", { id: "thorium-web-container", className: thorium_web_reader_app_default.iframeContainer, ref: container }) }),
367
- /* @__PURE__ */ jsx(
368
- StatefulReaderFooter,
369
- {
370
- layout: layoutUI,
371
- progressionFormatPref: preferences.theming.progression?.format?.webPub,
372
- progressionFormatFallback: "readingOrderIndex" /* readingOrderIndex */
373
- }
374
- )
375
- ]
376
- }
377
- ) }) }) }) }) });
378
- };
379
-
380
- export { ExperimentalWebPubStatefulReader };
381
18
  //# sourceMappingURL=index.mjs.map
382
19
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/WebPub/StatefulReader.tsx"],"names":["timeline"],"mappings":"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","file":"index.mjs","sourcesContent":["\"use client\";\n\nimport { useState, useEffect, useRef, useCallback } from \"react\";\n\nimport { ThemeKeyType, useTheming } from \"../../preferences\";\n\nimport readerStyles from \"../assets/styles/thorium-web.reader.app.module.css\";\n\nimport { StatefulReaderProps } from \"../Epub/StatefulReader\";\n\nimport { \n ThActionsKeys, \n ThLayoutUI,\n ThDocumentTitleFormat,\n ThProgressionFormat, \n ThThemeKeys,\n ThLineHeightOptions,\n ThTextAlignOptions,\n ThSpacingSettingsKeys,\n ThSettingsKeys\n} from \"@/preferences/models\";\n\nimport { ThPluginRegistry } from \"../Plugins/PluginRegistry\";\n\nimport { I18nProvider } from \"react-aria\";\nimport { ThPluginProvider } from \"../Plugins/PluginProvider\";\nimport { NavigatorProvider } from \"@/core/Navigator\";\n\nimport {\n BasicTextSelection,\n FrameClickEvent,\n} from \"@readium/navigator-html-injectables\";\nimport { IInjectablesConfig, IWebPubPreferences, TextAlignment, WebPubNavigatorListeners } from \"@readium/navigator\";\nimport { \n Locator, \n Manifest, \n Publication, \n Fetcher, \n HttpFetcher, \n ReadingProgression,\n Feature\n} from \"@readium/shared\";\n\nimport { StatefulDockingWrapper } from \"../Docking/StatefulDockingWrapper\";\nimport { StatefulReaderHeader } from \"../StatefulReaderHeader\";\nimport { StatefulReaderFooter } from \"../StatefulReaderFooter\";\n\nimport { usePreferences } from \"@/preferences/hooks/usePreferences\";\nimport { useSettingsComponentStatus } from \"@/components/Settings/hooks/useSettingsComponentStatus\";\nimport { useWebPubNavigator } from \"@/core/Hooks/WebPub\";\nimport { useFullscreen } from \"@/core/Hooks/useFullscreen\";\nimport { useI18n } from \"@/i18n/useI18n\";\nimport { useTimeline } from \"@/core/Hooks/useTimeline\";\nimport { useLocalStorage } from \"@/core/Hooks/useLocalStorage\";\nimport { useDocumentTitle } from \"@/core/Hooks/useDocumentTitle\";\nimport { useSpacingPresets } from \"../Settings/Spacing/hooks/useSpacingPresets\";\nimport { useLineHeight } from \"../Settings/Spacing/hooks/useLineHeight\";\nimport { useFonts } from \"@/core/Hooks/fonts/useFonts\";\n\nimport { toggleActionOpen } from \"@/lib/actionsReducer\";\nimport { useAppSelector, useAppDispatch, useAppStore } from \"@/lib/hooks\";\nimport { \n setBreakpoint, \n setColorScheme, \n setContrast, \n setForcedColors, \n setMonochrome, \n setReducedMotion, \n setReducedTransparency \n} from \"@/lib/themeReducer\";\nimport { \n setLoading,\n setHovering, \n toggleImmersive, \n setPlatformModifier, \n setDirection, \n setFullscreen,\n setReaderProfile\n} from \"@/lib/readerReducer\";\nimport { \n setRTL, \n setTimeline,\n setPublicationStart,\n setPublicationEnd,\n setHasDisplayTransformability,\n setFontLanguage\n} from \"@/lib/publicationReducer\";\nimport { FontFamilyStateObject } from \"@/lib/settingsReducer\";\n\nimport classNames from \"classnames\";\nimport { createDefaultPlugin } from \"../Plugins/helpers/createDefaultPlugin\";\nimport Peripherals from \"../../helpers/peripherals\";\nimport { getPlatformModifier } from \"@/core/Helpers/keyboardUtilities\";\nimport { propsToCSSVars } from \"@/core/Helpers/propsToCSSVars\";\nimport { getReaderClassNames } from \"../Helpers/getReaderClassNames\";\nimport { prefixString } from \"@/core/Helpers/prefixString\";\nimport { resolveContentProtectionConfig } from \"@/preferences/models/protection\";\n\nexport interface WebPubCSSSettings {\n fontFamily: FontFamilyStateObject;\n fontWeight: number;\n hyphens: boolean | null;\n letterSpacing: number | null;\n lineHeight: ThLineHeightOptions | null;\n paragraphIndent: number | null;\n paragraphSpacing: number | null;\n publisherStyles: boolean;\n textAlign: ThTextAlignOptions | null;\n textNormalization: boolean;\n wordSpacing: number | null;\n zoom: number;\n}\n\nexport interface WebPubStatelessCache {\n settings: WebPubCSSSettings;\n}\n\nexport const ExperimentalWebPubStatefulReader = ({\n rawManifest,\n selfHref,\n plugins\n}: StatefulReaderProps) => {\n const [pluginsRegistered, setPluginsRegistered] = useState(false);\n\n useEffect(() => {\n if (plugins && plugins.length > 0) {\n plugins.forEach(plugin => {\n ThPluginRegistry.register(plugin);\n });\n } else {\n ThPluginRegistry.register(createDefaultPlugin());\n }\n setPluginsRegistered(true);\n }, [plugins]);\n\n if (!pluginsRegistered) {\n return null;\n }\n\n return (\n <>\n <ThPluginProvider>\n <WebPubStatefulReaderInner rawManifest={ rawManifest } selfHref={ selfHref } />\n </ThPluginProvider>\n </>\n );\n};\n\nconst WebPubStatefulReaderInner = ({ rawManifest, selfHref }: { rawManifest: object; selfHref: string }) => {\n const { preferences, resolveFontLanguage, getFontMetadata, getFontInjectables } = usePreferences();\n const { t } = useI18n();\n const { getEffectiveSpacingValue } = useSpacingPresets();\n const { injectFontResources, removeFontResources } = useFonts();\n\n // Check if font family component is being used\n const { isComponentUsed: isFontFamilyUsed } = useSettingsComponentStatus({\n settingsKey: ThSettingsKeys.fontFamily,\n publicationType: \"webpub\",\n componentType: \"text\"\n });\n\n const [publication, setPublication] = useState<Publication | null>(null);\n\n const container = useRef<HTMLDivElement>(null);\n const localDataKey = useRef(`${selfHref}-current-location`);\n\n const textAlign = useAppSelector(state => state.webPubSettings.textAlign);\n const fontFamily = useAppSelector(state => state.webPubSettings.fontFamily);\n const fontWeight = useAppSelector(state => state.webPubSettings.fontWeight);\n const hyphens = useAppSelector(state => state.webPubSettings.hyphens);\n const letterSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.letterSpacing);\n const lineHeight = getEffectiveSpacingValue(ThSpacingSettingsKeys.lineHeight);\n const paragraphIndent = getEffectiveSpacingValue(ThSpacingSettingsKeys.paragraphIndent);\n const paragraphSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.paragraphSpacing);\n const publisherStyles = useAppSelector(state => state.webPubSettings.publisherStyles);\n const textNormalization = useAppSelector(state => state.webPubSettings.textNormalization);\n const wordSpacing = getEffectiveSpacingValue(ThSpacingSettingsKeys.wordSpacing);\n const theme = ThThemeKeys.light;\n const zoom = useAppSelector(state => state.webPubSettings.zoom);\n const isImmersive = useAppSelector(state => state.reader.isImmersive);\n const isHovering = useAppSelector(state => state.reader.isHovering);\n\n const layoutUI = preferences.theming.layout.ui?.webPub || ThLayoutUI.stacked;\n\n // Init theming (breakpoints, theme, media queries…)\n useTheming<ThemeKeyType>({ \n theme: theme,\n themeKeys: preferences.theming.themes.keys,\n systemKeys: preferences.theming.themes.systemThemes,\n breakpointsMap: preferences.theming.breakpoints,\n initProps: {\n ...propsToCSSVars(preferences.theming.arrow, { prefix: prefixString(\"arrow\") }), \n ...propsToCSSVars(preferences.theming.icon, { prefix: prefixString(\"icon\") }),\n ...propsToCSSVars(preferences.theming.layout, { \n prefix: prefixString(\"layout\"),\n exclude: [\"ui\"]\n })\n },\n onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),\n onColorSchemeChange: (colorScheme) => dispatch(setColorScheme(colorScheme)),\n onContrastChange: (contrast) => dispatch(setContrast(contrast)),\n onForcedColorsChange: (forcedColors) => dispatch(setForcedColors(forcedColors)),\n onMonochromeChange: (isMonochrome) => dispatch(setMonochrome(isMonochrome)),\n onReducedMotionChange: (reducedMotion) => dispatch(setReducedMotion(reducedMotion)),\n onReducedTransparencyChange: (reducedTransparency) => dispatch(setReducedTransparency(reducedTransparency))\n });\n\n const dispatch = useAppDispatch();\n\n const onFsChange = useCallback((isFullscreen: boolean) => {\n dispatch(setFullscreen(isFullscreen));\n }, [dispatch]);\n const fs = useFullscreen(onFsChange);\n\n const webPubNavigator = useWebPubNavigator();\n const { \n WebPubNavigatorLoad, \n WebPubNavigatorDestroy,\n currentPositions,\n canGoBackward,\n canGoForward,\n } = webPubNavigator;\n\n const { setLocalData, getLocalData, localData } = useLocalStorage(localDataKey.current);\n\n const timeline = useTimeline({\n publication: publication,\n currentLocation: localData,\n currentPositions: currentPositions() || [],\n positionsList: undefined,\n onChange: (timeline) => {\n dispatch(setTimeline(timeline));\n }\n });\n\n const lineHeightOptions = useLineHeight();\n\n const documentTitleFormat = preferences.metadata?.documentTitle?.format;\n\n let documentTitle: string | undefined;\n\n if (documentTitleFormat) {\n if (typeof documentTitleFormat === \"object\" && \"key\" in documentTitleFormat) {\n const translatedTitle = t(documentTitleFormat.key);\n documentTitle = translatedTitle !== documentTitleFormat.key \n ? translatedTitle \n : documentTitleFormat.fallback;\n } else {\n switch (documentTitleFormat) {\n case ThDocumentTitleFormat.title:\n documentTitle = timeline?.title;\n break;\n case ThDocumentTitleFormat.chapter:\n documentTitle = timeline?.progression?.currentChapter;\n break;\n case ThDocumentTitleFormat.titleAndChapter:\n if (timeline?.title && timeline?.progression?.currentChapter) {\n documentTitle = `${ timeline.title } – ${ timeline.progression.currentChapter }`;\n }\n break;\n case ThDocumentTitleFormat.none:\n documentTitle = undefined;\n break;\n default: \n documentTitle = documentTitleFormat;\n break;\n }\n }\n }\n\n useDocumentTitle(documentTitle);\n\n const cache = useRef<WebPubStatelessCache>({\n settings: {\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n hyphens: hyphens,\n letterSpacing: letterSpacing,\n lineHeight: lineHeight,\n paragraphIndent: paragraphIndent,\n paragraphSpacing: paragraphSpacing,\n publisherStyles: publisherStyles,\n textAlign: textAlign,\n textNormalization: textNormalization,\n wordSpacing: wordSpacing,\n zoom: zoom\n }\n });\n\n const toggleIsImmersive = useCallback(() => {\n // If tap/click in iframe, then header/footer no longer hoovering \n dispatch(setHovering(false));\n dispatch(toggleImmersive());\n }, [dispatch]);\n\n const p = new Peripherals(useAppStore(), preferences.actions, {\n moveTo: () => {},\n goProgression: () => {},\n toggleAction: (actionKey) => {\n switch (actionKey) {\n case ThActionsKeys.fullscreen:\n fs.handleFullscreen();\n break;\n case ThActionsKeys.settings:\n case ThActionsKeys.toc:\n dispatch(toggleActionOpen({\n key: actionKey\n }))\n break;\n default:\n break\n }\n }\n });\n\n const listeners: WebPubNavigatorListeners = {\n frameLoaded: async function (_wnd: Window): Promise<void> {\n p.observe(window);\n },\n positionChanged: async function (locator: Locator): Promise<void> {\n setLocalData(locator)\n\n if (canGoBackward()) {\n dispatch(setPublicationStart(false));\n } else {\n dispatch(setPublicationStart(true));\n }\n\n if (canGoForward()) {\n dispatch(setPublicationEnd(false));\n } else {\n dispatch(setPublicationEnd(true));\n }\n },\n tap: function (_e: FrameClickEvent): boolean {\n toggleIsImmersive();\n return true;\n },\n click: function (_e: FrameClickEvent): boolean {\n return false;\n },\n zoom: function (_scale: number): void { },\n scroll: function (_delta: number): void { },\n customEvent: function (_key: string, _data: unknown): void { },\n handleLocator: function (locator: Locator): boolean {\n const href = locator.href;\n\n if (\n href.startsWith(\"http://\") ||\n href.startsWith(\"https://\") ||\n href.startsWith(\"mailto:\") ||\n href.startsWith(\"tel:\")\n ) {\n if (confirm(`Open \"${href}\" ?`)) window.open(href, \"_blank\");\n } else {\n console.warn(\"Unhandled locator\", locator);\n }\n return false;\n },\n textSelected: function (_selection: BasicTextSelection): void {},\n contentProtection: function (_type: string, _data: unknown): void {},\n contextMenu: function (_data: unknown): void {},\n peripheral: function (_data: unknown): void {},\n };\n\n useEffect(() => {\n cache.current.settings.fontFamily = fontFamily;\n }, [fontFamily]);\n useEffect(() => {\n cache.current.settings.fontWeight = fontWeight;\n }, [fontWeight]);\n useEffect(() => {\n cache.current.settings.hyphens = hyphens;\n }, [hyphens]);\n useEffect(() => {\n cache.current.settings.letterSpacing = letterSpacing;\n }, [letterSpacing]);\n useEffect(() => {\n cache.current.settings.lineHeight = lineHeight;\n }, [lineHeight]);\n useEffect(() => {\n cache.current.settings.paragraphIndent = paragraphIndent;\n }, [paragraphIndent]);\n useEffect(() => {\n cache.current.settings.paragraphSpacing = paragraphSpacing;\n }, [paragraphSpacing]);\n useEffect(() => {\n cache.current.settings.textAlign = textAlign;\n }, [textAlign]);\n\n useEffect(() => {\n cache.current.settings.textNormalization = textNormalization;\n }, [textNormalization]);\n useEffect(() => {\n cache.current.settings.wordSpacing = wordSpacing;\n }, [wordSpacing]);\n useEffect(() => {\n cache.current.settings.zoom = zoom;\n }, [zoom]);\n\n useEffect(() => {\n preferences.direction && dispatch(setDirection(preferences.direction));\n dispatch(setPlatformModifier(getPlatformModifier()));\n }, [preferences.direction, dispatch]);\n\n useEffect(() => {\n const fetcher: Fetcher = new HttpFetcher(undefined, selfHref);\n const manifest = Manifest.deserialize(rawManifest)!;\n manifest.setSelfLink(selfHref);\n\n setPublication(new Publication({\n manifest: manifest,\n fetcher: fetcher\n }));\n\n dispatch(setReaderProfile(\"webPub\"));\n }, [rawManifest, selfHref, dispatch]);\n\n useEffect(() => {\n if (!publication) return;\n\n dispatch(setRTL(publication.metadata.effectiveReadingProgression === ReadingProgression.rtl));\n const resolvedMainLanguage = resolveFontLanguage(publication.metadata.languages?.[0], publication.metadata.effectiveReadingProgression);\n dispatch(setFontLanguage(resolvedMainLanguage));\n\n const displayTransformability = publication.metadata.accessibility?.feature?.some(feature => feature && feature.value === Feature.DISPLAY_TRANSFORMABILITY.value);\n dispatch(setHasDisplayTransformability(displayTransformability));\n\n const initialPosition: Locator | null = getLocalData();\n\n const webPubPreferences: IWebPubPreferences = {\n zoom: cache.current.settings.zoom\n };\n\n let injectables: IInjectablesConfig | undefined = undefined;\n\n if (displayTransformability) {\n webPubPreferences.fontFamily = getFontMetadata(cache.current.settings.fontFamily[resolvedMainLanguage] ?? \"\")?.fontStack || null;\n webPubPreferences.fontWeight = cache.current.settings.fontWeight;\n webPubPreferences.hyphens = cache.current.settings.hyphens;\n webPubPreferences.letterSpacing = cache.current.settings.letterSpacing;\n webPubPreferences.lineHeight = cache.current.settings.lineHeight === null \n ? null \n : lineHeightOptions[cache.current.settings.lineHeight];\n webPubPreferences.paragraphIndent = cache.current.settings.paragraphIndent;\n webPubPreferences.paragraphSpacing = cache.current.settings.paragraphSpacing;\n webPubPreferences.textAlign = cache.current.settings.textAlign as TextAlignment | null | undefined;\n webPubPreferences.textNormalization = cache.current.settings.textNormalization;\n webPubPreferences.wordSpacing = cache.current.settings.wordSpacing;\n \n // Only inject font resources if font family component is being used\n if (isFontFamilyUsed) {\n const fontResources = getFontInjectables({ language: resolvedMainLanguage });\n if (fontResources) {\n injectFontResources(getFontInjectables(undefined, true));\n injectables = {\n allowedDomains: fontResources.allowedDomains,\n rules: [{\n resources: [/\\.xhtml$/, /\\.html$/],\n prepend: fontResources.prepend,\n append: fontResources.append\n }]\n };\n }\n }\n }\n \n WebPubNavigatorLoad({\n container: container.current,\n publication: publication,\n listeners: listeners,\n initialPosition: initialPosition ? new Locator(initialPosition) : undefined,\n preferences: webPubPreferences,\n defaults: {\n experiments: preferences.experiments?.webPub || null\n },\n injectables: injectables,\n contentProtection: resolveContentProtectionConfig(preferences.contentProtection, t)\n }, () => {\n p.observe(window);\n });\n\n dispatch(setLoading(false));\n\n return () => {\n WebPubNavigatorDestroy(() => p.destroy());\n removeFontResources();\n };\n }, [publication, preferences, isFontFamilyUsed, injectFontResources, removeFontResources]);\n\n return (\n <>\n <I18nProvider locale={ preferences.locale }>\n <NavigatorProvider navigator={ webPubNavigator }>\n <main className={ readerStyles.main }>\n <StatefulDockingWrapper>\n <div \n className={ \n classNames(\n getReaderClassNames({\n isScroll: true,\n isImmersive,\n isHovering,\n layoutUI\n })\n )\n }\n >\n <StatefulReaderHeader \n actionKeys={ preferences.actions.webPubOrder }\n actionsOrder={ preferences.actions.webPubOrder }\n layout={ layoutUI } \n runningHeadFormatPref={ preferences.theming.header?.runningHead?.format?.webPub }\n />\n\n <article className={ readerStyles.wrapper } aria-label={ t(\"reader.app.publicationWrapper\") }>\n <div id=\"thorium-web-container\" className={ readerStyles.iframeContainer } ref={ container }></div>\n </article>\n\n <StatefulReaderFooter \n layout={ layoutUI } \n progressionFormatPref={ preferences.theming.progression?.format?.webPub }\n progressionFormatFallback={ ThProgressionFormat.readingOrderIndex }\n />\n </div>\n </StatefulDockingWrapper>\n </main>\n </NavigatorProvider>\n </I18nProvider>\n </>\n)};"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -1,15 +1,16 @@
1
- import { a as ActionStateObject } from '../../actionsReducer-bT0pfxLJ.mjs';
2
- import { T as ThDockingKeys } from '../../actions-BRtHsxpm.mjs';
3
- export { C as CollapsiblePref, p as ThActionEntry, t as ThActionsBar, q as ThActionsBarProps, s as ThActionsTriggerVariant, o as ThCollapsibility, r as ThCollapsibilityVisibility, u as useCollapsibility } from '../../actions-BRtHsxpm.mjs';
4
- import { T as ThActionButtonProps, H as HTMLAttributesWithRef, W as WithRef } from '../../ThSettingsWrapper-BlmAxcWF.mjs';
5
- export { d as THMenuProps, c as ThActionButton, b as ThCollapsibleActionsBar, a as ThCollapsibleActionsBarProps, s as ThDropdown, q as ThDropdownEntry, r as ThDropdownProps, e as ThMenu, g as ThMenuItem, f as ThMenuItemProps, i as ThNumberField, h as ThNumberFieldProps, l as ThRadioGroup, j as ThRadioGroupItems, k as ThRadioGroupProps, t as ThSettingsEntry, u as ThSettingsPrefs, w as ThSettingsWrapper, v as ThSettingsWrapperProps, n as ThSlider, m as ThSliderProps, p as ThSwitch, o as ThSwitchProps } from '../../ThSettingsWrapper-BlmAxcWF.mjs';
1
+ import { a as ActionStateObject } from '../../actionsReducer-kc-S130w.mjs';
2
+ import { T as ThDockingKeys } from '../../actions-D2CHvCHu.mjs';
3
+ export { C as CollapsiblePref, p as ThActionEntry, t as ThActionsBar, q as ThActionsBarProps, s as ThActionsTriggerVariant, d as ThCollapsibility, r as ThCollapsibilityVisibility, u as useCollapsibility } from '../../actions-D2CHvCHu.mjs';
4
+ import { T as ThActionButtonProps, H as HTMLAttributesWithRef, W as WithRef } from '../../ThSettingsWrapper-8Kx0SnH4.mjs';
5
+ export { d as THMenuProps, c as ThActionButton, b as ThCollapsibleActionsBar, a as ThCollapsibleActionsBarProps, s as ThDropdown, q as ThDropdownEntry, r as ThDropdownProps, e as ThMenu, g as ThMenuItem, f as ThMenuItemProps, i as ThNumberField, h as ThNumberFieldProps, l as ThRadioGroup, j as ThRadioGroupItems, k as ThRadioGroupProps, t as ThSettingsEntry, u as ThSettingsPrefs, w as ThSettingsWrapper, v as ThSettingsWrapperProps, n as ThSlider, m as ThSliderProps, p as ThSwitch, o as ThSwitchProps } from '../../ThSettingsWrapper-8Kx0SnH4.mjs';
6
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
7
7
  import { ButtonProps, HeadingProps, PopoverProps, DialogProps, ModalOverlayProps, FormProps, Button, NumberFieldProps, LabelProps, InputProps, FieldErrorProps, TextFieldProps, ValidationResult, SearchFieldProps, LinkProps, TooltipProps } from 'react-aria-components';
8
8
  import React__default, { RefObject, ReactNode, HTMLAttributes, ComponentType, SVGProps } from 'react';
9
9
  import { SheetRef, Sheet } from 'react-modal-sheet';
10
10
  import { AriaOverlayProps, TooltipTriggerProps } from 'react-aria';
11
11
  import '@reduxjs/toolkit';
12
- import '../../ui-BVlJcPL_.mjs';
12
+ import '../../immer.d-CoRThNOF.mjs';
13
+ import '../../ui-CamWuqOo.mjs';
13
14
 
14
15
  declare const ThCloseButton: ({ label, ref, compounds, children, ...props }: ThActionButtonProps) => react_jsx_runtime.JSX.Element;
15
16
 
@@ -1,4 +1,4 @@
1
- import { B as BreakpointsMap, l as ThProgressionFormat } from '../../ui-BVlJcPL_.mjs';
1
+ import { B as BreakpointsMap, g as ThProgressionFormat } from '../../ui-CamWuqOo.mjs';
2
2
  export { U as UnstableKey, a as UnstableMetaKey, c as UnstableMetaKeys, g as UnstablePShortcut, b as UnstablePlatformModifier, f as UnstableShortcut, d as UnstableShortcutMetaKeywords, e as UnstableShortcutRepresentation, j as buildShortcut, h as defaultPlatformModifier, i as getPlatformModifier, m as metaKeys } from '../../keyboardUtilities-BWAyLS_D.mjs';
3
3
  import { b as TimelineProgression } from '../../useTimeline-DyMx_aWY.mjs';
4
4
  import '@readium/shared';