@edrlab/thorium-web 1.2.0 → 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 (100) 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-34MVY33F.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-H4J2VY7Z.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-S4M7ED5Q.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 +372 -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 +1030 -184
  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 +372 -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-shared.json +84 -0
  73. package/dist/locales/en/thorium-web.json +22 -0
  74. package/dist/locales/et/thorium-shared.json +93 -2
  75. package/dist/locales/fi/thorium-shared.json +68 -0
  76. package/dist/next-lib/index.mjs +2 -0
  77. package/dist/next-lib/index.mjs.map +1 -1
  78. package/dist/preferences/index.d.mts +111 -13
  79. package/dist/preferences/index.mjs +6 -3
  80. package/dist/{settingsReducer-C1wwCAMv.d.mts → settingsReducer-Bu1zeveu.d.mts} +1 -1
  81. package/dist/{ui-CamWuqOo.d.mts → ui-nBv8gfr0.d.mts} +20 -1
  82. package/dist/useAudioNavigator-C5aW4-eT.d.mts +133 -0
  83. package/dist/{useContrast-D6sjPjxy.d.mts → useContrast-2t429O9O.d.mts} +16 -8
  84. package/dist/usePreferences-VaBf46eP.d.mts +230 -0
  85. package/dist/useReaderTransitions-JDzlBFsu.d.mts +530 -0
  86. package/dist/{useTimeline-DyMx_aWY.d.mts → useTimeline-DCZ1qoCO.d.mts} +4 -2
  87. package/package.json +15 -11
  88. package/dist/chunk-34MVY33F.mjs.map +0 -1
  89. package/dist/chunk-4VHEHMJN.mjs.map +0 -1
  90. package/dist/chunk-72XCX5TD.mjs.map +0 -1
  91. package/dist/chunk-7NEQAW7J.mjs.map +0 -1
  92. package/dist/chunk-H4J2VY7Z.mjs.map +0 -1
  93. package/dist/chunk-K3K7TUWM.mjs.map +0 -1
  94. package/dist/chunk-NYZBHYW2.mjs.map +0 -1
  95. package/dist/chunk-S4M7ED5Q.mjs.map +0 -1
  96. package/dist/chunk-XVSFXHYB.mjs.map +0 -1
  97. package/dist/useEpubNavigator-CwHJfoiV.d.mts +0 -42
  98. package/dist/usePreferences-BXFJbval.d.mts +0 -43
  99. package/dist/useReaderTransitions-guT-eA-Q.d.mts +0 -365
  100. package/dist/useWebPubNavigator-Che8r5Wg.d.mts +0 -39
@@ -37,6 +37,10 @@
37
37
  "compact": "Next",
38
38
  "descriptive": "Next page"
39
39
  },
40
+ "goToNextResource": {
41
+ "compact": "Next",
42
+ "descriptive": "Next resource"
43
+ },
40
44
  "goToNextSentence": {
41
45
  "compact": "Next",
42
46
  "descriptive": "Next sentence"
@@ -53,11 +57,91 @@
53
57
  "compact": "Previous",
54
58
  "descriptive": "Previous page"
55
59
  },
60
+ "goToPreviousResource": {
61
+ "compact": "Previous",
62
+ "descriptive": "Previous resource"
63
+ },
56
64
  "goToPreviousSentence": {
57
65
  "compact": "Previous",
58
66
  "descriptive": "Previous sentence"
59
67
  }
60
68
  },
69
+ "annotations": {
70
+ "actions": {
71
+ "editNote": {
72
+ "compact": "Edit note"
73
+ }
74
+ },
75
+ "bookmarks": {
76
+ "actions": {
77
+ "add": {
78
+ "compact": "Add bookmark"
79
+ },
80
+ "delete": {
81
+ "compact": "Delete bookmark",
82
+ "confirmation": "Are you sure you want to delete this bookmark?"
83
+ }
84
+ },
85
+ "emptyState": {
86
+ "description": "No bookmarks added yet.",
87
+ "title": "No bookmarks"
88
+ },
89
+ "title": "Bookmarks"
90
+ },
91
+ "note": {
92
+ "title": "Note"
93
+ },
94
+ "sort": {
95
+ "lastAdded": {
96
+ "compact": "Last added"
97
+ },
98
+ "lastEdited": {
99
+ "compact": "Last edited"
100
+ },
101
+ "progression": {
102
+ "compact": "Progression"
103
+ }
104
+ }
105
+ },
106
+ "playback": {
107
+ "actions": {
108
+ "pause": "Pause",
109
+ "play": "Play",
110
+ "skipBackward": {
111
+ "compact": "Rewind",
112
+ "descriptive": "Skip backward"
113
+ },
114
+ "skipForward": {
115
+ "compact": "Forward",
116
+ "descriptive": "Skip forward"
117
+ }
118
+ },
119
+ "preferences": {
120
+ "audio": {
121
+ "skipBackwardInterval": "Skip backward interval",
122
+ "skipForwardInterval": "Skip forward interval",
123
+ "skipInterval": "Skip interval",
124
+ "title": "Audio Settings",
125
+ "volume": "Volume"
126
+ },
127
+ "autoPlay": {
128
+ "label": "Continuous play",
129
+ "title": "Autoplay"
130
+ },
131
+ "playbackRate": {
132
+ "compact": "Speed",
133
+ "descriptive": "Playback rate"
134
+ },
135
+ "sleepTimer": {
136
+ "compact": "Timer",
137
+ "descriptive": "Sleep timer",
138
+ "presets": {
139
+ "endOfChapter": "End of chapter",
140
+ "endOfResource": "End of resource"
141
+ }
142
+ }
143
+ }
144
+ },
61
145
  "preferences": {
62
146
  "brightness": "Brightness",
63
147
  "columns": {
@@ -104,5 +104,27 @@
104
104
  }
105
105
  }
106
106
  }
107
+ },
108
+ "audio": {
109
+ "player": {
110
+ "progress": "Playback progress",
111
+ "controls": "Playback controls",
112
+ "mediaControls": "Audio settings",
113
+ "coverAlt": "Audiobook cover"
114
+ },
115
+ "remotePlayback": {
116
+ "trigger": "Remote Playback",
117
+ "connected": "Remote connected"
118
+ },
119
+ "settings": {
120
+ "sleepTimer": {
121
+ "hours": "h",
122
+ "minutes": "min",
123
+ "seconds": "s",
124
+ "start": "Start",
125
+ "instruction": "Playback will pause after the set duration.",
126
+ "remaining": "Pausing in {{ remaining }}"
127
+ }
128
+ }
107
129
  }
108
130
  }
@@ -58,6 +58,62 @@
58
58
  "descriptive": "Eelmine lause"
59
59
  }
60
60
  },
61
+ "annotations": {
62
+ "actions": {
63
+ "editNote": {
64
+ "compact": "Muuda märget"
65
+ }
66
+ },
67
+ "bookmarks": {
68
+ "actions": {
69
+ "add": {
70
+ "compact": "Lisa järjehoidja"
71
+ },
72
+ "delete": {
73
+ "compact": "Kustuta järjehoidja",
74
+ "confirmation": "Kas oled kindel, et soovid selle järjehoidja kustutada?"
75
+ }
76
+ },
77
+ "emptyState": {
78
+ "description": "Ühtegi järjehoidjat pole veel lisatud.",
79
+ "title": "Järjehoidjaid pole"
80
+ },
81
+ "title": "Järjehoidjad"
82
+ },
83
+ "note": {
84
+ "title": "Märge"
85
+ },
86
+ "sort": {
87
+ "lastAdded": {
88
+ "compact": "Viimati lisatud"
89
+ },
90
+ "lastEdited": {
91
+ "compact": "Viimati muudetud"
92
+ },
93
+ "progression": {
94
+ "compact": "Edenemine"
95
+ }
96
+ }
97
+ },
98
+ "playback": {
99
+ "actions": {
100
+ "pause": "Peata",
101
+ "play": "Esita",
102
+ "skipBackward": {
103
+ "compact": "Keri tagasi",
104
+ "descriptive": "Keri tagasi"
105
+ },
106
+ "skipForward": {
107
+ "compact": "Edasi",
108
+ "descriptive": "Keri edasi"
109
+ }
110
+ },
111
+ "preferences": {
112
+ "audio": {
113
+ "skipBackwardInterval": "Tagasikerimise samm"
114
+ }
115
+ }
116
+ },
61
117
  "preferences": {
62
118
  "brightness": "Eredus",
63
119
  "columns": {
@@ -87,7 +143,30 @@
87
143
  "fontFamily": {
88
144
  "humanist": {
89
145
  "compact": "Humanist"
90
- }
146
+ },
147
+ "modern": {
148
+ "compact": "Moodne"
149
+ },
150
+ "monospace": "Fikseeritud laiusega kirjatüüp",
151
+ "sans": "Seriifideta"
152
+ },
153
+ "fontWeight": {
154
+ "bold": "Paksem",
155
+ "normal": "Tavaline"
156
+ },
157
+ "hyphens": {
158
+ "title": "Poolitamine"
159
+ },
160
+ "layout": {
161
+ "paginated": "Jagatud lehtedeks",
162
+ "scrolled": "Keritav",
163
+ "title": "Paigutus"
164
+ },
165
+ "lineHeight": {
166
+ "default": "Vaikimisi",
167
+ "large": "Hõre",
168
+ "medium": "Tasakaalustatud",
169
+ "small": "Tihe"
91
170
  },
92
171
  "readingDirection": {
93
172
  "ltr": {
@@ -109,7 +188,19 @@
109
188
  "loose": "Hõre",
110
189
  "tight": "Tihe",
111
190
  "title": "Eelseadistused"
112
- }
191
+ },
192
+ "title": "Sõrendus"
193
+ },
194
+ "text": "Tekst",
195
+ "textAlign": {
196
+ "default": "Vaikimisi",
197
+ "justify": "Rööpne",
198
+ "left": "Vasakul",
199
+ "right": "Paremal"
200
+ },
201
+ "themes": {
202
+ "auto": "Automaatne",
203
+ "title": "Kujundused"
113
204
  }
114
205
  },
115
206
  "progression": {
@@ -58,6 +58,74 @@
58
58
  "descriptive": "Edellinen lause"
59
59
  }
60
60
  },
61
+ "annotations": {
62
+ "actions": {
63
+ "editNote": {
64
+ "compact": "Muokkaa muistiinpanoa"
65
+ }
66
+ },
67
+ "bookmarks": {
68
+ "actions": {
69
+ "add": {
70
+ "compact": "Lisää kirjanmerkki"
71
+ },
72
+ "delete": {
73
+ "compact": "Poista kirjanmerkki",
74
+ "confirmation": "Haluatko varmasti poistaa tämän kirjanmerkin?"
75
+ }
76
+ },
77
+ "emptyState": {
78
+ "description": "Yhtään kirjanmerkkiä ei ole vielä lisätty.",
79
+ "title": "Ei kirjanmerkkejä"
80
+ },
81
+ "title": "Kirjanmerkit"
82
+ },
83
+ "note": {
84
+ "title": "Muistiinpano"
85
+ },
86
+ "sort": {
87
+ "lastAdded": {
88
+ "compact": "Viimeksi lisätty"
89
+ },
90
+ "lastEdited": {
91
+ "compact": "Vimeksi muokattu"
92
+ },
93
+ "progression": {
94
+ "compact": "Edistyminen"
95
+ }
96
+ }
97
+ },
98
+ "playback": {
99
+ "actions": {
100
+ "pause": "Pysäytä",
101
+ "play": "Toista",
102
+ "skipBackward": {
103
+ "compact": "Pikakelaa",
104
+ "descriptive": "Ohita taaksepäin"
105
+ },
106
+ "skipForward": {
107
+ "compact": "Eteenpäin",
108
+ "descriptive": "Ohita eteenpäin"
109
+ }
110
+ },
111
+ "preferences": {
112
+ "audio": {
113
+ "skipBackwardInterval": "Taaksepäin ohittamisen väli",
114
+ "skipForwardInterval": "Eteenpäin ohittamisen väli",
115
+ "skipInterval": "Ohita väli",
116
+ "title": "Ääniasetukset",
117
+ "volume": "Äänenvoimakkuus"
118
+ },
119
+ "autoPlay": {
120
+ "label": "Jatkuva toisto",
121
+ "title": "Automaattinen toisto"
122
+ },
123
+ "playbackRate": {
124
+ "compact": "Nopeus",
125
+ "descriptive": "Toistonopeus"
126
+ }
127
+ }
128
+ },
61
129
  "preferences": {
62
130
  "brightness": "Kirkkaus",
63
131
  "columns": {
@@ -1,3 +1,5 @@
1
+ import '../chunk-3GDQP6AS.mjs';
2
+
1
3
  // src/next-lib/helpers/verifyManifest.ts
2
4
  var verifyManifestUrl = (options) => {
3
5
  const { manifestUrl, allowedDomains = [], allowAllDomains = process.env.NODE_ENV !== "production" } = options;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/next-lib/helpers/verifyManifest.ts"],"names":[],"mappings":";AAyCO,IAAM,iBAAA,GAAoB,CAC/B,OAAA,KACyB;AACzB,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,GAAiB,EAAC,EAAG,kBAAkB,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAa,GAAI,OAAA;AAEtG,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,GAAA,EAAK,EAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,EACF;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,WAAW,CAAA;AAG/B,IAAA,MAAM,SAAA,GAAY,eAAA,IAChB,cAAA,CAAe,MAAA,KAAW,CAAA,IAC1B,cAAA,CAAe,QAAA,CAAS,GAAG,CAAA,IAC3B,cAAA,CAAe,IAAA,CAAK,CAAA,MAAA,KAAU;AAC5B,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,GAAY,MAAA,CAAO,UAAA,CAAW,MAAM,CAAA,GACtC,IAAI,GAAA,CAAI,MAAM,CAAA,GACd,IAAI,GAAA,CAAI,CAAA,QAAA,EAAY,MAAO,CAAA,CAAE,CAAA;AACjC,QAAA,OAAO,GAAA,CAAI,aAAa,SAAA,CAAU,QAAA;AAAA,MACpC,CAAA,CAAA,MAAQ;AACN,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF,CAAC,CAAA;AAEH,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,KAAA;AAAA,QACT,GAAA,EAAK,WAAA;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,IACF;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,GAAA,EAAK;AAAA,KACP;AAAA,EAEF,SAAS,KAAA,EAAO;AACd,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,GAAA,EAAK,WAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,EACF;AACF;AAQO,IAAM,wBAAA,GAA2B,CAAC,WAAA,KAA8C;AACrF,EAAA,MAAM,iBAAA,GAAoB,OAAA,CAAQ,GAAA,CAAI,wBAAA,EAA0B,MAAK,IAAK,EAAA;AAC1E,EAAA,MAAM,cAAA,GAAiB,iBAAA,CACpB,KAAA,CAAM,GAAG,CAAA,CACT,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,IAAA,EAAM,CAAA,CACjB,MAAA,CAAO,OAAO,CAAA;AAEjB,EAAA,OAAO,iBAAA,CAAkB;AAAA,IACvB,WAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAiB,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,IAAgB,eAAe,MAAA,KAAW;AAAA,GACrF,CAAA;AACH","file":"index.mjs","sourcesContent":["interface VerifyManifestOptions {\n /**\n * The URL of the manifest to verify\n */\n manifestUrl: string;\n \n /**\n * List of allowed domains (without protocol)\n * If empty or contains \"*\", all domains are allowed\n */\n allowedDomains?: string[];\n \n /**\n * Whether to allow all domains (overrides allowedDomains if true)\n * @default process.env.NODE_ENV !== \"production\"\n */\n allowAllDomains?: boolean;\n}\n\ninterface VerifyManifestResult {\n /**\n * Whether the manifest URL is allowed\n */\n allowed: boolean;\n \n /**\n * The normalized manifest URL\n */\n url: string;\n \n /**\n * Error message if verification failed\n */\n error?: string;\n}\n\n/**\n * Verifies if a manifest URL is allowed based on domain restrictions\n * @param options Verification options\n * @returns Verification result\n */\nexport const verifyManifestUrl = (\n options: VerifyManifestOptions\n): VerifyManifestResult => {\n const { manifestUrl, allowedDomains = [], allowAllDomains = process.env.NODE_ENV !== \"production\" } = options;\n \n if (!manifestUrl) {\n return {\n allowed: false,\n url: \"\",\n error: \"URL is required\"\n };\n }\n\n try {\n const url = new URL(manifestUrl);\n \n // In development or if no domains are specified, allow all\n const isAllowed = allowAllDomains || \n allowedDomains.length === 0 ||\n allowedDomains.includes(\"*\") ||\n allowedDomains.some(domain => {\n try {\n const domainUrl = domain.startsWith(\"http\") \n ? new URL(domain) \n : new URL(`https://${ domain }`);\n return url.hostname === domainUrl.hostname;\n } catch {\n return false;\n }\n });\n \n if (!isAllowed) {\n return {\n allowed: false,\n url: manifestUrl,\n error: \"Domain not allowed\"\n };\n }\n \n return {\n allowed: true,\n url: manifestUrl\n };\n \n } catch (error) {\n return {\n allowed: false,\n url: manifestUrl,\n error: \"Invalid URL\"\n };\n }\n}\n\n/**\n * Verifies a manifest URL from environment configuration\n * Uses MANIFEST_ALLOWED_DOMAINS environment variable for domain restrictions\n * @param manifestUrl The manifest URL to verify\n * @returns Verification result\n */\nexport const verifyManifestUrlFromEnv = (manifestUrl: string): VerifyManifestResult => {\n const allowedDomainsRaw = process.env.MANIFEST_ALLOWED_DOMAINS?.trim() || \"\";\n const allowedDomains = allowedDomainsRaw\n .split(\",\")\n .map(d => d.trim())\n .filter(Boolean);\n \n return verifyManifestUrl({\n manifestUrl,\n allowedDomains,\n allowAllDomains: process.env.NODE_ENV !== \"production\" || allowedDomains.length === 0\n });\n}\n"]}
1
+ {"version":3,"sources":["../../src/next-lib/helpers/verifyManifest.ts"],"names":[],"mappings":";;;AAyCO,IAAM,iBAAA,GAAoB,CAC/B,OAAA,KACyB;AACzB,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,GAAiB,EAAC,EAAG,kBAAkB,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAa,GAAI,OAAA;AAEtG,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,GAAA,EAAK,EAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,EACF;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,WAAW,CAAA;AAG/B,IAAA,MAAM,SAAA,GAAY,eAAA,IAChB,cAAA,CAAe,MAAA,KAAW,CAAA,IAC1B,cAAA,CAAe,QAAA,CAAS,GAAG,CAAA,IAC3B,cAAA,CAAe,IAAA,CAAK,CAAA,MAAA,KAAU;AAC5B,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,GAAY,MAAA,CAAO,UAAA,CAAW,MAAM,CAAA,GACtC,IAAI,GAAA,CAAI,MAAM,CAAA,GACd,IAAI,GAAA,CAAI,CAAA,QAAA,EAAY,MAAO,CAAA,CAAE,CAAA;AACjC,QAAA,OAAO,GAAA,CAAI,aAAa,SAAA,CAAU,QAAA;AAAA,MACpC,CAAA,CAAA,MAAQ;AACN,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF,CAAC,CAAA;AAEH,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,KAAA;AAAA,QACT,GAAA,EAAK,WAAA;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,IACF;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,GAAA,EAAK;AAAA,KACP;AAAA,EAEF,SAAS,KAAA,EAAO;AACd,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,GAAA,EAAK,WAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACT;AAAA,EACF;AACF;AAQO,IAAM,wBAAA,GAA2B,CAAC,WAAA,KAA8C;AACrF,EAAA,MAAM,iBAAA,GAAoB,OAAA,CAAQ,GAAA,CAAI,wBAAA,EAA0B,MAAK,IAAK,EAAA;AAC1E,EAAA,MAAM,cAAA,GAAiB,iBAAA,CACpB,KAAA,CAAM,GAAG,CAAA,CACT,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,IAAA,EAAM,CAAA,CACjB,MAAA,CAAO,OAAO,CAAA;AAEjB,EAAA,OAAO,iBAAA,CAAkB;AAAA,IACvB,WAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAiB,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,IAAgB,eAAe,MAAA,KAAW;AAAA,GACrF,CAAA;AACH","file":"index.mjs","sourcesContent":["interface VerifyManifestOptions {\n /**\n * The URL of the manifest to verify\n */\n manifestUrl: string;\n \n /**\n * List of allowed domains (without protocol)\n * If empty or contains \"*\", all domains are allowed\n */\n allowedDomains?: string[];\n \n /**\n * Whether to allow all domains (overrides allowedDomains if true)\n * @default process.env.NODE_ENV !== \"production\"\n */\n allowAllDomains?: boolean;\n}\n\ninterface VerifyManifestResult {\n /**\n * Whether the manifest URL is allowed\n */\n allowed: boolean;\n \n /**\n * The normalized manifest URL\n */\n url: string;\n \n /**\n * Error message if verification failed\n */\n error?: string;\n}\n\n/**\n * Verifies if a manifest URL is allowed based on domain restrictions\n * @param options Verification options\n * @returns Verification result\n */\nexport const verifyManifestUrl = (\n options: VerifyManifestOptions\n): VerifyManifestResult => {\n const { manifestUrl, allowedDomains = [], allowAllDomains = process.env.NODE_ENV !== \"production\" } = options;\n \n if (!manifestUrl) {\n return {\n allowed: false,\n url: \"\",\n error: \"URL is required\"\n };\n }\n\n try {\n const url = new URL(manifestUrl);\n \n // In development or if no domains are specified, allow all\n const isAllowed = allowAllDomains || \n allowedDomains.length === 0 ||\n allowedDomains.includes(\"*\") ||\n allowedDomains.some(domain => {\n try {\n const domainUrl = domain.startsWith(\"http\") \n ? new URL(domain) \n : new URL(`https://${ domain }`);\n return url.hostname === domainUrl.hostname;\n } catch {\n return false;\n }\n });\n \n if (!isAllowed) {\n return {\n allowed: false,\n url: manifestUrl,\n error: \"Domain not allowed\"\n };\n }\n \n return {\n allowed: true,\n url: manifestUrl\n };\n \n } catch (error) {\n return {\n allowed: false,\n url: manifestUrl,\n error: \"Invalid URL\"\n };\n }\n}\n\n/**\n * Verifies a manifest URL from environment configuration\n * Uses MANIFEST_ALLOWED_DOMAINS environment variable for domain restrictions\n * @param manifestUrl The manifest URL to verify\n * @returns Verification result\n */\nexport const verifyManifestUrlFromEnv = (manifestUrl: string): VerifyManifestResult => {\n const allowedDomainsRaw = process.env.MANIFEST_ALLOWED_DOMAINS?.trim() || \"\";\n const allowedDomains = allowedDomainsRaw\n .split(\",\")\n .map(d => d.trim())\n .filter(Boolean);\n \n return verifyManifestUrl({\n manifestUrl,\n allowedDomains,\n allowAllDomains: process.env.NODE_ENV !== \"production\" || allowedDomains.length === 0\n });\n}\n"]}
@@ -1,26 +1,56 @@
1
- import { C as CustomizableKeys, D as DefaultKeys, a as ThPreferences, T as ThPreferencesAdapter, b as ThemeTokens, F as FontCollection, L as LocalStaticFontFile, c as FontDefinition, d as ThThemeKeys } from '../ThPreferencesAdapter-DrZ5_6Dv.mjs';
2
- export { A as ActionKey, n as ActionKeyType, R as BunnyFontSource, w as CSSAbsoluteLength, x as CSSAngle, P as CSSColor, y as CSSDefaultViewport, z as CSSDynamicViewport, E as CSSFontRelativeLength, B as CSSFrequency, G as CSSLargeViewport, H as CSSPhysicalLength, I as CSSRelativeLength, J as CSSResolution, K as CSSRootFontRelativeLength, M as CSSSmallViewport, N as CSSTime, t as CSSValueUnitless, v as CSSValueWithUnit, O as CSSViewport, a8 as ContentProtectionConfig, a6 as CopyProtectionConfig, $ as FontSource, a0 as FontSpec, U as GoogleFontSource, _ as LocalFontSource, Y as LocalStaticFontSource, X as LocalVariableFontFile, Z as LocalVariableFontSource, a7 as PrintProtectionConfig, S as SettingsKey, p as SettingsKeyType, g as SpacingSettingsKey, r as SpacingSettingsKeyType, Q as SystemFontSource, f as TextSettingsKey, q as TextSettingsKeyType, j as ThActionsPref, l as ThConstraintKeys, a2 as ThFontFamilyPref, k as ThSettingsKeyTypes, h as ThSettingsSpacingPresets, i as ThSpacingPreset, e as ThemeKey, o as ThemeKeyType, a1 as ValidatedLanguageCollection, V as VariableFontRangeConfig, W as WeightConfig, ag as contrast1Theme, ah as contrast2Theme, ai as contrast3Theme, m as createPreferences, ad as darkTheme, aa as defaultContentProtectionConfig, a4 as defaultFontCollection, ab as devContentProtectionConfig, ac as lightTheme, ae as paperTheme, a3 as readiumCSSFontCollection, a9 as resolveContentProtectionConfig, af as sepiaTheme, a5 as tamilCollection, u as useTheming, s as useThemingProps } from '../ThPreferencesAdapter-DrZ5_6Dv.mjs';
3
- import * as React from 'react';
4
- export { T as ThPreferencesProvider, u as usePreferences } from '../usePreferences-BXFJbval.mjs';
5
- import { d as ThColorScheme, f as ThSettingsKeys, g as ThTextSettingsKeys, b as ThSpacingSettingsKeys, a as ThSpacingPresetKeys } from '../useContrast-D6sjPjxy.mjs';
6
- export { I as I18nValue, n as ThLayoutOptions, T as ThLineHeightOptions, k as ThSettingsContainerKeys, j as ThSettingsGroupPref, i as ThSettingsRadioPref, m as ThSettingsRangePlaceholder, h as ThSettingsRangePref, l as ThSettingsRangeVariant, c as ThTextAlignOptions, w as defaultLetterSpacing, x as defaultLineHeights, u as defaultParagraphIndent, t as defaultParagraphSpacing, z as defaultSpacingPresets, s as defaultSpacingPresetsOrder, q as defaultSpacingSettingsMain, r as defaultSpacingSettingsSubpanel, o as defaultTextSettingsMain, p as defaultTextSettingsSubpanel, v as defaultWordSpacing, y as defaultZoom } from '../useContrast-D6sjPjxy.mjs';
7
- import { c as ThActionsKeys } from '../actions-D2CHvCHu.mjs';
8
- export { h as ThActionsDockedPref, i as ThActionsSnappedPref, e as ThActionsTokens, g as ThBottomSheetDetent, T as ThDockingKeys, f as ThDockingPref, j as ThDockingTypes, a as ThSheetHeaderVariant, b as ThSheetTypes, k as defaultActionKeysObject, m as defaultFullscreenAction, o as defaultJumpToPositionAction, l as defaultSettingsAction, n as defaultTocAction } from '../actions-D2CHvCHu.mjs';
9
- export { m as ThArrowVariant, j as ThBackLinkContent, d as ThBackLinkPref, n as ThBackLinkVariant, T as ThBreakpoints, c as ThDocumentTitleFormat, e as ThFormatPref, k as ThFormatPrefValue, b as ThLayoutDirection, h as ThLayoutUI, i as ThPaginatedAffordancePref, l as ThPaginatedAffordancePrefValue, g as ThProgressionFormat, f as ThRunningHeadFormat } from '../ui-CamWuqOo.mjs';
10
- import '../keyboardUtilities-BWAyLS_D.mjs';
1
+ import { a as ThAudioPreferences, A as AudioDefaultKeys, b as AudioCustomizableKeys, c as ThAudioPreferencesAdapter } from '../usePreferences-VaBf46eP.mjs';
2
+ export { g as AudioSettingsKey, i as ThAudioActionKey, m as ThAudioActionKeys, j as ThAudioActionsPref, d as ThAudioAffordance, k as ThAudioConstraintKeys, h as ThAudioKeyTypes, n as ThAudioKeys, q as ThAudioSettingsKeys, f as ThAudioThemeKey, e as ThAudioThemeKeys, T as ThPreferencesProvider, p as ThSettingsTimerPref, o as ThSettingsTimerVariant, l as createAudioPreferences, s as defaultAudioPlaybackRate, B as defaultAudioPlaybackRateAction, D as defaultAudioRemotePlaybackAction, t as defaultAudioSkipBackwardInterval, v as defaultAudioSkipForwardInterval, w as defaultAudioSkipInterval, x as defaultAudioSleepTimer, C as defaultAudioSleepTimerAction, y as defaultAudioSleepTimerPresetList, E as defaultAudioTocAction, r as defaultAudioVolume, z as defaultAudioVolumeAction, u as usePreferences } from '../usePreferences-VaBf46eP.mjs';
3
+ import * as React$1 from 'react';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import { C as CustomizableKeys, D as DefaultKeys, d as ThPreferences, c as ThPreferencesAdapter, a as ThemeTokens, F as FontCollection, L as LocalStaticFontFile, e as FontDefinition, T as ThThemeKeys } from '../ThPreferencesAdapter-D0rzsGRl.mjs';
6
+ export { A as ActionKey, o as ActionKeyType, b as AudioContentProtectionConfig, U as BunnyFontSource, x as CSSAbsoluteLength, y as CSSAngle, Q as CSSColor, z as CSSDefaultViewport, B as CSSDynamicViewport, G as CSSFontRelativeLength, E as CSSFrequency, H as CSSLargeViewport, I as CSSPhysicalLength, J as CSSRelativeLength, K as CSSResolution, M as CSSRootFontRelativeLength, N as CSSSmallViewport, O as CSSTime, v as CSSValueUnitless, w as CSSValueWithUnit, P as CSSViewport, a9 as ContentProtectionConfig, a7 as CopyProtectionConfig, a0 as FontSource, a1 as FontSpec, X as GoogleFontSource, $ as LocalFontSource, Z as LocalStaticFontSource, Y as LocalVariableFontFile, _ as LocalVariableFontSource, a8 as PrintProtectionConfig, S as SettingsKey, q as SettingsKeyType, h as SpacingSettingsKey, s as SpacingSettingsKeyType, R as SystemFontSource, g as TextSettingsKey, r as TextSettingsKeyType, k as ThActionsPref, m as ThConstraintKeys, a3 as ThFontFamilyPref, l as ThSettingsKeyTypes, i as ThSettingsSpacingPresets, j as ThSpacingPreset, f as ThemeKey, p as ThemeKeyType, a2 as ValidatedLanguageCollection, V as VariableFontRangeConfig, W as WeightConfig, aj as contrast1Theme, ak as contrast2Theme, al as contrast3Theme, n as createPreferences, ag as darkTheme, ad as defaultAudioContentProtectionConfig, ac as defaultContentProtectionConfig, a5 as defaultFontCollection, ae as devContentProtectionConfig, af as lightTheme, ah as paperTheme, a4 as readiumCSSFontCollection, ab as resolveAudioContentProtectionConfig, aa as resolveContentProtectionConfig, ai as sepiaTheme, a6 as tamilCollection, u as useTheming, t as useThemingProps } from '../ThPreferencesAdapter-D0rzsGRl.mjs';
7
+ import { e as ThColorScheme, g as ThSettingsKeys, h as ThTextSettingsKeys, b as ThSpacingSettingsKeys, a as ThSpacingPresetKeys } from '../useContrast-2t429O9O.mjs';
8
+ export { I as I18nValue, p as ThLayoutOptions, T as ThLineHeightOptions, m as ThSettingsContainerKeys, j as ThSettingsGroupPref, i as ThSettingsRadioPref, o as ThSettingsRangePlaceholder, l as ThSettingsRangePref, d as ThSettingsRangePrefRequired, n as ThSettingsRangeVariant, c as ThTextAlignOptions, z as defaultLetterSpacing, A as defaultLineHeights, x as defaultParagraphIndent, w as defaultParagraphSpacing, C as defaultSpacingPresets, v as defaultSpacingPresetsOrder, s as defaultSpacingSettingsMain, t as defaultSpacingSettingsSubpanel, q as defaultTextSettingsMain, r as defaultTextSettingsSubpanel, y as defaultWordSpacing, B as defaultZoom } from '../useContrast-2t429O9O.mjs';
9
+ import { f as ThDockingPref, T as ThDockingKeys, c as ThActionsTokens, b as ThAudioActionsTokens, g as ThActionsKeys } from '../actions-BLAr0oaM.mjs';
10
+ export { k as ThActionsDockedPref, l as ThActionsSnappedPref, j as ThBottomSheetDetent, m as ThDockingTypes, a as ThSheetHeaderVariant, e as ThSheetTypes, n as defaultActionKeysObject, p as defaultFullscreenAction, r as defaultJumpToPositionAction, o as defaultSettingsAction, q as defaultTocAction } from '../actions-BLAr0oaM.mjs';
11
+ import { T as ThLayoutDirection, a as ThBackLinkPref, B as BreakpointsMap } from '../ui-nBv8gfr0.mjs';
12
+ export { p as ThArrowVariant, b as ThAudioPlayerComponent, d as ThAudioProgressBarVariant, r as ThAudioPublicationMetadataComponent, m as ThBackLinkContent, q as ThBackLinkVariant, e as ThBreakpoints, g as ThDocumentTitleFormat, h as ThFormatPref, n as ThFormatPrefValue, k as ThLayoutUI, l as ThPaginatedAffordancePref, o as ThPaginatedAffordancePrefValue, j as ThProgressionFormat, c as ThPublicationMetadataOrder, i as ThRunningHeadFormat } from '../ui-nBv8gfr0.mjs';
13
+ import { e as UnstableShortcutRepresentation } from '../keyboardUtilities-BWAyLS_D.mjs';
11
14
  import '@readium/navigator';
12
- import 'react/jsx-runtime';
13
15
  import 'react-aria-components';
14
16
 
17
+ declare const defaultAudioPreferences: ThAudioPreferences<AudioDefaultKeys>;
18
+
19
+ interface AudioPreferencesContextValue<K extends AudioCustomizableKeys = AudioDefaultKeys> {
20
+ preferences: ThAudioPreferences<K>;
21
+ updatePreferences: (prefs: ThAudioPreferences<K>) => void;
22
+ }
23
+ declare const ThAudioPreferencesContext: React$1.Context<AudioPreferencesContextValue<any> | null>;
24
+ declare const defaultAudioPreferencesContextValue: AudioPreferencesContextValue<AudioDefaultKeys>;
25
+
26
+ type Props<K extends AudioCustomizableKeys = AudioDefaultKeys> = {
27
+ adapter?: ThAudioPreferencesAdapter<K>;
28
+ initialPreferences?: ThAudioPreferences<K>;
29
+ devMode?: boolean;
30
+ children: React.ReactNode;
31
+ };
32
+ declare function ThAudioPreferencesProvider<K extends AudioCustomizableKeys = AudioDefaultKeys>({ adapter, initialPreferences, devMode, children, }: Props<K>): react_jsx_runtime.JSX.Element;
33
+
15
34
  interface PreferencesContextValue<K extends CustomizableKeys = DefaultKeys> {
16
35
  preferences: ThPreferences<K>;
17
36
  updatePreferences: (prefs: ThPreferences<K>) => void;
18
37
  }
19
- declare const ThPreferencesContext: React.Context<PreferencesContextValue<any> | null>;
38
+ declare const ThPreferencesContext: React$1.Context<PreferencesContextValue<any> | null>;
20
39
  declare const defaultPreferencesContextValue: PreferencesContextValue<DefaultKeys>;
21
40
 
22
41
  declare const defaultPreferences: ThPreferences<DefaultKeys>;
23
42
 
43
+ declare class ThAudioMemoryPreferencesAdapter<T extends AudioCustomizableKeys = AudioCustomizableKeys> implements ThAudioPreferencesAdapter<T> {
44
+ private currentPreferences;
45
+ private listeners;
46
+ constructor(initialPreferences: ThAudioPreferences<T>);
47
+ getPreferences(): ThAudioPreferences<T>;
48
+ setPreferences(prefs: ThAudioPreferences<T>): void;
49
+ subscribe(listener: (prefs: ThAudioPreferences<T>) => void): void;
50
+ unsubscribe(listener: (prefs: ThAudioPreferences<T>) => void): void;
51
+ private notifyListeners;
52
+ }
53
+
24
54
  declare class ThMemoryPreferencesAdapter<T extends CustomizableKeys = CustomizableKeys> implements ThPreferencesAdapter<T> {
25
55
  private currentPreferences;
26
56
  private listeners;
@@ -96,6 +126,31 @@ interface CreateFontDefinitionParams {
96
126
  */
97
127
  declare const createDefinitionFromStaticFonts: (params: CreateFontDefinitionParams) => FontDefinition;
98
128
 
129
+ declare const validateObjectKeys: <K extends string, V>(orderArrays: K[][], keysObj: Record<string, V>, context: string, specialCase?: string | string[], fallback?: V) => void;
130
+
131
+ interface ActionsPreferences {
132
+ docking: ThDockingPref<ThDockingKeys>;
133
+ actionsKeys: Record<string, ThActionsTokens | ThAudioActionsTokens>;
134
+ }
135
+ interface AudioActionsPreferences {
136
+ docking: ThDockingPref<ThDockingKeys>;
137
+ primaryActionsKeys: Record<string, ThAudioActionsTokens>;
138
+ secondaryActionsKeys: Record<string, ThActionsTokens>;
139
+ }
140
+ /**
141
+ * Context-agnostic hook for docking/actions infrastructure.
142
+ * Resolves preferences from the audio context when available,
143
+ * falling back to the reader context. This allows shared
144
+ * components (docking, action containers) to work in both.
145
+ */
146
+ declare const useActionsPreferences: () => ActionsPreferences;
147
+ declare const useAudioActionsPreferences: () => AudioActionsPreferences;
148
+
149
+ declare function useAudioPreferences<K extends AudioCustomizableKeys = AudioDefaultKeys>(): {
150
+ preferences: ThAudioPreferences<K>;
151
+ updatePreferences: (prefs: ThAudioPreferences<K>) => void;
152
+ };
153
+
99
154
  declare const usePreferenceKeys: () => {
100
155
  reflowActionKeys: ThActionsKeys[];
101
156
  fxlActionKeys: ThActionsKeys[];
@@ -114,4 +169,47 @@ declare const usePreferenceKeys: () => {
114
169
  webPubSpacingPresetKeys: ThSpacingPresetKeys[];
115
170
  };
116
171
 
117
- export { CustomizableKeys, DefaultKeys, FontCollection, FontDefinition, type GoogleFontDefinitionParams, LocalStaticFontFile, type PreferencesContextValue, ThActionsKeys, ThMemoryPreferencesAdapter, ThPreferences, ThPreferencesAdapter, ThPreferencesContext, ThSettingsKeys, ThSpacingPresetKeys, ThSpacingSettingsKeys, ThTextSettingsKeys, ThThemeKeys, ThemeTokens, buildThemeObject, type buildThemeProps, createDefinitionFromStaticFonts, createDefinitionsFromBunnyFonts, createDefinitionsFromGoogleFonts, defaultPreferences, defaultPreferencesContextValue, usePreferenceKeys };
172
+ interface SharedPreferences {
173
+ direction?: ThLayoutDirection;
174
+ locale?: string;
175
+ shortcuts: {
176
+ representation: UnstableShortcutRepresentation;
177
+ joiner?: string;
178
+ };
179
+ docking: ThDockingPref<ThDockingKeys>;
180
+ theming: {
181
+ icon: {
182
+ size: number;
183
+ tooltipOffset: number;
184
+ tooltipDelay?: number;
185
+ };
186
+ header?: {
187
+ backLink?: ThBackLinkPref | null;
188
+ };
189
+ themes: {
190
+ systemThemes?: {
191
+ light: string;
192
+ dark: string;
193
+ };
194
+ keys: Record<string, ThemeTokens>;
195
+ audioOrder?: Array<string>;
196
+ reflowOrder?: Array<string>;
197
+ fxlOrder?: Array<string>;
198
+ };
199
+ layout: {
200
+ defaults: {
201
+ dockingWidth: number;
202
+ scrim: string;
203
+ };
204
+ };
205
+ breakpoints: BreakpointsMap<number | null>;
206
+ };
207
+ }
208
+ /**
209
+ * Resolves preference values that are shared across both provider trees
210
+ * (audio and reader). Both providers expose these fields — this hook picks
211
+ * the active one so callers never need to touch the contexts directly.
212
+ */
213
+ declare const useSharedPreferences: () => SharedPreferences;
214
+
215
+ export { type ActionsPreferences, type AudioActionsPreferences, AudioCustomizableKeys, AudioDefaultKeys, type AudioPreferencesContextValue, CustomizableKeys, DefaultKeys, FontCollection, FontDefinition, type GoogleFontDefinitionParams, LocalStaticFontFile, type PreferencesContextValue, type SharedPreferences, ThActionsKeys, ThActionsTokens, ThAudioActionsTokens, ThAudioMemoryPreferencesAdapter, ThAudioPreferences, ThAudioPreferencesAdapter, ThAudioPreferencesContext, ThAudioPreferencesProvider, ThBackLinkPref, ThDockingKeys, ThDockingPref, ThLayoutDirection, ThMemoryPreferencesAdapter, ThPreferences, ThPreferencesAdapter, ThPreferencesContext, ThSettingsKeys, ThSpacingPresetKeys, ThSpacingSettingsKeys, ThTextSettingsKeys, ThThemeKeys, ThemeTokens, buildThemeObject, type buildThemeProps, createDefinitionFromStaticFonts, createDefinitionsFromBunnyFonts, createDefinitionsFromGoogleFonts, defaultAudioPreferences, defaultAudioPreferencesContextValue, defaultPreferences, defaultPreferencesContextValue, useActionsPreferences, useAudioActionsPreferences, useAudioPreferences, usePreferenceKeys, useSharedPreferences, validateObjectKeys };
@@ -1,9 +1,12 @@
1
- export { ThActionsKeys, ThDockingKeys, ThDockingTypes, ThLayoutOptions, ThLineHeightOptions, ThMemoryPreferencesAdapter, ThPreferencesContext, ThPreferencesProvider, ThSettingsContainerKeys, ThSettingsKeys, ThSettingsRangePlaceholder, ThSettingsRangeVariant, ThSheetHeaderVariant, ThSheetTypes, ThSpacingPresetKeys, ThSpacingSettingsKeys, ThTextAlignOptions, ThTextSettingsKeys, ThThemeKeys, buildThemeObject, contrast1Theme, contrast2Theme, contrast3Theme, createDefinitionFromStaticFonts, createDefinitionsFromBunnyFonts, createDefinitionsFromGoogleFonts, createPreferences, darkTheme, defaultActionKeysObject, defaultContentProtectionConfig, defaultFontCollection, defaultFullscreenAction, defaultJumpToPositionAction, defaultLetterSpacing, defaultLineHeights, defaultParagraphIndent, defaultParagraphSpacing, defaultPreferences, defaultPreferencesContextValue, defaultSettingsAction, defaultSpacingPresets, defaultSpacingPresetsOrder, defaultSpacingSettingsMain, defaultSpacingSettingsSubpanel, defaultTextSettingsMain, defaultTextSettingsSubpanel, defaultTocAction, defaultWordSpacing, defaultZoom, devContentProtectionConfig, lightTheme, paperTheme, readiumCSSFontCollection, resolveContentProtectionConfig, sepiaTheme, tamilCollection, usePreferenceKeys, usePreferences, useTheming } from '../chunk-7NEQAW7J.mjs';
2
- export { ThArrowVariant, ThBackLinkVariant, ThBreakpoints, ThDocumentTitleFormat, ThLayoutDirection, ThLayoutUI, ThProgressionFormat, ThRunningHeadFormat } from '../chunk-XVSFXHYB.mjs';
1
+ export { ThAudioMemoryPreferencesAdapter, ThAudioPreferencesProvider, ThMemoryPreferencesAdapter, ThPreferencesProvider, buildThemeObject, createDefinitionsFromBunnyFonts, useActionsPreferences, useAudioActionsPreferences, useAudioPreferences, usePreferenceKeys, usePreferences, useTheming } from '../chunk-WECWPYZB.mjs';
2
+ import '../chunk-7CGMWOZN.mjs';
3
3
  import '../chunk-GFSLVQIG.mjs';
4
- import '../chunk-5LUMM7FW.mjs';
4
+ export { ThActionsKeys, ThAudioActionKeys, ThAudioAffordance, ThAudioKeys, ThAudioPreferencesContext, ThDockingKeys, ThDockingTypes, ThLayoutOptions, ThLineHeightOptions, ThPreferencesContext, ThSettingsContainerKeys, ThSettingsKeys, ThSettingsRangePlaceholder, ThSettingsRangeVariant, ThSettingsTimerVariant, ThSheetHeaderVariant, ThSheetTypes, ThSpacingPresetKeys, ThSpacingSettingsKeys, ThTextAlignOptions, ThTextSettingsKeys, ThThemeKeys, contrast1Theme, contrast2Theme, contrast3Theme, createAudioPreferences, createDefinitionFromStaticFonts, createDefinitionsFromGoogleFonts, createPreferences, darkTheme, defaultActionKeysObject, defaultAudioContentProtectionConfig, defaultAudioPlaybackRate, defaultAudioPlaybackRateAction, defaultAudioPreferences, defaultAudioPreferencesContextValue, defaultAudioRemotePlaybackAction, defaultAudioSkipBackwardInterval, defaultAudioSkipForwardInterval, defaultAudioSkipInterval, defaultAudioSleepTimer, defaultAudioSleepTimerAction, defaultAudioSleepTimerPresetList, defaultAudioTocAction, defaultAudioVolume, defaultAudioVolumeAction, defaultContentProtectionConfig, defaultFontCollection, defaultFullscreenAction, defaultJumpToPositionAction, defaultLetterSpacing, defaultLineHeights, defaultParagraphIndent, defaultParagraphSpacing, defaultPreferences, defaultPreferencesContextValue, defaultSettingsAction, defaultSpacingPresets, defaultSpacingPresetsOrder, defaultSpacingSettingsMain, defaultSpacingSettingsSubpanel, defaultTextSettingsMain, defaultTextSettingsSubpanel, defaultTocAction, defaultWordSpacing, defaultZoom, devContentProtectionConfig, lightTheme, paperTheme, readiumCSSFontCollection, resolveAudioContentProtectionConfig, resolveContentProtectionConfig, sepiaTheme, tamilCollection, useSharedPreferences, validateObjectKeys } from '../chunk-C236BQQB.mjs';
5
+ export { ThArrowVariant, ThAudioPlayerComponent, ThAudioProgressBarVariant, ThAudioPublicationMetadataComponent, ThBackLinkVariant, ThBreakpoints, ThDocumentTitleFormat, ThLayoutDirection, ThLayoutUI, ThProgressionFormat, ThRunningHeadFormat } from '../chunk-L4XGZAZ5.mjs';
5
6
  import '../chunk-NQ2ZSGCX.mjs';
7
+ import '../chunk-5LUMM7FW.mjs';
6
8
  import '../chunk-B3WDMWCT.mjs';
7
9
  import '../chunk-MLEYTQGK.mjs';
10
+ import '../chunk-3GDQP6AS.mjs';
8
11
  //# sourceMappingURL=index.mjs.map
9
12
  //# sourceMappingURL=index.mjs.map
@@ -1,6 +1,6 @@
1
1
  import * as _reduxjs_toolkit from '@reduxjs/toolkit';
2
2
  import { W as WritableDraft } from './immer.d-CoRThNOF.mjs';
3
- import { T as ThLineHeightOptions, a as ThSpacingPresetKeys, b as ThSpacingSettingsKeys, c as ThTextAlignOptions } from './useContrast-D6sjPjxy.mjs';
3
+ import { T as ThLineHeightOptions, a as ThSpacingPresetKeys, b as ThSpacingSettingsKeys, c as ThTextAlignOptions } from './useContrast-2t429O9O.mjs';
4
4
 
5
5
  interface FontFamilyStateObject {
6
6
  default: string;
@@ -101,5 +101,24 @@ declare enum ThRunningHeadFormat {
101
101
  chapter = "chapter",
102
102
  none = "none"
103
103
  }
104
+ declare enum ThAudioPlayerComponent {
105
+ cover = "cover",
106
+ metadata = "metadata",
107
+ playbackControls = "playbackControls",
108
+ progressBar = "progressBar",
109
+ mediaActions = "mediaActions"
110
+ }
111
+ declare enum ThAudioProgressBarVariant {
112
+ normal = "normal",
113
+ segmented = "segmented"
114
+ }
115
+ declare enum ThAudioPublicationMetadataComponent {
116
+ title = "title",
117
+ titleWithSubtitle = "titleWithSubtitle",
118
+ subtitleWithTitle = "subtitleWithTitle",
119
+ authors = "authors"
120
+ }
121
+ type TitleVariant = ThAudioPublicationMetadataComponent.title | ThAudioPublicationMetadataComponent.titleWithSubtitle | ThAudioPublicationMetadataComponent.subtitleWithTitle;
122
+ type ThPublicationMetadataOrder = [TitleVariant] | [TitleVariant, ThAudioPublicationMetadataComponent.authors] | [ThAudioPublicationMetadataComponent.authors, TitleVariant];
104
123
 
105
- export { type BreakpointsMap as B, ThBreakpoints as T, type ThBreakpointsObject as a, ThLayoutDirection as b, ThDocumentTitleFormat as c, type ThBackLinkPref as d, type ThFormatPref as e, ThRunningHeadFormat as f, ThProgressionFormat as g, ThLayoutUI as h, type ThPaginatedAffordancePref as i, type ThBackLinkContent as j, type ThFormatPrefValue as k, type ThPaginatedAffordancePrefValue as l, ThArrowVariant as m, ThBackLinkVariant as n, useBreakpoints as u };
124
+ export { type BreakpointsMap as B, ThLayoutDirection as T, type ThBackLinkPref as a, ThAudioPlayerComponent as b, type ThPublicationMetadataOrder as c, ThAudioProgressBarVariant as d, ThBreakpoints as e, type ThBreakpointsObject as f, ThDocumentTitleFormat as g, type ThFormatPref as h, ThRunningHeadFormat as i, ThProgressionFormat as j, ThLayoutUI as k, type ThPaginatedAffordancePref as l, type ThBackLinkContent as m, type ThFormatPrefValue as n, type ThPaginatedAffordancePrefValue as o, ThArrowVariant as p, ThBackLinkVariant as q, ThAudioPublicationMetadataComponent as r, useBreakpoints as u };