@edrlab/thorium-web 1.4.0 → 1.4.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 (82) hide show
  1. package/dist/{ThPreferencesAdapter-L1H6gzmu.d.mts → ThPreferencesAdapter-_5AePKHa.d.mts} +5 -3
  2. package/dist/{ThSettingsWrapper-DWEA4hYF.d.mts → ThSettingsWrapper-B_9klYXH.d.mts} +1 -1
  3. package/dist/{actions-BjeRjaJU.d.mts → actions-CuRRM3rp.d.mts} +4 -1
  4. package/dist/{actionsReducer-B32cq2mB.d.mts → actionsReducer-VFR42qgL.d.mts} +1 -1
  5. package/dist/{chunk-NUXGQWED.mjs → chunk-2NCN2AG2.mjs} +3 -3
  6. package/dist/{chunk-NUXGQWED.mjs.map → chunk-2NCN2AG2.mjs.map} +1 -1
  7. package/dist/{chunk-5LUMM7FW.mjs → chunk-44PEO3DS.mjs} +2 -2
  8. package/dist/{chunk-5LUMM7FW.mjs.map → chunk-44PEO3DS.mjs.map} +1 -1
  9. package/dist/chunk-AQSJDL63.mjs +193 -0
  10. package/dist/chunk-AQSJDL63.mjs.map +1 -0
  11. package/dist/{chunk-T5ENYSDJ.mjs → chunk-DQDOOTCE.mjs} +3 -3
  12. package/dist/{chunk-T5ENYSDJ.mjs.map → chunk-DQDOOTCE.mjs.map} +1 -1
  13. package/dist/{chunk-QUSGPT5M.mjs → chunk-E2JEGVVE.mjs} +12 -11
  14. package/dist/chunk-E2JEGVVE.mjs.map +1 -0
  15. package/dist/{chunk-P6ILEQ5P.mjs → chunk-ETLIGONP.mjs} +17 -9
  16. package/dist/chunk-ETLIGONP.mjs.map +1 -0
  17. package/dist/chunk-GNROODJB.mjs +9 -0
  18. package/dist/chunk-GNROODJB.mjs.map +1 -0
  19. package/dist/{chunk-6MONB2DN.mjs → chunk-KGSFTRCH.mjs} +15 -37
  20. package/dist/chunk-KGSFTRCH.mjs.map +1 -0
  21. package/dist/{chunk-PXXWEMNL.mjs → chunk-MSHUPSBI.mjs} +54 -38
  22. package/dist/chunk-MSHUPSBI.mjs.map +1 -0
  23. package/dist/{chunk-XRFLDNAY.mjs → chunk-OD75GC5N.mjs} +52 -12
  24. package/dist/chunk-OD75GC5N.mjs.map +1 -0
  25. package/dist/{chunk-KVUG6BNI.mjs → chunk-RBEPH5E5.mjs} +19 -13
  26. package/dist/chunk-RBEPH5E5.mjs.map +1 -0
  27. package/dist/{chunk-TSLTLQ6O.mjs → chunk-SI4FBFHM.mjs} +20 -16
  28. package/dist/chunk-SI4FBFHM.mjs.map +1 -0
  29. package/dist/{chunk-IVXRCKWR.mjs → chunk-WF2UOYO7.mjs} +4 -4
  30. package/dist/{chunk-IVXRCKWR.mjs.map → chunk-WF2UOYO7.mjs.map} +1 -1
  31. package/dist/{chunk-WLVE3WNW.mjs → chunk-YEVLT3AV.mjs} +12 -7
  32. package/dist/chunk-YEVLT3AV.mjs.map +1 -0
  33. package/dist/components/Audio/index.css +2 -1
  34. package/dist/components/Audio/index.css.map +1 -1
  35. package/dist/components/Audio/index.d.mts +14 -13
  36. package/dist/components/Audio/index.mjs +10 -10
  37. package/dist/components/Epub/index.css +2 -1
  38. package/dist/components/Epub/index.css.map +1 -1
  39. package/dist/components/Epub/index.d.mts +11 -11
  40. package/dist/components/Epub/index.mjs +11 -11
  41. package/dist/components/Misc/index.mjs +5 -5
  42. package/dist/components/Reader/index.css +2 -1
  43. package/dist/components/Reader/index.css.map +1 -1
  44. package/dist/components/Reader/index.d.mts +9 -9
  45. package/dist/components/Reader/index.mjs +24 -22
  46. package/dist/components/Reader/index.mjs.map +1 -1
  47. package/dist/components/WebPub/index.css +2 -1
  48. package/dist/components/WebPub/index.css.map +1 -1
  49. package/dist/components/WebPub/index.d.mts +11 -11
  50. package/dist/components/WebPub/index.mjs +11 -11
  51. package/dist/core/Components/index.d.mts +6 -6
  52. package/dist/core/Components/index.mjs +2 -2
  53. package/dist/core/Helpers/index.mjs +1 -1
  54. package/dist/core/Hooks/index.d.mts +4 -4
  55. package/dist/i18n/index.mjs +3 -3
  56. package/dist/lib/index.d.mts +15 -8
  57. package/dist/lib/index.mjs +2 -2
  58. package/dist/locales/da/thorium-web.json +37 -2
  59. package/dist/locales/fi/thorium-web.json +1 -1
  60. package/dist/locales/fr/thorium-web.json +1 -1
  61. package/dist/locales/lt/thorium-web.json +26 -1
  62. package/dist/next-lib/index.mjs +1 -1
  63. package/dist/next-lib/index.mjs.map +1 -1
  64. package/dist/preferences/index.d.mts +8 -8
  65. package/dist/preferences/index.mjs +4 -4
  66. package/dist/{settingsReducer-DLaT2wUB.d.mts → settingsReducer-VqBhLq50.d.mts} +1 -1
  67. package/dist/{useContrast-Bo7cDw_X.d.mts → useContrast-Cbso7N1l.d.mts} +1 -1
  68. package/dist/{usePreferences-D8NU1yhP.d.mts → usePreferences-9ZvbcbLW.d.mts} +3 -3
  69. package/dist/{useReaderTransitions-BQGzKeY2.d.mts → useReaderTransitions-0hKGCvMm.d.mts} +10 -9
  70. package/package.json +5 -5
  71. package/dist/chunk-6MONB2DN.mjs.map +0 -1
  72. package/dist/chunk-B3WDMWCT.mjs +0 -9
  73. package/dist/chunk-B3WDMWCT.mjs.map +0 -1
  74. package/dist/chunk-KVUG6BNI.mjs.map +0 -1
  75. package/dist/chunk-MLEYTQGK.mjs +0 -60
  76. package/dist/chunk-MLEYTQGK.mjs.map +0 -1
  77. package/dist/chunk-P6ILEQ5P.mjs.map +0 -1
  78. package/dist/chunk-PXXWEMNL.mjs.map +0 -1
  79. package/dist/chunk-QUSGPT5M.mjs.map +0 -1
  80. package/dist/chunk-TSLTLQ6O.mjs.map +0 -1
  81. package/dist/chunk-WLVE3WNW.mjs.map +0 -1
  82. package/dist/chunk-XRFLDNAY.mjs.map +0 -1
@@ -1,32 +1,32 @@
1
- export { ExperimentalWebPubStatefulReader } from '../../chunk-KVUG6BNI.mjs';
2
- export { StatefulAudioMediaActions, StatefulAudioPlaybackControls, StatefulAudioProgressBar, StatefulNextButton, StatefulPlayPauseButton, StatefulPlayer, StatefulPreviousButton, StatefulSkipBackwardButton, StatefulSkipForwardButton } from '../../chunk-QUSGPT5M.mjs';
3
- export { StatefulReader } from '../../chunk-TSLTLQ6O.mjs';
4
- import '../../chunk-6MONB2DN.mjs';
5
- export { StatefulActionIcon, StatefulAudioAutoPlay, StatefulAudioPlaybackRateContainer, StatefulAudioPlaybackRateTrigger, StatefulAudioRemotePlaybackTrigger, StatefulAudioSettingsContainer, StatefulAudioSkipBackwardInterval, StatefulAudioSkipForwardInterval, StatefulAudioSkipInterval, StatefulAudioSleepTimerContainer, StatefulAudioSleepTimerTrigger, StatefulAudioTocContainer, StatefulAudioTocTrigger, StatefulAudioVolumeContainer, StatefulAudioVolumeTrigger, StatefulBottomSheet, StatefulCollapsibleActionsBar, StatefulColumns, StatefulCompactPopoverSheet, StatefulDockedSheet, StatefulDropdown, StatefulFontFamily, StatefulFullScreenSheet, StatefulFullscreenTrigger, StatefulGlobalPreferencesProvider, StatefulGroupWrapper, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLayout, StatefulLetterSpacing, StatefulLigatures, StatefulLineHeight, StatefulModalBase, StatefulModalSheet, StatefulNoRuby, StatefulNumberField, StatefulOverflowMenu, StatefulOverflowMenuItem, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, StatefulSettingsTrigger, StatefulSettingsWrapper, StatefulSheetWrapper, StatefulSlider, StatefulSliderWithPresets, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTheme, StatefulTocContainer, StatefulTocTrigger, StatefulVisualSettingsContainer, StatefulWordSpacing, StatefulZoom, UnstableStatefulFontWeight, createAudioDefaultPlugin, createDefaultPlugin, useDocking, useEffectiveRange, useGridNavigation, useGridTemplate, useLineHeight, useNavigator, usePlaceholder, usePublication, useReaderSetting, useReaderTransitions, useSettingsComponentStatus, useSpacingPresets } from '../../chunk-PXXWEMNL.mjs';
1
+ export { ExperimentalWebPubStatefulReader } from '../../chunk-RBEPH5E5.mjs';
2
+ export { StatefulAudioMediaActions, StatefulAudioPlaybackControls, StatefulAudioProgressBar, StatefulNextButton, StatefulPlayPauseButton, StatefulPlayer, StatefulPreviousButton, StatefulSkipBackwardButton, StatefulSkipForwardButton } from '../../chunk-E2JEGVVE.mjs';
3
+ export { StatefulReader } from '../../chunk-SI4FBFHM.mjs';
4
+ import '../../chunk-KGSFTRCH.mjs';
5
+ export { StatefulActionIcon, StatefulAudioAutoPlay, StatefulAudioPlaybackRateContainer, StatefulAudioPlaybackRateTrigger, StatefulAudioRemotePlaybackTrigger, StatefulAudioSettingsContainer, StatefulAudioSkipBackwardInterval, StatefulAudioSkipForwardInterval, StatefulAudioSkipInterval, StatefulAudioSleepTimerContainer, StatefulAudioSleepTimerTrigger, StatefulAudioTocContainer, StatefulAudioTocTrigger, StatefulAudioVolumeContainer, StatefulAudioVolumeTrigger, StatefulBottomSheet, StatefulCollapsibleActionsBar, StatefulColumns, StatefulCompactPopoverSheet, StatefulDockedSheet, StatefulDropdown, StatefulFontFamily, StatefulFullScreenSheet, StatefulFullscreenTrigger, StatefulGlobalPreferencesProvider, StatefulGroupWrapper, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLayout, StatefulLetterSpacing, StatefulLigatures, StatefulLineHeight, StatefulModalBase, StatefulModalSheet, StatefulNoRuby, StatefulNumberField, StatefulOverflowMenu, StatefulOverflowMenuItem, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, StatefulSettingsTrigger, StatefulSettingsWrapper, StatefulSheetWrapper, StatefulSlider, StatefulSliderWithPresets, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTheme, StatefulTocContainer, StatefulTocTrigger, StatefulVisualSettingsContainer, StatefulWordSpacing, StatefulZoom, UnstableStatefulFontWeight, createAudioDefaultPlugin, createDefaultPlugin, useDocking, useEffectiveRange, useGridNavigation, useGridTemplate, useLineHeight, useNavigator, usePlaceholder, usePublication, useReaderSetting, useReaderTransitions, useSettingsComponentStatus, useSpacingPresets } from '../../chunk-MSHUPSBI.mjs';
6
6
  export { canRenderProgressionFormat, getBestMatchingProgressionFormat, getSupportedProgressionFormats, isActiveElement, isInteractiveElement, isKeyboardTriggered, makeBreakpointsMap } from '../../chunk-VENFFPK2.mjs';
7
7
  export { useAudioNavigator, useEpubNavigator, useWebPubNavigator } from '../../chunk-SZAVAQ6S.mjs';
8
- import { ThI18nProvider } from '../../chunk-T5ENYSDJ.mjs';
9
- export { ThI18nProvider, Trans } from '../../chunk-T5ENYSDJ.mjs';
10
- import { setReducedTransparency, setReducedMotion, setMonochrome, setForcedColors, setContrast, setColorScheme, setBreakpoint, setCoverTheme, setFontLanguage } from '../../chunk-WLVE3WNW.mjs';
11
- export { ThReduxGlobalPreferencesAdapter, ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, audioSettingsSlice, collapseDockPanel, deactivateDockPanel, dockAction, expandDockPanel, globalPreferencesSlice, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, playerSlice, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setAdjacentTimelineItems, setAutoPlay, setBreakpoint, setColorScheme, setColumnCount, setContrast, setCoverTheme, setDirection, setDockPanelWidth, setEnableMediaSession, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setLetterSpacing, setLigatures, setLineHeight, setLineLength, setLoading, setLocale, setMonochrome, setNoRuby, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPlaybackRate, setPollInterval, setPositionsList, setPreservePitch, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRemotePlaybackState, setRunningHeadFormat, setScriptMode, setScroll, setScrollAffordance, setScrollAffordances, setSeekableRanges, setSeeking, setSettingsContainer, setSkipBackwardInterval, setSkipForwardInterval, setSkipInterval, setSleepTimerOnFragmentEnd, setSleepTimerOnTrackEnd, setSleepTimerRemainingSeconds, setSpacingPreset, setStalled, setStatus, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setTrackReady, setUI, setUserNavigated, setVolume, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLigatures, setWebPubLineHeight, setWebPubNoRuby, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, webPubSettingsSlice } from '../../chunk-WLVE3WNW.mjs';
8
+ import { ThI18nProvider } from '../../chunk-DQDOOTCE.mjs';
9
+ export { ThI18nProvider, Trans } from '../../chunk-DQDOOTCE.mjs';
10
+ import { setReducedTransparency, setReducedMotion, setMonochrome, setForcedColors, setContrast, setColorScheme, setContainerBreakpoint, setBreakpoint, setCoverTheme, setFontLanguage } from '../../chunk-YEVLT3AV.mjs';
11
+ export { ThReduxGlobalPreferencesAdapter, ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, audioSettingsSlice, collapseDockPanel, deactivateDockPanel, dockAction, expandDockPanel, globalPreferencesSlice, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, playerSlice, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setAdjacentTimelineItems, setAutoPlay, setBreakpoint, setColorScheme, setColumnCount, setContainerBreakpoint, setContrast, setCoverTheme, setDirection, setDockPanelWidth, setEnableMediaSession, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setLetterSpacing, setLigatures, setLineHeight, setLineLength, setLoading, setLocale, setMonochrome, setNoRuby, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPlaybackRate, setPollInterval, setPositionsList, setPreservePitch, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRemotePlaybackState, setRunningHeadFormat, setScriptMode, setScroll, setScrollAffordance, setScrollAffordances, setSeekableRanges, setSeeking, setSettingsContainer, setSkipBackwardInterval, setSkipForwardInterval, setSkipInterval, setSleepTimerOnFragmentEnd, setSleepTimerOnTrackEnd, setSleepTimerRemainingSeconds, setSpacingPreset, setStalled, setStatus, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setTrackReady, setUI, setUserNavigated, setVolume, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLigatures, setWebPubLineHeight, setWebPubNoRuby, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, webPubSettingsSlice } from '../../chunk-YEVLT3AV.mjs';
12
12
  import '../../chunk-TEZB4ULX.mjs';
13
- import { ThAudioPreferencesProvider, ThPreferencesProvider, useAudioPreferences, useTheming, prefixString, usePreferences, proxyUrl } from '../../chunk-XRFLDNAY.mjs';
14
- export { ThPreferencesProvider, usePreferences, useTheming } from '../../chunk-XRFLDNAY.mjs';
13
+ import { ThAudioPreferencesProvider, ThPreferencesProvider, useAudioPreferences, useTheming, prefixString, usePreferences, proxyUrl } from '../../chunk-OD75GC5N.mjs';
14
+ export { ThPreferencesProvider, usePreferences, useTheming } from '../../chunk-OD75GC5N.mjs';
15
15
  import { propsToCSSVars } from '../../chunk-2YRT7RNW.mjs';
16
16
  export { propsToCSSVars } from '../../chunk-2YRT7RNW.mjs';
17
17
  import '../../chunk-GFSLVQIG.mjs';
18
18
  import '../../chunk-AE6P4KJB.mjs';
19
19
  import { useAppSelector, useAppDispatch } from '../../chunk-A575ZW4A.mjs';
20
20
  export { useAppDispatch, useAppSelector, useAppStore } from '../../chunk-A575ZW4A.mjs';
21
- export { UnstableShortcutMetaKeywords, UnstableShortcutRepresentation, buildShortcut, defaultPlatformModifier, getPlatform, getPlatformModifier, isIOSish, isIpadOS, isMacish, metaKeys } from '../../chunk-5LUMM7FW.mjs';
21
+ export { UnstableShortcutMetaKeywords, UnstableShortcutRepresentation, buildShortcut, defaultPlatformModifier, getPlatform, getPlatformModifier, isIOSish, isIpadOS, isMacish, metaKeys } from '../../chunk-44PEO3DS.mjs';
22
22
  import '../../chunk-NQ2ZSGCX.mjs';
23
- import { StatefulLoader } from '../../chunk-IVXRCKWR.mjs';
23
+ import { StatefulLoader } from '../../chunk-WF2UOYO7.mjs';
24
24
  import '../../chunk-RRDEPGBK.mjs';
25
- import '../../chunk-P6ILEQ5P.mjs';
25
+ import '../../chunk-ETLIGONP.mjs';
26
26
  import '../../chunk-YZ73DHRU.mjs';
27
- export { DEFAULT_CONFIG, i18n, initI18n, useI18n } from '../../chunk-NUXGQWED.mjs';
28
- import '../../chunk-MLEYTQGK.mjs';
29
- import '../../chunk-B3WDMWCT.mjs';
27
+ export { DEFAULT_CONFIG, i18n, initI18n, useI18n } from '../../chunk-2NCN2AG2.mjs';
28
+ import '../../chunk-AQSJDL63.mjs';
29
+ import '../../chunk-GNROODJB.mjs';
30
30
  import '../../chunk-3GDQP6AS.mjs';
31
31
  import { lazy, useState, useEffect, Suspense, useRef } from 'react';
32
32
  import { getScriptMode } from '@readium/navigator';
@@ -103,7 +103,7 @@ var StatefulAudioContent = ({ publication, localDataKey, positionStorage, coverU
103
103
  const themeObject = useAppSelector((state) => state.theming.theme);
104
104
  const dispatch = useAppDispatch();
105
105
  const { coverBlobUrl, coverReady } = useCoverBlobUrl(coverUrl);
106
- const { themeResolved } = useTheming({
106
+ const { themeResolved, setContainerRef } = useTheming({
107
107
  theme: themeObject.audio ?? "auto",
108
108
  themeKeys: preferences.theming.themes.keys,
109
109
  systemKeys: preferences.theming.themes.systemThemes,
@@ -119,6 +119,7 @@ var StatefulAudioContent = ({ publication, localDataKey, positionStorage, coverU
119
119
  },
120
120
  onCoverThemeGenerated: (themeTokens) => dispatch(setCoverTheme(themeTokens)),
121
121
  onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),
122
+ onContainerBreakpointChange: (breakpoint) => dispatch(setContainerBreakpoint(breakpoint)),
122
123
  onColorSchemeChange: (colorScheme) => dispatch(setColorScheme(colorScheme)),
123
124
  onContrastChange: (contrast) => dispatch(setContrast(contrast)),
124
125
  onForcedColorsChange: (forcedColors) => dispatch(setForcedColors(forcedColors)),
@@ -126,7 +127,7 @@ var StatefulAudioContent = ({ publication, localDataKey, positionStorage, coverU
126
127
  onReducedMotionChange: (reducedMotion) => dispatch(setReducedMotion(reducedMotion)),
127
128
  onReducedTransparencyChange: (reducedTransparency) => dispatch(setReducedTransparency(reducedTransparency))
128
129
  });
129
- return /* @__PURE__ */ jsx(StatefulLoader, { isLoading: externalLoading || !themeResolved || !coverReady, children: /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(StatefulPlayer2, { publication, localDataKey, positionStorage, coverUrl: coverBlobUrl }) }) });
130
+ return /* @__PURE__ */ jsx(StatefulLoader, { isLoading: externalLoading || !themeResolved || !coverReady, children: /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(StatefulPlayer2, { publication, localDataKey, positionStorage, coverUrl: coverBlobUrl, containerRefSetter: setContainerRef }) }) });
130
131
  };
131
132
  var StatefulReaderContent = ({ profile, publication, plugins, coverUrl, ...props }) => {
132
133
  const { preferences, resolveFontLanguage } = usePreferences();
@@ -142,7 +143,7 @@ var StatefulReaderContent = ({ profile, publication, plugins, coverUrl, ...props
142
143
  );
143
144
  dispatch(setFontLanguage(resolvedLang));
144
145
  }, [publication, resolveFontLanguage, dispatch]);
145
- useTheming({
146
+ const { setContainerRef } = useTheming({
146
147
  theme,
147
148
  themeKeys: preferences.theming.themes.keys,
148
149
  systemKeys: preferences.theming.themes.systemThemes,
@@ -159,6 +160,7 @@ var StatefulReaderContent = ({ profile, publication, plugins, coverUrl, ...props
159
160
  },
160
161
  onCoverThemeGenerated: (themeTokens) => dispatch(setCoverTheme(themeTokens)),
161
162
  onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),
163
+ onContainerBreakpointChange: (breakpoint) => dispatch(setContainerBreakpoint(breakpoint)),
162
164
  onColorSchemeChange: (colorScheme) => dispatch(setColorScheme(colorScheme)),
163
165
  onContrastChange: (contrast) => dispatch(setContrast(contrast)),
164
166
  onForcedColorsChange: (forcedColors) => dispatch(setForcedColors(forcedColors)),
@@ -168,10 +170,10 @@ var StatefulReaderContent = ({ profile, publication, plugins, coverUrl, ...props
168
170
  });
169
171
  switch (profile) {
170
172
  case "epub":
171
- return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(StatefulEpubReader, { publication, ...props, plugins }) });
173
+ return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(StatefulEpubReader, { publication, ...props, plugins, containerRefSetter: setContainerRef }) });
172
174
  case "webPub":
173
175
  default:
174
- return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(StatefulWebPubReader, { publication, ...props, plugins }) });
176
+ return /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(StatefulWebPubReader, { publication, ...props, plugins, containerRefSetter: setContainerRef }) });
175
177
  }
176
178
  };
177
179
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useCoverBlobUrl.ts","../../../src/components/Reader/StatefulReaderWrapper.tsx"],"names":["StatefulPlayer","useState","useEffect"],"mappings":"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","file":"index.mjs","sourcesContent":["import { useState, useEffect, useRef } from \"react\";\nimport { proxyUrl } from \"@/helpers/proxyUrl\";\n\nexport const useCoverBlobUrl = (coverUrl: string | undefined): { coverBlobUrl: string | undefined; coverReady: boolean } => {\n const [coverBlobUrl, setCoverBlobUrl] = useState<string | undefined>(undefined);\n const [coverFailed, setCoverFailed] = useState(false);\n const revokeRef = useRef<(() => void) | undefined>(undefined);\n\n useEffect(() => {\n if (!coverUrl) return;\n const controller = new AbortController();\n const fetched = proxyUrl(coverUrl) ?? coverUrl;\n let objectUrl: string | undefined;\n fetch(fetched, { signal: controller.signal })\n .then(r => r.blob())\n .then(blob => {\n objectUrl = URL.createObjectURL(blob);\n revokeRef.current = () => URL.revokeObjectURL(objectUrl!);\n setCoverBlobUrl(objectUrl);\n })\n .catch((err) => {\n if (err.name === \"AbortError\") return;\n setCoverFailed(true);\n });\n return () => {\n controller.abort();\n revokeRef.current?.();\n revokeRef.current = undefined;\n };\n }, [coverUrl]);\n\n return {\n coverBlobUrl,\n coverReady: !coverUrl || !!coverBlobUrl || coverFailed,\n };\n};\n","import { lazy, Suspense, useState, useEffect } from \"react\";\n\nimport { Publication, Locator } from \"@readium/shared\";\nimport { getScriptMode } from \"@readium/navigator\";\nimport { ThThemeKeys, ThemeKeyType, useTheming } from \"@/preferences\";\n\nimport { usePreferences } from \"@/preferences/hooks/usePreferences\";\nimport { useAudioPreferences } from \"@/preferences/hooks/useAudioPreferences\";\nimport { ThAudioPreferencesProvider } from \"@/preferences/ThAudioPreferencesProvider\";\nimport { ThPreferencesProvider } from \"@/preferences/ThPreferencesProvider\";\nimport { ThI18nProvider } from \"@/i18n/ThI18nProvider\";\n\nimport { useAppSelector, useAppDispatch } from \"@/lib/hooks\";\nimport {\n setBreakpoint,\n setColorScheme,\n setContrast,\n setForcedColors,\n setMonochrome,\n setReducedMotion,\n setReducedTransparency,\n setCoverTheme\n} from \"@/lib/themeReducer\";\nimport { setFontLanguage } from \"@/lib/publicationReducer\";\nimport { propsToCSSVars } from \"@/core/Helpers/propsToCSSVars\";\nimport { prefixString } from \"@/core/Helpers/prefixString\";\nimport { useCoverBlobUrl } from \"@/hooks/useCoverBlobUrl\";\nimport { ThPlugin } from \"../Plugins\";\nimport { StatefulLoader } from \"@/components/Misc\";\nimport { ThPreferences, CustomizableKeys } from \"@/preferences/preferences\";\nimport { ThAudioPreferences } from \"@/preferences/audioPreferences\";\nimport { ThPreferencesAdapter } from \"@/preferences/adapters/ThPreferencesAdapter\";\nimport { ThAudioPreferencesAdapter } from \"@/preferences/adapters/ThAudioPreferencesAdapter\";\nimport { InitOptions } from \"i18next\";\n\nconst StatefulEpubReader = lazy(() => import(\"@/components/Epub\").then(mod => ({ default: mod.StatefulReader })));\nconst StatefulWebPubReader = lazy(() => import(\"@/components/WebPub\").then(mod => ({ default: mod.ExperimentalWebPubStatefulReader })));\nconst StatefulPlayer = lazy(() => import(\"@/components/Audio\").then(mod => ({ default: mod.StatefulPlayer })));\n\nexport interface PositionStorage {\n get: () => Locator | undefined;\n set: (locator: Locator) => void | Promise<void>;\n}\n\nexport interface StatefulReaderProps {\n publication: Publication;\n localDataKey: string | null;\n plugins?: ThPlugin[];\n positionStorage?: PositionStorage;\n}\n\nexport type ThPluginFactory = () => ThPlugin[] | Promise<ThPlugin[]>;\n\nexport interface ReaderPlugins {\n epub?: ThPluginFactory;\n webPub?: ThPluginFactory;\n audio?: ThPluginFactory;\n}\n\nexport interface ReaderComponentProps<\n P extends \"epub\" | \"webPub\" | \"audio\" | undefined | null = undefined,\n K extends CustomizableKeys = {}\n> {\n profile: P;\n publication: Publication;\n localDataKey: string | null;\n isLoading?: boolean;\n positionStorage?: PositionStorage;\n plugins?: ReaderPlugins;\n i18n?: Partial<InitOptions>;\n preferences?: P extends \"audio\"\n ? { initialPreferences?: ThAudioPreferences<K>; adapter?: ThAudioPreferencesAdapter<K> }\n : P extends \"epub\" | \"webPub\"\n ? { initialPreferences?: ThPreferences<K>; adapter?: ThPreferencesAdapter<K> }\n : never;\n}\n\n// ─── Outer wrapper — selects provider based on profile ────────────────────────\n\nexport const StatefulReaderWrapper = ({ profile, plugins, isLoading, preferences, i18n: i18nOptions, ...props }: ReaderComponentProps<any, any>) => {\n const [resolvedPlugins, setResolvedPlugins] = useState<ThPlugin[] | undefined>(undefined);\n\n const pendingFactory = profile === \"epub\" ? plugins?.epub\n : profile === \"webPub\" ? plugins?.webPub\n : profile === \"audio\" ? plugins?.audio\n : undefined;\n\n useEffect(() => {\n if (!pendingFactory) return;\n const result = pendingFactory();\n if (result instanceof Promise) {\n result.then(setResolvedPlugins);\n } else {\n setResolvedPlugins(result);\n }\n }, [pendingFactory]);\n\n if (pendingFactory && resolvedPlugins === undefined) return null;\n\n const coverUrl = props.publication?.getCover()?.href;\n\n if (profile === \"audio\") {\n return (\n <ThAudioPreferencesProvider\n devMode={ process.env.NODE_ENV !== \"production\" }\n initialPreferences={ preferences?.initialPreferences as ThAudioPreferences<any> | undefined }\n adapter={ preferences?.adapter as ThAudioPreferencesAdapter<any> | undefined }\n >\n <ThI18nProvider { ...i18nOptions }>\n <StatefulAudioContent { ...props } coverUrl={ coverUrl } externalLoading={ isLoading ?? false } />\n </ThI18nProvider>\n </ThAudioPreferencesProvider>\n );\n }\n\n return (\n <ThPreferencesProvider\n devMode={ process.env.NODE_ENV !== \"production\" }\n initialPreferences={ preferences?.initialPreferences as ThPreferences<any> | undefined }\n adapter={ preferences?.adapter as ThPreferencesAdapter<any> | undefined }\n >\n <ThI18nProvider { ...i18nOptions }>\n <StatefulLoader isLoading={ isLoading ?? false }>\n <StatefulReaderContent profile={ profile } { ...props } coverUrl={ coverUrl } plugins={ resolvedPlugins } />\n </StatefulLoader>\n </ThI18nProvider>\n </ThPreferencesProvider>\n );\n};\n\n// ─── Audio inner content ──────────────────────────────────────────────────────\n\ninterface AudioContentProps {\n publication: Publication;\n localDataKey: string | null;\n positionStorage?: PositionStorage;\n coverUrl?: string;\n externalLoading: boolean;\n}\n\nconst StatefulAudioContent = ({ publication, localDataKey, positionStorage, coverUrl, externalLoading }: AudioContentProps) => {\n const { preferences } = useAudioPreferences();\n const themeObject = useAppSelector(state => state.theming.theme);\n const dispatch = useAppDispatch();\n\n const { coverBlobUrl, coverReady } = useCoverBlobUrl(coverUrl);\n\n const { themeResolved } = useTheming<ThemeKeyType>({\n theme: themeObject.audio ?? \"auto\",\n themeKeys: preferences.theming.themes.keys,\n systemKeys: preferences.theming.themes.systemThemes,\n breakpointsMap: preferences.theming.breakpoints,\n coverUrl: coverBlobUrl,\n autoThemeSource: \"cover\",\n initProps: {\n ...propsToCSSVars(preferences.theming.icon, { prefix: prefixString(\"icon\") }),\n ...propsToCSSVars(preferences.theming.layout, {\n prefix: prefixString(\"layout\"),\n exclude: [\"ui\", \"compact\", \"expanded\", \"progressBar\"]\n })\n },\n onCoverThemeGenerated: (themeTokens) => dispatch(setCoverTheme(themeTokens)),\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 return (\n <StatefulLoader isLoading={ externalLoading || !themeResolved || !coverReady }>\n <Suspense>\n <StatefulPlayer publication={ publication } localDataKey={ localDataKey } positionStorage={ positionStorage } coverUrl={ coverBlobUrl } />\n </Suspense>\n </StatefulLoader>\n );\n};\n\n// ─── Reader inner content ─────────────────────────────────────────────────────\n\ninterface ReaderContentProps {\n profile: \"epub\" | \"webPub\" | undefined | null;\n publication: Publication;\n localDataKey: string | null;\n positionStorage?: PositionStorage;\n plugins?: ThPlugin[];\n coverUrl?: string;\n}\n\nconst StatefulReaderContent = ({ profile, publication, plugins, coverUrl, ...props }: ReaderContentProps) => {\n const { preferences, resolveFontLanguage } = usePreferences();\n const themeObject = useAppSelector(state => state.theming.theme);\n const isFXL = useAppSelector(state => state.publication.isFXL);\n const theme = profile === \"epub\" ? (isFXL ? themeObject.fxl : themeObject.reflow) : ThThemeKeys.light;\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (!publication) return;\n const resolvedLang = resolveFontLanguage(\n publication.metadata.languages?.[0],\n getScriptMode(publication.metadata)\n );\n dispatch(setFontLanguage(resolvedLang));\n }, [publication, resolveFontLanguage, dispatch]);\n\n useTheming<ThemeKeyType>({\n theme,\n themeKeys: preferences.theming.themes.keys,\n systemKeys: preferences.theming.themes.systemThemes,\n breakpointsMap: preferences.theming.breakpoints,\n coverUrl,\n autoThemeSource: \"system\",\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 onCoverThemeGenerated: (themeTokens) => dispatch(setCoverTheme(themeTokens)),\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 switch (profile) {\n case \"epub\":\n return <Suspense><StatefulEpubReader publication={ publication } { ...props } plugins={ plugins } /></Suspense>;\n case \"webPub\":\n default:\n return <Suspense><StatefulWebPubReader publication={ publication } { ...props } plugins={ plugins } /></Suspense>;\n }\n};\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/useCoverBlobUrl.ts","../../../src/components/Reader/StatefulReaderWrapper.tsx"],"names":["StatefulPlayer","useState","useEffect"],"mappings":"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","file":"index.mjs","sourcesContent":["import { useState, useEffect, useRef } from \"react\";\nimport { proxyUrl } from \"@/helpers/proxyUrl\";\n\nexport const useCoverBlobUrl = (coverUrl: string | undefined): { coverBlobUrl: string | undefined; coverReady: boolean } => {\n const [coverBlobUrl, setCoverBlobUrl] = useState<string | undefined>(undefined);\n const [coverFailed, setCoverFailed] = useState(false);\n const revokeRef = useRef<(() => void) | undefined>(undefined);\n\n useEffect(() => {\n if (!coverUrl) return;\n const controller = new AbortController();\n const fetched = proxyUrl(coverUrl) ?? coverUrl;\n let objectUrl: string | undefined;\n fetch(fetched, { signal: controller.signal })\n .then(r => r.blob())\n .then(blob => {\n objectUrl = URL.createObjectURL(blob);\n revokeRef.current = () => URL.revokeObjectURL(objectUrl!);\n setCoverBlobUrl(objectUrl);\n })\n .catch((err) => {\n if (err.name === \"AbortError\") return;\n setCoverFailed(true);\n });\n return () => {\n controller.abort();\n revokeRef.current?.();\n revokeRef.current = undefined;\n };\n }, [coverUrl]);\n\n return {\n coverBlobUrl,\n coverReady: !coverUrl || !!coverBlobUrl || coverFailed,\n };\n};\n","import { lazy, Suspense, useState, useEffect } from \"react\";\n\nimport { Publication, Locator } from \"@readium/shared\";\nimport { getScriptMode } from \"@readium/navigator\";\nimport { ThThemeKeys, ThemeKeyType, useTheming } from \"@/preferences\";\n\nimport { usePreferences } from \"@/preferences/hooks/usePreferences\";\nimport { useAudioPreferences } from \"@/preferences/hooks/useAudioPreferences\";\nimport { ThAudioPreferencesProvider } from \"@/preferences/ThAudioPreferencesProvider\";\nimport { ThPreferencesProvider } from \"@/preferences/ThPreferencesProvider\";\nimport { ThI18nProvider } from \"@/i18n/ThI18nProvider\";\n\nimport { useAppSelector, useAppDispatch } from \"@/lib/hooks\";\nimport {\n setBreakpoint,\n setContainerBreakpoint,\n setColorScheme,\n setContrast,\n setForcedColors,\n setMonochrome,\n setReducedMotion,\n setReducedTransparency,\n setCoverTheme\n} from \"@/lib/themeReducer\";\nimport { setFontLanguage } from \"@/lib/publicationReducer\";\nimport { propsToCSSVars } from \"@/core/Helpers/propsToCSSVars\";\nimport { prefixString } from \"@/core/Helpers/prefixString\";\nimport { useCoverBlobUrl } from \"@/hooks/useCoverBlobUrl\";\nimport { ThPlugin } from \"../Plugins\";\nimport { StatefulLoader } from \"@/components/Misc\";\nimport { ThPreferences, CustomizableKeys } from \"@/preferences/preferences\";\nimport { ThAudioPreferences } from \"@/preferences/audioPreferences\";\nimport { ThPreferencesAdapter } from \"@/preferences/adapters/ThPreferencesAdapter\";\nimport { ThAudioPreferencesAdapter } from \"@/preferences/adapters/ThAudioPreferencesAdapter\";\nimport { InitOptions } from \"i18next\";\n\nconst StatefulEpubReader = lazy(() => import(\"@/components/Epub\").then(mod => ({ default: mod.StatefulReader })));\nconst StatefulWebPubReader = lazy(() => import(\"@/components/WebPub\").then(mod => ({ default: mod.ExperimentalWebPubStatefulReader })));\nconst StatefulPlayer = lazy(() => import(\"@/components/Audio\").then(mod => ({ default: mod.StatefulPlayer })));\n\nexport interface PositionStorage {\n get: () => Locator | undefined;\n set: (locator: Locator) => void | Promise<void>;\n}\n\nexport interface StatefulReaderProps {\n publication: Publication;\n localDataKey: string | null;\n plugins?: ThPlugin[];\n positionStorage?: PositionStorage;\n containerRefSetter?: (el: Element | null) => void;\n}\n\nexport type ThPluginFactory = () => ThPlugin[] | Promise<ThPlugin[]>;\n\nexport interface ReaderPlugins {\n epub?: ThPluginFactory;\n webPub?: ThPluginFactory;\n audio?: ThPluginFactory;\n}\n\nexport interface ReaderComponentProps<\n P extends \"epub\" | \"webPub\" | \"audio\" | undefined | null = undefined,\n K extends CustomizableKeys = {}\n> {\n profile: P;\n publication: Publication;\n localDataKey: string | null;\n isLoading?: boolean;\n positionStorage?: PositionStorage;\n plugins?: ReaderPlugins;\n i18n?: Partial<InitOptions>;\n preferences?: P extends \"audio\"\n ? { initialPreferences?: ThAudioPreferences<K>; adapter?: ThAudioPreferencesAdapter<K> }\n : P extends \"epub\" | \"webPub\"\n ? { initialPreferences?: ThPreferences<K>; adapter?: ThPreferencesAdapter<K> }\n : never;\n}\n\n// ─── Outer wrapper — selects provider based on profile ────────────────────────\n\nexport const StatefulReaderWrapper = ({ profile, plugins, isLoading, preferences, i18n: i18nOptions, ...props }: ReaderComponentProps<any, any>) => {\n const [resolvedPlugins, setResolvedPlugins] = useState<ThPlugin[] | undefined>(undefined);\n\n const pendingFactory = profile === \"epub\" ? plugins?.epub\n : profile === \"webPub\" ? plugins?.webPub\n : profile === \"audio\" ? plugins?.audio\n : undefined;\n\n useEffect(() => {\n if (!pendingFactory) return;\n const result = pendingFactory();\n if (result instanceof Promise) {\n result.then(setResolvedPlugins);\n } else {\n setResolvedPlugins(result);\n }\n }, [pendingFactory]);\n\n if (pendingFactory && resolvedPlugins === undefined) return null;\n\n const coverUrl = props.publication?.getCover()?.href;\n\n if (profile === \"audio\") {\n return (\n <ThAudioPreferencesProvider\n devMode={ process.env.NODE_ENV !== \"production\" }\n initialPreferences={ preferences?.initialPreferences as ThAudioPreferences<any> | undefined }\n adapter={ preferences?.adapter as ThAudioPreferencesAdapter<any> | undefined }\n >\n <ThI18nProvider { ...i18nOptions }>\n <StatefulAudioContent { ...props } coverUrl={ coverUrl } externalLoading={ isLoading ?? false } />\n </ThI18nProvider>\n </ThAudioPreferencesProvider>\n );\n }\n\n return (\n <ThPreferencesProvider\n devMode={ process.env.NODE_ENV !== \"production\" }\n initialPreferences={ preferences?.initialPreferences as ThPreferences<any> | undefined }\n adapter={ preferences?.adapter as ThPreferencesAdapter<any> | undefined }\n >\n <ThI18nProvider { ...i18nOptions }>\n <StatefulLoader isLoading={ isLoading ?? false }>\n <StatefulReaderContent profile={ profile } { ...props } coverUrl={ coverUrl } plugins={ resolvedPlugins } />\n </StatefulLoader>\n </ThI18nProvider>\n </ThPreferencesProvider>\n );\n};\n\n// ─── Audio inner content ──────────────────────────────────────────────────────\n\ninterface AudioContentProps {\n publication: Publication;\n localDataKey: string | null;\n positionStorage?: PositionStorage;\n coverUrl?: string;\n externalLoading: boolean;\n}\n\nconst StatefulAudioContent = ({ publication, localDataKey, positionStorage, coverUrl, externalLoading }: AudioContentProps) => {\n const { preferences } = useAudioPreferences();\n const themeObject = useAppSelector(state => state.theming.theme);\n const dispatch = useAppDispatch();\n\n const { coverBlobUrl, coverReady } = useCoverBlobUrl(coverUrl);\n\n const { themeResolved, setContainerRef } = useTheming<ThemeKeyType>({\n theme: themeObject.audio ?? \"auto\",\n themeKeys: preferences.theming.themes.keys,\n systemKeys: preferences.theming.themes.systemThemes,\n breakpointsMap: preferences.theming.breakpoints,\n coverUrl: coverBlobUrl,\n autoThemeSource: \"cover\",\n initProps: {\n ...propsToCSSVars(preferences.theming.icon, { prefix: prefixString(\"icon\") }),\n ...propsToCSSVars(preferences.theming.layout, {\n prefix: prefixString(\"layout\"),\n exclude: [\"ui\", \"compact\", \"expanded\", \"progressBar\"]\n })\n },\n onCoverThemeGenerated: (themeTokens) => dispatch(setCoverTheme(themeTokens)),\n onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),\n onContainerBreakpointChange: (breakpoint) => dispatch(setContainerBreakpoint(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 return (\n <StatefulLoader isLoading={ externalLoading || !themeResolved || !coverReady }>\n <Suspense>\n <StatefulPlayer publication={ publication } localDataKey={ localDataKey } positionStorage={ positionStorage } coverUrl={ coverBlobUrl } containerRefSetter={ setContainerRef } />\n </Suspense>\n </StatefulLoader>\n );\n};\n\n// ─── Reader inner content ─────────────────────────────────────────────────────\n\ninterface ReaderContentProps {\n profile: \"epub\" | \"webPub\" | undefined | null;\n publication: Publication;\n localDataKey: string | null;\n positionStorage?: PositionStorage;\n plugins?: ThPlugin[];\n coverUrl?: string;\n}\n\nconst StatefulReaderContent = ({ profile, publication, plugins, coverUrl, ...props }: ReaderContentProps) => {\n const { preferences, resolveFontLanguage } = usePreferences();\n const themeObject = useAppSelector(state => state.theming.theme);\n const isFXL = useAppSelector(state => state.publication.isFXL);\n const theme = profile === \"epub\" ? (isFXL ? themeObject.fxl : themeObject.reflow) : ThThemeKeys.light;\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (!publication) return;\n const resolvedLang = resolveFontLanguage(\n publication.metadata.languages?.[0],\n getScriptMode(publication.metadata)\n );\n dispatch(setFontLanguage(resolvedLang));\n }, [publication, resolveFontLanguage, dispatch]);\n\n const { setContainerRef } = useTheming<ThemeKeyType>({\n theme,\n themeKeys: preferences.theming.themes.keys,\n systemKeys: preferences.theming.themes.systemThemes,\n breakpointsMap: preferences.theming.breakpoints,\n coverUrl,\n autoThemeSource: \"system\",\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 onCoverThemeGenerated: (themeTokens) => dispatch(setCoverTheme(themeTokens)),\n onBreakpointChange: (breakpoint) => dispatch(setBreakpoint(breakpoint)),\n onContainerBreakpointChange: (breakpoint) => dispatch(setContainerBreakpoint(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 switch (profile) {\n case \"epub\":\n return <Suspense><StatefulEpubReader publication={ publication } { ...props } plugins={ plugins } containerRefSetter={ setContainerRef } /></Suspense>;\n case \"webPub\":\n default:\n return <Suspense><StatefulWebPubReader publication={ publication } { ...props } plugins={ plugins } containerRefSetter={ setContainerRef } /></Suspense>;\n }\n};\n"]}
@@ -1459,9 +1459,10 @@ input {
1459
1459
  }
1460
1460
  .thorium_web_reader_header_actionsWrapper {
1461
1461
  grid-area: header-end;
1462
- justify-self: end;
1462
+ min-width: 0;
1463
1463
  display: flex;
1464
1464
  align-items: center;
1465
+ justify-content: flex-end;
1465
1466
  gap: 2px;
1466
1467
  }
1467
1468
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/app/read/app.css","../../../src/app/reset.css","../../../src/components/assets/styles/thorium-web.button.module.css","../../../src/components/Actions/assets/styles/thorium-web.overflow.module.css","../../../src/components/Actions/JumpToPosition/assets/styles/thorium-web.jumpToPosition.module.css","../../../src/components/Sheets/assets/styles/thorium-web.sheets.module.css","../../../src/components/Docking/assets/styles/thorium-web.docking.module.css","../../../src/components/Settings/assets/styles/thorium-web.reader.settings.module.css","../../../src/components/Actions/Toc/assets/styles/thorium-web.toc.module.css","../../../src/components/Audio/actions/Volume/assets/styles/thorium-web.volume.module.css","../../../src/components/Audio/actions/PlaybackRate/assets/styles/thorium-web.playbackRate.module.css","../../../src/components/Audio/actions/Toc/assets/styles/thorium-web.audioToc.module.css","../../../src/components/Audio/actions/SleepTimer/assets/styles/thorium-web.sleepTimer.module.css","../../../src/components/assets/styles/thorium-web.reader.app.module.css","../../../src/components/assets/styles/thorium-web.reader.header.module.css","../../../src/components/assets/styles/thorium-web.backlink.module.css","../../../src/components/assets/styles/thorium-web.reader.pagination.module.css","../../../src/components/assets/styles/thorium-web.reader.progression.module.css"],"sourcesContent":["html, body {\n min-height: 100%;\n height: 100%;\n margin: 0;\n overflow: hidden;\n touch-action: pan-x pan-y;\n overscroll-behavior-x: none;\n overscroll-behavior-y: none;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n position: relative;\n}","button {\n -webkit-appearance: none;\n appearance: none;\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n outline: none;\n -webkit-tap-highlight-color: transparent;\n}\n\ninput {\n font-size: 1rem;\n border-radius: 0;\n text-align: inherit;\n background: none;\n box-shadow: none;\n padding: 0;\n cursor: text;\n border: none;\n color: inherit;\n font: inherit;\n outline: none;\n}\n\n::selection {\n background-color: var(--th-theme-select);\n color: var(--th-theme-onSelect);\n}",".icon,\n.dockerButton,\n.closeButton,\n.backButton {\n box-sizing: border-box;\n padding: calc(var(--th-icon-size, 24px) * (1/4));\n text-align: center;\n border-radius: var(--th-layout-radius);\n line-height: 0;\n}\n\n.backButton {\n box-sizing: content-box;\n height: var(--th-icon-size, 24px);\n border: 2px solid transparent;\n display: flex;\n align-items: center;\n}\n\n.closeButton,\n.backButton {\n margin-inline-start: auto;\n}\n\n.icon svg,\n.dockerButton svg,\n.closeButton svg,\n.backButton svg {\n fill: currentColor;\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n}\n\n.icon[data-hovered],\n.dockerButton[data-hovered],\n.closeButton[data-hovered],\n.backButton[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.icon[data-focus-visible],\n.dockerButton[data-focus-visible],\n.closeButton[data-focus-visible],\n.backButton[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.backButton[data-disabled] {\n color: var(--th-theme-disable)\n}\n\n.tooltip {\n background-color: var(--th-theme-text);\n color: var(--th-theme-background);\n padding: 5px;\n border-radius: var(--th-layout-radius);\n}\n\n/* Visibility + Immersive */\n\n.alwaysVisible {\n opacity: 1;\n}\n\n:global(.thorium_web_stackedUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .partiallyVisible {\n opacity: 0;\n}\n\n/* Utils to improve icons’ consistency */\n\n.iconCompSm {\n padding: calc(var(--th-icon-size, 24px) * (1/3));\n}\n\n.iconCompSm svg {\n width: calc(var(--th-icon-size, 24px) * (3/4));\n height: calc(var(--th-icon-size, 24px) * (3/4));\n stroke: var(--th-theme-text);\n}\n\n.iconCompLg {\n padding: calc(var(--th-icon-size, 24px) * (1/6));\n}\n\n.iconCompLg svg {\n width: calc(var(--th-icon-size, 24px) * (4/3));\n height: calc(var(--th-icon-size, 24px) * (4/3));\n}\n\n.iconApplyStroke svg {\n stroke: var(--th-theme-text);\n}",":global(.thorium_web_layeredUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .hint {\n transform: translateY(calc(var(--th-icon-size, 24px) * 2.5));\n transition-property: transform;\n transition-duration: 200ms; \n transition-timing-function: ease-in-out;\n}\n\n:global(.thorium_web_layeredUI.thorium_web_isReflow.thorium_web_isScroll.thorium_web_isImmersive:not(.thorium_web_isHovering)) .hint {\n outline: 1px solid var(--th-theme-subdue);\n background-color: var(--th-theme-background);\n}\n\n.popover {\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n box-sizing: border-box;\n max-width: var(--th-layout-constraints-popover, 500px);\n width: max-content;\n}\n\n.menu {\n outline: none;\n}\n\n.menuItem {\n display: flex;\n align-items: center;\n gap: calc(var(--th-layout-spacing) / 2);\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n outline: none;\n}\n\n.menuItem[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.menuItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.menuItem[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.menuItem > svg {\n width: calc(var(--th-icon-size, 24px) / 1.5);\n height: calc(var(--th-icon-size, 24px) / 1.5);\n fill: currentColor;\n}\n\n.menuItemLabel {\n font-size: 1rem;\n}\n\n.menuItemShortcut {\n font-family: monospace;\n font-weight: bold;\n color: var(--th-theme-subdue);\n padding: 5px;\n margin-inline-start: auto;\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n}",".wrapper {}\n\n.form {\n display: flex;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.label {\n margin-block: 0 var(--th-layout-spacing);\n display: block;\n}\n\n.input {\n display: block;\n font-weight: bold;\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n border: 2px solid var(--th-theme-subdue);\n}\n\n.button {\n box-sizing: content-box;\n border: 2px solid var(--th-theme-subdue);\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-icon-size, 24px) * (1/2));\n text-align: center;\n border-radius: var(--th-layout-radius);\n margin-inline-start: auto;\n align-self: flex-end;\n}\n\n.button[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.input[data-focus-visible],\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.numberField[data-disabled],\n.button[data-disabled] {\n color: var(--th-theme-disable);\n} ","/* React Aria modal provides a visual viewport for mobile + keyboard: --visual-viewport-height \n which should explain why it’s being used here while not mentioned anywhere else in the codebase */\n\n.fullscreen {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 10;\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n max-height: var(--visual-viewport-height, 100dvh);\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n align-items: center;\n}\n\n.modal {\n position: fixed;\n inset: 0;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--th-layout-spacing);\n background-color: var(--th-layout-defaults-scrim, rgba(0, 0, 0, 0.2));\n pointer-events: none;\n}\n\n.modalDialog {\n pointer-events: auto;\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: 100%;\n max-width: var(--th-layout-constraints-modal, 600px);\n max-height: 90dvh;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n}\n\n.popover {\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: calc(340px + (2 * var(--th-layout-spacing)));\n max-width: var(--th-layout-constraints-popover, 500px);\n max-height: 100%;\n max-height: var(--visual-viewport-height, 100dvh);\n padding: 0;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n}\n\n.compactPopover {\n overflow-y: auto;\n scroll-padding-top: var(--th-layout-spacing);\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: calc(340px + (2 * var(--th-layout-spacing)));\n max-width: var(--th-layout-constraints-popover, 500px);\n max-height: 100%;\n max-height: var(--visual-viewport-height, 100dvh);\n padding: 0;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n}\n\n/* React Modal Sheet handles scroll + sticky header so no need for scroll-padding here */\n.draggable {\n box-sizing: border-box;\n max-width: var(--th-layout-constraints-bottomSheet, 600px);\n left: max(calc((100% - var(--th-layout-constraints-bottomSheet, 600px)) / 2), 0px) !important;\n background-color: var(--th-theme-background) !important;\n color: var(--th-theme-text) !important;\n border: none;\n /* Animating drop-shadow pretty much kills performance, hence why we use a pseudo-element */\n filter: none !important;\n box-shadow: none !important;\n /* M3 = 28dp, see https://m3.material.io/components/bottom-sheets/overview */\n border-top-left-radius: 28px !important;\n border-top-right-radius: 28px !important;\n transition: border-radius 500ms;\n}\n\n.draggable::after {\n content: \"\";\n z-index: -1;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n /* important for performance */\n transform: translateZ(0);\n box-shadow: var(--th-theme-elevate);\n border-top-left-radius: 28px;\n border-top-right-radius: 28px;\n}\n\n.draggableFullHeightDetent {\n height: calc(100% - env(safe-area-inset-top)) !important;\n}\n\n.draggableContentHeightDetent {\n max-height: calc(100% - env(safe-area-inset-top)) !important;\n}\n\n.draggable[data-full-height] {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n transition: border-radius 500ms;\n}\n\n.draggableBackdrop {\n /* So that React Aria can use it to dismiss the sheet as it’s set to none by React Modal Sheet. */\n pointer-events: auto !important;\n background-color: transparent !important;\n}\n\n.draggableScrim {\n background-color: var(--th-layout-defaults-scrim) !important;\n}\n\n.draggableContainer {\n padding: 0;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n}\n\n.draggableScroller {\n position: relative;\n scroll-padding-bottom: calc(var(--th-layout-spacing) * 4);\n}\n\n.dragIndicator {\n width: calc(var(--th-icon-size, 40px) * 1.5);\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.dragIndicator[data-focus-visible] {\n border-radius: var(--th-layout-radius);\n outline: 2px solid var(--th-theme-focus);\n}\n\n.dragIndicator svg {\n fill: var(--th-theme-subdue);\n width: 100%;\n height: auto;\n}\n\n.docked {\n /* We need relative positioning so that RAC FocusScope scrolls properly on tabbing */\n position: relative;\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n height: 100vh;\n height: 100dvh;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n}\n\n.dockedLeftBorder {\n border-right: 1px solid var(--th-theme-subdue);\n}\n\n.dockedRightBorder {\n border-left: 1px solid var(--th-theme-subdue);\n}\n\n.dialog {\n outline: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 10;\n padding: calc(var(--th-layout-spacing) / 2) var(--th-layout-spacing);\n background-color: var(--th-theme-background);\n border-bottom: 1px solid var(--th-theme-subdue);\n}\n\n.draggableHeader {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n background-color: var(--th-theme-background);\n border-bottom: 1px solid var(--th-theme-subdue);\n padding: var(--th-layout-spacing) var(--th-layout-spacing) calc(var(--th-layout-spacing) / 2) var(--th-layout-spacing);\n /* Otherwise covers the modal’s */\n border-top-left-radius: 28px !important;\n border-top-right-radius: 28px !important;\n transition: border-radius 500ms;\n}\n\n.draggable[data-full-height] .draggableHeader {\n /* Otherwise covers the modal’s */\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n transition: border-radius 500ms;\n}\n\n.heading {\n font-size: 1.25rem;\n line-height: 1;\n margin: 0;\n padding: 0;\n}\n\n.compactHeader {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.body {\n padding: var(--th-layout-spacing);\n}",".dockerWrapper {\n margin-inline-start: auto;\n margin-inline-end: calc(var(--th-icon-size, 24px) * (1 / 4) * -1); /* Optical alingment */\n display: flex;\n gap: 2px;\n padding-inline-start: var(--th-layout-spacing);\n}\n\n.docker {\n display: flex;\n gap: 2px;\n}\n\n.resizeHandle {\n position: relative;\n width: 0;\n}\n\n.resizeHandle:focus-visible {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.resizeHandleGrab {\n position: absolute;\n z-index: 1000;\n top: 50%;\n transform: translateY(-50%);\n width: 5px;\n height: 50px;\n border-radius: 5px;\n background-color: var(--th-theme-subdue);\n}\n\n.resizeHandleGrabLeft {\n left: 0;\n}\n\n.resizeHandleGrabRight {\n left: -5px;\n}",".wrapper {}\n\n.group {\n margin: calc(var(--th-layout-spacing) * 2) 0; \n}\n\n.advancedGroup {\n position: relative;\n}\n\n.advancedIcon {\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n}\n\n.label {\n display: block;\n font-weight: bold;\n font-size: 1rem;\n margin: 0;\n}\n\n.groupLabel {\n padding-top: calc(var(--th-icon-size, 24px) * (1/3));\n}\n\n.radioWrapper,\n.groupWrapper {\n margin: var(--th-layout-spacing) 0;\n text-align: center;\n border-radius: var(--th-layout-radius);\n}\n\n.numberField .groupWrapper {\n margin-bottom: 0;\n}\n\n.radioWrapper {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(min(100%, 100px), 1fr));\n gap: calc(var(--th-layout-spacing) / 4);\n width: 100%; \n}\n\n.groupWrapper {\n display: flex;\n width: fit-content;\n gap: var(--th-layout-spacing) calc(var(--th-layout-spacing) / 2);\n}\n\n.advancedGroup .radioWrapper {\n margin-bottom: 0;\n}\n\n.groupWrapper[data-focus-within]:has(input[data-focus-visible]) {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.numberFieldWrapper,\n.sliderWrapper {\n display: flex;\n align-items: flex-start;\n max-width: 100%;\n}\n\n.numberFieldWrapper .numberField,\n.sliderWrapper .slider {\n flex: 1 0 auto;\n}\n\n.group:first-of-type {\n margin-top: 0;\n}\n\n.group:last-of-type {\n margin-bottom: 0;\n}\n\n/* Reset button */\n\n.resetButton {\n margin-inline-start: auto;\n}\n\n/* Number field */\n\n.numberField .input {\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n font-weight: bold;\n align-self: center;\n max-width: 20ch;\n}\n\n.groupWrapper[data-disabled] .input {\n color: var(--th-theme-disable)\n}\n\n.radio {\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n box-sizing: border-box;\n border: 2px solid transparent;\n}\n\n.radio:not(.themeRadio) {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: calc(var(--th-layout-spacing) / 2);\n min-width: 0;\n width: 100%;\n}\n\n.radio:not(.themeRadio) > * {\n width: 100%;\n text-align: center;\n}\n\n/* Text truncation for non-theme radios */\n.radio:not(.themeRadio) span {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2em;\n max-height: 2.4em; /* 2 lines of text */\n width: 100%;\n box-sizing: border-box;\n white-space: normal;\n}\n\n.radio:not(.themeRadio)[data-selected] {\n border: 2px solid var(--th-theme-subdue);\n}\n\n.radio[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.radio[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.radio[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n outline-offset: 2px;\n}\n\n.radio svg {\n width: var(--th-icon-size, 32px);\n height: var(--th-icon-size, 32px);\n /* So that it’s the same color as text based on state */\n fill: currentColor;\n}\n\n.themesWrapper {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-auto-flow: row;\n max-width: 100%;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.themeRadio {\n padding-block: calc(var(--th-layout-spacing) / 4);\n padding-inline: calc((var(--th-icon-size, 24px) * 5/6) + (var(--th-layout-spacing) / 4));\n position: relative;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.themeRadio svg {\n width: calc(var(--th-icon-size, 24px) * 5/6);\n height: calc(var(--th-icon-size, 24px) * 5/6);\n position: absolute;\n inset-inline-end: 5px;\n inset-block-end: 5px;\n /* So that it’s the same color as text w/o having to expose a custom prop globally */\n fill: currentColor;\n}\n\n.separator {\n border: none;\n border-top: 1px solid var(--th-theme-subdue);\n}\n\n/* Slider */\n\n.slider {\n display: grid;\n grid-template-areas: \"label output\"\n \"track track\";\n grid-template-columns: 1fr auto;\n gap: calc(var(--th-layout-spacing) / 2);\n color: var(--th-theme-text);\n flex-direction: column;\n max-width: min(calc(100% - (var(--th-layout-spacing) / 2)), 80%);\n}\n\n.sliderLabel {\n grid-area: label;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.sliderOutput {\n grid-area: output;\n}\n\n.slider[data-disabled] .sliderLabel,\n.slider[data-disabled] .sliderOutput {\n color: var(--th-theme-disable);\n}\n\n.sliderTrack {\n grid-area: track;\n position: relative;\n height: 30px;\n width: auto;\n box-sizing: border-box;\n margin-inline: calc(var(--th-layout-spacing) / 2);\n}\n\n.sliderTrack::before {\n content: \"\";\n display: block;\n position: absolute;\n background: var(--th-theme-subdue);\n height: 3px;\n width: 100%;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.sliderThumb {\n width: 1.25rem;\n height: 1.25rem;\n border-radius: 50%;\n background: var(--th-theme-text);\n border: 2px solid var(--th-theme-subdue);\n top: 50%;\n}\n\n.slider[data-disabled] .sliderThumb {\n background: var(--th-theme-disable);\n border: 2px solid var(--th-theme-disable);\n}\n\n.sliderThumb[data-dragging] {\n background: var(--th-theme-subdue);\n}\n\n.sliderThumb[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n border: 2px solid var(--th-theme-focus);\n}\n\n.sliderPlaceholder {\n color: var(--th-theme-subdue); \n}\n\n/* Slider with presets */\n\n.sliderWithPresetsWrapper {\n display: flex;\n flex-direction: column;\n gap: var(--th-layout-spacing);\n}\n\n\n/* Let the slider fill the full width of the wrapper */\n.sliderWithPresetsWrapper .sliderWrapper {\n width: 100%;\n}\n\n.sliderWithPresetsWrapper .slider {\n max-width: 100%;\n}\n\n.sliderWithPresetsRadioGroup {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));\n gap: calc(var(--th-layout-spacing) / 4);\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sliderWithPresetsRadio {\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n box-sizing: border-box;\n border: 2px solid transparent;\n text-align: center;\n font-variant-numeric: tabular-nums;\n background: transparent;\n color: var(--th-theme-text);\n}\n\n.sliderWithPresetsRadio[data-selected] {\n border: 2px solid var(--th-theme-subdue);\n}\n\n.sliderWithPresetsRadio[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.sliderWithPresetsRadio[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n outline-offset: 2px;\n}\n\n.sliderWithPresetsRadio[data-disabled] {\n color: var(--th-theme-disable);\n border-color: var(--th-theme-disable);\n}\n\n/* Slider with ticks */\n\n.sliderWithTicks .sliderTrack::before {\n background: \n /* Track line */\n linear-gradient(\n to right,\n var(--th-theme-subdue) 0%,\n var(--th-theme-subdue) 100%\n ) 0 50% / 100% 3px no-repeat,\n\n /* Ticks */\n repeating-linear-gradient(\n to right,\n var(--th-theme-text) 0%,\n var(--th-theme-text) 1px,\n transparent 1px,\n transparent calc((100% - 2px) / var(--th-slider-ticks, 10))\n ) 0 50% / 100% 15px no-repeat;\n height: 15px;\n transform: translateY(-50%);\n position: relative;\n}\n\n/* First and last tick */\n\n.sliderWithTicks .sliderTrack::after {\n content: \"\";\n background: \n /* First tick */\n linear-gradient(\n to right,\n var(--th-theme-subdue) 0%,\n var(--th-theme-subdue) 3px,\n transparent 3px,\n transparent 100%\n ) 0 50% / 100% 20px no-repeat,\n\n /* Last tick */\n linear-gradient(\n to left,\n var(--th-theme-subdue) 0%,\n var(--th-theme-subdue) 3px,\n transparent 3px,\n transparent 100%\n ) 100% 50% / 100% 20px no-repeat;\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 20px;\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n/* Dropdown */\n\n.dropdown[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.dropdownButton {\n margin-top: var(--th-layout-spacing);\n position: relative;\n padding-block: calc(var(--th-layout-spacing) / 2);\n padding-inline: calc(var(--th-layout-spacing) / 2) calc(var(--th-icon-size, 24px) * 6/5);\n border-radius: var(--th-layout-radius);\n box-sizing: border-box;\n border: 1px solid var(--th-theme-subdue);\n max-width: 100%;\n}\n\n.dropdownButton[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.dropdownButton svg {\n width: calc(var(--th-icon-size, 24px) * 5/6);\n height: calc(var(--th-icon-size, 24px) * 5/6);\n position: absolute;\n inset-inline-end: calc(var(--th-layout-spacing) / 4);\n inset-block-start: calc(var(--th-layout-spacing) / 2);\n fill: currentColor;\n}\n\n.dropdownPopover {\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n box-sizing: border-box;\n width: max-content;\n overflow-y: auto;\n /* TMP: Needs to be higher than bottom sheet, which requires hack for Safari iOS */\n z-index: 1000000 !important;\n}\n\n.dropdownListbox {\n display: flex;\n flex-direction: column;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.dropdownListboxItem {\n padding: calc(var(--th-layout-spacing) / 4);\n border-radius: var(--th-layout-radius);\n outline: none;\n}\n\n.dropdownListboxItem[data-selected] {\n color: var(--th-theme-subdue);\n}\n\n.dropdownListboxItem[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.dropdownListboxItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.dropdownListboxItem[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n/* Switch */\n\n.switch {\n display: flex;\n align-items: center;\n gap: clamp(10px, calc(var(--th-layout-spacing) / 2), 20px);\n color: var(--th-theme-text);\n margin: var(--th-layout-spacing) 0;\n}\n\n.switchIndicator {\n width: 2rem;\n height: 1.143rem;\n border: 2px solid var(--th-theme-subdue);\n background: var(--th-theme-background);\n border-radius: 1.143rem;\n transition: all 200ms;\n flex-shrink: 0;\n}\n\n.switchIndicator::before {\n content: \"\";\n display: block;\n margin: 0.143rem;\n width: 0.857rem;\n height: 0.857rem;\n background: var(--th-theme-subdue);\n border-radius: 16px;\n transition: all 200ms;\n}\n\n.switch[data-selected] .switchIndicator::before {\n background: var(--th-theme-text);\n transform: translateX(100%);\n}\n\n:dir(rtl) .switch[data-selected] .switchIndicator::before {\n background: var(--th-theme-text);\n transform: translateX(-100%);\n}\n\n.switch[data-focus-visible] .switchIndicator {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.switch[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.switch[data-disabled] .switchIndicator::before {\n background: var(--th-theme-disable) !important;\n}","/* Search */\n.wrapper {}\n\n.search {\n margin-bottom: var(--th-layout-spacing);\n display: grid;\n grid-template-areas: \"label label\"\n \"input button\";\n grid-template-columns: 1fr auto;\n align-items: center;\n width: 100%;\n}\n\n.searchLabel {\n grid-area: label;\n margin-bottom: calc(var(--th-layout-spacing) / 2);\n}\n\n.searchInput {\n grid-area: input;\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n display: block;\n border-radius: var(--th-layout-radius);\n border: 2px solid var(--th-theme-subdue);\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n}\n\n.searchInput::-webkit-search-cancel-button,\n.searchInput::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n.searchInput[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.searchIcon,\n.clearButton {\n grid-area: button;\n margin-inline-start: calc(var(--th-icon-size, 24px) * -1.25);\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.searchIcon svg {\n fill: var(--th-theme-subdue);\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n}\n\n.clearButton svg {\n fill: var(--th-theme-text);\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n}\n\n.searchIcon[hidden],\n.clearButton[data-disabled] {\n display: none;\n}\n\n.tree {\n background: var(--th-theme-background);\n color: var(--th-theme-text);\n outline: none;\n width: 100%;\n max-height: 100%;\n box-sizing: border-box;\n}\n\n/* React Aria is providing a --tree-item-level as items are not nested */\n.treeItem {\n display: flex;\n padding: calc(var(--th-layout-spacing) / 2);\n padding-inline-start: calc(((var(--tree-item-level) - 1) * var(--th-layout-spacing)) + (var(--th-layout-spacing) / 2));\n border-radius: var(--th-layout-radius);\n border: 2px solid transparent;\n box-sizing: border-box;\n}\n\n.tree:has(.treeItemButton) .treeItem {\n padding-inline-start: calc((var(--tree-item-level) * var(--th-layout-spacing)) + (var(--th-layout-spacing) / 2));\n}\n\n.tree .treeItem:has(.treeItemButton) {\n padding-inline-start: calc(((var(--tree-item-level) - 1) * var(--th-layout-spacing)));\n}\n\n.treeItemText {\n display: flex;\n flex: 1 1 auto;\n}\n\n.treeItemTextTitle {\n text-wrap: balance;\n}\n\n.treeItemTextPosition {\n margin-inline-start: auto;\n padding-inline-start: calc(var(--th-layout-spacing) / 2);\n color: var(--th-theme-subdue);\n font-variant-numeric: lining-nums tabular-nums;\n}\n\n.treeItemButton {\n align-self: flex-start;\n width: calc(var(--th-icon-size, 24px) * 5/6);\n height: calc(var(--th-icon-size, 24px) * 5/6);\n margin-inline-end: calc(var(--th-layout-spacing) / 2);\n flex-shrink: 0;\n}\n\n.treeItem[data-href] {\n cursor: pointer;\n}\n\n/* [data-hover] is only updated on tree items that can be expanded ATM… */\n.treeItem:hover {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.treeItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.treeItem[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.treeItem[data-selected] {\n border: 2px solid var(--th-theme-subdue);\n}\n\n.treeItemButton svg {\n flex: none;\n rotate: 0deg;\n transition: rotate 200ms;\n width: 100%;\n height: 100%;\n fill: currentColor;\n}\n\n.treeItem[data-expanded] .treeItemButton svg {\n rotate: 90deg;\n}\n\n.empty {\n max-width: 25ch;\n text-align: start;\n text-wrap: balance;\n}",".wrapper {\n width: auto;\n}\n\n.button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.sliderTrack {\n position: relative;\n box-sizing: border-box;\n}\n\n.sliderTrack::before {\n content: \"\";\n display: block;\n position: absolute;\n background: var(--th-theme-subdue);\n}\n\n.slider[data-disabled] .sliderTrack::before {\n background: var(--th-theme-disable);\n}\n\n/* Vertical */\n\n.slider[data-orientation=\"vertical\"] .sliderTrack {\n height: 150px;\n width: 30px;\n margin-block: calc(1.25rem / 2);\n}\n\n.slider[data-orientation=\"vertical\"] .sliderTrack::before {\n width: 3px;\n height: 100%;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.slider[data-orientation=\"vertical\"] .sliderThumb {\n left: 50%;\n transform: translateX(-50%);\n}\n\n/* Horizontal */\n\n.slider[data-orientation=\"horizontal\"] {\n max-width: 320px;\n width: 100%;\n}\n\n.slider[data-orientation=\"horizontal\"] .sliderTrack {\n width: 100%;\n height: 30px;\n}\n\n.slider[data-orientation=\"horizontal\"] .sliderTrack::before {\n height: 3px;\n width: 100%;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.slider[data-orientation=\"horizontal\"] .sliderThumb {\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* Thumb shared */\n\n.sliderThumb {\n width: 1.25rem;\n height: 1.25rem;\n border-radius: 50%;\n background: var(--th-theme-text);\n border: 2px solid var(--th-theme-subdue);\n}\n\n.slider[data-disabled] .sliderThumb {\n background: var(--th-theme-disable);\n border: 2px solid var(--th-theme-disable);\n}\n\n.sliderThumb[data-dragging] {\n background: var(--th-theme-subdue);\n}\n\n.sliderThumb[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n border: 2px solid var(--th-theme-focus);\n}",".wrapper {\n width: auto;\n}\n\n.button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.button:has(.label) {\n padding-bottom: calc(var(--th-icon-size) * (2/3));\n}\n\n.label {\n position: absolute;\n bottom: calc(var(--th-icon-size) * (1/4));\n left: 50%;\n transform: translateX(-50%);\n white-space: nowrap;\n line-height: 1;\n font-size: calc(var(--th-icon-size, 24px) * (5/12));\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n}\n\n/* Playback rate - slider with presets variant */\n\n.slider {\n min-width: 260px;\n}\n\n/* Playback rate - number field variant */\n\n.numberfield {\n min-width: 140px;\n display: flex;\n justify-content: center;\n}",".button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}",".wrapper {}\n\n.button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.button:has(.label) {\n padding-bottom: calc(var(--th-icon-size) * (2/3));\n}\n\n.label {\n position: absolute;\n bottom: calc(var(--th-icon-size) * (1/4));\n left: 50%;\n transform: translateX(-50%);\n white-space: nowrap;\n line-height: 1;\n font-size: calc(var(--th-icon-size, 24px) * (5/12));\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n}\n\n.listbox {\n display: flex;\n flex-direction: column;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.listboxItem {\n padding: calc(var(--th-layout-spacing) / 4);\n border-radius: var(--th-layout-radius);\n outline: none;\n cursor: default;\n}\n\n.listboxItem[data-selected] {\n background-color: var(--th-theme-hover);\n font-weight: bold;\n}\n\n.listboxItem[data-hovered]:not([data-selected]) {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.listboxItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n/* Sleep timer duration field */\n\n.durationField {\n display: flex;\n flex-direction: column;\n}\n\n.instruction {\n display: block;\n margin: 0 0 var(--th-layout-spacing) 0;\n}\n\n.inputs {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: calc(var(--th-layout-spacing) / 4);\n margin-bottom: var(--th-layout-spacing);\n}\n\n.fieldGroup {\n display: contents;\n}\n\n.fieldInput {\n width: 4ch;\n text-align: center;\n background: transparent;\n border: 2px solid var(--th-theme-subdue);\n border-radius: var(--th-layout-radius);\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n color: var(--th-theme-text);\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n outline: none;\n}\n\n.fieldInput[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.unitLabel {\n margin-inline-end: calc(var(--th-layout-spacing) / 4);\n}\n\n.remaining {\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n margin: 0 0 var(--th-layout-spacing) 0;\n}\n\n.cancelButton {\n margin-top: var(--th-layout-spacing);\n}\n\n/* Start button */\n\n.startButton {\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-icon-size, 24px) * (1/2));\n border-radius: var(--th-layout-radius);\n border: 2px solid var(--th-theme-subdue);\n background: transparent;\n color: var(--th-theme-text);\n cursor: default;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n}\n\n.startButton[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover)\n}\n\n.startButton[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.startButton[data-disabled] {\n color: var(--th-theme-disable);\n}","/* For some classNames we need global, as they impact other modules */\n\n.wrapper {\n height: 100%;\n width: 100%;\n margin: 0;\n}\n\n.main {\n width: 100%;\n height: 100%;\n margin: 0;\n}\n\n.shell {\n width: 100%;\n height: 100%;\n margin: 0;\n}\n\n.leftDock {\n height: 100vh;\n height: 100dvh;\n}\n\n.rightDock {\n height: 100vh;\n height: 100dvh;\n}\n\n/* Top and bottom bars */\n\n.bottomBar,\n.topBar {\n box-sizing: border-box;\n gap: 2px;\n touch-action: manipulation;\n background-color: var(--th-theme-background);\n}\n\n.bottomBar {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n/* Stacked UI */\n\n.main :global(.thorium_web_stackedUI) {\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n height: 100vh;\n height: 100dvh;\n max-height: 100%;\n background-color: var(--th-theme-background);\n}\n\n:global(.thorium_web_stackedUI) .topBar,\n:global(.thorium_web_stackedUI) .bottomBar {\n flex: 0 0 calc(var(--th-icon-size, 24px) * 2.5);\n height: calc(var(--th-icon-size, 24px) * 2.5);\n}\n\n:global(.thorium_web_stackedUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .topBar,\n:global(.thorium_web_stackedUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .bottomBar {\n opacity: var(--th-theme-immerse);\n}\n\n/* Layered UI */\n\n.main :global(.thorium_web_layeredUI) {\n position: relative;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100vh;\n height: 100dvh;\n max-height: 100%;\n background-color: var(--th-theme-background);\n}\n\n:global(.thorium_web_layeredUI) .topBar,\n:global(.thorium_web_layeredUI) .bottomBar {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n z-index: 2;\n box-shadow: var(--th-theme-elevate);\n overflow: hidden;\n transition-property: transform, box-shadow;\n transition-duration: 200ms;\n transition-timing-function: ease-in-out;\n transform: translateY(0);\n}\n\n:global(.thorium_web_layeredUI) .topBar {\n top: 0;\n}\n\n:global(.thorium_web_layeredUI) .bottomBar {\n bottom: 0;\n}\n\n:global(.thorium_web_layeredUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .topBar {\n transform: translateY(calc(var(--th-icon-size, 24px) * -2.5));\n box-shadow: none;\n overflow: unset;\n}\n\n:global(.thorium_web_layeredUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .bottomBar {\n transform: translateY(calc(var(--th-icon-size, 24px) * 2.5));\n box-shadow: none;\n}\n\n.barOverlay {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n pointer-events: auto;\n opacity: 0;\n z-index: 1000;\n}\n\n.headerOverlay {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n pointer-events: auto;\n opacity: 0;\n z-index: 1000;\n top: 0;\n}\n\n.footerOverlay {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n pointer-events: auto;\n opacity: 0;\n z-index: 1000;\n bottom: 0;\n}\n\n/* iFrame + its container */\n\n.iframeContainer {\n contain: content;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n}\n\n.iframeContainer :global(.readium-navigator-iframe) {\n width: 100%;\n height: 100%;\n border-width: 0;\n}\n\n/* FXL: Loading spinner for resources */\n@keyframes loading {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.iframeContainer :global(div:has(> .readium-navigator-iframe.blank))::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n margin-top: -30px;\n margin-left: -30px;\n width: 50px;\n height: 50px;\n border-radius: 50px;\n border: 5px solid grey;\n border-top-color: black;\n animation: loading 2s linear infinite;\n}\n\n/* Utils */\n\n.srOnly {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}",".header {\n box-sizing: border-box;\n display: grid;\n grid-template-areas: \"header-start header-center header-end\";\n grid-template-columns: 1fr 3fr 1fr;\n padding: 0.25rem 0.5rem 0;\n}\n\n.backlinkWrapper {\n grid-area: header-start;\n justify-self: start;\n align-self: center;\n}\n\n.header h1 {\n font-size: 1rem;\n color: var(--th-theme-text);\n font-weight: normal;\n grid-area: header-center;\n justify-self: center;\n align-self: center;\n max-width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; \n transition: opacity 200ms ease-in-out;\n}\n\n.actionsWrapper {\n grid-area: header-end;\n justify-self: end;\n display: flex;\n align-items: center;\n gap: 2px;\n}",".link {\n display: block;\n box-sizing: content-box;\n padding: calc(var(--th-icon-size, 24px) * (1/4));\n text-align: start;\n border-radius: var(--th-layout-radius);\n max-width: 100%;\n height: var(--th-icon-size, 24px);\n}\n\n.link svg {\n fill: var(--th-theme-text);\n max-width: 100%;\n height: 100%;\n}\n\n.link img {\n max-width: 100%;\n height: 100%;\n}\n\n.link[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.link[data-hovered] svg {\n fill: var(--th-theme-onHover)\n}\n\n.link[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.link[data-disabled] {\n color: var(--th-theme-disable)\n}\n\n.link[data-disabled] svg {\n fill: var(--th-theme-disable)\n}",".wrapper {\n box-sizing: border-box;\n display: grid;\n gap: calc(var(--th-layout-spacing) / 2);\n grid-template-areas: \"pagination-start pagination-center pagination-end\";\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n align-items: center;\n width: 100%;\n max-width: var(--th-layout-constraints-pagination, 100%);\n}\n\n.listItem {\n box-sizing: border-box;\n list-style: none;\n}\n\n.listItem:has(.leftButton) {\n grid-area: pagination-start;\n justify-self: start;\n}\n\n.listItem:has(.progression) {\n grid-area: pagination-center;\n justify-self: center;\n}\n\n.listItem:has(.rightButton) {\n grid-area: pagination-end;\n justify-self: end;\n}\n\n\n.listItem button {\n box-sizing: border-box;\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n gap: calc(var(--th-layout-spacing) / 2);\n max-height: calc(var(--th-icon-size, 24px) * 2);\n max-width: 100%;\n border-radius: var(--th-layout-radius);\n display: flex;\n align-items: center;\n}\n\n.rightButton {\n margin-inline-start: auto;\n text-align: end;\n}\n\n.listItem button[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.listItem button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.listItem button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.listItem button .label {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n white-space: normal;\n -webkit-line-clamp: 1;\n line-clamp: 1;\n}\n\n.listItem button svg {\n flex: none;\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n fill: currentColor;\n}",".wrapper {\n color: var(--th-theme-text);\n font-variant-numeric: lining-nums tabular-nums;\n text-align: center;\n}"],"mappings":";AAAA;AAAM;AACJ,cAAY;AACZ,UAAQ;AACR,UAAQ;AACR,YAAU;AACV,gBAAc,MAAM;AACpB,yBAAuB;AACvB,yBAAuB;AACvB,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,YAAU;AACZ;;;ACXA;AACE,sBAAoB;AACpB,cAAY;AACZ,UAAQ;AACR,cAAY;AACZ,WAAS;AACT,UAAQ;AACR,QAAM;AACN,SAAO;AACP,UAAQ;AACR,WAAS;AACT,+BAA6B;AAC/B;AAEA;AACE,aAAW;AACX,iBAAe;AACf,cAAY;AACZ,cAAY;AACZ,cAAY;AACZ,WAAS;AACT,UAAQ;AACR,UAAQ;AACR,SAAO;AACP,QAAM;AACN,WAAS;AACX;AAEA;AACE,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;;;AC/BA,CAACA;AACD,CAACC;AACD,CAACC;AACD,CAACC;AACC,cAAY;AACZ,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7C,cAAY;AACZ,iBAAe,IAAI;AACnB,eAAa;AACf;AAEA,CARCA;AASC,cAAY;AACZ,UAAQ,IAAI,cAAc,EAAE;AAC5B,UAAQ,IAAI,MAAM;AAClB,WAAS;AACT,eAAa;AACf;AAEA,CAjBCD;AAkBD,CAjBCC;AAkBC,uBAAqB;AACvB;AAEA,CAxBCH,wBAwBK;AACN,CAxBCC,gCAwBa;AACd,CAxBCC,+BAwBY;AACb,CAxBCC,8BAwBW;AACV,QAAM;AACN,SAAO,IAAI,cAAc,EAAE;AAC3B,UAAQ,IAAI,cAAc,EAAE;AAC9B;AAEA,CAjCCH,uBAiCI,CAAC;AACN,CAjCCC,+BAiCY,CAAC;AACd,CAjCCC,8BAiCW,CAAC;AACb,CAjCCC,6BAiCU,CAAC;AACV,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAzCCH,uBAyCI,CAAC;AACN,CAzCCC,+BAyCY,CAAC;AACd,CAzCCC,8BAyCW,CAAC;AACb,CAzCCC,6BAyCU,CAAC;AACV,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CA7CCA,6BA6CU,CAAC;AACV,SAAO,IAAI;AACb;AAEA,CAACC;AACC,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,WAAS;AACT,iBAAe,IAAI;AACrB;AAIA,CAACC;AACC,WAAS;AACX;AAEQ,CAAC,qBAAqB,CAAC,uBAAuB,KAAK,CAAC,wBAAyB,CAACC;AACpF,WAAS;AACX;AAIA,CAACC;AACC,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/C;AAEA,CAJCA,8BAIW;AACV,SAAO,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC5C,UAAQ,IAAI;AACd;AAEA,CAACC;AACC,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/C;AAEA,CAJCA,8BAIW;AACV,SAAO,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9C;AAEA,CAACC,mCAAgB;AACf,UAAQ,IAAI;AACd;;;AC5FQ,CAAC,qBAAqB,CAAC,uBAAuB,KAAK,CAAC,wBAAyB,CAACC;AACpF,aAAW,WAAW,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACvD,uBAAqB;AACrB,uBAAqB;AACrB,8BAA4B;AAC9B;AAEQ,CAPC,qBAOqB,CAAC,oBAAoB,CAAC,oBAAoB,CAPzC,uBAOiE,KAAK,CAPzC,wBAOmE,CAPzCA;AAQpF,WAAS,IAAI,MAAM,IAAI;AACvB,oBAAkB,IAAI;AACxB;AAEA,CAACC;AACC,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,UAAQ,YAAY,IAAI;AACxB,cAAY;AACZ,aAAW,IAAI,+BAA+B,EAAE;AAChD,SAAO;AACT;AAEA,CAACC;AACC,WAAS;AACX;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,iBAAe,IAAI;AACnB,WAAS;AACX;AAEA,CATCA,6BASQ,CAAC;AACR,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAdCA,6BAcQ,CAAC;AACR,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAlBCA,6BAkBQ,CAAC;AACR,SAAO,IAAI;AACb;AAEA,CAtBCA,8BAsBS,EAAE;AACV,SAAO,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACxC,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACzC,QAAM;AACR;AAEA,CAACC;AACC,aAAW;AACb;AAEA,CAACC;AACC,eAAa;AACb,eAAa;AACb,SAAO,IAAI;AACX,WAAS;AACT,uBAAqB;AACrB,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACxB;;;ACpEA,CAACC;AAAS;AAEV,CAACC;AACC,WAAS;AACT,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACvC;AAEA,CAACC;AACC,gBAAc,EAAE,IAAI;AACpB,WAAS;AACX;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,qBAAqB,EAAE;AACjF,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM,IAAI;AACtB,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACrF,cAAY;AACZ,iBAAe,IAAI;AACnB,uBAAqB;AACrB,cAAY;AACd;AAEA,CAVCA,iCAUM,CAAC;AACN,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAvBCD,gCAuBK,CAAC;AACP,CAhBCC,iCAgBM,CAAC;AACN,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAACC,sCAAW,CAAC;AACb,CArBCD,iCAqBM,CAAC;AACN,SAAO,IAAI;AACb;;;ACxCA,CAACE;AACC,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,WAAS;AACT,cAAY;AACZ,sBAAoB,KAAK,IAAI,wBAAwB,EAAE,MAAM,EAAE,IAAI;AACnE,yBAAuB,IAAI;AAC3B,cAAY;AACZ,SAAO;AACP,UAAQ;AACR,cAAY,IAAI,wBAAwB,EAAE;AAC1C,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,eAAa;AACf;AAEA,CAACC;AACC,YAAU;AACV,SAAO;AACP,WAAS;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,WAAS,IAAI;AACb,oBAAkB,IAAI,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAChE,kBAAgB;AAClB;AAEA,CAACC;AACC,kBAAgB;AAChB,cAAY;AACZ,sBAAoB,KAAK,IAAI,wBAAwB,EAAE,MAAM,EAAE,IAAI;AACnE,yBAAuB,IAAI;AAC3B,cAAY;AACZ,SAAO;AACP,aAAW,IAAI,6BAA6B,EAAE;AAC9C,cAAY;AACZ,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,UAAQ,YAAY,IAAI;AAC1B;AAEA,CAACC;AACC,cAAY;AACZ,sBAAoB,KAAK,IAAI,wBAAwB,EAAE,MAAM,EAAE,IAAI;AACnE,yBAAuB,IAAI;AAC3B,cAAY;AACZ,SAAO,KAAK,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI;AAC7B,aAAW,IAAI,+BAA+B,EAAE;AAChD,cAAY;AACZ,cAAY,IAAI,wBAAwB,EAAE;AAC1C,WAAS;AACT,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,UAAQ,YAAY,IAAI;AAC1B;AAEA,CAACC;AACC,cAAY;AACZ,sBAAoB,IAAI;AACxB,yBAAuB,IAAI;AAC3B,cAAY;AACZ,SAAO,KAAK,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI;AAC7B,aAAW,IAAI,+BAA+B,EAAE;AAChD,cAAY;AACZ,cAAY,IAAI,wBAAwB,EAAE;AAC1C,WAAS;AACT,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,UAAQ,YAAY,IAAI;AAC1B;AAGA,CAACC;AACC,cAAY;AACZ,aAAW,IAAI,mCAAmC,EAAE;AACpD,QAAM,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,mCAAmC,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC9E,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,UAAQ;AAER,UAAQ;AACR,cAAY;AAEZ,0BAAwB;AACxB,2BAAyB;AACzB,cAAY,cAAc;AAC5B;AAEA,CAhBCA,4BAgBS;AACR,WAAS;AACT,WAAS;AACT,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AAER,aAAW,WAAW;AACtB,cAAY,IAAI;AAChB,0BAAwB;AACxB,2BAAyB;AAC3B;AAEA,CAACC;AACC,UAAQ,KAAK,KAAK,EAAE,IAAI;AAC1B;AAEA,CAACC;AACC,cAAY,KAAK,KAAK,EAAE,IAAI;AAC9B;AAEA,CAvCCF,4BAuCS,CAAC;AACT,0BAAwB;AACxB,2BAAyB;AACzB,cAAY,cAAc;AAC5B;AAEA,CAACG;AAEC,kBAAgB;AAChB,oBAAkB;AACpB;AAEA,CAACC;AACC,oBAAkB,IAAI;AACxB;AAEA,CAACC;AACC,WAAS;AACT,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAACC;AACC,YAAU;AACV,yBAAuB,KAAK,IAAI,qBAAqB,EAAE;AACzD;AAEA,CAACC;AACC,SAAO,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACxC,YAAU;AACV,OAAK;AACL,QAAM;AACN,aAAW,WAAW;AACxB;AAEA,CARCA,gCAQa,CAAC;AACb,iBAAe,IAAI;AACnB,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAbCA,iCAac;AACb,QAAM,IAAI;AACV,SAAO;AACP,UAAQ;AACV;AAEA,CAACC;AAEC,YAAU;AACV,cAAY;AACZ,sBAAoB,KAAK,IAAI,wBAAwB,EAAE,MAAM,EAAE,IAAI;AACnE,yBAAuB,IAAI;AAC3B,cAAY;AACZ,SAAO;AACP,aAAW;AACX,UAAQ;AACR,UAAQ;AACR,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAACC;AACC,gBAAc,IAAI,MAAM,IAAI;AAC9B;AAEA,CAACC;AACC,eAAa,IAAI,MAAM,IAAI;AAC7B;AAEA,CAACC;AACC,WAAS;AACX;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,WAAS;AACT,WAAS,KAAK,IAAI,qBAAqB,EAAE,GAAG,IAAI;AAChD,oBAAkB,IAAI;AACtB,iBAAe,IAAI,MAAM,IAAI;AAC/B;AAEA,CAACC;AACC,cAAY;AACZ,WAAS;AACT,eAAa;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI,MAAM,IAAI;AAC7B,WAAS,IAAI,qBAAqB,IAAI,qBAAqB,KAAK,IAAI,qBAAqB,EAAE,GAAG,IAAI;AAElG,0BAAwB;AACxB,2BAAyB;AACzB,cAAY,cAAc;AAC5B;AAEA,CA1ICb,4BA0IS,CAAC,kBAAkB,CAb5Ba;AAeC,0BAAwB;AACxB,2BAAyB;AACzB,cAAY,cAAc;AAC5B;AAEA,CAACC;AACC,aAAW;AACX,eAAa;AACb,UAAQ;AACR,WAAS;AACX;AAEA,CAACC;AACC,YAAU;AACV,SAAO;AACP,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,YAAU;AACV,QAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpB,eAAa;AACb,UAAQ;AACV;AAEA,CAACC;AACC,WAAS,IAAI;AACf;;;AC3PA,CAACC;AACC,uBAAqB;AACrB,qBAAmB,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE;AAC9D,WAAS;AACT,OAAK;AACL,wBAAsB,IAAI;AAC5B;AAEA,CAACC;AACC,WAAS;AACT,OAAK;AACP;AAEA,CAACC;AACC,YAAU;AACV,SAAO;AACT;AAEA,CALCA,gCAKY;AACX,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAACC;AACC,YAAU;AACV,WAAS;AACT,OAAK;AACL,aAAW,WAAW;AACtB,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,oBAAkB,IAAI;AACxB;AAEA,CAACC;AACC,QAAM;AACR;AAEA,CAACC;AACC,QAAM;AACR;;;ACvCA,CAACC;AAAS;AAEV,CAACC;AACC,UAAQ,KAAK,IAAI,qBAAqB,EAAE,GAAG;AAC7C;AAEA,CAACC;AACC,YAAU;AACZ;AAEA,CAACC;AACC,YAAU;AACV,oBAAkB;AAClB,qBAAmB;AACrB;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,aAAW;AACX,UAAQ;AACV;AAEA,CAACC;AACC,eAAa,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACnD;AAEA,CAACC;AACD,CAACC;AACC,UAAQ,IAAI,qBAAqB;AACjC,cAAY;AACZ,iBAAe,IAAI;AACrB;AAEA,CAACC,wCAAY,CANZD;AAOC,iBAAe;AACjB;AAEA,CAXCD;AAYC,WAAS;AACT,yBAAuB,OAAO,SAAS,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,EAAE;AAClE,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,SAAO;AACT;AAEA,CAjBCC;AAkBC,WAAS;AACT,SAAO;AACP,OAAK,IAAI,qBAAqB,KAAK,IAAI,qBAAqB,EAAE;AAChE;AAEA,CA7CCL,0CA6Cc,CAxBdI;AAyBC,iBAAe;AACjB;AAEA,CA3BCC,wCA2BY,CAAC,kBAAkB,KAAK,KAAK,CAAC;AACzC,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAACE;AACD,CAACC;AACC,WAAS;AACT,eAAa;AACb,aAAW;AACb;AAEA,CAPCD,+CAOmB,CAhCnBD;AAiCD,CAPCE,0CAOc,CAACC;AACd,QAAM,EAAE,EAAE;AACZ;AAEA,CArECV,iCAqEK;AACJ,cAAY;AACd;AAEA,CAzECA,iCAyEK;AACJ,iBAAe;AACjB;AAIA,CAACW;AACC,uBAAqB;AACvB;AAIA,CArDCJ,wCAqDY,CAACK;AACZ,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,eAAa;AACb,cAAY;AACZ,aAAW;AACb;AAEA,CAnECN,wCAmEY,CAAC,eAAe,CARfM;AASZ,SAAO,IAAI;AACb;AAEA,CAACC;AACC,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,iBAAe,IAAI;AACnB,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAPCA,iCAOK,KAAK,CAACC;AACV,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,aAAW;AACX,SAAO;AACT;AAEA,CAhBCD,iCAgBK,KAAK,CATCC,wCASY,EAAE;AACxB,SAAO;AACP,cAAY;AACd;AAGA,CAtBCD,iCAsBK,KAAK,CAfCC,wCAeY;AACtB,WAAS;AACT,sBAAoB;AACpB,cAAY;AACZ,sBAAoB;AACpB,YAAU;AACV,iBAAe;AACf,eAAa;AACb,cAAY;AACZ,SAAO;AACP,cAAY;AACZ,eAAa;AACf;AAEA,CApCCD,iCAoCK,KAAK,CA7BCC,uCA6BW,CAAC;AACtB,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CAxCCD,iCAwCK,CAAC;AACL,SAAO,IAAI;AACb;AAEA,CA5CCA,iCA4CK,CAAC;AACL,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAjDCA,iCAiDK,CAAC;AACL,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAClB;AAEA,CAtDCA,kCAsDM;AACL,SAAO,IAAI,cAAc,EAAE;AAC3B,UAAQ,IAAI,cAAc,EAAE;AAE5B,QAAM;AACR;AAEA,CAACE;AACC,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AACjC,kBAAgB;AAChB,aAAW;AACX,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACvC;AAEA,CA9DYD;AA+DV,iBAAe,KAAK,IAAI,qBAAqB,EAAE;AAC/C,kBAAgB,KAAK,CAAC,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE;AACrF,YAAU;AACV,eAAa;AACb,YAAU;AACV,iBAAe;AACjB;AAEA,CAvEYA,uCAuEA;AACV,SAAO,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1C,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3C,YAAU;AACV,oBAAkB;AAClB,mBAAiB;AAEjB,QAAM;AACR;AAEA,CAACE;AACC,UAAQ;AACR,cAAY,IAAI,MAAM,IAAI;AAC5B;AAIA,CA/HgBN;AAgId,WAAS;AACT,uBAAqB,eACA;AACrB,yBAAuB,IAAI;AAC3B,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,SAAO,IAAI;AACX,kBAAgB;AAChB,aAAW,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,qBAAqB,EAAE,GAAG,EAAE;AAC9D;AAEA,CAACO;AACC,aAAW;AACX,eAAa;AACb,YAAU;AACV,iBAAe;AACf,aAAW;AACb;AAEA,CAACC;AACC,aAAW;AACb;AAEA,CAtJgBR,kCAsJT,CAAC,eAAe,CAZtBO;AAaD,CAvJgBP,kCAuJT,CAAC,eAAe,CALtBQ;AAMC,SAAO,IAAI;AACb;AAEA,CAACC;AACC,aAAW;AACX,YAAU;AACV,UAAQ;AACR,SAAO;AACP,cAAY;AACZ,iBAAe,KAAK,IAAI,qBAAqB,EAAE;AACjD;AAEA,CATCA,uCASW;AACV,WAAS;AACT,WAAS;AACT,YAAU;AACV,cAAY,IAAI;AAChB,UAAQ;AACR,SAAO;AACP,OAAK;AACL,aAAW,WAAW;AACxB;AAEA,CAACC;AACC,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACtB,OAAK;AACP;AAEA,CAxLgBV,kCAwLT,CAAC,eAAe,CATtBU;AAUC,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CAdCA,uCAcW,CAAC;AACX,cAAY,IAAI;AAClB;AAEA,CAlBCA,uCAkBW,CAAC;AACX,WAAS,IAAI,MAAM,IAAI;AACvB,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CAACC;AACC,SAAO,IAAI;AACb;AAIA,CAACC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACX;AAIA,CARCA,qDAQyB,CA3NzBb;AA4NC,SAAO;AACT;AAEA,CAZCa,qDAYyB,CAxNVZ;AAyNd,aAAW;AACb;AAEA,CAACa;AACC,WAAS;AACT,yBAAuB,OAAO,SAAS,EAAE,OAAO,MAAM,EAAE;AACxD,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,cAAY;AACZ,UAAQ;AACR,WAAS;AACX;AAEA,CAACC;AACC,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,iBAAe,IAAI;AACnB,cAAY;AACZ,UAAQ,IAAI,MAAM;AAClB,cAAY;AACZ,wBAAsB;AACtB,cAAY;AACZ,SAAO,IAAI;AACb;AAEA,CAXCA,kDAWsB,CAAC;AACtB,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CAfCA,kDAesB,CAAC;AACtB,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CApBCA,kDAoBsB,CAAC;AACtB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAClB;AAEA,CAzBCA,kDAyBsB,CAAC;AACtB,SAAO,IAAI;AACX,gBAAc,IAAI;AACpB;AAIA,CAACC,4CAAgB,CA1GhBN,uCA0G4B;AAC3B;AAAA,IAEE;AAAA,MACE,GAAG,KAAK;AAAA,MACR,IAAI,mBAAmB,EAAE;AAAA,MACzB,IAAI,mBAAmB,MACvB,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAAA,IAG5B;AAAA,MACE,GAAG,KAAK;AAAA,MACR,IAAI,iBAAiB,EAAE;AAAA,MACvB,IAAI,iBAAiB,GAAG;AAAA,MACxB,YAAY,GAAG;AAAA,MACf,YAAY,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,iBAAiB,EAAE,MACvD,EAAE,IAAI,EAAE,KAAK,KAAK;AACtB,UAAQ;AACR,aAAW,WAAW;AACtB,YAAU;AACZ;AAIA,CAxBCM,4CAwBgB,CAlIhBN,uCAkI4B;AAC3B,WAAS;AACT;AAAA,IAEE;AAAA,MACE,GAAG,KAAK;AAAA,MACR,IAAI,mBAAmB,EAAE;AAAA,MACzB,IAAI,mBAAmB,GAAG;AAAA,MAC1B,YAAY,GAAG;AAAA,MACf,YAAY,MACZ,EAAE,IAAI,EAAE,KAAK,KAAK,SAAS;AAAA,IAG7B;AAAA,MACE,GAAG,IAAI;AAAA,MACP,IAAI,mBAAmB,EAAE;AAAA,MACzB,IAAI,mBAAmB,GAAG;AAAA,MAC1B,YAAY,GAAG;AAAA,MACf,YAAY,MACZ,KAAK,IAAI,EAAE,KAAK,KAAK;AACzB,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,aAAW,WAAW;AACtB,kBAAgB;AAClB;AAIA,CAACO,oCAAQ,CAAC;AACR,SAAO,IAAI;AACb;AAEA,CAACC;AACC,cAAY,IAAI;AAChB,YAAU;AACV,iBAAe,KAAK,IAAI,qBAAqB,EAAE;AAC/C,kBAAgB,KAAK,IAAI,qBAAqB,EAAE,GAAG,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AACtF,iBAAe,IAAI;AACnB,cAAY;AACZ,UAAQ,IAAI,MAAM,IAAI;AACtB,aAAW;AACb;AAEA,CAXCA,0CAWc,CAAC;AACd,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAfCA,2CAee;AACd,SAAO,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1C,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3C,YAAU;AACV,oBAAkB,KAAK,IAAI,qBAAqB,EAAE;AAClD,qBAAmB,KAAK,IAAI,qBAAqB,EAAE;AACnD,QAAM;AACR;AAEA,CAACC;AACC,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,UAAQ,YAAY,IAAI;AACxB,cAAY;AACZ,SAAO;AACP,cAAY;AAEZ,WAAS;AACX;AAEA,CAACC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACvC;AAEA,CAACC;AACC,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,iBAAe,IAAI;AACnB,WAAS;AACX;AAEA,CANCA,+CAMmB,CAAC;AACnB,SAAO,IAAI;AACb;AAEA,CAVCA,+CAUmB,CAAC;AACnB,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAfCA,+CAemB,CAAC;AACnB,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAnBCA,+CAmBmB,CAAC;AACnB,SAAO,IAAI;AACb;AAIA,CAACC;AACC,WAAS;AACT,eAAa;AACb,OAAK,MAAM,IAAI,EAAE,KAAK,IAAI,qBAAqB,EAAE,EAAE,EAAE;AACrD,SAAO,IAAI;AACX,UAAQ,IAAI,qBAAqB;AACnC;AAEA,CAACC;AACC,SAAO;AACP,UAAQ;AACR,UAAQ,IAAI,MAAM,IAAI;AACtB,cAAY,IAAI;AAChB,iBAAe;AACf,cAAY,IAAI;AAChB,eAAa;AACf;AAEA,CAVCA,2CAUe;AACd,WAAS;AACT,WAAS;AACT,UAAQ;AACR,SAAO;AACP,UAAQ;AACR,cAAY,IAAI;AAChB,iBAAe;AACf,cAAY,IAAI;AAClB;AAEA,CA7BCD,kCA6BM,CAAC,eAAe,CArBtBC,2CAqBsC;AACrC,cAAY,IAAI;AAChB,aAAW,WAAW;AACxB;AAEA,KAAK,KAAK,CAlCTD,kCAkCgB,CAAC,eAAe,CA1BhCC,2CA0BgD;AAC/C,cAAY,IAAI;AAChB,aAAW,WAAW;AACxB;AAEA,CAvCCD,kCAuCM,CAAC,oBAAoB,CA/B3BC;AAgCC,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CA3CCD,kCA2CM,CAAC;AACN,SAAO,IAAI;AACb;AAEA,CA/CCA,kCA+CM,CAAC,eAAe,CAvCtBC,2CAuCsC;AACrC,cAAY,IAAI;AAClB;;;ACxfA,CAACC;AAAS;AAEV,CAACC;AACC,iBAAe,IAAI;AACnB,WAAS;AACT,uBAAqB,cACA;AACrB,yBAAuB,IAAI;AAC3B,eAAa;AACb,SAAO;AACT;AAEA,CAACC;AACC,aAAW;AACX,iBAAe,KAAK,IAAI,qBAAqB,EAAE;AACjD;AAEA,CAACC;AACC,aAAW;AACX,cAAY;AACZ,SAAO;AACP,aAAW;AACX,WAAS;AACT,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,qBAAqB,EAAE;AACnF;AAEA,CAXCA,2BAWW;AACZ,CAZCA,2BAYW;AACV,sBAAoB;AACtB;AAEA,CAhBCA,2BAgBW,CAAC;AACX,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAACC;AACD,CAACC;AACC,aAAW;AACX,uBAAqB,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACtD,UAAQ;AACR,WAAS;AACT,eAAa;AACf;AAEA,CATCD,2BASW;AACV,QAAM,IAAI;AACV,SAAO,IAAI,cAAc,EAAE;AAC3B,UAAQ,IAAI,cAAc,EAAE;AAC9B;AAEA,CAdCC,4BAcY;AACX,QAAM,IAAI;AACV,SAAO,IAAI,cAAc,EAAE;AAC3B,UAAQ,IAAI,cAAc,EAAE;AAC9B;AAEA,CArBCD,0BAqBU,CAAC;AACZ,CArBCC,2BAqBW,CAAC;AACX,WAAS;AACX;AAEA,CAACC;AACC,cAAY,IAAI;AAChB,SAAO,IAAI;AACX,WAAS;AACT,SAAO;AACP,cAAY;AACZ,cAAY;AACd;AAGA,CAACC;AACC,WAAS;AACT,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,wBAAsB,KAAK,CAAC,CAAC,IAAI,mBAAmB,EAAE,GAAG,EAAE,IAAI,sBAAsB,EAAE,CAAC,IAAI,qBAAqB,EAAE;AACnH,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM;AAClB,cAAY;AACd;AAEA,CAnBCD,oBAmBI,KAAK,CAACE,gCAAgB,CAT1BD;AAUC,wBAAsB,KAAK,CAAC,IAAI,mBAAmB,EAAE,IAAI,sBAAsB,EAAE,CAAC,IAAI,qBAAqB,EAAE;AAC/G;AAEA,CAvBCD,qBAuBK,CAbLC,wBAac,KAAK,CAJTC;AAKT,wBAAsB,KAAK,CAAC,CAAC,IAAI,mBAAmB,EAAE,GAAG,EAAE,IAAI;AACjE;AAEA,CAACC;AACC,WAAS;AACT,QAAM,EAAE,EAAE;AACZ;AAEA,CAACC;AACC,aAAW;AACb;AAEA,CAACC;AACC,uBAAqB;AACrB,wBAAsB,KAAK,IAAI,qBAAqB,EAAE;AACtD,SAAO,IAAI;AACX,wBAAsB,YAAY;AACpC;AAEA,CAxBWH;AAyBT,cAAY;AACZ,SAAO,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1C,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3C,qBAAmB,KAAK,IAAI,qBAAqB,EAAE;AACnD,eAAa;AACf;AAEA,CAzCCD,wBAyCQ,CAAC;AACR,UAAQ;AACV;AAGA,CA9CCA,wBA8CQ;AACP,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAnDCA,wBAmDQ,CAAC;AACR,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAvDCA,wBAuDQ,CAAC;AACR,SAAO,IAAI;AACb;AAEA,CA3DCA,wBA2DQ,CAAC;AACR,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CAtDWC,+BAsDK;AACd,QAAM;AACN,UAAQ;AACR,cAAY,OAAO;AACnB,SAAO;AACP,UAAQ;AACR,QAAM;AACR;AAEA,CAxECD,wBAwEQ,CAAC,eAAe,CA/DdC,+BA+D8B;AACvC,UAAQ;AACV;AAEA,CAACI;AACC,aAAW;AACX,cAAY;AACZ,aAAW;AACb;;;AC1JA,CAACC;AACC,SAAO;AACT;AAEA,CAACC;AACC,kBAAgB,KAAK,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC;AACjD,WAAS,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACvC,WAAS;AACX;AAEA,CANCA,yBAMM,CAAC;AACN,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAVCA,yBAUM,CAAC;AACN,SAAO,IAAI;AACb;AAEA,CAACC;AACC,YAAU;AACV,cAAY;AACd;AAEA,CALCA,8BAKW;AACV,WAAS;AACT,WAAS;AACT,YAAU;AACV,cAAY,IAAI;AAClB;AAEA,CAACC,yBAAM,CAAC,eAAe,CAZtBD,8BAYkC;AACjC,cAAY,IAAI;AAClB;AAIA,CANCC,yBAMM,CAAC,2BAA6B,CAlBpCD;AAmBC,UAAQ;AACR,SAAO;AACP,gBAAc,KAAK,QAAQ,EAAE;AAC/B;AAEA,CAZCC,yBAYM,CAAC,2BAA6B,CAxBpCD,8BAwBgD;AAC/C,SAAO;AACP,UAAQ;AACR,QAAM;AACN,aAAW,WAAW;AACxB;AAEA,CAnBCC,yBAmBM,CAAC,2BAA6B,CAACC;AACpC,QAAM;AACN,aAAW,WAAW;AACxB;AAIA,CA1BCD,yBA0BM,CAAC;AACN,aAAW;AACX,SAAO;AACT;AAEA,CA/BCA,yBA+BM,CAAC,6BAA+B,CA3CtCD;AA4CC,SAAO;AACP,UAAQ;AACV;AAEA,CApCCC,yBAoCM,CAAC,6BAA+B,CAhDtCD,8BAgDkD;AACjD,UAAQ;AACR,SAAO;AACP,OAAK;AACL,aAAW,WAAW;AACxB;AAEA,CA3CCC,yBA2CM,CAAC,6BAA+B,CAxBDC;AAyBpC,OAAK;AACL,aAAW,WAAW;AACxB;AAIA,CA/BsCA;AAgCpC,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CA1DCD,yBA0DM,CAAC,eAAe,CAvCeC;AAwCpC,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACxB;AAEA,CA5CsCA,8BA4C1B,CAAC;AACX,cAAY,IAAI;AAClB;AAEA,CAhDsCA,8BAgD1B,CAAC;AACX,WAAS,IAAI,MAAM,IAAI;AACvB,UAAQ,IAAI,MAAM,IAAI;AACxB;;;ACpGA,CAACC;AACC,SAAO;AACT;AAEA,CAACC;AACC,kBAAgB,KAAK,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC;AACjD,WAAS,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACvC,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,WAAS;AACX;AAEA,CAVCA,+BAUM,CAAC;AACN,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAdCA,+BAcM,CAAC;AACN,SAAO,IAAI;AACb;AAEA,CAlBCA,+BAkBM,KAAK,CAACC;AACX,kBAAgB,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAChD;AAEA,CAJaA;AAKX,YAAU;AACV,UAAQ,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACtC,QAAM;AACN,aAAW,WAAW;AACtB,eAAa;AACb,eAAa;AACb,aAAW,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/C,wBAAsB;AACtB,eAAa;AACf;AAIA,CAACC;AACC,aAAW;AACb;AAIA,CAACC;AACC,aAAW;AACX,WAAS;AACT,mBAAiB;AACnB;;;AClDA,CAACC;AACC,kBAAgB,KAAK,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC;AACjD,WAAS,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACvC,WAAS;AACX;AAEA,CANCA,2BAMM,CAAC;AACN,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAVCA,2BAUM,CAAC;AACN,SAAO,IAAI;AACb;;;ACZA,CAACC;AAAS;AAEV,CAACC;AACC,kBAAgB,KAAK,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC;AACjD,WAAS,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACvC,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,WAAS;AACX;AAEA,CAVCA,6BAUM,CAAC;AACN,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAdCA,6BAcM,CAAC;AACN,SAAO,IAAI;AACb;AAEA,CAlBCA,6BAkBM,KAAK,CAACC;AACX,kBAAgB,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAChD;AAEA,CAJaA;AAKX,YAAU;AACV,UAAQ,KAAK,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACtC,QAAM;AACN,aAAW,WAAW;AACtB,eAAa;AACb,eAAa;AACb,aAAW,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/C,wBAAsB;AACtB,eAAa;AACf;AAEA,CAACC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACvC;AAEA,CAACC;AACC,WAAS,KAAK,IAAI,qBAAqB,EAAE;AACzC,iBAAe,IAAI;AACnB,WAAS;AACT,UAAQ;AACV;AAEA,CAPCA,kCAOW,CAAC;AACX,oBAAkB,IAAI;AACtB,eAAa;AACf;AAEA,CAZCA,kCAYW,CAAC,aAAa,KAAK,CAAC;AAC9B,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAjBCA,kCAiBW,CAAC;AACX,WAAS,IAAI,MAAM,IAAI;AACzB;AAIA,CAACC;AACC,WAAS;AACT,kBAAgB;AAClB;AAEA,CAACC;AACC,WAAS;AACT,UAAQ,EAAE,EAAE,IAAI,qBAAqB;AACvC;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,iBAAe,IAAI;AACrB;AAEA,CAACC;AACC,WAAS;AACX;AAEA,CAACC;AACC,SAAO;AACP,cAAY;AACZ,cAAY;AACZ,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,qBAAqB,EAAE;AACjF,SAAO,IAAI;AACX,wBAAsB;AACtB,eAAa;AACb,WAAS;AACX;AAEA,CAbCA,iCAaU,CAAC;AACV,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAACC;AACC,qBAAmB,KAAK,IAAI,qBAAqB,EAAE;AACrD;AAEA,CAACC;AACC,wBAAsB;AACtB,eAAa;AACb,UAAQ,EAAE,EAAE,IAAI,qBAAqB;AACvC;AAEA,CAACC;AACC,cAAY,IAAI;AAClB;AAIA,CAACC;AACC,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACrF,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,cAAY;AACZ,SAAO,IAAI;AACX,UAAQ;AACR,SAAO;AACP,cAAY;AACZ,cAAY;AACd;AAEA,CAZCA,kCAYW,CAAC;AACX,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CAjBCA,kCAiBW,CAAC;AACX,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CArBCA,kCAqBW,CAAC;AACX,SAAO,IAAI;AACb;;;AC7IA,CAACC;AACC,UAAQ;AACR,SAAO;AACP,UAAQ;AACV;AAEA,CAACC;AACC,SAAO;AACP,UAAQ;AACR,UAAQ;AACV;AAEA,CAACC;AACC,SAAO;AACP,UAAQ;AACR,UAAQ;AACV;AAEA,CAACC;AACC,UAAQ;AACR,UAAQ;AACV;AAEA,CAACC;AACC,UAAQ;AACR,UAAQ;AACV;AAIA,CAACC;AACD,CAACC;AACC,cAAY;AACZ,OAAK;AACL,gBAAc;AACd,oBAAkB,IAAI;AACxB;AAEA,CARCD;AASC,WAAS;AACT,mBAAiB;AACjB,eAAa;AACf;AAIA,CAxCCJ,4BAwCa,CAAC;AACb,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,QAAM,EAAE,EAAE;AACV,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,oBAAkB,IAAI;AACxB;AAEQ,CAXO,sBAWiB,CA1B/BK;AA2BO,CAZO,sBAYiB,CA5B/BD;AA6BC,QAAM,EAAE,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AAC3C,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AAC3C;AAEQ,CAjBO,qBAiBe,CAAC,uBAAuB,KAAK,CAAC,wBAAyB,CAhCpFC;AAiCO,CAlBO,qBAkBe,CADC,uBACuB,KAAK,CADC,wBACyB,CAlCpFD;AAmCC,WAAS,IAAI;AACf;AAIA,CAhECJ,4BAgEa,CAAC;AACb,YAAU;AACV,OAAK;AACL,UAAQ;AACR,QAAM;AACN,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,oBAAkB,IAAI;AACxB;AAEQ,CAZO,sBAYiB,CAnD/BK;AAoDO,CAbO,sBAaiB,CArD/BD;AAsDC,YAAU;AACV,QAAM;AACN,SAAO;AACP,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACzC,WAAS;AACT,cAAY,IAAI;AAChB,YAAU;AACV,uBAAqB,SAAS,EAAE;AAChC,uBAAqB;AACrB,8BAA4B;AAC5B,aAAW,WAAW;AACxB;AAEQ,CA3BO,sBA2BiB,CAlE/BC;AAmEC,OAAK;AACP;AAEQ,CA/BO,sBA+BiB,CAvE/BD;AAwEC,UAAQ;AACV;AAEQ,CAnCO,qBAmCe,CA1CC,uBA0CuB,KAAK,CA1CC,wBA0CyB,CA1EpFC;AA2EC,aAAW,WAAW,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACvD,cAAY;AACZ,YAAU;AACZ;AAEQ,CAzCO,qBAyCe,CAhDC,uBAgDuB,KAAK,CAhDC,wBAgDyB,CAjFpFD;AAkFC,aAAW,WAAW,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACvD,cAAY;AACd;AAEA,CAACE;AACC,YAAU;AACV,QAAM;AACN,SAAO;AACP,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACzC,kBAAgB;AAChB,WAAS;AACT,WAAS;AACX;AAEA,CAACC;AACC,YAAU;AACV,QAAM;AACN,SAAO;AACP,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACzC,kBAAgB;AAChB,WAAS;AACT,WAAS;AACT,OAAK;AACP;AAEA,CAACC;AACC,YAAU;AACV,QAAM;AACN,SAAO;AACP,UAAQ,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AACzC,kBAAgB;AAChB,WAAS;AACT,WAAS;AACT,UAAQ;AACV;AAIA,CAACC;AACC,WAAS;AACT,SAAO;AACP,UAAQ;AACR,UAAQ,EAAE;AACZ;AAEA,CAPCA,uCAOwB,CAAC;AACxB,SAAO;AACP,UAAQ;AACR,gBAAc;AAChB;AAGA,WAAWC;AACT;AACE,eAAW,OAAO;AACpB;AACA;AACE,eAAW,OAAO;AACpB;AACF;AAEA,CAvBCD,uCAuBwB,GAAG,KAAK,EAAE,CAhBT,wBAgBkC,CAAC,MAAO;AAClE,WAAS;AACT,YAAU;AACV,OAAK;AACL,QAAM;AACN,cAAY;AACZ,eAAa;AACb,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,UAAQ,IAAI,MAAM;AAClB,oBAAkB;AAClB,aAAW,+BAAQ,GAAG,OAAO;AAC/B;AAIA,CAACE;AACC,QAAM,KAAK,EAAE,EAAE,EAAE;AACjB,aAAW,MAAM;AACjB,UAAQ;AACR,YAAU;AACV,YAAU;AACV,eAAa;AACb,SAAO;AACT;;;ACxMA,CAACC;AACC,cAAY;AACZ,WAAS;AACT,uBAAqB;AACrB,yBAAuB,IAAI,IAAI;AAC/B,WAAS,QAAQ,OAAO;AAC1B;AAEA,CAACC;AACC,aAAW;AACX,gBAAc;AACd,cAAY;AACd;AAEA,CAdCD,iCAcO;AACN,aAAW;AACX,SAAO,IAAI;AACX,eAAa;AACb,aAAW;AACX,gBAAc;AACd,cAAY;AACZ,aAAW;AACX,eAAa;AACb,YAAU;AACV,iBAAe;AACf,cAAY,QAAQ,MAAM;AAC5B;AAEA,CAACE;AACC,aAAW;AACX,gBAAc;AACd,WAAS;AACT,eAAa;AACb,OAAK;AACP;;;AClCA,CAACC;AACC,WAAS;AACT,cAAY;AACZ,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7C,cAAY;AACZ,iBAAe,IAAI;AACnB,aAAW;AACX,UAAQ,IAAI,cAAc,EAAE;AAC9B;AAEA,CAVCA,0BAUK;AACJ,QAAM,IAAI;AACV,aAAW;AACX,UAAQ;AACV;AAEA,CAhBCA,0BAgBK;AACJ,aAAW;AACX,UAAQ;AACV;AAEA,CArBCA,yBAqBI,CAAC;AACJ,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CA1BCA,yBA0BI,CAAC,cAAc;AAClB,QAAM,IAAI;AACZ;AAEA,CA9BCA,yBA8BI,CAAC;AACJ,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CAlCCA,yBAkCI,CAAC;AACJ,SAAO,IAAI;AACb;AAEA,CAtCCA,yBAsCI,CAAC,eAAe;AACnB,QAAM,IAAI;AACZ;;;ACxCA,CAACC;AACC,cAAY;AACZ,WAAS;AACT,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,uBAAqB;AACrB,yBAAuB,OAAO,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,EAAE;AACrD,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,eAAa;AACb,SAAO;AACP,aAAW,IAAI,kCAAkC,EAAE;AACrD;AAEA,CAACC;AACC,cAAY;AACZ,cAAY;AACd;AAEA,CALCA,sCAKQ,KAAK,CAACC;AACb,aAAW;AACX,gBAAc;AAChB;AAEA,CAVCD,sCAUQ,KAAK,CAACE;AACb,aAAW;AACX,gBAAc;AAChB;AAEA,CAfCF,sCAeQ,KAAK,CAACG;AACb,aAAW;AACX,gBAAc;AAChB;AAGA,CArBCH,uCAqBS;AACR,cAAY;AACZ,WAAS,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,qBAAqB,EAAE;AACjF,OAAK,KAAK,IAAI,qBAAqB,EAAE;AACrC,cAAY,KAAK,IAAI,cAAc,EAAE,MAAM,EAAE;AAC7C,aAAW;AACX,iBAAe,IAAI;AACnB,WAAS;AACT,eAAa;AACf;AAEA,CAjBeG;AAkBb,uBAAqB;AACrB,cAAY;AACd;AAEA,CArCCH,uCAqCS,MAAM,CAAC;AACf,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACb;AAEA,CA1CCA,uCA0CS,MAAM,CAAC;AACf,WAAS,IAAI,MAAM,IAAI;AACzB;AAEA,CA9CCA,uCA8CS,MAAM,CAAC;AACf,SAAO,IAAI;AACb;AAEA,CAlDCA,uCAkDS,OAAO,CAACI;AAChB,WAAS;AACT,sBAAoB;AACpB,YAAU;AACV,eAAa;AACb,sBAAoB;AACpB,cAAY;AACd;AAEA,CA3DCJ,uCA2DS,OAAO;AACf,QAAM;AACN,SAAO,IAAI,cAAc,EAAE;AAC3B,UAAQ,IAAI,cAAc,EAAE;AAC5B,QAAM;AACR;;;AC7EA,CAACK;AACC,SAAO,IAAI;AACX,wBAAsB,YAAY;AAClC,cAAY;AACd;","names":["icon","dockerButton","closeButton","backButton","tooltip","alwaysVisible","partiallyVisible","iconCompSm","iconCompLg","iconApplyStroke","hint","popover","menu","menuItem","menuItemLabel","menuItemShortcut","wrapper","form","label","input","button","numberField","fullscreen","modal","modalDialog","popover","compactPopover","draggable","draggableFullHeightDetent","draggableContentHeightDetent","draggableBackdrop","draggableScrim","draggableContainer","draggableScroller","dragIndicator","docked","dockedLeftBorder","dockedRightBorder","dialog","header","draggableHeader","heading","compactHeader","body","dockerWrapper","docker","resizeHandle","resizeHandleGrab","resizeHandleGrabLeft","resizeHandleGrabRight","wrapper","group","advancedGroup","advancedIcon","label","groupLabel","radioWrapper","groupWrapper","numberField","numberFieldWrapper","sliderWrapper","slider","resetButton","input","radio","themeRadio","themesWrapper","separator","sliderLabel","sliderOutput","sliderTrack","sliderThumb","sliderPlaceholder","sliderWithPresetsWrapper","sliderWithPresetsRadioGroup","sliderWithPresetsRadio","sliderWithTicks","dropdown","dropdownButton","dropdownPopover","dropdownListbox","dropdownListboxItem","switch","switchIndicator","wrapper","search","searchLabel","searchInput","searchIcon","clearButton","tree","treeItem","treeItemButton","treeItemText","treeItemTextTitle","treeItemTextPosition","empty","wrapper","button","sliderTrack","slider","sliderThumb","wrapper","button","label","slider","numberfield","button","wrapper","button","label","listbox","listboxItem","durationField","instruction","inputs","fieldGroup","fieldInput","unitLabel","remaining","cancelButton","startButton","wrapper","main","shell","leftDock","rightDock","bottomBar","topBar","barOverlay","headerOverlay","footerOverlay","iframeContainer","loading","srOnly","header","backlinkWrapper","actionsWrapper","link","wrapper","listItem","leftButton","progression","rightButton","label","wrapper"]}
1
+ {"version":3,"sources":["../../../src/app/read/app.css","../../../src/app/reset.css","../../../src/components/assets/styles/thorium-web.button.module.css","../../../src/components/Actions/assets/styles/thorium-web.overflow.module.css","../../../src/components/Actions/JumpToPosition/assets/styles/thorium-web.jumpToPosition.module.css","../../../src/components/Sheets/assets/styles/thorium-web.sheets.module.css","../../../src/components/Docking/assets/styles/thorium-web.docking.module.css","../../../src/components/Settings/assets/styles/thorium-web.reader.settings.module.css","../../../src/components/Actions/Toc/assets/styles/thorium-web.toc.module.css","../../../src/components/Audio/actions/Volume/assets/styles/thorium-web.volume.module.css","../../../src/components/Audio/actions/PlaybackRate/assets/styles/thorium-web.playbackRate.module.css","../../../src/components/Audio/actions/Toc/assets/styles/thorium-web.audioToc.module.css","../../../src/components/Audio/actions/SleepTimer/assets/styles/thorium-web.sleepTimer.module.css","../../../src/components/assets/styles/thorium-web.reader.app.module.css","../../../src/components/assets/styles/thorium-web.reader.header.module.css","../../../src/components/assets/styles/thorium-web.backlink.module.css","../../../src/components/assets/styles/thorium-web.reader.pagination.module.css","../../../src/components/assets/styles/thorium-web.reader.progression.module.css"],"sourcesContent":["html, body {\n min-height: 100%;\n height: 100%;\n margin: 0;\n overflow: hidden;\n touch-action: pan-x pan-y;\n overscroll-behavior-x: none;\n overscroll-behavior-y: none;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n position: relative;\n}","button {\n -webkit-appearance: none;\n appearance: none;\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n outline: none;\n -webkit-tap-highlight-color: transparent;\n}\n\ninput {\n font-size: 1rem;\n border-radius: 0;\n text-align: inherit;\n background: none;\n box-shadow: none;\n padding: 0;\n cursor: text;\n border: none;\n color: inherit;\n font: inherit;\n outline: none;\n}\n\n::selection {\n background-color: var(--th-theme-select);\n color: var(--th-theme-onSelect);\n}",".icon,\n.dockerButton,\n.closeButton,\n.backButton {\n box-sizing: border-box;\n padding: calc(var(--th-icon-size, 24px) * (1/4));\n text-align: center;\n border-radius: var(--th-layout-radius);\n line-height: 0;\n}\n\n.backButton {\n box-sizing: content-box;\n height: var(--th-icon-size, 24px);\n border: 2px solid transparent;\n display: flex;\n align-items: center;\n}\n\n.closeButton,\n.backButton {\n margin-inline-start: auto;\n}\n\n.icon svg,\n.dockerButton svg,\n.closeButton svg,\n.backButton svg {\n fill: currentColor;\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n}\n\n.icon[data-hovered],\n.dockerButton[data-hovered],\n.closeButton[data-hovered],\n.backButton[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.icon[data-focus-visible],\n.dockerButton[data-focus-visible],\n.closeButton[data-focus-visible],\n.backButton[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.backButton[data-disabled] {\n color: var(--th-theme-disable)\n}\n\n.tooltip {\n background-color: var(--th-theme-text);\n color: var(--th-theme-background);\n padding: 5px;\n border-radius: var(--th-layout-radius);\n}\n\n/* Visibility + Immersive */\n\n.alwaysVisible {\n opacity: 1;\n}\n\n:global(.thorium_web_stackedUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .partiallyVisible {\n opacity: 0;\n}\n\n/* Utils to improve icons’ consistency */\n\n.iconCompSm {\n padding: calc(var(--th-icon-size, 24px) * (1/3));\n}\n\n.iconCompSm svg {\n width: calc(var(--th-icon-size, 24px) * (3/4));\n height: calc(var(--th-icon-size, 24px) * (3/4));\n stroke: var(--th-theme-text);\n}\n\n.iconCompLg {\n padding: calc(var(--th-icon-size, 24px) * (1/6));\n}\n\n.iconCompLg svg {\n width: calc(var(--th-icon-size, 24px) * (4/3));\n height: calc(var(--th-icon-size, 24px) * (4/3));\n}\n\n.iconApplyStroke svg {\n stroke: var(--th-theme-text);\n}",":global(.thorium_web_layeredUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .hint {\n transform: translateY(calc(var(--th-icon-size, 24px) * 2.5));\n transition-property: transform;\n transition-duration: 200ms; \n transition-timing-function: ease-in-out;\n}\n\n:global(.thorium_web_layeredUI.thorium_web_isReflow.thorium_web_isScroll.thorium_web_isImmersive:not(.thorium_web_isHovering)) .hint {\n outline: 1px solid var(--th-theme-subdue);\n background-color: var(--th-theme-background);\n}\n\n.popover {\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n box-sizing: border-box;\n max-width: var(--th-layout-constraints-popover, 500px);\n width: max-content;\n}\n\n.menu {\n outline: none;\n}\n\n.menuItem {\n display: flex;\n align-items: center;\n gap: calc(var(--th-layout-spacing) / 2);\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n outline: none;\n}\n\n.menuItem[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.menuItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.menuItem[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.menuItem > svg {\n width: calc(var(--th-icon-size, 24px) / 1.5);\n height: calc(var(--th-icon-size, 24px) / 1.5);\n fill: currentColor;\n}\n\n.menuItemLabel {\n font-size: 1rem;\n}\n\n.menuItemShortcut {\n font-family: monospace;\n font-weight: bold;\n color: var(--th-theme-subdue);\n padding: 5px;\n margin-inline-start: auto;\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n}",".wrapper {}\n\n.form {\n display: flex;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.label {\n margin-block: 0 var(--th-layout-spacing);\n display: block;\n}\n\n.input {\n display: block;\n font-weight: bold;\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n border: 2px solid var(--th-theme-subdue);\n}\n\n.button {\n box-sizing: content-box;\n border: 2px solid var(--th-theme-subdue);\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-icon-size, 24px) * (1/2));\n text-align: center;\n border-radius: var(--th-layout-radius);\n margin-inline-start: auto;\n align-self: flex-end;\n}\n\n.button[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.input[data-focus-visible],\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.numberField[data-disabled],\n.button[data-disabled] {\n color: var(--th-theme-disable);\n} ","/* React Aria modal provides a visual viewport for mobile + keyboard: --visual-viewport-height \n which should explain why it’s being used here while not mentioned anywhere else in the codebase */\n\n.fullscreen {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 10;\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n max-height: var(--visual-viewport-height, 100dvh);\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n align-items: center;\n}\n\n.modal {\n position: fixed;\n inset: 0;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--th-layout-spacing);\n background-color: var(--th-layout-defaults-scrim, rgba(0, 0, 0, 0.2));\n pointer-events: none;\n}\n\n.modalDialog {\n pointer-events: auto;\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: 100%;\n max-width: var(--th-layout-constraints-modal, 600px);\n max-height: 90dvh;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n}\n\n.popover {\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: calc(340px + (2 * var(--th-layout-spacing)));\n max-width: var(--th-layout-constraints-popover, 500px);\n max-height: 100%;\n max-height: var(--visual-viewport-height, 100dvh);\n padding: 0;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n}\n\n.compactPopover {\n overflow-y: auto;\n scroll-padding-top: var(--th-layout-spacing);\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: calc(340px + (2 * var(--th-layout-spacing)));\n max-width: var(--th-layout-constraints-popover, 500px);\n max-height: 100%;\n max-height: var(--visual-viewport-height, 100dvh);\n padding: 0;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n}\n\n/* React Modal Sheet handles scroll + sticky header so no need for scroll-padding here */\n.draggable {\n box-sizing: border-box;\n max-width: var(--th-layout-constraints-bottomSheet, 600px);\n left: max(calc((100% - var(--th-layout-constraints-bottomSheet, 600px)) / 2), 0px) !important;\n background-color: var(--th-theme-background) !important;\n color: var(--th-theme-text) !important;\n border: none;\n /* Animating drop-shadow pretty much kills performance, hence why we use a pseudo-element */\n filter: none !important;\n box-shadow: none !important;\n /* M3 = 28dp, see https://m3.material.io/components/bottom-sheets/overview */\n border-top-left-radius: 28px !important;\n border-top-right-radius: 28px !important;\n transition: border-radius 500ms;\n}\n\n.draggable::after {\n content: \"\";\n z-index: -1;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n /* important for performance */\n transform: translateZ(0);\n box-shadow: var(--th-theme-elevate);\n border-top-left-radius: 28px;\n border-top-right-radius: 28px;\n}\n\n.draggableFullHeightDetent {\n height: calc(100% - env(safe-area-inset-top)) !important;\n}\n\n.draggableContentHeightDetent {\n max-height: calc(100% - env(safe-area-inset-top)) !important;\n}\n\n.draggable[data-full-height] {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n transition: border-radius 500ms;\n}\n\n.draggableBackdrop {\n /* So that React Aria can use it to dismiss the sheet as it’s set to none by React Modal Sheet. */\n pointer-events: auto !important;\n background-color: transparent !important;\n}\n\n.draggableScrim {\n background-color: var(--th-layout-defaults-scrim) !important;\n}\n\n.draggableContainer {\n padding: 0;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n}\n\n.draggableScroller {\n position: relative;\n scroll-padding-bottom: calc(var(--th-layout-spacing) * 4);\n}\n\n.dragIndicator {\n width: calc(var(--th-icon-size, 40px) * 1.5);\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.dragIndicator[data-focus-visible] {\n border-radius: var(--th-layout-radius);\n outline: 2px solid var(--th-theme-focus);\n}\n\n.dragIndicator svg {\n fill: var(--th-theme-subdue);\n width: 100%;\n height: auto;\n}\n\n.docked {\n /* We need relative positioning so that RAC FocusScope scrolls properly on tabbing */\n position: relative;\n overflow-y: auto;\n scroll-padding-top: calc(var(--th-sheet-sticky-header, 80px) + var(--th-layout-spacing));\n scroll-padding-bottom: var(--th-layout-spacing);\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n height: 100vh;\n height: 100dvh;\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n}\n\n.dockedLeftBorder {\n border-right: 1px solid var(--th-theme-subdue);\n}\n\n.dockedRightBorder {\n border-left: 1px solid var(--th-theme-subdue);\n}\n\n.dialog {\n outline: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 10;\n padding: calc(var(--th-layout-spacing) / 2) var(--th-layout-spacing);\n background-color: var(--th-theme-background);\n border-bottom: 1px solid var(--th-theme-subdue);\n}\n\n.draggableHeader {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n background-color: var(--th-theme-background);\n border-bottom: 1px solid var(--th-theme-subdue);\n padding: var(--th-layout-spacing) var(--th-layout-spacing) calc(var(--th-layout-spacing) / 2) var(--th-layout-spacing);\n /* Otherwise covers the modal’s */\n border-top-left-radius: 28px !important;\n border-top-right-radius: 28px !important;\n transition: border-radius 500ms;\n}\n\n.draggable[data-full-height] .draggableHeader {\n /* Otherwise covers the modal’s */\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n transition: border-radius 500ms;\n}\n\n.heading {\n font-size: 1.25rem;\n line-height: 1;\n margin: 0;\n padding: 0;\n}\n\n.compactHeader {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.body {\n padding: var(--th-layout-spacing);\n}",".dockerWrapper {\n margin-inline-start: auto;\n margin-inline-end: calc(var(--th-icon-size, 24px) * (1 / 4) * -1); /* Optical alingment */\n display: flex;\n gap: 2px;\n padding-inline-start: var(--th-layout-spacing);\n}\n\n.docker {\n display: flex;\n gap: 2px;\n}\n\n.resizeHandle {\n position: relative;\n width: 0;\n}\n\n.resizeHandle:focus-visible {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.resizeHandleGrab {\n position: absolute;\n z-index: 1000;\n top: 50%;\n transform: translateY(-50%);\n width: 5px;\n height: 50px;\n border-radius: 5px;\n background-color: var(--th-theme-subdue);\n}\n\n.resizeHandleGrabLeft {\n left: 0;\n}\n\n.resizeHandleGrabRight {\n left: -5px;\n}",".wrapper {}\n\n.group {\n margin: calc(var(--th-layout-spacing) * 2) 0; \n}\n\n.advancedGroup {\n position: relative;\n}\n\n.advancedIcon {\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n}\n\n.label {\n display: block;\n font-weight: bold;\n font-size: 1rem;\n margin: 0;\n}\n\n.groupLabel {\n padding-top: calc(var(--th-icon-size, 24px) * (1/3));\n}\n\n.radioWrapper,\n.groupWrapper {\n margin: var(--th-layout-spacing) 0;\n text-align: center;\n border-radius: var(--th-layout-radius);\n}\n\n.numberField .groupWrapper {\n margin-bottom: 0;\n}\n\n.radioWrapper {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(min(100%, 100px), 1fr));\n gap: calc(var(--th-layout-spacing) / 4);\n width: 100%; \n}\n\n.groupWrapper {\n display: flex;\n width: fit-content;\n gap: var(--th-layout-spacing) calc(var(--th-layout-spacing) / 2);\n}\n\n.advancedGroup .radioWrapper {\n margin-bottom: 0;\n}\n\n.groupWrapper[data-focus-within]:has(input[data-focus-visible]) {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.numberFieldWrapper,\n.sliderWrapper {\n display: flex;\n align-items: flex-start;\n max-width: 100%;\n}\n\n.numberFieldWrapper .numberField,\n.sliderWrapper .slider {\n flex: 1 0 auto;\n}\n\n.group:first-of-type {\n margin-top: 0;\n}\n\n.group:last-of-type {\n margin-bottom: 0;\n}\n\n/* Reset button */\n\n.resetButton {\n margin-inline-start: auto;\n}\n\n/* Number field */\n\n.numberField .input {\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n font-weight: bold;\n align-self: center;\n max-width: 20ch;\n}\n\n.groupWrapper[data-disabled] .input {\n color: var(--th-theme-disable)\n}\n\n.radio {\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n box-sizing: border-box;\n border: 2px solid transparent;\n}\n\n.radio:not(.themeRadio) {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: calc(var(--th-layout-spacing) / 2);\n min-width: 0;\n width: 100%;\n}\n\n.radio:not(.themeRadio) > * {\n width: 100%;\n text-align: center;\n}\n\n/* Text truncation for non-theme radios */\n.radio:not(.themeRadio) span {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2em;\n max-height: 2.4em; /* 2 lines of text */\n width: 100%;\n box-sizing: border-box;\n white-space: normal;\n}\n\n.radio:not(.themeRadio)[data-selected] {\n border: 2px solid var(--th-theme-subdue);\n}\n\n.radio[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.radio[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.radio[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n outline-offset: 2px;\n}\n\n.radio svg {\n width: var(--th-icon-size, 32px);\n height: var(--th-icon-size, 32px);\n /* So that it’s the same color as text based on state */\n fill: currentColor;\n}\n\n.themesWrapper {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-auto-flow: row;\n max-width: 100%;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.themeRadio {\n padding-block: calc(var(--th-layout-spacing) / 4);\n padding-inline: calc((var(--th-icon-size, 24px) * 5/6) + (var(--th-layout-spacing) / 4));\n position: relative;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.themeRadio svg {\n width: calc(var(--th-icon-size, 24px) * 5/6);\n height: calc(var(--th-icon-size, 24px) * 5/6);\n position: absolute;\n inset-inline-end: 5px;\n inset-block-end: 5px;\n /* So that it’s the same color as text w/o having to expose a custom prop globally */\n fill: currentColor;\n}\n\n.separator {\n border: none;\n border-top: 1px solid var(--th-theme-subdue);\n}\n\n/* Slider */\n\n.slider {\n display: grid;\n grid-template-areas: \"label output\"\n \"track track\";\n grid-template-columns: 1fr auto;\n gap: calc(var(--th-layout-spacing) / 2);\n color: var(--th-theme-text);\n flex-direction: column;\n max-width: min(calc(100% - (var(--th-layout-spacing) / 2)), 80%);\n}\n\n.sliderLabel {\n grid-area: label;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.sliderOutput {\n grid-area: output;\n}\n\n.slider[data-disabled] .sliderLabel,\n.slider[data-disabled] .sliderOutput {\n color: var(--th-theme-disable);\n}\n\n.sliderTrack {\n grid-area: track;\n position: relative;\n height: 30px;\n width: auto;\n box-sizing: border-box;\n margin-inline: calc(var(--th-layout-spacing) / 2);\n}\n\n.sliderTrack::before {\n content: \"\";\n display: block;\n position: absolute;\n background: var(--th-theme-subdue);\n height: 3px;\n width: 100%;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.sliderThumb {\n width: 1.25rem;\n height: 1.25rem;\n border-radius: 50%;\n background: var(--th-theme-text);\n border: 2px solid var(--th-theme-subdue);\n top: 50%;\n}\n\n.slider[data-disabled] .sliderThumb {\n background: var(--th-theme-disable);\n border: 2px solid var(--th-theme-disable);\n}\n\n.sliderThumb[data-dragging] {\n background: var(--th-theme-subdue);\n}\n\n.sliderThumb[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n border: 2px solid var(--th-theme-focus);\n}\n\n.sliderPlaceholder {\n color: var(--th-theme-subdue); \n}\n\n/* Slider with presets */\n\n.sliderWithPresetsWrapper {\n display: flex;\n flex-direction: column;\n gap: var(--th-layout-spacing);\n}\n\n\n/* Let the slider fill the full width of the wrapper */\n.sliderWithPresetsWrapper .sliderWrapper {\n width: 100%;\n}\n\n.sliderWithPresetsWrapper .slider {\n max-width: 100%;\n}\n\n.sliderWithPresetsRadioGroup {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));\n gap: calc(var(--th-layout-spacing) / 4);\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sliderWithPresetsRadio {\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n box-sizing: border-box;\n border: 2px solid transparent;\n text-align: center;\n font-variant-numeric: tabular-nums;\n background: transparent;\n color: var(--th-theme-text);\n}\n\n.sliderWithPresetsRadio[data-selected] {\n border: 2px solid var(--th-theme-subdue);\n}\n\n.sliderWithPresetsRadio[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.sliderWithPresetsRadio[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n outline-offset: 2px;\n}\n\n.sliderWithPresetsRadio[data-disabled] {\n color: var(--th-theme-disable);\n border-color: var(--th-theme-disable);\n}\n\n/* Slider with ticks */\n\n.sliderWithTicks .sliderTrack::before {\n background: \n /* Track line */\n linear-gradient(\n to right,\n var(--th-theme-subdue) 0%,\n var(--th-theme-subdue) 100%\n ) 0 50% / 100% 3px no-repeat,\n\n /* Ticks */\n repeating-linear-gradient(\n to right,\n var(--th-theme-text) 0%,\n var(--th-theme-text) 1px,\n transparent 1px,\n transparent calc((100% - 2px) / var(--th-slider-ticks, 10))\n ) 0 50% / 100% 15px no-repeat;\n height: 15px;\n transform: translateY(-50%);\n position: relative;\n}\n\n/* First and last tick */\n\n.sliderWithTicks .sliderTrack::after {\n content: \"\";\n background: \n /* First tick */\n linear-gradient(\n to right,\n var(--th-theme-subdue) 0%,\n var(--th-theme-subdue) 3px,\n transparent 3px,\n transparent 100%\n ) 0 50% / 100% 20px no-repeat,\n\n /* Last tick */\n linear-gradient(\n to left,\n var(--th-theme-subdue) 0%,\n var(--th-theme-subdue) 3px,\n transparent 3px,\n transparent 100%\n ) 100% 50% / 100% 20px no-repeat;\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 20px;\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n/* Dropdown */\n\n.dropdown[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.dropdownButton {\n margin-top: var(--th-layout-spacing);\n position: relative;\n padding-block: calc(var(--th-layout-spacing) / 2);\n padding-inline: calc(var(--th-layout-spacing) / 2) calc(var(--th-icon-size, 24px) * 6/5);\n border-radius: var(--th-layout-radius);\n box-sizing: border-box;\n border: 1px solid var(--th-theme-subdue);\n max-width: 100%;\n}\n\n.dropdownButton[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.dropdownButton svg {\n width: calc(var(--th-icon-size, 24px) * 5/6);\n height: calc(var(--th-icon-size, 24px) * 5/6);\n position: absolute;\n inset-inline-end: calc(var(--th-layout-spacing) / 4);\n inset-block-start: calc(var(--th-layout-spacing) / 2);\n fill: currentColor;\n}\n\n.dropdownPopover {\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n padding: calc(var(--th-layout-spacing) / 2);\n border-radius: var(--th-layout-radius);\n border: 1px solid var(--th-theme-subdue);\n filter: drop-shadow(var(--th-theme-elevate));\n box-sizing: border-box;\n width: max-content;\n overflow-y: auto;\n /* TMP: Needs to be higher than bottom sheet, which requires hack for Safari iOS */\n z-index: 1000000 !important;\n}\n\n.dropdownListbox {\n display: flex;\n flex-direction: column;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.dropdownListboxItem {\n padding: calc(var(--th-layout-spacing) / 4);\n border-radius: var(--th-layout-radius);\n outline: none;\n}\n\n.dropdownListboxItem[data-selected] {\n color: var(--th-theme-subdue);\n}\n\n.dropdownListboxItem[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.dropdownListboxItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.dropdownListboxItem[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n/* Switch */\n\n.switch {\n display: flex;\n align-items: center;\n gap: clamp(10px, calc(var(--th-layout-spacing) / 2), 20px);\n color: var(--th-theme-text);\n margin: var(--th-layout-spacing) 0;\n}\n\n.switchIndicator {\n width: 2rem;\n height: 1.143rem;\n border: 2px solid var(--th-theme-subdue);\n background: var(--th-theme-background);\n border-radius: 1.143rem;\n transition: all 200ms;\n flex-shrink: 0;\n}\n\n.switchIndicator::before {\n content: \"\";\n display: block;\n margin: 0.143rem;\n width: 0.857rem;\n height: 0.857rem;\n background: var(--th-theme-subdue);\n border-radius: 16px;\n transition: all 200ms;\n}\n\n.switch[data-selected] .switchIndicator::before {\n background: var(--th-theme-text);\n transform: translateX(100%);\n}\n\n:dir(rtl) .switch[data-selected] .switchIndicator::before {\n background: var(--th-theme-text);\n transform: translateX(-100%);\n}\n\n.switch[data-focus-visible] .switchIndicator {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.switch[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.switch[data-disabled] .switchIndicator::before {\n background: var(--th-theme-disable) !important;\n}","/* Search */\n.wrapper {}\n\n.search {\n margin-bottom: var(--th-layout-spacing);\n display: grid;\n grid-template-areas: \"label label\"\n \"input button\";\n grid-template-columns: 1fr auto;\n align-items: center;\n width: 100%;\n}\n\n.searchLabel {\n grid-area: label;\n margin-bottom: calc(var(--th-layout-spacing) / 2);\n}\n\n.searchInput {\n grid-area: input;\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n display: block;\n border-radius: var(--th-layout-radius);\n border: 2px solid var(--th-theme-subdue);\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n}\n\n.searchInput::-webkit-search-cancel-button,\n.searchInput::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n.searchInput[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.searchIcon,\n.clearButton {\n grid-area: button;\n margin-inline-start: calc(var(--th-icon-size, 24px) * -1.25);\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.searchIcon svg {\n fill: var(--th-theme-subdue);\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n}\n\n.clearButton svg {\n fill: var(--th-theme-text);\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n}\n\n.searchIcon[hidden],\n.clearButton[data-disabled] {\n display: none;\n}\n\n.tree {\n background: var(--th-theme-background);\n color: var(--th-theme-text);\n outline: none;\n width: 100%;\n max-height: 100%;\n box-sizing: border-box;\n}\n\n/* React Aria is providing a --tree-item-level as items are not nested */\n.treeItem {\n display: flex;\n padding: calc(var(--th-layout-spacing) / 2);\n padding-inline-start: calc(((var(--tree-item-level) - 1) * var(--th-layout-spacing)) + (var(--th-layout-spacing) / 2));\n border-radius: var(--th-layout-radius);\n border: 2px solid transparent;\n box-sizing: border-box;\n}\n\n.tree:has(.treeItemButton) .treeItem {\n padding-inline-start: calc((var(--tree-item-level) * var(--th-layout-spacing)) + (var(--th-layout-spacing) / 2));\n}\n\n.tree .treeItem:has(.treeItemButton) {\n padding-inline-start: calc(((var(--tree-item-level) - 1) * var(--th-layout-spacing)));\n}\n\n.treeItemText {\n display: flex;\n flex: 1 1 auto;\n}\n\n.treeItemTextTitle {\n text-wrap: balance;\n}\n\n.treeItemTextPosition {\n margin-inline-start: auto;\n padding-inline-start: calc(var(--th-layout-spacing) / 2);\n color: var(--th-theme-subdue);\n font-variant-numeric: lining-nums tabular-nums;\n}\n\n.treeItemButton {\n align-self: flex-start;\n width: calc(var(--th-icon-size, 24px) * 5/6);\n height: calc(var(--th-icon-size, 24px) * 5/6);\n margin-inline-end: calc(var(--th-layout-spacing) / 2);\n flex-shrink: 0;\n}\n\n.treeItem[data-href] {\n cursor: pointer;\n}\n\n/* [data-hover] is only updated on tree items that can be expanded ATM… */\n.treeItem:hover {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.treeItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.treeItem[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.treeItem[data-selected] {\n border: 2px solid var(--th-theme-subdue);\n}\n\n.treeItemButton svg {\n flex: none;\n rotate: 0deg;\n transition: rotate 200ms;\n width: 100%;\n height: 100%;\n fill: currentColor;\n}\n\n.treeItem[data-expanded] .treeItemButton svg {\n rotate: 90deg;\n}\n\n.empty {\n max-width: 25ch;\n text-align: start;\n text-wrap: balance;\n}",".wrapper {\n width: auto;\n}\n\n.button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.sliderTrack {\n position: relative;\n box-sizing: border-box;\n}\n\n.sliderTrack::before {\n content: \"\";\n display: block;\n position: absolute;\n background: var(--th-theme-subdue);\n}\n\n.slider[data-disabled] .sliderTrack::before {\n background: var(--th-theme-disable);\n}\n\n/* Vertical */\n\n.slider[data-orientation=\"vertical\"] .sliderTrack {\n height: 150px;\n width: 30px;\n margin-block: calc(1.25rem / 2);\n}\n\n.slider[data-orientation=\"vertical\"] .sliderTrack::before {\n width: 3px;\n height: 100%;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.slider[data-orientation=\"vertical\"] .sliderThumb {\n left: 50%;\n transform: translateX(-50%);\n}\n\n/* Horizontal */\n\n.slider[data-orientation=\"horizontal\"] {\n max-width: 320px;\n width: 100%;\n}\n\n.slider[data-orientation=\"horizontal\"] .sliderTrack {\n width: 100%;\n height: 30px;\n}\n\n.slider[data-orientation=\"horizontal\"] .sliderTrack::before {\n height: 3px;\n width: 100%;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.slider[data-orientation=\"horizontal\"] .sliderThumb {\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* Thumb shared */\n\n.sliderThumb {\n width: 1.25rem;\n height: 1.25rem;\n border-radius: 50%;\n background: var(--th-theme-text);\n border: 2px solid var(--th-theme-subdue);\n}\n\n.slider[data-disabled] .sliderThumb {\n background: var(--th-theme-disable);\n border: 2px solid var(--th-theme-disable);\n}\n\n.sliderThumb[data-dragging] {\n background: var(--th-theme-subdue);\n}\n\n.sliderThumb[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n border: 2px solid var(--th-theme-focus);\n}",".wrapper {\n width: auto;\n}\n\n.button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.button:has(.label) {\n padding-bottom: calc(var(--th-icon-size) * (2/3));\n}\n\n.label {\n position: absolute;\n bottom: calc(var(--th-icon-size) * (1/4));\n left: 50%;\n transform: translateX(-50%);\n white-space: nowrap;\n line-height: 1;\n font-size: calc(var(--th-icon-size, 24px) * (5/12));\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n}\n\n/* Playback rate - slider with presets variant */\n\n.slider {\n min-width: 260px;\n}\n\n/* Playback rate - number field variant */\n\n.numberfield {\n min-width: 140px;\n display: flex;\n justify-content: center;\n}",".button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}",".wrapper {}\n\n.button {\n --th-icon-size: calc(var(--audio-icon-base) * (5/4));\n padding: calc(var(--th-icon-size) * (1/4));\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n outline: none;\n}\n\n.button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.button:has(.label) {\n padding-bottom: calc(var(--th-icon-size) * (2/3));\n}\n\n.label {\n position: absolute;\n bottom: calc(var(--th-icon-size) * (1/4));\n left: 50%;\n transform: translateX(-50%);\n white-space: nowrap;\n line-height: 1;\n font-size: calc(var(--th-icon-size, 24px) * (5/12));\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n}\n\n.listbox {\n display: flex;\n flex-direction: column;\n gap: calc(var(--th-layout-spacing) / 2);\n}\n\n.listboxItem {\n padding: calc(var(--th-layout-spacing) / 4);\n border-radius: var(--th-layout-radius);\n outline: none;\n cursor: default;\n}\n\n.listboxItem[data-selected] {\n background-color: var(--th-theme-hover);\n font-weight: bold;\n}\n\n.listboxItem[data-hovered]:not([data-selected]) {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.listboxItem[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n/* Sleep timer duration field */\n\n.durationField {\n display: flex;\n flex-direction: column;\n}\n\n.instruction {\n display: block;\n margin: 0 0 var(--th-layout-spacing) 0;\n}\n\n.inputs {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: calc(var(--th-layout-spacing) / 4);\n margin-bottom: var(--th-layout-spacing);\n}\n\n.fieldGroup {\n display: contents;\n}\n\n.fieldInput {\n width: 4ch;\n text-align: center;\n background: transparent;\n border: 2px solid var(--th-theme-subdue);\n border-radius: var(--th-layout-radius);\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n color: var(--th-theme-text);\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n outline: none;\n}\n\n.fieldInput[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.unitLabel {\n margin-inline-end: calc(var(--th-layout-spacing) / 4);\n}\n\n.remaining {\n font-variant-numeric: tabular-nums;\n font-weight: bold;\n margin: 0 0 var(--th-layout-spacing) 0;\n}\n\n.cancelButton {\n margin-top: var(--th-layout-spacing);\n}\n\n/* Start button */\n\n.startButton {\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-icon-size, 24px) * (1/2));\n border-radius: var(--th-layout-radius);\n border: 2px solid var(--th-theme-subdue);\n background: transparent;\n color: var(--th-theme-text);\n cursor: default;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n}\n\n.startButton[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover)\n}\n\n.startButton[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.startButton[data-disabled] {\n color: var(--th-theme-disable);\n}","/* For some classNames we need global, as they impact other modules */\n\n.wrapper {\n height: 100%;\n width: 100%;\n margin: 0;\n}\n\n.main {\n width: 100%;\n height: 100%;\n margin: 0;\n}\n\n.shell {\n width: 100%;\n height: 100%;\n margin: 0;\n}\n\n.leftDock {\n height: 100vh;\n height: 100dvh;\n}\n\n.rightDock {\n height: 100vh;\n height: 100dvh;\n}\n\n/* Top and bottom bars */\n\n.bottomBar,\n.topBar {\n box-sizing: border-box;\n gap: 2px;\n touch-action: manipulation;\n background-color: var(--th-theme-background);\n}\n\n.bottomBar {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n/* Stacked UI */\n\n.main :global(.thorium_web_stackedUI) {\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n height: 100vh;\n height: 100dvh;\n max-height: 100%;\n background-color: var(--th-theme-background);\n}\n\n:global(.thorium_web_stackedUI) .topBar,\n:global(.thorium_web_stackedUI) .bottomBar {\n flex: 0 0 calc(var(--th-icon-size, 24px) * 2.5);\n height: calc(var(--th-icon-size, 24px) * 2.5);\n}\n\n:global(.thorium_web_stackedUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .topBar,\n:global(.thorium_web_stackedUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .bottomBar {\n opacity: var(--th-theme-immerse);\n}\n\n/* Layered UI */\n\n.main :global(.thorium_web_layeredUI) {\n position: relative;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100vh;\n height: 100dvh;\n max-height: 100%;\n background-color: var(--th-theme-background);\n}\n\n:global(.thorium_web_layeredUI) .topBar,\n:global(.thorium_web_layeredUI) .bottomBar {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n z-index: 2;\n box-shadow: var(--th-theme-elevate);\n overflow: hidden;\n transition-property: transform, box-shadow;\n transition-duration: 200ms;\n transition-timing-function: ease-in-out;\n transform: translateY(0);\n}\n\n:global(.thorium_web_layeredUI) .topBar {\n top: 0;\n}\n\n:global(.thorium_web_layeredUI) .bottomBar {\n bottom: 0;\n}\n\n:global(.thorium_web_layeredUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .topBar {\n transform: translateY(calc(var(--th-icon-size, 24px) * -2.5));\n box-shadow: none;\n overflow: unset;\n}\n\n:global(.thorium_web_layeredUI.thorium_web_isImmersive:not(.thorium_web_isHovering)) .bottomBar {\n transform: translateY(calc(var(--th-icon-size, 24px) * 2.5));\n box-shadow: none;\n}\n\n.barOverlay {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n pointer-events: auto;\n opacity: 0;\n z-index: 1000;\n}\n\n.headerOverlay {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n pointer-events: auto;\n opacity: 0;\n z-index: 1000;\n top: 0;\n}\n\n.footerOverlay {\n position: absolute;\n left: 0;\n right: 0;\n height: calc(var(--th-icon-size, 24px) * 2.5);\n pointer-events: auto;\n opacity: 0;\n z-index: 1000;\n bottom: 0;\n}\n\n/* iFrame + its container */\n\n.iframeContainer {\n contain: content;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n}\n\n.iframeContainer :global(.readium-navigator-iframe) {\n width: 100%;\n height: 100%;\n border-width: 0;\n}\n\n/* FXL: Loading spinner for resources */\n@keyframes loading {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.iframeContainer :global(div:has(> .readium-navigator-iframe.blank))::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n margin-top: -30px;\n margin-left: -30px;\n width: 50px;\n height: 50px;\n border-radius: 50px;\n border: 5px solid grey;\n border-top-color: black;\n animation: loading 2s linear infinite;\n}\n\n/* Utils */\n\n.srOnly {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}",".header {\n box-sizing: border-box;\n display: grid;\n grid-template-areas: \"header-start header-center header-end\";\n grid-template-columns: 1fr 3fr 1fr;\n padding: 0.25rem 0.5rem 0;\n}\n\n.backlinkWrapper {\n grid-area: header-start;\n justify-self: start;\n align-self: center;\n}\n\n.header h1 {\n font-size: 1rem;\n color: var(--th-theme-text);\n font-weight: normal;\n grid-area: header-center;\n justify-self: center;\n align-self: center;\n max-width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; \n transition: opacity 200ms ease-in-out;\n}\n\n.actionsWrapper {\n grid-area: header-end;\n min-width: 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 2px;\n}",".link {\n display: block;\n box-sizing: content-box;\n padding: calc(var(--th-icon-size, 24px) * (1/4));\n text-align: start;\n border-radius: var(--th-layout-radius);\n max-width: 100%;\n height: var(--th-icon-size, 24px);\n}\n\n.link svg {\n fill: var(--th-theme-text);\n max-width: 100%;\n height: 100%;\n}\n\n.link img {\n max-width: 100%;\n height: 100%;\n}\n\n.link[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.link[data-hovered] svg {\n fill: var(--th-theme-onHover)\n}\n\n.link[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.link[data-disabled] {\n color: var(--th-theme-disable)\n}\n\n.link[data-disabled] svg {\n fill: var(--th-theme-disable)\n}",".wrapper {\n box-sizing: border-box;\n display: grid;\n gap: calc(var(--th-layout-spacing) / 2);\n grid-template-areas: \"pagination-start pagination-center pagination-end\";\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n background-color: var(--th-theme-background);\n color: var(--th-theme-text);\n align-items: center;\n width: 100%;\n max-width: var(--th-layout-constraints-pagination, 100%);\n}\n\n.listItem {\n box-sizing: border-box;\n list-style: none;\n}\n\n.listItem:has(.leftButton) {\n grid-area: pagination-start;\n justify-self: start;\n}\n\n.listItem:has(.progression) {\n grid-area: pagination-center;\n justify-self: center;\n}\n\n.listItem:has(.rightButton) {\n grid-area: pagination-end;\n justify-self: end;\n}\n\n\n.listItem button {\n box-sizing: border-box;\n padding: calc(var(--th-icon-size, 24px) * (1/4)) calc(var(--th-layout-spacing) / 2);\n gap: calc(var(--th-layout-spacing) / 2);\n max-height: calc(var(--th-icon-size, 24px) * 2);\n max-width: 100%;\n border-radius: var(--th-layout-radius);\n display: flex;\n align-items: center;\n}\n\n.rightButton {\n margin-inline-start: auto;\n text-align: end;\n}\n\n.listItem button[data-hovered] {\n background-color: var(--th-theme-hover);\n color: var(--th-theme-onHover);\n}\n\n.listItem button[data-focus-visible] {\n outline: 2px solid var(--th-theme-focus);\n}\n\n.listItem button[data-disabled] {\n color: var(--th-theme-disable);\n}\n\n.listItem button .label {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n white-space: normal;\n -webkit-line-clamp: 1;\n line-clamp: 1;\n}\n\n.listItem button svg {\n flex: none;\n width: var(--th-icon-size, 24px);\n height: var(--th-icon-size, 24px);\n fill: currentColor;\n}",".wrapper {\n color: var(--th-theme-text);\n font-variant-numeric: lining-nums tabular-nums;\n text-align: center;\n}"],"mappings":"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","names":["icon","dockerButton","closeButton","backButton","tooltip","alwaysVisible","partiallyVisible","iconCompSm","iconCompLg","iconApplyStroke","hint","popover","menu","menuItem","menuItemLabel","menuItemShortcut","wrapper","form","label","input","button","numberField","fullscreen","modal","modalDialog","popover","compactPopover","draggable","draggableFullHeightDetent","draggableContentHeightDetent","draggableBackdrop","draggableScrim","draggableContainer","draggableScroller","dragIndicator","docked","dockedLeftBorder","dockedRightBorder","dialog","header","draggableHeader","heading","compactHeader","body","dockerWrapper","docker","resizeHandle","resizeHandleGrab","resizeHandleGrabLeft","resizeHandleGrabRight","wrapper","group","advancedGroup","advancedIcon","label","groupLabel","radioWrapper","groupWrapper","numberField","numberFieldWrapper","sliderWrapper","slider","resetButton","input","radio","themeRadio","themesWrapper","separator","sliderLabel","sliderOutput","sliderTrack","sliderThumb","sliderPlaceholder","sliderWithPresetsWrapper","sliderWithPresetsRadioGroup","sliderWithPresetsRadio","sliderWithTicks","dropdown","dropdownButton","dropdownPopover","dropdownListbox","dropdownListboxItem","switch","switchIndicator","wrapper","search","searchLabel","searchInput","searchIcon","clearButton","tree","treeItem","treeItemButton","treeItemText","treeItemTextTitle","treeItemTextPosition","empty","wrapper","button","sliderTrack","slider","sliderThumb","wrapper","button","label","slider","numberfield","button","wrapper","button","label","listbox","listboxItem","durationField","instruction","inputs","fieldGroup","fieldInput","unitLabel","remaining","cancelButton","startButton","wrapper","main","shell","leftDock","rightDock","bottomBar","topBar","barOverlay","headerOverlay","footerOverlay","iframeContainer","loading","srOnly","header","backlinkWrapper","actionsWrapper","link","wrapper","listItem","leftButton","progression","rightButton","label","wrapper"]}