@somecat/epub-reader 0.1.5 → 0.1.6
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/dist/react.cjs +85 -79
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +85 -79
- package/dist/react.js.map +1 -1
- package/dist/vue.cjs +0 -0
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +0 -0
- package/dist/vue.js.map +1 -1
- package/package.json +1 -1
- package/style.css +40 -3
package/dist/react.cjs
CHANGED
|
@@ -259,6 +259,7 @@ var icons = {
|
|
|
259
259
|
x: '<path d="M18 6L6 18M6 6l12 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',
|
|
260
260
|
type: '<path d="M4 7V4h16v3M9 20h6M12 4v16" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',
|
|
261
261
|
sliders: '<path d="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',
|
|
262
|
+
progress: '<g transform="scale(0.0234375)"><path fill="currentColor" d="M835.79 610.26a25.38 25.38 0 1 1 0-50.77h129.77a25.38 25.38 0 0 1 0 50.77zM58.23 606.63a25.38 25.38 0 1 1 0-50.77h64.87a25.38 25.38 0 1 1 0 50.77z"/><path fill="currentColor" d="M479.73 264.12C627.34 264.12 747 383.78 747 531.39S627.34 798.66 479.73 798.66 212.46 679 212.46 531.39s119.66-267.27 267.27-267.27m0-46a312.43 312.43 0 1 0 122 24.64 311.35 311.35 0 0 0-122-24.64z"/></g>',
|
|
262
263
|
settings: '<path fill="currentColor" fill-rule="evenodd" d="M12.563 3.2h-1.126l-.645 2.578l-.647.2a6.3 6.3 0 0 0-1.091.452l-.599.317l-2.28-1.368l-.796.797l1.368 2.28l-.317.598a6.3 6.3 0 0 0-.453 1.091l-.199.647l-2.578.645v1.126l2.578.645l.2.647q.173.568.452 1.091l.317.599l-1.368 2.28l.797.796l2.28-1.368l.598.317q.523.278 1.091.453l.647.199l.645 2.578h1.126l.645-2.578l.647-.2a6.3 6.3 0 0 0 1.091-.452l.599-.317l2.28 1.368l.796-.797l-1.368-2.28l.317-.598q.278-.523.453-1.091l.199-.647l2.578-.645v-1.126l-2.578-.645l-.2-.647a6.3 6.3 0 0 0-.452-1.091l-.317-.599l1.368-2.28l-.797-.796l-2.28 1.368l-.598-.317a6.3 6.3 0 0 0-1.091-.453l-.647-.199zm2.945 2.17l1.833-1.1a1 1 0 0 1 1.221.15l1.018 1.018a1 1 0 0 1 .15 1.221l-1.1 1.833q.33.62.54 1.3l2.073.519a1 1 0 0 1 .757.97v1.438a1 1 0 0 1-.757.97l-2.073.519q-.21.68-.54 1.3l1.1 1.833a1 1 0 0 1-.15 1.221l-1.018 1.018a1 1 0 0 1-1.221.15l-1.833-1.1q-.62.33-1.3.54l-.519 2.073a1 1 0 0 1-.97.757h-1.438a1 1 0 0 1-.97-.757l-.519-2.073a7.5 7.5 0 0 1-1.3-.54l-1.833 1.1a1 1 0 0 1-1.221-.15L4.42 18.562a1 1 0 0 1-.15-1.221l1.1-1.833a7.5 7.5 0 0 1-.54-1.3l-2.073-.519A1 1 0 0 1 2 12.72v-1.438a1 1 0 0 1 .757-.97l2.073-.519q.21-.68.54-1.3L4.27 6.66a1 1 0 0 1 .15-1.221L5.438 4.42a1 1 0 0 1 1.221-.15l1.833 1.1q.62-.33 1.3-.54l.519-2.073A1 1 0 0 1 11.28 2h1.438a1 1 0 0 1 .97.757l.519 2.073q.68.21 1.3.54zM12 14.8a2.8 2.8 0 1 0 0-5.6a2.8 2.8 0 0 0 0 5.6m0 1.2a4 4 0 1 1 0-8a4 4 0 0 1 0 8"/>'
|
|
263
264
|
};
|
|
264
265
|
var SvgIcon = ({ name, size = 24, color = "currentColor", className }) => {
|
|
@@ -511,7 +512,7 @@ var MobileUI = ({
|
|
|
511
512
|
onTouchEnd: handleTouchEnd,
|
|
512
513
|
onTouchCancel: handleTouchEnd,
|
|
513
514
|
title: "\u8FDB\u5EA6",
|
|
514
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(SvgIcon, { name: "
|
|
515
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SvgIcon, { name: "progress" })
|
|
515
516
|
}
|
|
516
517
|
),
|
|
517
518
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -581,7 +582,7 @@ var MobileUI = ({
|
|
|
581
582
|
}
|
|
582
583
|
}
|
|
583
584
|
),
|
|
584
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "epub-reader__btn", onClick: () => onSearch(search.query), disabled: status !== "ready", children: "\u641C\u7D22" })
|
|
585
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "epub-reader__btn epub-reader__btn--wide", onClick: () => onSearch(search.query), disabled: status !== "ready", children: "\u641C\u7D22" })
|
|
585
586
|
] }),
|
|
586
587
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__checks", children: [
|
|
587
588
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "epub-reader__check", children: [
|
|
@@ -634,6 +635,39 @@ var MobileUI = ({
|
|
|
634
635
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "epub-reader__status", children: status === "error" ? errorText || "\u9519\u8BEF" : status === "opening" ? "\u6B63\u5728\u6253\u5F00\u2026" : "" }),
|
|
635
636
|
sectionLabel ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: sectionLabel }) : null
|
|
636
637
|
] }),
|
|
638
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__mprogress", children: [
|
|
639
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
640
|
+
"input",
|
|
641
|
+
{
|
|
642
|
+
className: "epub-reader__range",
|
|
643
|
+
type: "range",
|
|
644
|
+
min: 0,
|
|
645
|
+
max: 100,
|
|
646
|
+
step: 1,
|
|
647
|
+
value: displayedPercent,
|
|
648
|
+
style: {
|
|
649
|
+
background: `linear-gradient(to right, var(--epub-reader-range-fill) 0%, var(--epub-reader-range-fill) ${displayedPercent}%, var(--epub-reader-range-track) ${displayedPercent}%, var(--epub-reader-range-track) 100%)`
|
|
650
|
+
},
|
|
651
|
+
onChange: (e) => {
|
|
652
|
+
onSeekStart();
|
|
653
|
+
onSeekChange(Number(e.target.value));
|
|
654
|
+
},
|
|
655
|
+
onPointerUp: (e) => {
|
|
656
|
+
const v = Number(e.target.value);
|
|
657
|
+
onSeekEnd(v);
|
|
658
|
+
},
|
|
659
|
+
onKeyUp: (e) => {
|
|
660
|
+
if (e.key !== "Enter") return;
|
|
661
|
+
const v = Number(e.target.value);
|
|
662
|
+
onSeekCommit(v);
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
),
|
|
666
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__mprogress-percent", children: [
|
|
667
|
+
displayedPercent,
|
|
668
|
+
"%"
|
|
669
|
+
] })
|
|
670
|
+
] }),
|
|
637
671
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__mnav", children: [
|
|
638
672
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
639
673
|
"button",
|
|
@@ -687,36 +721,6 @@ var MobileUI = ({
|
|
|
687
721
|
children: /* @__PURE__ */ jsxRuntime.jsx(SvgIcon, { name: "chevrons-right" })
|
|
688
722
|
}
|
|
689
723
|
)
|
|
690
|
-
] }),
|
|
691
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__mprogress", children: [
|
|
692
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
693
|
-
"input",
|
|
694
|
-
{
|
|
695
|
-
className: "epub-reader__range",
|
|
696
|
-
type: "range",
|
|
697
|
-
min: 0,
|
|
698
|
-
max: 100,
|
|
699
|
-
step: 1,
|
|
700
|
-
value: displayedPercent,
|
|
701
|
-
onChange: (e) => {
|
|
702
|
-
onSeekStart();
|
|
703
|
-
onSeekChange(Number(e.target.value));
|
|
704
|
-
},
|
|
705
|
-
onPointerUp: (e) => {
|
|
706
|
-
const v = Number(e.target.value);
|
|
707
|
-
onSeekEnd(v);
|
|
708
|
-
},
|
|
709
|
-
onKeyUp: (e) => {
|
|
710
|
-
if (e.key !== "Enter") return;
|
|
711
|
-
const v = Number(e.target.value);
|
|
712
|
-
onSeekCommit(v);
|
|
713
|
-
}
|
|
714
|
-
}
|
|
715
|
-
),
|
|
716
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__mprogress-percent", children: [
|
|
717
|
-
displayedPercent,
|
|
718
|
-
"%"
|
|
719
|
-
] })
|
|
720
724
|
] })
|
|
721
725
|
] }) : null,
|
|
722
726
|
activePanel === "settings" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msettings", children: [
|
|
@@ -760,59 +764,61 @@ var MobileUI = ({
|
|
|
760
764
|
] }),
|
|
761
765
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "epub-reader__mfont-a is-big", children: "A" })
|
|
762
766
|
] }),
|
|
763
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-
|
|
764
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msetting
|
|
765
|
-
/* @__PURE__ */ jsxRuntime.
|
|
766
|
-
|
|
767
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msettings-row", children: [
|
|
768
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msetting", children: [
|
|
769
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msetting-head", children: [
|
|
770
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "epub-reader__msetting-label", children: "\u884C\u9AD8" }),
|
|
771
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "epub-reader__msetting-value", children: lineHeight.toFixed(2) })
|
|
772
|
+
] }),
|
|
773
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
774
|
+
"input",
|
|
775
|
+
{
|
|
776
|
+
className: "epub-reader__range",
|
|
777
|
+
type: "range",
|
|
778
|
+
min: 1,
|
|
779
|
+
max: 3,
|
|
780
|
+
step: 0.05,
|
|
781
|
+
value: lineHeight,
|
|
782
|
+
"aria-label": "\u884C\u9AD8",
|
|
783
|
+
onChange: (e) => onLineHeightChange(Number(e.target.value))
|
|
784
|
+
}
|
|
785
|
+
)
|
|
767
786
|
] }),
|
|
768
|
-
/* @__PURE__ */ jsxRuntime.
|
|
769
|
-
"
|
|
770
|
-
|
|
771
|
-
className: "epub-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
"
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
787
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msetting", children: [
|
|
788
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msetting-head", children: [
|
|
789
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "epub-reader__msetting-label", children: "\u5B57\u95F4\u8DDD" }),
|
|
790
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "epub-reader__msetting-value", children: [
|
|
791
|
+
letterSpacing.toFixed(2),
|
|
792
|
+
"em"
|
|
793
|
+
] })
|
|
794
|
+
] }),
|
|
795
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
796
|
+
"input",
|
|
797
|
+
{
|
|
798
|
+
className: "epub-reader__range",
|
|
799
|
+
type: "range",
|
|
800
|
+
min: 0,
|
|
801
|
+
max: 0.3,
|
|
802
|
+
step: 0.01,
|
|
803
|
+
value: letterSpacing,
|
|
804
|
+
"aria-label": "\u5B57\u95F4\u8DDD",
|
|
805
|
+
onChange: (e) => onLetterSpacingChange(Number(e.target.value))
|
|
806
|
+
}
|
|
807
|
+
)
|
|
789
808
|
] }),
|
|
790
809
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
791
|
-
"
|
|
810
|
+
"button",
|
|
792
811
|
{
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
"
|
|
800
|
-
onChange: (e) => onLetterSpacingChange(Number(e.target.value))
|
|
812
|
+
type: "button",
|
|
813
|
+
className: "epub-reader__btn",
|
|
814
|
+
onClick: () => onToggleDarkMode(!darkMode),
|
|
815
|
+
"aria-pressed": darkMode,
|
|
816
|
+
"aria-label": darkMode ? "\u6697\u9ED1\u6A21\u5F0F\uFF1A\u5F00\uFF0C\u70B9\u51FB\u5207\u6362\u5230\u4EAE\u8272" : "\u6697\u9ED1\u6A21\u5F0F\uFF1A\u5173\uFF0C\u70B9\u51FB\u5207\u6362\u5230\u6697\u9ED1",
|
|
817
|
+
title: darkMode ? "\u5207\u6362\u5230\u4EAE\u8272" : "\u5207\u6362\u5230\u6697\u9ED1",
|
|
818
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SvgIcon, { name: darkMode ? "sun" : "moon" })
|
|
801
819
|
}
|
|
802
820
|
)
|
|
803
|
-
] })
|
|
804
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
805
|
-
"button",
|
|
806
|
-
{
|
|
807
|
-
type: "button",
|
|
808
|
-
className: "epub-reader__btn",
|
|
809
|
-
onClick: () => onToggleDarkMode(!darkMode),
|
|
810
|
-
"aria-pressed": darkMode,
|
|
811
|
-
"aria-label": darkMode ? "\u6697\u9ED1\u6A21\u5F0F\uFF1A\u5F00\uFF0C\u70B9\u51FB\u5207\u6362\u5230\u4EAE\u8272" : "\u6697\u9ED1\u6A21\u5F0F\uFF1A\u5173\uFF0C\u70B9\u51FB\u5207\u6362\u5230\u6697\u9ED1",
|
|
812
|
-
title: darkMode ? "\u5207\u6362\u5230\u4EAE\u8272" : "\u5207\u6362\u5230\u6697\u9ED1",
|
|
813
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(SvgIcon, { name: darkMode ? "sun" : "moon" })
|
|
814
|
-
}
|
|
815
|
-
)
|
|
821
|
+
] })
|
|
816
822
|
] }) : null
|
|
817
823
|
] })
|
|
818
824
|
]
|