@edrlab/thorium-web 1.0.8 → 1.1.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 (70) hide show
  1. package/README.md +2 -0
  2. package/dist/{StatefulReader-BuuUEuKC.d.mts → StatefulReader-BjH7bkU1.d.mts} +2 -26
  3. package/dist/{ThPreferencesAdapter-CbAb0Vth.d.mts → ThPreferencesAdapter-x_D4c7wI.d.mts} +5 -0
  4. package/dist/chunk-7CGMWOZN.mjs +20 -0
  5. package/dist/chunk-7CGMWOZN.mjs.map +1 -0
  6. package/dist/{chunk-TA2ZMJMK.mjs → chunk-D24O64OP.mjs} +375 -278
  7. package/dist/chunk-D24O64OP.mjs.map +1 -0
  8. package/dist/{chunk-4M7DDKAT.mjs → chunk-FG6BJGVE.mjs} +5 -25
  9. package/dist/chunk-FG6BJGVE.mjs.map +1 -0
  10. package/dist/{chunk-SQHOOSST.mjs → chunk-HE3WFPGE.mjs} +84 -85
  11. package/dist/chunk-HE3WFPGE.mjs.map +1 -0
  12. package/dist/chunk-KKJA56IZ.mjs +27 -0
  13. package/dist/chunk-KKJA56IZ.mjs.map +1 -0
  14. package/dist/{chunk-7PJ2GDZA.mjs → chunk-SPAC7T57.mjs} +36 -21
  15. package/dist/chunk-SPAC7T57.mjs.map +1 -0
  16. package/dist/components/Epub/index.css +1282 -0
  17. package/dist/components/Epub/index.css.map +1 -0
  18. package/dist/components/Epub/index.d.mts +3 -3
  19. package/dist/components/Epub/index.mjs +49 -45
  20. package/dist/components/Epub/index.mjs.map +1 -1
  21. package/dist/components/Misc/index.css +102 -0
  22. package/dist/components/Misc/index.css.map +1 -0
  23. package/dist/components/Misc/index.d.mts +28 -0
  24. package/dist/components/Misc/index.mjs +110 -0
  25. package/dist/components/Misc/index.mjs.map +1 -0
  26. package/dist/components/WebPub/index.css +1214 -0
  27. package/dist/components/WebPub/index.css.map +1 -0
  28. package/dist/components/WebPub/index.d.mts +5 -5
  29. package/dist/components/WebPub/index.mjs +33 -27
  30. package/dist/components/WebPub/index.mjs.map +1 -1
  31. package/dist/core/Components/index.mjs +0 -1
  32. package/dist/core/Helpers/index.d.mts +12 -2
  33. package/dist/core/Helpers/index.mjs +1 -2
  34. package/dist/core/Hooks/index.mjs +0 -1
  35. package/dist/i18n/index.mjs +5 -5
  36. package/dist/lib/index.d.mts +2 -1
  37. package/dist/lib/index.mjs +2 -3
  38. package/dist/locales/et/thorium-web.json +1 -0
  39. package/dist/locales/it/thorium-web.json +1 -0
  40. package/dist/locales/pl/thorium-web.json +26 -13
  41. package/dist/locales/sv/thorium-web.json +37 -37
  42. package/dist/next-lib/index.mjs +0 -2
  43. package/dist/next-lib/index.mjs.map +1 -1
  44. package/dist/preferences/index.d.mts +4 -3
  45. package/dist/preferences/index.mjs +3 -4
  46. package/dist/{usePreferences-iJ5426UA.d.mts → usePreferences-CRjFlZvF.d.mts} +1 -1
  47. package/package.json +44 -40
  48. package/dist/backLink.module-QFOMD4RA.module.css +0 -36
  49. package/dist/chunk-3QS3WKRC.mjs +0 -29
  50. package/dist/chunk-3QS3WKRC.mjs.map +0 -1
  51. package/dist/chunk-4M7DDKAT.mjs.map +0 -1
  52. package/dist/chunk-7PJ2GDZA.mjs.map +0 -1
  53. package/dist/chunk-SQHOOSST.mjs.map +0 -1
  54. package/dist/chunk-TA2ZMJMK.mjs.map +0 -1
  55. package/dist/chunk-TTGURRX3.mjs +0 -19
  56. package/dist/chunk-TTGURRX3.mjs.map +0 -1
  57. package/dist/docking.module-TDNYZX4H.module.css +0 -40
  58. package/dist/jumpToPosition.module-4C47UYPE.module.css +0 -41
  59. package/dist/overflowMenu.module-QL32ISXF.module.css +0 -68
  60. package/dist/publicationGrid.module-T6ISNRGM.module.css +0 -70
  61. package/dist/reader-NGCQJKLX.css +0 -261
  62. package/dist/readerArrowButton.module-EFLOIADG.module.css +0 -77
  63. package/dist/readerHeader.module-RNGQFLVS.module.css +0 -35
  64. package/dist/readerLoader.module-KDBPCQZJ.module.css +0 -40
  65. package/dist/readerPagination.module-DYBZAQ7H.module.css +0 -76
  66. package/dist/readerProgression.module-7PU7L74S.module.css +0 -5
  67. package/dist/readerSharedUI.module-Y2VDWFS5.module.css +0 -98
  68. package/dist/settings.module-H5MUDFJO.module.css +0 -437
  69. package/dist/sheets.module-LJOLY4MK.module.css +0 -195
  70. package/dist/toc.module-F47C5CDS.module.css +0 -153
@@ -1,195 +0,0 @@
1
- /* React Aria modal provides a visual viewport for mobile + keyboard: --visual-viewport-height
2
- which should explain why it’s being used here while not mentioned anywhere else in the codebase */
3
-
4
- .fullScreenSheet {
5
- position: fixed;
6
- top: 0;
7
- left: 0;
8
- right: 0;
9
- bottom: 0;
10
- z-index: 10;
11
- overflow-y: auto;
12
- scroll-padding-top: calc(var(--sheet-sticky-header, 80px) + var(--layout-spacing));
13
- scroll-padding-bottom: var(--layout-spacing);
14
- box-sizing: border-box;
15
- width: 100%;
16
- height: 100%;
17
- max-height: var(--visual-viewport-height, 100dvh);
18
- background-color: var(--theme-background);
19
- color: var(--theme-text);
20
- align-items: center;
21
- }
22
-
23
- .popOverSheet {
24
- overflow-y: auto;
25
- scroll-padding-top: calc(var(--sheet-sticky-header, 80px) + var(--layout-spacing));
26
- scroll-padding-bottom: var(--layout-spacing);
27
- box-sizing: border-box;
28
- width: calc(340px + (2 * var(--layout-spacing)));
29
- max-width: var(--constraints-popover, 500px);
30
- max-height: 100%;
31
- max-height: var(--visual-viewport-height, 100dvh);
32
- padding: 0;
33
- background-color: var(--theme-background);
34
- color: var(--theme-text);
35
- border-radius: var(--layout-radius);
36
- border: 1px solid var(--theme-subdue);
37
- filter: drop-shadow(var(--theme-elevate));
38
- }
39
-
40
- /* React Modal Sheet handles scroll + sticky header so no need for scroll-padding here */
41
- .bottomSheetModal {
42
- box-sizing: border-box;
43
- max-width: var(--constraints-bottomSheet, 600px);
44
- left: max(calc((100% - var(--constraints-bottomSheet, 600px)) / 2), 0px) !important;
45
- background-color: var(--theme-background) !important;
46
- color: var(--theme-text) !important;
47
- border: none;
48
- /* Animating drop-shadow pretty much kills performance, hence why we use a pseudo-element */
49
- filter: none !important;
50
- box-shadow: none !important;
51
- /* M3 = 28dp, see https://m3.material.io/components/bottom-sheets/overview */
52
- border-top-left-radius: 28px !important;
53
- border-top-right-radius: 28px !important;
54
- transition: border-radius 500ms;
55
- }
56
-
57
- .bottomSheetModal::after {
58
- content: "";
59
- z-index: -1;
60
- position: absolute;
61
- top: 0;
62
- left: 0;
63
- right: 0;
64
- bottom: 0;
65
- /* important for performance */
66
- transform: translateZ(0);
67
- box-shadow: var(--theme-elevate);
68
- border-top-left-radius: 28px;
69
- border-top-right-radius: 28px;
70
- }
71
-
72
- .bottomSheetModalFullHeightDetent {
73
- height: calc(100% - env(safe-area-inset-top)) !important;
74
- }
75
-
76
- .bottomSheetModalContentHeightDetent {
77
- max-height: calc(100% - env(safe-area-inset-top)) !important;
78
- }
79
-
80
- .bottomSheetModal[data-full-height] {
81
- border-top-left-radius: 0 !important;
82
- border-top-right-radius: 0 !important;
83
- transition: border-radius 500ms;
84
- }
85
-
86
- .bottomSheetBackdrop {
87
- /* So that React Aria can use it to dismiss the sheet as it’s set to none by React Modal Sheet. */
88
- pointer-events: auto !important;
89
- background-color: transparent !important;
90
- }
91
-
92
- .bottomSheetScrim {
93
- background-color: var(--defaults-scrim) !important;
94
- }
95
-
96
- .bottomSheet {
97
- padding: 0;
98
- background-color: var(--theme-background);
99
- color: var(--theme-text);
100
- }
101
-
102
- .bottomSheetScroller {
103
- position: relative;
104
- scroll-padding-bottom: calc(var(--layout-spacing) * 4);
105
- }
106
-
107
- .dragIndicator {
108
- width: calc(var(--icon-size, 40px) * 1.5);
109
- position: absolute;
110
- top: 0;
111
- left: 50%;
112
- transform: translateX(-50%);
113
- }
114
-
115
- .dragIndicator[data-focus-visible] {
116
- border-radius: var(--layout-radius);
117
- outline: 2px solid var(--theme-focus);
118
- }
119
-
120
- .dragIndicator svg {
121
- fill: var(--theme-subdue);
122
- width: 100%;
123
- height: auto;
124
- }
125
-
126
- .dockedSheet {
127
- /* We need relative positioning so that RAC FocusScope scrolls properly on tabbing */
128
- position: relative;
129
- overflow-y: auto;
130
- scroll-padding-top: calc(var(--sheet-sticky-header, 80px) + var(--layout-spacing));
131
- scroll-padding-bottom: var(--layout-spacing);
132
- box-sizing: border-box;
133
- width: 100%;
134
- max-width: 100%;
135
- height: 100vh;
136
- height: 100dvh;
137
- background-color: var(--theme-background);
138
- color: var(--theme-text);
139
- }
140
-
141
- .dockedSheetLeftBorder {
142
- border-right: 1px solid var(--theme-subdue);
143
- }
144
-
145
- .dockedSheetRightBorder {
146
- border-left: 1px solid var(--theme-subdue);
147
- }
148
-
149
- .sheetDialog {
150
- outline: none;
151
- }
152
-
153
- .sheetHeader {
154
- display: flex;
155
- align-items: center;
156
- position: sticky;
157
- top: 0;
158
- left: 0;
159
- right: 0;
160
- z-index: 10;
161
- padding: calc(var(--layout-spacing) / 2) var(--layout-spacing);
162
- background-color: var(--theme-background);
163
- border-bottom: 1px solid var(--theme-subdue);
164
- }
165
-
166
- .bottomSheetHeader {
167
- box-sizing: border-box;
168
- display: flex;
169
- align-items: center;
170
- background-color: var(--theme-background);
171
- border-bottom: 1px solid var(--theme-subdue);
172
- padding: var(--layout-spacing) var(--layout-spacing) calc(var(--layout-spacing) / 2) var(--layout-spacing);
173
- /* Otherwise covers the modal’s */
174
- border-top-left-radius: 28px !important;
175
- border-top-right-radius: 28px !important;
176
- transition: border-radius 500ms;
177
- }
178
-
179
- .bottomSheetModal[data-full-height] .bottomSheetHeader {
180
- /* Otherwise covers the modal’s */
181
- border-top-left-radius: 0 !important;
182
- border-top-right-radius: 0 !important;
183
- transition: border-radius 500ms;
184
- }
185
-
186
- .sheetHeading {
187
- font-size: 1.25rem;
188
- line-height: 1;
189
- margin: 0;
190
- padding: 0;
191
- }
192
-
193
- .sheetBody {
194
- padding: var(--layout-spacing);
195
- }
@@ -1,153 +0,0 @@
1
- /* Search */
2
-
3
- .tocSearch {
4
- margin-bottom: var(--layout-spacing);
5
- display: grid;
6
- grid-template-areas: "label label"
7
- "input button";
8
- grid-template-columns: 1fr auto;
9
- align-items: center;
10
- width: 100%;
11
- }
12
-
13
- .tocSearchLabel {
14
- grid-area: label;
15
- margin-bottom: calc(var(--layout-spacing) / 2);
16
- }
17
-
18
- .tocSearchInput {
19
- grid-area: input;
20
- box-sizing: border-box;
21
- width: 100%;
22
- max-width: 100%;
23
- display: block;
24
- border-radius: var(--layout-radius);
25
- border: 2px solid var(--theme-subdue);
26
- padding: calc(var(--icon-size, 24px) * (1/4)) calc(var(--layout-spacing) / 2);
27
- }
28
-
29
- .tocSearchInput::-webkit-search-cancel-button,
30
- .tocSearchInput::-webkit-search-decoration {
31
- -webkit-appearance: none;
32
- }
33
-
34
- .tocSearchInput[data-focus-visible] {
35
- outline: 2px solid var(--theme-focus);
36
- }
37
-
38
- .tocSearchIcon,
39
- .tocClearButton {
40
- grid-area: button;
41
- margin-inline-start: calc(var(--icon-size, 24px) * -1.25);
42
- height: 100%;
43
- display: flex;
44
- align-items: center;
45
- }
46
-
47
- .tocSearchIcon svg {
48
- fill: var(--theme-subdue);
49
- width: var(--icon-size, 24px);
50
- height: var(--icon-size, 24px);
51
- }
52
-
53
- .tocClearButton svg {
54
- fill: var(--theme-text);
55
- width: var(--icon-size, 24px);
56
- height: var(--icon-size, 24px);
57
- }
58
-
59
- .tocSearchIcon[hidden],
60
- .tocClearButton[data-disabled] {
61
- display: none;
62
- }
63
-
64
- .tocTree {
65
- background: var(--theme-background);
66
- color: var(--theme-text);
67
- outline: none;
68
- width: 100%;
69
- max-height: 100%;
70
- box-sizing: border-box;
71
- }
72
-
73
- /* React Aria is providing a --tree-item-level as items are not nested */
74
- .tocTreeItem {
75
- display: flex;
76
- padding: calc(var(--layout-spacing) / 2);
77
- padding-inline-start: calc(((var(--tree-item-level) - 1) * var(--layout-spacing)) + (var(--layout-spacing) / 2));
78
- border-radius: var(--layout-radius);
79
- border: 2px solid transparent;
80
- box-sizing: border-box;
81
- }
82
-
83
- .tocTree:has(.tocTreeItemButton) .tocTreeItem {
84
- padding-inline-start: calc((var(--tree-item-level) * var(--layout-spacing)) + (var(--layout-spacing) / 2));
85
- }
86
-
87
- .tocTree .tocTreeItem:has(.tocTreeItemButton) {
88
- padding-inline-start: calc(((var(--tree-item-level) - 1) * var(--layout-spacing)));
89
- }
90
-
91
- .tocTreeItemText {
92
- display: flex;
93
- flex: 1 1 auto;
94
- }
95
-
96
- .tocTreeItemTextTitle {
97
- text-wrap: balance;
98
- }
99
-
100
- .tocTreeItemTextPosition {
101
- margin-inline-start: auto;
102
- padding-inline-start: calc(var(--layout-spacing) / 2);
103
- color: var(--theme-subdue);
104
- font-variant-numeric: lining-nums tabular-nums;
105
- }
106
-
107
- .tocTreeItemButton {
108
- align-self: flex-start;
109
- width: calc(var(--icon-size, 24px) * 5/6);
110
- height: calc(var(--icon-size, 24px) * 5/6);
111
- margin-inline-end: calc(var(--layout-spacing) / 2);
112
- flex-shrink: 0;
113
- }
114
-
115
- .tocTreeItem[data-href] {
116
- cursor: pointer;
117
- }
118
-
119
- /* [data-hover] is only updated on tree items that can be expanded ATM… */
120
- .tocTreeItem:hover {
121
- background-color: var(--theme-hover);
122
- }
123
-
124
- .tocTreeItem[data-focus-visible] {
125
- outline: 2px solid var(--theme-focus);
126
- }
127
-
128
- .tocTreeItem[data-disabled] {
129
- color: var(--theme-disable);
130
- }
131
-
132
- .tocTreeItem[data-selected] {
133
- border: 2px solid var(--theme-subdue);
134
- }
135
-
136
- .tocTreeItemButton svg {
137
- flex: none;
138
- rotate: 0deg;
139
- transition: rotate 200ms;
140
- width: 100%;
141
- height: 100%;
142
- fill: var(--theme-text);
143
- }
144
-
145
- .tocTreeItem[data-expanded] .tocTreeItemButton svg {
146
- rotate: 90deg;
147
- }
148
-
149
- .empty {
150
- max-width: 25ch;
151
- text-align: start;
152
- text-wrap: balance;
153
- }