paginar 0.3.6 → 0.3.7
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 +33 -2
- package/dist/index.es.js +844 -246
- package/dist/index.es.js.map +1 -1
- package/dist/style.css +16 -0
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1583,6 +1583,9 @@ function isRef(r) {
|
|
|
1583
1583
|
function ref(value) {
|
|
1584
1584
|
return createRef(value, false);
|
|
1585
1585
|
}
|
|
1586
|
+
function shallowRef(value) {
|
|
1587
|
+
return createRef(value, true);
|
|
1588
|
+
}
|
|
1586
1589
|
function createRef(rawValue, shallow) {
|
|
1587
1590
|
if (isRef(rawValue)) {
|
|
1588
1591
|
return rawValue;
|
|
@@ -9165,6 +9168,71 @@ class VueElement extends BaseClass {
|
|
|
9165
9168
|
}
|
|
9166
9169
|
}
|
|
9167
9170
|
|
|
9171
|
+
const getModelAssigner = (vnode) => {
|
|
9172
|
+
const fn = vnode.props["onUpdate:modelValue"] || false;
|
|
9173
|
+
return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;
|
|
9174
|
+
};
|
|
9175
|
+
function onCompositionStart(e) {
|
|
9176
|
+
e.target.composing = true;
|
|
9177
|
+
}
|
|
9178
|
+
function onCompositionEnd(e) {
|
|
9179
|
+
const target = e.target;
|
|
9180
|
+
if (target.composing) {
|
|
9181
|
+
target.composing = false;
|
|
9182
|
+
target.dispatchEvent(new Event("input"));
|
|
9183
|
+
}
|
|
9184
|
+
}
|
|
9185
|
+
const assignKey = Symbol("_assign");
|
|
9186
|
+
const vModelText = {
|
|
9187
|
+
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
9188
|
+
el[assignKey] = getModelAssigner(vnode);
|
|
9189
|
+
const castToNumber = number || vnode.props && vnode.props.type === "number";
|
|
9190
|
+
addEventListener$1(el, lazy ? "change" : "input", (e) => {
|
|
9191
|
+
if (e.target.composing) return;
|
|
9192
|
+
let domValue = el.value;
|
|
9193
|
+
if (trim) {
|
|
9194
|
+
domValue = domValue.trim();
|
|
9195
|
+
}
|
|
9196
|
+
if (castToNumber) {
|
|
9197
|
+
domValue = looseToNumber(domValue);
|
|
9198
|
+
}
|
|
9199
|
+
el[assignKey](domValue);
|
|
9200
|
+
});
|
|
9201
|
+
if (trim) {
|
|
9202
|
+
addEventListener$1(el, "change", () => {
|
|
9203
|
+
el.value = el.value.trim();
|
|
9204
|
+
});
|
|
9205
|
+
}
|
|
9206
|
+
if (!lazy) {
|
|
9207
|
+
addEventListener$1(el, "compositionstart", onCompositionStart);
|
|
9208
|
+
addEventListener$1(el, "compositionend", onCompositionEnd);
|
|
9209
|
+
addEventListener$1(el, "change", onCompositionEnd);
|
|
9210
|
+
}
|
|
9211
|
+
},
|
|
9212
|
+
// set value on mounted so it's after min/max for type="range"
|
|
9213
|
+
mounted(el, { value }) {
|
|
9214
|
+
el.value = value == null ? "" : value;
|
|
9215
|
+
},
|
|
9216
|
+
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
9217
|
+
el[assignKey] = getModelAssigner(vnode);
|
|
9218
|
+
if (el.composing) return;
|
|
9219
|
+
const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
|
|
9220
|
+
const newValue = value == null ? "" : value;
|
|
9221
|
+
if (elValue === newValue) {
|
|
9222
|
+
return;
|
|
9223
|
+
}
|
|
9224
|
+
if (document.activeElement === el && el.type !== "range") {
|
|
9225
|
+
if (lazy && value === oldValue) {
|
|
9226
|
+
return;
|
|
9227
|
+
}
|
|
9228
|
+
if (trim && el.value.trim() === newValue) {
|
|
9229
|
+
return;
|
|
9230
|
+
}
|
|
9231
|
+
}
|
|
9232
|
+
el.value = newValue;
|
|
9233
|
+
}
|
|
9234
|
+
};
|
|
9235
|
+
|
|
9168
9236
|
const systemModifiers = ["ctrl", "shift", "alt", "meta"];
|
|
9169
9237
|
const modifierGuards = {
|
|
9170
9238
|
stop: (e) => e.stopPropagation(),
|
|
@@ -9190,6 +9258,30 @@ const withModifiers = (fn, modifiers) => {
|
|
|
9190
9258
|
return fn(event, ...args);
|
|
9191
9259
|
}));
|
|
9192
9260
|
};
|
|
9261
|
+
const keyNames = {
|
|
9262
|
+
esc: "escape",
|
|
9263
|
+
space: " ",
|
|
9264
|
+
up: "arrow-up",
|
|
9265
|
+
left: "arrow-left",
|
|
9266
|
+
right: "arrow-right",
|
|
9267
|
+
down: "arrow-down",
|
|
9268
|
+
delete: "backspace"
|
|
9269
|
+
};
|
|
9270
|
+
const withKeys = (fn, modifiers) => {
|
|
9271
|
+
const cache = fn._withKeys || (fn._withKeys = {});
|
|
9272
|
+
const cacheKey = modifiers.join(".");
|
|
9273
|
+
return cache[cacheKey] || (cache[cacheKey] = ((event) => {
|
|
9274
|
+
if (!("key" in event)) {
|
|
9275
|
+
return;
|
|
9276
|
+
}
|
|
9277
|
+
const eventKey = hyphenate(event.key);
|
|
9278
|
+
if (modifiers.some(
|
|
9279
|
+
(k) => k === eventKey || keyNames[k] === eventKey
|
|
9280
|
+
)) {
|
|
9281
|
+
return fn(event);
|
|
9282
|
+
}
|
|
9283
|
+
}));
|
|
9284
|
+
};
|
|
9193
9285
|
|
|
9194
9286
|
const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
|
|
9195
9287
|
let renderer;
|
|
@@ -10162,102 +10254,58 @@ const useReaderSettings = {
|
|
|
10162
10254
|
homeUrl
|
|
10163
10255
|
};
|
|
10164
10256
|
|
|
10165
|
-
const
|
|
10166
|
-
|
|
10167
|
-
|
|
10168
|
-
|
|
10169
|
-
|
|
10170
|
-
|
|
10171
|
-
};
|
|
10172
|
-
|
|
10173
|
-
|
|
10174
|
-
|
|
10175
|
-
|
|
10176
|
-
|
|
10177
|
-
|
|
10178
|
-
|
|
10179
|
-
|
|
10180
|
-
|
|
10181
|
-
|
|
10182
|
-
|
|
10183
|
-
|
|
10184
|
-
|
|
10185
|
-
|
|
10186
|
-
|
|
10187
|
-
|
|
10188
|
-
|
|
10189
|
-
|
|
10190
|
-
|
|
10191
|
-
|
|
10192
|
-
|
|
10193
|
-
"stroke-linecap": "round",
|
|
10194
|
-
"stroke-linejoin": "round"
|
|
10195
|
-
}, null, -1)
|
|
10196
|
-
]))]))
|
|
10197
|
-
}
|
|
10198
|
-
const IconHome = /*#__PURE__*/_export_sfc(_sfc_main$t, [['render',_sfc_render$c]]);
|
|
10199
|
-
|
|
10200
|
-
const _sfc_main$s = {};
|
|
10201
|
-
|
|
10202
|
-
const _hoisted_1$q = {
|
|
10203
|
-
fill: "none",
|
|
10204
|
-
stroke: "currentColor",
|
|
10205
|
-
viewBox: "0 0 24 24",
|
|
10206
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
10207
|
-
};
|
|
10208
|
-
|
|
10209
|
-
function _sfc_render$b(_ctx, _cache) {
|
|
10210
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$q, [...(_cache[0] || (_cache[0] = [
|
|
10211
|
-
createBaseVNode("path", {
|
|
10212
|
-
"stroke-linecap": "round",
|
|
10213
|
-
"stroke-linejoin": "round",
|
|
10214
|
-
"stroke-width": "2",
|
|
10215
|
-
d: "M6 18L18 6M6 6l12 12"
|
|
10216
|
-
}, null, -1)
|
|
10217
|
-
]))]))
|
|
10218
|
-
}
|
|
10219
|
-
const IconClose = /*#__PURE__*/_export_sfc(_sfc_main$s, [['render',_sfc_render$b]]);
|
|
10220
|
-
|
|
10221
|
-
const _sfc_main$r = {};
|
|
10222
|
-
|
|
10223
|
-
const _hoisted_1$p = {
|
|
10224
|
-
width: "24",
|
|
10225
|
-
height: "19",
|
|
10226
|
-
viewBox: "0 0 24 19",
|
|
10227
|
-
fill: "none",
|
|
10228
|
-
stroke: "currentColor",
|
|
10229
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
10257
|
+
const state$5 = reactive({
|
|
10258
|
+
totalPages: 1
|
|
10259
|
+
});
|
|
10260
|
+
|
|
10261
|
+
function estimate(viewport, content) {
|
|
10262
|
+
if (viewport && content) {
|
|
10263
|
+
const { width: viewportWidth } = viewport.value.getBoundingClientRect();
|
|
10264
|
+
const { width: contentWidth } = content.value.getBoundingClientRect();
|
|
10265
|
+
|
|
10266
|
+
if (contentWidth > viewportWidth) {
|
|
10267
|
+
state$5.totalPages = Math.ceil(contentWidth / viewportWidth);
|
|
10268
|
+
return Math.ceil(contentWidth / viewportWidth)
|
|
10269
|
+
|
|
10270
|
+
} else {
|
|
10271
|
+
state$5.totalPages = 1;
|
|
10272
|
+
return 1
|
|
10273
|
+
}
|
|
10274
|
+
} else {
|
|
10275
|
+
state$5.totalPages = 1;
|
|
10276
|
+
return 1
|
|
10277
|
+
}
|
|
10278
|
+
}
|
|
10279
|
+
|
|
10280
|
+
const totalPages$1 = computed(() => state$5.totalPages);
|
|
10281
|
+
|
|
10282
|
+
const useEstimatePages = {
|
|
10283
|
+
totalPages: totalPages$1,
|
|
10284
|
+
estimate
|
|
10230
10285
|
};
|
|
10231
10286
|
|
|
10232
|
-
|
|
10233
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$p, [...(_cache[0] || (_cache[0] = [
|
|
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)
|
|
10235
|
-
]))]))
|
|
10236
|
-
}
|
|
10237
|
-
const IconSummary = /*#__PURE__*/_export_sfc(_sfc_main$r, [['render',_sfc_render$a]]);
|
|
10238
|
-
|
|
10239
|
-
const state$5 = reactive({
|
|
10287
|
+
const state$4 = reactive({
|
|
10240
10288
|
references: [],
|
|
10241
10289
|
reference: null
|
|
10242
10290
|
});
|
|
10243
10291
|
|
|
10244
|
-
const references = computed(() => state$
|
|
10292
|
+
const references = computed(() => state$4.references);
|
|
10245
10293
|
|
|
10246
10294
|
function setReferences(references) {
|
|
10247
|
-
state$
|
|
10295
|
+
state$4.references = references;
|
|
10248
10296
|
}
|
|
10249
10297
|
|
|
10250
|
-
const reference = computed(() => state$
|
|
10298
|
+
const reference = computed(() => state$4.reference);
|
|
10251
10299
|
|
|
10252
10300
|
function setHighlightedReference(reference) {
|
|
10253
|
-
state$
|
|
10301
|
+
state$4.reference = reference;
|
|
10254
10302
|
}
|
|
10255
10303
|
|
|
10256
10304
|
function applyReferences(contentRaw) {
|
|
10257
|
-
if (state$
|
|
10305
|
+
if (state$4.references.length === 0 || !contentRaw)
|
|
10258
10306
|
return contentRaw
|
|
10259
10307
|
|
|
10260
|
-
return state$
|
|
10308
|
+
return state$4.references.reduce((content, reference) => {
|
|
10261
10309
|
if (!content) return content
|
|
10262
10310
|
|
|
10263
10311
|
if (content.includes(reference.cit)) {
|
|
@@ -10283,11 +10331,11 @@ function applyReference(event) {
|
|
|
10283
10331
|
const target = classList.find(item => item.startsWith('reference-'));
|
|
10284
10332
|
|
|
10285
10333
|
if (target) {
|
|
10286
|
-
const ref = state$
|
|
10334
|
+
const ref = state$4.references.find(
|
|
10287
10335
|
item => target && item.cit.replaceAll(' ', '') === target.replace('reference-', '')
|
|
10288
10336
|
);
|
|
10289
10337
|
if (ref) {
|
|
10290
|
-
state$
|
|
10338
|
+
state$4.reference = ref;
|
|
10291
10339
|
}
|
|
10292
10340
|
}
|
|
10293
10341
|
|
|
@@ -10302,25 +10350,25 @@ const useReferences = {
|
|
|
10302
10350
|
applyReferences,
|
|
10303
10351
|
};
|
|
10304
10352
|
|
|
10305
|
-
const state$
|
|
10353
|
+
const state$3 = reactive({
|
|
10306
10354
|
footnotes: [],
|
|
10307
10355
|
showFootnotes: false,
|
|
10308
10356
|
footnote: null
|
|
10309
10357
|
});
|
|
10310
10358
|
|
|
10311
|
-
const footnotes = computed(() => state$
|
|
10359
|
+
const footnotes = computed(() => state$3.footnotes);
|
|
10312
10360
|
function setFootnotes(footnotes) {
|
|
10313
|
-
state$
|
|
10361
|
+
state$3.footnotes = footnotes;
|
|
10314
10362
|
}
|
|
10315
10363
|
|
|
10316
|
-
const showFootnotes = computed(() => state$
|
|
10364
|
+
const showFootnotes = computed(() => state$3.showFootnotes);
|
|
10317
10365
|
function setShowFootnotes(value) {
|
|
10318
|
-
state$
|
|
10366
|
+
state$3.showFootnotes = value;
|
|
10319
10367
|
}
|
|
10320
10368
|
|
|
10321
|
-
const footnote = computed(() => state$
|
|
10369
|
+
const footnote = computed(() => state$3.footnote);
|
|
10322
10370
|
function setHighlightedFootnote(footnote) {
|
|
10323
|
-
state$
|
|
10371
|
+
state$3.footnote = footnote;
|
|
10324
10372
|
}
|
|
10325
10373
|
|
|
10326
10374
|
function applyFootnote(event) {
|
|
@@ -10334,9 +10382,9 @@ function applyFootnote(event) {
|
|
|
10334
10382
|
);
|
|
10335
10383
|
|
|
10336
10384
|
if (footnoteTarget) {
|
|
10337
|
-
const ref = state$
|
|
10385
|
+
const ref = state$3.footnotes.find(item => item.id === footnoteTarget);
|
|
10338
10386
|
if (ref) {
|
|
10339
|
-
state$
|
|
10387
|
+
state$3.footnote = ref;
|
|
10340
10388
|
}
|
|
10341
10389
|
}
|
|
10342
10390
|
}
|
|
@@ -10351,20 +10399,20 @@ const useFootnotes = {
|
|
|
10351
10399
|
showFootnotes
|
|
10352
10400
|
};
|
|
10353
10401
|
|
|
10354
|
-
const state$
|
|
10402
|
+
const state$2 = reactive({
|
|
10355
10403
|
summary: null,
|
|
10356
10404
|
content: null,
|
|
10357
10405
|
activeChapter: 0
|
|
10358
10406
|
});
|
|
10359
10407
|
|
|
10360
|
-
const content = computed(() => state$
|
|
10361
|
-
const summary = computed(() => state$
|
|
10408
|
+
const content = computed(() => state$2.content);
|
|
10409
|
+
const summary = computed(() => state$2.summary);
|
|
10362
10410
|
const context = computed(() => {
|
|
10363
|
-
const chapters = state$
|
|
10411
|
+
const chapters = state$2.summary || [];
|
|
10364
10412
|
const linkedChapter = chapters.findIndex(
|
|
10365
10413
|
chapter => window.location.href.includes(chapter.link)
|
|
10366
10414
|
);
|
|
10367
|
-
const current = linkedChapter >= 0 ? linkedChapter : state$
|
|
10415
|
+
const current = linkedChapter >= 0 ? linkedChapter : state$2.activeChapter;
|
|
10368
10416
|
return {
|
|
10369
10417
|
chapter: chapters[current],
|
|
10370
10418
|
surround: {
|
|
@@ -10391,7 +10439,7 @@ async function initContent(contentString, contentWrapper) {
|
|
|
10391
10439
|
: null;
|
|
10392
10440
|
|
|
10393
10441
|
if (content?.summary)
|
|
10394
|
-
state$
|
|
10442
|
+
state$2.summary = content.summary;
|
|
10395
10443
|
|
|
10396
10444
|
if (content?.references)
|
|
10397
10445
|
setReferences(content.references);
|
|
@@ -10405,7 +10453,7 @@ async function initContent(contentString, contentWrapper) {
|
|
|
10405
10453
|
const newContent = content.applyReferences
|
|
10406
10454
|
? applyReferences(text)
|
|
10407
10455
|
: text;
|
|
10408
|
-
state$
|
|
10456
|
+
state$2.content = newContent;
|
|
10409
10457
|
|
|
10410
10458
|
// else if content comes from slot, apply references to slot
|
|
10411
10459
|
} else {
|
|
@@ -10430,7 +10478,7 @@ async function getContent(location) {
|
|
|
10430
10478
|
return text
|
|
10431
10479
|
} catch (err) {
|
|
10432
10480
|
console.log({ err });
|
|
10433
|
-
state$
|
|
10481
|
+
state$2.content = 'Ops, não foi possível carregar o arquivo solicitado.';
|
|
10434
10482
|
}
|
|
10435
10483
|
}
|
|
10436
10484
|
|
|
@@ -10438,8 +10486,8 @@ function applyContent(text, chapter = null) {
|
|
|
10438
10486
|
const { applyReferences } = useReferences;
|
|
10439
10487
|
const newContent = applyReferences(text);
|
|
10440
10488
|
if (chapter)
|
|
10441
|
-
state$
|
|
10442
|
-
state$
|
|
10489
|
+
state$2.activeChapter = state$2.summary.findIndex(item => item === chapter);
|
|
10490
|
+
state$2.content = newContent;
|
|
10443
10491
|
}
|
|
10444
10492
|
|
|
10445
10493
|
function listenToClicks(contentWrapper) {
|
|
@@ -10469,36 +10517,6 @@ const useTextContent = {
|
|
|
10469
10517
|
contextId
|
|
10470
10518
|
};
|
|
10471
10519
|
|
|
10472
|
-
const state$2 = reactive({
|
|
10473
|
-
totalPages: 1
|
|
10474
|
-
});
|
|
10475
|
-
|
|
10476
|
-
function estimate(viewport, content) {
|
|
10477
|
-
if (viewport && content) {
|
|
10478
|
-
const { width: viewportWidth } = viewport.value.getBoundingClientRect();
|
|
10479
|
-
const { width: contentWidth } = content.value.getBoundingClientRect();
|
|
10480
|
-
|
|
10481
|
-
if (contentWidth > viewportWidth) {
|
|
10482
|
-
state$2.totalPages = Math.ceil(contentWidth / viewportWidth);
|
|
10483
|
-
return Math.ceil(contentWidth / viewportWidth)
|
|
10484
|
-
|
|
10485
|
-
} else {
|
|
10486
|
-
state$2.totalPages = 1;
|
|
10487
|
-
return 1
|
|
10488
|
-
}
|
|
10489
|
-
} else {
|
|
10490
|
-
state$2.totalPages = 1;
|
|
10491
|
-
return 1
|
|
10492
|
-
}
|
|
10493
|
-
}
|
|
10494
|
-
|
|
10495
|
-
const totalPages$1 = computed(() => state$2.totalPages);
|
|
10496
|
-
|
|
10497
|
-
const useEstimatePages = {
|
|
10498
|
-
totalPages: totalPages$1,
|
|
10499
|
-
estimate
|
|
10500
|
-
};
|
|
10501
|
-
|
|
10502
10520
|
const isSafari = [
|
|
10503
10521
|
'iPad Simulator',
|
|
10504
10522
|
'iPhone Simulator',
|
|
@@ -10816,16 +10834,392 @@ const usePagination = {
|
|
|
10816
10834
|
set
|
|
10817
10835
|
};
|
|
10818
10836
|
|
|
10837
|
+
// Keep offsets into the original UTF-16 text so matches can become DOM Ranges.
|
|
10838
|
+
function normalizeSearchText(value) {
|
|
10839
|
+
let text = '';
|
|
10840
|
+
const starts = [];
|
|
10841
|
+
const ends = [];
|
|
10842
|
+
let offset = 0;
|
|
10843
|
+
for (const character of value) {
|
|
10844
|
+
const end = offset + character.length;
|
|
10845
|
+
const normalized = character.normalize('NFKD').replace(/\p{M}/gu, '').toLowerCase();
|
|
10846
|
+
if (!normalized && ends.length)
|
|
10847
|
+
ends[ends.length - 1] = end;
|
|
10848
|
+
for (const part of normalized) {
|
|
10849
|
+
const next = /[\p{L}\p{N}]/u.test(part) ? part : ' ';
|
|
10850
|
+
if (next === ' ' && text.endsWith(' ')) {
|
|
10851
|
+
ends[ends.length - 1] = end;
|
|
10852
|
+
continue
|
|
10853
|
+
}
|
|
10854
|
+
text += next;
|
|
10855
|
+
for (let index = 0; index < next.length; index++) {
|
|
10856
|
+
starts.push(offset);
|
|
10857
|
+
ends.push(end);
|
|
10858
|
+
}
|
|
10859
|
+
}
|
|
10860
|
+
offset = end;
|
|
10861
|
+
}
|
|
10862
|
+
return { text, starts, ends }
|
|
10863
|
+
}
|
|
10864
|
+
|
|
10865
|
+
// At most one insertion, deletion, substitution or adjacent transposition.
|
|
10866
|
+
function nearWord(left, right) {
|
|
10867
|
+
if (left === right)
|
|
10868
|
+
return true
|
|
10869
|
+
if (left.length < 5 || Math.abs(left.length - right.length) > 1)
|
|
10870
|
+
return false
|
|
10871
|
+
let index = 0;
|
|
10872
|
+
while (index < Math.min(left.length, right.length) && left[index] === right[index])
|
|
10873
|
+
index++;
|
|
10874
|
+
if (left.length === right.length) {
|
|
10875
|
+
return left.slice(index + 1) === right.slice(index + 1) || (
|
|
10876
|
+
left[index] === right[index + 1] && left[index + 1] === right[index] &&
|
|
10877
|
+
left.slice(index + 2) === right.slice(index + 2)
|
|
10878
|
+
)
|
|
10879
|
+
}
|
|
10880
|
+
return left.length > right.length
|
|
10881
|
+
? left.slice(index + 1) === right.slice(index)
|
|
10882
|
+
: left.slice(index) === right.slice(index + 1)
|
|
10883
|
+
}
|
|
10884
|
+
|
|
10885
|
+
function findSearchMatches(index, query) {
|
|
10886
|
+
const needle = normalizeSearchText(query).text.trim();
|
|
10887
|
+
if (!needle)
|
|
10888
|
+
return []
|
|
10889
|
+
const hits = [];
|
|
10890
|
+
let position = index.text.indexOf(needle);
|
|
10891
|
+
while (position !== -1) {
|
|
10892
|
+
hits.push({ start: position, end: position + needle.length });
|
|
10893
|
+
position = index.text.indexOf(needle, position + needle.length);
|
|
10894
|
+
}
|
|
10895
|
+
const words = needle.split(' ');
|
|
10896
|
+
const tokens = Array.from(index.text.matchAll(/[\p{L}\p{N}]+/gu));
|
|
10897
|
+
const exactCount = hits.length;
|
|
10898
|
+
let exactIndex = 0;
|
|
10899
|
+
for (let offset = 0; offset <= tokens.length - words.length; offset++) {
|
|
10900
|
+
const start = tokens[offset].index;
|
|
10901
|
+
const last = tokens[offset + words.length - 1];
|
|
10902
|
+
const end = last.index + last[0].length;
|
|
10903
|
+
while (exactIndex < exactCount && hits[exactIndex].end <= start)
|
|
10904
|
+
exactIndex++;
|
|
10905
|
+
if (exactIndex < exactCount && hits[exactIndex].start < end)
|
|
10906
|
+
continue
|
|
10907
|
+
if (words.every((word, part) => nearWord(word, tokens[offset + part][0])))
|
|
10908
|
+
hits.push({ start, end, approximate: true });
|
|
10909
|
+
}
|
|
10910
|
+
return hits.sort((left, right) => left.start - right.start)
|
|
10911
|
+
.map(hit => ({ start: index.starts[hit.start], end: index.ends[hit.end - 1] }))
|
|
10912
|
+
}
|
|
10913
|
+
|
|
10914
|
+
const searchKey = Symbol('paginarSearch');
|
|
10915
|
+
|
|
10916
|
+
// Walk the rendered slot tree as well as HTML loaded inside the shadow root.
|
|
10917
|
+
function indexContent(root) {
|
|
10918
|
+
let text = '';
|
|
10919
|
+
const nodes = [];
|
|
10920
|
+
function visit(node) {
|
|
10921
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
10922
|
+
nodes.push({ node, start: text.length, end: text.length + node.length });
|
|
10923
|
+
text += node.data;
|
|
10924
|
+
return
|
|
10925
|
+
}
|
|
10926
|
+
if (node.nodeType !== Node.ELEMENT_NODE)
|
|
10927
|
+
return
|
|
10928
|
+
if (node.matches('script, style, template, noscript, [hidden], [aria-hidden="true"]'))
|
|
10929
|
+
return
|
|
10930
|
+
const style = getComputedStyle(node);
|
|
10931
|
+
if (style.display === 'none' || style.visibility === 'hidden')
|
|
10932
|
+
return
|
|
10933
|
+
const separator = node.tagName === 'BR' || !['inline', 'contents'].includes(style.display);
|
|
10934
|
+
if (separator) text += ' ';
|
|
10935
|
+
const children = node.tagName === 'SLOT'
|
|
10936
|
+
? node.assignedNodes({ flatten: true })
|
|
10937
|
+
: node.childNodes;
|
|
10938
|
+
for (const child of children.length ? children : node.childNodes)
|
|
10939
|
+
visit(child);
|
|
10940
|
+
if (separator) text += ' ';
|
|
10941
|
+
}
|
|
10942
|
+
visit(root);
|
|
10943
|
+
return { ...normalizeSearchText(text), nodes }
|
|
10944
|
+
}
|
|
10945
|
+
|
|
10946
|
+
function rangeForMatch(index, match) {
|
|
10947
|
+
// Binary search keeps mapping a common word in a long chapter inexpensive.
|
|
10948
|
+
function findNode(offset) {
|
|
10949
|
+
let low = 0;
|
|
10950
|
+
let high = index.nodes.length - 1;
|
|
10951
|
+
while (low <= high) {
|
|
10952
|
+
const middle = (low + high) >> 1;
|
|
10953
|
+
const item = index.nodes[middle];
|
|
10954
|
+
if (offset < item.start) high = middle - 1;
|
|
10955
|
+
else if (offset >= item.end) low = middle + 1;
|
|
10956
|
+
else return item
|
|
10957
|
+
}
|
|
10958
|
+
}
|
|
10959
|
+
const first = findNode(match.start);
|
|
10960
|
+
const last = findNode(match.end - 1);
|
|
10961
|
+
if (!first || !last || first.node.getRootNode() !== last.node.getRootNode())
|
|
10962
|
+
return null
|
|
10963
|
+
const range = document.createRange();
|
|
10964
|
+
range.setStart(first.node, match.start - first.start);
|
|
10965
|
+
range.setEnd(last.node, match.end - last.start);
|
|
10966
|
+
return range
|
|
10967
|
+
}
|
|
10968
|
+
|
|
10969
|
+
function useSearch(root, viewport, content) {
|
|
10970
|
+
const enabled = ref(false);
|
|
10971
|
+
const open = ref(false);
|
|
10972
|
+
const query = ref('');
|
|
10973
|
+
const input = ref(null);
|
|
10974
|
+
const button = ref(null);
|
|
10975
|
+
const active = ref(-1);
|
|
10976
|
+
const total = ref(0);
|
|
10977
|
+
const geometry = shallowRef([]);
|
|
10978
|
+
const pageWidth = ref(0);
|
|
10979
|
+
const rectangles = computed(() => {
|
|
10980
|
+
if (!open.value) return []
|
|
10981
|
+
// Include adjacent pages so highlights accompany the sliding text.
|
|
10982
|
+
const left = (usePagination.currentPage.value - 2) * pageWidth.value;
|
|
10983
|
+
const right = (usePagination.currentPage.value + 1) * pageWidth.value;
|
|
10984
|
+
return geometry.value.filter(rect => rect.left < right && rect.right > left)
|
|
10985
|
+
.map(rect => ({ ...rect, active: rect.match === active.value }))
|
|
10986
|
+
});
|
|
10987
|
+
const pending = ref(false);
|
|
10988
|
+
let ranges = [];
|
|
10989
|
+
let index = null;
|
|
10990
|
+
let timer = null;
|
|
10991
|
+
let observer = null;
|
|
10992
|
+
let host = null;
|
|
10993
|
+
|
|
10994
|
+
function init(settingsString) {
|
|
10995
|
+
enabled.value = settingsString ? JSON.parse(settingsString).search === true : false;
|
|
10996
|
+
}
|
|
10997
|
+
|
|
10998
|
+
function measure() {
|
|
10999
|
+
const columns = viewport.value?.querySelector('.columnsArea');
|
|
11000
|
+
if (!open.value || !ranges.length || !columns) {
|
|
11001
|
+
geometry.value = [];
|
|
11002
|
+
return
|
|
11003
|
+
}
|
|
11004
|
+
const origin = columns.getBoundingClientRect();
|
|
11005
|
+
pageWidth.value = viewport.value.getBoundingClientRect().width;
|
|
11006
|
+
const measured = [];
|
|
11007
|
+
ranges.forEach((range, match) => {
|
|
11008
|
+
if (!range.startContainer.isConnected) return
|
|
11009
|
+
const seen = new Set();
|
|
11010
|
+
for (const rect of range.getClientRects()) {
|
|
11011
|
+
if (!rect.width || !rect.height) continue
|
|
11012
|
+
const key = `${rect.left},${rect.top},${rect.width},${rect.height}`;
|
|
11013
|
+
// Inline elements can yield the same rectangle as their text node.
|
|
11014
|
+
if (seen.has(key)) continue
|
|
11015
|
+
seen.add(key);
|
|
11016
|
+
measured.push({
|
|
11017
|
+
key: `${match}:${key}`, match,
|
|
11018
|
+
left: rect.left - origin.left, right: rect.right - origin.left,
|
|
11019
|
+
style: {
|
|
11020
|
+
left: `${rect.left - origin.left}px`, top: `${rect.top - origin.top}px`,
|
|
11021
|
+
width: `${rect.width}px`, height: `${rect.height}px`
|
|
11022
|
+
}
|
|
11023
|
+
});
|
|
11024
|
+
}
|
|
11025
|
+
});
|
|
11026
|
+
geometry.value = measured;
|
|
11027
|
+
}
|
|
11028
|
+
|
|
11029
|
+
function navigate(position) {
|
|
11030
|
+
if (!ranges.length || useReaderSettings.blocked.value)
|
|
11031
|
+
return
|
|
11032
|
+
active.value = (position + ranges.length) % ranges.length;
|
|
11033
|
+
const rect = geometry.value.find(rect => rect.match === active.value);
|
|
11034
|
+
if (rect && pageWidth.value)
|
|
11035
|
+
usePagination.set(Math.floor(Math.max(0, rect.left) / pageWidth.value) + 1, 'search');
|
|
11036
|
+
}
|
|
11037
|
+
|
|
11038
|
+
function run() {
|
|
11039
|
+
clearTimeout(timer);
|
|
11040
|
+
pending.value = false;
|
|
11041
|
+
if (!enabled.value || !open.value || !content.value)
|
|
11042
|
+
return
|
|
11043
|
+
index ||= indexContent(content.value);
|
|
11044
|
+
ranges = findSearchMatches(index, query.value)
|
|
11045
|
+
.map(match => rangeForMatch(index, match)).filter(Boolean);
|
|
11046
|
+
total.value = ranges.length;
|
|
11047
|
+
active.value = -1;
|
|
11048
|
+
measure();
|
|
11049
|
+
navigate(0);
|
|
11050
|
+
}
|
|
11051
|
+
|
|
11052
|
+
function schedule(invalidate = false) {
|
|
11053
|
+
if (invalidate) index = null;
|
|
11054
|
+
clearTimeout(timer);
|
|
11055
|
+
ranges = [];
|
|
11056
|
+
total.value = 0;
|
|
11057
|
+
active.value = -1;
|
|
11058
|
+
geometry.value = [];
|
|
11059
|
+
pending.value = open.value && Boolean(query.value.trim());
|
|
11060
|
+
if (pending.value) timer = setTimeout(run, 180);
|
|
11061
|
+
}
|
|
11062
|
+
|
|
11063
|
+
async function show() {
|
|
11064
|
+
if (!enabled.value || useReaderSettings.blocked.value)
|
|
11065
|
+
return
|
|
11066
|
+
open.value = true;
|
|
11067
|
+
run();
|
|
11068
|
+
await nextTick();
|
|
11069
|
+
input.value?.focus({ preventScroll: true });
|
|
11070
|
+
input.value?.select();
|
|
11071
|
+
}
|
|
11072
|
+
|
|
11073
|
+
function close() {
|
|
11074
|
+
open.value = false;
|
|
11075
|
+
clearTimeout(timer);
|
|
11076
|
+
pending.value = false;
|
|
11077
|
+
geometry.value = [];
|
|
11078
|
+
button.value?.focus({ preventScroll: true });
|
|
11079
|
+
}
|
|
11080
|
+
|
|
11081
|
+
function step(direction) {
|
|
11082
|
+
if (pending.value) run();
|
|
11083
|
+
else navigate(active.value + direction);
|
|
11084
|
+
}
|
|
11085
|
+
|
|
11086
|
+
function onKeydown(event) {
|
|
11087
|
+
if (!enabled.value || event.defaultPrevented)
|
|
11088
|
+
return
|
|
11089
|
+
const path = event.composedPath();
|
|
11090
|
+
const otherReader = path.find(node => node?.tagName === 'PAGINATE-CONTENT');
|
|
11091
|
+
if (otherReader && otherReader !== host)
|
|
11092
|
+
return
|
|
11093
|
+
if (event.key === 'Escape' && open.value) {
|
|
11094
|
+
event.preventDefault();
|
|
11095
|
+
close();
|
|
11096
|
+
} else if ((event.ctrlKey || event.metaKey) && !event.altKey && event.key.toLowerCase() === 'f') {
|
|
11097
|
+
// Keep browser find available in unrelated editing fields on the host page.
|
|
11098
|
+
if (!path.includes(host) && path.some(node =>
|
|
11099
|
+
node?.matches?.('input, textarea, select, [contenteditable="true"]')))
|
|
11100
|
+
return
|
|
11101
|
+
if (useReaderSettings.blocked.value || !host?.getClientRects().length)
|
|
11102
|
+
return
|
|
11103
|
+
event.preventDefault();
|
|
11104
|
+
show();
|
|
11105
|
+
}
|
|
11106
|
+
}
|
|
11107
|
+
|
|
11108
|
+
onMounted(() => {
|
|
11109
|
+
host = root.value.getRootNode().host;
|
|
11110
|
+
window.addEventListener('keydown', onKeydown, true);
|
|
11111
|
+
observer = new MutationObserver(() => schedule(true));
|
|
11112
|
+
observer.observe(content.value, { subtree: true, childList: true, characterData: true });
|
|
11113
|
+
if (host) observer.observe(host, { subtree: true, childList: true, characterData: true });
|
|
11114
|
+
content.value.addEventListener('slotchange', invalidate);
|
|
11115
|
+
});
|
|
11116
|
+
function invalidate() { schedule(true); }
|
|
11117
|
+
onBeforeUnmount(() => {
|
|
11118
|
+
clearTimeout(timer);
|
|
11119
|
+
observer?.disconnect();
|
|
11120
|
+
window.removeEventListener('keydown', onKeydown, true);
|
|
11121
|
+
content.value?.removeEventListener('slotchange', invalidate);
|
|
11122
|
+
ranges = [];
|
|
11123
|
+
index = null;
|
|
11124
|
+
});
|
|
11125
|
+
watch(query, () => schedule());
|
|
11126
|
+
watch(useReaderSettings.blocked, blocked => {
|
|
11127
|
+
if (!blocked && open.value && active.value < 0)
|
|
11128
|
+
navigate(0);
|
|
11129
|
+
});
|
|
11130
|
+
return {
|
|
11131
|
+
enabled, open, query, input, button, active, total, rectangles, pending,
|
|
11132
|
+
init, show, close, step, measure,
|
|
11133
|
+
status: computed(() => pending.value ? 'Buscando…' : total.value
|
|
11134
|
+
? `${active.value >= 0 ? `${active.value + 1} de ` : ''}${total.value} ${total.value === 1 ? 'ocorrência' : 'ocorrências'}`
|
|
11135
|
+
: query.value.trim() ? 'Nenhuma ocorrência' : 'Digite para buscar')
|
|
11136
|
+
}
|
|
11137
|
+
}
|
|
11138
|
+
|
|
11139
|
+
const _export_sfc = (sfc, props) => {
|
|
11140
|
+
const target = sfc.__vccOpts || sfc;
|
|
11141
|
+
for (const [key, val] of props) {
|
|
11142
|
+
target[key] = val;
|
|
11143
|
+
}
|
|
11144
|
+
return target;
|
|
11145
|
+
};
|
|
11146
|
+
|
|
11147
|
+
const _sfc_main$u = {};
|
|
11148
|
+
|
|
11149
|
+
const _hoisted_1$s = {
|
|
11150
|
+
fill: "none",
|
|
11151
|
+
stroke: "currentColor",
|
|
11152
|
+
viewBox: "0 0 20 22",
|
|
11153
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
11154
|
+
};
|
|
11155
|
+
|
|
11156
|
+
function _sfc_render$c(_ctx, _cache) {
|
|
11157
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$s, [...(_cache[0] || (_cache[0] = [
|
|
11158
|
+
createBaseVNode("path", {
|
|
11159
|
+
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",
|
|
11160
|
+
"stroke-width": "2",
|
|
11161
|
+
"stroke-linecap": "round",
|
|
11162
|
+
"stroke-linejoin": "round"
|
|
11163
|
+
}, null, -1),
|
|
11164
|
+
createBaseVNode("path", {
|
|
11165
|
+
d: "M7 21V11H13V21",
|
|
11166
|
+
"stroke-width": "2",
|
|
11167
|
+
"stroke-linecap": "round",
|
|
11168
|
+
"stroke-linejoin": "round"
|
|
11169
|
+
}, null, -1)
|
|
11170
|
+
]))]))
|
|
11171
|
+
}
|
|
11172
|
+
const IconHome = /*#__PURE__*/_export_sfc(_sfc_main$u, [['render',_sfc_render$c]]);
|
|
11173
|
+
|
|
11174
|
+
const _sfc_main$t = {};
|
|
11175
|
+
|
|
11176
|
+
const _hoisted_1$r = {
|
|
11177
|
+
fill: "none",
|
|
11178
|
+
stroke: "currentColor",
|
|
11179
|
+
viewBox: "0 0 24 24",
|
|
11180
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
11181
|
+
};
|
|
11182
|
+
|
|
11183
|
+
function _sfc_render$b(_ctx, _cache) {
|
|
11184
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$r, [...(_cache[0] || (_cache[0] = [
|
|
11185
|
+
createBaseVNode("path", {
|
|
11186
|
+
"stroke-linecap": "round",
|
|
11187
|
+
"stroke-linejoin": "round",
|
|
11188
|
+
"stroke-width": "2",
|
|
11189
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
11190
|
+
}, null, -1)
|
|
11191
|
+
]))]))
|
|
11192
|
+
}
|
|
11193
|
+
const IconClose = /*#__PURE__*/_export_sfc(_sfc_main$t, [['render',_sfc_render$b]]);
|
|
11194
|
+
|
|
11195
|
+
const _sfc_main$s = {};
|
|
11196
|
+
|
|
11197
|
+
const _hoisted_1$q = {
|
|
11198
|
+
width: "24",
|
|
11199
|
+
height: "19",
|
|
11200
|
+
viewBox: "0 0 24 19",
|
|
11201
|
+
fill: "none",
|
|
11202
|
+
stroke: "currentColor",
|
|
11203
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
11204
|
+
};
|
|
11205
|
+
|
|
11206
|
+
function _sfc_render$a(_ctx, _cache) {
|
|
11207
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$q, [...(_cache[0] || (_cache[0] = [
|
|
11208
|
+
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)
|
|
11209
|
+
]))]))
|
|
11210
|
+
}
|
|
11211
|
+
const IconSummary = /*#__PURE__*/_export_sfc(_sfc_main$s, [['render',_sfc_render$a]]);
|
|
11212
|
+
|
|
10819
11213
|
const publicEventKey = Symbol('paginarPublicEvent');
|
|
10820
11214
|
|
|
10821
|
-
const _hoisted_1$
|
|
10822
|
-
const _hoisted_2$
|
|
10823
|
-
const _hoisted_3$
|
|
11215
|
+
const _hoisted_1$p = ["role"];
|
|
11216
|
+
const _hoisted_2$d = { class: "summary-menu-dropdown-item-title" };
|
|
11217
|
+
const _hoisted_3$6 = {
|
|
10824
11218
|
key: 0,
|
|
10825
11219
|
class: "summary-menu-dropdown-item-author"
|
|
10826
11220
|
};
|
|
10827
11221
|
|
|
10828
|
-
const _sfc_main$
|
|
11222
|
+
const _sfc_main$r = {
|
|
10829
11223
|
__name: 'SummaryDropdown',
|
|
10830
11224
|
setup(__props) {
|
|
10831
11225
|
|
|
@@ -10858,9 +11252,9 @@ return (_ctx, _cache) => {
|
|
|
10858
11252
|
onClick: $event => (item.file ? getChapter(item) : null)
|
|
10859
11253
|
}, {
|
|
10860
11254
|
default: withCtx(() => [
|
|
10861
|
-
createBaseVNode("span", _hoisted_2$
|
|
11255
|
+
createBaseVNode("span", _hoisted_2$d, toDisplayString(item.title), 1),
|
|
10862
11256
|
(item.author)
|
|
10863
|
-
? (openBlock(), createElementBlock("span", _hoisted_3$
|
|
11257
|
+
? (openBlock(), createElementBlock("span", _hoisted_3$6, toDisplayString(item.author), 1))
|
|
10864
11258
|
: createCommentVNode("", true)
|
|
10865
11259
|
]),
|
|
10866
11260
|
_: 2
|
|
@@ -10868,19 +11262,19 @@ return (_ctx, _cache) => {
|
|
|
10868
11262
|
}), 128)),
|
|
10869
11263
|
renderSlot(_ctx.$slots, "summaryBottom")
|
|
10870
11264
|
])
|
|
10871
|
-
], 8, _hoisted_1$
|
|
11265
|
+
], 8, _hoisted_1$p))
|
|
10872
11266
|
}
|
|
10873
11267
|
}
|
|
10874
11268
|
|
|
10875
11269
|
};
|
|
10876
11270
|
|
|
10877
|
-
const _hoisted_1$
|
|
10878
|
-
const _hoisted_2$
|
|
10879
|
-
const _hoisted_3$
|
|
10880
|
-
const _hoisted_4$
|
|
11271
|
+
const _hoisted_1$o = { class: "flex" };
|
|
11272
|
+
const _hoisted_2$c = ["href"];
|
|
11273
|
+
const _hoisted_3$5 = { class: "position-relative" };
|
|
11274
|
+
const _hoisted_4$3 = ["aria-expanded"];
|
|
10881
11275
|
|
|
10882
11276
|
|
|
10883
|
-
const _sfc_main$
|
|
11277
|
+
const _sfc_main$q = {
|
|
10884
11278
|
__name: 'SummaryButton',
|
|
10885
11279
|
setup(__props) {
|
|
10886
11280
|
|
|
@@ -10913,7 +11307,7 @@ return (_ctx, _cache) => {
|
|
|
10913
11307
|
ref: button,
|
|
10914
11308
|
class: "relative"
|
|
10915
11309
|
}, [
|
|
10916
|
-
createBaseVNode("div", _hoisted_1$
|
|
11310
|
+
createBaseVNode("div", _hoisted_1$o, [
|
|
10917
11311
|
(unref(homeUrl))
|
|
10918
11312
|
? (openBlock(), createElementBlock("a", {
|
|
10919
11313
|
key: 0,
|
|
@@ -10923,9 +11317,9 @@ return (_ctx, _cache) => {
|
|
|
10923
11317
|
class: "hidden md:flex items-center border p-3 shadow mr-3 border-white text-white"
|
|
10924
11318
|
}, [
|
|
10925
11319
|
createVNode(IconHome, { class: "w-6 h-6" })
|
|
10926
|
-
], 8, _hoisted_2$
|
|
11320
|
+
], 8, _hoisted_2$c))
|
|
10927
11321
|
: createCommentVNode("", true),
|
|
10928
|
-
createBaseVNode("div", _hoisted_3$
|
|
11322
|
+
createBaseVNode("div", _hoisted_3$5, [
|
|
10929
11323
|
createBaseVNode("button", {
|
|
10930
11324
|
onClick: _cache[0] || (_cache[0] = withModifiers($event => (toggleSummary()), ["prevent"])),
|
|
10931
11325
|
class: "border p-3 shadow flex items-center border-white text-white",
|
|
@@ -10940,7 +11334,7 @@ return (_ctx, _cache) => {
|
|
|
10940
11334
|
class: "w-6 h-6"
|
|
10941
11335
|
})),
|
|
10942
11336
|
_cache[1] || (_cache[1] = createBaseVNode("span", { class: "block ml-3" }, " Sumário ", -1))
|
|
10943
|
-
], 8, _hoisted_4$
|
|
11337
|
+
], 8, _hoisted_4$3),
|
|
10944
11338
|
createVNode(Transition, {
|
|
10945
11339
|
"enter-active-class": "transition ease-out duration-100 transform",
|
|
10946
11340
|
"enter-class": "opacity-0 scale-95",
|
|
@@ -10951,7 +11345,7 @@ return (_ctx, _cache) => {
|
|
|
10951
11345
|
}, {
|
|
10952
11346
|
default: withCtx(() => [
|
|
10953
11347
|
(show.value)
|
|
10954
|
-
? (openBlock(), createBlock(_sfc_main$
|
|
11348
|
+
? (openBlock(), createBlock(_sfc_main$r, { key: 0 }, {
|
|
10955
11349
|
summaryTop: withCtx(() => [
|
|
10956
11350
|
renderSlot(_ctx.$slots, "summaryTop")
|
|
10957
11351
|
]),
|
|
@@ -10972,9 +11366,9 @@ return (_ctx, _cache) => {
|
|
|
10972
11366
|
|
|
10973
11367
|
};
|
|
10974
11368
|
|
|
10975
|
-
const _sfc_main$
|
|
11369
|
+
const _sfc_main$p = {};
|
|
10976
11370
|
|
|
10977
|
-
const _hoisted_1$
|
|
11371
|
+
const _hoisted_1$n = {
|
|
10978
11372
|
fill: "none",
|
|
10979
11373
|
stroke: "currentColor",
|
|
10980
11374
|
viewBox: "0 0 24 24",
|
|
@@ -10982,7 +11376,7 @@ const _hoisted_1$m = {
|
|
|
10982
11376
|
};
|
|
10983
11377
|
|
|
10984
11378
|
function _sfc_render$9(_ctx, _cache) {
|
|
10985
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11379
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$n, [...(_cache[0] || (_cache[0] = [
|
|
10986
11380
|
createBaseVNode("path", {
|
|
10987
11381
|
"stroke-linecap": "round",
|
|
10988
11382
|
"stroke-linejoin": "round",
|
|
@@ -10991,11 +11385,11 @@ function _sfc_render$9(_ctx, _cache) {
|
|
|
10991
11385
|
}, null, -1)
|
|
10992
11386
|
]))]))
|
|
10993
11387
|
}
|
|
10994
|
-
const IconThreeDots = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11388
|
+
const IconThreeDots = /*#__PURE__*/_export_sfc(_sfc_main$p, [['render',_sfc_render$9]]);
|
|
10995
11389
|
|
|
10996
|
-
const _sfc_main$
|
|
11390
|
+
const _sfc_main$o = {};
|
|
10997
11391
|
|
|
10998
|
-
const _hoisted_1$
|
|
11392
|
+
const _hoisted_1$m = {
|
|
10999
11393
|
fill: "none",
|
|
11000
11394
|
stroke: "currentColor",
|
|
11001
11395
|
viewBox: "0 0 24 24",
|
|
@@ -11003,7 +11397,7 @@ const _hoisted_1$l = {
|
|
|
11003
11397
|
};
|
|
11004
11398
|
|
|
11005
11399
|
function _sfc_render$8(_ctx, _cache) {
|
|
11006
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11400
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$m, [...(_cache[0] || (_cache[0] = [
|
|
11007
11401
|
createBaseVNode("path", {
|
|
11008
11402
|
"stroke-linecap": "round",
|
|
11009
11403
|
"stroke-linejoin": "round",
|
|
@@ -11012,11 +11406,11 @@ function _sfc_render$8(_ctx, _cache) {
|
|
|
11012
11406
|
}, null, -1)
|
|
11013
11407
|
]))]))
|
|
11014
11408
|
}
|
|
11015
|
-
const IconExpand = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11409
|
+
const IconExpand = /*#__PURE__*/_export_sfc(_sfc_main$o, [['render',_sfc_render$8]]);
|
|
11016
11410
|
|
|
11017
|
-
const _sfc_main$
|
|
11411
|
+
const _sfc_main$n = {};
|
|
11018
11412
|
|
|
11019
|
-
const _hoisted_1$
|
|
11413
|
+
const _hoisted_1$l = {
|
|
11020
11414
|
fill: "none",
|
|
11021
11415
|
stroke: "currentColor",
|
|
11022
11416
|
viewBox: "0 0 24 24",
|
|
@@ -11024,7 +11418,7 @@ const _hoisted_1$k = {
|
|
|
11024
11418
|
};
|
|
11025
11419
|
|
|
11026
11420
|
function _sfc_render$7(_ctx, _cache) {
|
|
11027
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11421
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$l, [...(_cache[0] || (_cache[0] = [
|
|
11028
11422
|
createBaseVNode("path", {
|
|
11029
11423
|
"stroke-linecap": "round",
|
|
11030
11424
|
"stroke-linejoin": "round",
|
|
@@ -11039,11 +11433,11 @@ function _sfc_render$7(_ctx, _cache) {
|
|
|
11039
11433
|
}, null, -1)
|
|
11040
11434
|
]))]))
|
|
11041
11435
|
}
|
|
11042
|
-
const IconEye = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11436
|
+
const IconEye = /*#__PURE__*/_export_sfc(_sfc_main$n, [['render',_sfc_render$7]]);
|
|
11043
11437
|
|
|
11044
|
-
const _sfc_main$
|
|
11438
|
+
const _sfc_main$m = {};
|
|
11045
11439
|
|
|
11046
|
-
const _hoisted_1$
|
|
11440
|
+
const _hoisted_1$k = {
|
|
11047
11441
|
fill: "none",
|
|
11048
11442
|
stroke: "currentColor",
|
|
11049
11443
|
viewBox: "0 0 24 24",
|
|
@@ -11051,7 +11445,7 @@ const _hoisted_1$j = {
|
|
|
11051
11445
|
};
|
|
11052
11446
|
|
|
11053
11447
|
function _sfc_render$6(_ctx, _cache) {
|
|
11054
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11448
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$k, [...(_cache[0] || (_cache[0] = [
|
|
11055
11449
|
createBaseVNode("path", {
|
|
11056
11450
|
"stroke-linecap": "round",
|
|
11057
11451
|
"stroke-linejoin": "round",
|
|
@@ -11060,43 +11454,43 @@ function _sfc_render$6(_ctx, _cache) {
|
|
|
11060
11454
|
}, null, -1)
|
|
11061
11455
|
]))]))
|
|
11062
11456
|
}
|
|
11063
|
-
const IconFootnote = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11457
|
+
const IconFootnote = /*#__PURE__*/_export_sfc(_sfc_main$m, [['render',_sfc_render$6]]);
|
|
11064
11458
|
|
|
11065
|
-
const _sfc_main$
|
|
11459
|
+
const _sfc_main$l = {};
|
|
11066
11460
|
|
|
11067
|
-
const _hoisted_1$
|
|
11461
|
+
const _hoisted_1$j = {
|
|
11068
11462
|
viewBox: "0 0 341.5 441.2",
|
|
11069
11463
|
fill: "currentColor"
|
|
11070
11464
|
};
|
|
11071
11465
|
|
|
11072
11466
|
function _sfc_render$5(_ctx, _cache) {
|
|
11073
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11467
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$j, [...(_cache[0] || (_cache[0] = [
|
|
11074
11468
|
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)
|
|
11075
11469
|
]))]))
|
|
11076
11470
|
}
|
|
11077
|
-
const SingleColumn = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11471
|
+
const SingleColumn = /*#__PURE__*/_export_sfc(_sfc_main$l, [['render',_sfc_render$5]]);
|
|
11078
11472
|
|
|
11079
|
-
const _sfc_main$
|
|
11473
|
+
const _sfc_main$k = {};
|
|
11080
11474
|
|
|
11081
|
-
const _hoisted_1$
|
|
11475
|
+
const _hoisted_1$i = {
|
|
11082
11476
|
viewBox: "0 0 653 441.2",
|
|
11083
11477
|
fill: "currentColor"
|
|
11084
11478
|
};
|
|
11085
11479
|
|
|
11086
11480
|
function _sfc_render$4(_ctx, _cache) {
|
|
11087
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11481
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$i, [...(_cache[0] || (_cache[0] = [
|
|
11088
11482
|
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)
|
|
11089
11483
|
]))]))
|
|
11090
11484
|
}
|
|
11091
|
-
const DoubleColumn = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11485
|
+
const DoubleColumn = /*#__PURE__*/_export_sfc(_sfc_main$k, [['render',_sfc_render$4]]);
|
|
11092
11486
|
|
|
11093
|
-
const _hoisted_1$
|
|
11487
|
+
const _hoisted_1$h = {
|
|
11094
11488
|
id: "columns-menu",
|
|
11095
11489
|
class: "w-full hidden md:grid grid-cols-3 gap-2 mt-3"
|
|
11096
11490
|
};
|
|
11097
|
-
const _hoisted_2$
|
|
11491
|
+
const _hoisted_2$b = ["title"];
|
|
11098
11492
|
|
|
11099
|
-
const _sfc_main$
|
|
11493
|
+
const _sfc_main$j = {
|
|
11100
11494
|
__name: 'OptionsColumns',
|
|
11101
11495
|
setup(__props) {
|
|
11102
11496
|
|
|
@@ -11110,7 +11504,7 @@ const isSafari = computed(() => {
|
|
|
11110
11504
|
|
|
11111
11505
|
|
|
11112
11506
|
return (_ctx, _cache) => {
|
|
11113
|
-
return (openBlock(), createElementBlock("div", _hoisted_1$
|
|
11507
|
+
return (openBlock(), createElementBlock("div", _hoisted_1$h, [
|
|
11114
11508
|
createBaseVNode("button", {
|
|
11115
11509
|
id: "single-column-button",
|
|
11116
11510
|
class: normalizeClass(["col-span-1 text-primary text-center cursor-pointer py-3 rounded-sm border", {
|
|
@@ -11123,7 +11517,7 @@ return (_ctx, _cache) => {
|
|
|
11123
11517
|
title: isSafari.value ? 'O navegador Safari não aceita visualização de coluna única.' : 'Coluna única'
|
|
11124
11518
|
}, [
|
|
11125
11519
|
createVNode(SingleColumn, { class: "mx-auto h-10 opacity-75" })
|
|
11126
|
-
], 10, _hoisted_2$
|
|
11520
|
+
], 10, _hoisted_2$b),
|
|
11127
11521
|
createBaseVNode("button", {
|
|
11128
11522
|
id: "double-column-button",
|
|
11129
11523
|
class: normalizeClass(["col-span-2 text-primary text-center cursor-pointer py-3 rounded-sm border", {
|
|
@@ -11146,13 +11540,13 @@ return (_ctx, _cache) => {
|
|
|
11146
11540
|
|
|
11147
11541
|
};
|
|
11148
11542
|
|
|
11149
|
-
const _hoisted_1$
|
|
11543
|
+
const _hoisted_1$g = {
|
|
11150
11544
|
id: "font-family-menu",
|
|
11151
11545
|
class: "w-full grid grid-cols-4 gap-2 my-3"
|
|
11152
11546
|
};
|
|
11153
|
-
const _hoisted_2$
|
|
11547
|
+
const _hoisted_2$a = ["onClick", "title"];
|
|
11154
11548
|
|
|
11155
|
-
const _sfc_main$
|
|
11549
|
+
const _sfc_main$i = {
|
|
11156
11550
|
__name: 'OptionsFontFamily',
|
|
11157
11551
|
setup(__props) {
|
|
11158
11552
|
|
|
@@ -11160,7 +11554,7 @@ const { textFont, fontsOptions, setTextFont } = useReaderSettings;
|
|
|
11160
11554
|
|
|
11161
11555
|
|
|
11162
11556
|
return (_ctx, _cache) => {
|
|
11163
|
-
return (openBlock(), createElementBlock("div", _hoisted_1$
|
|
11557
|
+
return (openBlock(), createElementBlock("div", _hoisted_1$g, [
|
|
11164
11558
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(fontsOptions), (font) => {
|
|
11165
11559
|
return (openBlock(), createElementBlock("button", {
|
|
11166
11560
|
key: font.name,
|
|
@@ -11170,7 +11564,7 @@ return (_ctx, _cache) => {
|
|
|
11170
11564
|
}]),
|
|
11171
11565
|
style: normalizeStyle(`font-family: ${font.name}`),
|
|
11172
11566
|
title: font.label ?? font.name
|
|
11173
|
-
}, " Ff ", 14, _hoisted_2$
|
|
11567
|
+
}, " Ff ", 14, _hoisted_2$a))
|
|
11174
11568
|
}), 128))
|
|
11175
11569
|
]))
|
|
11176
11570
|
}
|
|
@@ -11178,7 +11572,7 @@ return (_ctx, _cache) => {
|
|
|
11178
11572
|
|
|
11179
11573
|
};
|
|
11180
11574
|
|
|
11181
|
-
const _sfc_main$
|
|
11575
|
+
const _sfc_main$h = {
|
|
11182
11576
|
__name: 'OptionsFontSize',
|
|
11183
11577
|
setup(__props) {
|
|
11184
11578
|
|
|
@@ -11203,9 +11597,9 @@ return (_ctx, _cache) => {
|
|
|
11203
11597
|
|
|
11204
11598
|
};
|
|
11205
11599
|
|
|
11206
|
-
const _sfc_main$
|
|
11600
|
+
const _sfc_main$g = {};
|
|
11207
11601
|
|
|
11208
|
-
const _hoisted_1$
|
|
11602
|
+
const _hoisted_1$f = {
|
|
11209
11603
|
fill: "none",
|
|
11210
11604
|
stroke: "currentColor",
|
|
11211
11605
|
viewBox: "0 0 24 24",
|
|
@@ -11213,7 +11607,7 @@ const _hoisted_1$e = {
|
|
|
11213
11607
|
};
|
|
11214
11608
|
|
|
11215
11609
|
function _sfc_render$3(_ctx, _cache) {
|
|
11216
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11610
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$f, [...(_cache[0] || (_cache[0] = [
|
|
11217
11611
|
createBaseVNode("path", {
|
|
11218
11612
|
"stroke-linecap": "round",
|
|
11219
11613
|
"stroke-linejoin": "round",
|
|
@@ -11222,11 +11616,11 @@ function _sfc_render$3(_ctx, _cache) {
|
|
|
11222
11616
|
}, null, -1)
|
|
11223
11617
|
]))]))
|
|
11224
11618
|
}
|
|
11225
|
-
const IconSun = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11619
|
+
const IconSun = /*#__PURE__*/_export_sfc(_sfc_main$g, [['render',_sfc_render$3]]);
|
|
11226
11620
|
|
|
11227
|
-
const _sfc_main$
|
|
11621
|
+
const _sfc_main$f = {};
|
|
11228
11622
|
|
|
11229
|
-
const _hoisted_1$
|
|
11623
|
+
const _hoisted_1$e = {
|
|
11230
11624
|
fill: "none",
|
|
11231
11625
|
stroke: "currentColor",
|
|
11232
11626
|
viewBox: "0 0 24 24",
|
|
@@ -11234,7 +11628,7 @@ const _hoisted_1$d = {
|
|
|
11234
11628
|
};
|
|
11235
11629
|
|
|
11236
11630
|
function _sfc_render$2(_ctx, _cache) {
|
|
11237
|
-
return (openBlock(), createElementBlock("svg", _hoisted_1$
|
|
11631
|
+
return (openBlock(), createElementBlock("svg", _hoisted_1$e, [...(_cache[0] || (_cache[0] = [
|
|
11238
11632
|
createBaseVNode("path", {
|
|
11239
11633
|
"stroke-linecap": "round",
|
|
11240
11634
|
"stroke-linejoin": "round",
|
|
@@ -11243,9 +11637,9 @@ function _sfc_render$2(_ctx, _cache) {
|
|
|
11243
11637
|
}, null, -1)
|
|
11244
11638
|
]))]))
|
|
11245
11639
|
}
|
|
11246
|
-
const IconMoon = /*#__PURE__*/_export_sfc(_sfc_main$
|
|
11640
|
+
const IconMoon = /*#__PURE__*/_export_sfc(_sfc_main$f, [['render',_sfc_render$2]]);
|
|
11247
11641
|
|
|
11248
|
-
const _sfc_main$
|
|
11642
|
+
const _sfc_main$e = {
|
|
11249
11643
|
__name: 'OptionsColor',
|
|
11250
11644
|
setup(__props) {
|
|
11251
11645
|
|
|
@@ -11280,18 +11674,18 @@ return (_ctx, _cache) => {
|
|
|
11280
11674
|
|
|
11281
11675
|
};
|
|
11282
11676
|
|
|
11283
|
-
const _hoisted_1$
|
|
11284
|
-
const _hoisted_2$
|
|
11677
|
+
const _hoisted_1$d = { class: "w-full border-t border-areia mt-5 pt-5" };
|
|
11678
|
+
const _hoisted_2$9 = ["aria-checked"];
|
|
11285
11679
|
|
|
11286
11680
|
|
|
11287
|
-
const _sfc_main$
|
|
11681
|
+
const _sfc_main$d = {
|
|
11288
11682
|
__name: 'OptionsReadingProgress',
|
|
11289
11683
|
setup(__props) {
|
|
11290
11684
|
|
|
11291
11685
|
const { enabled, setEnabled } = useReadingProgress;
|
|
11292
11686
|
|
|
11293
11687
|
return (_ctx, _cache) => {
|
|
11294
|
-
return (openBlock(), createElementBlock("div", _hoisted_1$
|
|
11688
|
+
return (openBlock(), createElementBlock("div", _hoisted_1$d, [
|
|
11295
11689
|
createBaseVNode("button", {
|
|
11296
11690
|
id: "reading-progress-button",
|
|
11297
11691
|
class: "w-full flex items-center justify-between py-2 px-1 text-left",
|
|
@@ -11312,37 +11706,37 @@ return (_ctx, _cache) => {
|
|
|
11312
11706
|
class: normalizeClass(["inline-block h-5 w-5 rounded-full bg-white shadow transition-transform", unref(enabled) ? 'translate-x-5' : 'translate-x-0'])
|
|
11313
11707
|
}, null, 2)
|
|
11314
11708
|
], 2)
|
|
11315
|
-
], 8, _hoisted_2$
|
|
11709
|
+
], 8, _hoisted_2$9)
|
|
11316
11710
|
]))
|
|
11317
11711
|
}
|
|
11318
11712
|
}
|
|
11319
11713
|
|
|
11320
11714
|
};
|
|
11321
11715
|
|
|
11322
|
-
const _hoisted_1$
|
|
11716
|
+
const _hoisted_1$c = {
|
|
11323
11717
|
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",
|
|
11324
11718
|
role: "Opções",
|
|
11325
11719
|
"aria-orientation": "vertical",
|
|
11326
11720
|
"aria-labelledby": "options-menu"
|
|
11327
11721
|
};
|
|
11328
|
-
const _hoisted_2$
|
|
11329
|
-
const _hoisted_3$
|
|
11722
|
+
const _hoisted_2$8 = { id: "footnotes-button" };
|
|
11723
|
+
const _hoisted_3$4 = {
|
|
11330
11724
|
class: "w-full flex justify-center items-center py-3 lowercase",
|
|
11331
11725
|
id: "visualize-title"
|
|
11332
11726
|
};
|
|
11333
|
-
const _hoisted_4$
|
|
11727
|
+
const _hoisted_4$2 = { class: "w-full grid grid-cols-4 gap-2 my-3" };
|
|
11334
11728
|
|
|
11335
11729
|
|
|
11336
|
-
const _sfc_main$
|
|
11730
|
+
const _sfc_main$c = {
|
|
11337
11731
|
__name: 'OptionsDropdown',
|
|
11338
11732
|
setup(__props) {
|
|
11339
11733
|
|
|
11340
11734
|
|
|
11341
11735
|
return (_ctx, _cache) => {
|
|
11342
|
-
return (openBlock(), createElementBlock("div", _hoisted_1$
|
|
11736
|
+
return (openBlock(), createElementBlock("div", _hoisted_1$c, [
|
|
11343
11737
|
createBaseVNode("div", null, [
|
|
11344
11738
|
renderSlot(_ctx.$slots, "optionsTop"),
|
|
11345
|
-
createBaseVNode("div", _hoisted_2$
|
|
11739
|
+
createBaseVNode("div", _hoisted_2$8, [
|
|
11346
11740
|
createBaseVNode("button", {
|
|
11347
11741
|
onClick: _cache[0] || (_cache[0] = withModifiers($event => (unref(useFootnotes).setShowFootnotes(true)), ["prevent"])),
|
|
11348
11742
|
class: "w-full flex justify-center items-center py-3 lowercase"
|
|
@@ -11352,18 +11746,18 @@ return (_ctx, _cache) => {
|
|
|
11352
11746
|
]),
|
|
11353
11747
|
_cache[2] || (_cache[2] = createBaseVNode("div", { class: "w-full border-b border-areia my-3" }, null, -1))
|
|
11354
11748
|
]),
|
|
11355
|
-
createBaseVNode("div", _hoisted_3$
|
|
11749
|
+
createBaseVNode("div", _hoisted_3$4, [
|
|
11356
11750
|
createVNode(IconEye, { class: "w-6 h-6" }),
|
|
11357
11751
|
_cache[3] || (_cache[3] = createBaseVNode("span", { class: "ml-4" }, "Visualização", -1))
|
|
11358
11752
|
]),
|
|
11753
|
+
createVNode(_sfc_main$j),
|
|
11359
11754
|
createVNode(_sfc_main$i),
|
|
11360
|
-
|
|
11361
|
-
|
|
11362
|
-
createVNode(_sfc_main$
|
|
11363
|
-
createVNode(_sfc_main$d)
|
|
11755
|
+
createBaseVNode("div", _hoisted_4$2, [
|
|
11756
|
+
createVNode(_sfc_main$h),
|
|
11757
|
+
createVNode(_sfc_main$e)
|
|
11364
11758
|
]),
|
|
11365
11759
|
(unref(useReadingProgress).available.value)
|
|
11366
|
-
? (openBlock(), createBlock(_sfc_main$
|
|
11760
|
+
? (openBlock(), createBlock(_sfc_main$d, { key: 0 }))
|
|
11367
11761
|
: createCommentVNode("", true),
|
|
11368
11762
|
_cache[4] || (_cache[4] = createBaseVNode("div", { class: "hidden w-full border-b border-areia my-8" }, null, -1)),
|
|
11369
11763
|
renderSlot(_ctx.$slots, "optionsBottom")
|
|
@@ -11374,11 +11768,11 @@ return (_ctx, _cache) => {
|
|
|
11374
11768
|
|
|
11375
11769
|
};
|
|
11376
11770
|
|
|
11377
|
-
const _hoisted_1$
|
|
11378
|
-
const _hoisted_2$
|
|
11771
|
+
const _hoisted_1$b = { class: "flex" };
|
|
11772
|
+
const _hoisted_2$7 = ["aria-expanded"];
|
|
11379
11773
|
|
|
11380
11774
|
|
|
11381
|
-
const _sfc_main$
|
|
11775
|
+
const _sfc_main$b = {
|
|
11382
11776
|
__name: 'OptionsButton',
|
|
11383
11777
|
setup(__props) {
|
|
11384
11778
|
|
|
@@ -11409,11 +11803,12 @@ return (_ctx, _cache) => {
|
|
|
11409
11803
|
ref: button,
|
|
11410
11804
|
class: "relative"
|
|
11411
11805
|
}, [
|
|
11412
|
-
createBaseVNode("div", _hoisted_1$
|
|
11806
|
+
createBaseVNode("div", _hoisted_1$b, [
|
|
11413
11807
|
createBaseVNode("button", {
|
|
11414
11808
|
onClick: _cache[0] || (_cache[0] = withModifiers($event => (toggleSummary()), ["prevent"])),
|
|
11415
11809
|
class: "border p-3 shadow flex items-center border-white text-white",
|
|
11416
11810
|
id: "options-button",
|
|
11811
|
+
"aria-label": "Opções",
|
|
11417
11812
|
"aria-haspopup": "true",
|
|
11418
11813
|
"aria-expanded": show.value
|
|
11419
11814
|
}, [
|
|
@@ -11427,7 +11822,7 @@ return (_ctx, _cache) => {
|
|
|
11427
11822
|
key: 1,
|
|
11428
11823
|
class: "w-6 h-6"
|
|
11429
11824
|
}))
|
|
11430
|
-
], 8, _hoisted_2$
|
|
11825
|
+
], 8, _hoisted_2$7),
|
|
11431
11826
|
createBaseVNode("button", {
|
|
11432
11827
|
onClick: _cache[1] || (_cache[1] = withModifiers($event => (unref(toggleFullScreen)()), ["prevent"])),
|
|
11433
11828
|
class: "hidden md:flex items-center border p-3 shadow ml-3 border-white text-white"
|
|
@@ -11444,7 +11839,7 @@ return (_ctx, _cache) => {
|
|
|
11444
11839
|
"leave-to-class": "opacity-0 scale-95"
|
|
11445
11840
|
}, {
|
|
11446
11841
|
default: withCtx(() => [
|
|
11447
|
-
withDirectives(createVNode(_sfc_main$
|
|
11842
|
+
withDirectives(createVNode(_sfc_main$c, null, {
|
|
11448
11843
|
optionsTop: withCtx(() => [
|
|
11449
11844
|
renderSlot(_ctx.$slots, "optionsTop")
|
|
11450
11845
|
]),
|
|
@@ -11464,20 +11859,194 @@ return (_ctx, _cache) => {
|
|
|
11464
11859
|
|
|
11465
11860
|
};
|
|
11466
11861
|
|
|
11467
|
-
const _hoisted_1$
|
|
11468
|
-
|
|
11469
|
-
|
|
11862
|
+
const _hoisted_1$a = {
|
|
11863
|
+
key: 0,
|
|
11864
|
+
id: "search-menu"
|
|
11865
|
+
};
|
|
11866
|
+
const _hoisted_2$6 = ["aria-expanded"];
|
|
11867
|
+
const _hoisted_3$3 = { class: "search-input-row" };
|
|
11868
|
+
const _hoisted_4$1 = { class: "search-input-control" };
|
|
11869
|
+
const _hoisted_5$1 = { class: "search-results-row" };
|
|
11870
|
+
const _hoisted_6$1 = {
|
|
11871
|
+
id: "search-status",
|
|
11872
|
+
role: "status",
|
|
11873
|
+
"aria-live": "polite"
|
|
11470
11874
|
};
|
|
11471
|
-
const
|
|
11875
|
+
const _hoisted_7$1 = ["disabled"];
|
|
11876
|
+
const _hoisted_8 = ["disabled"];
|
|
11877
|
+
|
|
11878
|
+
|
|
11879
|
+
const _sfc_main$a = {
|
|
11880
|
+
__name: 'SearchButton',
|
|
11881
|
+
setup(__props) {
|
|
11882
|
+
|
|
11883
|
+
const search = inject(searchKey);
|
|
11884
|
+
const { enabled, open, query, input, button, total, status, pending } = search;
|
|
11885
|
+
|
|
11886
|
+
function clearQuery() {
|
|
11887
|
+
query.value = '';
|
|
11888
|
+
input.value?.focus({ preventScroll: true });
|
|
11889
|
+
}
|
|
11890
|
+
|
|
11891
|
+
return (_ctx, _cache) => {
|
|
11892
|
+
return (unref(enabled))
|
|
11893
|
+
? (openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
11894
|
+
createBaseVNode("button", {
|
|
11895
|
+
ref_key: "button",
|
|
11896
|
+
ref: button,
|
|
11897
|
+
id: "search-button",
|
|
11898
|
+
type: "button",
|
|
11899
|
+
class: "search-icon-button border p-3 shadow flex items-center border-white text-white",
|
|
11900
|
+
"aria-label": "Buscar no texto",
|
|
11901
|
+
title: "Buscar no texto (Ctrl+F)",
|
|
11902
|
+
"aria-controls": "search-dropdown",
|
|
11903
|
+
"aria-expanded": unref(open),
|
|
11904
|
+
onClick: _cache[0] || (_cache[0] = $event => (unref(open) ? unref(search).close() : unref(search).show()))
|
|
11905
|
+
}, [...(_cache[10] || (_cache[10] = [
|
|
11906
|
+
createBaseVNode("svg", {
|
|
11907
|
+
class: "w-6 h-6",
|
|
11908
|
+
viewBox: "0 0 24 24",
|
|
11909
|
+
fill: "none",
|
|
11910
|
+
stroke: "currentColor",
|
|
11911
|
+
"stroke-width": "2",
|
|
11912
|
+
"aria-hidden": "true"
|
|
11913
|
+
}, [
|
|
11914
|
+
createBaseVNode("circle", {
|
|
11915
|
+
cx: "10.5",
|
|
11916
|
+
cy: "10.5",
|
|
11917
|
+
r: "6.5"
|
|
11918
|
+
}),
|
|
11919
|
+
createBaseVNode("path", { d: "m16 16 5 5" })
|
|
11920
|
+
], -1)
|
|
11921
|
+
]))], 8, _hoisted_2$6),
|
|
11922
|
+
withDirectives(createBaseVNode("form", {
|
|
11923
|
+
id: "search-dropdown",
|
|
11924
|
+
role: "search",
|
|
11925
|
+
"aria-label": "Buscar no texto",
|
|
11926
|
+
onSubmit: _cache[6] || (_cache[6] = withModifiers($event => (unref(search).step(1)), ["prevent"])),
|
|
11927
|
+
onWheel: _cache[7] || (_cache[7] = withModifiers(() => {}, ["stop"])),
|
|
11928
|
+
onKeydown: [
|
|
11929
|
+
_cache[8] || (_cache[8] = withModifiers(() => {}, ["stop"])),
|
|
11930
|
+
_cache[9] || (_cache[9] = withKeys(withModifiers($event => (unref(search).close()), ["prevent"]), ["esc"]))
|
|
11931
|
+
]
|
|
11932
|
+
}, [
|
|
11933
|
+
createBaseVNode("div", _hoisted_3$3, [
|
|
11934
|
+
createBaseVNode("div", _hoisted_4$1, [
|
|
11935
|
+
withDirectives(createBaseVNode("input", {
|
|
11936
|
+
id: "search-input",
|
|
11937
|
+
ref_key: "input",
|
|
11938
|
+
ref: input,
|
|
11939
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = $event => (isRef(query) ? (query).value = $event : null)),
|
|
11940
|
+
type: "search",
|
|
11941
|
+
placeholder: "Palavra ou expressão",
|
|
11942
|
+
autocomplete: "off",
|
|
11943
|
+
spellcheck: "false",
|
|
11944
|
+
"aria-label": "Buscar no texto",
|
|
11945
|
+
"aria-describedby": "search-status",
|
|
11946
|
+
onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers($event => (!$event.isComposing && unref(search).step($event.shiftKey ? -1 : 1)), ["prevent"]), ["enter"]))
|
|
11947
|
+
}, null, 544), [
|
|
11948
|
+
[vModelText, unref(query)]
|
|
11949
|
+
]),
|
|
11950
|
+
(unref(query))
|
|
11951
|
+
? (openBlock(), createElementBlock("button", {
|
|
11952
|
+
key: 0,
|
|
11953
|
+
id: "search-clear-button",
|
|
11954
|
+
class: "search-icon-button",
|
|
11955
|
+
type: "button",
|
|
11956
|
+
"aria-label": "Limpar busca",
|
|
11957
|
+
title: "Limpar busca",
|
|
11958
|
+
onClick: clearQuery
|
|
11959
|
+
}, [
|
|
11960
|
+
createVNode(IconClose, {
|
|
11961
|
+
class: "w-4 h-4",
|
|
11962
|
+
"aria-hidden": "true"
|
|
11963
|
+
})
|
|
11964
|
+
]))
|
|
11965
|
+
: createCommentVNode("", true)
|
|
11966
|
+
]),
|
|
11967
|
+
createBaseVNode("button", {
|
|
11968
|
+
class: "search-icon-button",
|
|
11969
|
+
type: "button",
|
|
11970
|
+
"aria-label": "Fechar busca",
|
|
11971
|
+
title: "Fechar (Esc)",
|
|
11972
|
+
onClick: _cache[3] || (_cache[3] = $event => (unref(search).close()))
|
|
11973
|
+
}, [
|
|
11974
|
+
createVNode(IconClose, {
|
|
11975
|
+
class: "w-6 h-6",
|
|
11976
|
+
"aria-hidden": "true"
|
|
11977
|
+
})
|
|
11978
|
+
])
|
|
11979
|
+
]),
|
|
11980
|
+
createBaseVNode("div", _hoisted_5$1, [
|
|
11981
|
+
createBaseVNode("span", _hoisted_6$1, toDisplayString(unref(status)), 1),
|
|
11982
|
+
createBaseVNode("button", {
|
|
11983
|
+
class: "search-icon-button",
|
|
11984
|
+
type: "button",
|
|
11985
|
+
"aria-label": "Ocorrência anterior",
|
|
11986
|
+
title: "Anterior (Shift+Enter)",
|
|
11987
|
+
disabled: !unref(total) || unref(pending),
|
|
11988
|
+
onClick: _cache[4] || (_cache[4] = $event => (unref(search).step(-1)))
|
|
11989
|
+
}, [...(_cache[11] || (_cache[11] = [
|
|
11990
|
+
createBaseVNode("svg", {
|
|
11991
|
+
class: "w-5 h-5",
|
|
11992
|
+
viewBox: "0 0 24 24",
|
|
11993
|
+
fill: "none",
|
|
11994
|
+
stroke: "currentColor",
|
|
11995
|
+
"stroke-width": "2",
|
|
11996
|
+
"stroke-linecap": "round",
|
|
11997
|
+
"stroke-linejoin": "round",
|
|
11998
|
+
"aria-hidden": "true"
|
|
11999
|
+
}, [
|
|
12000
|
+
createBaseVNode("path", { d: "m6 14 6-6 6 6" })
|
|
12001
|
+
], -1)
|
|
12002
|
+
]))], 8, _hoisted_7$1),
|
|
12003
|
+
createBaseVNode("button", {
|
|
12004
|
+
class: "search-icon-button",
|
|
12005
|
+
type: "button",
|
|
12006
|
+
"aria-label": "Próxima ocorrência",
|
|
12007
|
+
title: "Próxima (Enter)",
|
|
12008
|
+
disabled: !unref(total) || unref(pending),
|
|
12009
|
+
onClick: _cache[5] || (_cache[5] = $event => (unref(search).step(1)))
|
|
12010
|
+
}, [...(_cache[12] || (_cache[12] = [
|
|
12011
|
+
createBaseVNode("svg", {
|
|
12012
|
+
class: "w-5 h-5",
|
|
12013
|
+
viewBox: "0 0 24 24",
|
|
12014
|
+
fill: "none",
|
|
12015
|
+
stroke: "currentColor",
|
|
12016
|
+
"stroke-width": "2",
|
|
12017
|
+
"stroke-linecap": "round",
|
|
12018
|
+
"stroke-linejoin": "round",
|
|
12019
|
+
"aria-hidden": "true"
|
|
12020
|
+
}, [
|
|
12021
|
+
createBaseVNode("path", { d: "m6 10 6 6 6-6" })
|
|
12022
|
+
], -1)
|
|
12023
|
+
]))], 8, _hoisted_8)
|
|
12024
|
+
])
|
|
12025
|
+
], 544), [
|
|
12026
|
+
[vShow, unref(open)]
|
|
12027
|
+
])
|
|
12028
|
+
]))
|
|
12029
|
+
: createCommentVNode("", true)
|
|
12030
|
+
}
|
|
12031
|
+
}
|
|
12032
|
+
|
|
12033
|
+
};
|
|
12034
|
+
|
|
12035
|
+
const _hoisted_1$9 = { id: "header-titles" };
|
|
12036
|
+
const _hoisted_2$5 = { class: "header-actions" };
|
|
11472
12037
|
|
|
11473
12038
|
const _sfc_main$9 = {
|
|
11474
12039
|
__name: 'HeaderSlot',
|
|
11475
12040
|
setup(__props) {
|
|
11476
|
-
|
|
12041
|
+
|
|
12042
|
+
const search = inject(searchKey);
|
|
11477
12043
|
|
|
11478
12044
|
return (_ctx, _cache) => {
|
|
11479
|
-
return (openBlock(), createElementBlock("header",
|
|
11480
|
-
|
|
12045
|
+
return (openBlock(), createElementBlock("header", {
|
|
12046
|
+
id: "component-header",
|
|
12047
|
+
class: normalizeClass(["bg-primary flex justify-between items-center p-4", { 'search-enabled': unref(search).enabled.value }])
|
|
12048
|
+
}, [
|
|
12049
|
+
createVNode(_sfc_main$q, null, {
|
|
11481
12050
|
summaryTop: withCtx(() => [
|
|
11482
12051
|
renderSlot(_ctx.$slots, "summaryTop")
|
|
11483
12052
|
]),
|
|
@@ -11486,19 +12055,22 @@ return (_ctx, _cache) => {
|
|
|
11486
12055
|
]),
|
|
11487
12056
|
_: 3
|
|
11488
12057
|
}),
|
|
11489
|
-
createBaseVNode("div",
|
|
12058
|
+
createBaseVNode("div", _hoisted_1$9, [
|
|
11490
12059
|
renderSlot(_ctx.$slots, "header")
|
|
11491
12060
|
]),
|
|
11492
|
-
|
|
11493
|
-
|
|
11494
|
-
|
|
11495
|
-
|
|
11496
|
-
|
|
11497
|
-
|
|
11498
|
-
|
|
11499
|
-
|
|
11500
|
-
|
|
11501
|
-
|
|
12061
|
+
createBaseVNode("div", _hoisted_2$5, [
|
|
12062
|
+
createVNode(_sfc_main$a),
|
|
12063
|
+
createVNode(_sfc_main$b, null, {
|
|
12064
|
+
optionsTop: withCtx(() => [
|
|
12065
|
+
renderSlot(_ctx.$slots, "optionsTop")
|
|
12066
|
+
]),
|
|
12067
|
+
optionsBottom: withCtx(() => [
|
|
12068
|
+
renderSlot(_ctx.$slots, "optionsBottom")
|
|
12069
|
+
]),
|
|
12070
|
+
_: 3
|
|
12071
|
+
})
|
|
12072
|
+
])
|
|
12073
|
+
], 2))
|
|
11502
12074
|
}
|
|
11503
12075
|
}
|
|
11504
12076
|
|
|
@@ -11632,7 +12204,7 @@ const _hoisted_1$5 = { class: "[ typeArea ] h-full relative transition-opacity d
|
|
|
11632
12204
|
const _sfc_main$5 = {
|
|
11633
12205
|
__name: 'ReaderWrapper',
|
|
11634
12206
|
setup(__props) {
|
|
11635
|
-
const { currentPage } = usePagination;
|
|
12207
|
+
const { currentPage, changeSource } = usePagination;
|
|
11636
12208
|
|
|
11637
12209
|
const el = ref(null);
|
|
11638
12210
|
|
|
@@ -11655,13 +12227,13 @@ return (_ctx, _cache) => {
|
|
|
11655
12227
|
return (openBlock(), createElementBlock("div", {
|
|
11656
12228
|
ref_key: "el",
|
|
11657
12229
|
ref: el,
|
|
11658
|
-
class: "columnsArea",
|
|
12230
|
+
class: normalizeClass(["columnsArea", { 'search-navigation': unref(changeSource) === 'search' }]),
|
|
11659
12231
|
style: normalizeStyle(`margin-left: -${100 * (unref(currentPage) - 1)}%`)
|
|
11660
12232
|
}, [
|
|
11661
12233
|
createBaseVNode("div", _hoisted_1$5, [
|
|
11662
12234
|
renderSlot(_ctx.$slots, "default")
|
|
11663
12235
|
])
|
|
11664
|
-
],
|
|
12236
|
+
], 6))
|
|
11665
12237
|
}
|
|
11666
12238
|
}
|
|
11667
12239
|
|
|
@@ -11673,7 +12245,7 @@ const _hoisted_1$4 = {
|
|
|
11673
12245
|
class: "[ reference-popup ] bg-gray-800 text-white fixed z-40 bottom-0 md:bottom-14 right-0 md:right-3 rounded flex justify-between p-4 shadow w-full md:w-2/5"
|
|
11674
12246
|
};
|
|
11675
12247
|
const _hoisted_2$2 = ["innerHTML"];
|
|
11676
|
-
const _hoisted_3$
|
|
12248
|
+
const _hoisted_3$2 = { class: "mt-3 flex self-end" };
|
|
11677
12249
|
|
|
11678
12250
|
|
|
11679
12251
|
const _sfc_main$4 = {
|
|
@@ -11709,7 +12281,7 @@ return (_ctx, _cache) => {
|
|
|
11709
12281
|
class: "w-4/5",
|
|
11710
12282
|
innerHTML: unref(reference).ref
|
|
11711
12283
|
}, null, 8, _hoisted_2$2),
|
|
11712
|
-
createBaseVNode("div", _hoisted_3$
|
|
12284
|
+
createBaseVNode("div", _hoisted_3$2, [
|
|
11713
12285
|
createBaseVNode("button", {
|
|
11714
12286
|
onClick: _cache[0] || (_cache[0] = withModifiers($event => (closeRef()), ["prevent"])),
|
|
11715
12287
|
class: "button button-negative"
|
|
@@ -11791,7 +12363,7 @@ const _hoisted_1$1 = {
|
|
|
11791
12363
|
class: "absolute top-0 right-0 w-96 md:w-[40em] flex-shrink-0 h-screen overflow-auto overflow-x-hidden z-20 shadow-2xl"
|
|
11792
12364
|
};
|
|
11793
12365
|
const _hoisted_2$1 = { class: "w-full p-4" };
|
|
11794
|
-
const _hoisted_3 = { class: "text-areia py-4 pl-4" };
|
|
12366
|
+
const _hoisted_3$1 = { class: "text-areia py-4 pl-4" };
|
|
11795
12367
|
const _hoisted_4 = { class: "flex items-center mb-6" };
|
|
11796
12368
|
const _hoisted_5 = { class: "ml-4" };
|
|
11797
12369
|
const _hoisted_6 = { class: "ml-10" };
|
|
@@ -11860,7 +12432,7 @@ return (_ctx, _cache) => {
|
|
|
11860
12432
|
createVNode(IconClose, { class: "w-6 h-6 text-white" })
|
|
11861
12433
|
]),
|
|
11862
12434
|
createBaseVNode("div", _hoisted_2$1, [
|
|
11863
|
-
createBaseVNode("header", _hoisted_3, [
|
|
12435
|
+
createBaseVNode("header", _hoisted_3$1, [
|
|
11864
12436
|
createBaseVNode("div", _hoisted_4, [
|
|
11865
12437
|
createVNode(IconNotes, { class: "w-8 h-8" }),
|
|
11866
12438
|
createBaseVNode("span", _hoisted_5, [
|
|
@@ -11899,12 +12471,17 @@ return (_ctx, _cache) => {
|
|
|
11899
12471
|
};
|
|
11900
12472
|
const FootnotesAside = /*#__PURE__*/_export_sfc(_sfc_main$1, [['__scopeId',"data-v-5391e486"]]);
|
|
11901
12473
|
|
|
11902
|
-
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";
|
|
12474
|
+
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\tposition: relative;\n}\n.header-actions {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0.75rem;\n\tflex-shrink: 0;\n}\n@media (max-width: 600px) {\n.search-enabled #options-button > span { display: none;\n}\n}\n#component-header {\n\tposition: relative;\n\tz-index: 20;\n}\n#search-dropdown {\n\tposition: absolute;\n\ttop: calc(100% + 0.25rem);\n\tright: 1rem;\n\twidth: min(23rem, calc(100% - 2rem));\n\tpadding: 1rem;\n\tbackground: #fff;\n\tcolor: #222;\n\tbox-shadow: 0 4px 12px #0003;\n\tfont-size: 0.875rem;\n\tline-height: 1.5;\n}\n.search-input-row, .search-results-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0.5rem;\n}\n.search-results-row { margin-top: 0.5rem;\n}\n.search-input-control { position: relative; flex: 1; min-width: 0;\n}\n#search-input {\n\tmin-width: 0;\n\twidth: 100%;\n\tpadding: 0.5rem;\n\tpadding-right: 2.75rem;\n\tborder: 1px solid currentColor;\n\tborder-radius: 0.25rem;\n\tbackground: transparent;\n\tcolor: inherit;\n\tfont: inherit;\n}\n#search-status { flex: 1;\n}\n#search-input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none;\n}\n#search-clear-button {\n\tposition: absolute;\n\tright: 0.25rem;\n\ttop: 0;\n\tbottom: 0;\n\tmargin: auto;\n\twidth: 2rem;\n\theight: 2rem;\n}\n.search-icon-button {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\tborder-radius: 0.25rem;\n\tcursor: pointer;\n\ttransition: background-color 120ms ease, transform 80ms ease;\n}\n#search-button {\n\t--search-control-hover: #ffffff26;\n\t--search-control-active: #ffffff40;\n}\n.search-icon-button:not(:disabled):hover,\n.search-icon-button:not(:disabled):focus-visible {\n\tbackground-color: var(--search-control-hover, #0000000d);\n}\n.search-icon-button:not(:disabled):active {\n\tbackground-color: var(--search-control-active, #0000001f);\n\ttransform: scale(0.94);\n}\n#search-dropdown button { padding: 0.375rem;\n}\n#search-dropdown button:disabled { opacity: 0.4; cursor: default;\n}\n#search-dropdown :focus-visible, #search-button:focus-visible {\n\toutline: 2px solid currentColor;\n\toutline-offset: 2px;\n}\n.search-highlights {\n\tposition: absolute;\n\tinset: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n}\n.search-highlight-track { width: 100%; height: 100%;\n}\n.search-highlight {\n\tposition: absolute;\n\tbackground: #ffc40033;\n\tborder-radius: 2px;\n}\n.search-highlight-active {\n\tbackground: #ffc40066;\n\toutline: 1px solid #b87800;\n}\n.columnsArea.search-navigation { transition: margin-left 220ms ease;\n}\n.search-highlight-track.search-navigation { transition: transform 220ms ease;\n}\n@media (prefers-reduced-motion: reduce) {\n.columnsArea.search-navigation, .search-highlight-track.search-navigation { transition: none;\n}\n.search-icon-button { transition: none;\n}\n.search-icon-button:not(:disabled):active { transform: none;\n}\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";
|
|
11903
12475
|
|
|
11904
12476
|
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}";
|
|
11905
12477
|
|
|
11906
12478
|
const _hoisted_1 = { class: "text-white text-center text-sm" };
|
|
11907
12479
|
const _hoisted_2 = { class: "text-white text-center text-xs" };
|
|
12480
|
+
const _hoisted_3 = {
|
|
12481
|
+
key: 0,
|
|
12482
|
+
class: "search-highlights",
|
|
12483
|
+
"aria-hidden": "true"
|
|
12484
|
+
};
|
|
11908
12485
|
|
|
11909
12486
|
|
|
11910
12487
|
const _sfc_main = {
|
|
@@ -11932,7 +12509,9 @@ const { width, height } = useWindowSize();
|
|
|
11932
12509
|
|
|
11933
12510
|
const readerComponent = ref(null);
|
|
11934
12511
|
const contentArea = ref(null);
|
|
11935
|
-
const rootComponent = ref(null);
|
|
12512
|
+
const rootComponent = ref(null);
|
|
12513
|
+
const search = useSearch(rootComponent, readerComponent, contentArea);
|
|
12514
|
+
provide(searchKey, search);
|
|
11936
12515
|
let paginationRevision = 0;
|
|
11937
12516
|
let hostElement = null;
|
|
11938
12517
|
|
|
@@ -11953,6 +12532,7 @@ function getState() {
|
|
|
11953
12532
|
columns: columns.value,
|
|
11954
12533
|
mode: mode.value,
|
|
11955
12534
|
blocked: useReaderSettings.blocked.value,
|
|
12535
|
+
searchEnabled: search.enabled.value,
|
|
11956
12536
|
readingProgressEnabled: useReaderSettings.readingProgressEnabled.value
|
|
11957
12537
|
},
|
|
11958
12538
|
content: {
|
|
@@ -12009,7 +12589,8 @@ function estimatePagesAndSyncProgress() {
|
|
|
12009
12589
|
syncReadingProgress(true);
|
|
12010
12590
|
|
|
12011
12591
|
useReadingProgress.resume();
|
|
12012
|
-
useReadingProgress.save(currentPage.value, nextTotal);
|
|
12592
|
+
useReadingProgress.save(currentPage.value, nextTotal);
|
|
12593
|
+
search.measure();
|
|
12013
12594
|
}));
|
|
12014
12595
|
}
|
|
12015
12596
|
|
|
@@ -12030,7 +12611,8 @@ onMounted(async () => {
|
|
|
12030
12611
|
hostElement.nextPage = () => usePagination.next(false, 'api');
|
|
12031
12612
|
hostElement.previousPage = () => usePagination.prev(false, 'api');
|
|
12032
12613
|
}
|
|
12033
|
-
useReaderSettings.initSettings(props.readerSettings);
|
|
12614
|
+
useReaderSettings.initSettings(props.readerSettings);
|
|
12615
|
+
search.init(props.readerSettings);
|
|
12034
12616
|
useReadingProgress.init(
|
|
12035
12617
|
props.readerSettings,
|
|
12036
12618
|
props.bookTitle || bookTitle.value
|
|
@@ -12183,7 +12765,23 @@ return (_ctx, _cache) => {
|
|
|
12183
12765
|
], 4)
|
|
12184
12766
|
]),
|
|
12185
12767
|
_: 3
|
|
12186
|
-
})
|
|
12768
|
+
}),
|
|
12769
|
+
(unref(search).open.value)
|
|
12770
|
+
? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
12771
|
+
createBaseVNode("div", {
|
|
12772
|
+
class: normalizeClass(["search-highlight-track", { 'search-navigation': unref(changeSource) === 'search' }]),
|
|
12773
|
+
style: normalizeStyle({ transform: `translateX(-${100 * (unref(currentPage) - 1)}%)` })
|
|
12774
|
+
}, [
|
|
12775
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(search).rectangles.value, (rectangle) => {
|
|
12776
|
+
return (openBlock(), createElementBlock("span", {
|
|
12777
|
+
key: rectangle.key,
|
|
12778
|
+
class: normalizeClass(["search-highlight", { 'search-highlight-active': rectangle.active }]),
|
|
12779
|
+
style: normalizeStyle(rectangle.style)
|
|
12780
|
+
}, null, 6))
|
|
12781
|
+
}), 128))
|
|
12782
|
+
], 6)
|
|
12783
|
+
]))
|
|
12784
|
+
: createCommentVNode("", true)
|
|
12187
12785
|
], 512)
|
|
12188
12786
|
]),
|
|
12189
12787
|
_: 3
|
|
@@ -12202,7 +12800,7 @@ return (_ctx, _cache) => {
|
|
|
12202
12800
|
};
|
|
12203
12801
|
const App = /*#__PURE__*/_export_sfc(_sfc_main, [['styles',[_style_0,_style_1]]]);
|
|
12204
12802
|
|
|
12205
|
-
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}";
|
|
12803
|
+
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.inline {\n display: inline;\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.contents {\n display: contents;\n}\n\n.hidden {\n display: none;\n}\n\n.h-10 {\n height: 2.5rem;\n}\n\n.h-4 {\n height: 1rem;\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 {\n width: 1rem;\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}";
|
|
12206
12804
|
|
|
12207
12805
|
// https://maximomussini.com/posts/vue-custom-elements
|
|
12208
12806
|
|