@prose-reader/react-reader 1.234.0 → 1.235.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/gallery/GalleryDialog.d.ts +1 -1
- package/dist/help/HelpDialog.d.ts +1 -1
- package/dist/index.js +481 -512
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/index.umd.cjs.map +1 -1
- package/dist/search/SearchDialogContent.d.ts +1 -1
- package/dist/toc/TableOfContentsDialogContent.d.ts +1 -1
- package/package.json +3 -3
package/dist/index.umd.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(b,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("react"),require("reactjrx"),require("rxjs"),require("@chakra-ui/react"),require("react-icons/lu"),require("react-dom"),require("@prose-reader/enhancer-gestures"),require("@prose-reader/core"),require("react-icons/bs"),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"),require("react-icons/md")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","reactjrx","rxjs","@chakra-ui/react","react-icons/lu","react-dom","@prose-reader/enhancer-gestures","@prose-reader/core","react-icons/bs","react-icons/ri","react-icons/rx","react-icons/hi","rc-slider","rc-slider/assets/index.css","react-icons/io","react-icons/md"],o):(b=typeof globalThis<"u"?globalThis:b||self,o(b["prose-react-reader"]={},b.jsxRuntime,b.React,b.reactjrx,b.rxjs,b.react,b.lu,b.reactDom,b.enhancerGestures,b.core,b.bs,b.ri,b.rx,b.hi,b.RcSlider,null,b.io,b.md))})(this,function(b,o,h,f,a,s,I,R,ee,F,oe,ne,N,te,se,io,G,U){"use strict";function re(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const l=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,l.get?l:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const x=re(h),Y=h.createContext({reader:void 0,quickMenuSignal:f.signal({default:!1}),notificationsSubject:new a.Subject}),le=h.memo(({children:e,reader:n,quickMenuOpen:t,onQuickMenuOpenChange:l})=>{const[,r]=f.useSignalState(()=>f.signal({default:t})),i=f.useConstant(()=>new a.Subject),d=f.useLiveRef(l),g=h.useMemo(()=>({quickMenuSignal:r,reader:n,notificationsSubject:i}),[r,n,i]);return h.useEffect(()=>{r.setValue(t)},[t,r]),f.useSubscribe(()=>r.pipe(a.tap(d.current)),[r,d]),o.jsx(Y.Provider,{value:g,children:e})}),ie=x.forwardRef(function(n,t){return o.jsx(s.IconButton,{variant:"ghost","aria-label":"Close",ref:t,...n,children:n.children??o.jsx(I.LuX,{})})}),m=x.forwardRef(function(n,t){const{children:l,portalled:r=!0,portalRef:i,backdrop:d=!0,...g}=n;return o.jsxs(s.Portal,{disabled:!r,container:i,children:[d&&o.jsx(s.Dialog.Backdrop,{}),o.jsx(s.Dialog.Positioner,{children:o.jsx(s.Dialog.Content,{ref:t,...g,asChild:!1,children:l})})]})}),B=x.forwardRef(function(n,t){return o.jsx(s.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...n,asChild:!0,children:o.jsx(ie,{size:"sm",ref:t,children:n.children})})}),D=s.Dialog.Root,A=s.Dialog.Footer,E=s.Dialog.Header,M=s.Dialog.Body;s.Dialog.Backdrop;const L=s.Dialog.Title;s.Dialog.Description,s.Dialog.Trigger;const z=s.Dialog.ActionTrigger,_=()=>h.useContext(Y),v=()=>{const{reader:e}=_();return e},K=e=>!!e&&"__PROSE_READER_ENHANCER_SEARCH"in e,$=e=>!!e&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in e,Q=e=>!!e&&"__PROSE_READER_ENHANCER_GALLERY"in e,ae=e=>{const n=v(),t=$(n)?n:void 0;return{data:f.useObserve(()=>t==null?void 0:t.annotations.annotations$.pipe(a.map(r=>r.find(i=>i.id===e)),a.filter(f.isDefined),a.switchMap(r=>t.locateResource(r))),[t])}},Z=({id:e,onNavigate:n,allowLeftIcon:t=!0})=>{var d,g,p,c;const l=v(),{data:r}=ae(e),i=((d=r==null?void 0:r.meta.range)==null?void 0:d.toString())||((g=r==null?void 0:r.meta.node)==null?void 0:g.textContent);return o.jsx(s.List.Item,{children:o.jsxs(s.Link,{href:"#",onClick:()=>{n(),l==null||l.navigation.goToCfi((r==null?void 0:r.meta.cfi)??"")},children:[(p=r==null?void 0:r.resource)!=null&&p.notes?o.jsx(s.List.Indicator,{asChild:!0,children:o.jsx(I.LuNotebookPen,{})}):t?o.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:o.jsx(I.LuNotebookPen,{})}):null,o.jsxs(s.Stack,{gap:0,children:[i?o.jsx(s.Text,{lineClamp:2,fontSize:"md",children:i}):o.jsxs(s.Text,{lineClamp:2,fontSize:"md",fontStyle:"italic",children:["Page ",((r==null?void 0:r.meta.absolutePageIndex)??0)+1]}),o.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${((c=r==null?void 0:r.meta)==null?void 0:c.absolutePageIndex)!==void 0?r.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})})},H=()=>{const e=v(),n=$(e)?e:void 0;return{data:f.useObserve(()=>n==null?void 0:n.annotations.annotations$.pipe(a.switchMap(l=>n.locateResource(l))),[n])}},ce=()=>{const{data:e}=H();return{data:e==null?void 0:e.filter(n=>n.meta.isCfiRange)}},de=({onNavigate:e})=>{const{data:n}=ce();return o.jsx(s.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:n==null?void 0:n.map(t=>o.jsx(Z,{id:t.resource.id,onNavigate:e},t.resource.id))})},he=()=>{const{data:e}=H();return{data:e==null?void 0:e.filter(n=>!n.meta.isCfiRange&&!n.resource.notes)}},ge=({onNavigate:e})=>{const{data:n}=he();return o.jsx(s.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:n==null?void 0:n.map(t=>o.jsx(Z,{id:t.resource.id,onNavigate:e,allowLeftIcon:!1},t.resource.id))})},pe=h.memo(({onNavigate:e,defaultTab:n})=>{const[t,l]=h.useState(n??"bookmarks");return o.jsxs(s.Tabs.Root,{value:t,onValueChange:r=>l(r.value),children:[o.jsxs(s.Tabs.List,{children:[o.jsxs(s.Tabs.Trigger,{value:"bookmarks",children:[o.jsx(I.LuBookmark,{}),"Bookmarks"]}),o.jsxs(s.Tabs.Trigger,{value:"annotations",children:[o.jsx(I.LuNotebookPen,{}),"Annotations"]}),o.jsx(s.Tabs.Indicator,{})]}),o.jsx(s.Tabs.Content,{value:"bookmarks",children:o.jsx(ge,{onNavigate:e})}),o.jsx(s.Tabs.Content,{value:"annotations",children:o.jsx(de,{onNavigate:e})})]})}),fe=h.memo(({openWith:e,setOpen:n,onNavigate:t})=>o.jsx(D,{lazyMount:!0,placement:"center",open:!!e,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:o.jsxs(m,{height:"100%",children:[o.jsx(E,{children:o.jsx(L,{children:"Annotations"})}),o.jsx(M,{flex:1,children:o.jsx(pe,{onNavigate:t,defaultTab:e})}),o.jsx(A,{children:o.jsx(z,{asChild:!0,children:o.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),o.jsx(B,{})]})})),ue=h.memo(({children:e})=>{const n=v(),t=f.useObserve(()=>n==null?void 0:n.spine.element$,[n]);return t?o.jsx(o.Fragment,{children:R.createPortal(e,t)}):null}),be=({absolutePageIndex:e,itemIndex:n})=>{const t=v();return{spineItem:f.useObserve(()=>t?n!==void 0?a.of(t.spine.spineItemsManager.get(n)):e!==void 0?t.spine.pages.observeFromAbsolutePageIndex(e).pipe(a.map(r=>t.spine.spineItemsManager.get(r==null?void 0:r.itemIndex))):a.EMPTY:a.EMPTY,[n,e,t])}},ve=({absolutePageIndex:e,itemIndex:n})=>{const{spineItem:t}=be({absolutePageIndex:e,itemIndex:n}),l=f.useObserve(()=>(t==null?void 0:t.isReady$)??a.of(!1),[t]);return{spineItem:t,isReady:l}},X="data-bookmark-area",Se=h.memo(({absolutePageIndex:e,left:n,top:t,width:l})=>{const{isReady:r}=ve({absolutePageIndex:e}),{data:i}=H(),d=i==null?void 0:i.find(p=>{var c;return((c=p==null?void 0:p.meta)==null?void 0:c.absolutePageIndex)===e&&p.meta.range===void 0});if(!r)return null;const g=l*.1/2;return o.jsx(s.Presence,{present:!!d,lazyMount:!0,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:o.jsx(s.Box,{"data-bookmark-area":X,position:"absolute",left:n+l,transform:"translateX(-100%)",pointerEvents:"none",top:t,width:g,height:g,_before:{content:'""',position:"absolute",top:0,left:0,width:0,height:0,borderTop:`${g}px solid #03030373`,borderLeft:`${g}px solid transparent`}})})}),Ce=h.memo(()=>{const e=v(),n=f.useObserve(()=>e==null?void 0:e.layoutInfo$,[e]);return o.jsx(ue,{children:n==null?void 0:n.pages.map(({absoluteLayout:{left:t,top:l,width:r}},i)=>o.jsx(Se,{absolutePageIndex:i,left:t,top:l,width:r},i))})}),Te=()=>{const e=v();return $(e)?e:void 0},Ie=()=>{const e=Te(),{data:n}=H();h.useEffect(()=>e?e.gestures.hooks.register("beforeTapGesture",({event$:l})=>l.pipe(a.withLatestFrom(e==null?void 0:e.annotations.candidates$),a.map(([r,i])=>{if(!r.page)return!0;const{spineItem:d,spineItemPageIndex:g,spineItemPagePosition:p,pageSize:c}=r.page;if(ee.isPositionInArea(p,{type:"corner",corner:"top-right",size:10,unit:"%"},c)){const u=e.spine.pages.fromSpineItemPageIndex(d,g);if(!u)return!0;const S=n==null?void 0:n.find(k=>{var y;return((y=k==null?void 0:k.meta)==null?void 0:y.absolutePageIndex)===u.absolutePageIndex&&k.meta.range===void 0});if(S)return e==null||e.annotations.delete(S.resource.id),!1;if(i==null?void 0:i[u.absolutePageIndex])return e==null||e.annotations.annotateAbsolutePage({absolutePageIndex:u.absolutePageIndex}),!1}return!0}))):void 0,[e,n])},q=s.createToaster({placement:"bottom-end",pauseOnPageIdle:!0}),ke=()=>o.jsx(s.Portal,{children:o.jsx(s.Toaster,{toaster:q,insetInline:{mdDown:"4"},children:e=>{var n;return o.jsxs(s.Toast.Root,{width:{md:"sm"},children:[e.type==="loading"?o.jsx(s.Spinner,{size:"sm",color:"blue.solid"}):o.jsx(s.Toast.Indicator,{}),o.jsxs(s.Stack,{gap:"1",flex:"1",maxWidth:"100%",children:[e.title&&o.jsx(s.Toast.Title,{children:e.title}),e.description&&o.jsx(s.Toast.Description,{children:e.description})]}),e.action&&o.jsx(s.Toast.ActionTrigger,{children:e.action.label}),((n=e.meta)==null?void 0:n.closable)&&o.jsx(s.Toast.CloseTrigger,{})]})}})}),Pe={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function ye(){const[e,n]=h.useState(null),[t,l]=h.useState(Pe),r=h.useMemo(()=>new ResizeObserver(i=>{if(i[0]){const{x:d,y:g,width:p,height:c,top:C,left:u,bottom:S,right:P}=i[0].contentRect;l({x:d,y:g,width:p,height:c,top:C,left:u,bottom:S,right:P})}}),[]);return h.useLayoutEffect(()=>{if(e)return r.observe(e),()=>{r.disconnect()}},[e,r]),[n,t,e]}const we=(e,n,t)=>{const l=v(),r=Q(l)?l:void 0;f.useSubscribe(()=>{if(!r||!e)return a.NEVER;const i=n.layout.layout$.pipe(a.startWith(n.layout.layoutInfo),a.distinctUntilChanged(F.isShallowEqual)),d=F.observeIntersection(e).pipe(a.map(g=>g.some(p=>p.isIntersecting)));return i.pipe(a.throttleTime(100,void 0,{trailing:!0}),a.switchMap(()=>d.pipe(a.tap(g=>{g||(e.innerHTML="")}),a.filter(g=>g),a.first()).pipe(a.switchMap(()=>(e.innerHTML="",r==null?void 0:r.gallery.snapshot(n,e,t))))))},[r,n,t,e])},xe=h.memo(({item:e,onNavigated:n})=>{var g;const[t,l,r]=ye(),i=v();we(r,e,l);const d=f.useObserve(()=>i==null?void 0:i.locateResource(e,{mode:"shallow"}),[i,e]);return o.jsxs(s.Box,{width:"100%",aspectRatio:"2/3",border:"1px solid",borderColor:"border",borderRadius:"md","data-grid-item":!0,cursor:"pointer",position:"relative",overflow:"hidden",onClick:()=>{n(),i==null||i.navigation.goToSpineItem({indexOrId:e})},children:[o.jsx(s.Box,{height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",ref:t}),o.jsxs(s.Text,{position:"absolute",bottom:0,left:"0",right:"0",textAlign:"center",bgColor:"white",p:4,fontSize:"xs",children:["Page ",(((g=d==null?void 0:d.meta)==null?void 0:g.absolutePageIndex)??0)+1]})]})}),Oe=h.memo(({open:e,setOpen:n})=>{const t=v(),l=f.useObserve(()=>t==null?void 0:t.spineItemsManager.items$,[t]);return o.jsx(D,{lazyMount:!0,placement:"center",open:e,onOpenChange:r=>n(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:o.jsxs(m,{height:"100%",children:[o.jsx(E,{children:o.jsx(L,{children:"Gallery"})}),o.jsx(M,{children:o.jsx(s.Box,{gridTemplateColumns:["repeat(2, minmax(0, 1fr))","repeat(3, minmax(0, 1fr))"],display:"grid",gap:[2,4],pt:2,"data-grid":!0,children:l==null?void 0:l.map(r=>o.jsx(xe,{item:r,onNavigated:()=>{n(!1)}},r.item.id))})}),o.jsx(A,{children:o.jsx(z,{asChild:!0,children:o.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),o.jsx(B,{})]})})}),me="@prose-reader/react-reader",Be="1.233.0",De=h.memo(({open:e,setOpen:n})=>o.jsx(D,{lazyMount:!0,placement:"center",open:e,onOpenChange:t=>n(t.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:o.jsxs(m,{children:[o.jsx(E,{children:o.jsx(L,{children:"Help"})}),o.jsxs(M,{overflowY:"auto",flex:1,children:[o.jsx(s.Heading,{mb:2,as:"h3",size:"lg",children:"Shortcuts"}),o.jsxs(s.HStack,{mb:1,children:[o.jsx(s.Kbd,{children:o.jsx(I.LuArrowBigRight,{})})," ",o.jsx(s.Text,{children:"Navigate to right page"})]}),o.jsxs(s.HStack,{mb:1,children:[o.jsx(s.Kbd,{children:o.jsx(I.LuArrowBigLeft,{})})," ",o.jsx(s.Text,{children:"Navigate to left page"})]}),o.jsx(s.Heading,{mb:2,mt:4,as:"h3",size:"lg",children:"About"}),o.jsxs(s.Text,{children:[me," version: ",Be]})]}),o.jsx(A,{children:o.jsx(z,{asChild:!0,children:o.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),o.jsx(B,{})]})})),O=()=>{const e=v();return f.useObserve(()=>e?a.combineLatest([e.pagination.state$,e.context.state$]).pipe(a.map(([n,t])=>{var r;const l=(r=t.manifest)==null?void 0:r.spineItems.every(i=>{var d;return(d=i.mediaType)==null?void 0:d.startsWith("image/")});return{...n,hasChapters:!t.isFullyPrePaginated&&!l}})):a.NEVER,[e])},Ae=()=>{const e=O(),n=Math.floor(((e==null?void 0:e.percentageEstimateOfBook)??0)*100),t=n>0?n:1;return(e==null?void 0:e.percentageEstimateOfBook)===void 0?null:o.jsx(s.Box,{position:"absolute",right:0,bottom:0,p:2,color:"black",children:o.jsxs(s.Text,{fontSize:"sm",children:[t," %"]})})},Ee=()=>{const[e,n]=h.useState(new Date);return h.useEffect(()=>{const t=setInterval(()=>{n(new Date)},6e4);return()=>clearInterval(t)},[]),e},Me=e=>{const n=Ee();return o.jsx(s.Text,{fontSize:"xs",...e,children:n.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},V=()=>{const{quickMenuSignal:e}=_();return[f.useSignalValue(e),e.setValue,e]},Le=()=>{const[e]=V();return o.jsx(s.Box,{position:"absolute",left:0,bottom:0,p:2,color:e?void 0:"colorPalette.contrast",children:o.jsx(Me,{})})},ze=()=>{const e=v();f.useSubscribe(()=>e==null?void 0:e.links$.subscribe(n=>{if(n.type==="click"&&F.isHtmlTagElement(n.target,"a")){if(!n.target.href)return;const t=new URL(n.target.href);window.location.host!==t.host&&confirm("You are going to be redirected to external link")&&window.open(n.target.href,"__blank")}}),[e])},_e=()=>{const e=v(),{notificationsSubject:n}=_();f.useSubscribe(()=>e==null?void 0:e.zoom.isZooming$.pipe(a.switchMap(t=>{if(!t)return a.EMPTY;const l=new a.Subject;return n.next({key:"zoom",title:"Zooming",duration:999999,abort:l}),a.NEVER.pipe(a.finalize(()=>{l.next(),l.complete()}))})),[e])},$e=()=>{const e=v(),{notificationsSubject:n}=_();f.useSubscribe(()=>e==null?void 0:e.settings.values$.pipe(a.map(({fontScale:t})=>t),a.distinctUntilChanged(),a.skip(1),a.tap(t=>{n.next({key:"fontScaleChange",title:"Font size changed",description:`${t*100} %`})})),[e,n])},Ne=()=>{const{notificationsSubject:e}=_();$e(),_e(),f.useSubscribe(()=>e.pipe(a.filter(f.isDefined),a.mergeMap(n=>{const t=n.duration??3e3,l=q.create({title:n.title,description:n.description,duration:t}),r=e.pipe(a.skip(1),a.filter(i=>!!n.key&&(i==null?void 0:i.key)===n.key));return a.merge(a.timer(t),n.abort??a.NEVER,r).pipe(a.first(),a.finalize(()=>{q.dismiss(l)}))})),[e])},He=x.forwardRef(function(n,t){const{showArrow:l,children:r,portalled:i=!0,content:d,portalRef:g,...p}=n;return o.jsxs(s.Popover.Root,{...p,positioning:{...p.positioning,gutter:4},children:[o.jsx(s.Popover.Trigger,{asChild:!0,children:r}),o.jsx(s.Portal,{disabled:!i,container:g,children:o.jsx(s.Popover.Positioner,{children:o.jsxs(s.Popover.Content,{width:"auto",px:"2",py:"1",textStyle:"xs",rounded:"sm",ref:t,children:[l&&o.jsx(s.Popover.Arrow,{children:o.jsx(s.Popover.ArrowTip,{})}),d]})})})]})}),Fe=x.forwardRef(function(n,t){const{children:l,...r}=n;return o.jsx(He,{content:l,...r,ref:t,children:o.jsx(s.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:o.jsx(te.HiOutlineInformationCircle,{})})})}),qe=x.forwardRef(function(n,t){return o.jsx(s.Progress.Track,{...n,ref:t,children:o.jsx(s.Progress.Range,{})})});x.forwardRef(function(n,t){const{children:l,info:r,...i}=n;return o.jsxs(s.Progress.Label,{...i,ref:t,children:[l,r&&o.jsx(Fe,{children:r})]})});const Ve=s.Progress.Root,We=s.Progress.ValueText,W=()=>{const e=O(),n=(e==null?void 0:e.numberOfTotalPages)===1,t=((e==null?void 0:e.beginNumberOfPagesInSpineItem)??0)>1,l=((e==null?void 0:e.endNumberOfPagesInSpineItem)??0)>1,r=(e!=null&&e.hasChapters?e==null?void 0:e.beginPageIndexInSpineItem:e==null?void 0:e.beginAbsolutePageIndex)??0,i=(e!=null&&e.hasChapters?e==null?void 0:e.endPageIndexInSpineItem:e==null?void 0:e.endAbsolutePageIndex)??0,[d=0,g=0]=[r,i].sort((C,u)=>C-u),p=(e==null?void 0:e.beginPageIndexInSpineItem)!==(e==null?void 0:e.endPageIndexInSpineItem)||(e==null?void 0:e.beginSpineItemIndex)!==(e==null?void 0:e.endSpineItemIndex),c=e!=null&&e.hasChapters?e==null?void 0:e.beginNumberOfPagesInSpineItem:e==null?void 0:e.numberOfTotalPages;return{hasOnlyOnePage:n,beginPageIndex:r,endPageIndex:i,isBeginWithinChapter:t,isEndWithinChapter:l,beginAndEndAreDifferent:p,totalApproximatePages:c,leftPageIndex:d,rightPageIndex:g}},Ge=()=>{const e=O(),{hasOnlyOnePage:n,leftPageIndex:t,rightPageIndex:l,totalApproximatePages:r,beginAndEndAreDifferent:i}=W(),d=Math.round(((e==null?void 0:e.percentageEstimateOfBook)??0)*100),g=c=>c!=null&&c.subChapter?`${c.title} / ${g(c.subChapter)}`:(c==null?void 0:c.title)||"",p=g(e==null?void 0:e.beginChapterInfo);return o.jsxs(s.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[o.jsx(Ve,{value:d,size:"xs",width:150,children:o.jsxs(s.HStack,{justifyContent:"space-between",children:[o.jsx(qe,{width:110}),o.jsx(We,{children:`${d}%`})]})}),o.jsx(s.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:p?`Chapter: ${p}`:" "}),!n&&o.jsxs(s.HStack,{children:[o.jsx(s.Text,{fontSize:"xs",children:i?`${t+1} - ${l+1} of ${r}`:`${t+1} of ${r}`}),!!(e!=null&&e.hasChapters)&&o.jsxs(o.Fragment,{children:[o.jsx(s.Text,{children:"-"}),o.jsxs(s.Text,{fontSize:"xs",children:["(",((e==null?void 0:e.beginAbsolutePageIndex)??0)+1,")"]})]})]})]})},J=h.memo(({children:e,position:n,...t})=>o.jsx(s.Presence,{display:"flex",flexDirection:"row",width:"100%",position:"absolute",...n==="bottom"?{bottom:0}:{top:0},animationName:n==="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,...t,children:e})),Ue=s.chakra(se),Ye=h.memo(e=>o.jsx(s.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:o.jsx(Ue,{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(${e.reverse?"50%":"-50%"}, -50%)`,backgroundColor:"var(--bg)",marginTop:"0px"}},...e})})),Ke=()=>{const e=O(),n=e==null?void 0:e.isUsingSpread,{beginPageIndex:t,totalApproximatePages:l=0}=W(),r=n?Math.floor((t||0)/2):t,[i,d]=f.useSignalState(()=>f.signal({default:r||0})),g=0,p=Math.max(0,n?Math.floor((l-1)/2):l-1);return h.useEffect(()=>{d.update(r||0)},[r,d]),{value:i,valueSignal:d,min:g,max:p}},Qe=e=>{const n=v(),t=O(),{manifest:l}=f.useObserve(()=>n==null?void 0:n.context.state$,[n])??{},r=(l==null?void 0:l.readingDirection)==="rtl",i=t==null?void 0:t.isUsingSpread,{totalApproximatePages:d=0,isBeginWithinChapter:g}=W(),p=1,c=g,{value:C,valueSignal:u,min:S,max:P}=Ke(),k=h.useCallback(w=>{const[T=0]=Array.isArray(w)?w:[w];u.setValue(T);const j=i?Math.floor(T)*2:Math.floor(T);c?n==null||n.navigation.goToPageOfSpineItem({pageIndex:j,spineItemId:n.pagination.state.beginSpineItemIndex??0,animation:!1}):n==null||n.navigation.goToAbsolutePageIndex({absolutePageIndex:j,animation:!1})},[n,i,u,c]);return f.useSubscribe(()=>n==null?void 0:n.navigation.throttleLock({duration:100,trigger:u.subject}),[n,u]),d===1||i&&d===2?o.jsx(s.Box,{style:e.style}):o.jsx(Ye,{value:[C],max:P,min:S,reverse:r,step:p,onChange:k,...e})},Ze=h.memo(({open:e,onItemClick:n})=>{const t=v(),l=f.useObserve(()=>t==null?void 0:t.navigation.state$,[t]),r=f.useObserve(()=>t==null?void 0:t.settings.values$,[t]),i=(r==null?void 0:r.computedPageTurnDirection)==="vertical",[d,g]=h.useState(!0);return o.jsxs(J,{present:e,position:"bottom",display:"flex",flexDirection:"column",overflow:"auto",pb:8,children:[o.jsxs(s.HStack,{flex:1,alignItems:"center",justifyContent:"center",maxWidth:"100%",children:[o.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>t==null?void 0:t.navigation.goToLeftOrTopSpineItem(),disabled:!(l!=null&&l.canGoLeftSpineItem)&&!(l!=null&&l.canGoTopSpineItem),children:i?o.jsx(N.RxDoubleArrowUp,{}):o.jsx(N.RxDoubleArrowLeft,{})}),o.jsxs(s.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[o.jsx(Ge,{}),o.jsx(Qe,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),o.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!(l!=null&&l.canGoRightSpineItem)&&!(l!=null&&l.canGoBottomSpineItem),onClick:()=>{t==null||t.navigation.goToRightOrBottomSpineItem()},children:i?o.jsx(N.RxDoubleArrowDown,{}):o.jsx(N.RxDoubleArrowRight,{})})]}),o.jsx(s.HStack,{alignSelf:"stretch",alignItems:"center",justifyContent:"center",children:o.jsxs(s.Collapsible.Root,{open:d,flex:1,onOpenChange:({open:p})=>{g(p)},children:[o.jsx(s.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:o.jsx(I.LuChevronDown,{style:{transform:d?"rotate(0deg)":"rotate(180deg)"}})}),o.jsxs(s.Collapsible.Content,{display:"flex",justifyContent:"center",children:[o.jsx(s.IconButton,{"aria-label":"Help",size:"lg",variant:"ghost",onClick:()=>n("help"),children:o.jsx(I.LuCircleHelp,{})}),o.jsx(s.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>n("toc"),children:o.jsx(I.LuTableOfContents,{})}),K(t)&&o.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("search"),children:o.jsx(I.LuSearch,{})}),$(t)&&o.jsx(s.IconButton,{"aria-label":"Bookmarks",size:"lg",variant:"ghost",onClick:()=>n("bookmarks"),children:o.jsx(oe.BsBookmarks,{})}),$(t)&&o.jsx(s.IconButton,{"aria-label":"Annotations",size:"lg",variant:"ghost",onClick:()=>n("annotations"),children:o.jsx(I.LuNotebookPen,{})}),o.jsx(s.IconButton,{"aria-label":"Thumbnails",size:"lg",variant:(t==null?void 0:t.settings.values.viewportMode)==="thumbnails"?"solid":"ghost",onClick:()=>{t==null||t.settings.update({viewportMode:(t==null?void 0:t.settings.values.viewportMode)==="normal"?"thumbnails":"normal"})},children:o.jsx(I.LuGalleryHorizontal,{})}),Q(t)&&o.jsx(s.IconButton,{"aria-label":"Gallery",size:"lg",variant:"ghost",onClick:()=>n("gallery"),children:o.jsx(ne.RiGalleryView2,{})})]})]})})]})}),Xe=()=>{const[e,n]=h.useState(!1),t=h.useCallback(()=>document.fullscreenElement?document.exitFullscreen().catch(console.error).then(()=>{n(!1)}):document.documentElement.requestFullscreen({navigationUI:"hide"}).catch(console.error).then(()=>{n(!0)}),[]);return h.useEffect(()=>{function l(){n(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",l),()=>{document.removeEventListener("fullscreenchange",l)}},[]),{isFullscreen:e,onToggleFullscreenClick:t}},Je=h.memo(({open:e,onItemClick:n})=>{const t=v(),l=f.useObserve(()=>t==null?void 0:t.context.manifest$,[t]),{isFullscreen:r,onToggleFullscreenClick:i}=Xe();return o.jsxs(J,{present:e,position:"top",height:"80px",justifyContent:"space-between",children:[o.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>n("back"),children:o.jsx(G.IoIosArrowBack,{})}),o.jsx(s.Stack,{flex:1,maxW:600,gap:1,alignItems:"center",overflow:"auto",px:4,children:o.jsx(s.Text,{truncate:!0,maxWidth:"100%",children:l==null?void 0:l.title})}),o.jsxs(s.HStack,{children:[o.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>n("more"),children:o.jsx(G.IoMdMore,{})}),o.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:i,children:r?o.jsx(U.MdFullscreenExit,{}):o.jsx(U.MdFullscreen,{})})]})]})}),je=h.memo(({onItemClick:e})=>{const[n]=V();return o.jsxs(o.Fragment,{children:[o.jsx(Je,{open:n,onItemClick:e}),o.jsx(Ze,{open:n,onItemClick:e})]})}),Re=h.memo(({contextText:e="",startOffset:n=0,text:t,cfi:l="#",onClick:r,absolutePageIndex:i})=>{const g=e.substring(Math.max(n-15,0),Math.max(n,0)),p=e.substring(Math.min(n+t.length,e.length-1),Math.min(n+t.length+15,e.length-1));return o.jsxs(s.Link,{href:l,style:{margin:5,overflow:"hidden"},onClick:c=>{c.preventDefault(),r(l)},display:"flex",flexDirection:"column",alignItems:"flex-start",gap:0,children:[o.jsxs(s.Text,{lineClamp:1,as:"cite",style:{display:"block"},children:['"',g,o.jsx("b",{children:t}),p,'"']}),o.jsx(s.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${i!==void 0?i+1:"unknown (not loaded)"}`})]})}),eo=500,oo=()=>{const e=f.useConstant(()=>new a.BehaviorSubject("")),n=f.useObserve(e),t=v(),l=K(t)?t:void 0,r=f.useObserve(()=>e.pipe(a.distinctUntilChanged(),a.switchMap(i=>i===""||!l?a.of(void 0):a.merge(a.of({type:"start",data:void 0}),a.timer(eo).pipe(a.switchMap(()=>l.search.search(i)),a.map(d=>({type:"end",data:d})))))),[l,e]);return{value:n,setValue:e.next.bind(e),status:(r==null?void 0:r.type)??"idle",data:r==null?void 0:r.data}},no=h.memo(({onNavigate:e})=>{const n=v(),{value:t,setValue:l,status:r,data:i}=oo(),d=c=>{l(c.target.value)},g=h.useCallback(c=>{e(),n==null||n.navigation.goToCfi(c)},[n,e]),p=f.useObserve(()=>n==null?void 0:n.locateResource((i==null?void 0:i.slice(0,100))??[]),[i]);return o.jsxs(s.Stack,{flex:1,height:"100%",gap:2,children:[o.jsx(s.Input,{placeholder:"Type something...",value:t,onChange:d,flexShrink:0,variant:"subtle",name:"search",focusRing:"none",focusVisibleRing:"none",outline:"none",focusRingColor:"transparent"}),o.jsxs(s.Stack,{style:{overflow:"hidden",overflowY:"auto"},overflow:"auto",px:4,flex:1,children:[r==="start"&&o.jsx(s.Text,{children:"Searching ..."}),(i==null?void 0:i.length)===0&&o.jsx(s.Text,{children:"No results"}),r==="end"&&((i==null?void 0:i.length)??0)>0&&o.jsxs(s.Stack,{children:[o.jsxs(s.Text,{fontSize:"md",children:[i==null?void 0:i.length," result(s)"]}),o.jsx(s.Stack,{gap:0,children:p==null?void 0:p.map((c,C)=>{var u,S,P,k,y,w,T;return o.jsx(Re,{contextText:((P=(S=(u=c.meta)==null?void 0:u.range)==null?void 0:S.startContainer.parentElement)==null?void 0:P.textContent)??"",pageIndex:(k=c.meta)==null?void 0:k.itemPageIndex,startOffset:((w=(y=c.meta)==null?void 0:y.range)==null?void 0:w.startOffset)??0,text:t,cfi:c.meta.cfi,onClick:g,absolutePageIndex:(T=c.meta)==null?void 0:T.absolutePageIndex},C)})})]})]})]})}),to=h.memo(({open:e,setOpen:n,onNavigate:t})=>o.jsx(D,{lazyMount:!0,placement:"center",open:e,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:o.jsxs(m,{height:"100%",children:[o.jsx(E,{children:o.jsx(L,{children:"Search"})}),o.jsx(M,{flex:1,p:0,children:o.jsx(no,{onNavigate:t})}),o.jsx(A,{children:o.jsx(z,{asChild:!0,children:o.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),o.jsx(B,{})]})})),so=h.memo(({onNavigate:e})=>{const n=v(),{manifest:t,assumedRenditionLayout:l}=f.useObserve(()=>n==null?void 0:n.context.state$,[n])??{},{nav:r}=t??{},i=O();r!=null&&r.toc;const{beginSpineItemIndex:d,beginPageIndexInSpineItem:g}=i??{},p=(l==="reflowable"?g:d)||0;let c=i==null?void 0:i.beginChapterInfo;for(;c!=null&&c.subChapter;)c=c==null?void 0:c.subChapter;const C=(u,S,P)=>o.jsxs(h.Fragment,{children:[o.jsx(s.List.Item,{pl:4*(P+1),style:{display:"flex",alignItems:"center"},children:o.jsxs(s.Link,{onClick:()=>{e(),n==null||n.navigation.goToUrl(u.href)},href:"#",children:[(c==null?void 0:c.path)===u.path&&o.jsx(s.List.Indicator,{asChild:!0,children:o.jsx(I.LuCircleCheck,{})}),(c==null?void 0:c.path)!==u.path&&o.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:o.jsx(I.LuCircleCheck,{})}),o.jsxs(s.Stack,{gap:0,children:[o.jsx(s.Text,{fontSize:"md",children:u.title||u.path}),(c==null?void 0:c.path)===u.path&&o.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Currently on page ${p+1}`})]})]})}),u.contents.length>0&&o.jsx(s.List.Root,{as:"div",gap:2,children:u.contents.map((k,y)=>C(k,y,P+1))})]},S);return o.jsx(s.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:r==null?void 0:r.toc.map((u,S)=>C(u,S,0))})}),ro=h.memo(({open:e,setOpen:n,onNavigate:t})=>o.jsx(D,{lazyMount:!0,placement:"center",open:e,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:o.jsxs(m,{children:[o.jsx(E,{children:o.jsx(L,{children:"Table of Contents"})}),o.jsx(M,{overflowY:"auto",flex:1,children:o.jsx(so,{onNavigate:t})}),o.jsx(A,{children:o.jsx(z,{asChild:!0,children:o.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),o.jsx(B,{})]})})),lo=({enableFloatingTime:e=!0,enableFloatingProgress:n=!0,onItemClick:t})=>{const[l,r]=h.useState(!1),[i,d]=h.useState(!1),[g,p]=h.useState(!1),[c,C]=h.useState(void 0),[u,S]=h.useState(!1),[P,k]=V(),y=h.useCallback(()=>{r(!1),d(!1),p(!1),C(void 0),k(!1),S(!1)},[k]),w=h.useCallback(T=>{T==="annotations"?C("annotations"):T==="search"?p(!0):T==="help"?d(!0):T==="toc"?r(!0):T==="bookmarks"?C("bookmarks"):T==="gallery"&&S(!0),t==null||t(T)},[t]);return ze(),Ne(),Ie(),o.jsxs(o.Fragment,{children:[n&&o.jsx(s.Presence,{present:!P,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:o.jsx(Ae,{})}),o.jsx(Oe,{open:u,setOpen:S}),o.jsx(je,{onItemClick:w}),o.jsx(Ce,{}),o.jsx(De,{open:i,setOpen:d}),o.jsx(ro,{open:l,setOpen:r,onNavigate:y}),o.jsx(to,{open:g,setOpen:p,onNavigate:y}),o.jsx(fe,{openWith:c,setOpen:T=>C(T?"annotations":void 0),onNavigate:y}),o.jsx(s.Presence,{present:e||P,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"slow",overflow:"hidden",children:o.jsx(Le,{})}),o.jsx(ke,{})]})};b.BOOKMARK_AREA_DATA_ATTRIBUTE=X,b.ReactReader=lo,b.ReactReaderProvider=le,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("reactjrx"),require("rxjs"),require("@chakra-ui/react"),require("react-icons/lu"),require("react-dom"),require("@prose-reader/enhancer-gestures"),require("@prose-reader/core"),require("react-icons/bs"),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"),require("react-icons/md")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","reactjrx","rxjs","@chakra-ui/react","react-icons/lu","react-dom","@prose-reader/enhancer-gestures","@prose-reader/core","react-icons/bs","react-icons/ri","react-icons/rx","react-icons/hi","rc-slider","rc-slider/assets/index.css","react-icons/io","react-icons/md"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b["prose-react-reader"]={},b.jsxRuntime,b.React,b.reactjrx,b.rxjs,b.react,b.lu,b.reactDom,b.enhancerGestures,b.core,b.bs,b.ri,b.rx,b.hi,b.RcSlider,null,b.io,b.md))})(this,function(b,e,c,g,l,s,k,R,ee,F,ne,oe,N,te,se,ln,G,U){"use strict";function re(n){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(o,t,i.get?i:{enumerable:!0,get:()=>n[t]})}}return o.default=n,Object.freeze(o)}const y=re(c),Y=c.createContext({reader:void 0,quickMenuSignal:g.signal({default:!1}),notificationsSubject:new l.Subject}),ie=c.memo(({children:n,reader:o,quickMenuOpen:t,onQuickMenuOpenChange:i})=>{const[,r]=g.useSignalState(()=>g.signal({default:t})),a=g.useConstant(()=>new l.Subject),d=g.useLiveRef(i),h=c.useMemo(()=>({quickMenuSignal:r,reader:o,notificationsSubject:a}),[r,o,a]);return c.useEffect(()=>{r.setValue(t)},[t,r]),g.useSubscribe(()=>r.pipe(l.tap(d.current)),[r,d]),e.jsx(Y.Provider,{value:h,children:n})}),ae=y.forwardRef(function(o,t){return e.jsx(s.IconButton,{variant:"ghost","aria-label":"Close",ref:t,...o,children:o.children??e.jsx(k.LuX,{})})}),x=y.forwardRef(function(o,t){const{children:i,portalled:r=!0,portalRef:a,backdrop:d=!0,...h}=o;return e.jsxs(s.Portal,{disabled:!r,container:a,children:[d&&e.jsx(s.Dialog.Backdrop,{}),e.jsx(s.Dialog.Positioner,{children:e.jsx(s.Dialog.Content,{ref:t,...h,asChild:!1,children:i})})]})}),O=y.forwardRef(function(o,t){return e.jsx(s.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...o,asChild:!0,children:e.jsx(ae,{size:"sm",ref:t,children:o.children})})}),B=s.Dialog.Root,A=s.Dialog.Footer,D=s.Dialog.Header,E=s.Dialog.Body;s.Dialog.Backdrop;const M=s.Dialog.Title;s.Dialog.Description,s.Dialog.Trigger;const L=s.Dialog.ActionTrigger,z=()=>c.useContext(Y),v=()=>{const{reader:n}=z();return n},K=n=>!!n&&"__PROSE_READER_ENHANCER_SEARCH"in n,_=n=>!!n&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in n,Q=n=>!!n&&"__PROSE_READER_ENHANCER_GALLERY"in n,le=n=>{const o=v(),t=_(o)?o:void 0;return{data:g.useObserve(()=>t?.annotations.annotations$.pipe(l.map(r=>r.find(a=>a.id===n)),l.filter(g.isDefined),l.switchMap(r=>t.locateResource(r))),[t])}},Z=({id:n,onNavigate:o,allowLeftIcon:t=!0})=>{const i=v(),{data:r}=le(n),a=r?.meta.range?.toString()||r?.meta.node?.textContent;return e.jsx(s.List.Item,{children:e.jsxs(s.Link,{href:"#",onClick:()=>{o(),i?.navigation.goToCfi(r?.meta.cfi??"")},children:[r?.resource?.notes?e.jsx(s.List.Indicator,{asChild:!0,children:e.jsx(k.LuNotebookPen,{})}):t?e.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuNotebookPen,{})}):null,e.jsxs(s.Stack,{gap:0,children:[a?e.jsx(s.Text,{lineClamp:2,fontSize:"md",children:a}):e.jsxs(s.Text,{lineClamp:2,fontSize:"md",fontStyle:"italic",children:["Page ",(r?.meta.absolutePageIndex??0)+1]}),e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${r?.meta?.absolutePageIndex!==void 0?r.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})})},H=()=>{const n=v(),o=_(n)?n:void 0;return{data:g.useObserve(()=>o?.annotations.annotations$.pipe(l.switchMap(i=>o.locateResource(i))),[o])}},ce=()=>{const{data:n}=H();return{data:n?.filter(o=>o.meta.isCfiRange)}},de=({onNavigate:n})=>{const{data:o}=ce();return e.jsx(s.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:o?.map(t=>e.jsx(Z,{id:t.resource.id,onNavigate:n},t.resource.id))})},he=()=>{const{data:n}=H();return{data:n?.filter(o=>!o.meta.isCfiRange&&!o.resource.notes)}},ge=({onNavigate:n})=>{const{data:o}=he();return e.jsx(s.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:o?.map(t=>e.jsx(Z,{id:t.resource.id,onNavigate:n,allowLeftIcon:!1},t.resource.id))})},pe=c.memo(({onNavigate:n,defaultTab:o})=>{const[t,i]=c.useState(o??"bookmarks");return e.jsxs(s.Tabs.Root,{value:t,onValueChange:r=>i(r.value),children:[e.jsxs(s.Tabs.List,{children:[e.jsxs(s.Tabs.Trigger,{value:"bookmarks",children:[e.jsx(k.LuBookmark,{}),"Bookmarks"]}),e.jsxs(s.Tabs.Trigger,{value:"annotations",children:[e.jsx(k.LuNotebookPen,{}),"Annotations"]}),e.jsx(s.Tabs.Indicator,{})]}),e.jsx(s.Tabs.Content,{value:"bookmarks",children:e.jsx(ge,{onNavigate:n})}),e.jsx(s.Tabs.Content,{value:"annotations",children:e.jsx(de,{onNavigate:n})})]})}),ue=c.memo(({openWith:n,setOpen:o,onNavigate:t})=>e.jsx(B,{lazyMount:!0,placement:"center",open:!!n,onOpenChange:i=>o(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(D,{children:e.jsx(M,{children:"Annotations"})}),e.jsx(E,{flex:1,children:e.jsx(pe,{onNavigate:t,defaultTab:n})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),fe=c.memo(({children:n})=>{const o=v(),t=g.useObserve(()=>o?.spine.element$,[o]);return t?e.jsx(e.Fragment,{children:R.createPortal(n,t)}):null}),be=({absolutePageIndex:n,itemIndex:o})=>{const t=v();return{spineItem:g.useObserve(()=>t?o!==void 0?l.of(t.spine.spineItemsManager.get(o)):n!==void 0?t.spine.pages.observeFromAbsolutePageIndex(n).pipe(l.map(r=>t.spine.spineItemsManager.get(r?.itemIndex))):l.EMPTY:l.EMPTY,[o,n,t])}},ve=({absolutePageIndex:n,itemIndex:o})=>{const{spineItem:t}=be({absolutePageIndex:n,itemIndex:o}),i=g.useObserve(()=>t?.isReady$??l.of(!1),[t]);return{spineItem:t,isReady:i}},X="data-bookmark-area",Se=c.memo(({absolutePageIndex:n,left:o,top:t,width:i})=>{const{isReady:r}=ve({absolutePageIndex:n}),{data:a}=H(),d=a?.find(u=>u?.meta?.absolutePageIndex===n&&u.meta.range===void 0);if(!r)return null;const h=i*.1/2;return e.jsx(s.Presence,{present:!!d,lazyMount:!0,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(s.Box,{"data-bookmark-area":X,position:"absolute",left:o+i,transform:"translateX(-100%)",pointerEvents:"none",top:t,width:h,height:h,_before:{content:'""',position:"absolute",top:0,left:0,width:0,height:0,borderTop:`${h}px solid #03030373`,borderLeft:`${h}px solid transparent`}})})}),ke=c.memo(()=>{const n=v(),o=g.useObserve(()=>n?.layoutInfo$,[n]);return e.jsx(fe,{children:o?.pages.map(({absoluteLayout:{left:t,top:i,width:r}},a)=>e.jsx(Se,{absolutePageIndex:a,left:t,top:i,width:r},a))})}),Ce=()=>{const n=v();return _(n)?n:void 0},Ie=()=>{const n=Ce(),{data:o}=H();c.useEffect(()=>n?n.gestures.hooks.register("beforeTapGesture",({event$:i})=>i.pipe(l.withLatestFrom(n?.annotations.candidates$),l.map(([r,a])=>{if(!r.page)return!0;const{spineItem:d,spineItemPageIndex:h,spineItemPagePosition:u,pageSize:p}=r.page;if(ee.isPositionInArea(u,{type:"corner",corner:"top-right",size:10,unit:"%"},p)){const f=n.spine.pages.fromSpineItemPageIndex(d,h);if(!f)return!0;const C=o?.find(P=>P?.meta?.absolutePageIndex===f.absolutePageIndex&&P.meta.range===void 0);if(C)return n?.annotations.delete(C.resource.id),!1;if(a?.[f.absolutePageIndex])return n?.annotations.annotateAbsolutePage({absolutePageIndex:f.absolutePageIndex}),!1}return!0}))):void 0,[n,o])},q=s.createToaster({placement:"bottom-end",pauseOnPageIdle:!0}),Te=()=>e.jsx(s.Portal,{children:e.jsx(s.Toaster,{toaster:q,insetInline:{mdDown:"4"},children:n=>e.jsxs(s.Toast.Root,{width:{md:"sm"},children:[n.type==="loading"?e.jsx(s.Spinner,{size:"sm",color:"blue.solid"}):e.jsx(s.Toast.Indicator,{}),e.jsxs(s.Stack,{gap:"1",flex:"1",maxWidth:"100%",children:[n.title&&e.jsx(s.Toast.Title,{children:n.title}),n.description&&e.jsx(s.Toast.Description,{children:n.description})]}),n.action&&e.jsx(s.Toast.ActionTrigger,{children:n.action.label}),n.meta?.closable&&e.jsx(s.Toast.CloseTrigger,{})]})})}),Pe={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function ye(){const[n,o]=c.useState(null),[t,i]=c.useState(Pe),r=c.useMemo(()=>new ResizeObserver(a=>{if(a[0]){const{x:d,y:h,width:u,height:p,top:S,left:f,bottom:C,right:T}=a[0].contentRect;i({x:d,y:h,width:u,height:p,top:S,left:f,bottom:C,right:T})}}),[]);return c.useLayoutEffect(()=>{if(n)return r.observe(n),()=>{r.disconnect()}},[n,r]),[o,t,n]}const me=(n,o,t)=>{const i=v(),r=Q(i)?i:void 0;g.useSubscribe(()=>{if(!r||!n)return l.NEVER;const a=o.layout.layout$.pipe(l.startWith(o.layout.layoutInfo),l.distinctUntilChanged(F.isShallowEqual)),d=F.observeIntersection(n).pipe(l.map(h=>h.some(u=>u.isIntersecting)));return a.pipe(l.throttleTime(100,void 0,{trailing:!0}),l.switchMap(()=>d.pipe(l.tap(h=>{h||(n.innerHTML="")}),l.filter(h=>h),l.first()).pipe(l.switchMap(()=>(n.innerHTML="",r?.gallery.snapshot(o,n,t))))))},[r,o,t,n])},we=c.memo(({item:n,onNavigated:o})=>{const[t,i,r]=ye(),a=v();me(r,n,i);const d=g.useObserve(()=>a?.locateResource(n,{mode:"shallow"}),[a,n]);return e.jsxs(s.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(),a?.navigation.goToSpineItem({indexOrId:n})},children:[e.jsx(s.Box,{height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",ref:t}),e.jsxs(s.Text,{position:"absolute",bottom:0,left:"0",right:"0",textAlign:"center",bgColor:"white",p:4,fontSize:"xs",children:["Page ",(d?.meta?.absolutePageIndex??0)+1]})]})}),xe=c.memo(({open:n,setOpen:o})=>{const t=v(),i=g.useObserve(()=>t?.spineItemsManager.items$,[t]);return e.jsx(B,{lazyMount:!0,placement:"center",open:n,onOpenChange:r=>o(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(D,{children:e.jsx(M,{children:"Gallery"})}),e.jsx(E,{children:e.jsx(s.Box,{gridTemplateColumns:["repeat(2, minmax(0, 1fr))","repeat(3, minmax(0, 1fr))"],display:"grid",gap:[2,4],pt:2,"data-grid":!0,children:i?.map(r=>e.jsx(we,{item:r,onNavigated:()=>{o(!1)}},r.item.id))})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})}),Oe="@prose-reader/react-reader",Be="1.234.0",Ae=c.memo(({open:n,setOpen:o})=>e.jsx(B,{lazyMount:!0,placement:"center",open:n,onOpenChange:t=>o(t.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{children:[e.jsx(D,{children:e.jsx(M,{children:"Help"})}),e.jsxs(E,{overflowY:"auto",flex:1,children:[e.jsx(s.Heading,{mb:2,as:"h3",size:"lg",children:"Shortcuts"}),e.jsxs(s.HStack,{mb:1,children:[e.jsx(s.Kbd,{children:e.jsx(k.LuArrowBigRight,{})})," ",e.jsx(s.Text,{children:"Navigate to right page"})]}),e.jsxs(s.HStack,{mb:1,children:[e.jsx(s.Kbd,{children:e.jsx(k.LuArrowBigLeft,{})})," ",e.jsx(s.Text,{children:"Navigate to left page"})]}),e.jsx(s.Heading,{mb:2,mt:4,as:"h3",size:"lg",children:"About"}),e.jsxs(s.Text,{children:[Oe," version: ",Be]})]}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),m=()=>{const n=v();return g.useObserve(()=>n?l.combineLatest([n.pagination.state$,n.context.state$]).pipe(l.map(([o,t])=>{const i=t.manifest?.spineItems.every(r=>r.mediaType?.startsWith("image/"));return{...o,hasChapters:!t.isFullyPrePaginated&&!i}})):l.NEVER,[n])},De=()=>{const n=m(),o=Math.floor((n?.percentageEstimateOfBook??0)*100),t=o>0?o:1;return n?.percentageEstimateOfBook===void 0?null:e.jsx(s.Box,{position:"absolute",right:0,bottom:0,p:2,color:"black",children:e.jsxs(s.Text,{fontSize:"sm",children:[t," %"]})})},Ee=()=>{const[n,o]=c.useState(new Date);return c.useEffect(()=>{const t=setInterval(()=>{o(new Date)},6e4);return()=>clearInterval(t)},[]),n},Me=n=>{const o=Ee();return e.jsx(s.Text,{fontSize:"xs",...n,children:o.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},W=()=>{const{quickMenuSignal:n}=z();return[g.useSignalValue(n),n.setValue,n]},Le=()=>{const[n]=W();return e.jsx(s.Box,{position:"absolute",left:0,bottom:0,p:2,color:n?void 0:"colorPalette.contrast",children:e.jsx(Me,{})})},ze=()=>{const n=v();g.useSubscribe(()=>n?.links$.subscribe(o=>{if(o.type==="click"&&F.isHtmlTagElement(o.target,"a")){if(!o.target.href)return;const t=new URL(o.target.href);window.location.host!==t.host&&confirm("You are going to be redirected to external link")&&window.open(o.target.href,"__blank")}}),[n])},_e=()=>{const n=v(),{notificationsSubject:o}=z();g.useSubscribe(()=>n?.zoom.isZooming$.pipe(l.switchMap(t=>{if(!t)return l.EMPTY;const i=new l.Subject;return o.next({key:"zoom",title:"Zooming",duration:999999,abort:i}),l.NEVER.pipe(l.finalize(()=>{i.next(),i.complete()}))})),[n])},$e=()=>{const n=v(),{notificationsSubject:o}=z();g.useSubscribe(()=>n?.settings.values$.pipe(l.map(({fontScale:t})=>t),l.distinctUntilChanged(),l.skip(1),l.tap(t=>{o.next({key:"fontScaleChange",title:"Font size changed",description:`${t*100} %`})})),[n,o])},Ne=()=>{const{notificationsSubject:n}=z();$e(),_e(),g.useSubscribe(()=>n.pipe(l.filter(g.isDefined),l.mergeMap(o=>{const t=o.duration??3e3,i=q.create({title:o.title,description:o.description,duration:t}),r=n.pipe(l.skip(1),l.filter(a=>!!o.key&&a?.key===o.key));return l.merge(l.timer(t),o.abort??l.NEVER,r).pipe(l.first(),l.finalize(()=>{q.dismiss(i)}))})),[n])},He=y.forwardRef(function(o,t){const{showArrow:i,children:r,portalled:a=!0,content:d,portalRef:h,...u}=o;return e.jsxs(s.Popover.Root,{...u,positioning:{...u.positioning,gutter:4},children:[e.jsx(s.Popover.Trigger,{asChild:!0,children:r}),e.jsx(s.Portal,{disabled:!a,container:h,children:e.jsx(s.Popover.Positioner,{children:e.jsxs(s.Popover.Content,{width:"auto",px:"2",py:"1",textStyle:"xs",rounded:"sm",ref:t,children:[i&&e.jsx(s.Popover.Arrow,{children:e.jsx(s.Popover.ArrowTip,{})}),d]})})})]})}),Fe=y.forwardRef(function(o,t){const{children:i,...r}=o;return e.jsx(He,{content:i,...r,ref:t,children:e.jsx(s.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:e.jsx(te.HiOutlineInformationCircle,{})})})}),qe=y.forwardRef(function(o,t){return e.jsx(s.Progress.Track,{...o,ref:t,children:e.jsx(s.Progress.Range,{})})});y.forwardRef(function(o,t){const{children:i,info:r,...a}=o;return e.jsxs(s.Progress.Label,{...a,ref:t,children:[i,r&&e.jsx(Fe,{children:r})]})});const We=s.Progress.Root,Ve=s.Progress.ValueText,V=()=>{const n=m(),o=n?.numberOfTotalPages===1,t=(n?.beginNumberOfPagesInSpineItem??0)>1,i=(n?.endNumberOfPagesInSpineItem??0)>1,r=(n?.hasChapters?n?.beginPageIndexInSpineItem:n?.beginAbsolutePageIndex)??0,a=(n?.hasChapters?n?.endPageIndexInSpineItem:n?.endAbsolutePageIndex)??0,[d=0,h=0]=[r,a].sort((S,f)=>S-f),u=n?.beginPageIndexInSpineItem!==n?.endPageIndexInSpineItem||n?.beginSpineItemIndex!==n?.endSpineItemIndex,p=n?.hasChapters?n?.beginNumberOfPagesInSpineItem:n?.numberOfTotalPages;return{hasOnlyOnePage:o,beginPageIndex:r,endPageIndex:a,isBeginWithinChapter:t,isEndWithinChapter:i,beginAndEndAreDifferent:u,totalApproximatePages:p,leftPageIndex:d,rightPageIndex:h}},Ge=()=>{const n=m(),{hasOnlyOnePage:o,leftPageIndex:t,rightPageIndex:i,totalApproximatePages:r,beginAndEndAreDifferent:a}=V(),d=Math.round((n?.percentageEstimateOfBook??0)*100),h=p=>p?.subChapter?`${p.title} / ${h(p.subChapter)}`:p?.title||"",u=h(n?.beginChapterInfo);return e.jsxs(s.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[e.jsx(We,{value:d,size:"xs",width:150,children:e.jsxs(s.HStack,{justifyContent:"space-between",children:[e.jsx(qe,{width:110}),e.jsx(Ve,{children:`${d}%`})]})}),e.jsx(s.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:u?`Chapter: ${u}`:" "}),!o&&e.jsxs(s.HStack,{children:[e.jsx(s.Text,{fontSize:"xs",children:a?`${t+1} - ${i+1} of ${r}`:`${t+1} of ${r}`}),!!n?.hasChapters&&e.jsxs(e.Fragment,{children:[e.jsx(s.Text,{children:"-"}),e.jsxs(s.Text,{fontSize:"xs",children:["(",(n?.beginAbsolutePageIndex??0)+1,")"]})]})]})]})},J=c.memo(({children:n,position:o,...t})=>e.jsx(s.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,...t,children:n})),Ue=s.chakra(se),Ye=c.memo(n=>e.jsx(s.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:e.jsx(Ue,{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})})),Ke=()=>{const o=m()?.isUsingSpread,{beginPageIndex:t,totalApproximatePages:i=0}=V(),r=o?Math.floor((t||0)/2):t,[a,d]=g.useSignalState(()=>g.signal({default:r||0})),h=0,u=Math.max(0,o?Math.floor((i-1)/2):i-1);return c.useEffect(()=>{d.update(r||0)},[r,d]),{value:a,valueSignal:d,min:h,max:u}},Qe=n=>{const o=v(),t=m(),{manifest:i}=g.useObserve(()=>o?.context.state$,[o])??{},r=i?.readingDirection==="rtl",a=t?.isUsingSpread,{totalApproximatePages:d=0,isBeginWithinChapter:h}=V(),u=1,p=h,{value:S,valueSignal:f,min:C,max:T}=Ke(),P=c.useCallback($=>{const[I=0]=Array.isArray($)?$:[$];f.setValue(I);const j=a?Math.floor(I)*2:Math.floor(I);p?o?.navigation.goToPageOfSpineItem({pageIndex:j,spineItemId:o.pagination.state.beginSpineItemIndex??0,animation:!1}):o?.navigation.goToAbsolutePageIndex({absolutePageIndex:j,animation:!1})},[o,a,f,p]);return g.useSubscribe(()=>o?.navigation.throttleLock({duration:100,trigger:f.subject}),[o,f]),d===1||a&&d===2?e.jsx(s.Box,{style:n.style}):e.jsx(Ye,{value:[S],max:T,min:C,reverse:r,step:u,onChange:P,...n})},Ze=c.memo(({open:n,onItemClick:o})=>{const t=v(),i=g.useObserve(()=>t?.navigation.state$,[t]),a=g.useObserve(()=>t?.settings.values$,[t])?.computedPageTurnDirection==="vertical",[d,h]=c.useState(!0);return e.jsxs(J,{present:n,position:"bottom",display:"flex",flexDirection:"column",overflow:"auto",pb:8,children:[e.jsxs(s.HStack,{flex:1,alignItems:"center",justifyContent:"center",maxWidth:"100%",children:[e.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>t?.navigation.goToLeftOrTopSpineItem(),disabled:!i?.canGoLeftSpineItem&&!i?.canGoTopSpineItem,children:a?e.jsx(N.RxDoubleArrowUp,{}):e.jsx(N.RxDoubleArrowLeft,{})}),e.jsxs(s.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[e.jsx(Ge,{}),e.jsx(Qe,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!i?.canGoRightSpineItem&&!i?.canGoBottomSpineItem,onClick:()=>{t?.navigation.goToRightOrBottomSpineItem()},children:a?e.jsx(N.RxDoubleArrowDown,{}):e.jsx(N.RxDoubleArrowRight,{})})]}),e.jsx(s.HStack,{alignSelf:"stretch",alignItems:"center",justifyContent:"center",children:e.jsxs(s.Collapsible.Root,{open:d,flex:1,onOpenChange:({open:u})=>{h(u)},children:[e.jsx(s.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:e.jsx(k.LuChevronDown,{style:{transform:d?"rotate(0deg)":"rotate(180deg)"}})}),e.jsxs(s.Collapsible.Content,{display:"flex",justifyContent:"center",children:[e.jsx(s.IconButton,{"aria-label":"Help",size:"lg",variant:"ghost",onClick:()=>o("help"),children:e.jsx(k.LuCircleHelp,{})}),e.jsx(s.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>o("toc"),children:e.jsx(k.LuTableOfContents,{})}),K(t)&&e.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>o("search"),children:e.jsx(k.LuSearch,{})}),_(t)&&e.jsx(s.IconButton,{"aria-label":"Bookmarks",size:"lg",variant:"ghost",onClick:()=>o("bookmarks"),children:e.jsx(ne.BsBookmarks,{})}),_(t)&&e.jsx(s.IconButton,{"aria-label":"Annotations",size:"lg",variant:"ghost",onClick:()=>o("annotations"),children:e.jsx(k.LuNotebookPen,{})}),e.jsx(s.IconButton,{"aria-label":"Thumbnails",size:"lg",variant:t?.settings.values.viewportMode==="thumbnails"?"solid":"ghost",onClick:()=>{t?.settings.update({viewportMode:t?.settings.values.viewportMode==="normal"?"thumbnails":"normal"})},children:e.jsx(k.LuGalleryHorizontal,{})}),Q(t)&&e.jsx(s.IconButton,{"aria-label":"Gallery",size:"lg",variant:"ghost",onClick:()=>o("gallery"),children:e.jsx(oe.RiGalleryView2,{})})]})]})})]})}),Xe=()=>{const[n,o]=c.useState(!1),t=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 i(){o(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",i),()=>{document.removeEventListener("fullscreenchange",i)}},[]),{isFullscreen:n,onToggleFullscreenClick:t}},Je=c.memo(({open:n,onItemClick:o})=>{const t=v(),i=g.useObserve(()=>t?.context.manifest$,[t]),{isFullscreen:r,onToggleFullscreenClick:a}=Xe();return e.jsxs(J,{present:n,position:"top",height:"80px",justifyContent:"space-between",children:[e.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>o("back"),children:e.jsx(G.IoIosArrowBack,{})}),e.jsx(s.Stack,{flex:1,maxW:600,gap:1,alignItems:"center",overflow:"auto",px:4,children:e.jsx(s.Text,{truncate:!0,maxWidth:"100%",children:i?.title})}),e.jsxs(s.HStack,{children:[e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>o("more"),children:e.jsx(G.IoMdMore,{})}),e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:a,children:r?e.jsx(U.MdFullscreenExit,{}):e.jsx(U.MdFullscreen,{})})]})]})}),je=c.memo(({onItemClick:n})=>{const[o]=W();return e.jsxs(e.Fragment,{children:[e.jsx(Je,{open:o,onItemClick:n}),e.jsx(Ze,{open:o,onItemClick:n})]})}),Re=c.memo(({contextText:n="",startOffset:o=0,text:t,cfi:i="#",onClick:r,absolutePageIndex:a})=>{const h=n.substring(Math.max(o-15,0),Math.max(o,0)),u=n.substring(Math.min(o+t.length,n.length-1),Math.min(o+t.length+15,n.length-1));return e.jsxs(s.Link,{href:i,style:{margin:5,overflow:"hidden"},onClick:p=>{p.preventDefault(),r(i)},display:"flex",flexDirection:"column",alignItems:"flex-start",gap:0,children:[e.jsxs(s.Text,{lineClamp:1,as:"cite",style:{display:"block"},children:['"',h,e.jsx("b",{children:t}),u,'"']}),e.jsx(s.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${a!==void 0?a+1:"unknown (not loaded)"}`})]})}),en=500,nn=()=>{const n=g.useConstant(()=>new l.BehaviorSubject("")),o=g.useObserve(n),t=v(),i=K(t)?t:void 0,r=g.useObserve(()=>n.pipe(l.distinctUntilChanged(),l.switchMap(a=>a===""||!i?l.of(void 0):l.merge(l.of({type:"start",data:void 0}),l.timer(en).pipe(l.switchMap(()=>i.search.search(a)),l.map(d=>({type:"end",data:d})))))),[i,n]);return{value:o,setValue:n.next.bind(n),status:r?.type??"idle",data:r?.data}},on=c.memo(({onNavigate:n})=>{const o=v(),{value:t,setValue:i,status:r,data:a}=nn(),d=p=>{i(p.target.value)},h=c.useCallback(p=>{n(),o?.navigation.goToCfi(p)},[o,n]),u=g.useObserve(()=>o?.locateResource(a?.slice(0,100)??[]),[a]);return e.jsxs(s.Stack,{flex:1,height:"100%",gap:2,children:[e.jsx(s.Input,{placeholder:"Type something...",value:t,onChange:d,flexShrink:0,variant:"subtle",name:"search",focusRing:"none",focusVisibleRing:"none",outline:"none",focusRingColor:"transparent"}),e.jsxs(s.Stack,{style:{overflow:"hidden",overflowY:"auto"},overflow:"auto",px:4,flex:1,children:[r==="start"&&e.jsx(s.Text,{children:"Searching ..."}),a?.length===0&&e.jsx(s.Text,{children:"No results"}),r==="end"&&(a?.length??0)>0&&e.jsxs(s.Stack,{children:[e.jsxs(s.Text,{fontSize:"md",children:[a?.length," result(s)"]}),e.jsx(s.Stack,{gap:0,children:u?.map((p,S)=>e.jsx(Re,{contextText:p.meta?.range?.startContainer.parentElement?.textContent??"",pageIndex:p.meta?.itemPageIndex,startOffset:p.meta?.range?.startOffset??0,text:t,cfi:p.meta.cfi,onClick:h,absolutePageIndex:p.meta?.absolutePageIndex},S))})]})]})]})}),tn=c.memo(({open:n,setOpen:o,onNavigate:t})=>e.jsx(B,{lazyMount:!0,placement:"center",open:n,onOpenChange:i=>o(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(D,{children:e.jsx(M,{children:"Search"})}),e.jsx(E,{flex:1,p:0,children:e.jsx(on,{onNavigate:t})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),sn=c.memo(({onNavigate:n})=>{const o=v(),{manifest:t,assumedRenditionLayout:i}=g.useObserve(()=>o?.context.state$,[o])??{},{nav:r}=t??{},a=m();r?.toc;const{beginSpineItemIndex:d,beginPageIndexInSpineItem:h}=a??{},u=(i==="reflowable"?h:d)||0;let p=a?.beginChapterInfo;for(;p?.subChapter;)p=p?.subChapter;const S=(f,C,T)=>e.jsxs(c.Fragment,{children:[e.jsx(s.List.Item,{pl:4*(T+1),style:{display:"flex",alignItems:"center"},children:e.jsxs(s.Link,{onClick:()=>{n(),o?.navigation.goToUrl(f.href)},href:"#",children:[p?.path===f.path&&e.jsx(s.List.Indicator,{asChild:!0,children:e.jsx(k.LuCircleCheck,{})}),p?.path!==f.path&&e.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuCircleCheck,{})}),e.jsxs(s.Stack,{gap:0,children:[e.jsx(s.Text,{fontSize:"md",children:f.title||f.path}),p?.path===f.path&&e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Currently on page ${u+1}`})]})]})}),f.contents.length>0&&e.jsx(s.List.Root,{as:"div",gap:2,children:f.contents.map((P,w)=>S(P,w,T+1))})]},C);return e.jsx(s.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:r?.toc.map((f,C)=>S(f,C,0))})}),rn=c.memo(({open:n,setOpen:o,onNavigate:t})=>e.jsx(B,{lazyMount:!0,placement:"center",open:n,onOpenChange:i=>o(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{children:[e.jsx(D,{children:e.jsx(M,{children:"Table of Contents"})}),e.jsx(E,{overflowY:"auto",flex:1,children:e.jsx(sn,{onNavigate:t})}),e.jsx(A,{children:e.jsx(L,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),an=({enableFloatingTime:n=!0,enableFloatingProgress:o=!0,onItemClick:t})=>{const[i,r]=c.useState(!1),[a,d]=c.useState(!1),[h,u]=c.useState(!1),[p,S]=c.useState(void 0),[f,C]=c.useState(!1),[T,P]=W(),w=c.useCallback(()=>{r(!1),d(!1),u(!1),S(void 0),P(!1),C(!1)},[P]),$=c.useCallback(I=>{I==="annotations"?S("annotations"):I==="search"?u(!0):I==="help"?d(!0):I==="toc"?r(!0):I==="bookmarks"?S("bookmarks"):I==="gallery"&&C(!0),t?.(I)},[t]);return ze(),Ne(),Ie(),e.jsxs(e.Fragment,{children:[o&&e.jsx(s.Presence,{present:!T,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(De,{})}),e.jsx(xe,{open:f,setOpen:C}),e.jsx(je,{onItemClick:$}),e.jsx(ke,{}),e.jsx(Ae,{open:a,setOpen:d}),e.jsx(rn,{open:i,setOpen:r,onNavigate:w}),e.jsx(tn,{open:h,setOpen:u,onNavigate:w}),e.jsx(ue,{openWith:p,setOpen:I=>S(I?"annotations":void 0),onNavigate:w}),e.jsx(s.Presence,{present:n||T,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"slow",overflow:"hidden",children:e.jsx(Le,{})}),e.jsx(Te,{})]})};b.BOOKMARK_AREA_DATA_ATTRIBUTE=X,b.ReactReader=an,b.ReactReaderProvider=ie,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=index.umd.cjs.map
|