paginar 0.3.3 → 0.3.5
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.
- package/README.md +30 -0
- package/dist/index.es.js +554 -208
- package/dist/index.es.js.map +1 -1
- package/dist/style.css +63 -0
- package/package.json +4 -1
- package/.editorconfig +0 -13
- package/.env +0 -1
- package/.vscode/extensions.json +0 -3
- package/demo/slot/slot-chapter1.html +0 -384
- package/demo/slot/slot-chapter2.html +0 -366
- package/demo/slot/slot-chapter3.html +0 -265
- package/demo/summary/_content/1chapter.html +0 -100
- package/demo/summary/_content/2chapter.html +0 -311
- package/demo/summary/_content/3chapter.html +0 -211
- package/demo/summary/index.html +0 -134
- package/index.html +0 -18
- package/postcss.config.js +0 -7
- package/public/favicon.ico +0 -0
- package/src/App.ce.vue +0 -166
- package/src/assets/main.css +0 -392
- package/src/components/BookContent.vue +0 -23
- package/src/components/EngineWrapper.vue +0 -15
- package/src/components/FooterSlot.vue +0 -32
- package/src/components/FootnotesAside.vue +0 -123
- package/src/components/HeaderSlot/HeaderSlot.vue +0 -30
- package/src/components/HeaderSlot/OptionsButton/OptionsButton.vue +0 -67
- package/src/components/HeaderSlot/OptionsButton/OptionsColor.vue +0 -28
- package/src/components/HeaderSlot/OptionsButton/OptionsColumns.vue +0 -51
- package/src/components/HeaderSlot/OptionsButton/OptionsDropdown.vue +0 -59
- package/src/components/HeaderSlot/OptionsButton/OptionsFontFamily.vue +0 -17
- package/src/components/HeaderSlot/OptionsButton/OptionsFontSize.vue +0 -17
- package/src/components/HeaderSlot/SummaryButton/SummaryButton.vue +0 -74
- package/src/components/HeaderSlot/SummaryButton/SummaryDropdown.vue +0 -30
- package/src/components/NavigationButton.vue +0 -34
- package/src/components/ReaderWrapper.vue +0 -37
- package/src/components/ReferencePopup.vue +0 -36
- package/src/components/icons/Close.vue +0 -6
- package/src/components/icons/DoubleColumn.vue +0 -15
- package/src/components/icons/Expand.vue +0 -7
- package/src/components/icons/Eye.vue +0 -9
- package/src/components/icons/Footnote.vue +0 -5
- package/src/components/icons/Home.vue +0 -6
- package/src/components/icons/Moon.vue +0 -5
- package/src/components/icons/Notes.vue +0 -5
- package/src/components/icons/SingleColumn.vue +0 -3
- package/src/components/icons/Summary.vue +0 -10
- package/src/components/icons/Sun.vue +0 -5
- package/src/components/icons/ThreeDots.vue +0 -8
- package/src/composables/useBrowser.js +0 -16
- package/src/composables/useEstimatePages.js +0 -31
- package/src/composables/useFootnotes.js +0 -50
- package/src/composables/usePagination.js +0 -125
- package/src/composables/useReaderSettings.js +0 -174
- package/src/composables/useReferences.js +0 -67
- package/src/composables/useStyles.js +0 -60
- package/src/composables/useTextContent.js +0 -113
- package/src/main.js +0 -19
- package/src/tailwind.css +0 -1082
- package/tailwind.config.js +0 -16
- package/vite.config.js +0 -36
package/dist/index.es.js
CHANGED
|
@@ -19,7 +19,7 @@ const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 &&
|
|
|
19
19
|
(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
|
|
20
20
|
const isModelListener = (key) => key.startsWith("onUpdate:");
|
|
21
21
|
const extend = Object.assign;
|
|
22
|
-
const remove = (arr, el) => {
|
|
22
|
+
const remove$1 = (arr, el) => {
|
|
23
23
|
const i = arr.indexOf(el);
|
|
24
24
|
if (i > -1) {
|
|
25
25
|
arr.splice(i, 1);
|
|
@@ -1863,7 +1863,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
|
|
|
1863
1863
|
const watchHandle = () => {
|
|
1864
1864
|
effect.stop();
|
|
1865
1865
|
if (scope && scope.active) {
|
|
1866
|
-
remove(scope.effects, effect);
|
|
1866
|
+
remove$1(scope.effects, effect);
|
|
1867
1867
|
}
|
|
1868
1868
|
};
|
|
1869
1869
|
if (once && cb) {
|
|
@@ -3157,7 +3157,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
3157
3157
|
if (rawRef.f) {
|
|
3158
3158
|
const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
|
|
3159
3159
|
if (isUnmount) {
|
|
3160
|
-
isArray(existing) && remove(existing, refValue);
|
|
3160
|
+
isArray(existing) && remove$1(existing, refValue);
|
|
3161
3161
|
} else {
|
|
3162
3162
|
if (!isArray(existing)) {
|
|
3163
3163
|
if (_isString) {
|
|
@@ -3258,7 +3258,7 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
|
|
|
3258
3258
|
/* prepend */
|
|
3259
3259
|
);
|
|
3260
3260
|
onUnmounted(() => {
|
|
3261
|
-
remove(keepAliveRoot[type], injected);
|
|
3261
|
+
remove$1(keepAliveRoot[type], injected);
|
|
3262
3262
|
}, target);
|
|
3263
3263
|
}
|
|
3264
3264
|
|
|
@@ -9945,7 +9945,7 @@ const useStyles = {
|
|
|
9945
9945
|
applyStylesheet
|
|
9946
9946
|
};
|
|
9947
9947
|
|
|
9948
|
-
const state$
|
|
9948
|
+
const state$6 = reactive({
|
|
9949
9949
|
baseFont: 'Arial, sans-serif',
|
|
9950
9950
|
textFont: 'Times New Roman, serif',
|
|
9951
9951
|
fontsOptions: [
|
|
@@ -9957,46 +9957,52 @@ const state$5 = reactive({
|
|
|
9957
9957
|
fontSize: 16,
|
|
9958
9958
|
columns: 'double',
|
|
9959
9959
|
mode: 'light',
|
|
9960
|
-
blocked: false,
|
|
9960
|
+
blocked: false,
|
|
9961
|
+
readingProgressAvailable: false,
|
|
9962
|
+
readingProgressEnabled: false,
|
|
9961
9963
|
|
|
9962
9964
|
bookTitle: null,
|
|
9963
9965
|
chapterTitle: null,
|
|
9964
9966
|
homeUrl: null,
|
|
9965
9967
|
});
|
|
9966
9968
|
|
|
9967
|
-
const baseFont = computed(() => state$
|
|
9968
|
-
const textFont = computed(() => state$
|
|
9969
|
-
const fontSize = computed(() => state$
|
|
9970
|
-
const fontsOptions = computed(() => state$
|
|
9971
|
-
const columns = computed(() => state$
|
|
9972
|
-
const mode = computed(() => state$
|
|
9973
|
-
const blocked = computed(() => state$
|
|
9969
|
+
const baseFont = computed(() => state$6.baseFont);
|
|
9970
|
+
const textFont = computed(() => state$6.textFont);
|
|
9971
|
+
const fontSize = computed(() => state$6.fontSize);
|
|
9972
|
+
const fontsOptions = computed(() => state$6.fontsOptions);
|
|
9973
|
+
const columns = computed(() => state$6.columns);
|
|
9974
|
+
const mode = computed(() => state$6.mode);
|
|
9975
|
+
const blocked = computed(() => state$6.blocked);
|
|
9976
|
+
const readingProgressAvailable = computed(() => state$6.readingProgressAvailable);
|
|
9977
|
+
const readingProgressEnabled = computed(() => state$6.readingProgressEnabled);
|
|
9974
9978
|
|
|
9975
|
-
const bookTitle = computed(() => state$
|
|
9976
|
-
const chapterTitle = computed(() => state$
|
|
9977
|
-
const homeUrl = computed(() => state$
|
|
9979
|
+
const bookTitle = computed(() => state$6.bookTitle);
|
|
9980
|
+
const chapterTitle = computed(() => state$6.chapterTitle);
|
|
9981
|
+
const homeUrl = computed(() => state$6.homeUrl);
|
|
9978
9982
|
|
|
9979
9983
|
watch(
|
|
9980
|
-
[baseFont, textFont, fontSize, columns, mode],
|
|
9984
|
+
[baseFont, textFont, fontSize, columns, mode, readingProgressEnabled],
|
|
9981
9985
|
() => saveSettings()
|
|
9982
9986
|
);
|
|
9983
9987
|
|
|
9984
|
-
async function initSettings(settingsString) {
|
|
9985
|
-
const settings = settingsString
|
|
9986
|
-
? JSON.parse(settingsString)
|
|
9987
|
-
: null;
|
|
9988
|
+
async function initSettings(settingsString) {
|
|
9989
|
+
const settings = settingsString
|
|
9990
|
+
? JSON.parse(settingsString)
|
|
9991
|
+
: null;
|
|
9992
|
+
state$6.readingProgressAvailable = false;
|
|
9993
|
+
state$6.readingProgressEnabled = false;
|
|
9988
9994
|
|
|
9989
9995
|
if (settings?.baseFont)
|
|
9990
|
-
state$
|
|
9996
|
+
state$6.baseFont = settings.baseFont;
|
|
9991
9997
|
|
|
9992
9998
|
if (settings?.textFont)
|
|
9993
|
-
state$
|
|
9999
|
+
state$6.textFont = settings.textFont;
|
|
9994
10000
|
|
|
9995
10001
|
if (settings?.fontSize)
|
|
9996
|
-
state$
|
|
10002
|
+
state$6.fontSize = Number(settings.fontSize);
|
|
9997
10003
|
|
|
9998
10004
|
if (settings?.fontsOptions) {
|
|
9999
|
-
state$
|
|
10005
|
+
state$6.fontsOptions = settings.fontsOptions;
|
|
10000
10006
|
useStyles.fontLoader(settings.fontsOptions);
|
|
10001
10007
|
|
|
10002
10008
|
// baseFont
|
|
@@ -10004,43 +10010,67 @@ async function initSettings(settingsString) {
|
|
|
10004
10010
|
item => item.defaultBaseFont
|
|
10005
10011
|
);
|
|
10006
10012
|
if (defaultBaseFont)
|
|
10007
|
-
state$
|
|
10013
|
+
state$6.baseFont = defaultBaseFont.name;
|
|
10008
10014
|
|
|
10009
10015
|
// textFont
|
|
10010
10016
|
const defaultTextFont = settings.fontsOptions.find(
|
|
10011
10017
|
item => item.defaultTextFont
|
|
10012
10018
|
);
|
|
10013
10019
|
if (defaultTextFont)
|
|
10014
|
-
state$
|
|
10020
|
+
state$6.textFont = defaultTextFont.name;
|
|
10015
10021
|
}
|
|
10016
10022
|
|
|
10017
10023
|
if (settings?.bookTitle)
|
|
10018
|
-
state$
|
|
10024
|
+
state$6.bookTitle = settings.bookTitle;
|
|
10019
10025
|
|
|
10020
10026
|
if (settings?.chapterTitle)
|
|
10021
|
-
state$
|
|
10027
|
+
state$6.chapterTitle = settings.chapterTitle;
|
|
10022
10028
|
|
|
10023
|
-
if (settings?.homeUrl)
|
|
10024
|
-
state$
|
|
10029
|
+
if (settings?.homeUrl)
|
|
10030
|
+
state$6.homeUrl = settings.homeUrl;
|
|
10031
|
+
|
|
10032
|
+
if (settings?.readingProgress &&
|
|
10033
|
+
typeof settings.readingProgress === 'object' &&
|
|
10034
|
+
!Array.isArray(settings.readingProgress)
|
|
10035
|
+
) {
|
|
10036
|
+
state$6.readingProgressAvailable = true;
|
|
10037
|
+
state$6.readingProgressEnabled = settings.readingProgress.enabled !== false;
|
|
10038
|
+
}
|
|
10025
10039
|
|
|
10026
10040
|
loadSavedSettings(settings);
|
|
10027
10041
|
}
|
|
10028
10042
|
|
|
10029
|
-
function loadSavedSettings(settings) {
|
|
10030
|
-
|
|
10031
|
-
|
|
10032
|
-
|
|
10033
|
-
|
|
10043
|
+
function loadSavedSettings(settings) {
|
|
10044
|
+
let hasSettings = null;
|
|
10045
|
+
try {
|
|
10046
|
+
hasSettings = localStorage.getItem('readerSettings');
|
|
10047
|
+
} catch (error) {
|
|
10048
|
+
return
|
|
10049
|
+
}
|
|
10050
|
+
|
|
10051
|
+
if (hasSettings) {
|
|
10052
|
+
let savedSettings = null;
|
|
10053
|
+
try {
|
|
10054
|
+
savedSettings = JSON.parse(hasSettings);
|
|
10055
|
+
} catch (error) {
|
|
10056
|
+
return
|
|
10057
|
+
}
|
|
10034
10058
|
|
|
10035
|
-
state$
|
|
10036
|
-
state$
|
|
10037
|
-
state$
|
|
10059
|
+
state$6.fontSize = savedSettings.fontSize;
|
|
10060
|
+
state$6.columns = savedSettings.columns;
|
|
10061
|
+
state$6.mode = savedSettings.mode;
|
|
10038
10062
|
|
|
10039
|
-
if (settings?.fontsOptions &&
|
|
10063
|
+
if (settings?.fontsOptions &&
|
|
10040
10064
|
settings?.fontsOptions?.find(item => item.name === savedSettings.textFont)
|
|
10041
10065
|
) {
|
|
10042
|
-
state$
|
|
10043
|
-
}
|
|
10066
|
+
state$6.textFont = savedSettings.textFont;
|
|
10067
|
+
}
|
|
10068
|
+
|
|
10069
|
+
if (state$6.readingProgressAvailable &&
|
|
10070
|
+
typeof savedSettings.readingProgressEnabled === 'boolean'
|
|
10071
|
+
) {
|
|
10072
|
+
state$6.readingProgressEnabled = savedSettings.readingProgressEnabled;
|
|
10073
|
+
}
|
|
10044
10074
|
|
|
10045
10075
|
if (savedSettings.mode === 'dark') {
|
|
10046
10076
|
const htmlRoot = document.querySelector('html');
|
|
@@ -10053,23 +10083,28 @@ function loadSavedSettings(settings) {
|
|
|
10053
10083
|
}
|
|
10054
10084
|
|
|
10055
10085
|
function setColumns(value) {
|
|
10056
|
-
state$
|
|
10086
|
+
state$6.columns = value;
|
|
10057
10087
|
}
|
|
10058
10088
|
|
|
10059
10089
|
function setTextFont(value) {
|
|
10060
|
-
state$
|
|
10090
|
+
state$6.textFont = value;
|
|
10061
10091
|
}
|
|
10062
10092
|
|
|
10063
10093
|
function setFontSize(value) {
|
|
10064
|
-
state$
|
|
10094
|
+
state$6.fontSize = value;
|
|
10065
10095
|
}
|
|
10066
10096
|
|
|
10067
|
-
function setBlocked(value) {
|
|
10068
|
-
state$
|
|
10069
|
-
}
|
|
10097
|
+
function setBlocked(value) {
|
|
10098
|
+
state$6.blocked = value;
|
|
10099
|
+
}
|
|
10100
|
+
|
|
10101
|
+
function setReadingProgressEnabled(value) {
|
|
10102
|
+
if (state$6.readingProgressAvailable)
|
|
10103
|
+
state$6.readingProgressEnabled = Boolean(value);
|
|
10104
|
+
}
|
|
10070
10105
|
|
|
10071
10106
|
function setMode(value) {
|
|
10072
|
-
state$
|
|
10107
|
+
state$6.mode = value;
|
|
10073
10108
|
|
|
10074
10109
|
const htmlRoot = document.querySelector('html');
|
|
10075
10110
|
if (htmlRoot) {
|
|
@@ -10084,17 +10119,24 @@ function setMode(value) {
|
|
|
10084
10119
|
}
|
|
10085
10120
|
}
|
|
10086
10121
|
|
|
10087
|
-
function saveSettings() {
|
|
10088
|
-
|
|
10089
|
-
|
|
10090
|
-
|
|
10091
|
-
|
|
10092
|
-
|
|
10093
|
-
|
|
10094
|
-
|
|
10095
|
-
|
|
10096
|
-
|
|
10097
|
-
}
|
|
10122
|
+
function saveSettings() {
|
|
10123
|
+
try {
|
|
10124
|
+
localStorage.setItem(
|
|
10125
|
+
'readerSettings',
|
|
10126
|
+
JSON.stringify({
|
|
10127
|
+
textFont: textFont.value,
|
|
10128
|
+
fontSize: fontSize.value,
|
|
10129
|
+
columns: columns.value,
|
|
10130
|
+
mode: mode.value,
|
|
10131
|
+
...(readingProgressAvailable.value
|
|
10132
|
+
? { readingProgressEnabled: readingProgressEnabled.value }
|
|
10133
|
+
: {})
|
|
10134
|
+
})
|
|
10135
|
+
);
|
|
10136
|
+
} catch (error) {
|
|
10137
|
+
// Settings remain available for the current session.
|
|
10138
|
+
}
|
|
10139
|
+
}
|
|
10098
10140
|
|
|
10099
10141
|
const useReaderSettings = {
|
|
10100
10142
|
baseFont,
|
|
@@ -10108,8 +10150,11 @@ const useReaderSettings = {
|
|
|
10108
10150
|
setFontSize,
|
|
10109
10151
|
setBlocked,
|
|
10110
10152
|
mode,
|
|
10111
|
-
blocked,
|
|
10112
|
-
|
|
10153
|
+
blocked,
|
|
10154
|
+
readingProgressAvailable,
|
|
10155
|
+
readingProgressEnabled,
|
|
10156
|
+
setMode,
|
|
10157
|
+
setReadingProgressEnabled,
|
|
10113
10158
|
saveSettings,
|
|
10114
10159
|
|
|
10115
10160
|
bookTitle,
|
|
@@ -10125,9 +10170,9 @@ const _export_sfc = (sfc, props) => {
|
|
|
10125
10170
|
return target;
|
|
10126
10171
|
};
|
|
10127
10172
|
|
|
10128
|
-
const _sfc_main$
|
|
10173
|
+
const _sfc_main$t = {};
|
|
10129
10174
|
|
|
10130
|
-
const _hoisted_1$
|
|
10175
|
+
const _hoisted_1$r = {
|
|
10131
10176
|
fill: "none",
|
|
10132
10177
|
stroke: "currentColor",
|
|
10133
10178
|
viewBox: "0 0 20 22",
|
|
@@ -10135,7 +10180,7 @@ const _hoisted_1$q = {
|
|
|
10135
10180
|
};
|
|
10136
10181
|
|
|
10137
10182
|
function _sfc_render$c(_ctx, _cache) {
|
|
10138
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
10183
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$r, [...(_cache[0] || (_cache[0] = [
|
|
10139
10184
|
createBaseVNode("path", {
|
|
10140
10185
|
d: "M1 8L10 1L19 8V19C19 19.5304 18.7893 20.0391 18.4142 20.4142C18.0391 20.7893 17.5304 21 17 21H3C2.46957 21 1.96086 20.7893 1.58579 20.4142C1.21071 20.0391 1 19.5304 1 19V8Z",
|
|
10141
10186
|
"stroke-width": "2",
|
|
@@ -10150,11 +10195,11 @@ function _sfc_render$c(_ctx, _cache) {
|
|
|
10150
10195
|
}, null, -1)
|
|
10151
10196
|
]))]))
|
|
10152
10197
|
}
|
|
10153
|
-
const IconHome = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
10198
|
+
const IconHome = /*#__PURE__*/_export_sfc(_sfc_main$t, [['render',_sfc_render$c]]);
|
|
10154
10199
|
|
|
10155
|
-
const _sfc_main$
|
|
10200
|
+
const _sfc_main$s = {};
|
|
10156
10201
|
|
|
10157
|
-
const _hoisted_1$
|
|
10202
|
+
const _hoisted_1$q = {
|
|
10158
10203
|
fill: "none",
|
|
10159
10204
|
stroke: "currentColor",
|
|
10160
10205
|
viewBox: "0 0 24 24",
|
|
@@ -10162,7 +10207,7 @@ const _hoisted_1$p = {
|
|
|
10162
10207
|
};
|
|
10163
10208
|
|
|
10164
10209
|
function _sfc_render$b(_ctx, _cache) {
|
|
10165
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
10210
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$q, [...(_cache[0] || (_cache[0] = [
|
|
10166
10211
|
createBaseVNode("path", {
|
|
10167
10212
|
"stroke-linecap": "round",
|
|
10168
10213
|
"stroke-linejoin": "round",
|
|
@@ -10171,11 +10216,11 @@ function _sfc_render$b(_ctx, _cache) {
|
|
|
10171
10216
|
}, null, -1)
|
|
10172
10217
|
]))]))
|
|
10173
10218
|
}
|
|
10174
|
-
const IconClose = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
10219
|
+
const IconClose = /*#__PURE__*/_export_sfc(_sfc_main$s, [['render',_sfc_render$b]]);
|
|
10175
10220
|
|
|
10176
|
-
const _sfc_main$
|
|
10221
|
+
const _sfc_main$r = {};
|
|
10177
10222
|
|
|
10178
|
-
const _hoisted_1$
|
|
10223
|
+
const _hoisted_1$p = {
|
|
10179
10224
|
width: "24",
|
|
10180
10225
|
height: "19",
|
|
10181
10226
|
viewBox: "0 0 24 19",
|
|
@@ -10185,34 +10230,34 @@ const _hoisted_1$o = {
|
|
|
10185
10230
|
};
|
|
10186
10231
|
|
|
10187
10232
|
function _sfc_render$a(_ctx, _cache) {
|
|
10188
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
10233
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$p, [...(_cache[0] || (_cache[0] = [
|
|
10189
10234
|
createStaticVNode("<line x1=\"5\" y1=\"1.08447\" x2=\"1\" y2=\"1.08447\" stroke-width=\"2\" stroke-linecap=\"round\"></line><line x1=\"23\" y1=\"1.04248\" x2=\"11\" y2=\"1.04248\" stroke-width=\"2\" stroke-linecap=\"round\"></line><line x1=\"23\" y1=\"9.08447\" x2=\"14\" y2=\"9.08447\" stroke-width=\"2\" stroke-linecap=\"round\"></line><line x1=\"8\" y1=\"9.14905\" x2=\"4\" y2=\"9.14905\" stroke-width=\"2\" stroke-linecap=\"round\"></line><line x1=\"23\" y1=\"17.149\" x2=\"10.9993\" y2=\"17.149\" stroke-width=\"2\" stroke-linecap=\"round\"></line><line x1=\"5\" y1=\"17.2429\" x2=\"1\" y2=\"17.2429\" stroke-width=\"2\" stroke-linecap=\"round\"></line>", 6)
|
|
10190
10235
|
]))]))
|
|
10191
10236
|
}
|
|
10192
|
-
const IconSummary = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
10237
|
+
const IconSummary = /*#__PURE__*/_export_sfc(_sfc_main$r, [['render',_sfc_render$a]]);
|
|
10193
10238
|
|
|
10194
|
-
const state$
|
|
10239
|
+
const state$5 = reactive({
|
|
10195
10240
|
references: [],
|
|
10196
10241
|
reference: null
|
|
10197
10242
|
});
|
|
10198
10243
|
|
|
10199
|
-
const references = computed(() => state$
|
|
10244
|
+
const references = computed(() => state$5.references);
|
|
10200
10245
|
|
|
10201
10246
|
function setReferences(references) {
|
|
10202
|
-
state$
|
|
10247
|
+
state$5.references = references;
|
|
10203
10248
|
}
|
|
10204
10249
|
|
|
10205
|
-
const reference = computed(() => state$
|
|
10250
|
+
const reference = computed(() => state$5.reference);
|
|
10206
10251
|
|
|
10207
10252
|
function setHighlightedReference(reference) {
|
|
10208
|
-
state$
|
|
10253
|
+
state$5.reference = reference;
|
|
10209
10254
|
}
|
|
10210
10255
|
|
|
10211
10256
|
function applyReferences(contentRaw) {
|
|
10212
|
-
if (state$
|
|
10257
|
+
if (state$5.references.length === 0 || !contentRaw)
|
|
10213
10258
|
return contentRaw
|
|
10214
10259
|
|
|
10215
|
-
return state$
|
|
10260
|
+
return state$5.references.reduce((content, reference) => {
|
|
10216
10261
|
if (!content) return content
|
|
10217
10262
|
|
|
10218
10263
|
if (content.includes(reference.cit)) {
|
|
@@ -10238,11 +10283,11 @@ function applyReference(event) {
|
|
|
10238
10283
|
const target = classList.find(item => item.startsWith('reference-'));
|
|
10239
10284
|
|
|
10240
10285
|
if (target) {
|
|
10241
|
-
const ref = state$
|
|
10286
|
+
const ref = state$5.references.find(
|
|
10242
10287
|
item => target && item.cit.replaceAll(' ', '') === target.replace('reference-', '')
|
|
10243
10288
|
);
|
|
10244
10289
|
if (ref) {
|
|
10245
|
-
state$
|
|
10290
|
+
state$5.reference = ref;
|
|
10246
10291
|
}
|
|
10247
10292
|
}
|
|
10248
10293
|
|
|
@@ -10257,25 +10302,25 @@ const useReferences = {
|
|
|
10257
10302
|
applyReferences,
|
|
10258
10303
|
};
|
|
10259
10304
|
|
|
10260
|
-
const state$
|
|
10305
|
+
const state$4 = reactive({
|
|
10261
10306
|
footnotes: [],
|
|
10262
10307
|
showFootnotes: false,
|
|
10263
10308
|
footnote: null
|
|
10264
10309
|
});
|
|
10265
10310
|
|
|
10266
|
-
const footnotes = computed(() => state$
|
|
10311
|
+
const footnotes = computed(() => state$4.footnotes);
|
|
10267
10312
|
function setFootnotes(footnotes) {
|
|
10268
|
-
state$
|
|
10313
|
+
state$4.footnotes = footnotes;
|
|
10269
10314
|
}
|
|
10270
10315
|
|
|
10271
|
-
const showFootnotes = computed(() => state$
|
|
10316
|
+
const showFootnotes = computed(() => state$4.showFootnotes);
|
|
10272
10317
|
function setShowFootnotes(value) {
|
|
10273
|
-
state$
|
|
10318
|
+
state$4.showFootnotes = value;
|
|
10274
10319
|
}
|
|
10275
10320
|
|
|
10276
|
-
const footnote = computed(() => state$
|
|
10321
|
+
const footnote = computed(() => state$4.footnote);
|
|
10277
10322
|
function setHighlightedFootnote(footnote) {
|
|
10278
|
-
state$
|
|
10323
|
+
state$4.footnote = footnote;
|
|
10279
10324
|
}
|
|
10280
10325
|
|
|
10281
10326
|
function applyFootnote(event) {
|
|
@@ -10289,9 +10334,9 @@ function applyFootnote(event) {
|
|
|
10289
10334
|
);
|
|
10290
10335
|
|
|
10291
10336
|
if (footnoteTarget) {
|
|
10292
|
-
const ref = state$
|
|
10337
|
+
const ref = state$4.footnotes.find(item => item.id === footnoteTarget);
|
|
10293
10338
|
if (ref) {
|
|
10294
|
-
state$
|
|
10339
|
+
state$4.footnote = ref;
|
|
10295
10340
|
}
|
|
10296
10341
|
}
|
|
10297
10342
|
}
|
|
@@ -10306,29 +10351,36 @@ const useFootnotes = {
|
|
|
10306
10351
|
showFootnotes
|
|
10307
10352
|
};
|
|
10308
10353
|
|
|
10309
|
-
const state$
|
|
10310
|
-
summary: null,
|
|
10311
|
-
content: null
|
|
10354
|
+
const state$3 = reactive({
|
|
10355
|
+
summary: null,
|
|
10356
|
+
content: null,
|
|
10357
|
+
activeChapter: 0
|
|
10312
10358
|
});
|
|
10313
10359
|
|
|
10314
|
-
const content = computed(() => state$
|
|
10315
|
-
const summary = computed(() => state$
|
|
10316
|
-
const context = computed(() => {
|
|
10317
|
-
const
|
|
10318
|
-
|
|
10319
|
-
|
|
10320
|
-
|
|
10321
|
-
|
|
10322
|
-
|
|
10323
|
-
|
|
10324
|
-
|
|
10325
|
-
|
|
10326
|
-
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
|
|
10331
|
-
}
|
|
10360
|
+
const content = computed(() => state$3.content);
|
|
10361
|
+
const summary = computed(() => state$3.summary);
|
|
10362
|
+
const context = computed(() => {
|
|
10363
|
+
const chapters = state$3.summary || [];
|
|
10364
|
+
const linkedChapter = chapters.findIndex(
|
|
10365
|
+
chapter => window.location.href.includes(chapter.link)
|
|
10366
|
+
);
|
|
10367
|
+
const current = linkedChapter >= 0 ? linkedChapter : state$3.activeChapter;
|
|
10368
|
+
return {
|
|
10369
|
+
chapter: chapters[current],
|
|
10370
|
+
surround: {
|
|
10371
|
+
before: current - 1 >= 0
|
|
10372
|
+
? chapters[current - 1]
|
|
10373
|
+
: null,
|
|
10374
|
+
after: current + 1 < chapters.length
|
|
10375
|
+
? chapters[current + 1]
|
|
10376
|
+
: null,
|
|
10377
|
+
}
|
|
10378
|
+
}
|
|
10379
|
+
});
|
|
10380
|
+
const contextId = computed(() => {
|
|
10381
|
+
const chapter = context.value.chapter;
|
|
10382
|
+
return chapter?.file || chapter?.link || chapter?.title || window.location.pathname
|
|
10383
|
+
});
|
|
10332
10384
|
|
|
10333
10385
|
async function initContent(contentString, contentWrapper) {
|
|
10334
10386
|
const { setReferences, applyReferences } = useReferences;
|
|
@@ -10339,7 +10391,7 @@ async function initContent(contentString, contentWrapper) {
|
|
|
10339
10391
|
: null;
|
|
10340
10392
|
|
|
10341
10393
|
if (content?.summary)
|
|
10342
|
-
state$
|
|
10394
|
+
state$3.summary = content.summary;
|
|
10343
10395
|
|
|
10344
10396
|
if (content?.references)
|
|
10345
10397
|
setReferences(content.references);
|
|
@@ -10353,7 +10405,7 @@ async function initContent(contentString, contentWrapper) {
|
|
|
10353
10405
|
const newContent = content.applyReferences
|
|
10354
10406
|
? applyReferences(text)
|
|
10355
10407
|
: text;
|
|
10356
|
-
state$
|
|
10408
|
+
state$3.content = newContent;
|
|
10357
10409
|
|
|
10358
10410
|
// else if content comes from slot, apply references to slot
|
|
10359
10411
|
} else {
|
|
@@ -10378,14 +10430,16 @@ async function getContent(location) {
|
|
|
10378
10430
|
return text
|
|
10379
10431
|
} catch (err) {
|
|
10380
10432
|
console.log({ err });
|
|
10381
|
-
state$
|
|
10433
|
+
state$3.content = 'Ops, não foi possível carregar o arquivo solicitado.';
|
|
10382
10434
|
}
|
|
10383
10435
|
}
|
|
10384
10436
|
|
|
10385
|
-
function applyContent(text) {
|
|
10386
|
-
const { applyReferences } = useReferences;
|
|
10387
|
-
const newContent = applyReferences(text);
|
|
10388
|
-
|
|
10437
|
+
function applyContent(text, chapter = null) {
|
|
10438
|
+
const { applyReferences } = useReferences;
|
|
10439
|
+
const newContent = applyReferences(text);
|
|
10440
|
+
if (chapter)
|
|
10441
|
+
state$3.activeChapter = state$3.summary.findIndex(item => item === chapter);
|
|
10442
|
+
state$3.content = newContent;
|
|
10389
10443
|
}
|
|
10390
10444
|
|
|
10391
10445
|
function listenToClicks(contentWrapper) {
|
|
@@ -10410,11 +10464,12 @@ const useTextContent = {
|
|
|
10410
10464
|
initContent,
|
|
10411
10465
|
getContent,
|
|
10412
10466
|
applyContent,
|
|
10413
|
-
listenToClicks,
|
|
10414
|
-
context
|
|
10467
|
+
listenToClicks,
|
|
10468
|
+
context,
|
|
10469
|
+
contextId
|
|
10415
10470
|
};
|
|
10416
10471
|
|
|
10417
|
-
const state$
|
|
10472
|
+
const state$2 = reactive({
|
|
10418
10473
|
totalPages: 1
|
|
10419
10474
|
});
|
|
10420
10475
|
|
|
@@ -10424,20 +10479,20 @@ function estimate(viewport, content) {
|
|
|
10424
10479
|
const { width: contentWidth } = content.value.getBoundingClientRect();
|
|
10425
10480
|
|
|
10426
10481
|
if (contentWidth > viewportWidth) {
|
|
10427
|
-
state$
|
|
10482
|
+
state$2.totalPages = Math.ceil(contentWidth / viewportWidth);
|
|
10428
10483
|
return Math.ceil(contentWidth / viewportWidth)
|
|
10429
10484
|
|
|
10430
10485
|
} else {
|
|
10431
|
-
state$
|
|
10486
|
+
state$2.totalPages = 1;
|
|
10432
10487
|
return 1
|
|
10433
10488
|
}
|
|
10434
10489
|
} else {
|
|
10435
|
-
state$
|
|
10490
|
+
state$2.totalPages = 1;
|
|
10436
10491
|
return 1
|
|
10437
10492
|
}
|
|
10438
10493
|
}
|
|
10439
10494
|
|
|
10440
|
-
const totalPages$1 = computed(() => state$
|
|
10495
|
+
const totalPages$1 = computed(() => state$2.totalPages);
|
|
10441
10496
|
|
|
10442
10497
|
const useEstimatePages = {
|
|
10443
10498
|
totalPages: totalPages$1,
|
|
@@ -10461,6 +10516,180 @@ const useBrowser = {
|
|
|
10461
10516
|
isApple
|
|
10462
10517
|
};
|
|
10463
10518
|
|
|
10519
|
+
const STORAGE_KEY = 'paginar:reading-progress:v1';
|
|
10520
|
+
|
|
10521
|
+
const state$1 = reactive({
|
|
10522
|
+
bookId: null,
|
|
10523
|
+
contextKey: null,
|
|
10524
|
+
restored: false,
|
|
10525
|
+
suspended: false,
|
|
10526
|
+
currentPage: 1,
|
|
10527
|
+
totalPages: 1
|
|
10528
|
+
});
|
|
10529
|
+
|
|
10530
|
+
const available = computed(() => useReaderSettings.readingProgressAvailable.value);
|
|
10531
|
+
const enabled = computed(() => useReaderSettings.readingProgressEnabled.value);
|
|
10532
|
+
|
|
10533
|
+
function init$1(settingsString, fallbackTitle) {
|
|
10534
|
+
let settings = null;
|
|
10535
|
+
state$1.bookId = null;
|
|
10536
|
+
state$1.contextKey = null;
|
|
10537
|
+
state$1.restored = false;
|
|
10538
|
+
|
|
10539
|
+
try {
|
|
10540
|
+
settings = settingsString ? JSON.parse(settingsString) : null;
|
|
10541
|
+
} catch (error) {
|
|
10542
|
+
return
|
|
10543
|
+
}
|
|
10544
|
+
|
|
10545
|
+
if (!settings?.readingProgress ||
|
|
10546
|
+
typeof settings.readingProgress !== 'object' ||
|
|
10547
|
+
Array.isArray(settings.readingProgress)
|
|
10548
|
+
)
|
|
10549
|
+
return
|
|
10550
|
+
|
|
10551
|
+
const configuredId = settings.readingProgress.id;
|
|
10552
|
+
state$1.bookId = typeof configuredId === 'string' && configuredId.trim()
|
|
10553
|
+
? configuredId.trim()
|
|
10554
|
+
: fallbackTitle || window.location.pathname;
|
|
10555
|
+
}
|
|
10556
|
+
|
|
10557
|
+
function getContextKey() {
|
|
10558
|
+
if (!state$1.bookId)
|
|
10559
|
+
return null
|
|
10560
|
+
|
|
10561
|
+
const chapter = useTextContent.contextId.value || window.location.pathname;
|
|
10562
|
+
return `${state$1.bookId}::${chapter}`
|
|
10563
|
+
}
|
|
10564
|
+
|
|
10565
|
+
function readStore() {
|
|
10566
|
+
try {
|
|
10567
|
+
const saved = JSON.parse(localStorage.getItem(STORAGE_KEY));
|
|
10568
|
+
return saved?.version === 1 && saved.entries && typeof saved.entries === 'object'
|
|
10569
|
+
? saved
|
|
10570
|
+
: { version: 1, entries: {} }
|
|
10571
|
+
} catch (error) {
|
|
10572
|
+
return { version: 1, entries: {} }
|
|
10573
|
+
}
|
|
10574
|
+
}
|
|
10575
|
+
|
|
10576
|
+
function writeStore(store) {
|
|
10577
|
+
try {
|
|
10578
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(store));
|
|
10579
|
+
} catch (error) {
|
|
10580
|
+
// Reading continues normally when storage is unavailable.
|
|
10581
|
+
}
|
|
10582
|
+
}
|
|
10583
|
+
|
|
10584
|
+
function percentageFor(page, total) {
|
|
10585
|
+
if (total <= 1)
|
|
10586
|
+
return 0
|
|
10587
|
+
|
|
10588
|
+
return Math.min(1, Math.max(0, (page - 1) / (total - 1)))
|
|
10589
|
+
}
|
|
10590
|
+
|
|
10591
|
+
function pageFor(percentage, total) {
|
|
10592
|
+
return Math.min(total, Math.max(1, Math.round(percentage * (total - 1)) + 1))
|
|
10593
|
+
}
|
|
10594
|
+
|
|
10595
|
+
function repaginate(page, previousTotal, nextTotal) {
|
|
10596
|
+
const key = getContextKey();
|
|
10597
|
+
if (!available.value || !enabled.value || !state$1.restored ||
|
|
10598
|
+
!key || key !== state$1.contextKey || previousTotal < 1 || nextTotal < 1
|
|
10599
|
+
)
|
|
10600
|
+
return null
|
|
10601
|
+
|
|
10602
|
+
const percentage = percentageFor(page, previousTotal);
|
|
10603
|
+
return pageFor(percentage, nextTotal)
|
|
10604
|
+
}
|
|
10605
|
+
|
|
10606
|
+
function save(page, total) {
|
|
10607
|
+
const key = getContextKey();
|
|
10608
|
+
if (!available.value || !enabled.value || !state$1.restored || state$1.suspended ||
|
|
10609
|
+
!key || key !== state$1.contextKey || total < 1
|
|
10610
|
+
)
|
|
10611
|
+
return
|
|
10612
|
+
|
|
10613
|
+
const store = readStore();
|
|
10614
|
+
store.entries[key] = percentageFor(page, total);
|
|
10615
|
+
writeStore(store);
|
|
10616
|
+
}
|
|
10617
|
+
|
|
10618
|
+
function suspend() {
|
|
10619
|
+
state$1.suspended = true;
|
|
10620
|
+
}
|
|
10621
|
+
|
|
10622
|
+
function resume() {
|
|
10623
|
+
state$1.suspended = false;
|
|
10624
|
+
}
|
|
10625
|
+
|
|
10626
|
+
function remove() {
|
|
10627
|
+
const key = getContextKey();
|
|
10628
|
+
if (!key)
|
|
10629
|
+
return
|
|
10630
|
+
|
|
10631
|
+
const store = readStore();
|
|
10632
|
+
delete store.entries[key];
|
|
10633
|
+
writeStore(store);
|
|
10634
|
+
}
|
|
10635
|
+
|
|
10636
|
+
function sync(page, total, allowRestore = false) {
|
|
10637
|
+
state$1.currentPage = page;
|
|
10638
|
+
state$1.totalPages = total;
|
|
10639
|
+
const key = getContextKey();
|
|
10640
|
+
if (!available.value || !enabled.value || !key)
|
|
10641
|
+
return
|
|
10642
|
+
|
|
10643
|
+
if (state$1.contextKey !== key) {
|
|
10644
|
+
state$1.contextKey = key;
|
|
10645
|
+
state$1.restored = false;
|
|
10646
|
+
}
|
|
10647
|
+
|
|
10648
|
+
if (!state$1.restored) {
|
|
10649
|
+
if (!allowRestore)
|
|
10650
|
+
return
|
|
10651
|
+
|
|
10652
|
+
const percentage = readStore().entries[key];
|
|
10653
|
+
if (Number.isFinite(percentage) && percentage >= 0 && percentage <= 1) {
|
|
10654
|
+
if (total <= 1 && percentage > 0)
|
|
10655
|
+
return
|
|
10656
|
+
|
|
10657
|
+
state$1.restored = true;
|
|
10658
|
+
const targetPage = pageFor(percentage, total);
|
|
10659
|
+
if (targetPage !== page)
|
|
10660
|
+
return targetPage
|
|
10661
|
+
return
|
|
10662
|
+
}
|
|
10663
|
+
|
|
10664
|
+
state$1.restored = true;
|
|
10665
|
+
}
|
|
10666
|
+
|
|
10667
|
+
save(page, total);
|
|
10668
|
+
}
|
|
10669
|
+
|
|
10670
|
+
function setEnabled(value) {
|
|
10671
|
+
useReaderSettings.setReadingProgressEnabled(value);
|
|
10672
|
+
state$1.restored = true;
|
|
10673
|
+
|
|
10674
|
+
if (value)
|
|
10675
|
+
save(state$1.currentPage, state$1.totalPages);
|
|
10676
|
+
else
|
|
10677
|
+
remove();
|
|
10678
|
+
}
|
|
10679
|
+
|
|
10680
|
+
const useReadingProgress = {
|
|
10681
|
+
available,
|
|
10682
|
+
enabled,
|
|
10683
|
+
init: init$1,
|
|
10684
|
+
remove,
|
|
10685
|
+
repaginate,
|
|
10686
|
+
resume,
|
|
10687
|
+
save,
|
|
10688
|
+
setEnabled,
|
|
10689
|
+
suspend,
|
|
10690
|
+
sync
|
|
10691
|
+
};
|
|
10692
|
+
|
|
10464
10693
|
const state = reactive({
|
|
10465
10694
|
currentPage: 1,
|
|
10466
10695
|
nextTry: 0,
|
|
@@ -10471,27 +10700,30 @@ const state = reactive({
|
|
|
10471
10700
|
const currentPage = computed(() => state.currentPage);
|
|
10472
10701
|
const totalPages = computed(() => useEstimatePages.totalPages.value);
|
|
10473
10702
|
|
|
10474
|
-
function init(viewport, content) {
|
|
10475
|
-
useEstimatePages.estimate(viewport, content);
|
|
10703
|
+
function init(viewport, content, estimate = null) {
|
|
10704
|
+
const updatePages = estimate || (() => useEstimatePages.estimate(viewport, content));
|
|
10705
|
+
// Measure immediately, but let the parent restore progress only after child
|
|
10706
|
+
// controls (notably the page slider) have finished their mount cycle.
|
|
10707
|
+
useEstimatePages.estimate(viewport, content);
|
|
10476
10708
|
|
|
10477
10709
|
// check if there is a query string for oring, and
|
|
10478
10710
|
// if previews chapter was the next one. If so,
|
|
10479
10711
|
// start from the end, as we are coming backwards
|
|
10480
10712
|
const urlParams = new URLSearchParams(window.location.search);
|
|
10481
10713
|
const origin = urlParams.get('origin');
|
|
10482
|
-
if (origin && origin === 'next') {
|
|
10483
|
-
setTimeout(() => {
|
|
10484
|
-
|
|
10485
|
-
}, 200);
|
|
10714
|
+
if (origin && origin === 'next') {
|
|
10715
|
+
setTimeout(() => {
|
|
10716
|
+
set(totalPages.value);
|
|
10717
|
+
}, 200);
|
|
10486
10718
|
}
|
|
10487
10719
|
|
|
10488
10720
|
if (!useBrowser.isApple && !useBrowser.isSafari) {
|
|
10489
10721
|
addEventListener('wheel', onWheel);
|
|
10490
10722
|
}
|
|
10491
10723
|
|
|
10492
|
-
setInterval(() => {
|
|
10493
|
-
|
|
10494
|
-
}, 5000);
|
|
10724
|
+
setInterval(() => {
|
|
10725
|
+
updatePages();
|
|
10726
|
+
}, 5000);
|
|
10495
10727
|
}
|
|
10496
10728
|
|
|
10497
10729
|
// when resizing the viewport, totalPages change
|
|
@@ -10505,8 +10737,8 @@ watch(totalPages, () => {
|
|
|
10505
10737
|
// navigate by increase/decrease value
|
|
10506
10738
|
function next(usingScroll = false) {
|
|
10507
10739
|
if (!useReaderSettings.blocked.value) {
|
|
10508
|
-
if ((state.currentPage + 1) <= totalPages.value) {
|
|
10509
|
-
state.currentPage
|
|
10740
|
+
if ((state.currentPage + 1) <= totalPages.value) {
|
|
10741
|
+
set(state.currentPage + 1);
|
|
10510
10742
|
} else {
|
|
10511
10743
|
// prevent going too fast to next chapter on
|
|
10512
10744
|
// stronger scroll
|
|
@@ -10539,8 +10771,8 @@ function onWheel(event) {
|
|
|
10539
10771
|
}
|
|
10540
10772
|
function prev(usingScroll = false) {
|
|
10541
10773
|
if (!useReaderSettings.blocked.value) {
|
|
10542
|
-
if ((state.currentPage - 1) > 0) {
|
|
10543
|
-
state.currentPage
|
|
10774
|
+
if ((state.currentPage - 1) > 0) {
|
|
10775
|
+
set(state.currentPage - 1);
|
|
10544
10776
|
} else {
|
|
10545
10777
|
// prevent going too fast to prev chapter on
|
|
10546
10778
|
// stronger scroll
|
|
@@ -10565,9 +10797,11 @@ onKeyStroke('ArrowLeft', (e) => {
|
|
|
10565
10797
|
});
|
|
10566
10798
|
|
|
10567
10799
|
// navigate to specific page
|
|
10568
|
-
function set(val) {
|
|
10569
|
-
|
|
10570
|
-
|
|
10800
|
+
function set(val) {
|
|
10801
|
+
const page = Math.min(totalPages.value, Math.max(1, Number(val) || 1));
|
|
10802
|
+
state.currentPage = page;
|
|
10803
|
+
useReadingProgress.save(page, totalPages.value);
|
|
10804
|
+
}
|
|
10571
10805
|
|
|
10572
10806
|
const usePagination = {
|
|
10573
10807
|
currentPage,
|
|
@@ -10578,14 +10812,14 @@ const usePagination = {
|
|
|
10578
10812
|
set
|
|
10579
10813
|
};
|
|
10580
10814
|
|
|
10581
|
-
const _hoisted_1$
|
|
10582
|
-
const _hoisted_2$
|
|
10815
|
+
const _hoisted_1$o = ["role"];
|
|
10816
|
+
const _hoisted_2$c = { class: "summary-menu-dropdown-item-title" };
|
|
10583
10817
|
const _hoisted_3$4 = {
|
|
10584
10818
|
key: 0,
|
|
10585
10819
|
class: "summary-menu-dropdown-item-author"
|
|
10586
10820
|
};
|
|
10587
10821
|
|
|
10588
|
-
const _sfc_main$
|
|
10822
|
+
const _sfc_main$q = {
|
|
10589
10823
|
__name: 'SummaryDropdown',
|
|
10590
10824
|
setup(__props) {
|
|
10591
10825
|
|
|
@@ -10593,7 +10827,7 @@ const { summary } = useTextContent;
|
|
|
10593
10827
|
|
|
10594
10828
|
async function getChapter(item) {
|
|
10595
10829
|
const text = await useTextContent.getContent(item.file);
|
|
10596
|
-
useTextContent.applyContent(text);
|
|
10830
|
+
useTextContent.applyContent(text, item);
|
|
10597
10831
|
usePagination.set(1);
|
|
10598
10832
|
}
|
|
10599
10833
|
|
|
@@ -10616,7 +10850,7 @@ return (_ctx, _cache) => {
|
|
|
10616
10850
|
onClick: $event => (item.file ? getChapter(item) : null)
|
|
10617
10851
|
}, {
|
|
10618
10852
|
default: withCtx(() => [
|
|
10619
|
-
createBaseVNode("span", _hoisted_2$
|
|
10853
|
+
createBaseVNode("span", _hoisted_2$c, toDisplayString(item.title), 1),
|
|
10620
10854
|
(item.author)
|
|
10621
10855
|
? (openBlock(), createElementBlock("span", _hoisted_3$4, toDisplayString(item.author), 1))
|
|
10622
10856
|
: createCommentVNode("", true)
|
|
@@ -10626,19 +10860,19 @@ return (_ctx, _cache) => {
|
|
|
10626
10860
|
}), 128)),
|
|
10627
10861
|
renderSlot(_ctx.$slots, "summaryBottom")
|
|
10628
10862
|
])
|
|
10629
|
-
], 8, _hoisted_1$
|
|
10863
|
+
], 8, _hoisted_1$o))
|
|
10630
10864
|
}
|
|
10631
10865
|
}
|
|
10632
10866
|
|
|
10633
10867
|
};
|
|
10634
10868
|
|
|
10635
|
-
const _hoisted_1$
|
|
10636
|
-
const _hoisted_2$
|
|
10869
|
+
const _hoisted_1$n = { class: "flex" };
|
|
10870
|
+
const _hoisted_2$b = ["href"];
|
|
10637
10871
|
const _hoisted_3$3 = { class: "position-relative" };
|
|
10638
10872
|
const _hoisted_4$2 = ["aria-expanded"];
|
|
10639
10873
|
|
|
10640
10874
|
|
|
10641
|
-
const _sfc_main$
|
|
10875
|
+
const _sfc_main$p = {
|
|
10642
10876
|
__name: 'SummaryButton',
|
|
10643
10877
|
setup(__props) {
|
|
10644
10878
|
|
|
@@ -10668,7 +10902,7 @@ return (_ctx, _cache) => {
|
|
|
10668
10902
|
ref: button,
|
|
10669
10903
|
class: "relative"
|
|
10670
10904
|
}, [
|
|
10671
|
-
createBaseVNode("div", _hoisted_1$
|
|
10905
|
+
createBaseVNode("div", _hoisted_1$n, [
|
|
10672
10906
|
(unref(homeUrl))
|
|
10673
10907
|
? (openBlock(), createElementBlock("a", {
|
|
10674
10908
|
key: 0,
|
|
@@ -10678,7 +10912,7 @@ return (_ctx, _cache) => {
|
|
|
10678
10912
|
class: "hidden md:flex items-center border p-3 shadow mr-3 border-white text-white"
|
|
10679
10913
|
}, [
|
|
10680
10914
|
createVNode(IconHome, { class: "w-6 h-6" })
|
|
10681
|
-
], 8, _hoisted_2$
|
|
10915
|
+
], 8, _hoisted_2$b))
|
|
10682
10916
|
: createCommentVNode("", true),
|
|
10683
10917
|
createBaseVNode("div", _hoisted_3$3, [
|
|
10684
10918
|
createBaseVNode("button", {
|
|
@@ -10706,7 +10940,7 @@ return (_ctx, _cache) => {
|
|
|
10706
10940
|
}, {
|
|
10707
10941
|
default: withCtx(() => [
|
|
10708
10942
|
(show.value)
|
|
10709
|
-
? (openBlock(), createBlock(_sfc_main$
|
|
10943
|
+
? (openBlock(), createBlock(_sfc_main$q, { key: 0 }, {
|
|
10710
10944
|
summaryTop: withCtx(() => [
|
|
10711
10945
|
renderSlot(_ctx.$slots, "summaryTop")
|
|
10712
10946
|
]),
|
|
@@ -10727,9 +10961,9 @@ return (_ctx, _cache) => {
|
|
|
10727
10961
|
|
|
10728
10962
|
};
|
|
10729
10963
|
|
|
10730
|
-
const _sfc_main$
|
|
10964
|
+
const _sfc_main$o = {};
|
|
10731
10965
|
|
|
10732
|
-
const _hoisted_1$
|
|
10966
|
+
const _hoisted_1$m = {
|
|
10733
10967
|
fill: "none",
|
|
10734
10968
|
stroke: "currentColor",
|
|
10735
10969
|
viewBox: "0 0 24 24",
|
|
@@ -10737,7 +10971,7 @@ const _hoisted_1$l = {
|
|
|
10737
10971
|
};
|
|
10738
10972
|
|
|
10739
10973
|
function _sfc_render$9(_ctx, _cache) {
|
|
10740
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
10974
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$m, [...(_cache[0] || (_cache[0] = [
|
|
10741
10975
|
createBaseVNode("path", {
|
|
10742
10976
|
"stroke-linecap": "round",
|
|
10743
10977
|
"stroke-linejoin": "round",
|
|
@@ -10746,11 +10980,11 @@ function _sfc_render$9(_ctx, _cache) {
|
|
|
10746
10980
|
}, null, -1)
|
|
10747
10981
|
]))]))
|
|
10748
10982
|
}
|
|
10749
|
-
const IconThreeDots = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
10983
|
+
const IconThreeDots = /*#__PURE__*/_export_sfc(_sfc_main$o, [['render',_sfc_render$9]]);
|
|
10750
10984
|
|
|
10751
|
-
const _sfc_main$
|
|
10985
|
+
const _sfc_main$n = {};
|
|
10752
10986
|
|
|
10753
|
-
const _hoisted_1$
|
|
10987
|
+
const _hoisted_1$l = {
|
|
10754
10988
|
fill: "none",
|
|
10755
10989
|
stroke: "currentColor",
|
|
10756
10990
|
viewBox: "0 0 24 24",
|
|
@@ -10758,7 +10992,7 @@ const _hoisted_1$k = {
|
|
|
10758
10992
|
};
|
|
10759
10993
|
|
|
10760
10994
|
function _sfc_render$8(_ctx, _cache) {
|
|
10761
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
10995
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$l, [...(_cache[0] || (_cache[0] = [
|
|
10762
10996
|
createBaseVNode("path", {
|
|
10763
10997
|
"stroke-linecap": "round",
|
|
10764
10998
|
"stroke-linejoin": "round",
|
|
@@ -10767,11 +11001,11 @@ function _sfc_render$8(_ctx, _cache) {
|
|
|
10767
11001
|
}, null, -1)
|
|
10768
11002
|
]))]))
|
|
10769
11003
|
}
|
|
10770
|
-
const IconExpand = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11004
|
+
const IconExpand = /*#__PURE__*/_export_sfc(_sfc_main$n, [['render',_sfc_render$8]]);
|
|
10771
11005
|
|
|
10772
|
-
const _sfc_main$
|
|
11006
|
+
const _sfc_main$m = {};
|
|
10773
11007
|
|
|
10774
|
-
const _hoisted_1$
|
|
11008
|
+
const _hoisted_1$k = {
|
|
10775
11009
|
fill: "none",
|
|
10776
11010
|
stroke: "currentColor",
|
|
10777
11011
|
viewBox: "0 0 24 24",
|
|
@@ -10779,7 +11013,7 @@ const _hoisted_1$j = {
|
|
|
10779
11013
|
};
|
|
10780
11014
|
|
|
10781
11015
|
function _sfc_render$7(_ctx, _cache) {
|
|
10782
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11016
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$k, [...(_cache[0] || (_cache[0] = [
|
|
10783
11017
|
createBaseVNode("path", {
|
|
10784
11018
|
"stroke-linecap": "round",
|
|
10785
11019
|
"stroke-linejoin": "round",
|
|
@@ -10794,11 +11028,11 @@ function _sfc_render$7(_ctx, _cache) {
|
|
|
10794
11028
|
}, null, -1)
|
|
10795
11029
|
]))]))
|
|
10796
11030
|
}
|
|
10797
|
-
const IconEye = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11031
|
+
const IconEye = /*#__PURE__*/_export_sfc(_sfc_main$m, [['render',_sfc_render$7]]);
|
|
10798
11032
|
|
|
10799
|
-
const _sfc_main$
|
|
11033
|
+
const _sfc_main$l = {};
|
|
10800
11034
|
|
|
10801
|
-
const _hoisted_1$
|
|
11035
|
+
const _hoisted_1$j = {
|
|
10802
11036
|
fill: "none",
|
|
10803
11037
|
stroke: "currentColor",
|
|
10804
11038
|
viewBox: "0 0 24 24",
|
|
@@ -10806,7 +11040,7 @@ const _hoisted_1$i = {
|
|
|
10806
11040
|
};
|
|
10807
11041
|
|
|
10808
11042
|
function _sfc_render$6(_ctx, _cache) {
|
|
10809
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11043
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$j, [...(_cache[0] || (_cache[0] = [
|
|
10810
11044
|
createBaseVNode("path", {
|
|
10811
11045
|
"stroke-linecap": "round",
|
|
10812
11046
|
"stroke-linejoin": "round",
|
|
@@ -10815,43 +11049,43 @@ function _sfc_render$6(_ctx, _cache) {
|
|
|
10815
11049
|
}, null, -1)
|
|
10816
11050
|
]))]))
|
|
10817
11051
|
}
|
|
10818
|
-
const IconFootnote = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11052
|
+
const IconFootnote = /*#__PURE__*/_export_sfc(_sfc_main$l, [['render',_sfc_render$6]]);
|
|
10819
11053
|
|
|
10820
|
-
const _sfc_main$
|
|
11054
|
+
const _sfc_main$k = {};
|
|
10821
11055
|
|
|
10822
|
-
const _hoisted_1$
|
|
11056
|
+
const _hoisted_1$i = {
|
|
10823
11057
|
viewBox: "0 0 341.5 441.2",
|
|
10824
11058
|
fill: "currentColor"
|
|
10825
11059
|
};
|
|
10826
11060
|
|
|
10827
11061
|
function _sfc_render$5(_ctx, _cache) {
|
|
10828
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11062
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$i, [...(_cache[0] || (_cache[0] = [
|
|
10829
11063
|
createStaticVNode("<rect data-v-acadaaca=\"\" x=\"73.2\" y=\"143.7\" width=\"195.2\" height=\"20\"></rect><rect data-v-acadaaca=\"\" x=\"73.2\" y=\"82.7\" width=\"195.2\" height=\"20\"></rect><rect data-v-acadaaca=\"\" x=\"73.2\" y=\"203.7\" width=\"195.2\" height=\"20\"></rect><rect data-v-acadaaca=\"\" x=\"73.2\" y=\"263.7\" width=\"195.2\" height=\"20\"></rect><rect data-v-acadaaca=\"\" x=\"73.2\" y=\"319\" width=\"195.2\" height=\"20\"></rect><rect data-v-acadaaca=\"\" x=\"0\" y=\"-0.6\" width=\"332.3\" height=\"15\"></rect><rect data-v-acadaaca=\"\" x=\"0\" y=\"426.2\" width=\"332.3\" height=\"15\"></rect><rect data-v-acadaaca=\"\" x=\"-209.4\" y=\"216.2\" transform=\"matrix(6.123234e-17 -1 1 6.123234e-17 -216.2339 231.2339)\" width=\"433.7\" height=\"15\"></rect><rect data-v-acadaaca=\"\" x=\"108\" y=\"211.9\" transform=\"matrix(6.123234e-17 -1 1 6.123234e-17 105.4808 544.1859)\" width=\"433.7\" height=\"15\"></rect>", 9)
|
|
10830
11064
|
]))]))
|
|
10831
11065
|
}
|
|
10832
|
-
const SingleColumn = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11066
|
+
const SingleColumn = /*#__PURE__*/_export_sfc(_sfc_main$k, [['render',_sfc_render$5]]);
|
|
10833
11067
|
|
|
10834
|
-
const _sfc_main$
|
|
11068
|
+
const _sfc_main$j = {};
|
|
10835
11069
|
|
|
10836
|
-
const _hoisted_1$
|
|
11070
|
+
const _hoisted_1$h = {
|
|
10837
11071
|
viewBox: "0 0 653 441.2",
|
|
10838
11072
|
fill: "currentColor"
|
|
10839
11073
|
};
|
|
10840
11074
|
|
|
10841
11075
|
function _sfc_render$4(_ctx, _cache) {
|
|
10842
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11076
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$h, [...(_cache[0] || (_cache[0] = [
|
|
10843
11077
|
createStaticVNode("<rect x=\"73.2\" y=\"143.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"73.2\" y=\"82.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"73.2\" y=\"203.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"73.2\" y=\"263.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"73.2\" y=\"319\" width=\"195.2\" height=\"20\"></rect><rect x=\"384.7\" y=\"143.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"384.7\" y=\"82.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"384.7\" y=\"203.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"384.7\" y=\"263.7\" width=\"195.2\" height=\"20\"></rect><rect x=\"384.7\" y=\"319\" width=\"195.2\" height=\"20\"></rect><path d=\"M0-0.6v7.5v7.5v411.8v14.4v0.6h653v-5v-10V14.4V2.5v-3.1H0z M638,426.2H15V14.4h623V426.2z\"></path>", 11)
|
|
10844
11078
|
]))]))
|
|
10845
11079
|
}
|
|
10846
|
-
const DoubleColumn = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11080
|
+
const DoubleColumn = /*#__PURE__*/_export_sfc(_sfc_main$j, [['render',_sfc_render$4]]);
|
|
10847
11081
|
|
|
10848
|
-
const _hoisted_1$
|
|
11082
|
+
const _hoisted_1$g = {
|
|
10849
11083
|
id: "columns-menu",
|
|
10850
11084
|
class: "w-full hidden md:grid grid-cols-3 gap-2 mt-3"
|
|
10851
11085
|
};
|
|
10852
|
-
const _hoisted_2$
|
|
11086
|
+
const _hoisted_2$a = ["title"];
|
|
10853
11087
|
|
|
10854
|
-
const _sfc_main$
|
|
11088
|
+
const _sfc_main$i = {
|
|
10855
11089
|
__name: 'OptionsColumns',
|
|
10856
11090
|
setup(__props) {
|
|
10857
11091
|
|
|
@@ -10865,7 +11099,7 @@ const isSafari = computed(() => {
|
|
|
10865
11099
|
|
|
10866
11100
|
|
|
10867
11101
|
return (_ctx, _cache) => {
|
|
10868
|
-
return (openBlock(), createElementBlock("div", _hoisted_1$
|
|
11102
|
+
return (openBlock(), createElementBlock("div", _hoisted_1$g, [
|
|
10869
11103
|
createBaseVNode("button", {
|
|
10870
11104
|
id: "single-column-button",
|
|
10871
11105
|
class: normalizeClass(["col-span-1 text-primary text-center cursor-pointer py-3 rounded-sm border", {
|
|
@@ -10878,7 +11112,7 @@ return (_ctx, _cache) => {
|
|
|
10878
11112
|
title: isSafari.value ? 'O navegador Safari não aceita visualização de coluna única.' : 'Coluna única'
|
|
10879
11113
|
}, [
|
|
10880
11114
|
createVNode(SingleColumn, { class: "mx-auto h-10 opacity-75" })
|
|
10881
|
-
], 10, _hoisted_2$
|
|
11115
|
+
], 10, _hoisted_2$a),
|
|
10882
11116
|
createBaseVNode("button", {
|
|
10883
11117
|
id: "double-column-button",
|
|
10884
11118
|
class: normalizeClass(["col-span-2 text-primary text-center cursor-pointer py-3 rounded-sm border", {
|
|
@@ -10901,13 +11135,13 @@ return (_ctx, _cache) => {
|
|
|
10901
11135
|
|
|
10902
11136
|
};
|
|
10903
11137
|
|
|
10904
|
-
const _hoisted_1$
|
|
11138
|
+
const _hoisted_1$f = {
|
|
10905
11139
|
id: "font-family-menu",
|
|
10906
11140
|
class: "w-full grid grid-cols-4 gap-2 my-3"
|
|
10907
11141
|
};
|
|
10908
|
-
const _hoisted_2$
|
|
11142
|
+
const _hoisted_2$9 = ["onClick", "title"];
|
|
10909
11143
|
|
|
10910
|
-
const _sfc_main$
|
|
11144
|
+
const _sfc_main$h = {
|
|
10911
11145
|
__name: 'OptionsFontFamily',
|
|
10912
11146
|
setup(__props) {
|
|
10913
11147
|
|
|
@@ -10915,7 +11149,7 @@ const { textFont, fontsOptions, setTextFont } = useReaderSettings;
|
|
|
10915
11149
|
|
|
10916
11150
|
|
|
10917
11151
|
return (_ctx, _cache) => {
|
|
10918
|
-
return (openBlock(), createElementBlock("div", _hoisted_1$
|
|
11152
|
+
return (openBlock(), createElementBlock("div", _hoisted_1$f, [
|
|
10919
11153
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(fontsOptions), (font) => {
|
|
10920
11154
|
return (openBlock(), createElementBlock("button", {
|
|
10921
11155
|
key: font.name,
|
|
@@ -10925,7 +11159,7 @@ return (_ctx, _cache) => {
|
|
|
10925
11159
|
}]),
|
|
10926
11160
|
style: normalizeStyle(`font-family: ${font.name}`),
|
|
10927
11161
|
title: font.label ?? font.name
|
|
10928
|
-
}, " Ff ", 14, _hoisted_2$
|
|
11162
|
+
}, " Ff ", 14, _hoisted_2$9))
|
|
10929
11163
|
}), 128))
|
|
10930
11164
|
]))
|
|
10931
11165
|
}
|
|
@@ -10933,7 +11167,7 @@ return (_ctx, _cache) => {
|
|
|
10933
11167
|
|
|
10934
11168
|
};
|
|
10935
11169
|
|
|
10936
|
-
const _sfc_main$
|
|
11170
|
+
const _sfc_main$g = {
|
|
10937
11171
|
__name: 'OptionsFontSize',
|
|
10938
11172
|
setup(__props) {
|
|
10939
11173
|
|
|
@@ -10958,9 +11192,9 @@ return (_ctx, _cache) => {
|
|
|
10958
11192
|
|
|
10959
11193
|
};
|
|
10960
11194
|
|
|
10961
|
-
const _sfc_main$
|
|
11195
|
+
const _sfc_main$f = {};
|
|
10962
11196
|
|
|
10963
|
-
const _hoisted_1$
|
|
11197
|
+
const _hoisted_1$e = {
|
|
10964
11198
|
fill: "none",
|
|
10965
11199
|
stroke: "currentColor",
|
|
10966
11200
|
viewBox: "0 0 24 24",
|
|
@@ -10968,7 +11202,7 @@ const _hoisted_1$d = {
|
|
|
10968
11202
|
};
|
|
10969
11203
|
|
|
10970
11204
|
function _sfc_render$3(_ctx, _cache) {
|
|
10971
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11205
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$e, [...(_cache[0] || (_cache[0] = [
|
|
10972
11206
|
createBaseVNode("path", {
|
|
10973
11207
|
"stroke-linecap": "round",
|
|
10974
11208
|
"stroke-linejoin": "round",
|
|
@@ -10977,11 +11211,11 @@ function _sfc_render$3(_ctx, _cache) {
|
|
|
10977
11211
|
}, null, -1)
|
|
10978
11212
|
]))]))
|
|
10979
11213
|
}
|
|
10980
|
-
const IconSun = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11214
|
+
const IconSun = /*#__PURE__*/_export_sfc(_sfc_main$f, [['render',_sfc_render$3]]);
|
|
10981
11215
|
|
|
10982
|
-
const _sfc_main$
|
|
11216
|
+
const _sfc_main$e = {};
|
|
10983
11217
|
|
|
10984
|
-
const _hoisted_1$
|
|
11218
|
+
const _hoisted_1$d = {
|
|
10985
11219
|
fill: "none",
|
|
10986
11220
|
stroke: "currentColor",
|
|
10987
11221
|
viewBox: "0 0 24 24",
|
|
@@ -10989,7 +11223,7 @@ const _hoisted_1$c = {
|
|
|
10989
11223
|
};
|
|
10990
11224
|
|
|
10991
11225
|
function _sfc_render$2(_ctx, _cache) {
|
|
10992
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11226
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$d, [...(_cache[0] || (_cache[0] = [
|
|
10993
11227
|
createBaseVNode("path", {
|
|
10994
11228
|
"stroke-linecap": "round",
|
|
10995
11229
|
"stroke-linejoin": "round",
|
|
@@ -10998,9 +11232,9 @@ function _sfc_render$2(_ctx, _cache) {
|
|
|
10998
11232
|
}, null, -1)
|
|
10999
11233
|
]))]))
|
|
11000
11234
|
}
|
|
11001
|
-
const IconMoon = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11235
|
+
const IconMoon = /*#__PURE__*/_export_sfc(_sfc_main$e, [['render',_sfc_render$2]]);
|
|
11002
11236
|
|
|
11003
|
-
const _sfc_main$
|
|
11237
|
+
const _sfc_main$d = {
|
|
11004
11238
|
__name: 'OptionsColor',
|
|
11005
11239
|
setup(__props) {
|
|
11006
11240
|
|
|
@@ -11035,6 +11269,45 @@ return (_ctx, _cache) => {
|
|
|
11035
11269
|
|
|
11036
11270
|
};
|
|
11037
11271
|
|
|
11272
|
+
const _hoisted_1$c = { class: "w-full border-t border-areia mt-5 pt-5" };
|
|
11273
|
+
const _hoisted_2$8 = ["aria-checked"];
|
|
11274
|
+
|
|
11275
|
+
|
|
11276
|
+
const _sfc_main$c = {
|
|
11277
|
+
__name: 'OptionsReadingProgress',
|
|
11278
|
+
setup(__props) {
|
|
11279
|
+
|
|
11280
|
+
const { enabled, setEnabled } = useReadingProgress;
|
|
11281
|
+
|
|
11282
|
+
return (_ctx, _cache) => {
|
|
11283
|
+
return (openBlock(), createElementBlock("div", _hoisted_1$c, [
|
|
11284
|
+
createBaseVNode("button", {
|
|
11285
|
+
id: "reading-progress-button",
|
|
11286
|
+
class: "w-full flex items-center justify-between py-2 px-1 text-left",
|
|
11287
|
+
type: "button",
|
|
11288
|
+
role: "switch",
|
|
11289
|
+
"aria-checked": unref(enabled),
|
|
11290
|
+
onClick: _cache[0] || (_cache[0] = withModifiers($event => (unref(setEnabled)(!unref(enabled))), ["prevent"]))
|
|
11291
|
+
}, [
|
|
11292
|
+
_cache[1] || (_cache[1] = createBaseVNode("span", null, [
|
|
11293
|
+
createBaseVNode("span", { class: "block text-primary lowercase" }, "Retomar leitura"),
|
|
11294
|
+
createBaseVNode("span", { class: "block text-xs text-gray-500 mt-1" }, "Continuar de onde parou")
|
|
11295
|
+
], -1)),
|
|
11296
|
+
createBaseVNode("span", {
|
|
11297
|
+
class: normalizeClass(["relative inline-flex h-6 w-11 flex-shrink-0 rounded-full border-2 border-transparent transition-colors", unref(enabled) ? 'bg-primary' : 'bg-gray-300']),
|
|
11298
|
+
"aria-hidden": "true"
|
|
11299
|
+
}, [
|
|
11300
|
+
createBaseVNode("span", {
|
|
11301
|
+
class: normalizeClass(["inline-block h-5 w-5 rounded-full bg-white shadow transition-transform", unref(enabled) ? 'translate-x-5' : 'translate-x-0'])
|
|
11302
|
+
}, null, 2)
|
|
11303
|
+
], 2)
|
|
11304
|
+
], 8, _hoisted_2$8)
|
|
11305
|
+
]))
|
|
11306
|
+
}
|
|
11307
|
+
}
|
|
11308
|
+
|
|
11309
|
+
};
|
|
11310
|
+
|
|
11038
11311
|
const _hoisted_1$b = {
|
|
11039
11312
|
class: "absolute top-14 py-4 px-3 shadow-lg w-60 md:w-104 text-areia -right-2 md:right-16 z-10 bg-white",
|
|
11040
11313
|
role: "Opções",
|
|
@@ -11072,12 +11345,15 @@ return (_ctx, _cache) => {
|
|
|
11072
11345
|
createVNode(IconEye, { class: "w-6 h-6" }),
|
|
11073
11346
|
_cache[3] || (_cache[3] = createBaseVNode("span", { class: "ml-4" }, "Visualização", -1))
|
|
11074
11347
|
]),
|
|
11348
|
+
createVNode(_sfc_main$i),
|
|
11075
11349
|
createVNode(_sfc_main$h),
|
|
11076
|
-
createVNode(_sfc_main$g),
|
|
11077
11350
|
createBaseVNode("div", _hoisted_4$1, [
|
|
11078
|
-
createVNode(_sfc_main$
|
|
11079
|
-
createVNode(_sfc_main$
|
|
11351
|
+
createVNode(_sfc_main$g),
|
|
11352
|
+
createVNode(_sfc_main$d)
|
|
11080
11353
|
]),
|
|
11354
|
+
(unref(useReadingProgress).available.value)
|
|
11355
|
+
? (openBlock(), createBlock(_sfc_main$c, { key: 0 }))
|
|
11356
|
+
: createCommentVNode("", true),
|
|
11081
11357
|
_cache[4] || (_cache[4] = createBaseVNode("div", { class: "hidden w-full border-b border-areia my-8" }, null, -1)),
|
|
11082
11358
|
renderSlot(_ctx.$slots, "optionsBottom")
|
|
11083
11359
|
])
|
|
@@ -11185,7 +11461,7 @@ const _sfc_main$9 = {
|
|
|
11185
11461
|
|
|
11186
11462
|
return (_ctx, _cache) => {
|
|
11187
11463
|
return (openBlock(), createElementBlock("header", _hoisted_1$9, [
|
|
11188
|
-
createVNode(_sfc_main$
|
|
11464
|
+
createVNode(_sfc_main$p, null, {
|
|
11189
11465
|
summaryTop: withCtx(() => [
|
|
11190
11466
|
renderSlot(_ctx.$slots, "summaryTop")
|
|
11191
11467
|
]),
|
|
@@ -11607,7 +11883,7 @@ return (_ctx, _cache) => {
|
|
|
11607
11883
|
};
|
|
11608
11884
|
const FootnotesAside = /*#__PURE__*/_export_sfc(_sfc_main$1, [['__scopeId',"data-v-5391e486"]]);
|
|
11609
11885
|
|
|
11610
|
-
const _style_0 = ".border-primary { border-color: var(--theme-primary, #690000);\n}\n.text-primary { color: var(--theme-primary, #690000);\n}\n.bg-primary { background-color: var(--theme-primary, #690000);\n}\n.border-primary-extralight { border-color: var(--theme-primary-extralight, #f3f4f6);\n}\n.text-primary-extralight { color: var(--theme-primary-extralight, #f3f4f6);\n}\n.bg-primary-extralight { background-color: var(--theme-primary-extralight, #f3f4f6);\n}\n.border-secondary { border-color: var(--theme-secondary, #ffa03c);\n}\n.text-secondary { color: var(--theme-secondary, #ffa03c);\n}\n.bg-secondary { background-color: var(--theme-secondary, #ffa03c);\n}\n.rootWrapper {\r\n\tmax-height: 100%;\r\n height: 100%;\n}\nmain#rootComponent {\r\n\theight: 100%;\r\n\tmax-height: 100%;\n}\nmain#rootComponent.light {\r\n\t\tbackground-color: var(--bg-light-mode, #fff7e0)\n}\nmain#rootComponent.dark {\r\n\t\tbackground-color: var(--bg-dark-mode, #2d2d2d);\n}\nmain#rootComponent.dark #content-area {\r\n\t\t\tcolor: #fff\n}\nheader.wrapper {\r\n\twidth: 200px;\r\n\tmargin: 0 auto;\n}\n#engine {\r\n\theight: calc(100% - 8.4rem);\r\n\tposition: relative;\r\n right: 0;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\n}\n.rootWrapper.safari {\r\n\tmax-height: initial;\r\n\theight: initial;\n}\n.rootWrapper.safari #engine {\r\n\theight: auto !important;\n}\n#reader-component {\r\n\twidth: 100%;\n}\n.typeArea {\r\n\twidth: 100%;\n}\n.engineWrapper {\r\n\theight: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n\tposition: relative;\r\n right: 0;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\n}\n.rootWrapper:not(.safari) .columns-double .columnsArea {\r\n\t-moz-column-count: 2;\r\n column-count: 2;\r\n grid-column-gap: 0;\r\n -moz-column-gap: 0;\r\n column-gap: 0;\r\n height: 100%;\r\n padding: 0;\r\n width: 100%;\n}\n@media only screen and (max-width: 1020px) {\n.rootWrapper:not(.safari) .columns-double .columnsArea {\r\n\t\t-moz-column-count: 1;\r\n \tcolumn-count: 1\n}\n}\n.rootWrapper:not(.safari) .columns-single .columnsArea {\r\n\t-moz-column-count: 1;\r\n\t column-count: 1;\r\n\t-moz-column-gap: 0;\r\n\t column-gap: 0;\r\n\theight: 100%;\r\n padding: 0;\r\n width: 100%;\n}\n.rootWrapper:not(.safari) .columns-single .columnsArea #content-area {\r\n\t\tmax-width: 37em;\r\n\t\tmargin: 0 auto;\n}\n.nav-prev { left: 0px;\n}\n.nav-next { right: 0px;\n}\n.viewer-nav {\r\n\theight: 100%;\r\n\tposition: relative;\r\n\ttop: 0px;\r\n\tbottom: 0px;\r\n\tz-index: 10;\r\n\twidth: 2.5rem;\r\n\tflex-shrink: 0;\r\n\tcursor: pointer;\r\n\talign-self: center;\r\n\ttransition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\r\n\ttransition-duration: 500ms;\r\n\ttransition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.viewer-nav:focus,\r\n\t.viewer-nav:active {\r\n\t\tborder: none !important;\r\n\t\tbox-shadow: none !important;\r\n\t\toutline-color: transparent !important;\n}\n#content-area *::-moz-selection {\r\n\tcolor: var(--theme-primary-extralight, #690000);\r\n\tbackground: var(--theme-secondary, #ffa03c);\n}\n#content-area *::selection {\r\n\tcolor: var(--theme-primary-extralight, #690000);\r\n\tbackground: var(--theme-secondary, #ffa03c);\n}\n.viewer-nav-icon { opacity: 0;\n}\n@media (min-width: 768px) {\n.viewer-nav-icon { opacity: 0.8;\n}\n}\n@media only screen and (max-width: 600px) {\n.columnsArea {\r\n\t\ttransition: margin 100ms\n}\n}\n#asidebar {\r\n\tbackground: var(--sidebar-backgorund, #690000);\r\n\tcolor: var(--sidebar-text, #f3f4f6);\n}\r\n\r\n/* slider */\n.rootWrapper.safari .slider-target,\r\n.rootWrapper.safari .slider-target *{\r\n\tdisplay: none !important;\n}\n.slider-target,.slider-target *{\r\n -webkit-touch-callout:none;\r\n -webkit-tap-highlight-color:rgba(0,0,0,0);\r\n box-sizing:border-box;\r\n touch-action:none;\r\n -webkit-user-select:none;\r\n -moz-user-select:none;\r\n user-select:none\n}\n.slider-target{\r\n position:relative\n}\n.slider-base,.slider-connects{\r\n height:100%;\r\n position:relative;\r\n width:100%;\r\n z-index:1\n}\n.slider-connects{\r\n overflow:hidden;\r\n z-index:0\n}\n.slider-connect,.slider-origin{\r\n height:100%;\r\n position:absolute;\r\n right:0;\r\n top:0;\r\n transform-origin:0 0;\r\n transform-style:flat;\r\n width:100%;\r\n will-change:transform;\r\n z-index:1\n}\n.slider-txt-dir-rtl.slider-horizontal .slider-origin{\r\n left:0;\r\n right:auto\n}\n.slider-vertical .slider-origin{\r\n top:-100%;\r\n width:0\n}\n.slider-horizontal .slider-origin{\r\n height:0\n}\n.slider-handle{\r\n backface-visibility:hidden;\r\n position:absolute\n}\n.slider-touch-area{\r\n height:100%;\r\n width:100%\n}\n.slider-state-tap .slider-connect,.slider-state-tap .slider-origin{\r\n transition:transform .3s\n}\n.slider-state-drag *{\r\n cursor:inherit!important\n}\n.slider-tooltip-drag .slider-tooltip,.slider-tooltip-focus .slider-tooltip{\r\n display:none!important\n}\n.slider-tooltip-drag .slider-active .slider-tooltip,.slider-tooltip-drag.slider-state-drag .slider-tooltip:not(.slider-tooltip-hidden),.slider-tooltip-focus.slider-focused .slider-tooltip:not(.slider-tooltip-hidden){\r\n display:block!important\n}\n.slider-horizontal{\r\n height:var(--slider-height,6px)\n}\n.slider-horizontal .slider-handle{\r\n height:var(--slider-handle-height,16px);\r\n right:calc(var(--slider-handle-width, 16px)/2*-1);\r\n top:calc((var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2*-1 + -1px);\r\n width:var(--slider-handle-width,16px)\n}\n.slider-vertical{\r\n height:var(--slider-vertical-height,300px);\r\n width:var(--slider-height,6px)\n}\n.slider-vertical .slider-handle{\r\n bottom:calc(var(--slider-handle-width, 16px)/2*-1);\r\n height:var(--slider-handle-width,16px);\r\n right:calc((var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2*-1 + -1px);\r\n width:var(--slider-handle-height,16px)\n}\n.slider-txt-dir-rtl.slider-horizontal .slider-handle{\r\n left:calc(var(--slider-handle-width, 16px)/2*-1);\r\n right:auto\n}\n.slider-base{\r\n background-color:var(--slider-bg,#d1d5db)\n}\n.slider-base,.slider-connects{\r\n border-radius:var(--slider-radius,9999px)\n}\n.slider-connect{\r\n background:var(--theme-secondary, #690000);\r\n cursor:pointer\n}\n.slider-draggable{\r\n cursor:ew-resize\n}\n.slider-vertical .slider-draggable{\r\n cursor:ns-resize\n}\n.slider-handle{\r\n background:var(--slider-handle-bg,#fff);\r\n border:var(--slider-handle-border,0);\r\n border-radius:var(--slider-handle-radius,9999px);\r\n box-shadow:var(--slider-handle-shadow,.5px .5px 2px 1px rgba(0,0,0,.32));\r\n cursor:grab;\r\n height:var(--slider-handle-height,16px);\r\n width:var(--slider-handle-width,16px)\n}\n.slider-handle:focus{\r\n box-shadow:0 0 0 var(--slider-handle-ring-width,3px) var(--slider-handle-ring-color,rgba(16,185,129,.188)),var(--slider-handle-shadow,.5px .5px 2px 1px rgba(0,0,0,.32));\r\n outline:none\n}\n.slider-active{\r\n box-shadow:var(--slider-handle-shadow-active,.5px .5px 2px 1px rgba(0,0,0,.42));\r\n cursor:grabbing\n}\n[disabled] .slider-connect{\r\n background:var(--slider-connect-bg-disabled,#9ca3af)\n}\n[disabled] .slider-handle,[disabled].slider-handle,[disabled].slider-target{\r\n cursor:not-allowed\n}\n[disabled] .slider-tooltip{\r\n background:var(--theme-secondary, #690000);\r\n border-color:var(--theme-secondary, #690000);\r\n\topacity: 0.5;\n}\n.slider-tooltip{\r\n background:var(--theme-secondary, #690000);\r\n border:1px solid var(--theme-secondary, #690000);\r\n border-radius:var(--slider-tooltip-radius,5px);\r\n color:var(--slider-tooltip-color,#fff);\r\n display:block;\r\n font-size:var(--slider-tooltip-font-size,.875rem);\r\n font-weight:var(--slider-tooltip-font-weight,600);\r\n line-height:var(--slider-tooltip-line-height,1.25rem);\r\n min-width:var(--slider-tooltip-min-width,20px);\r\n padding:var(--slider-tooltip-py,2px) var(--slider-tooltip-px,6px);\r\n position:absolute;\r\n text-align:center;\r\n white-space:nowrap\n}\n.slider-horizontal .slider-tooltip-top{\r\n bottom:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\r\n left:50%;\r\n transform:translate(-50%)\n}\n.slider-horizontal .slider-tooltip-top:before{\r\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\r\n border-top-color:inherit;\r\n bottom:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\r\n content:\"\";\r\n height:0;\r\n left:50%;\r\n position:absolute;\r\n transform:translate(-50%);\r\n width:0\n}\n.slider-horizontal .slider-tooltip-bottom{\r\n left:50%;\r\n top:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\r\n transform:translate(-50%)\n}\n.slider-horizontal .slider-tooltip-bottom:before{\r\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\r\n border-bottom-color:inherit;\r\n content:\"\";\r\n height:0;\r\n left:50%;\r\n position:absolute;\r\n top:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\r\n transform:translate(-50%);\r\n width:0\n}\n.slider-vertical .slider-tooltip-left{\r\n right:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\r\n top:50%;\r\n transform:translateY(-50%)\n}\n.slider-vertical .slider-tooltip-left:before{\r\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\r\n border-left-color:inherit;\r\n content:\"\";\r\n height:0;\r\n position:absolute;\r\n right:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\r\n top:50%;\r\n transform:translateY(-50%);\r\n width:0\n}\n.slider-vertical .slider-tooltip-right{\r\n left:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\r\n top:50%;\r\n transform:translateY(-50%)\n}\n.slider-vertical .slider-tooltip-right:before{\r\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\r\n border-right-color:inherit;\r\n content:\"\";\r\n height:0;\r\n left:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\r\n position:absolute;\r\n top:50%;\r\n transform:translateY(-50%);\r\n width:0\n}\n.slider-horizontal .slider-origin>.slider-tooltip{\r\n left:auto;\r\n transform:translate(50%)\n}\n.slider-horizontal .slider-origin>.slider-tooltip-top{\r\n bottom:calc(var(--slider-tooltip-arrow-size, 5px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) + 1px)\n}\n.slider-horizontal .slider-origin>.slider-tooltip-bottom{\r\n top:calc(var(--slider-tooltip-arrow-size, 5px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) + var(--slider-height, 6px) - 1px)\n}\n.slider-vertical .slider-origin>.slider-tooltip{\r\n top:auto;\r\n transform:translateY(calc((var(--slider-tooltip-line-height, 1.25rem) - var(--slider-tooltip-py, 2px))*-1 + 1px))\n}\n.slider-vertical .slider-origin>.slider-tooltip-left{\r\n right:calc(var(--slider-tooltip-arrow-size, 5px) + var(--slider-height, 6px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) - 1px)\n}\n.slider-vertical .slider-origin>.slider-tooltip-right{\r\n left:calc(var(--slider-tooltip-arrow-size, 5px) + var(--slider-height, 6px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) - var(--slider-height, 6px) + 1px)\n}\r\n\r\n";
|
|
11886
|
+
const _style_0 = ".border-primary { border-color: var(--theme-primary, #690000);\n}\n.text-primary { color: var(--theme-primary, #690000);\n}\n.bg-primary { background-color: var(--theme-primary, #690000);\n}\n.border-primary-extralight { border-color: var(--theme-primary-extralight, #f3f4f6);\n}\n.text-primary-extralight { color: var(--theme-primary-extralight, #f3f4f6);\n}\n.bg-primary-extralight { background-color: var(--theme-primary-extralight, #f3f4f6);\n}\n.border-secondary { border-color: var(--theme-secondary, #ffa03c);\n}\n.text-secondary { color: var(--theme-secondary, #ffa03c);\n}\n.bg-secondary { background-color: var(--theme-secondary, #ffa03c);\n}\n.rootWrapper {\n\tmax-height: 100%;\n height: 100%;\n}\nmain#rootComponent {\n\theight: 100%;\n\tmax-height: 100%;\n}\nmain#rootComponent.light {\n\t\tbackground-color: var(--bg-light-mode, #fff7e0)\n}\nmain#rootComponent.dark {\n\t\tbackground-color: var(--bg-dark-mode, #2d2d2d);\n}\nmain#rootComponent.dark #content-area {\n\t\t\tcolor: #fff\n}\nheader.wrapper {\n\twidth: 200px;\n\tmargin: 0 auto;\n}\n#engine {\n\theight: calc(100% - 8.4rem);\n\tposition: relative;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n}\n.rootWrapper.safari {\n\tmax-height: initial;\n\theight: initial;\n}\n.rootWrapper.safari #engine {\n\theight: auto !important;\n}\n#reader-component {\n\twidth: calc(100% - 5rem);\n}\n.typeArea {\n\twidth: 100%;\n}\n.engineWrapper {\n\theight: 100%;\n display: flex;\n justify-content: space-between;\n\tposition: relative;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n}\n.rootWrapper:not(.safari) .columns-double .columnsArea {\n\t-moz-column-count: 2;\n column-count: 2;\n grid-column-gap: 0;\n -moz-column-gap: 0;\n column-gap: 0;\n height: 100%;\n padding: 0;\n width: 100%;\n}\n@media only screen and (max-width: 1020px) {\n.rootWrapper:not(.safari) .columns-double .columnsArea {\n\t\t-moz-column-count: 1;\n \tcolumn-count: 1\n}\n}\n.rootWrapper:not(.safari) .columns-single .columnsArea {\n\t-moz-column-count: 1;\n\t column-count: 1;\n\t-moz-column-gap: 0;\n\t column-gap: 0;\n\theight: 100%;\n padding: 0;\n width: 100%;\n}\n.rootWrapper:not(.safari) .columns-single .columnsArea #content-area {\n\t\tmax-width: 37em;\n\t\tmargin: 0 auto;\n}\n.nav-prev { left: 0px;\n}\n.nav-next { right: 0px;\n}\n.viewer-nav {\n\theight: 100%;\n\tposition: relative;\n\ttop: 0px;\n\tbottom: 0px;\n\tz-index: 10;\n\twidth: 2.5rem;\n\tflex-shrink: 0;\n\tcursor: pointer;\n\talign-self: center;\n\ttransition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n\ttransition-duration: 500ms;\n\ttransition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.viewer-nav:focus,\n\t.viewer-nav:active {\n\t\tborder: none !important;\n\t\tbox-shadow: none !important;\n\t\toutline-color: transparent !important;\n}\n#content-area *::-moz-selection {\n\tcolor: var(--theme-primary-extralight, #690000);\n\tbackground: var(--theme-secondary, #ffa03c);\n}\n#content-area *::selection {\n\tcolor: var(--theme-primary-extralight, #690000);\n\tbackground: var(--theme-secondary, #ffa03c);\n}\n.viewer-nav-icon { opacity: 0;\n}\n@media (min-width: 768px) {\n.viewer-nav-icon { opacity: 0.8;\n}\n}\n@media only screen and (max-width: 600px) {\n.columnsArea {\n\t\ttransition: margin 100ms\n}\n}\n#asidebar {\n\tbackground: var(--sidebar-backgorund, #690000);\n\tcolor: var(--sidebar-text, #f3f4f6);\n}\n\n/* slider */\n.rootWrapper.safari .slider-target,\n.rootWrapper.safari .slider-target *{\n\tdisplay: none !important;\n}\n.slider-target,.slider-target *{\n -webkit-touch-callout:none;\n -webkit-tap-highlight-color:rgba(0,0,0,0);\n box-sizing:border-box;\n touch-action:none;\n -webkit-user-select:none;\n -moz-user-select:none;\n user-select:none\n}\n.slider-target{\n position:relative\n}\n.slider-base,.slider-connects{\n height:100%;\n position:relative;\n width:100%;\n z-index:1\n}\n.slider-connects{\n overflow:hidden;\n z-index:0\n}\n.slider-connect,.slider-origin{\n height:100%;\n position:absolute;\n right:0;\n top:0;\n transform-origin:0 0;\n transform-style:flat;\n width:100%;\n will-change:transform;\n z-index:1\n}\n.slider-txt-dir-rtl.slider-horizontal .slider-origin{\n left:0;\n right:auto\n}\n.slider-vertical .slider-origin{\n top:-100%;\n width:0\n}\n.slider-horizontal .slider-origin{\n height:0\n}\n.slider-handle{\n backface-visibility:hidden;\n position:absolute\n}\n.slider-touch-area{\n height:100%;\n width:100%\n}\n.slider-state-tap .slider-connect,.slider-state-tap .slider-origin{\n transition:transform .3s\n}\n.slider-state-drag *{\n cursor:inherit!important\n}\n.slider-tooltip-drag .slider-tooltip,.slider-tooltip-focus .slider-tooltip{\n display:none!important\n}\n.slider-tooltip-drag .slider-active .slider-tooltip,.slider-tooltip-drag.slider-state-drag .slider-tooltip:not(.slider-tooltip-hidden),.slider-tooltip-focus.slider-focused .slider-tooltip:not(.slider-tooltip-hidden){\n display:block!important\n}\n.slider-horizontal{\n height:var(--slider-height,6px)\n}\n.slider-horizontal .slider-handle{\n height:var(--slider-handle-height,16px);\n right:calc(var(--slider-handle-width, 16px)/2*-1);\n top:calc((var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2*-1 + -1px);\n width:var(--slider-handle-width,16px)\n}\n.slider-vertical{\n height:var(--slider-vertical-height,300px);\n width:var(--slider-height,6px)\n}\n.slider-vertical .slider-handle{\n bottom:calc(var(--slider-handle-width, 16px)/2*-1);\n height:var(--slider-handle-width,16px);\n right:calc((var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2*-1 + -1px);\n width:var(--slider-handle-height,16px)\n}\n.slider-txt-dir-rtl.slider-horizontal .slider-handle{\n left:calc(var(--slider-handle-width, 16px)/2*-1);\n right:auto\n}\n.slider-base{\n background-color:var(--slider-bg,#d1d5db)\n}\n.slider-base,.slider-connects{\n border-radius:var(--slider-radius,9999px)\n}\n.slider-connect{\n background:var(--theme-secondary, #690000);\n cursor:pointer\n}\n.slider-draggable{\n cursor:ew-resize\n}\n.slider-vertical .slider-draggable{\n cursor:ns-resize\n}\n.slider-handle{\n background:var(--slider-handle-bg,#fff);\n border:var(--slider-handle-border,0);\n border-radius:var(--slider-handle-radius,9999px);\n box-shadow:var(--slider-handle-shadow,.5px .5px 2px 1px rgba(0,0,0,.32));\n cursor:grab;\n height:var(--slider-handle-height,16px);\n width:var(--slider-handle-width,16px)\n}\n.slider-handle:focus{\n box-shadow:0 0 0 var(--slider-handle-ring-width,3px) var(--slider-handle-ring-color,rgba(16,185,129,.188)),var(--slider-handle-shadow,.5px .5px 2px 1px rgba(0,0,0,.32));\n outline:none\n}\n.slider-active{\n box-shadow:var(--slider-handle-shadow-active,.5px .5px 2px 1px rgba(0,0,0,.42));\n cursor:grabbing\n}\n[disabled] .slider-connect{\n background:var(--slider-connect-bg-disabled,#9ca3af)\n}\n[disabled] .slider-handle,[disabled].slider-handle,[disabled].slider-target{\n cursor:not-allowed\n}\n[disabled] .slider-tooltip{\n background:var(--theme-secondary, #690000);\n border-color:var(--theme-secondary, #690000);\n\topacity: 0.5;\n}\n.slider-tooltip{\n background:var(--theme-secondary, #690000);\n border:1px solid var(--theme-secondary, #690000);\n border-radius:var(--slider-tooltip-radius,5px);\n color:var(--slider-tooltip-color,#fff);\n display:block;\n font-size:var(--slider-tooltip-font-size,.875rem);\n font-weight:var(--slider-tooltip-font-weight,600);\n line-height:var(--slider-tooltip-line-height,1.25rem);\n min-width:var(--slider-tooltip-min-width,20px);\n padding:var(--slider-tooltip-py,2px) var(--slider-tooltip-px,6px);\n position:absolute;\n text-align:center;\n white-space:nowrap\n}\n.slider-horizontal .slider-tooltip-top{\n bottom:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\n left:50%;\n transform:translate(-50%)\n}\n.slider-horizontal .slider-tooltip-top:before{\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\n border-top-color:inherit;\n bottom:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\n content:\"\";\n height:0;\n left:50%;\n position:absolute;\n transform:translate(-50%);\n width:0\n}\n.slider-horizontal .slider-tooltip-bottom{\n left:50%;\n top:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\n transform:translate(-50%)\n}\n.slider-horizontal .slider-tooltip-bottom:before{\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\n border-bottom-color:inherit;\n content:\"\";\n height:0;\n left:50%;\n position:absolute;\n top:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\n transform:translate(-50%);\n width:0\n}\n.slider-vertical .slider-tooltip-left{\n right:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\n top:50%;\n transform:translateY(-50%)\n}\n.slider-vertical .slider-tooltip-left:before{\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\n border-left-color:inherit;\n content:\"\";\n height:0;\n position:absolute;\n right:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\n top:50%;\n transform:translateY(-50%);\n width:0\n}\n.slider-vertical .slider-tooltip-right{\n left:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));\n top:50%;\n transform:translateY(-50%)\n}\n.slider-vertical .slider-tooltip-right:before{\n border:var(--slider-tooltip-arrow-size,5px) solid transparent;\n border-right-color:inherit;\n content:\"\";\n height:0;\n left:calc(var(--slider-tooltip-arrow-size, 5px)*-2);\n position:absolute;\n top:50%;\n transform:translateY(-50%);\n width:0\n}\n.slider-horizontal .slider-origin>.slider-tooltip{\n left:auto;\n transform:translate(50%)\n}\n.slider-horizontal .slider-origin>.slider-tooltip-top{\n bottom:calc(var(--slider-tooltip-arrow-size, 5px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) + 1px)\n}\n.slider-horizontal .slider-origin>.slider-tooltip-bottom{\n top:calc(var(--slider-tooltip-arrow-size, 5px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) + var(--slider-height, 6px) - 1px)\n}\n.slider-vertical .slider-origin>.slider-tooltip{\n top:auto;\n transform:translateY(calc((var(--slider-tooltip-line-height, 1.25rem) - var(--slider-tooltip-py, 2px))*-1 + 1px))\n}\n.slider-vertical .slider-origin>.slider-tooltip-left{\n right:calc(var(--slider-tooltip-arrow-size, 5px) + var(--slider-height, 6px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) - 1px)\n}\n.slider-vertical .slider-origin>.slider-tooltip-right{\n left:calc(var(--slider-tooltip-arrow-size, 5px) + var(--slider-height, 6px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) - var(--slider-height, 6px) + 1px)\n}\n\n";
|
|
11611
11887
|
|
|
11612
11888
|
const _style_1 = "/* In your Vue component's <style> section */\n:host {\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text;\n}\n::slotted(*) {\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text;\n}\n\n/* Ensure paragraphs can be selected across boundaries */\n::slotted(p) {\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text;\n display: block;\n /* Avoid inline-block which can break selection */\n}";
|
|
11613
11889
|
|
|
@@ -11641,11 +11917,67 @@ const { width, height } = useWindowSize();
|
|
|
11641
11917
|
const readerComponent = ref(null);
|
|
11642
11918
|
const contentArea = ref(null);
|
|
11643
11919
|
const rootComponent = ref(null);
|
|
11920
|
+
let paginationRevision = 0;
|
|
11921
|
+
|
|
11922
|
+
function syncReadingProgress(allowRestore = false) {
|
|
11923
|
+
const targetPage = useReadingProgress.sync(
|
|
11924
|
+
currentPage.value,
|
|
11925
|
+
totalPages.value,
|
|
11926
|
+
allowRestore
|
|
11927
|
+
);
|
|
11928
|
+
if (targetPage)
|
|
11929
|
+
usePagination.set(targetPage);
|
|
11930
|
+
}
|
|
11931
|
+
|
|
11932
|
+
function estimatePagesAndSyncProgress() {
|
|
11933
|
+
const revision = ++paginationRevision;
|
|
11934
|
+
const previousPage = currentPage.value;
|
|
11935
|
+
const previousTotal = totalPages.value;
|
|
11936
|
+
useReadingProgress.suspend();
|
|
11937
|
+
const nextTotal = useEstimatePages.estimate(readerComponent, contentArea);
|
|
11938
|
+
|
|
11939
|
+
nextTick(() => requestAnimationFrame(() => {
|
|
11940
|
+
if (revision !== paginationRevision)
|
|
11941
|
+
return
|
|
11942
|
+
|
|
11943
|
+
const targetPage = useReadingProgress.repaginate(
|
|
11944
|
+
previousPage,
|
|
11945
|
+
previousTotal,
|
|
11946
|
+
nextTotal
|
|
11947
|
+
);
|
|
11948
|
+
|
|
11949
|
+
if (targetPage)
|
|
11950
|
+
usePagination.set(targetPage);
|
|
11951
|
+
else
|
|
11952
|
+
syncReadingProgress(true);
|
|
11953
|
+
|
|
11954
|
+
useReadingProgress.resume();
|
|
11955
|
+
useReadingProgress.save(currentPage.value, nextTotal);
|
|
11956
|
+
}));
|
|
11957
|
+
}
|
|
11958
|
+
|
|
11959
|
+
function saveCurrentReadingProgress() {
|
|
11960
|
+
useReadingProgress.save(currentPage.value, totalPages.value);
|
|
11961
|
+
}
|
|
11962
|
+
|
|
11963
|
+
function saveReadingProgressWhenHidden() {
|
|
11964
|
+
if (document.visibilityState === 'hidden')
|
|
11965
|
+
saveCurrentReadingProgress();
|
|
11966
|
+
}
|
|
11644
11967
|
|
|
11645
11968
|
onMounted(async () => {
|
|
11646
|
-
usePagination.init(readerComponent, contentArea);
|
|
11647
11969
|
useReaderSettings.initSettings(props.readerSettings);
|
|
11970
|
+
useReadingProgress.init(
|
|
11971
|
+
props.readerSettings,
|
|
11972
|
+
props.bookTitle || bookTitle.value
|
|
11973
|
+
);
|
|
11974
|
+
usePagination.init(readerComponent, contentArea, estimatePagesAndSyncProgress);
|
|
11975
|
+
requestAnimationFrame(() => {
|
|
11976
|
+
estimatePagesAndSyncProgress();
|
|
11977
|
+
});
|
|
11648
11978
|
useStyles.initStyles(props, rootComponent);
|
|
11979
|
+
window.addEventListener('pagehide', saveCurrentReadingProgress);
|
|
11980
|
+
document.addEventListener('visibilitychange', saveReadingProgressWhenHidden);
|
|
11649
11981
|
|
|
11650
11982
|
if (['string', 'boolean'].includes(typeof props.readerBlocked)) {
|
|
11651
11983
|
useReaderSettings.setBlocked(props.readerBlocked);
|
|
@@ -11653,6 +11985,11 @@ onMounted(async () => {
|
|
|
11653
11985
|
|
|
11654
11986
|
});
|
|
11655
11987
|
|
|
11988
|
+
onBeforeUnmount(() => {
|
|
11989
|
+
window.removeEventListener('pagehide', saveCurrentReadingProgress);
|
|
11990
|
+
document.removeEventListener('visibilitychange', saveReadingProgressWhenHidden);
|
|
11991
|
+
});
|
|
11992
|
+
|
|
11656
11993
|
watch(
|
|
11657
11994
|
props,
|
|
11658
11995
|
() => {
|
|
@@ -11670,12 +12007,21 @@ watchDebounced(
|
|
|
11670
12007
|
() => {
|
|
11671
12008
|
if (width.value < 1024 && columns.value === 'double')
|
|
11672
12009
|
setColumns('single');
|
|
11673
|
-
else
|
|
11674
|
-
|
|
12010
|
+
else {
|
|
12011
|
+
requestAnimationFrame(() => {
|
|
12012
|
+
estimatePagesAndSyncProgress();
|
|
12013
|
+
});
|
|
12014
|
+
}
|
|
11675
12015
|
},
|
|
11676
12016
|
{ debounce: 125, maxWait: 250 }
|
|
11677
12017
|
);
|
|
11678
12018
|
|
|
12019
|
+
watch(
|
|
12020
|
+
currentPage,
|
|
12021
|
+
() => syncReadingProgress(),
|
|
12022
|
+
{ flush: 'sync' }
|
|
12023
|
+
);
|
|
12024
|
+
|
|
11679
12025
|
watchDebounced(content,
|
|
11680
12026
|
() => listenToClicks(contentArea),
|
|
11681
12027
|
{ debounce: 125, maxWait: 250 }
|
|
@@ -11762,7 +12108,7 @@ return (_ctx, _cache) => {
|
|
|
11762
12108
|
};
|
|
11763
12109
|
const App = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0,_style_1]]]);
|
|
11764
12110
|
|
|
11765
|
-
const tailwindStyles = "*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n/*\n! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n -moz-tab-size: 4;\n /* 3 */\n -o-tab-size: 4;\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n letter-spacing: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.-right-2 {\n right: -0.5rem;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.right-0 {\n right: 0px;\n}\n\n.right-8 {\n right: 2rem;\n}\n\n.top-0 {\n top: 0px;\n}\n\n.top-14 {\n top: 3.5rem;\n}\n\n.top-4 {\n top: 1rem;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.z-20 {\n z-index: 20;\n}\n\n.z-40 {\n z-index: 40;\n}\n\n.col-span-1 {\n grid-column: span 1 / span 1;\n}\n\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-3 {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n}\n\n.my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.ml-10 {\n margin-left: 2.5rem;\n}\n\n.ml-3 {\n margin-left: 0.75rem;\n}\n\n.ml-4 {\n margin-left: 1rem;\n}\n\n.mr-3 {\n margin-right: 0.75rem;\n}\n\n.mt-3 {\n margin-top: 0.75rem;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: flex;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-5 {\n height: 1.25rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.w-4\\/5 {\n width: 80%;\n}\n\n.w-5 {\n width: 1.25rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-60 {\n width: 15rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-96 {\n width: 24rem;\n}\n\n.w-full {\n width: 100%;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n\n.scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-default {\n cursor: default;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.divide-opacity-75 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 0.75;\n}\n\n.self-end {\n align-self: flex-end;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-sm {\n border-radius: 0.125rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-b {\n border-bottom-width: 1px;\n}\n\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n\n.border-white {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.border-b-white\\/25 {\n border-bottom-color: rgb(255 255 255 / 0.25);\n}\n\n.bg-gray-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.p-10 {\n padding: 2.5rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.px-10 {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-light {\n font-weight: 300;\n}\n\n.lowercase {\n text-transform: lowercase;\n}\n\n.tracking-wide {\n letter-spacing: 0.025em;\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity, 1));\n}\n\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-100 {\n opacity: 1;\n}\n\n.opacity-30 {\n opacity: 0.3;\n}\n\n.opacity-50 {\n opacity: 0.5;\n}\n\n.opacity-75 {\n opacity: 0.75;\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.duration-100 {\n transition-duration: 100ms;\n}\n\n.duration-200 {\n transition-duration: 200ms;\n}\n\n.duration-75 {\n transition-duration: 75ms;\n}\n\n.ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.last\\:border-transparent:last-child {\n border-color: transparent;\n}\n\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n\n@media (min-width: 768px) {\n .md\\:bottom-14 {\n bottom: 3.5rem;\n }\n\n .md\\:right-16 {\n right: 4rem;\n }\n\n .md\\:right-3 {\n right: 0.75rem;\n }\n\n .md\\:flex {\n display: flex;\n }\n\n .md\\:grid {\n display: grid;\n }\n\n .md\\:w-2\\/5 {\n width: 40%;\n }\n\n .md\\:w-\\[40em\\] {\n width: 40em;\n }\n\n .md\\:px-24 {\n padding-left: 6rem;\n padding-right: 6rem;\n }\n}\n\n@media (prefers-color-scheme: dark) {\n .dark\\:text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n }\n}";
|
|
12111
|
+
const tailwindStyles = "*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n/*\n! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n -moz-tab-size: 4;\n /* 3 */\n -o-tab-size: 4;\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n letter-spacing: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.-right-2 {\n right: -0.5rem;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.right-0 {\n right: 0px;\n}\n\n.right-8 {\n right: 2rem;\n}\n\n.top-0 {\n top: 0px;\n}\n\n.top-14 {\n top: 3.5rem;\n}\n\n.top-4 {\n top: 1rem;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.z-20 {\n z-index: 20;\n}\n\n.z-40 {\n z-index: 40;\n}\n\n.col-span-1 {\n grid-column: span 1 / span 1;\n}\n\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-3 {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n}\n\n.my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.ml-10 {\n margin-left: 2.5rem;\n}\n\n.ml-3 {\n margin-left: 0.75rem;\n}\n\n.ml-4 {\n margin-left: 1rem;\n}\n\n.mr-3 {\n margin-right: 0.75rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-3 {\n margin-top: 0.75rem;\n}\n\n.mt-5 {\n margin-top: 1.25rem;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-5 {\n height: 1.25rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.w-11 {\n width: 2.75rem;\n}\n\n.w-4\\/5 {\n width: 80%;\n}\n\n.w-5 {\n width: 1.25rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-60 {\n width: 15rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-96 {\n width: 24rem;\n}\n\n.w-full {\n width: 100%;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n\n.translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-default {\n cursor: default;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.divide-opacity-75 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 0.75;\n}\n\n.self-end {\n align-self: flex-end;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-sm {\n border-radius: 0.125rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-b {\n border-bottom-width: 1px;\n}\n\n.border-t {\n border-top-width: 1px;\n}\n\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.border-white {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.border-b-white\\/25 {\n border-bottom-color: rgb(255 255 255 / 0.25);\n}\n\n.bg-gray-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\n}\n\n.bg-gray-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.p-10 {\n padding: 2.5rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.p-4 {\n padding: 1rem;\n}\n\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n\n.px-10 {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pt-10 {\n padding-top: 2.5rem;\n}\n\n.pt-5 {\n padding-top: 1.25rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-light {\n font-weight: 300;\n}\n\n.lowercase {\n text-transform: lowercase;\n}\n\n.tracking-wide {\n letter-spacing: 0.025em;\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity, 1));\n}\n\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-100 {\n opacity: 1;\n}\n\n.opacity-30 {\n opacity: 0.3;\n}\n\n.opacity-50 {\n opacity: 0.5;\n}\n\n.opacity-75 {\n opacity: 0.75;\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.duration-100 {\n transition-duration: 100ms;\n}\n\n.duration-200 {\n transition-duration: 200ms;\n}\n\n.duration-75 {\n transition-duration: 75ms;\n}\n\n.ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.last\\:border-transparent:last-child {\n border-color: transparent;\n}\n\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n\n@media (min-width: 768px) {\n .md\\:bottom-14 {\n bottom: 3.5rem;\n }\n\n .md\\:right-16 {\n right: 4rem;\n }\n\n .md\\:right-3 {\n right: 0.75rem;\n }\n\n .md\\:flex {\n display: flex;\n }\n\n .md\\:grid {\n display: grid;\n }\n\n .md\\:w-2\\/5 {\n width: 40%;\n }\n\n .md\\:w-\\[40em\\] {\n width: 40em;\n }\n\n .md\\:px-24 {\n padding-left: 6rem;\n padding-right: 6rem;\n }\n}\n\n@media (prefers-color-scheme: dark) {\n .dark\\:text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n }\n}";
|
|
11766
12112
|
|
|
11767
12113
|
// https://maximomussini.com/posts/vue-custom-elements
|
|
11768
12114
|
|