@prose-reader/react-reader 1.260.0 → 1.263.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ReactReader.d.ts +2 -1
- package/dist/annotations/usePreventInteractionOnSelection.d.ts +1 -0
- package/dist/annotations/useReaderWithAnnotations.d.ts +2 -1
- package/dist/constants.d.ts +1 -0
- package/dist/context/ReactReaderProvider.d.ts +1 -1
- package/dist/context/context.d.ts +12 -8
- package/dist/context/useReader.d.ts +2 -1
- package/dist/index.js +781 -689
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/index.umd.cjs.map +1 -1
- package/dist/quickmenu/useQuickMenu.d.ts +1 -1
- package/dist/quickmenu/useQuickMenuToggleGesture.d.ts +1 -0
- package/dist/settings/types.d.ts +12 -6
- package/dist/zoom/useZoomSettings.d.ts +1 -0
- package/package.json +2 -2
- package/dist/common/useMemoCompare.d.ts +0 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(S,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("@chakra-ui/react"),require("react"),require("react-icons/lu"),require("reactjrx"),require("rxjs"),require("react-dom"),require("@prose-reader/enhancer-gestures"),require("@prose-reader/shared"),require("@prose-reader/core"),require("react-icons/bi"),require("react-icons/bs"),require("react-icons/md"),require("react-icons/ri"),require("react-icons/rx"),require("react-icons/hi"),require("rc-slider"),require("rc-slider/assets/index.css"),require("react-icons/io")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@chakra-ui/react","react","react-icons/lu","reactjrx","rxjs","react-dom","@prose-reader/enhancer-gestures","@prose-reader/shared","@prose-reader/core","react-icons/bi","react-icons/bs","react-icons/md","react-icons/ri","react-icons/rx","react-icons/hi","rc-slider","rc-slider/assets/index.css","react-icons/io"],e):(S=typeof globalThis<"u"?globalThis:S||self,e(S["prose-react-reader"]={},S.jsxRuntime,S.react,S.React,S.lu,S.reactjrx,S.rxjs,S.reactDom,S.enhancerGestures,S.shared,S.core,S.bi,S.bs,S.md,S.ri,S.rx,S.hi,S.RcSlider,null,S.io))})(this,(function(S,e,t,l,M,g,h,ge,ue,fe,U,be,Se,Q,Ce,W,ve,ke,Nn,j){"use strict";function Te(n){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const r in n)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(o,r,s.get?s:{enumerable:!0,get:()=>n[r]})}}return o.default=n,Object.freeze(o)}const z=Te(l),R="data-bookmark-area",Ie=z.forwardRef(function(o,r){return e.jsx(t.IconButton,{variant:"ghost","aria-label":"Close",ref:r,...o,children:o.children??e.jsx(M.LuX,{})})}),B=z.forwardRef(function(o,r){const{children:s,portalled:a=!0,portalRef:i,backdrop:d=!0,...c}=o;return e.jsxs(t.Portal,{disabled:!a,container:i,children:[d&&e.jsx(t.Dialog.Backdrop,{}),e.jsx(t.Dialog.Positioner,{children:e.jsx(t.Dialog.Content,{ref:r,...c,asChild:!1,children:s})})]})}),E=z.forwardRef(function(o,r){return e.jsx(t.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...o,asChild:!0,children:e.jsx(Ie,{size:"sm",ref:r,children:o.children})})}),A=t.Dialog.Root,D=t.Dialog.Footer,F=t.Dialog.Header,L=t.Dialog.Body;t.Dialog.Backdrop;const _=t.Dialog.Title;t.Dialog.Description,t.Dialog.Trigger;const V=t.Dialog.ActionTrigger,ee=()=>({reader:void 0,quickMenuOpen:!1,onQuickMenuOpenChange:()=>{},quickMenuBottomBarBoundingBoxSignal:g.signal({default:void 0}),notificationsSubject:new h.Subject,refitMenuOpen:!1,onRefitMenuOpenChange:()=>{},fontSizeMenuOpen:!1,onFontSizeMenuOpenChange:()=>{},fontSizeMin:.2,fontSizeMax:5,uncontrolledFontSize:1}),Y=l.createContext(g.signal({default:ee()})),w=n=>{const o=l.useContext(Y);return g.useObserve(o,n)},Oe=()=>l.useContext(Y),k=()=>{const{reader:n}=w(["reader"]);return n},ne=n=>!!n&&"__PROSE_READER_ENHANCER_SEARCH"in n,q=n=>!!n&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in n,oe=n=>!!n&&"__PROSE_READER_ENHANCER_GALLERY"in n,te=n=>!!n&&"__PROSE_READER_ENHANCER_REFIT"in n,Me=n=>{const o=k(),r=q(o)?o:void 0;return{data:g.useObserve(()=>r?.annotations.annotations$.pipe(h.map(a=>a.find(i=>i.id===n)),h.filter(g.isDefined),h.switchMap(a=>r.locateResource(a))),[r])}},re=({id:n,onNavigate:o,allowLeftIcon:r=!0})=>{const s=k(),{data:a}=Me(n),i=a?.meta.range?.toString()||a?.meta.node?.textContent;return e.jsx(t.List.Item,{children:e.jsxs(t.Link,{href:"#",onClick:()=>{o(),s?.navigation.goToCfi(a?.meta.cfi??"")},children:[a?.resource?.notes?e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(M.LuNotebookPen,{})}):r?e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(M.LuNotebookPen,{})}):null,e.jsxs(t.Stack,{gap:0,children:[i?e.jsx(t.Text,{lineClamp:2,fontSize:"md",children:i}):e.jsxs(t.Text,{lineClamp:2,fontSize:"md",fontStyle:"italic",children:["Page ",(a?.meta.absolutePageIndex??0)+1]}),e.jsx(t.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${a?.meta?.absolutePageIndex!==void 0?a.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})})},G=()=>{const n=k(),o=q(n)?n:void 0;return{data:g.useObserve(()=>o?.annotations.annotations$.pipe(h.switchMap(s=>o.locateResource(s))),[o])}},xe=()=>{const{data:n}=G();return{data:n?.filter(o=>o.meta.isCfiRange)}},Pe=({onNavigate:n})=>{const{data:o}=xe();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:o?.map(r=>e.jsx(re,{id:r.resource.id,onNavigate:n},r.resource.id))})},ze=()=>{const{data:n}=G();return{data:n?.filter(o=>!o.meta.isCfiRange&&!o.resource.notes)}},me=({onNavigate:n})=>{const{data:o}=ze();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:o?.map(r=>e.jsx(re,{id:r.resource.id,onNavigate:n,allowLeftIcon:!1},r.resource.id))})},we=l.memo(({onNavigate:n,defaultTab:o})=>{const[r,s]=l.useState(o??"bookmarks");return e.jsxs(t.Tabs.Root,{value:r,onValueChange:a=>s(a.value),children:[e.jsxs(t.Tabs.List,{children:[e.jsxs(t.Tabs.Trigger,{value:"bookmarks",children:[e.jsx(M.LuBookmark,{}),"Bookmarks"]}),e.jsxs(t.Tabs.Trigger,{value:"annotations",children:[e.jsx(M.LuNotebookPen,{}),"Annotations"]}),e.jsx(t.Tabs.Indicator,{})]}),e.jsx(t.Tabs.Content,{value:"bookmarks",children:e.jsx(me,{onNavigate:n})}),e.jsx(t.Tabs.Content,{value:"annotations",children:e.jsx(Pe,{onNavigate:n})})]})}),ye=l.memo(({openWith:n,setOpen:o,onNavigate:r})=>e.jsx(A,{lazyMount:!0,placement:"center",open:!!n,onOpenChange:s=>o(s.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(B,{height:"100%",children:[e.jsx(F,{children:e.jsx(_,{children:"Annotations"})}),e.jsx(L,{flex:1,children:e.jsx(we,{onNavigate:r,defaultTab:n})}),e.jsx(D,{children:e.jsx(V,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(E,{})]})})),Be=l.memo(({children:n})=>{const o=k(),r=g.useObserve(()=>o?.spine.element$,[o]);return r?e.jsx(e.Fragment,{children:ge.createPortal(n,r)}):null}),Ee=({absolutePageIndex:n,itemIndex:o})=>{const r=k();return{spineItem:g.useObserve(()=>r?o!==void 0?h.of(r.spine.spineItemsManager.get(o)):n!==void 0?r.spine.pages.observeFromAbsolutePageIndex(n).pipe(h.map(a=>r.spine.spineItemsManager.get(a?.itemIndex))):h.EMPTY:h.EMPTY,[o,n,r])}},Ae=({absolutePageIndex:n,itemIndex:o})=>{const{spineItem:r}=Ee({absolutePageIndex:n,itemIndex:o}),s=g.useObserve(()=>r?.isReady$??h.of(!1),[r]);return{spineItem:r,isReady:s}},De=l.memo(({absolutePageIndex:n,left:o,top:r,width:s})=>{const{isReady:a}=Ae({absolutePageIndex:n}),{data:i}=G(),d=i?.find(p=>p?.meta?.absolutePageIndex===n&&p.meta.range===void 0);if(!a)return null;const c=s*.1/2;return e.jsx(t.Presence,{present:!!d,lazyMount:!0,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(t.Box,{"data-bookmark-area":R,position:"absolute",left:o+s,transform:"translateX(-100%)",pointerEvents:"none",top:r,width:c,height:c,_before:{content:'""',position:"absolute",top:0,left:0,width:0,height:0,borderTop:`${c}px solid #03030373`,borderLeft:`${c}px solid transparent`}})})}),Fe=l.memo(()=>{const n=k(),o=g.useObserve(()=>n?.layoutInfo$,[n]);return e.jsx(Be,{children:o?.pages.map(({absoluteLayout:{left:r,top:s,width:a}},i)=>e.jsx(De,{absolutePageIndex:i,left:r,top:s,width:a},i))})}),Le=()=>{const n=k();return q(n)?n:void 0},_e=()=>{const n=Le(),{data:o}=G();l.useEffect(()=>n?n.gestures.hooks.register("beforeTapGesture",({event$:s})=>s.pipe(h.withLatestFrom(n?.annotations.candidates$),h.map(([a,i])=>{if(!a.page)return!0;const{spineItem:d,spineItemPageIndex:c,spineItemPagePosition:p,pageSize:u}=a.page;if(ue.isPositionInArea(p,{type:"corner",corner:"top-right",size:10,unit:"%"},u)){const f=n.spine.pages.fromSpineItemPageIndex(d,c);if(!f)return!0;const v=o?.find(x=>x?.meta?.absolutePageIndex===f.absolutePageIndex&&x.meta.range===void 0);if(v)return n?.annotations.delete(v.resource.id),!1;if(i?.[f.absolutePageIndex])return n?.annotations.annotateAbsolutePage({absolutePageIndex:f.absolutePageIndex}),!1}return!0}))):void 0,[n,o])},Z=t.createToaster({placement:"bottom-end",pauseOnPageIdle:!0}),Ve=()=>e.jsx(t.Portal,{children:e.jsx(t.Toaster,{toaster:Z,insetInline:{mdDown:"4"},children:n=>e.jsxs(t.Toast.Root,{width:{md:"sm"},children:[n.type==="loading"?e.jsx(t.Spinner,{size:"sm",color:"blue.solid"}):e.jsx(t.Toast.Indicator,{}),e.jsxs(t.Stack,{gap:"1",flex:"1",maxWidth:"100%",children:[n.title&&e.jsx(t.Toast.Title,{children:n.title}),n.description&&e.jsx(t.Toast.Description,{children:n.description})]}),n.action&&e.jsx(t.Toast.ActionTrigger,{children:n.action.label}),n.meta?.closable&&e.jsx(t.Toast.CloseTrigger,{})]})})}),He=(n,o)=>{const r=l.useRef({value:n});return l.useMemo(()=>o(n,r.current.value)?r.current.value:(r.current={value:n},n),[n,o])},Ne=({children:n,onQuickMenuOpenChange:o,quickMenuOpen:r,...s})=>{const a=g.useConstant(()=>g.signal({default:ee()})),i=g.useConstant(()=>g.signal({default:a.value.fontSizeMenuOpen})),d=g.useSignalValue(i),c=l.useCallback(O=>{i.update(O)},[i]),p=g.useConstant(()=>g.signal({default:a.value.quickMenuOpen})),u=l.useCallback(O=>{p.update(O)},[p]),b=g.useSignalValue(p),f=r??b,v=o??u,T=g.useConstant(()=>g.signal({default:a.value.refitMenuOpen})),x=l.useCallback(O=>{T.update(O)},[T]),P=g.useSignalValue(T),I=He(s,fe.isShallowEqual);return l.useEffect(()=>{a.update(O=>({...O,...I,onQuickMenuOpenChange:v,quickMenuOpen:f,onFontSizeMenuOpenChange:c,fontSizeMenuOpen:d,onRefitMenuOpenChange:x,refitMenuOpen:P}))},[I,f,v,a,d,c,P,x]),e.jsx(Y.Provider,{value:a,children:n})},qe=l.memo(({children:n,...o})=>e.jsx(Ne,{...o,children:n})),$=z.forwardRef(function(o,r){const{children:s,inputProps:a,rootRef:i,...d}=o;return e.jsxs(t.RadioGroup.Item,{ref:i,...d,children:[e.jsx(t.RadioGroup.ItemHiddenInput,{ref:r,...a}),e.jsx(t.RadioGroup.ItemIndicator,{}),s&&e.jsx(t.RadioGroup.ItemText,{children:s})]})}),se=t.RadioGroup.Root,K=z.forwardRef(function(o,r){const{marks:s,label:a,showValue:i,...d}=o,c=o.defaultValue??o.value,p=s?.map(b=>typeof b=="number"?{value:b,label:void 0}:b),u=!!p?.some(b=>b.label);return e.jsxs(t.Slider.Root,{ref:r,thumbAlignment:"center",...d,children:[a&&!i&&e.jsx(t.Slider.Label,{children:a}),a&&i&&e.jsxs(t.HStack,{justify:"space-between",children:[e.jsx(t.Slider.Label,{children:a}),e.jsx(t.Slider.ValueText,{})]}),e.jsxs(t.Slider.Control,{"data-has-mark-label":u||void 0,children:[e.jsx(t.Slider.Track,{children:e.jsx(t.Slider.Range,{})}),e.jsx($e,{value:c}),e.jsx(We,{marks:p})]})]})});function $e(n){const{value:o}=n;return e.jsx(t.For,{each:o,children:(r,s)=>e.jsx(t.Slider.Thumb,{index:s,children:e.jsx(t.Slider.HiddenInput,{})},s)})}const We=z.forwardRef(function(o,r){const{marks:s}=o;return s?.length?e.jsx(t.Slider.MarkerGroup,{ref:r,children:s.map((a,i)=>{const d=typeof a=="number"?a:a.value,c=typeof a=="number"?void 0:a.label;return e.jsxs(t.Slider.Marker,{value:d,children:[e.jsx(t.Slider.MarkerIndicator,{}),c]},i)})}):null}),Ge=["global","book","device"],ae=["global","book","mobile","tablet","desktop"],Ue="(max-width: 767px)",Qe="(max-width: 1023px)",Ye=l.memo(()=>{const n=Oe(),{fontSizeMenuOpen:o,onFontSizeMenuOpenChange:r,uncontrolledFontSize:s,fontSize:a=s,fontSizeMin:i,fontSizeMax:d,fontSizeScope:c,onFontSizeChange:p,onFontSizeScopeChange:u}=w(["fontSizeMenuOpen","onFontSizeMenuOpenChange","fontSize","fontSizeMin","fontSizeMax","fontSizeScope","onFontSizeChange","onFontSizeScopeChange","uncontrolledFontSize"]),b=g.useLiveRef(p),[f,v]=t.useMediaQuery([Ue,Qe]),[T,x]=l.useState(c??"global"),P=l.useCallback((C,N)=>{b.current?b.current(C,N):n.update(Hn=>({...Hn,fontSize:N}))},[b,n]),I=l.useCallback(C=>a,[a]),O={showValue:!0,max:d*100,min:i*100,width:"100%",step:.1*100,marks:[{value:100,label:"Publisher"},{value:i*100,label:`${i*100}%`},{value:d*100,label:`${d*100}%`}]},y=l.useCallback(C=>{const N=C.value;u?.(N)},[u]),m=l.useCallback(C=>{x(C.value)},[]),Vn=l.useCallback(C=>{const N=C.value[0]??0;P(T,N/100)},[P,T]);return e.jsx(A,{lazyMount:!0,open:o,onOpenChange:C=>{r(C.open)},placement:"center",children:e.jsxs(B,{maxH:"40vh",overflow:"auto",children:[e.jsx(F,{children:e.jsx(_,{children:"Font size"})}),e.jsx(L,{children:e.jsxs(t.Stack,{gap:4,flex:1,children:[e.jsxs(t.Fieldset.Root,{children:[e.jsx(t.Fieldset.Legend,{children:"Scope"}),e.jsx(t.Fieldset.HelperText,{children:"The scope to which apply the font size for this book."}),e.jsx(t.Fieldset.Content,{children:e.jsx(se,{onValueChange:y,value:c??"global",disabled:!c,children:e.jsx(t.HStack,{gap:2,children:Ge.map(C=>e.jsx($,{value:C,children:C==="device"?f?"device (Mobile)":v?"device (Tablet)":"device (Desktop)":C},C))})})})]}),e.jsxs(t.Tabs.Root,{value:T,onValueChange:m,children:[e.jsx(t.Tabs.List,{children:ae.map(C=>e.jsxs(t.Tabs.Trigger,{value:C,textTransform:"capitalize",disabled:C!=="global"&&!c,children:[c===C&&e.jsx(M.LuCheck,{}),C]},C))}),ae.map(C=>e.jsx(t.Tabs.Content,{value:C,children:e.jsx(K,{label:"%",value:[(I(C)??1)*100],onValueChange:Vn,...O})},C))]})]})}),e.jsx(D,{children:e.jsx(V,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Close"})})}),e.jsx(E,{})]})})}),Ze=()=>{const n=k(),{fontSize:o,uncontrolledFontSize:r}=w(["fontSize","uncontrolledFontSize"]),s=o??r;return l.useEffect(()=>{if(n&&s){const a=setTimeout(()=>{n.settings.update({fontScale:s})},200);return()=>clearTimeout(a)}},[n,s]),null},Ke={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function Xe(){const[n,o]=l.useState(null),[r,s]=l.useState(Ke),a=l.useMemo(()=>new ResizeObserver(i=>{if(i[0]){const{x:d,y:c,width:p,height:u,top:b,left:f,bottom:v,right:T}=i[0].contentRect;s({x:d,y:c,width:p,height:u,top:b,left:f,bottom:v,right:T})}}),[]);return l.useLayoutEffect(()=>{if(n)return a.observe(n),()=>{a.disconnect()}},[n,a]),[o,r,n]}const Je=(n,o,r)=>{const s=k(),a=oe(s)?s:void 0;g.useSubscribe(()=>{if(!a||!n)return h.NEVER;const i=o.layout.layout$.pipe(h.startWith(o.layout.layoutInfo),h.distinctUntilChanged(U.isShallowEqual)),d=U.observeIntersection(n).pipe(h.map(c=>c.some(p=>p.isIntersecting)));return i.pipe(h.throttleTime(100,void 0,{trailing:!0}),h.switchMap(()=>d.pipe(h.tap(c=>{c||(n.innerHTML="")}),h.filter(c=>c),h.first()).pipe(h.switchMap(()=>(n.innerHTML="",a?.gallery.snapshot(o,n,r))))))},[a,o,r,n])},je=l.memo(({item:n,onNavigated:o})=>{const[r,s,a]=Xe(),i=k();Je(a,n,s);const d=g.useObserve(()=>i?.locateResource(n,{mode:"shallow"}),[i,n]);return e.jsxs(t.Box,{width:"100%",aspectRatio:"2/3",border:"1px solid",borderColor:"border",borderRadius:"md","data-grid-item":!0,cursor:"pointer",position:"relative",overflow:"hidden",onClick:()=>{o(),i?.navigation.goToSpineItem({indexOrId:n})},children:[e.jsx(t.Box,{height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",ref:r}),e.jsxs(t.Text,{position:"absolute",bottom:0,left:"0",right:"0",textAlign:"center",bgColor:"white",p:4,fontSize:"xs",children:["Page ",(d?.meta?.absolutePageIndex??0)+1]})]})}),Re=l.memo(({open:n,setOpen:o})=>{const r=k(),s=g.useObserve(()=>r?.spineItemsManager.items$,[r]);return e.jsx(A,{lazyMount:!0,placement:"center",open:n,onOpenChange:a=>o(a.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(B,{height:"100%",children:[e.jsx(F,{children:e.jsx(_,{children:"Gallery"})}),e.jsx(L,{children:e.jsx(t.Box,{gridTemplateColumns:["repeat(2, minmax(0, 1fr))","repeat(3, minmax(0, 1fr))"],display:"grid",gap:[2,4],pt:2,"data-grid":!0,children:s?.map(a=>e.jsx(je,{item:a,onNavigated:()=>{o(!1)}},a.item.id))})}),e.jsx(D,{children:e.jsx(V,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(E,{})]})})}),en="@prose-reader/react-reader",nn="1.259.0",on=l.memo(({open:n,setOpen:o})=>e.jsx(A,{lazyMount:!0,placement:"center",open:n,onOpenChange:r=>o(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(B,{children:[e.jsx(F,{children:e.jsx(_,{children:"Help"})}),e.jsxs(L,{overflowY:"auto",flex:1,display:"flex",flexDirection:"column",gap:4,children:[e.jsxs(t.Stack,{children:[e.jsx(t.Heading,{mb:2,as:"h3",size:"lg",children:"Shortcuts"}),e.jsxs(t.HStack,{mb:1,children:[e.jsx(t.Kbd,{children:e.jsx(M.LuArrowBigRight,{})})," ",e.jsx(t.Text,{children:"Navigate to right page"})]}),e.jsxs(t.HStack,{mb:1,children:[e.jsx(t.Kbd,{children:e.jsx(M.LuArrowBigLeft,{})})," ",e.jsx(t.Text,{children:"Navigate to left page"})]})]}),e.jsxs(t.Stack,{children:[e.jsx(t.Heading,{mb:2,as:"h3",size:"lg",children:"Bookmarks"}),e.jsx(t.HStack,{mb:1,children:e.jsx(t.Text,{children:"Tap on the top right corner of a page bookmark it"})})]}),e.jsxs(t.Stack,{children:[e.jsx(t.Heading,{mb:2,as:"h3",size:"lg",children:"About"}),e.jsxs(t.Text,{children:[en," version: ",nn]})]})]}),e.jsx(D,{children:e.jsx(V,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(E,{})]})})),H=()=>{const n=k();return g.useObserve(()=>n?h.combineLatest([n.pagination.state$,n.context]).pipe(h.map(([o,r])=>{const s=r.manifest?.spineItems.every(a=>a.mediaType?.startsWith("image/"));return{...o,hasChapters:!r.isFullyPrePaginated&&!s}})):h.NEVER,[n])},tn=()=>{const n=H(),o=Math.floor((n?.percentageEstimateOfBook??0)*100),r=o>0?o:1;return n?.percentageEstimateOfBook===void 0?null:e.jsx(t.Box,{position:"absolute",right:0,bottom:0,p:2,color:"black",children:e.jsxs(t.Text,{fontSize:"sm",children:[r," %"]})})},rn=()=>{const[n,o]=l.useState(new Date);return l.useEffect(()=>{const r=setInterval(()=>{o(new Date)},6e4);return()=>clearInterval(r)},[]),n},sn=n=>{const o=rn();return e.jsx(t.Text,{fontSize:"xs",...n,children:o.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},X=()=>{const{quickMenuOpen:n,onQuickMenuOpenChange:o}=w(["quickMenuOpen","onQuickMenuOpenChange"]);return[n,o]},an=l.memo(()=>{const[n]=X();return e.jsx(t.Box,{position:"absolute",left:0,bottom:0,p:2,color:n?void 0:"colorPalette.contrast",children:e.jsx(sn,{})})}),ln=()=>{const n=k();g.useSubscribe(()=>n?.links$.subscribe(o=>{if(o.type==="click"&&U.isHtmlTagElement(o.target,"a")){if(!o.target.href)return;const r=new URL(o.target.href);window.location.host!==r.host&&confirm("You are going to be redirected to external link")&&window.open(o.target.href,"__blank")}}),[n])},dn=()=>{const{notificationsSubject:n}=w(["notificationsSubject"]);g.useSubscribe(()=>n.pipe(h.filter(g.isDefined),h.mergeMap(o=>{const r=o.duration??3e3,s=new h.Observable(i=>{try{queueMicrotask(()=>{const d=Z.create({title:o.title,description:o.description,duration:r});i.next(d),i.complete()})}catch(d){i.error(d)}}),a=n.pipe(h.skip(1),h.filter(i=>!!o.key&&i?.key===o.key));return s.pipe(h.switchMap(i=>h.merge(h.timer(r),o.abort??h.NEVER,a).pipe(h.first(),h.finalize(()=>{queueMicrotask(()=>{Z.dismiss(i)})}))))})),[n])},cn=z.forwardRef(function(o,r){const{showArrow:s,children:a,portalled:i=!0,content:d,portalRef:c,...p}=o;return e.jsxs(t.Popover.Root,{...p,positioning:{...p.positioning,gutter:4},children:[e.jsx(t.Popover.Trigger,{asChild:!0,children:a}),e.jsx(t.Portal,{disabled:!i,container:c,children:e.jsx(t.Popover.Positioner,{children:e.jsxs(t.Popover.Content,{width:"auto",px:"2",py:"1",textStyle:"xs",rounded:"sm",ref:r,children:[s&&e.jsx(t.Popover.Arrow,{children:e.jsx(t.Popover.ArrowTip,{})}),d]})})})]})}),hn=z.forwardRef(function(o,r){const{children:s,...a}=o;return e.jsx(cn,{content:s,...a,ref:r,children:e.jsx(t.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:e.jsx(ve.HiOutlineInformationCircle,{})})})}),pn=z.forwardRef(function(o,r){return e.jsx(t.Progress.Track,{...o,ref:r,children:e.jsx(t.Progress.Range,{})})});z.forwardRef(function(o,r){const{children:s,info:a,...i}=o;return e.jsxs(t.Progress.Label,{...i,ref:r,children:[s,a&&e.jsx(hn,{children:a})]})});const gn=t.Progress.Root,un=t.Progress.ValueText,J=()=>{const n=H(),o=n?.numberOfTotalPages===1,r=(n?.beginNumberOfPagesInSpineItem??0)>1,s=(n?.endNumberOfPagesInSpineItem??0)>1,a=(n?.hasChapters?n?.beginPageIndexInSpineItem:n?.beginAbsolutePageIndex)??0,i=(n?.hasChapters?n?.endPageIndexInSpineItem:n?.endAbsolutePageIndex)??0,[d=0,c=0]=[a,i].sort((b,f)=>b-f),p=n?.beginPageIndexInSpineItem!==n?.endPageIndexInSpineItem||n?.beginSpineItemIndex!==n?.endSpineItemIndex,u=n?.hasChapters?n?.beginNumberOfPagesInSpineItem:n?.numberOfTotalPages;return{hasOnlyOnePage:o,beginPageIndex:a,endPageIndex:i,isBeginWithinChapter:r,isEndWithinChapter:s,beginAndEndAreDifferent:p,totalApproximatePages:u,leftPageIndex:d,rightPageIndex:c}},fn=()=>{const n=H(),{hasOnlyOnePage:o,leftPageIndex:r,rightPageIndex:s,totalApproximatePages:a,beginAndEndAreDifferent:i}=J(),d=Math.round((n?.percentageEstimateOfBook??0)*100),c=u=>u?.subChapter?`${u.title} / ${c(u.subChapter)}`:u?.title||"",p=c(n?.beginChapterInfo);return e.jsxs(t.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[e.jsx(gn,{value:d,size:"xs",width:150,children:e.jsxs(t.HStack,{justifyContent:"space-between",children:[e.jsx(pn,{width:110}),e.jsx(un,{children:`${d}%`})]})}),e.jsx(t.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:p?`Chapter: ${p}`:" "}),!o&&e.jsxs(t.HStack,{children:[e.jsx(t.Text,{fontSize:"xs",children:i?`${r+1} - ${s+1} of ${a}`:`${r+1} of ${a}`}),!!n?.hasChapters&&e.jsxs(e.Fragment,{children:[e.jsx(t.Text,{children:"-"}),e.jsxs(t.Text,{fontSize:"xs",children:["(",(n?.beginAbsolutePageIndex??0)+1,")"]})]})]})]})},ie=l.memo(({children:n,position:o,...r})=>e.jsx(t.Presence,{display:"flex",flexDirection:"row",width:"100%",position:"absolute",...o==="bottom"?{bottom:0}:{top:0},animationName:o==="bottom"?{_open:"slide-from-bottom, fade-in",_closed:"slide-to-bottom, fade-out"}:{_open:"slide-from-top, fade-in",_closed:"slide-to-top, fade-out"},animationDuration:"moderate",bgColor:"bg.panel",alignItems:"center",justifyContent:"center",shadow:"md",p:4,...r,children:n})),bn=t.chakra(ke),Sn=l.memo(n=>e.jsx(t.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:e.jsx(bn,{keyboard:!1,style:{padding:0},css:{"& > .rc-slider-handle:focus-visible":{boxShadow:"0 0 0 2px var(--color-solid) !important"},"& > .rc-slider-handle:active":{boxShadow:"0 0 5px var(--color-solid) !important"},"& > .rc-slider-handle.rc-slider-handle-dragging":{boxShadow:"0 0 0 3px var(--color-solid) !important"}},styles:{rail:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--bg-emphasized)"},track:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--color-solid)"},handle:{width:"24px",height:"24px",top:"50%",borderColor:"var(--color-solid)",transform:`translate(${n.reverse?"50%":"-50%"}, -50%)`,backgroundColor:"var(--bg)",marginTop:"0px"}},...n})})),Cn=()=>{const o=H()?.isUsingSpread,{beginPageIndex:r,totalApproximatePages:s=0}=J(),a=o?Math.floor((r||0)/2):r,[i,d]=g.useSignalState(()=>g.signal({default:a||0})),c=0,p=Math.max(0,o?Math.floor((s-1)/2):s-1);return l.useEffect(()=>{d.update(a||0)},[a,d]),{value:i,valueSignal:d,min:c,max:p}},vn=n=>{const o=k(),r=H(),{manifest:s}=g.useObserve(()=>o?.context,[o])??{},a=s?.readingDirection==="rtl",i=r?.isUsingSpread,{totalApproximatePages:d=0,isBeginWithinChapter:c}=J(),p=1,u=c,{value:b,valueSignal:f,min:v,max:T}=Cn(),x=l.useCallback(I=>{const[O=0]=Array.isArray(I)?I:[I];f.update(O);const y=i?Math.floor(O)*2:Math.floor(O);u?o?.navigation.goToPageOfSpineItem({pageIndex:y,spineItemId:o.pagination.state.beginSpineItemIndex??0,animation:!1}):o?.navigation.goToAbsolutePageIndex({absolutePageIndex:y,animation:!1})},[o,i,f,u]);return g.useSubscribe(()=>o?.navigation.throttleLock({duration:100,trigger:f.subject}),[o,f]),d===1||i&&d===2?e.jsx(t.Box,{style:n.style}):e.jsx(Sn,{value:[b],max:T,min:v,reverse:a,step:p,onChange:x,...n})},kn=l.memo(({open:n,onItemClick:o})=>{const r=l.useRef(null),s=k(),{quickMenuBottomBarBoundingBoxSignal:a,onFontSizeMenuOpenChange:i,onRefitMenuOpenChange:d}=w(["quickMenuBottomBarBoundingBoxSignal","onFontSizeMenuOpenChange","onRefitMenuOpenChange"]),c=g.useObserve(()=>s?.navigation.state$,[s]),p=g.useObserve(()=>s?.settings.values$,[s]),u=g.useObserve(()=>s?.zoom.state$.pipe(h.map(I=>I.currentScale>1?"in":I.currentScale<1?"out":void 0)),[s]),b=u==="in",f=u==="out",v=p?.computedPageTurnMode==="scrollable",T=p?.computedPageTurnDirection==="vertical",[x,P]=l.useState(!0);return l.useEffect(()=>{if(!r.current)return;const I=new ResizeObserver(O=>{for(const y of O)a.update(y)});return I.observe(r.current),()=>{I.disconnect()}},[a]),e.jsxs(ie,{present:n,position:"bottom",display:"flex",flexDirection:"column",overflow:"auto",pb:8,px:0,ref:r,children:[e.jsxs(t.HStack,{flex:1,alignItems:"center",justifyContent:"center",maxWidth:"100%",px:4,children:[e.jsx(t.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>s?.navigation.goToLeftOrTopSpineItem(),disabled:!c?.canGoLeftSpineItem&&!c?.canGoTopSpineItem,children:T?e.jsx(W.RxDoubleArrowUp,{}):e.jsx(W.RxDoubleArrowLeft,{})}),e.jsxs(t.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[e.jsx(fn,{}),e.jsx(vn,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!c?.canGoRightSpineItem&&!c?.canGoBottomSpineItem,onClick:()=>{s?.navigation.goToRightOrBottomSpineItem()},children:T?e.jsx(W.RxDoubleArrowDown,{}):e.jsx(W.RxDoubleArrowRight,{})})]}),e.jsx(t.HStack,{alignSelf:"stretch",alignItems:"center",justifyContent:"center",children:e.jsxs(t.Collapsible.Root,{open:x,flex:1,onOpenChange:({open:I})=>{P(I)},width:"100%",children:[e.jsx(t.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:e.jsx(M.LuChevronDown,{style:{transform:x?"rotate(0deg)":"rotate(180deg)"}})}),e.jsx(t.Collapsible.Content,{display:"flex",justifyContent:"center",children:e.jsxs(t.Box,{display:"flex",overflowX:"auto",px:4,pb:1,children:[e.jsx(t.IconButton,{"aria-label":"Help",size:"lg",variant:"ghost",onClick:()=>o("help"),children:e.jsx(M.LuCircleHelp,{})}),e.jsx(t.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>o("toc"),children:e.jsx(M.LuTableOfContents,{})}),ne(s)&&e.jsx(t.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>o("search"),children:e.jsx(M.LuSearch,{})}),e.jsx(t.IconButton,{"aria-label":"Zoom",size:"lg",variant:b?"solid":"ghost",onClick:()=>{b?s?.zoom.exit({animate:!0}):s?.zoom.enter({animate:!0,scale:2})},children:b?e.jsx(M.LuZoomOut,{}):e.jsx(M.LuZoomIn,{})}),e.jsx(t.IconButton,{"aria-label":"font size",size:"lg",onClick:()=>{i(!0)},variant:"ghost",children:e.jsx(be.BiFontSize,{})}),q(s)&&e.jsx(t.IconButton,{"aria-label":"Bookmarks",size:"lg",variant:"ghost",onClick:()=>o("bookmarks"),children:e.jsx(Se.BsBookmarks,{})}),q(s)&&e.jsx(t.IconButton,{"aria-label":"Annotations",size:"lg",variant:"ghost",onClick:()=>o("annotations"),children:e.jsx(M.LuNotebookPen,{})}),te(s)&&e.jsx(t.IconButton,{"aria-label":"Refit",size:"lg",variant:"ghost",onClick:()=>{d(!0)},disabled:!v,children:e.jsx(Q.MdOutlineFitScreen,{})}),e.jsx(t.IconButton,{"aria-label":"Thumbnails",size:"lg",variant:f?"solid":"ghost",onClick:()=>{f?s?.zoom.exit({animate:!0}):s?.zoom.enter({animate:!0,scale:.5})},children:e.jsx(M.LuGalleryHorizontal,{})}),oe(s)&&e.jsx(t.IconButton,{"aria-label":"Gallery",size:"lg",variant:"ghost",onClick:()=>o("gallery"),children:e.jsx(Ce.RiGalleryView2,{})})]})})]})})]})}),Tn=()=>{const[n,o]=l.useState(!1),r=l.useCallback(()=>document.fullscreenElement?document.exitFullscreen().catch(console.error).then(()=>{o(!1)}):document.documentElement.requestFullscreen({navigationUI:"hide"}).catch(console.error).then(()=>{o(!0)}),[]);return l.useEffect(()=>{function s(){o(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s)}},[]),{isFullscreen:n,onToggleFullscreenClick:r}},In=l.memo(({open:n,onItemClick:o})=>{const r=k(),s=g.useObserve(()=>r?.context.manifest$,[r]),{isFullscreen:a,onToggleFullscreenClick:i}=Tn();return e.jsxs(ie,{present:n,position:"top",height:"80px",justifyContent:"space-between",children:[e.jsx(t.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>o("back"),children:e.jsx(j.IoIosArrowBack,{})}),e.jsx(t.Stack,{flex:1,maxW:600,gap:1,alignItems:"center",overflow:"auto",px:4,children:e.jsx(t.Text,{truncate:!0,maxWidth:"100%",children:s?.title})}),e.jsxs(t.HStack,{children:[e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>o("more"),children:e.jsx(j.IoMdMore,{})}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:i,children:a?e.jsx(Q.MdFullscreenExit,{}):e.jsx(Q.MdFullscreen,{})})]})]})}),On=l.memo(({onItemClick:n})=>{const[o]=X(),{refitMenuOpen:r,fontSizeMenuOpen:s}=w(["refitMenuOpen","fontSizeMenuOpen"]);return e.jsxs(e.Fragment,{children:[e.jsx(In,{open:o&&!r&&!s,onItemClick:n}),e.jsx(kn,{open:o&&!r&&!s,onItemClick:n})]})}),Mn=z.forwardRef(function(o,r){const{label:s,children:a,helperText:i,errorText:d,optionalText:c,...p}=o;return e.jsxs(t.Field.Root,{ref:r,...p,children:[s&&e.jsxs(t.Field.Label,{children:[s,e.jsx(t.Field.RequiredIndicator,{fallback:c})]}),a,i&&e.jsx(t.Field.HelperText,{children:i}),d&&e.jsx(t.Field.ErrorText,{children:d})]})}),xn=l.memo(()=>{const{refitMenuOpen:o,onRefitMenuOpenChange:r}=w(["refitMenuOpen","onRefitMenuOpenChange"]),s=k(),a=te(s)?s:void 0,i=g.useObserve(()=>a?.refit.settings$,[a]);return e.jsx(A,{lazyMount:!0,open:o,onOpenChange:d=>r(d.open),placement:"center",children:e.jsxs(B,{children:[e.jsx(F,{children:e.jsx(_,{children:"Viewport fit"})}),e.jsx(L,{children:e.jsxs(t.Fieldset.Root,{children:[e.jsx(t.Fieldset.HelperText,{children:"Adjust the viewport for a more comfortable reading experience."}),e.jsxs(t.Fieldset.Content,{children:[e.jsx(Mn,{label:"Profile",children:e.jsx(se,{defaultValue:"fit",onValueChange:d=>{const c=d.value;a?.refit.update({viewportFit:c,customWidth:60})},value:i?.viewportFit??"fit",children:e.jsxs(t.Stack,{gap:2,children:[e.jsx($,{value:"desktop",children:"Desktop"}),e.jsx($,{value:"tablet",children:"Tablet"}),e.jsx($,{value:"fit",children:"Full width (default)"}),e.jsx($,{value:"custom",children:"Custom"})]})})}),e.jsx(K,{label:"Maximum width (%)",showValue:!0,max:100,min:10,step:1,disabled:i?.viewportFit!=="custom",value:[i?.customWidth??60],onValueChange:d=>{const c=d.value[0]??0;a?.refit.update({customWidth:c})}})]})]})}),e.jsx(D,{children:e.jsx(V,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Close"})})}),e.jsx(E,{})]})})}),Pn=l.memo(({contextText:n="",startOffset:o=0,text:r,cfi:s="#",onClick:a,absolutePageIndex:i})=>{const c=n.substring(Math.max(o-15,0),Math.max(o,0)),p=n.substring(Math.min(o+r.length,n.length-1),Math.min(o+r.length+15,n.length-1));return e.jsxs(t.Link,{href:s,style:{margin:5,overflow:"hidden"},onClick:u=>{u.preventDefault(),a(s)},display:"flex",flexDirection:"column",alignItems:"flex-start",gap:0,children:[e.jsxs(t.Text,{lineClamp:1,as:"cite",style:{display:"block"},children:['"',c,e.jsx("b",{children:r}),p,'"']}),e.jsx(t.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${i!==void 0?i+1:"unknown (not loaded)"}`})]})}),zn=500,mn=()=>{const n=g.useConstant(()=>new h.BehaviorSubject("")),o=g.useObserve(n),r=k(),s=ne(r)?r:void 0,a=g.useObserve(()=>n.pipe(h.distinctUntilChanged(),h.switchMap(i=>i===""||!s?h.of(void 0):h.merge(h.of({type:"start",data:void 0}),h.timer(zn).pipe(h.switchMap(()=>s.search.search(i)),h.map(d=>({type:"end",data:d})))))),[s,n]);return{value:o,setValue:n.next.bind(n),status:a?.type??"idle",data:a?.data}},wn=l.memo(({onNavigate:n})=>{const o=k(),{value:r,setValue:s,status:a,data:i}=mn(),d=u=>{s(u.target.value)},c=l.useCallback(u=>{n(),o?.navigation.goToCfi(u)},[o,n]),p=g.useObserve(()=>o?.locateResource(i?.slice(0,100)??[]),[i]);return e.jsxs(t.Stack,{flex:1,height:"100%",gap:2,children:[e.jsx(t.Input,{placeholder:"Type something...",value:r,onChange:d,flexShrink:0,variant:"subtle",name:"search",focusRing:"none",focusVisibleRing:"none",outline:"none",focusRingColor:"transparent"}),e.jsxs(t.Stack,{style:{overflow:"hidden",overflowY:"auto"},overflow:"auto",px:4,flex:1,children:[a==="start"&&e.jsx(t.Text,{children:"Searching ..."}),i?.length===0&&e.jsx(t.Text,{children:"No results"}),a==="end"&&(i?.length??0)>0&&e.jsxs(t.Stack,{children:[e.jsxs(t.Text,{fontSize:"md",children:[i?.length," result(s)"]}),e.jsx(t.Stack,{gap:0,children:p?.map((u,b)=>e.jsx(Pn,{contextText:u.meta?.range?.startContainer.parentElement?.textContent??"",pageIndex:u.meta?.itemPageIndex,startOffset:u.meta?.range?.startOffset??0,text:r,cfi:u.meta.cfi,onClick:c,absolutePageIndex:u.meta?.absolutePageIndex},b))})]})]})]})}),yn=l.memo(({open:n,setOpen:o,onNavigate:r})=>e.jsx(A,{lazyMount:!0,placement:"center",open:n,onOpenChange:s=>o(s.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(B,{height:"100%",children:[e.jsx(F,{children:e.jsx(_,{children:"Search"})}),e.jsx(L,{flex:1,p:0,children:e.jsx(wn,{onNavigate:r})}),e.jsx(D,{children:e.jsx(V,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(E,{})]})})),Bn=l.memo(({onNavigate:n})=>{const o=k(),{manifest:r,assumedRenditionLayout:s}=g.useObserve(()=>o?.context,[o])??{},{nav:a}=r??{},i=H();a?.toc;const{beginSpineItemIndex:d,beginPageIndexInSpineItem:c}=i??{},p=(s==="reflowable"?c:d)||0;let u=i?.beginChapterInfo;for(;u?.subChapter;)u=u?.subChapter;const b=(f,v,T)=>e.jsxs(l.Fragment,{children:[e.jsx(t.List.Item,{pl:4*(T+1),style:{display:"flex",alignItems:"center"},children:e.jsxs(t.Link,{onClick:()=>{n(),o?.navigation.goToUrl(f.href)},href:"#",children:[u?.path===f.path&&e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(M.LuCircleCheck,{})}),u?.path!==f.path&&e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(M.LuCircleCheck,{})}),e.jsxs(t.Stack,{gap:0,children:[e.jsx(t.Text,{fontSize:"md",children:f.title||f.path}),u?.path===f.path&&e.jsx(t.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Currently on page ${p+1}`})]})]})}),f.contents.length>0&&e.jsx(t.List.Root,{as:"div",gap:2,children:f.contents.map((x,P)=>b(x,P,T+1))})]},v);return e.jsx(t.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:a?.toc.map((f,v)=>b(f,v,0))})}),En=l.memo(({open:n,setOpen:o,onNavigate:r})=>e.jsx(A,{lazyMount:!0,placement:"center",open:n,onOpenChange:s=>o(s.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(B,{children:[e.jsx(F,{children:e.jsx(_,{children:"Table of Contents"})}),e.jsx(L,{overflowY:"auto",flex:1,children:e.jsx(Bn,{onNavigate:r})}),e.jsx(D,{children:e.jsx(V,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(E,{})]})})),le=.5,de=1,ce=5,An=(n,o,r,s)=>{if(n>o&&n<o+s)return o+s;const a=Math.min(Math.max(n,o),r),i=Math.round((a-o)/s)*s+o;return Math.round(i*100)/100},Dn=l.memo(()=>{const{quickMenuBottomBarBoundingBoxSignal:n}=w(["quickMenuBottomBarBoundingBoxSignal"]),o=g.useSignalValue(n),r=k(),s=g.useObserve(()=>r?.zoom.state$.pipe(h.map(c=>c.currentScale),h.throttleTime(100,h.animationFrameScheduler,{leading:!0,trailing:!0})),[r])??1,a=g.useObserve(()=>r?.zoom.state$.pipe(h.map(c=>c.isZooming)),[r])??!1,i=An(s,de,ce,le),d=o?.borderBoxSize?.[0]?.blockSize??1;return e.jsx(t.Presence,{present:a&&s>1,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",position:"absolute",bottom:`calc(${d}px + var(--chakra-spacing-4))`,right:4,backgroundColor:"bg.panel",shadow:"sm",borderRadius:"md",p:4,children:e.jsx(K,{value:[i],min:de,max:ce,step:le,minWidth:200,onValueChange:c=>{const p=c.value?.[0]??1;p===1?r?.zoom.exit():r?.zoom.scaleAt(p)}})})}),he={_open:"fade-in",_closed:"fade-out"},Fn=l.memo(()=>(_e(),null)),Ln=l.memo(()=>(ln(),dn(),e.jsxs(e.Fragment,{children:[e.jsx(Ze,{}),e.jsx(Fn,{})]}))),pe=l.memo(({children:n,...o})=>{const{enableFloatingTime:r,enableFloatingProgress:s,onItemClick:a}=w(["enableFloatingTime","enableFloatingProgress","onItemClick"]),[i,d]=l.useState(!1),[c,p]=l.useState(!1),[u,b]=l.useState(!1),[f,v]=l.useState(void 0),[T,x]=l.useState(!1),[P,I]=X(),O=l.useCallback(()=>{d(!1),p(!1),b(!1),v(void 0),I(!1),x(!1)},[I]),y=l.useCallback(m=>{m==="annotations"?v("annotations"):m==="search"?b(!0):m==="help"?p(!0):m==="toc"?d(!0):m==="bookmarks"?v("bookmarks"):m==="gallery"&&x(!0),a?.(m)},[a]);return e.jsxs(e.Fragment,{children:[e.jsx(Ln,{}),e.jsxs(t.Box,{position:"absolute",top:0,left:0,height:"100%",width:"100%",overflow:"hidden","data-prose-react-reader":!0,...o,children:[n,s&&e.jsx(t.Presence,{present:!P,animationName:he,animationDuration:"moderate",children:e.jsx(tn,{})}),e.jsx(Re,{open:T,setOpen:x}),e.jsx(xn,{}),e.jsx(On,{onItemClick:y}),e.jsx(Dn,{}),e.jsx(Ye,{}),e.jsx(Fe,{}),e.jsx(on,{open:c,setOpen:p}),e.jsx(En,{open:i,setOpen:d,onNavigate:O}),e.jsx(yn,{open:u,setOpen:b,onNavigate:O}),e.jsx(ye,{openWith:f,setOpen:m=>v(m?"annotations":void 0),onNavigate:O}),e.jsx(t.Presence,{present:r||P,animationName:he,animationDuration:"slow",overflow:"hidden",children:e.jsx(an,{})}),e.jsx(Ve,{})]})]})}),_n=l.memo(({children:n,slots:o,...r})=>{const{container:{props:s={}}={}}=o??{};return e.jsx(qe,{...r,children:e.jsx(pe,{...s,children:n})})});S.BOOKMARK_AREA_DATA_ATTRIBUTE=R,S.InnerReactReader=pe,S.ReactReader=_n,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(C,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("@chakra-ui/react"),require("react"),require("react-icons/lu"),require("reactjrx"),require("rxjs"),require("react-dom"),require("@prose-reader/enhancer-gestures"),require("@prose-reader/shared"),require("@prose-reader/core"),require("react-icons/bi"),require("react-icons/bs"),require("react-icons/md"),require("react-icons/ri"),require("react-icons/rx"),require("react-icons/hi"),require("rc-slider"),require("rc-slider/assets/index.css"),require("react-icons/io")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@chakra-ui/react","react","react-icons/lu","reactjrx","rxjs","react-dom","@prose-reader/enhancer-gestures","@prose-reader/shared","@prose-reader/core","react-icons/bi","react-icons/bs","react-icons/md","react-icons/ri","react-icons/rx","react-icons/hi","rc-slider","rc-slider/assets/index.css","react-icons/io"],e):(C=typeof globalThis<"u"?globalThis:C||self,e(C["prose-react-reader"]={},C.jsxRuntime,C.react,C.React,C.lu,C.reactjrx,C.rxjs,C.reactDom,C.enhancerGestures,C.shared,C.core,C.bi,C.bs,C.md,C.ri,C.rx,C.hi,C.RcSlider,null,C.io))})(this,(function(C,e,t,c,T,p,h,ge,fe,be,U,Se,Ce,Y,ve,q,ke,Te,Nn,R){"use strict";function Ie(n){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const s in n)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(n,s);Object.defineProperty(o,s,r.get?r:{enumerable:!0,get:()=>n[s]})}}return o.default=n,Object.freeze(o)}const z=Ie(c),ee="data-bookmark-area",Z=5,Oe=z.forwardRef(function(o,s){return e.jsx(t.IconButton,{variant:"ghost","aria-label":"Close",ref:s,...o,children:o.children??e.jsx(T.LuX,{})})}),y=z.forwardRef(function(o,s){const{children:r,portalled:a=!0,portalRef:i,backdrop:l=!0,...d}=o;return e.jsxs(t.Portal,{disabled:!a,container:i,children:[l&&e.jsx(t.Dialog.Backdrop,{}),e.jsx(t.Dialog.Positioner,{children:e.jsx(t.Dialog.Content,{ref:s,...d,asChild:!1,children:r})})]})}),B=z.forwardRef(function(o,s){return e.jsx(t.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...o,asChild:!0,children:e.jsx(Oe,{size:"sm",ref:s,children:o.children})})}),E=t.Dialog.Root,A=t.Dialog.Footer,F=t.Dialog.Header,D=t.Dialog.Body;t.Dialog.Backdrop;const _=t.Dialog.Title;t.Dialog.Description,t.Dialog.Trigger;const L=t.Dialog.ActionTrigger,ne=()=>({_quickMenuOpen:!1,_onQuickMenuOpenChange:n=>n,reader:void 0,quickMenuBottomBarBoundingBoxSignal:p.signal({default:void 0}),notificationsSubject:new h.Subject,refitMenuOpen:!1,onRefitMenuOpenChange:()=>{},fontSizeMenuOpen:!1,onFontSizeMenuOpenChange:()=>{},fontSizeMin:.2,fontSizeMax:5,uncontrolledFontSize:1}),Q=c.createContext(p.signal({default:ne()})),m=n=>{const o=c.useContext(Q);return p.useObserve(o,n)},oe=()=>c.useContext(Q),k=()=>{const{reader:n}=m(["reader"]);return n},te=n=>!!n&&"__PROSE_READER_ENHANCER_SEARCH"in n,N=n=>!!n&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in n,se=n=>!!n&&"__PROSE_READER_ENHANCER_GALLERY"in n,re=n=>!!n&&"__PROSE_READER_ENHANCER_REFIT"in n,Me=n=>{const o=k(),s=N(o)?o:void 0;return{data:p.useObserve(()=>s?.annotations.annotations$.pipe(h.map(a=>a.find(i=>i.id===n)),h.filter(p.isDefined),h.switchMap(a=>s.locateResource(a))),[s])}},ae=({id:n,onNavigate:o,allowLeftIcon:s=!0})=>{const r=k(),{data:a}=Me(n),i=a?.meta.range?.toString()||a?.meta.node?.textContent;return e.jsx(t.List.Item,{children:e.jsxs(t.Link,{href:"#",onClick:()=>{o(),r?.navigation.goToCfi(a?.meta.cfi??"")},children:[a?.resource?.notes?e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(T.LuNotebookPen,{})}):s?e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(T.LuNotebookPen,{})}):null,e.jsxs(t.Stack,{gap:0,children:[i?e.jsx(t.Text,{lineClamp:2,fontSize:"md",children:i}):e.jsxs(t.Text,{lineClamp:2,fontSize:"md",fontStyle:"italic",children:["Page ",(a?.meta.absolutePageIndex??0)+1]}),e.jsx(t.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${a?.meta?.absolutePageIndex!==void 0?a.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})})},W=()=>{const n=k(),o=N(n)?n:void 0;return{data:p.useObserve(()=>o?.annotations.annotations$.pipe(h.switchMap(r=>o.locateResource(r))),[o])}},ze=()=>{const{data:n}=W();return{data:n?.filter(o=>o.meta.isCfiRange)}},me=({onNavigate:n})=>{const{data:o}=ze();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:o?.map(s=>e.jsx(ae,{id:s.resource.id,onNavigate:n},s.resource.id))})},Pe=()=>{const{data:n}=W();return{data:n?.filter(o=>!o.meta.isCfiRange&&!o.resource.notes)}},we=({onNavigate:n})=>{const{data:o}=Pe();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:o?.map(s=>e.jsx(ae,{id:s.resource.id,onNavigate:n,allowLeftIcon:!1},s.resource.id))})},xe=c.memo(({onNavigate:n,defaultTab:o})=>{const[s,r]=c.useState(o??"bookmarks");return e.jsxs(t.Tabs.Root,{value:s,onValueChange:a=>r(a.value),children:[e.jsxs(t.Tabs.List,{children:[e.jsxs(t.Tabs.Trigger,{value:"bookmarks",children:[e.jsx(T.LuBookmark,{}),"Bookmarks"]}),e.jsxs(t.Tabs.Trigger,{value:"annotations",children:[e.jsx(T.LuNotebookPen,{}),"Annotations"]}),e.jsx(t.Tabs.Indicator,{})]}),e.jsx(t.Tabs.Content,{value:"bookmarks",children:e.jsx(we,{onNavigate:n})}),e.jsx(t.Tabs.Content,{value:"annotations",children:e.jsx(me,{onNavigate:n})})]})}),ye=c.memo(({openWith:n,setOpen:o,onNavigate:s})=>e.jsx(E,{lazyMount:!0,placement:"center",open:!!n,onOpenChange:r=>o(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(y,{height:"100%",children:[e.jsx(F,{children:e.jsx(_,{children:"Annotations"})}),e.jsx(D,{flex:1,children:e.jsx(xe,{onNavigate:s,defaultTab:n})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),Be=c.memo(({children:n})=>{const o=k(),s=p.useObserve(()=>o?.spine.element$,[o]);return s?e.jsx(e.Fragment,{children:ge.createPortal(n,s)}):null}),Ee=({absolutePageIndex:n,itemIndex:o})=>{const s=k();return{spineItem:p.useObserve(()=>s?o!==void 0?h.of(s.spine.spineItemsManager.get(o)):n!==void 0?s.spine.pages.observeFromAbsolutePageIndex(n).pipe(h.map(a=>s.spine.spineItemsManager.get(a?.itemIndex))):h.EMPTY:h.EMPTY,[o,n,s])}},Ae=({absolutePageIndex:n,itemIndex:o})=>{const{spineItem:s}=Ee({absolutePageIndex:n,itemIndex:o}),r=p.useObserve(()=>s?.isReady$??h.of(!1),[s]);return{spineItem:s,isReady:r}},Fe=c.memo(({absolutePageIndex:n,left:o,top:s,width:r})=>{const{isReady:a}=Ae({absolutePageIndex:n}),{data:i}=W(),l=i?.find(u=>u?.meta?.absolutePageIndex===n&&u.meta.range===void 0);if(!a)return null;const d=r*.1/2;return e.jsx(t.Presence,{present:!!l,lazyMount:!0,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(t.Box,{"data-bookmark-area":ee,position:"absolute",left:o+r,transform:"translateX(-100%)",pointerEvents:"none",top:s,width:d,height:d,_before:{content:'""',position:"absolute",top:0,left:0,width:0,height:0,borderTop:`${d}px solid #03030373`,borderLeft:`${d}px solid transparent`}})})}),De=c.memo(()=>{const n=k(),o=p.useObserve(()=>n?.layoutInfo$,[n]);return e.jsx(Be,{children:o?.pages.map(({absoluteLayout:{left:s,top:r,width:a}},i)=>e.jsx(Fe,{absolutePageIndex:i,left:s,top:r,width:a},i))})}),ie=()=>{const n=k();return N(n)?n:void 0},_e=()=>{const n=ie(),{data:o}=W();c.useEffect(()=>n?n.gestures.hooks.register("beforeTapGesture",({event$:r})=>r.pipe(h.withLatestFrom(n?.annotations.candidates$),h.map(([a,i])=>{if(!a.page)return!0;const{spineItem:l,spineItemPageIndex:d,spineItemPagePosition:u,pageSize:g}=a.page;if(fe.isPositionInArea(u,{type:"corner",corner:"top-right",size:10,unit:"%"},g)){const f=n.spine.pages.fromSpineItemPageIndex(l,d);if(!f)return!0;const v=o?.find(I=>I?.meta?.absolutePageIndex===f.absolutePageIndex&&I.meta.range===void 0);if(v)return n?.annotations.delete(v.resource.id),!1;if(i?.[f.absolutePageIndex])return n?.annotations.annotateAbsolutePage({absolutePageIndex:f.absolutePageIndex}),!1}return!0}))):void 0,[n,o])},Le=()=>{const n=ie();p.useSubscribe(()=>n?.gestures.hooks.register("beforeTapGesture",({event$:o})=>o.pipe(h.withLatestFrom(n.selection.lastSelectionOnPointerdown$),h.map(([{event:s},r])=>{const a=s.event.target;return!(a&&n.annotations.isTargetWithinHighlight(a)||r)}))),[n])},K=t.createToaster({placement:"bottom-end",pauseOnPageIdle:!0}),Ve=()=>e.jsx(t.Portal,{children:e.jsx(t.Toaster,{toaster:K,insetInline:{mdDown:"4"},children:n=>e.jsxs(t.Toast.Root,{width:{md:"sm"},children:[n.type==="loading"?e.jsx(t.Spinner,{size:"sm",color:"blue.solid"}):e.jsx(t.Toast.Indicator,{}),e.jsxs(t.Stack,{gap:"1",flex:"1",maxWidth:"100%",children:[n.title&&e.jsx(t.Toast.Title,{children:n.title}),n.description&&e.jsx(t.Toast.Description,{children:n.description})]}),n.action&&e.jsx(t.Toast.ActionTrigger,{children:n.action.label}),n.meta?.closable&&e.jsx(t.Toast.CloseTrigger,{})]})})}),He=({children:n,...o})=>{const s=p.useConstant(()=>p.signal({default:ne()})),r=p.useConstant(()=>p.signal({default:s.value.fontSizeMenuOpen})),a=p.useSignalValue(r),i=c.useCallback(f=>{r.update(f)},[r]),l=c.useCallback(f=>{s.update(v=>({...v,_quickMenuOpen:typeof f=="function"?f(v._quickMenuOpen):f}))},[s]),d=p.useConstant(()=>p.signal({default:s.value.refitMenuOpen})),u=c.useCallback(f=>{d.update(f)},[d]),g=p.useSignalValue(d),S=p.useMemoCompare(o,be.isShallowEqual);return c.useEffect(()=>{s.update(f=>({...f,...S,onFontSizeMenuOpenChange:i,fontSizeMenuOpen:a,onRefitMenuOpenChange:u,refitMenuOpen:g,_onQuickMenuOpenChange:l}))},[S,l,s,a,i,g,u]),e.jsx(Q.Provider,{value:s,children:n})},Ne=c.memo(({children:n,...o})=>e.jsx(He,{...o,children:n})),$=z.forwardRef(function(o,s){const{children:r,inputProps:a,rootRef:i,...l}=o;return e.jsxs(t.RadioGroup.Item,{ref:i,...l,children:[e.jsx(t.RadioGroup.ItemHiddenInput,{ref:s,...a}),e.jsx(t.RadioGroup.ItemIndicator,{}),r&&e.jsx(t.RadioGroup.ItemText,{children:r})]})}),le=t.RadioGroup.Root,X=z.forwardRef(function(o,s){const{marks:r,label:a,showValue:i,...l}=o,d=o.defaultValue??o.value,u=r?.map(S=>typeof S=="number"?{value:S,label:void 0}:S),g=!!u?.some(S=>S.label);return e.jsxs(t.Slider.Root,{ref:s,thumbAlignment:"center",...l,children:[a&&!i&&e.jsx(t.Slider.Label,{children:a}),a&&i&&e.jsxs(t.HStack,{justify:"space-between",children:[e.jsx(t.Slider.Label,{children:a}),e.jsx(t.Slider.ValueText,{})]}),e.jsxs(t.Slider.Control,{"data-has-mark-label":g||void 0,children:[e.jsx(t.Slider.Track,{children:e.jsx(t.Slider.Range,{})}),e.jsx($e,{value:d}),e.jsx(qe,{marks:u})]})]})});function $e(n){const{value:o}=n;return e.jsx(t.For,{each:o,children:(s,r)=>e.jsx(t.Slider.Thumb,{index:r,children:e.jsx(t.Slider.HiddenInput,{})},r)})}const qe=z.forwardRef(function(o,s){const{marks:r}=o;return r?.length?e.jsx(t.Slider.MarkerGroup,{ref:s,children:r.map((a,i)=>{const l=typeof a=="number"?a:a.value,d=typeof a=="number"?void 0:a.label;return e.jsxs(t.Slider.Marker,{value:l,children:[e.jsx(t.Slider.MarkerIndicator,{}),d]},i)})}):null}),J=[{value:"global",references:["global"]},{value:"book",references:["book"]},{value:"screen",references:["mobile","tablet","desktop"]}],We=J.map(n=>n.value),ce=J.flatMap(n=>n.references),Ge=n=>{if(n)return J.find(o=>o.references.includes(n))?.value},Ue=c.memo(()=>{const n=oe(),{fontSizeMenuOpen:o,onFontSizeMenuOpenChange:s,uncontrolledFontSize:r,fontSize:a=r,fontSizeMin:i,fontSizeMax:l,fontSizeScope:d,fontSizeValues:u,onFontSizeChange:g,onFontSizeScopeChange:S}=m(["fontSizeMenuOpen","onFontSizeMenuOpenChange","fontSize","fontSizeMin","fontSizeMax","fontSizeScope","onFontSizeChange","onFontSizeScopeChange","uncontrolledFontSize","fontSizeValues"]),f=p.useLiveRef(g),[v,M]=c.useState(d??"global"),I=c.useCallback((b,H)=>{f.current?f.current(b,H):n.update(Hn=>({...Hn,uncontrolledFontSize:H}))},[f,n]),w=c.useCallback(b=>u?.[b]??a,[a,u]),O=c.useCallback(b=>{const H=b.value;S?.(H)},[S]),P=c.useCallback(b=>{M(b.value)},[]),x=c.useCallback(b=>{const H=b.value[0]??0;I(v,H/100)},[I,v]);return c.useEffect(function(){M(d??"global")},[d]),e.jsx(E,{lazyMount:!0,open:o,onOpenChange:b=>{s(b.open)},placement:"center",children:e.jsxs(y,{maxH:"40vh",overflow:"auto",children:[e.jsx(F,{children:e.jsx(_,{children:"Font size"})}),e.jsx(D,{children:e.jsxs(t.Stack,{gap:4,flex:1,children:[e.jsxs(t.Fieldset.Root,{children:[e.jsx(t.Fieldset.Legend,{children:"Scope"}),e.jsx(t.Fieldset.HelperText,{children:"The scope to which apply the font size for this book."}),e.jsx(t.Fieldset.Content,{children:e.jsx(le,{onValueChange:O,value:Ge(d)??"global",disabled:!S,children:e.jsx(t.HStack,{gap:2,children:We.map(b=>e.jsx($,{value:b,children:b},b))})})})]}),e.jsxs(t.Tabs.Root,{value:v,onValueChange:P,fitted:!1,size:"sm",children:[e.jsx(t.Tabs.List,{children:ce.map(b=>e.jsxs(t.Tabs.Trigger,{value:b,textTransform:"capitalize",disabled:b!=="global"&&!d,children:[d===b&&e.jsx(T.LuCheck,{}),b]},b))}),ce.map(b=>e.jsx(t.Tabs.Content,{value:b,children:e.jsx(X,{label:"%",value:[(w(b)??1)*100],onValueChange:x,showValue:!0,marks:[{value:100,label:"Publisher"},{value:i*100,label:`${i*100}%`},{value:l*100,label:`${l*100}%`}],max:l*100,min:i*100,width:"100%",step:.1*100})},b))]})]})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Close"})})}),e.jsx(B,{})]})})}),Ye=()=>{const n=k(),o=oe(),{fontSize:s,uncontrolledFontSize:r}=m(["fontSize","uncontrolledFontSize","onFontSizeChange"]),a=s??r;return c.useEffect(function(){if(n&&a){const l=setTimeout(()=>{n.settings.update({fontScale:a})},200);return()=>clearTimeout(l)}},[n,a]),p.useSubscribe(function(){return n?.settings.values$.pipe(h.map(l=>l.fontScale)).subscribe(l=>{const d=o.value.fontSize??o.value.uncontrolledFontSize;l!==d&&(o.value.onFontSizeChange?.("internal",l),o.update(u=>({...u,uncontrolledFontSize:l})))})},[n,o]),null},Ze={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function Qe(){const[n,o]=c.useState(null),[s,r]=c.useState(Ze),a=c.useMemo(()=>new ResizeObserver(i=>{if(i[0]){const{x:l,y:d,width:u,height:g,top:S,left:f,bottom:v,right:M}=i[0].contentRect;r({x:l,y:d,width:u,height:g,top:S,left:f,bottom:v,right:M})}}),[]);return c.useLayoutEffect(()=>{if(n)return a.observe(n),()=>{a.disconnect()}},[n,a]),[o,s,n]}const Ke=(n,o,s)=>{const r=k(),a=se(r)?r:void 0;p.useSubscribe(()=>{if(!a||!n)return h.NEVER;const i=o.layout.layout$.pipe(h.startWith(o.layout.layoutInfo),h.distinctUntilChanged(U.isShallowEqual)),l=U.observeIntersection(n).pipe(h.map(d=>d.some(u=>u.isIntersecting)));return i.pipe(h.throttleTime(100,void 0,{trailing:!0}),h.switchMap(()=>l.pipe(h.tap(d=>{d||(n.innerHTML="")}),h.filter(d=>d),h.first()).pipe(h.switchMap(()=>(n.innerHTML="",a?.gallery.snapshot(o,n,s))))))},[a,o,s,n])},Xe=c.memo(({item:n,onNavigated:o})=>{const[s,r,a]=Qe(),i=k();Ke(a,n,r);const l=p.useObserve(()=>i?.locateResource(n,{mode:"shallow"}),[i,n]);return e.jsxs(t.Box,{width:"100%",aspectRatio:"2/3",border:"1px solid",borderColor:"border",borderRadius:"md","data-grid-item":!0,cursor:"pointer",position:"relative",overflow:"hidden",onClick:()=>{o(),i?.navigation.goToSpineItem({indexOrId:n})},children:[e.jsx(t.Box,{height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",ref:s}),e.jsxs(t.Text,{position:"absolute",bottom:0,left:"0",right:"0",textAlign:"center",bgColor:"white",p:4,fontSize:"xs",children:["Page ",(l?.meta?.absolutePageIndex??0)+1]})]})}),Je=c.memo(({open:n,setOpen:o})=>{const s=k(),r=p.useObserve(()=>s?.spineItemsManager.items$,[s]);return e.jsx(E,{lazyMount:!0,placement:"center",open:n,onOpenChange:a=>o(a.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(y,{height:"100%",children:[e.jsx(F,{children:e.jsx(_,{children:"Gallery"})}),e.jsx(D,{children:e.jsx(t.Box,{gridTemplateColumns:["repeat(2, minmax(0, 1fr))","repeat(3, minmax(0, 1fr))"],display:"grid",gap:[2,4],pt:2,"data-grid":!0,children:r?.map(a=>e.jsx(Xe,{item:a,onNavigated:()=>{o(!1)}},a.item.id))})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})}),je="@prose-reader/react-reader",Re="1.262.0",en=c.memo(({open:n,setOpen:o})=>e.jsx(E,{lazyMount:!0,placement:"center",open:n,onOpenChange:s=>o(s.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(y,{children:[e.jsx(F,{children:e.jsx(_,{children:"Help"})}),e.jsxs(D,{overflowY:"auto",flex:1,display:"flex",flexDirection:"column",gap:4,children:[e.jsxs(t.Stack,{children:[e.jsx(t.Heading,{mb:2,as:"h3",size:"lg",children:"Shortcuts"}),e.jsxs(t.HStack,{mb:1,children:[e.jsx(t.Kbd,{children:e.jsx(T.LuArrowBigRight,{})})," ",e.jsx(t.Text,{children:"Navigate to right page"})]}),e.jsxs(t.HStack,{mb:1,children:[e.jsx(t.Kbd,{children:e.jsx(T.LuArrowBigLeft,{})})," ",e.jsx(t.Text,{children:"Navigate to left page"})]})]}),e.jsxs(t.Stack,{children:[e.jsx(t.Heading,{mb:2,as:"h3",size:"lg",children:"Bookmarks"}),e.jsx(t.HStack,{mb:1,children:e.jsx(t.Text,{children:"Tap on the top right corner of a page bookmark it"})})]}),e.jsxs(t.Stack,{children:[e.jsx(t.Heading,{mb:2,as:"h3",size:"lg",children:"About"}),e.jsxs(t.Text,{children:[je," version: ",Re]})]})]}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),V=()=>{const n=k();return p.useObserve(()=>n?h.combineLatest([n.pagination.state$,n.context]).pipe(h.map(([o,s])=>{const r=s.manifest?.spineItems.every(a=>a.mediaType?.startsWith("image/"));return{...o,hasChapters:!s.isFullyPrePaginated&&!r}})):h.NEVER,[n])},nn=()=>{const n=V(),o=Math.floor((n?.percentageEstimateOfBook??0)*100),s=o>0?o:1;return n?.percentageEstimateOfBook===void 0?null:e.jsx(t.Box,{position:"absolute",right:0,bottom:0,p:2,color:"black",children:e.jsxs(t.Text,{fontSize:"sm",children:[s," %"]})})},on=()=>{const[n,o]=c.useState(new Date);return c.useEffect(()=>{const s=setInterval(()=>{o(new Date)},6e4);return()=>clearInterval(s)},[]),n},tn=n=>{const o=on();return e.jsx(t.Text,{fontSize:"xs",...n,children:o.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},G=()=>{const{quickMenuOpen:n,onQuickMenuOpenChange:o,_quickMenuOpen:s,_onQuickMenuOpenChange:r}=m(["quickMenuOpen","onQuickMenuOpenChange","_quickMenuOpen","_onQuickMenuOpenChange"]);return[n??s,o??r]},sn=c.memo(()=>{const[n]=G();return e.jsx(t.Box,{position:"absolute",left:0,bottom:0,p:2,color:n?void 0:"colorPalette.contrast",children:e.jsx(tn,{})})}),rn=()=>{const n=k();p.useSubscribe(()=>n?.links$.subscribe(o=>{if(o.type==="click"&&U.isHtmlTagElement(o.target,"a")){if(!o.target.href)return;const s=new URL(o.target.href);window.location.host!==s.host&&confirm("You are going to be redirected to external link")&&window.open(o.target.href,"__blank")}}),[n])},an=()=>{const{notificationsSubject:n}=m(["notificationsSubject"]);p.useSubscribe(()=>n.pipe(h.filter(p.isDefined),h.mergeMap(o=>{const s=o.duration??3e3,r=new h.Observable(i=>{try{queueMicrotask(()=>{const l=K.create({title:o.title,description:o.description,duration:s});i.next(l),i.complete()})}catch(l){i.error(l)}}),a=n.pipe(h.skip(1),h.filter(i=>!!o.key&&i?.key===o.key));return r.pipe(h.switchMap(i=>h.merge(h.timer(s),o.abort??h.NEVER,a).pipe(h.first(),h.finalize(()=>{queueMicrotask(()=>{K.dismiss(i)})}))))})),[n])},ln=z.forwardRef(function(o,s){const{showArrow:r,children:a,portalled:i=!0,content:l,portalRef:d,...u}=o;return e.jsxs(t.Popover.Root,{...u,positioning:{...u.positioning,gutter:4},children:[e.jsx(t.Popover.Trigger,{asChild:!0,children:a}),e.jsx(t.Portal,{disabled:!i,container:d,children:e.jsx(t.Popover.Positioner,{children:e.jsxs(t.Popover.Content,{width:"auto",px:"2",py:"1",textStyle:"xs",rounded:"sm",ref:s,children:[r&&e.jsx(t.Popover.Arrow,{children:e.jsx(t.Popover.ArrowTip,{})}),l]})})})]})}),cn=z.forwardRef(function(o,s){const{children:r,...a}=o;return e.jsx(ln,{content:r,...a,ref:s,children:e.jsx(t.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:e.jsx(ke.HiOutlineInformationCircle,{})})})}),dn=z.forwardRef(function(o,s){return e.jsx(t.Progress.Track,{...o,ref:s,children:e.jsx(t.Progress.Range,{})})});z.forwardRef(function(o,s){const{children:r,info:a,...i}=o;return e.jsxs(t.Progress.Label,{...i,ref:s,children:[r,a&&e.jsx(cn,{children:a})]})});const hn=t.Progress.Root,un=t.Progress.ValueText,j=()=>{const n=V(),o=n?.numberOfTotalPages===1,s=(n?.beginNumberOfPagesInSpineItem??0)>1,r=(n?.endNumberOfPagesInSpineItem??0)>1,a=(n?.hasChapters?n?.beginPageIndexInSpineItem:n?.beginAbsolutePageIndex)??0,i=(n?.hasChapters?n?.endPageIndexInSpineItem:n?.endAbsolutePageIndex)??0,[l=0,d=0]=[a,i].sort((S,f)=>S-f),u=n?.beginPageIndexInSpineItem!==n?.endPageIndexInSpineItem||n?.beginSpineItemIndex!==n?.endSpineItemIndex,g=n?.hasChapters?n?.beginNumberOfPagesInSpineItem:n?.numberOfTotalPages;return{hasOnlyOnePage:o,beginPageIndex:a,endPageIndex:i,isBeginWithinChapter:s,isEndWithinChapter:r,beginAndEndAreDifferent:u,totalApproximatePages:g,leftPageIndex:l,rightPageIndex:d}},pn=()=>{const n=V(),{hasOnlyOnePage:o,leftPageIndex:s,rightPageIndex:r,totalApproximatePages:a,beginAndEndAreDifferent:i}=j(),l=Math.round((n?.percentageEstimateOfBook??0)*100),d=g=>g?.subChapter?`${g.title} / ${d(g.subChapter)}`:g?.title||"",u=d(n?.beginChapterInfo);return e.jsxs(t.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[e.jsx(hn,{value:l,size:"xs",width:150,children:e.jsxs(t.HStack,{justifyContent:"space-between",children:[e.jsx(dn,{width:110}),e.jsx(un,{children:`${l}%`})]})}),e.jsx(t.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:u?`Chapter: ${u}`:" "}),!o&&e.jsxs(t.HStack,{children:[e.jsx(t.Text,{fontSize:"xs",children:i?`${s+1} - ${r+1} of ${a}`:`${s+1} of ${a}`}),!!n?.hasChapters&&e.jsxs(e.Fragment,{children:[e.jsx(t.Text,{children:"-"}),e.jsxs(t.Text,{fontSize:"xs",children:["(",(n?.beginAbsolutePageIndex??0)+1,")"]})]})]})]})},de=c.memo(({children:n,position:o,...s})=>e.jsx(t.Presence,{display:"flex",flexDirection:"row",width:"100%",position:"absolute",...o==="bottom"?{bottom:0}:{top:0},animationName:o==="bottom"?{_open:"slide-from-bottom, fade-in",_closed:"slide-to-bottom, fade-out"}:{_open:"slide-from-top, fade-in",_closed:"slide-to-top, fade-out"},animationDuration:"moderate",bgColor:"bg.panel",alignItems:"center",justifyContent:"center",shadow:"md",p:4,...s,children:n})),gn=t.chakra(Te),fn=c.memo(n=>e.jsx(t.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:e.jsx(gn,{keyboard:!1,style:{padding:0},css:{"& > .rc-slider-handle:focus-visible":{boxShadow:"0 0 0 2px var(--color-solid) !important"},"& > .rc-slider-handle:active":{boxShadow:"0 0 5px var(--color-solid) !important"},"& > .rc-slider-handle.rc-slider-handle-dragging":{boxShadow:"0 0 0 3px var(--color-solid) !important"}},styles:{rail:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--bg-emphasized)"},track:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--color-solid)"},handle:{width:"24px",height:"24px",top:"50%",borderColor:"var(--color-solid)",transform:`translate(${n.reverse?"50%":"-50%"}, -50%)`,backgroundColor:"var(--bg)",marginTop:"0px"}},...n})})),bn=()=>{const o=V()?.isUsingSpread,{beginPageIndex:s,totalApproximatePages:r=0}=j(),a=o?Math.floor((s||0)/2):s,[i,l]=p.useSignalState(()=>p.signal({default:a||0})),d=0,u=Math.max(0,o?Math.floor((r-1)/2):r-1);return c.useEffect(()=>{l.update(a||0)},[a,l]),{value:i,valueSignal:l,min:d,max:u}},Sn=n=>{const o=k(),s=V(),{manifest:r}=p.useObserve(()=>o?.context,[o])??{},a=r?.readingDirection==="rtl",i=s?.isUsingSpread,{totalApproximatePages:l=0,isBeginWithinChapter:d}=j(),u=1,g=d,{value:S,valueSignal:f,min:v,max:M}=bn(),I=c.useCallback(O=>{const[P=0]=Array.isArray(O)?O:[O];f.update(P);const x=i?Math.floor(P)*2:Math.floor(P);g?o?.navigation.goToPageOfSpineItem({pageIndex:x,spineItemId:o.pagination.state.beginSpineItemIndex??0,animation:!1}):o?.navigation.goToAbsolutePageIndex({absolutePageIndex:x,animation:!1})},[o,i,f,g]);return p.useSubscribe(()=>o?.navigation.throttleLock({duration:100,trigger:f.subject}),[o,f]),l===1||i&&l===2?e.jsx(t.Box,{style:n.style}):e.jsx(fn,{value:[S],max:M,min:v,reverse:a,step:u,onChange:I,...n})},Cn=c.memo(({open:n,onItemClick:o})=>{const s=c.useRef(null),r=k(),{quickMenuBottomBarBoundingBoxSignal:a,onFontSizeMenuOpenChange:i,onRefitMenuOpenChange:l}=m(["quickMenuBottomBarBoundingBoxSignal","onFontSizeMenuOpenChange","onRefitMenuOpenChange"]),d=p.useObserve(()=>r?.navigation.state$,[r]),u=p.useObserve(()=>r?.settings.values$,[r]),g=p.useObserve(()=>r?.zoom.state$.pipe(h.map(O=>O.currentScale>1?"in":O.currentScale<1?"out":void 0)),[r]),S=g==="in",f=g==="out",v=u?.computedPageTurnMode==="scrollable",M=u?.computedPageTurnDirection==="vertical",[I,w]=c.useState(!0);return c.useEffect(()=>{if(!s.current)return;const O=new ResizeObserver(P=>{for(const x of P)a.update(x)});return O.observe(s.current),()=>{O.disconnect()}},[a]),e.jsxs(de,{present:n,position:"bottom",display:"flex",flexDirection:"column",overflow:"auto",pb:8,px:0,ref:s,children:[e.jsxs(t.HStack,{flex:1,alignItems:"center",justifyContent:"center",maxWidth:"100%",px:4,children:[e.jsx(t.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>r?.navigation.goToLeftOrTopSpineItem(),disabled:!d?.canGoLeftSpineItem&&!d?.canGoTopSpineItem,children:M?e.jsx(q.RxDoubleArrowUp,{}):e.jsx(q.RxDoubleArrowLeft,{})}),e.jsxs(t.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[e.jsx(pn,{}),e.jsx(Sn,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!d?.canGoRightSpineItem&&!d?.canGoBottomSpineItem,onClick:()=>{r?.navigation.goToRightOrBottomSpineItem()},children:M?e.jsx(q.RxDoubleArrowDown,{}):e.jsx(q.RxDoubleArrowRight,{})})]}),e.jsx(t.HStack,{alignSelf:"stretch",alignItems:"center",justifyContent:"center",children:e.jsxs(t.Collapsible.Root,{open:I,flex:1,onOpenChange:({open:O})=>{w(O)},width:"100%",children:[e.jsx(t.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:e.jsx(T.LuChevronDown,{style:{transform:I?"rotate(0deg)":"rotate(180deg)"}})}),e.jsx(t.Collapsible.Content,{display:"flex",justifyContent:"center",children:e.jsxs(t.Box,{display:"flex",overflowX:"auto",px:4,pb:1,children:[e.jsx(t.IconButton,{"aria-label":"Help",size:"lg",variant:"ghost",onClick:()=>o("help"),children:e.jsx(T.LuCircleHelp,{})}),e.jsx(t.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>o("toc"),children:e.jsx(T.LuTableOfContents,{})}),te(r)&&e.jsx(t.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>o("search"),children:e.jsx(T.LuSearch,{})}),e.jsx(t.IconButton,{"aria-label":"Zoom",size:"lg",variant:S?"solid":"ghost",onClick:()=>{S?r?.zoom.exit({animate:!0}):r?.zoom.enter({animate:!0,scale:2})},children:S?e.jsx(T.LuZoomOut,{}):e.jsx(T.LuZoomIn,{})}),e.jsx(t.IconButton,{"aria-label":"font size",size:"lg",onClick:()=>{i(!0)},variant:"ghost",children:e.jsx(Se.BiFontSize,{})}),N(r)&&e.jsx(t.IconButton,{"aria-label":"Bookmarks",size:"lg",variant:"ghost",onClick:()=>o("bookmarks"),children:e.jsx(Ce.BsBookmarks,{})}),N(r)&&e.jsx(t.IconButton,{"aria-label":"Annotations",size:"lg",variant:"ghost",onClick:()=>o("annotations"),children:e.jsx(T.LuNotebookPen,{})}),re(r)&&e.jsx(t.IconButton,{"aria-label":"Refit",size:"lg",variant:"ghost",onClick:()=>{l(!0)},disabled:!v,children:e.jsx(Y.MdOutlineFitScreen,{})}),e.jsx(t.IconButton,{"aria-label":"Thumbnails",size:"lg",variant:f?"solid":"ghost",onClick:()=>{f?r?.zoom.exit({animate:!0}):r?.zoom.enter({animate:!0,scale:.5})},children:e.jsx(T.LuGalleryHorizontal,{})}),se(r)&&e.jsx(t.IconButton,{"aria-label":"Gallery",size:"lg",variant:"ghost",onClick:()=>o("gallery"),children:e.jsx(ve.RiGalleryView2,{})})]})})]})})]})}),vn=()=>{const[n,o]=c.useState(!1),s=c.useCallback(()=>document.fullscreenElement?document.exitFullscreen().catch(console.error).then(()=>{o(!1)}):document.documentElement.requestFullscreen({navigationUI:"hide"}).catch(console.error).then(()=>{o(!0)}),[]);return c.useEffect(()=>{function r(){o(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",r),()=>{document.removeEventListener("fullscreenchange",r)}},[]),{isFullscreen:n,onToggleFullscreenClick:s}},kn=c.memo(({open:n,onItemClick:o})=>{const s=k(),r=p.useObserve(()=>s?.context.manifest$,[s]),{isFullscreen:a,onToggleFullscreenClick:i}=vn();return e.jsxs(de,{present:n,position:"top",height:"80px",justifyContent:"space-between",children:[e.jsx(t.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>o("back"),children:e.jsx(R.IoIosArrowBack,{})}),e.jsx(t.Stack,{flex:1,maxW:600,gap:1,alignItems:"center",overflow:"auto",px:4,children:e.jsx(t.Text,{truncate:!0,maxWidth:"100%",children:r?.title})}),e.jsxs(t.HStack,{children:[e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>o("more"),children:e.jsx(R.IoMdMore,{})}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:i,children:a?e.jsx(Y.MdFullscreenExit,{}):e.jsx(Y.MdFullscreen,{})})]})]})}),Tn=c.memo(({onItemClick:n})=>{const[o]=G(),{refitMenuOpen:s,fontSizeMenuOpen:r}=m(["refitMenuOpen","fontSizeMenuOpen"]);return e.jsxs(e.Fragment,{children:[e.jsx(kn,{open:o&&!s&&!r,onItemClick:n}),e.jsx(Cn,{open:o&&!s&&!r,onItemClick:n})]})}),In=()=>{const[n,o]=G(),s=k();p.useSubscribe(()=>s?.gestures.gestures$.pipe(h.filter(r=>r.type==="tap"&&!r.handled),h.withLatestFrom(s.selection.selection$,s.selection.lastSelectionOnPointerdown$),h.tap(([,r,a])=>{o(r||a?!1:i=>!i)})),[s])},On=z.forwardRef(function(o,s){const{label:r,children:a,helperText:i,errorText:l,optionalText:d,...u}=o;return e.jsxs(t.Field.Root,{ref:s,...u,children:[r&&e.jsxs(t.Field.Label,{children:[r,e.jsx(t.Field.RequiredIndicator,{fallback:d})]}),a,i&&e.jsx(t.Field.HelperText,{children:i}),l&&e.jsx(t.Field.ErrorText,{children:l})]})}),Mn=c.memo(()=>{const{refitMenuOpen:o,onRefitMenuOpenChange:s}=m(["refitMenuOpen","onRefitMenuOpenChange"]),r=k(),a=re(r)?r:void 0,i=p.useObserve(()=>a?.refit.settings$,[a]);return e.jsx(E,{lazyMount:!0,open:o,onOpenChange:l=>s(l.open),placement:"center",children:e.jsxs(y,{children:[e.jsx(F,{children:e.jsx(_,{children:"Viewport fit"})}),e.jsx(D,{children:e.jsxs(t.Fieldset.Root,{children:[e.jsx(t.Fieldset.HelperText,{children:"Adjust the viewport for a more comfortable reading experience."}),e.jsxs(t.Fieldset.Content,{children:[e.jsx(On,{label:"Profile",children:e.jsx(le,{defaultValue:"fit",onValueChange:l=>{const d=l.value;a?.refit.update({viewportFit:d,customWidth:60})},value:i?.viewportFit??"fit",children:e.jsxs(t.Stack,{gap:2,children:[e.jsx($,{value:"desktop",children:"Desktop"}),e.jsx($,{value:"tablet",children:"Tablet"}),e.jsx($,{value:"fit",children:"Full width (default)"}),e.jsx($,{value:"custom",children:"Custom"})]})})}),e.jsx(X,{label:"Maximum width (%)",showValue:!0,max:100,min:10,step:1,disabled:i?.viewportFit!=="custom",value:[i?.customWidth??60],onValueChange:l=>{const d=l.value[0]??0;a?.refit.update({customWidth:d})}})]})]})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Close"})})}),e.jsx(B,{})]})})}),zn=c.memo(({contextText:n="",startOffset:o=0,text:s,cfi:r="#",onClick:a,absolutePageIndex:i})=>{const d=n.substring(Math.max(o-15,0),Math.max(o,0)),u=n.substring(Math.min(o+s.length,n.length-1),Math.min(o+s.length+15,n.length-1));return e.jsxs(t.Link,{href:r,style:{margin:5,overflow:"hidden"},onClick:g=>{g.preventDefault(),a(r)},display:"flex",flexDirection:"column",alignItems:"flex-start",gap:0,children:[e.jsxs(t.Text,{lineClamp:1,as:"cite",style:{display:"block"},children:['"',d,e.jsx("b",{children:s}),u,'"']}),e.jsx(t.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${i!==void 0?i+1:"unknown (not loaded)"}`})]})}),mn=500,Pn=()=>{const n=p.useConstant(()=>new h.BehaviorSubject("")),o=p.useObserve(n),s=k(),r=te(s)?s:void 0,a=p.useObserve(()=>n.pipe(h.distinctUntilChanged(),h.switchMap(i=>i===""||!r?h.of(void 0):h.merge(h.of({type:"start",data:void 0}),h.timer(mn).pipe(h.switchMap(()=>r.search.search(i)),h.map(l=>({type:"end",data:l})))))),[r,n]);return{value:o,setValue:n.next.bind(n),status:a?.type??"idle",data:a?.data}},wn=c.memo(({onNavigate:n})=>{const o=k(),{value:s,setValue:r,status:a,data:i}=Pn(),l=g=>{r(g.target.value)},d=c.useCallback(g=>{n(),o?.navigation.goToCfi(g)},[o,n]),u=p.useObserve(()=>o?.locateResource(i?.slice(0,100)??[]),[i]);return e.jsxs(t.Stack,{flex:1,height:"100%",gap:2,children:[e.jsx(t.Input,{placeholder:"Type something...",value:s,onChange:l,flexShrink:0,variant:"subtle",name:"search",focusRing:"none",focusVisibleRing:"none",outline:"none",focusRingColor:"transparent"}),e.jsxs(t.Stack,{style:{overflow:"hidden",overflowY:"auto"},overflow:"auto",px:4,flex:1,children:[a==="start"&&e.jsx(t.Text,{children:"Searching ..."}),i?.length===0&&e.jsx(t.Text,{children:"No results"}),a==="end"&&(i?.length??0)>0&&e.jsxs(t.Stack,{children:[e.jsxs(t.Text,{fontSize:"md",children:[i?.length," result(s)"]}),e.jsx(t.Stack,{gap:0,children:u?.map((g,S)=>e.jsx(zn,{contextText:g.meta?.range?.startContainer.parentElement?.textContent??"",pageIndex:g.meta?.itemPageIndex,startOffset:g.meta?.range?.startOffset??0,text:s,cfi:g.meta.cfi,onClick:d,absolutePageIndex:g.meta?.absolutePageIndex},S))})]})]})]})}),xn=c.memo(({open:n,setOpen:o,onNavigate:s})=>e.jsx(E,{lazyMount:!0,placement:"center",open:n,onOpenChange:r=>o(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(y,{height:"100%",children:[e.jsx(F,{children:e.jsx(_,{children:"Search"})}),e.jsx(D,{flex:1,p:0,children:e.jsx(wn,{onNavigate:s})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),yn=c.memo(({onNavigate:n})=>{const o=k(),{manifest:s,assumedRenditionLayout:r}=p.useObserve(()=>o?.context,[o])??{},{nav:a}=s??{},i=V();a?.toc;const{beginSpineItemIndex:l,beginPageIndexInSpineItem:d}=i??{},u=(r==="reflowable"?d:l)||0;let g=i?.beginChapterInfo;for(;g?.subChapter;)g=g?.subChapter;const S=(f,v,M)=>e.jsxs(c.Fragment,{children:[e.jsx(t.List.Item,{pl:4*(M+1),style:{display:"flex",alignItems:"center"},children:e.jsxs(t.Link,{onClick:()=>{n(),o?.navigation.goToUrl(f.href)},href:"#",children:[g?.path===f.path&&e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(T.LuCircleCheck,{})}),g?.path!==f.path&&e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(T.LuCircleCheck,{})}),e.jsxs(t.Stack,{gap:0,children:[e.jsx(t.Text,{fontSize:"md",children:f.title||f.path}),g?.path===f.path&&e.jsx(t.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Currently on page ${u+1}`})]})]})}),f.contents.length>0&&e.jsx(t.List.Root,{as:"div",gap:2,children:f.contents.map((I,w)=>S(I,w,M+1))})]},v);return e.jsx(t.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:a?.toc.map((f,v)=>S(f,v,0))})}),Bn=c.memo(({open:n,setOpen:o,onNavigate:s})=>e.jsx(E,{lazyMount:!0,placement:"center",open:n,onOpenChange:r=>o(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(y,{children:[e.jsx(F,{children:e.jsx(_,{children:"Table of Contents"})}),e.jsx(D,{overflowY:"auto",flex:1,children:e.jsx(yn,{onNavigate:s})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),En=()=>{const n=k(),{zoomMaxScale:o}=m(["zoomMaxScale"]);c.useEffect(function(){n?.gestures.settings.update({zoomMaxScale:o??Z})},[n,o])},he=.5,ue=1,An=(n,o,s,r)=>{if(n>o&&n<o+r)return o+r;const a=Math.min(Math.max(n,o),s),i=Math.round((a-o)/r)*r+o;return Math.round(i*100)/100},Fn=c.memo(()=>{const{quickMenuBottomBarBoundingBoxSignal:n,zoomMaxScale:o=Z}=m(["quickMenuBottomBarBoundingBoxSignal","zoomMaxScale"]),s=p.useSignalValue(n),r=k(),a=p.useObserve(()=>r?.zoom.state$.pipe(h.map(u=>u.currentScale),h.throttleTime(100,h.animationFrameScheduler,{leading:!0,trailing:!0})),[r])??1,i=p.useObserve(()=>r?.zoom.state$.pipe(h.map(u=>u.isZooming)),[r])??!1,l=An(a,ue,o,he),d=s?.borderBoxSize?.[0]?.blockSize??1;return e.jsx(t.Presence,{present:i&&a>1,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",position:"absolute",bottom:`calc(${d}px + var(--chakra-spacing-4))`,right:4,backgroundColor:"bg.panel",shadow:"sm",borderRadius:"md",p:4,children:e.jsx(X,{value:[l],min:ue,max:o,step:he,minWidth:200,onValueChange:u=>{const g=u.value?.[0]??1;g===1?r?.zoom.exit():r?.zoom.scaleAt(g,{constrain:"within-viewport"})}})})}),pe={_open:"fade-in",_closed:"fade-out"},Dn=c.memo(()=>(_e(),null)),_n=c.memo(()=>(En(),rn(),an(),In(),Le(),e.jsxs(e.Fragment,{children:[e.jsx(Ye,{}),e.jsx(Dn,{})]}))),Ln=c.memo(({children:n,...o})=>{const{enableFloatingTime:s,enableFloatingProgress:r,onItemClick:a}=m(["enableFloatingTime","enableFloatingProgress","onItemClick"]),[i,l]=c.useState(!1),[d,u]=c.useState(!1),[g,S]=c.useState(!1),[f,v]=c.useState(void 0),[M,I]=c.useState(!1),[w,O]=G(),P=c.useCallback(()=>{l(!1),u(!1),S(!1),v(void 0),O(!1),I(!1)},[O]),x=c.useCallback(b=>{b==="annotations"?v("annotations"):b==="search"?S(!0):b==="help"?u(!0):b==="toc"?l(!0):b==="bookmarks"?v("bookmarks"):b==="gallery"&&I(!0),a?.(b)},[a]);return e.jsxs(e.Fragment,{children:[e.jsx(_n,{}),e.jsxs(t.Box,{position:"absolute",top:0,left:0,height:"100%",width:"100%",overflow:"hidden","data-prose-react-reader":!0,...o,children:[n,r&&e.jsx(t.Presence,{present:!w,animationName:pe,animationDuration:"moderate",children:e.jsx(nn,{})}),e.jsx(Je,{open:M,setOpen:I}),e.jsx(Mn,{}),e.jsx(Tn,{onItemClick:x}),e.jsx(Fn,{}),e.jsx(Ue,{}),e.jsx(De,{}),e.jsx(en,{open:d,setOpen:u}),e.jsx(Bn,{open:i,setOpen:l,onNavigate:P}),e.jsx(xn,{open:g,setOpen:S,onNavigate:P}),e.jsx(ye,{openWith:f,setOpen:b=>v(b?"annotations":void 0),onNavigate:P}),e.jsx(t.Presence,{present:s||w,animationName:pe,animationDuration:"slow",overflow:"hidden",children:e.jsx(sn,{})}),e.jsx(Ve,{})]})]})}),Vn=c.memo(({children:n,slots:o,...s})=>{const{container:{props:r={}}={}}=o??{};return e.jsx(Ne,{...s,children:e.jsx(Ln,{...r,children:n})})});C.BOOKMARK_AREA_DATA_ATTRIBUTE=ee,C.MAX_ZOOM_SCALE=Z,C.ReactReader=Vn,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})}));
|
|
2
2
|
//# sourceMappingURL=index.umd.cjs.map
|