@edrlab/thorium-web 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/{ThPreferencesAdapter-DrZ5_6Dv.d.mts → ThPreferencesAdapter-D0rzsGRl.d.mts} +50 -13
  2. package/dist/{ThSettingsWrapper-8Kx0SnH4.d.mts → ThSettingsWrapper-BXuRgdqp.d.mts} +42 -4
  3. package/dist/{actions-D2CHvCHu.d.mts → actions-BLAr0oaM.d.mts} +16 -4
  4. package/dist/{actionsReducer-kc-S130w.d.mts → actionsReducer-BhG1wicI.d.mts} +37 -12
  5. package/dist/chunk-3GDQP6AS.mjs +14 -0
  6. package/dist/chunk-3GDQP6AS.mjs.map +1 -0
  7. package/dist/{chunk-72XCX5TD.mjs → chunk-3LDWKC5N.mjs} +13 -8
  8. package/dist/chunk-3LDWKC5N.mjs.map +1 -0
  9. package/dist/{chunk-NYZBHYW2.mjs → chunk-4ODYHZKD.mjs} +343 -38
  10. package/dist/chunk-4ODYHZKD.mjs.map +1 -0
  11. package/dist/{chunk-QPE574OW.mjs → chunk-4TVEDX7L.mjs} +23 -32
  12. package/dist/chunk-4TVEDX7L.mjs.map +1 -0
  13. package/dist/chunk-7CGMWOZN.mjs +20 -0
  14. package/dist/chunk-7CGMWOZN.mjs.map +1 -0
  15. package/dist/{chunk-7NEQAW7J.mjs → chunk-C236BQQB.mjs} +656 -917
  16. package/dist/chunk-C236BQQB.mjs.map +1 -0
  17. package/dist/{chunk-PXAUQJEU.mjs → chunk-D7MFLHXV.mjs} +2267 -1599
  18. package/dist/chunk-D7MFLHXV.mjs.map +1 -0
  19. package/dist/{chunk-47AIIJFO.mjs → chunk-ITDBOMY5.mjs} +3 -3
  20. package/dist/{chunk-47AIIJFO.mjs.map → chunk-ITDBOMY5.mjs.map} +1 -1
  21. package/dist/{chunk-XVSFXHYB.mjs → chunk-L4XGZAZ5.mjs} +23 -20
  22. package/dist/chunk-L4XGZAZ5.mjs.map +1 -0
  23. package/dist/chunk-OWHP7ONM.mjs +134 -0
  24. package/dist/chunk-OWHP7ONM.mjs.map +1 -0
  25. package/dist/{chunk-P4V3LA5R.mjs → chunk-RRVLWDT3.mjs} +10 -7
  26. package/dist/chunk-RRVLWDT3.mjs.map +1 -0
  27. package/dist/chunk-T2E6MRVP.mjs +862 -0
  28. package/dist/chunk-T2E6MRVP.mjs.map +1 -0
  29. package/dist/chunk-TEZB4ULX.mjs +57 -0
  30. package/dist/chunk-TEZB4ULX.mjs.map +1 -0
  31. package/dist/chunk-UCTMVCW7.mjs +833 -0
  32. package/dist/chunk-UCTMVCW7.mjs.map +1 -0
  33. package/dist/chunk-WECWPYZB.mjs +1950 -0
  34. package/dist/chunk-WECWPYZB.mjs.map +1 -0
  35. package/dist/{chunk-4VHEHMJN.mjs → chunk-XBZWGRDM.mjs} +228 -94
  36. package/dist/chunk-XBZWGRDM.mjs.map +1 -0
  37. package/dist/{chunk-K3K7TUWM.mjs → chunk-YZ3KCMKY.mjs} +237 -83
  38. package/dist/chunk-YZ3KCMKY.mjs.map +1 -0
  39. package/dist/components/Audio/index.css +1858 -0
  40. package/dist/components/Audio/index.css.map +1 -0
  41. package/dist/components/Audio/index.d.mts +103 -0
  42. package/dist/components/Audio/index.mjs +23 -0
  43. package/dist/components/Audio/index.mjs.map +1 -0
  44. package/dist/components/Epub/index.css +365 -9
  45. package/dist/components/Epub/index.css.map +1 -1
  46. package/dist/components/Epub/index.d.mts +17 -19
  47. package/dist/components/Epub/index.mjs +15 -10
  48. package/dist/components/Misc/index.css +5 -2
  49. package/dist/components/Misc/index.css.map +1 -1
  50. package/dist/components/Misc/index.mjs +4 -132
  51. package/dist/components/Misc/index.mjs.map +1 -1
  52. package/dist/components/Reader/index.css +1022 -183
  53. package/dist/components/Reader/index.css.map +1 -1
  54. package/dist/components/Reader/index.d.mts +16 -16
  55. package/dist/components/Reader/index.mjs +121 -22
  56. package/dist/components/Reader/index.mjs.map +1 -1
  57. package/dist/components/WebPub/index.css +365 -9
  58. package/dist/components/WebPub/index.css.map +1 -1
  59. package/dist/components/WebPub/index.d.mts +16 -16
  60. package/dist/components/WebPub/index.mjs +15 -10
  61. package/dist/core/Components/index.d.mts +64 -15
  62. package/dist/core/Components/index.mjs +2 -1
  63. package/dist/core/Helpers/index.d.mts +2 -2
  64. package/dist/core/Helpers/index.mjs +4 -2
  65. package/dist/core/Hooks/index.d.mts +7 -8
  66. package/dist/core/Hooks/index.mjs +3 -1
  67. package/dist/i18n/index.mjs +4 -5
  68. package/dist/lib/index.d.mts +159 -15
  69. package/dist/lib/index.mjs +4 -2
  70. package/dist/lib-M3PPQDJJ.mjs +6548 -0
  71. package/dist/lib-M3PPQDJJ.mjs.map +1 -0
  72. package/dist/locales/en/thorium-web.json +22 -0
  73. package/dist/next-lib/index.mjs +2 -0
  74. package/dist/next-lib/index.mjs.map +1 -1
  75. package/dist/preferences/index.d.mts +111 -13
  76. package/dist/preferences/index.mjs +6 -3
  77. package/dist/{settingsReducer-C1wwCAMv.d.mts → settingsReducer-Bu1zeveu.d.mts} +1 -1
  78. package/dist/{ui-CamWuqOo.d.mts → ui-nBv8gfr0.d.mts} +20 -1
  79. package/dist/useAudioNavigator-C5aW4-eT.d.mts +133 -0
  80. package/dist/{useContrast-D6sjPjxy.d.mts → useContrast-2t429O9O.d.mts} +16 -8
  81. package/dist/usePreferences-VaBf46eP.d.mts +230 -0
  82. package/dist/useReaderTransitions-JDzlBFsu.d.mts +530 -0
  83. package/dist/{useTimeline-DyMx_aWY.d.mts → useTimeline-DCZ1qoCO.d.mts} +4 -2
  84. package/package.json +15 -11
  85. package/dist/chunk-4VHEHMJN.mjs.map +0 -1
  86. package/dist/chunk-72XCX5TD.mjs.map +0 -1
  87. package/dist/chunk-7NEQAW7J.mjs.map +0 -1
  88. package/dist/chunk-K3K7TUWM.mjs.map +0 -1
  89. package/dist/chunk-NYZBHYW2.mjs.map +0 -1
  90. package/dist/chunk-P4V3LA5R.mjs.map +0 -1
  91. package/dist/chunk-PXAUQJEU.mjs.map +0 -1
  92. package/dist/chunk-QPE574OW.mjs.map +0 -1
  93. package/dist/chunk-XVSFXHYB.mjs.map +0 -1
  94. package/dist/useEpubNavigator-CwHJfoiV.d.mts +0 -42
  95. package/dist/usePreferences-BXFJbval.d.mts +0 -43
  96. package/dist/useReaderTransitions-guT-eA-Q.d.mts +0 -365
  97. package/dist/useWebPubNavigator-CuSNQKMw.d.mts +0 -39
@@ -1,3 +1,4 @@
1
+ import { toEntryRef } from './chunk-TEZB4ULX.mjs';
1
2
  import { defaultPlatformModifier } from './chunk-5LUMM7FW.mjs';
2
3
  import { useRef } from 'react';
3
4
  import { useDispatch, useSelector, useStore, Provider } from 'react-redux';
@@ -272,8 +273,10 @@ var initialState3 = {
272
273
  colorScheme: "light" /* light */,
273
274
  theme: {
274
275
  reflow: "auto",
275
- fxl: "auto"
276
+ fxl: "auto",
277
+ audio: "auto"
276
278
  },
279
+ coverTheme: void 0,
277
280
  prefersReducedMotion: false,
278
281
  prefersReducedTransparency: false,
279
282
  prefersContrast: "no-preference" /* none */,
@@ -293,6 +296,9 @@ var themeSlice = createSlice({
293
296
  setTheme: (state, action) => {
294
297
  state.theme[action.payload.key] = action.payload.value || "auto";
295
298
  },
299
+ setCoverTheme: (state, action) => {
300
+ state.coverTheme = action.payload;
301
+ },
296
302
  setReducedMotion: (state, action) => {
297
303
  state.prefersReducedMotion = action.payload;
298
304
  },
@@ -314,6 +320,7 @@ var {
314
320
  setMonochrome,
315
321
  setColorScheme,
316
322
  setTheme,
323
+ setCoverTheme,
317
324
  setReducedMotion,
318
325
  setReducedTransparency,
319
326
  setContrast,
@@ -322,65 +329,73 @@ var {
322
329
  } = themeSlice.actions;
323
330
  var themeReducer_default = themeSlice.reducer;
324
331
  var initialState4 = {
325
- dock: {
326
- ["dockingStart" /* start */]: {
327
- actionKey: null,
328
- active: false,
329
- collapsed: false
330
- },
331
- ["dockingEnd" /* end */]: {
332
- actionKey: null,
333
- active: false,
334
- collapsed: false
335
- }
336
- },
332
+ dock: {},
337
333
  keys: {},
338
334
  overflow: {}
339
335
  };
336
+ var initializeProfileDock = (state, profile) => {
337
+ if (!state.dock[profile]) {
338
+ state.dock[profile] = {
339
+ ["dockingStart" /* start */]: {
340
+ actionKey: null,
341
+ active: false,
342
+ collapsed: false
343
+ },
344
+ ["dockingEnd" /* end */]: {
345
+ actionKey: null,
346
+ active: false,
347
+ collapsed: false
348
+ }
349
+ };
350
+ }
351
+ };
340
352
  var actionsSlice = createSlice({
341
353
  name: "actions",
342
354
  initialState: initialState4,
343
355
  reducers: {
344
356
  dockAction: (state, action) => {
345
- switch (action.payload.dockingKey) {
357
+ const { key, dockingKey, profile } = action.payload;
358
+ initializeProfileDock(state, profile);
359
+ const profileDock = state.dock[profile];
360
+ switch (dockingKey) {
346
361
  case "dockingStart" /* start */:
347
- for (const key in state.keys) {
348
- if (state.keys[key]?.docking === action.payload.dockingKey) {
349
- state.keys[key] = {
350
- ...state.keys[key],
362
+ for (const k in state.keys) {
363
+ if (state.keys[k]?.docking === dockingKey) {
364
+ state.keys[k] = {
365
+ ...state.keys[k],
351
366
  docking: "dockingTransient" /* transient */,
352
367
  isOpen: false
353
368
  };
354
369
  }
355
370
  }
356
- state.dock["dockingStart" /* start */] = {
357
- ...state.dock["dockingStart" /* start */],
358
- actionKey: action.payload.key
371
+ profileDock["dockingStart" /* start */] = {
372
+ ...profileDock["dockingStart" /* start */],
373
+ actionKey: key
359
374
  };
360
- if (state.dock["dockingEnd" /* end */].actionKey === action.payload.key) {
361
- state.dock["dockingEnd" /* end */] = {
362
- ...state.dock["dockingEnd" /* end */],
375
+ if (profileDock["dockingEnd" /* end */].actionKey === key) {
376
+ profileDock["dockingEnd" /* end */] = {
377
+ ...profileDock["dockingEnd" /* end */],
363
378
  actionKey: null
364
379
  };
365
380
  }
366
381
  break;
367
382
  case "dockingEnd" /* end */:
368
- for (const key in state.keys) {
369
- if (state.keys[key]?.docking === action.payload.dockingKey) {
370
- state.keys[key] = {
371
- ...state.keys[key],
383
+ for (const k in state.keys) {
384
+ if (state.keys[k]?.docking === dockingKey) {
385
+ state.keys[k] = {
386
+ ...state.keys[k],
372
387
  docking: "dockingTransient" /* transient */,
373
388
  isOpen: false
374
389
  };
375
390
  }
376
391
  }
377
- state.dock["dockingEnd" /* end */] = {
378
- ...state.dock["dockingEnd" /* end */],
379
- actionKey: action.payload.key
392
+ profileDock["dockingEnd" /* end */] = {
393
+ ...profileDock["dockingEnd" /* end */],
394
+ actionKey: key
380
395
  };
381
- if (state.dock["dockingStart" /* start */].actionKey === action.payload.key) {
382
- state.dock["dockingStart" /* start */] = {
383
- ...state.dock["dockingStart" /* start */],
396
+ if (profileDock["dockingStart" /* start */].actionKey === key) {
397
+ profileDock["dockingStart" /* start */] = {
398
+ ...profileDock["dockingStart" /* start */],
384
399
  actionKey: null
385
400
  };
386
401
  }
@@ -388,38 +403,30 @@ var actionsSlice = createSlice({
388
403
  // We don’t need to sync another action
389
404
  case "dockingTransient" /* transient */:
390
405
  default:
391
- if (state.dock["dockingStart" /* start */].actionKey === action.payload.key) {
392
- state.dock["dockingStart" /* start */] = {
393
- ...state.dock["dockingStart" /* start */],
406
+ if (profileDock["dockingStart" /* start */].actionKey === key) {
407
+ profileDock["dockingStart" /* start */] = {
408
+ ...profileDock["dockingStart" /* start */],
394
409
  actionKey: null
395
410
  };
396
411
  }
397
- if (state.dock["dockingEnd" /* end */].actionKey === action.payload.key) {
398
- state.dock["dockingEnd" /* end */] = {
399
- ...state.dock["dockingEnd" /* end */],
412
+ if (profileDock["dockingEnd" /* end */].actionKey === key) {
413
+ profileDock["dockingEnd" /* end */] = {
414
+ ...profileDock["dockingEnd" /* end */],
400
415
  actionKey: null
401
416
  };
402
417
  }
403
418
  break;
404
419
  }
405
- state.keys[action.payload.key] = {
406
- ...state.keys[action.payload.key],
407
- docking: action.payload.dockingKey
420
+ state.keys[key] = {
421
+ ...state.keys[key],
422
+ docking: dockingKey
408
423
  };
409
424
  },
410
425
  setActionOpen: (state, action) => {
411
- const dockingKey = state.keys[action.payload.key]?.docking;
412
- if (!action.payload.isOpen && dockingKey && dockingKey !== "dockingTransient" /* transient */ && state.dock[dockingKey].actionKey === action.payload.key && state.dock[dockingKey].active && state.dock[dockingKey].collapsed) {
413
- state.dock[dockingKey] = {
414
- ...state.dock[dockingKey],
415
- collapsed: false
416
- };
417
- } else {
418
- state.keys[action.payload.key] = {
419
- ...state.keys[action.payload.key],
420
- isOpen: action.payload.isOpen
421
- };
422
- }
426
+ state.keys[action.payload.key] = {
427
+ ...state.keys[action.payload.key],
428
+ isOpen: action.payload.isOpen
429
+ };
423
430
  },
424
431
  toggleActionOpen: (state, action) => {
425
432
  const payload = {
@@ -438,43 +445,51 @@ var actionsSlice = createSlice({
438
445
  };
439
446
  },
440
447
  activateDockPanel: (state, action) => {
441
- state.dock[action.payload] = {
442
- ...state.dock[action.payload],
448
+ const { slot, profile } = action.payload;
449
+ initializeProfileDock(state, profile);
450
+ state.dock[profile][slot] = {
451
+ ...state.dock[profile][slot],
443
452
  active: true
444
453
  };
445
454
  },
446
455
  deactivateDockPanel: (state, action) => {
447
- state.dock[action.payload] = {
448
- ...state.dock[action.payload],
456
+ const { slot, profile } = action.payload;
457
+ initializeProfileDock(state, profile);
458
+ state.dock[profile][slot] = {
459
+ ...state.dock[profile][slot],
449
460
  active: false
450
461
  };
451
462
  },
452
463
  collapseDockPanel: (state, action) => {
453
- state.dock[action.payload] = {
454
- ...state.dock[action.payload],
464
+ const { slot, profile } = action.payload;
465
+ initializeProfileDock(state, profile);
466
+ state.dock[profile][slot] = {
467
+ ...state.dock[profile][slot],
455
468
  collapsed: true
456
469
  };
457
470
  },
458
471
  expandDockPanel: (state, action) => {
459
- state.dock[action.payload] = {
460
- ...state.dock[action.payload],
472
+ const { slot, profile } = action.payload;
473
+ initializeProfileDock(state, profile);
474
+ state.dock[profile][slot] = {
475
+ ...state.dock[profile][slot],
461
476
  collapsed: false
462
477
  };
463
478
  },
464
479
  setDockPanelWidth: (state, action) => {
465
- const key = state.dock[action.payload.key].actionKey;
466
- if (key) {
467
- state.keys[key] = {
468
- ...state.keys[key],
469
- dockedWidth: action.payload.width
470
- };
471
- }
472
- if (state.dock[action.payload.key] !== null) {
473
- state.dock[action.payload.key] = {
474
- ...state.dock[action.payload.key],
475
- width: action.payload.width
480
+ const { key, width, profile } = action.payload;
481
+ initializeProfileDock(state, profile);
482
+ const dockKey = state.dock[profile][key].actionKey;
483
+ if (dockKey) {
484
+ state.keys[dockKey] = {
485
+ ...state.keys[dockKey],
486
+ dockedWidth: width
476
487
  };
477
488
  }
489
+ state.dock[profile][key] = {
490
+ ...state.dock[profile][key],
491
+ width
492
+ };
478
493
  }
479
494
  }
480
495
  });
@@ -498,7 +513,8 @@ var initialState5 = {
498
513
  positionsList: [],
499
514
  atPublicationStart: false,
500
515
  atPublicationEnd: false,
501
- unstableTimeline: void 0
516
+ unstableTimeline: void 0,
517
+ adjacentTimelineItems: { previous: null, next: null }
502
518
  };
503
519
  var publicationSlice = createSlice({
504
520
  name: "publication",
@@ -542,15 +558,19 @@ var publicationSlice = createSlice({
542
558
  state.unstableTimeline.toc = { tree: action.payload, currentEntry: void 0 };
543
559
  }
544
560
  },
561
+ setAdjacentTimelineItems: (state, action) => {
562
+ state.adjacentTimelineItems = action.payload;
563
+ },
545
564
  setTocEntry: (state, action) => {
565
+ const entry = action.payload ? toEntryRef(action.payload) : null;
546
566
  if (!state.unstableTimeline) {
547
567
  state.unstableTimeline = {
548
- toc: { tree: void 0, currentEntry: action.payload }
568
+ toc: { tree: void 0, currentEntry: entry }
549
569
  };
550
570
  } else if (state.unstableTimeline.toc) {
551
- state.unstableTimeline.toc.currentEntry = action.payload;
571
+ state.unstableTimeline.toc.currentEntry = entry;
552
572
  } else {
553
- state.unstableTimeline.toc = { tree: void 0, currentEntry: action.payload };
573
+ state.unstableTimeline.toc = { tree: void 0, currentEntry: entry };
554
574
  }
555
575
  }
556
576
  }
@@ -565,7 +585,8 @@ var {
565
585
  setPublicationEnd,
566
586
  setTimeline,
567
587
  setTocTree,
568
- setTocEntry
588
+ setTocEntry,
589
+ setAdjacentTimelineItems
569
590
  } = publicationSlice.actions;
570
591
  var publicationReducer_default = publicationSlice.reducer;
571
592
 
@@ -948,6 +969,116 @@ var {
948
969
  setWebPubZoom
949
970
  } = webPubSettingsSlice.actions;
950
971
  var webPubSettingsReducer_default = webPubSettingsSlice.reducer;
972
+ var initialState8 = {
973
+ volume: 1,
974
+ playbackRate: 1,
975
+ preservePitch: true,
976
+ skipBackwardInterval: 10,
977
+ skipForwardInterval: 10,
978
+ skipInterval: 10,
979
+ pollInterval: 1e3,
980
+ autoPlay: true,
981
+ enableMediaSession: true
982
+ };
983
+ var audioSettingsSlice = createSlice({
984
+ name: "audioSettings",
985
+ initialState: initialState8,
986
+ reducers: {
987
+ setVolume: (state, action) => {
988
+ state.volume = action.payload;
989
+ },
990
+ setPlaybackRate: (state, action) => {
991
+ state.playbackRate = action.payload;
992
+ },
993
+ setPreservePitch: (state, action) => {
994
+ state.preservePitch = action.payload;
995
+ },
996
+ setSkipBackwardInterval: (state, action) => {
997
+ state.skipBackwardInterval = action.payload;
998
+ },
999
+ setSkipForwardInterval: (state, action) => {
1000
+ state.skipForwardInterval = action.payload;
1001
+ },
1002
+ setSkipInterval: (state, action) => {
1003
+ state.skipInterval = action.payload;
1004
+ },
1005
+ setPollInterval: (state, action) => {
1006
+ state.pollInterval = action.payload;
1007
+ },
1008
+ setAutoPlay: (state, action) => {
1009
+ state.autoPlay = action.payload;
1010
+ },
1011
+ setEnableMediaSession: (state, action) => {
1012
+ state.enableMediaSession = action.payload;
1013
+ }
1014
+ }
1015
+ });
1016
+ var {
1017
+ setVolume,
1018
+ setPlaybackRate,
1019
+ setPreservePitch,
1020
+ setSkipBackwardInterval,
1021
+ setSkipForwardInterval,
1022
+ setSkipInterval,
1023
+ setPollInterval,
1024
+ setAutoPlay,
1025
+ setEnableMediaSession
1026
+ } = audioSettingsSlice.actions;
1027
+ var audioSettingsReducer_default = audioSettingsSlice.reducer;
1028
+ var initialState9 = {
1029
+ status: "idle",
1030
+ isSeeking: false,
1031
+ isStalled: false,
1032
+ isTrackReady: false,
1033
+ sleepTimer: { remainingSeconds: null, onTrackEnd: false, onFragmentEnd: false },
1034
+ remotePlaybackState: null,
1035
+ seekableRanges: []
1036
+ };
1037
+ var playerSlice = createSlice({
1038
+ name: "player",
1039
+ initialState: initialState9,
1040
+ reducers: {
1041
+ setStatus: (state, action) => {
1042
+ state.status = action.payload;
1043
+ },
1044
+ setSeeking: (state, action) => {
1045
+ state.isSeeking = action.payload;
1046
+ },
1047
+ setStalled: (state, action) => {
1048
+ state.isStalled = action.payload;
1049
+ },
1050
+ setTrackReady: (state, action) => {
1051
+ state.isTrackReady = action.payload;
1052
+ },
1053
+ setSleepTimerRemainingSeconds: (state, action) => {
1054
+ state.sleepTimer.remainingSeconds = action.payload;
1055
+ },
1056
+ setSleepTimerOnTrackEnd: (state, action) => {
1057
+ state.sleepTimer.onTrackEnd = action.payload;
1058
+ },
1059
+ setSleepTimerOnFragmentEnd: (state, action) => {
1060
+ state.sleepTimer.onFragmentEnd = action.payload;
1061
+ },
1062
+ setRemotePlaybackState: (state, action) => {
1063
+ state.remotePlaybackState = action.payload;
1064
+ },
1065
+ setSeekableRanges: (state, action) => {
1066
+ state.seekableRanges = action.payload;
1067
+ }
1068
+ }
1069
+ });
1070
+ var {
1071
+ setStatus,
1072
+ setSeeking,
1073
+ setStalled,
1074
+ setTrackReady,
1075
+ setSleepTimerRemainingSeconds,
1076
+ setSleepTimerOnTrackEnd,
1077
+ setSleepTimerOnFragmentEnd,
1078
+ setRemotePlaybackState,
1079
+ setSeekableRanges
1080
+ } = playerSlice.actions;
1081
+ var playerReducer_default = playerSlice.reducer;
951
1082
 
952
1083
  // node_modules/.pnpm/debounce@3.0.0/node_modules/debounce/index.js
953
1084
  function debounce(function_, wait = 100, options = {}) {
@@ -1058,6 +1189,23 @@ var updateActionsState = (state) => {
1058
1189
  overflow: {}
1059
1190
  };
1060
1191
  };
1192
+ var migrateDockStateToProfileKeyed = (state) => {
1193
+ if (state.dock && typeof state.dock === "object" && !("epub" in state.dock || "webPub" in state.dock || "audio" in state.dock)) {
1194
+ const oldDock = state.dock;
1195
+ if (oldDock["dockingStart" /* start */] || oldDock["dockingEnd" /* end */]) {
1196
+ const newDock = {};
1197
+ newDock["epub"] = {
1198
+ ["dockingStart" /* start */]: oldDock["dockingStart" /* start */] || { actionKey: null, active: false, collapsed: false },
1199
+ ["dockingEnd" /* end */]: oldDock["dockingEnd" /* end */] || { actionKey: null, active: false, collapsed: false }
1200
+ };
1201
+ return {
1202
+ ...state,
1203
+ dock: newDock
1204
+ };
1205
+ }
1206
+ }
1207
+ return state;
1208
+ };
1061
1209
  var loadState = (storageKey = DEFAULT_STORAGE_KEY) => {
1062
1210
  try {
1063
1211
  const resolvedKey = storageKey || DEFAULT_STORAGE_KEY;
@@ -1068,7 +1216,8 @@ var loadState = (storageKey = DEFAULT_STORAGE_KEY) => {
1068
1216
  settings: void 0,
1069
1217
  theming: void 0,
1070
1218
  preferences: void 0,
1071
- webPubSettings: void 0
1219
+ webPubSettings: void 0,
1220
+ audioSettings: void 0
1072
1221
  };
1073
1222
  }
1074
1223
  let state = JSON.parse(serializedState);
@@ -1081,6 +1230,7 @@ var loadState = (storageKey = DEFAULT_STORAGE_KEY) => {
1081
1230
  }
1082
1231
  if (state.actions) {
1083
1232
  state.actions = updateActionsState(state.actions);
1233
+ state.actions = migrateDockStateToProfileKeyed(state.actions);
1084
1234
  }
1085
1235
  }
1086
1236
  return state;
@@ -1103,6 +1253,7 @@ var saveState = (state, storageKey, externalReducers = {}) => {
1103
1253
  if (state.theming) stateToPersist.theming = state.theming;
1104
1254
  if (state.preferences) stateToPersist.preferences = state.preferences;
1105
1255
  if (state.webPubSettings) stateToPersist.webPubSettings = state.webPubSettings;
1256
+ if (state.audioSettings) stateToPersist.audioSettings = state.audioSettings;
1106
1257
  Object.entries(externalReducers).forEach(([key, config]) => {
1107
1258
  if (config.persist && state[key] !== void 0) {
1108
1259
  stateToPersist[key] = state[key];
@@ -1123,6 +1274,8 @@ var makeStore = (storageKey, externalReducers = {}) => {
1123
1274
  publication: publicationReducer_default,
1124
1275
  preferences: preferencesReducer_default,
1125
1276
  webPubSettings: webPubSettingsReducer_default,
1277
+ audioSettings: audioSettingsReducer_default,
1278
+ player: playerReducer_default,
1126
1279
  ...Object.entries(externalReducers).reduce((acc, [key, config]) => ({
1127
1280
  ...acc,
1128
1281
  [key]: config.reducer
@@ -1135,6 +1288,7 @@ var makeStore = (storageKey, externalReducers = {}) => {
1135
1288
  theming: persistedState.theming,
1136
1289
  preferences: persistedState.preferences,
1137
1290
  webPubSettings: persistedState.webPubSettings,
1291
+ audioSettings: persistedState.audioSettings,
1138
1292
  // Include persisted state for external reducers that have it
1139
1293
  ...Object.entries(externalReducers).reduce((acc, [key, config]) => {
1140
1294
  if (config.persist && persistedState[key] !== void 0) {
@@ -1208,6 +1362,6 @@ var useAppDispatch = useDispatch;
1208
1362
  var useAppSelector = useSelector;
1209
1363
  var useAppStore = useStore;
1210
1364
 
1211
- export { ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, collapseDockPanel, deactivateDockPanel, debounce, dockAction, expandDockPanel, handleSpacingSetting, initialSettingsState, initialWebPubSettingsState, makeStore, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setBreakpoint, setColorScheme, setColumnCount, setContrast, setDirection, setDockPanelWidth, setFXL, setFontFamily, setFontLanguage, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHasArrows, setHasDisplayTransformability, setHovering, setHyphens, setImmersive, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPositionsList, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRunningHeadFormat, setScroll, setScrollAffordance, setScrollAffordances, setSettingsContainer, setSpacingPreset, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setUI, setUserNavigated, setWebPubFontFamily, setWebPubFontWeight, setWebPubHyphens, setWebPubLetterSpacing, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice };
1212
- //# sourceMappingURL=chunk-K3K7TUWM.mjs.map
1213
- //# sourceMappingURL=chunk-K3K7TUWM.mjs.map
1365
+ export { ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, audioSettingsSlice, collapseDockPanel, deactivateDockPanel, debounce, dockAction, expandDockPanel, 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, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setPaginatedAffordance, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPlaybackRate, setPollInterval, setPositionsList, setPreservePitch, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReaderProfile, setReducedMotion, setReducedTransparency, setRemotePlaybackState, setRunningHeadFormat, 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, setWebPubLineHeight, setWebPubParagraphIndent, setWebPubParagraphSpacing, setWebPubPublisherStyles, setWebPubSpacingPreset, setWebPubTextAlign, setWebPubTextNormalization, setWebPubWordSpacing, setWebPubZoom, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore, webPubSettingsSlice };
1366
+ //# sourceMappingURL=chunk-YZ3KCMKY.mjs.map
1367
+ //# sourceMappingURL=chunk-YZ3KCMKY.mjs.map