@prose-reader/react-reader 1.248.0 → 1.249.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/index.js CHANGED
@@ -523,7 +523,7 @@ const Xt = (t, n, o) => {
523
523
  }
524
524
  );
525
525
  }
526
- ), tn = "@prose-reader/react-reader", nn = "1.247.0", on = m(
526
+ ), tn = "@prose-reader/react-reader", nn = "1.248.0", on = m(
527
527
  ({ open: t, setOpen: n }) => /* @__PURE__ */ e(
528
528
  N,
529
529
  {
@@ -1,2 +1,2 @@
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/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","react","reactjrx","rxjs","@chakra-ui/react","react-icons/lu","react-dom","@prose-reader/enhancer-gestures","@prose-reader/core","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):(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.md,b.ri,b.rx,b.hi,b.RcSlider,null,b.io))})(this,function(b,e,h,g,d,t,k,oe,ne,H,te,V,se,N,re,ie,bo,Y){"use strict";function ae(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const s in o)if(s!=="default"){const i=Object.getOwnPropertyDescriptor(o,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:()=>o[s]})}}return n.default=o,Object.freeze(n)}const T=ae(h),K="data-bookmark-area",Q=h.createContext({reader:void 0,quickMenuSignal:g.signal({default:!1}),notificationsSubject:new d.Subject,refitMenuSignal:g.signal({default:!1})}),le=h.memo(({children:o,reader:n,quickMenuOpen:s,onQuickMenuOpenChange:i})=>{const r=g.useConstant(()=>g.signal({default:s})),a=g.useConstant(()=>new d.Subject),l=g.useConstant(()=>g.signal({default:!1})),c=g.useLiveRef(i),p=h.useMemo(()=>({quickMenuSignal:r,reader:n,notificationsSubject:a,refitMenuSignal:l}),[r,n,a,l]);return h.useEffect(()=>{r.next(s)},[s,r]),g.useSubscribe(()=>r.pipe(d.tap(c.current)),[r,c]),e.jsx(Q.Provider,{value:p,children:o})}),de=T.forwardRef(function(n,s){return e.jsx(t.IconButton,{variant:"ghost","aria-label":"Close",ref:s,...n,children:n.children??e.jsx(k.LuX,{})})}),x=T.forwardRef(function(n,s){const{children:i,portalled:r=!0,portalRef:a,backdrop:l=!0,...c}=n;return e.jsxs(t.Portal,{disabled:!r,container:a,children:[l&&e.jsx(t.Dialog.Backdrop,{}),e.jsx(t.Dialog.Positioner,{children:e.jsx(t.Dialog.Content,{ref:s,...c,asChild:!1,children:i})})]})}),O=T.forwardRef(function(n,s){return e.jsx(t.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...n,asChild:!0,children:e.jsx(de,{size:"sm",ref:s,children:n.children})})}),m=t.Dialog.Root,B=t.Dialog.Footer,E=t.Dialog.Header,A=t.Dialog.Body;t.Dialog.Backdrop;const D=t.Dialog.Title;t.Dialog.Description,t.Dialog.Trigger;const M=t.Dialog.ActionTrigger,w=()=>h.useContext(Q),v=()=>{const{reader:o}=w();return o},Z=o=>!!o&&"__PROSE_READER_ENHANCER_SEARCH"in o,_=o=>!!o&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in o,X=o=>!!o&&"__PROSE_READER_ENHANCER_GALLERY"in o,J=o=>!!o&&"__PROSE_READER_ENHANCER_REFIT"in o,ce=o=>{const n=v(),s=_(n)?n:void 0;return{data:g.useObserve(()=>s?.annotations.annotations$.pipe(d.map(r=>r.find(a=>a.id===o)),d.filter(g.isDefined),d.switchMap(r=>s.locateResource(r))),[s])}},j=({id:o,onNavigate:n,allowLeftIcon:s=!0})=>{const i=v(),{data:r}=ce(o),a=r?.meta.range?.toString()||r?.meta.node?.textContent;return e.jsx(t.List.Item,{children:e.jsxs(t.Link,{href:"#",onClick:()=>{n(),i?.navigation.goToCfi(r?.meta.cfi??"")},children:[r?.resource?.notes?e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(k.LuNotebookPen,{})}):s?e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuNotebookPen,{})}):null,e.jsxs(t.Stack,{gap:0,children:[a?e.jsx(t.Text,{lineClamp:2,fontSize:"md",children:a}):e.jsxs(t.Text,{lineClamp:2,fontSize:"md",fontStyle:"italic",children:["Page ",(r?.meta.absolutePageIndex??0)+1]}),e.jsx(t.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${r?.meta?.absolutePageIndex!==void 0?r.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})})},$=()=>{const o=v(),n=_(o)?o:void 0;return{data:g.useObserve(()=>n?.annotations.annotations$.pipe(d.switchMap(i=>n.locateResource(i))),[n])}},he=()=>{const{data:o}=$();return{data:o?.filter(n=>n.meta.isCfiRange)}},ge=({onNavigate:o})=>{const{data:n}=he();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:n?.map(s=>e.jsx(j,{id:s.resource.id,onNavigate:o},s.resource.id))})},pe=()=>{const{data:o}=$();return{data:o?.filter(n=>!n.meta.isCfiRange&&!n.resource.notes)}},ue=({onNavigate:o})=>{const{data:n}=pe();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:n?.map(s=>e.jsx(j,{id:s.resource.id,onNavigate:o,allowLeftIcon:!1},s.resource.id))})},fe=h.memo(({onNavigate:o,defaultTab:n})=>{const[s,i]=h.useState(n??"bookmarks");return e.jsxs(t.Tabs.Root,{value:s,onValueChange:r=>i(r.value),children:[e.jsxs(t.Tabs.List,{children:[e.jsxs(t.Tabs.Trigger,{value:"bookmarks",children:[e.jsx(k.LuBookmark,{}),"Bookmarks"]}),e.jsxs(t.Tabs.Trigger,{value:"annotations",children:[e.jsx(k.LuNotebookPen,{}),"Annotations"]}),e.jsx(t.Tabs.Indicator,{})]}),e.jsx(t.Tabs.Content,{value:"bookmarks",children:e.jsx(ue,{onNavigate:o})}),e.jsx(t.Tabs.Content,{value:"annotations",children:e.jsx(ge,{onNavigate:o})})]})}),be=h.memo(({openWith:o,setOpen:n,onNavigate:s})=>e.jsx(m,{lazyMount:!0,placement:"center",open:!!o,onOpenChange:i=>n(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(E,{children:e.jsx(D,{children:"Annotations"})}),e.jsx(A,{flex:1,children:e.jsx(fe,{onNavigate:s,defaultTab:o})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),Se=h.memo(({children:o})=>{const n=v(),s=g.useObserve(()=>n?.spine.element$,[n]);return s?e.jsx(e.Fragment,{children:oe.createPortal(o,s)}):null}),ve=({absolutePageIndex:o,itemIndex:n})=>{const s=v();return{spineItem:g.useObserve(()=>s?n!==void 0?d.of(s.spine.spineItemsManager.get(n)):o!==void 0?s.spine.pages.observeFromAbsolutePageIndex(o).pipe(d.map(r=>s.spine.spineItemsManager.get(r?.itemIndex))):d.EMPTY:d.EMPTY,[n,o,s])}},ke=({absolutePageIndex:o,itemIndex:n})=>{const{spineItem:s}=ve({absolutePageIndex:o,itemIndex:n}),i=g.useObserve(()=>s?.isReady$??d.of(!1),[s]);return{spineItem:s,isReady:i}},Ce=h.memo(({absolutePageIndex:o,left:n,top:s,width:i})=>{const{isReady:r}=ke({absolutePageIndex:o}),{data:a}=$(),l=a?.find(p=>p?.meta?.absolutePageIndex===o&&p.meta.range===void 0);if(!r)return null;const c=i*.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":K,position:"absolute",left:n+i,transform:"translateX(-100%)",pointerEvents:"none",top:s,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`}})})}),Ie=h.memo(()=>{const o=v(),n=g.useObserve(()=>o?.layoutInfo$,[o]);return e.jsx(Se,{children:n?.pages.map(({absoluteLayout:{left:s,top:i,width:r}},a)=>e.jsx(Ce,{absolutePageIndex:a,left:s,top:i,width:r},a))})}),Te=()=>{const o=v();return _(o)?o:void 0},Pe=()=>{const o=Te(),{data:n}=$();h.useEffect(()=>o?o.gestures.hooks.register("beforeTapGesture",({event$:i})=>i.pipe(d.withLatestFrom(o?.annotations.candidates$),d.map(([r,a])=>{if(!r.page)return!0;const{spineItem:l,spineItemPageIndex:c,spineItemPagePosition:p,pageSize:u}=r.page;if(ne.isPositionInArea(p,{type:"corner",corner:"top-right",size:10,unit:"%"},u)){const f=o.spine.pages.fromSpineItemPageIndex(l,c);if(!f)return!0;const C=n?.find(y=>y?.meta?.absolutePageIndex===f.absolutePageIndex&&y.meta.range===void 0);if(C)return o?.annotations.delete(C.resource.id),!1;if(a?.[f.absolutePageIndex])return o?.annotations.annotateAbsolutePage({absolutePageIndex:f.absolutePageIndex}),!1}return!0}))):void 0,[o,n])},q=t.createToaster({placement:"bottom-end",pauseOnPageIdle:!0}),ye=()=>e.jsx(t.Portal,{children:e.jsx(t.Toaster,{toaster:q,insetInline:{mdDown:"4"},children:o=>e.jsxs(t.Toast.Root,{width:{md:"sm"},children:[o.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:[o.title&&e.jsx(t.Toast.Title,{children:o.title}),o.description&&e.jsx(t.Toast.Description,{children:o.description})]}),o.action&&e.jsx(t.Toast.ActionTrigger,{children:o.action.label}),o.meta?.closable&&e.jsx(t.Toast.CloseTrigger,{})]})})}),we={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function xe(){const[o,n]=h.useState(null),[s,i]=h.useState(we),r=h.useMemo(()=>new ResizeObserver(a=>{if(a[0]){const{x:l,y:c,width:p,height:u,top:S,left:f,bottom:C,right:P}=a[0].contentRect;i({x:l,y:c,width:p,height:u,top:S,left:f,bottom:C,right:P})}}),[]);return h.useLayoutEffect(()=>{if(o)return r.observe(o),()=>{r.disconnect()}},[o,r]),[n,s,o]}const Oe=(o,n,s)=>{const i=v(),r=X(i)?i:void 0;g.useSubscribe(()=>{if(!r||!o)return d.NEVER;const a=n.layout.layout$.pipe(d.startWith(n.layout.layoutInfo),d.distinctUntilChanged(H.isShallowEqual)),l=H.observeIntersection(o).pipe(d.map(c=>c.some(p=>p.isIntersecting)));return a.pipe(d.throttleTime(100,void 0,{trailing:!0}),d.switchMap(()=>l.pipe(d.tap(c=>{c||(o.innerHTML="")}),d.filter(c=>c),d.first()).pipe(d.switchMap(()=>(o.innerHTML="",r?.gallery.snapshot(n,o,s))))))},[r,n,s,o])},me=h.memo(({item:o,onNavigated:n})=>{const[s,i,r]=xe(),a=v();Oe(r,o,i);const l=g.useObserve(()=>a?.locateResource(o,{mode:"shallow"}),[a,o]);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:()=>{n(),a?.navigation.goToSpineItem({indexOrId:o})},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]})]})}),Be=h.memo(({open:o,setOpen:n})=>{const s=v(),i=g.useObserve(()=>s?.spineItemsManager.items$,[s]);return e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:r=>n(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(E,{children:e.jsx(D,{children:"Gallery"})}),e.jsx(A,{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:i?.map(r=>e.jsx(me,{item:r,onNavigated:()=>{n(!1)}},r.item.id))})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})}),Ee="@prose-reader/react-reader",Ae="1.247.0",De=h.memo(({open:o,setOpen:n})=>e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:s=>n(s.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{children:[e.jsx(E,{children:e.jsx(D,{children:"Help"})}),e.jsxs(A,{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(k.LuArrowBigRight,{})})," ",e.jsx(t.Text,{children:"Navigate to right page"})]}),e.jsxs(t.HStack,{mb:1,children:[e.jsx(t.Kbd,{children:e.jsx(k.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:[Ee," version: ",Ae]})]})]}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),z=()=>{const o=v();return g.useObserve(()=>o?d.combineLatest([o.pagination.state$,o.context]).pipe(d.map(([n,s])=>{const i=s.manifest?.spineItems.every(r=>r.mediaType?.startsWith("image/"));return{...n,hasChapters:!s.isFullyPrePaginated&&!i}})):d.NEVER,[o])},Me=()=>{const o=z(),n=Math.floor((o?.percentageEstimateOfBook??0)*100),s=n>0?n:1;return o?.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," %"]})})},ze=()=>{const[o,n]=h.useState(new Date);return h.useEffect(()=>{const s=setInterval(()=>{n(new Date)},6e4);return()=>clearInterval(s)},[]),o},Le=o=>{const n=ze();return e.jsx(t.Text,{fontSize:"xs",...o,children:n.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},G=()=>{const{quickMenuSignal:o}=w();return[g.useSignalValue(o),o.update,o]},_e=()=>{const[o]=G();return e.jsx(t.Box,{position:"absolute",left:0,bottom:0,p:2,color:o?void 0:"colorPalette.contrast",children:e.jsx(Le,{})})},Fe=()=>{const o=v();g.useSubscribe(()=>o?.links$.subscribe(n=>{if(n.type==="click"&&H.isHtmlTagElement(n.target,"a")){if(!n.target.href)return;const s=new URL(n.target.href);window.location.host!==s.host&&confirm("You are going to be redirected to external link")&&window.open(n.target.href,"__blank")}}),[o])},He=()=>{const o=v(),{notificationsSubject:n}=w();g.useSubscribe(()=>o?.zoom.state$.pipe(H.watchKeys(["isZooming","currentScale"]),d.switchMap(({isZooming:s,currentScale:i})=>{if(!s||i<1)return d.EMPTY;const r=new d.Subject;return n.next({key:"zoom",title:"Zooming",duration:999999,abort:r}),d.NEVER.pipe(d.finalize(()=>{r.next(),r.complete()}))})),[o])},Ne=()=>{const o=v(),{notificationsSubject:n}=w();g.useSubscribe(()=>o?.settings.values$.pipe(d.map(({fontScale:s})=>s),d.distinctUntilChanged(),d.skip(1),d.tap(s=>{n.next({key:"fontScaleChange",title:"Font size changed",description:`${s*100} %`})})),[o,n])},$e=()=>{const{notificationsSubject:o}=w();Ne(),He(),g.useSubscribe(()=>o.pipe(d.filter(g.isDefined),d.mergeMap(n=>{const s=n.duration??3e3,i=q.create({title:n.title,description:n.description,duration:s}),r=o.pipe(d.skip(1),d.filter(a=>!!n.key&&a?.key===n.key));return d.merge(d.timer(s),n.abort??d.NEVER,r).pipe(d.first(),d.finalize(()=>{q.dismiss(i)}))})),[o])},We=T.forwardRef(function(n,s){const{showArrow:i,children:r,portalled:a=!0,content:l,portalRef:c,...p}=n;return e.jsxs(t.Popover.Root,{...p,positioning:{...p.positioning,gutter:4},children:[e.jsx(t.Popover.Trigger,{asChild:!0,children:r}),e.jsx(t.Portal,{disabled:!a,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:s,children:[i&&e.jsx(t.Popover.Arrow,{children:e.jsx(t.Popover.ArrowTip,{})}),l]})})})]})}),Ve=T.forwardRef(function(n,s){const{children:i,...r}=n;return e.jsx(We,{content:i,...r,ref:s,children:e.jsx(t.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:e.jsx(re.HiOutlineInformationCircle,{})})})}),qe=T.forwardRef(function(n,s){return e.jsx(t.Progress.Track,{...n,ref:s,children:e.jsx(t.Progress.Range,{})})});T.forwardRef(function(n,s){const{children:i,info:r,...a}=n;return e.jsxs(t.Progress.Label,{...a,ref:s,children:[i,r&&e.jsx(Ve,{children:r})]})});const Ge=t.Progress.Root,Ue=t.Progress.ValueText,U=()=>{const o=z(),n=o?.numberOfTotalPages===1,s=(o?.beginNumberOfPagesInSpineItem??0)>1,i=(o?.endNumberOfPagesInSpineItem??0)>1,r=(o?.hasChapters?o?.beginPageIndexInSpineItem:o?.beginAbsolutePageIndex)??0,a=(o?.hasChapters?o?.endPageIndexInSpineItem:o?.endAbsolutePageIndex)??0,[l=0,c=0]=[r,a].sort((S,f)=>S-f),p=o?.beginPageIndexInSpineItem!==o?.endPageIndexInSpineItem||o?.beginSpineItemIndex!==o?.endSpineItemIndex,u=o?.hasChapters?o?.beginNumberOfPagesInSpineItem:o?.numberOfTotalPages;return{hasOnlyOnePage:n,beginPageIndex:r,endPageIndex:a,isBeginWithinChapter:s,isEndWithinChapter:i,beginAndEndAreDifferent:p,totalApproximatePages:u,leftPageIndex:l,rightPageIndex:c}},Ye=()=>{const o=z(),{hasOnlyOnePage:n,leftPageIndex:s,rightPageIndex:i,totalApproximatePages:r,beginAndEndAreDifferent:a}=U(),l=Math.round((o?.percentageEstimateOfBook??0)*100),c=u=>u?.subChapter?`${u.title} / ${c(u.subChapter)}`:u?.title||"",p=c(o?.beginChapterInfo);return e.jsxs(t.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[e.jsx(Ge,{value:l,size:"xs",width:150,children:e.jsxs(t.HStack,{justifyContent:"space-between",children:[e.jsx(qe,{width:110}),e.jsx(Ue,{children:`${l}%`})]})}),e.jsx(t.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:p?`Chapter: ${p}`:" "}),!n&&e.jsxs(t.HStack,{children:[e.jsx(t.Text,{fontSize:"xs",children:a?`${s+1} - ${i+1} of ${r}`:`${s+1} of ${r}`}),!!o?.hasChapters&&e.jsxs(e.Fragment,{children:[e.jsx(t.Text,{children:"-"}),e.jsxs(t.Text,{fontSize:"xs",children:["(",(o?.beginAbsolutePageIndex??0)+1,")"]})]})]})]})},R=h.memo(({children:o,position:n,...s})=>e.jsx(t.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,...s,children:o})),Ke=t.chakra(ie),Qe=h.memo(o=>e.jsx(t.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:e.jsx(Ke,{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(${o.reverse?"50%":"-50%"}, -50%)`,backgroundColor:"var(--bg)",marginTop:"0px"}},...o})})),Ze=()=>{const n=z()?.isUsingSpread,{beginPageIndex:s,totalApproximatePages:i=0}=U(),r=n?Math.floor((s||0)/2):s,[a,l]=g.useSignalState(()=>g.signal({default:r||0})),c=0,p=Math.max(0,n?Math.floor((i-1)/2):i-1);return h.useEffect(()=>{l.update(r||0)},[r,l]),{value:a,valueSignal:l,min:c,max:p}},Xe=o=>{const n=v(),s=z(),{manifest:i}=g.useObserve(()=>n?.context,[n])??{},r=i?.readingDirection==="rtl",a=s?.isUsingSpread,{totalApproximatePages:l=0,isBeginWithinChapter:c}=U(),p=1,u=c,{value:S,valueSignal:f,min:C,max:P}=Ze(),y=h.useCallback(F=>{const[I=0]=Array.isArray(F)?F:[F];f.update(I);const ee=a?Math.floor(I)*2:Math.floor(I);u?n?.navigation.goToPageOfSpineItem({pageIndex:ee,spineItemId:n.pagination.state.beginSpineItemIndex??0,animation:!1}):n?.navigation.goToAbsolutePageIndex({absolutePageIndex:ee,animation:!1})},[n,a,f,u]);return g.useSubscribe(()=>n?.navigation.throttleLock({duration:100,trigger:f.subject}),[n,f]),l===1||a&&l===2?e.jsx(t.Box,{style:o.style}):e.jsx(Qe,{value:[S],max:P,min:C,reverse:r,step:p,onChange:y,...o})},Je=h.memo(({open:o,onItemClick:n})=>{const s=v(),{refitMenuSignal:i}=w(),r=g.useObserve(()=>s?.navigation.state$,[s]),a=g.useObserve(()=>s?.settings.values$,[s]),l=g.useObserve(()=>s?.zoom.state$,[s]),c=a?.computedPageTurnMode==="scrollable",p=a?.computedPageTurnDirection==="vertical",[u,S]=h.useState(!0);return e.jsxs(R,{present:o,position:"bottom",display:"flex",flexDirection:"column",overflow:"auto",pb:8,px:0,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:!r?.canGoLeftSpineItem&&!r?.canGoTopSpineItem,children:p?e.jsx(N.RxDoubleArrowUp,{}):e.jsx(N.RxDoubleArrowLeft,{})}),e.jsxs(t.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[e.jsx(Ye,{}),e.jsx(Xe,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!r?.canGoRightSpineItem&&!r?.canGoBottomSpineItem,onClick:()=>{s?.navigation.goToRightOrBottomSpineItem()},children:p?e.jsx(N.RxDoubleArrowDown,{}):e.jsx(N.RxDoubleArrowRight,{})})]}),e.jsx(t.HStack,{alignSelf:"stretch",alignItems:"center",justifyContent:"center",children:e.jsxs(t.Collapsible.Root,{open:u,flex:1,onOpenChange:({open:f})=>{S(f)},width:"100%",children:[e.jsx(t.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:e.jsx(k.LuChevronDown,{style:{transform:u?"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:()=>n("help"),children:e.jsx(k.LuCircleHelp,{})}),e.jsx(t.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>n("toc"),children:e.jsx(k.LuTableOfContents,{})}),Z(s)&&e.jsx(t.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("search"),children:e.jsx(k.LuSearch,{})}),_(s)&&e.jsx(t.IconButton,{"aria-label":"Bookmarks",size:"lg",variant:"ghost",onClick:()=>n("bookmarks"),children:e.jsx(te.BsBookmarks,{})}),_(s)&&e.jsx(t.IconButton,{"aria-label":"Annotations",size:"lg",variant:"ghost",onClick:()=>n("annotations"),children:e.jsx(k.LuNotebookPen,{})}),J(s)&&e.jsx(t.IconButton,{"aria-label":"Refit",size:"lg",variant:"ghost",onClick:()=>{i.next(!0)},disabled:!c,children:e.jsx(V.MdOutlineFitScreen,{})}),e.jsx(t.IconButton,{"aria-label":"Thumbnails",size:"lg",variant:l?.isZooming&&l.currentScale<1?"solid":"ghost",onClick:()=>{l?.isZooming?s?.zoom.exit():s?.zoom.enter({animate:!0,scale:.5})},children:e.jsx(k.LuGalleryHorizontal,{})}),X(s)&&e.jsx(t.IconButton,{"aria-label":"Gallery",size:"lg",variant:"ghost",onClick:()=>n("gallery"),children:e.jsx(se.RiGalleryView2,{})})]})})]})})]})}),je=()=>{const[o,n]=h.useState(!1),s=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 i(){n(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",i),()=>{document.removeEventListener("fullscreenchange",i)}},[]),{isFullscreen:o,onToggleFullscreenClick:s}},Re=h.memo(({open:o,onItemClick:n})=>{const s=v(),i=g.useObserve(()=>s?.context.manifest$,[s]),{isFullscreen:r,onToggleFullscreenClick:a}=je();return e.jsxs(R,{present:o,position:"top",height:"80px",justifyContent:"space-between",children:[e.jsx(t.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>n("back"),children:e.jsx(Y.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:i?.title})}),e.jsxs(t.HStack,{children:[e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>n("more"),children:e.jsx(Y.IoMdMore,{})}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:a,children:r?e.jsx(V.MdFullscreenExit,{}):e.jsx(V.MdFullscreen,{})})]})]})}),eo=h.memo(({onItemClick:o})=>{const[n]=G(),{refitMenuSignal:s}=w(),i=g.useSignalValue(s);return e.jsxs(e.Fragment,{children:[e.jsx(Re,{open:n&&!i,onItemClick:o}),e.jsx(Je,{open:n&&!i,onItemClick:o})]})}),oo=T.forwardRef(function(n,s){const{label:i,children:r,helperText:a,errorText:l,optionalText:c,...p}=n;return e.jsxs(t.Field.Root,{ref:s,...p,children:[i&&e.jsxs(t.Field.Label,{children:[i,e.jsx(t.Field.RequiredIndicator,{fallback:c})]}),r,a&&e.jsx(t.Field.HelperText,{children:a}),l&&e.jsx(t.Field.ErrorText,{children:l})]})}),W=T.forwardRef(function(n,s){const{children:i,inputProps:r,rootRef:a,...l}=n;return e.jsxs(t.RadioGroup.Item,{ref:a,...l,children:[e.jsx(t.RadioGroup.ItemHiddenInput,{ref:s,...r}),e.jsx(t.RadioGroup.ItemIndicator,{}),i&&e.jsx(t.RadioGroup.ItemText,{children:i})]})}),no=t.RadioGroup.Root,to=T.forwardRef(function(n,s){const{marks:i,label:r,showValue:a,...l}=n,c=n.defaultValue??n.value,p=i?.map(S=>typeof S=="number"?{value:S,label:void 0}:S),u=!!p?.some(S=>S.label);return e.jsxs(t.Slider.Root,{ref:s,thumbAlignment:"center",...l,children:[r&&!a&&e.jsx(t.Slider.Label,{children:r}),r&&a&&e.jsxs(t.HStack,{justify:"space-between",children:[e.jsx(t.Slider.Label,{children:r}),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(so,{value:c}),e.jsx(ro,{marks:p})]})]})});function so(o){const{value:n}=o;return e.jsx(t.For,{each:n,children:(s,i)=>e.jsx(t.Slider.Thumb,{index:i,children:e.jsx(t.Slider.HiddenInput,{})},i)})}const ro=T.forwardRef(function(n,s){const{marks:i}=n;return i?.length?e.jsx(t.Slider.MarkerGroup,{ref:s,children:i.map((r,a)=>{const l=typeof r=="number"?r:r.value,c=typeof r=="number"?void 0:r.label;return e.jsxs(t.Slider.Marker,{value:l,children:[e.jsx(t.Slider.MarkerIndicator,{}),c]},a)})}):null}),io=h.memo(()=>{const{refitMenuSignal:n}=w(),s=g.useSignalValue(n),i=v(),r=J(i)?i:void 0,a=g.useObserve(()=>r?.refit.settings$,[r]);return e.jsx(m,{lazyMount:!0,open:s,onOpenChange:l=>n.next(l.open),placement:"center",children:e.jsxs(x,{children:[e.jsx(E,{children:e.jsx(D,{children:"Viewport fit"})}),e.jsx(A,{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(oo,{label:"Profile",children:e.jsx(no,{defaultValue:"fit",onValueChange:l=>{const c=l.value;r?.refit.update({viewportFit:c,customWidth:60})},value:a?.viewportFit??"fit",children:e.jsxs(t.Stack,{gap:2,children:[e.jsx(W,{value:"desktop",children:"Desktop"}),e.jsx(W,{value:"tablet",children:"Tablet"}),e.jsx(W,{value:"fit",children:"Full width (default)"}),e.jsx(W,{value:"custom",children:"Custom"})]})})}),e.jsx(to,{label:"Maximum width (%)",showValue:!0,max:100,min:10,step:1,disabled:a?.viewportFit!=="custom",value:[a?.customWidth??60],onValueChange:l=>{const c=l.value[0]??0;r?.refit.update({customWidth:c})}})]})]})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Close"})})}),e.jsx(O,{})]})})}),ao=h.memo(({contextText:o="",startOffset:n=0,text:s,cfi:i="#",onClick:r,absolutePageIndex:a})=>{const c=o.substring(Math.max(n-15,0),Math.max(n,0)),p=o.substring(Math.min(n+s.length,o.length-1),Math.min(n+s.length+15,o.length-1));return e.jsxs(t.Link,{href:i,style:{margin:5,overflow:"hidden"},onClick:u=>{u.preventDefault(),r(i)},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:s}),p,'"']}),e.jsx(t.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${a!==void 0?a+1:"unknown (not loaded)"}`})]})}),lo=500,co=()=>{const o=g.useConstant(()=>new d.BehaviorSubject("")),n=g.useObserve(o),s=v(),i=Z(s)?s:void 0,r=g.useObserve(()=>o.pipe(d.distinctUntilChanged(),d.switchMap(a=>a===""||!i?d.of(void 0):d.merge(d.of({type:"start",data:void 0}),d.timer(lo).pipe(d.switchMap(()=>i.search.search(a)),d.map(l=>({type:"end",data:l})))))),[i,o]);return{value:n,setValue:o.next.bind(o),status:r?.type??"idle",data:r?.data}},ho=h.memo(({onNavigate:o})=>{const n=v(),{value:s,setValue:i,status:r,data:a}=co(),l=u=>{i(u.target.value)},c=h.useCallback(u=>{o(),n?.navigation.goToCfi(u)},[n,o]),p=g.useObserve(()=>n?.locateResource(a?.slice(0,100)??[]),[a]);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:[r==="start"&&e.jsx(t.Text,{children:"Searching ..."}),a?.length===0&&e.jsx(t.Text,{children:"No results"}),r==="end"&&(a?.length??0)>0&&e.jsxs(t.Stack,{children:[e.jsxs(t.Text,{fontSize:"md",children:[a?.length," result(s)"]}),e.jsx(t.Stack,{gap:0,children:p?.map((u,S)=>e.jsx(ao,{contextText:u.meta?.range?.startContainer.parentElement?.textContent??"",pageIndex:u.meta?.itemPageIndex,startOffset:u.meta?.range?.startOffset??0,text:s,cfi:u.meta.cfi,onClick:c,absolutePageIndex:u.meta?.absolutePageIndex},S))})]})]})]})}),go=h.memo(({open:o,setOpen:n,onNavigate:s})=>e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:i=>n(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(E,{children:e.jsx(D,{children:"Search"})}),e.jsx(A,{flex:1,p:0,children:e.jsx(ho,{onNavigate:s})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),po=h.memo(({onNavigate:o})=>{const n=v(),{manifest:s,assumedRenditionLayout:i}=g.useObserve(()=>n?.context,[n])??{},{nav:r}=s??{},a=z();r?.toc;const{beginSpineItemIndex:l,beginPageIndexInSpineItem:c}=a??{},p=(i==="reflowable"?c:l)||0;let u=a?.beginChapterInfo;for(;u?.subChapter;)u=u?.subChapter;const S=(f,C,P)=>e.jsxs(h.Fragment,{children:[e.jsx(t.List.Item,{pl:4*(P+1),style:{display:"flex",alignItems:"center"},children:e.jsxs(t.Link,{onClick:()=>{o(),n?.navigation.goToUrl(f.href)},href:"#",children:[u?.path===f.path&&e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(k.LuCircleCheck,{})}),u?.path!==f.path&&e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.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((y,L)=>S(y,L,P+1))})]},C);return e.jsx(t.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:r?.toc.map((f,C)=>S(f,C,0))})}),uo=h.memo(({open:o,setOpen:n,onNavigate:s})=>e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:i=>n(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{children:[e.jsx(E,{children:e.jsx(D,{children:"Table of Contents"})}),e.jsx(A,{overflowY:"auto",flex:1,children:e.jsx(po,{onNavigate:s})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),fo=({enableFloatingTime:o=!0,enableFloatingProgress:n=!0,onItemClick:s})=>{const[i,r]=h.useState(!1),[a,l]=h.useState(!1),[c,p]=h.useState(!1),[u,S]=h.useState(void 0),[f,C]=h.useState(!1),[P,y]=G(),L=h.useCallback(()=>{r(!1),l(!1),p(!1),S(void 0),y(!1),C(!1)},[y]),F=h.useCallback(I=>{I==="annotations"?S("annotations"):I==="search"?p(!0):I==="help"?l(!0):I==="toc"?r(!0):I==="bookmarks"?S("bookmarks"):I==="gallery"&&C(!0),s?.(I)},[s]);return Fe(),$e(),Pe(),e.jsxs(e.Fragment,{children:[n&&e.jsx(t.Presence,{present:!P,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(Me,{})}),e.jsx(Be,{open:f,setOpen:C}),e.jsx(io,{}),e.jsx(eo,{onItemClick:F}),e.jsx(Ie,{}),e.jsx(De,{open:a,setOpen:l}),e.jsx(uo,{open:i,setOpen:r,onNavigate:L}),e.jsx(go,{open:c,setOpen:p,onNavigate:L}),e.jsx(be,{openWith:u,setOpen:I=>S(I?"annotations":void 0),onNavigate:L}),e.jsx(t.Presence,{present:o||P,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"slow",overflow:"hidden",children:e.jsx(_e,{})}),e.jsx(ye,{})]})};b.BOOKMARK_AREA_DATA_ATTRIBUTE=K,b.ReactReader=fo,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/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","react","reactjrx","rxjs","@chakra-ui/react","react-icons/lu","react-dom","@prose-reader/enhancer-gestures","@prose-reader/core","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):(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.md,b.ri,b.rx,b.hi,b.RcSlider,null,b.io))})(this,function(b,e,h,g,d,t,k,oe,ne,H,te,V,se,N,re,ie,bo,Y){"use strict";function ae(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const s in o)if(s!=="default"){const i=Object.getOwnPropertyDescriptor(o,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:()=>o[s]})}}return n.default=o,Object.freeze(n)}const T=ae(h),K="data-bookmark-area",Q=h.createContext({reader:void 0,quickMenuSignal:g.signal({default:!1}),notificationsSubject:new d.Subject,refitMenuSignal:g.signal({default:!1})}),le=h.memo(({children:o,reader:n,quickMenuOpen:s,onQuickMenuOpenChange:i})=>{const r=g.useConstant(()=>g.signal({default:s})),a=g.useConstant(()=>new d.Subject),l=g.useConstant(()=>g.signal({default:!1})),c=g.useLiveRef(i),p=h.useMemo(()=>({quickMenuSignal:r,reader:n,notificationsSubject:a,refitMenuSignal:l}),[r,n,a,l]);return h.useEffect(()=>{r.next(s)},[s,r]),g.useSubscribe(()=>r.pipe(d.tap(c.current)),[r,c]),e.jsx(Q.Provider,{value:p,children:o})}),de=T.forwardRef(function(n,s){return e.jsx(t.IconButton,{variant:"ghost","aria-label":"Close",ref:s,...n,children:n.children??e.jsx(k.LuX,{})})}),x=T.forwardRef(function(n,s){const{children:i,portalled:r=!0,portalRef:a,backdrop:l=!0,...c}=n;return e.jsxs(t.Portal,{disabled:!r,container:a,children:[l&&e.jsx(t.Dialog.Backdrop,{}),e.jsx(t.Dialog.Positioner,{children:e.jsx(t.Dialog.Content,{ref:s,...c,asChild:!1,children:i})})]})}),O=T.forwardRef(function(n,s){return e.jsx(t.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...n,asChild:!0,children:e.jsx(de,{size:"sm",ref:s,children:n.children})})}),m=t.Dialog.Root,B=t.Dialog.Footer,E=t.Dialog.Header,A=t.Dialog.Body;t.Dialog.Backdrop;const D=t.Dialog.Title;t.Dialog.Description,t.Dialog.Trigger;const M=t.Dialog.ActionTrigger,w=()=>h.useContext(Q),v=()=>{const{reader:o}=w();return o},Z=o=>!!o&&"__PROSE_READER_ENHANCER_SEARCH"in o,_=o=>!!o&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in o,X=o=>!!o&&"__PROSE_READER_ENHANCER_GALLERY"in o,J=o=>!!o&&"__PROSE_READER_ENHANCER_REFIT"in o,ce=o=>{const n=v(),s=_(n)?n:void 0;return{data:g.useObserve(()=>s?.annotations.annotations$.pipe(d.map(r=>r.find(a=>a.id===o)),d.filter(g.isDefined),d.switchMap(r=>s.locateResource(r))),[s])}},j=({id:o,onNavigate:n,allowLeftIcon:s=!0})=>{const i=v(),{data:r}=ce(o),a=r?.meta.range?.toString()||r?.meta.node?.textContent;return e.jsx(t.List.Item,{children:e.jsxs(t.Link,{href:"#",onClick:()=>{n(),i?.navigation.goToCfi(r?.meta.cfi??"")},children:[r?.resource?.notes?e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(k.LuNotebookPen,{})}):s?e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuNotebookPen,{})}):null,e.jsxs(t.Stack,{gap:0,children:[a?e.jsx(t.Text,{lineClamp:2,fontSize:"md",children:a}):e.jsxs(t.Text,{lineClamp:2,fontSize:"md",fontStyle:"italic",children:["Page ",(r?.meta.absolutePageIndex??0)+1]}),e.jsx(t.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${r?.meta?.absolutePageIndex!==void 0?r.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})})},$=()=>{const o=v(),n=_(o)?o:void 0;return{data:g.useObserve(()=>n?.annotations.annotations$.pipe(d.switchMap(i=>n.locateResource(i))),[n])}},he=()=>{const{data:o}=$();return{data:o?.filter(n=>n.meta.isCfiRange)}},ge=({onNavigate:o})=>{const{data:n}=he();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:n?.map(s=>e.jsx(j,{id:s.resource.id,onNavigate:o},s.resource.id))})},pe=()=>{const{data:o}=$();return{data:o?.filter(n=>!n.meta.isCfiRange&&!n.resource.notes)}},ue=({onNavigate:o})=>{const{data:n}=pe();return e.jsx(t.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:n?.map(s=>e.jsx(j,{id:s.resource.id,onNavigate:o,allowLeftIcon:!1},s.resource.id))})},fe=h.memo(({onNavigate:o,defaultTab:n})=>{const[s,i]=h.useState(n??"bookmarks");return e.jsxs(t.Tabs.Root,{value:s,onValueChange:r=>i(r.value),children:[e.jsxs(t.Tabs.List,{children:[e.jsxs(t.Tabs.Trigger,{value:"bookmarks",children:[e.jsx(k.LuBookmark,{}),"Bookmarks"]}),e.jsxs(t.Tabs.Trigger,{value:"annotations",children:[e.jsx(k.LuNotebookPen,{}),"Annotations"]}),e.jsx(t.Tabs.Indicator,{})]}),e.jsx(t.Tabs.Content,{value:"bookmarks",children:e.jsx(ue,{onNavigate:o})}),e.jsx(t.Tabs.Content,{value:"annotations",children:e.jsx(ge,{onNavigate:o})})]})}),be=h.memo(({openWith:o,setOpen:n,onNavigate:s})=>e.jsx(m,{lazyMount:!0,placement:"center",open:!!o,onOpenChange:i=>n(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(E,{children:e.jsx(D,{children:"Annotations"})}),e.jsx(A,{flex:1,children:e.jsx(fe,{onNavigate:s,defaultTab:o})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),Se=h.memo(({children:o})=>{const n=v(),s=g.useObserve(()=>n?.spine.element$,[n]);return s?e.jsx(e.Fragment,{children:oe.createPortal(o,s)}):null}),ve=({absolutePageIndex:o,itemIndex:n})=>{const s=v();return{spineItem:g.useObserve(()=>s?n!==void 0?d.of(s.spine.spineItemsManager.get(n)):o!==void 0?s.spine.pages.observeFromAbsolutePageIndex(o).pipe(d.map(r=>s.spine.spineItemsManager.get(r?.itemIndex))):d.EMPTY:d.EMPTY,[n,o,s])}},ke=({absolutePageIndex:o,itemIndex:n})=>{const{spineItem:s}=ve({absolutePageIndex:o,itemIndex:n}),i=g.useObserve(()=>s?.isReady$??d.of(!1),[s]);return{spineItem:s,isReady:i}},Ce=h.memo(({absolutePageIndex:o,left:n,top:s,width:i})=>{const{isReady:r}=ke({absolutePageIndex:o}),{data:a}=$(),l=a?.find(p=>p?.meta?.absolutePageIndex===o&&p.meta.range===void 0);if(!r)return null;const c=i*.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":K,position:"absolute",left:n+i,transform:"translateX(-100%)",pointerEvents:"none",top:s,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`}})})}),Ie=h.memo(()=>{const o=v(),n=g.useObserve(()=>o?.layoutInfo$,[o]);return e.jsx(Se,{children:n?.pages.map(({absoluteLayout:{left:s,top:i,width:r}},a)=>e.jsx(Ce,{absolutePageIndex:a,left:s,top:i,width:r},a))})}),Te=()=>{const o=v();return _(o)?o:void 0},Pe=()=>{const o=Te(),{data:n}=$();h.useEffect(()=>o?o.gestures.hooks.register("beforeTapGesture",({event$:i})=>i.pipe(d.withLatestFrom(o?.annotations.candidates$),d.map(([r,a])=>{if(!r.page)return!0;const{spineItem:l,spineItemPageIndex:c,spineItemPagePosition:p,pageSize:u}=r.page;if(ne.isPositionInArea(p,{type:"corner",corner:"top-right",size:10,unit:"%"},u)){const f=o.spine.pages.fromSpineItemPageIndex(l,c);if(!f)return!0;const C=n?.find(y=>y?.meta?.absolutePageIndex===f.absolutePageIndex&&y.meta.range===void 0);if(C)return o?.annotations.delete(C.resource.id),!1;if(a?.[f.absolutePageIndex])return o?.annotations.annotateAbsolutePage({absolutePageIndex:f.absolutePageIndex}),!1}return!0}))):void 0,[o,n])},q=t.createToaster({placement:"bottom-end",pauseOnPageIdle:!0}),ye=()=>e.jsx(t.Portal,{children:e.jsx(t.Toaster,{toaster:q,insetInline:{mdDown:"4"},children:o=>e.jsxs(t.Toast.Root,{width:{md:"sm"},children:[o.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:[o.title&&e.jsx(t.Toast.Title,{children:o.title}),o.description&&e.jsx(t.Toast.Description,{children:o.description})]}),o.action&&e.jsx(t.Toast.ActionTrigger,{children:o.action.label}),o.meta?.closable&&e.jsx(t.Toast.CloseTrigger,{})]})})}),we={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function xe(){const[o,n]=h.useState(null),[s,i]=h.useState(we),r=h.useMemo(()=>new ResizeObserver(a=>{if(a[0]){const{x:l,y:c,width:p,height:u,top:S,left:f,bottom:C,right:P}=a[0].contentRect;i({x:l,y:c,width:p,height:u,top:S,left:f,bottom:C,right:P})}}),[]);return h.useLayoutEffect(()=>{if(o)return r.observe(o),()=>{r.disconnect()}},[o,r]),[n,s,o]}const Oe=(o,n,s)=>{const i=v(),r=X(i)?i:void 0;g.useSubscribe(()=>{if(!r||!o)return d.NEVER;const a=n.layout.layout$.pipe(d.startWith(n.layout.layoutInfo),d.distinctUntilChanged(H.isShallowEqual)),l=H.observeIntersection(o).pipe(d.map(c=>c.some(p=>p.isIntersecting)));return a.pipe(d.throttleTime(100,void 0,{trailing:!0}),d.switchMap(()=>l.pipe(d.tap(c=>{c||(o.innerHTML="")}),d.filter(c=>c),d.first()).pipe(d.switchMap(()=>(o.innerHTML="",r?.gallery.snapshot(n,o,s))))))},[r,n,s,o])},me=h.memo(({item:o,onNavigated:n})=>{const[s,i,r]=xe(),a=v();Oe(r,o,i);const l=g.useObserve(()=>a?.locateResource(o,{mode:"shallow"}),[a,o]);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:()=>{n(),a?.navigation.goToSpineItem({indexOrId:o})},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]})]})}),Be=h.memo(({open:o,setOpen:n})=>{const s=v(),i=g.useObserve(()=>s?.spineItemsManager.items$,[s]);return e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:r=>n(r.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(E,{children:e.jsx(D,{children:"Gallery"})}),e.jsx(A,{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:i?.map(r=>e.jsx(me,{item:r,onNavigated:()=>{n(!1)}},r.item.id))})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})}),Ee="@prose-reader/react-reader",Ae="1.248.0",De=h.memo(({open:o,setOpen:n})=>e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:s=>n(s.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{children:[e.jsx(E,{children:e.jsx(D,{children:"Help"})}),e.jsxs(A,{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(k.LuArrowBigRight,{})})," ",e.jsx(t.Text,{children:"Navigate to right page"})]}),e.jsxs(t.HStack,{mb:1,children:[e.jsx(t.Kbd,{children:e.jsx(k.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:[Ee," version: ",Ae]})]})]}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),z=()=>{const o=v();return g.useObserve(()=>o?d.combineLatest([o.pagination.state$,o.context]).pipe(d.map(([n,s])=>{const i=s.manifest?.spineItems.every(r=>r.mediaType?.startsWith("image/"));return{...n,hasChapters:!s.isFullyPrePaginated&&!i}})):d.NEVER,[o])},Me=()=>{const o=z(),n=Math.floor((o?.percentageEstimateOfBook??0)*100),s=n>0?n:1;return o?.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," %"]})})},ze=()=>{const[o,n]=h.useState(new Date);return h.useEffect(()=>{const s=setInterval(()=>{n(new Date)},6e4);return()=>clearInterval(s)},[]),o},Le=o=>{const n=ze();return e.jsx(t.Text,{fontSize:"xs",...o,children:n.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},G=()=>{const{quickMenuSignal:o}=w();return[g.useSignalValue(o),o.update,o]},_e=()=>{const[o]=G();return e.jsx(t.Box,{position:"absolute",left:0,bottom:0,p:2,color:o?void 0:"colorPalette.contrast",children:e.jsx(Le,{})})},Fe=()=>{const o=v();g.useSubscribe(()=>o?.links$.subscribe(n=>{if(n.type==="click"&&H.isHtmlTagElement(n.target,"a")){if(!n.target.href)return;const s=new URL(n.target.href);window.location.host!==s.host&&confirm("You are going to be redirected to external link")&&window.open(n.target.href,"__blank")}}),[o])},He=()=>{const o=v(),{notificationsSubject:n}=w();g.useSubscribe(()=>o?.zoom.state$.pipe(H.watchKeys(["isZooming","currentScale"]),d.switchMap(({isZooming:s,currentScale:i})=>{if(!s||i<1)return d.EMPTY;const r=new d.Subject;return n.next({key:"zoom",title:"Zooming",duration:999999,abort:r}),d.NEVER.pipe(d.finalize(()=>{r.next(),r.complete()}))})),[o])},Ne=()=>{const o=v(),{notificationsSubject:n}=w();g.useSubscribe(()=>o?.settings.values$.pipe(d.map(({fontScale:s})=>s),d.distinctUntilChanged(),d.skip(1),d.tap(s=>{n.next({key:"fontScaleChange",title:"Font size changed",description:`${s*100} %`})})),[o,n])},$e=()=>{const{notificationsSubject:o}=w();Ne(),He(),g.useSubscribe(()=>o.pipe(d.filter(g.isDefined),d.mergeMap(n=>{const s=n.duration??3e3,i=q.create({title:n.title,description:n.description,duration:s}),r=o.pipe(d.skip(1),d.filter(a=>!!n.key&&a?.key===n.key));return d.merge(d.timer(s),n.abort??d.NEVER,r).pipe(d.first(),d.finalize(()=>{q.dismiss(i)}))})),[o])},We=T.forwardRef(function(n,s){const{showArrow:i,children:r,portalled:a=!0,content:l,portalRef:c,...p}=n;return e.jsxs(t.Popover.Root,{...p,positioning:{...p.positioning,gutter:4},children:[e.jsx(t.Popover.Trigger,{asChild:!0,children:r}),e.jsx(t.Portal,{disabled:!a,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:s,children:[i&&e.jsx(t.Popover.Arrow,{children:e.jsx(t.Popover.ArrowTip,{})}),l]})})})]})}),Ve=T.forwardRef(function(n,s){const{children:i,...r}=n;return e.jsx(We,{content:i,...r,ref:s,children:e.jsx(t.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:e.jsx(re.HiOutlineInformationCircle,{})})})}),qe=T.forwardRef(function(n,s){return e.jsx(t.Progress.Track,{...n,ref:s,children:e.jsx(t.Progress.Range,{})})});T.forwardRef(function(n,s){const{children:i,info:r,...a}=n;return e.jsxs(t.Progress.Label,{...a,ref:s,children:[i,r&&e.jsx(Ve,{children:r})]})});const Ge=t.Progress.Root,Ue=t.Progress.ValueText,U=()=>{const o=z(),n=o?.numberOfTotalPages===1,s=(o?.beginNumberOfPagesInSpineItem??0)>1,i=(o?.endNumberOfPagesInSpineItem??0)>1,r=(o?.hasChapters?o?.beginPageIndexInSpineItem:o?.beginAbsolutePageIndex)??0,a=(o?.hasChapters?o?.endPageIndexInSpineItem:o?.endAbsolutePageIndex)??0,[l=0,c=0]=[r,a].sort((S,f)=>S-f),p=o?.beginPageIndexInSpineItem!==o?.endPageIndexInSpineItem||o?.beginSpineItemIndex!==o?.endSpineItemIndex,u=o?.hasChapters?o?.beginNumberOfPagesInSpineItem:o?.numberOfTotalPages;return{hasOnlyOnePage:n,beginPageIndex:r,endPageIndex:a,isBeginWithinChapter:s,isEndWithinChapter:i,beginAndEndAreDifferent:p,totalApproximatePages:u,leftPageIndex:l,rightPageIndex:c}},Ye=()=>{const o=z(),{hasOnlyOnePage:n,leftPageIndex:s,rightPageIndex:i,totalApproximatePages:r,beginAndEndAreDifferent:a}=U(),l=Math.round((o?.percentageEstimateOfBook??0)*100),c=u=>u?.subChapter?`${u.title} / ${c(u.subChapter)}`:u?.title||"",p=c(o?.beginChapterInfo);return e.jsxs(t.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[e.jsx(Ge,{value:l,size:"xs",width:150,children:e.jsxs(t.HStack,{justifyContent:"space-between",children:[e.jsx(qe,{width:110}),e.jsx(Ue,{children:`${l}%`})]})}),e.jsx(t.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:p?`Chapter: ${p}`:" "}),!n&&e.jsxs(t.HStack,{children:[e.jsx(t.Text,{fontSize:"xs",children:a?`${s+1} - ${i+1} of ${r}`:`${s+1} of ${r}`}),!!o?.hasChapters&&e.jsxs(e.Fragment,{children:[e.jsx(t.Text,{children:"-"}),e.jsxs(t.Text,{fontSize:"xs",children:["(",(o?.beginAbsolutePageIndex??0)+1,")"]})]})]})]})},R=h.memo(({children:o,position:n,...s})=>e.jsx(t.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,...s,children:o})),Ke=t.chakra(ie),Qe=h.memo(o=>e.jsx(t.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:e.jsx(Ke,{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(${o.reverse?"50%":"-50%"}, -50%)`,backgroundColor:"var(--bg)",marginTop:"0px"}},...o})})),Ze=()=>{const n=z()?.isUsingSpread,{beginPageIndex:s,totalApproximatePages:i=0}=U(),r=n?Math.floor((s||0)/2):s,[a,l]=g.useSignalState(()=>g.signal({default:r||0})),c=0,p=Math.max(0,n?Math.floor((i-1)/2):i-1);return h.useEffect(()=>{l.update(r||0)},[r,l]),{value:a,valueSignal:l,min:c,max:p}},Xe=o=>{const n=v(),s=z(),{manifest:i}=g.useObserve(()=>n?.context,[n])??{},r=i?.readingDirection==="rtl",a=s?.isUsingSpread,{totalApproximatePages:l=0,isBeginWithinChapter:c}=U(),p=1,u=c,{value:S,valueSignal:f,min:C,max:P}=Ze(),y=h.useCallback(F=>{const[I=0]=Array.isArray(F)?F:[F];f.update(I);const ee=a?Math.floor(I)*2:Math.floor(I);u?n?.navigation.goToPageOfSpineItem({pageIndex:ee,spineItemId:n.pagination.state.beginSpineItemIndex??0,animation:!1}):n?.navigation.goToAbsolutePageIndex({absolutePageIndex:ee,animation:!1})},[n,a,f,u]);return g.useSubscribe(()=>n?.navigation.throttleLock({duration:100,trigger:f.subject}),[n,f]),l===1||a&&l===2?e.jsx(t.Box,{style:o.style}):e.jsx(Qe,{value:[S],max:P,min:C,reverse:r,step:p,onChange:y,...o})},Je=h.memo(({open:o,onItemClick:n})=>{const s=v(),{refitMenuSignal:i}=w(),r=g.useObserve(()=>s?.navigation.state$,[s]),a=g.useObserve(()=>s?.settings.values$,[s]),l=g.useObserve(()=>s?.zoom.state$,[s]),c=a?.computedPageTurnMode==="scrollable",p=a?.computedPageTurnDirection==="vertical",[u,S]=h.useState(!0);return e.jsxs(R,{present:o,position:"bottom",display:"flex",flexDirection:"column",overflow:"auto",pb:8,px:0,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:!r?.canGoLeftSpineItem&&!r?.canGoTopSpineItem,children:p?e.jsx(N.RxDoubleArrowUp,{}):e.jsx(N.RxDoubleArrowLeft,{})}),e.jsxs(t.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[e.jsx(Ye,{}),e.jsx(Xe,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!r?.canGoRightSpineItem&&!r?.canGoBottomSpineItem,onClick:()=>{s?.navigation.goToRightOrBottomSpineItem()},children:p?e.jsx(N.RxDoubleArrowDown,{}):e.jsx(N.RxDoubleArrowRight,{})})]}),e.jsx(t.HStack,{alignSelf:"stretch",alignItems:"center",justifyContent:"center",children:e.jsxs(t.Collapsible.Root,{open:u,flex:1,onOpenChange:({open:f})=>{S(f)},width:"100%",children:[e.jsx(t.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:e.jsx(k.LuChevronDown,{style:{transform:u?"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:()=>n("help"),children:e.jsx(k.LuCircleHelp,{})}),e.jsx(t.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>n("toc"),children:e.jsx(k.LuTableOfContents,{})}),Z(s)&&e.jsx(t.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("search"),children:e.jsx(k.LuSearch,{})}),_(s)&&e.jsx(t.IconButton,{"aria-label":"Bookmarks",size:"lg",variant:"ghost",onClick:()=>n("bookmarks"),children:e.jsx(te.BsBookmarks,{})}),_(s)&&e.jsx(t.IconButton,{"aria-label":"Annotations",size:"lg",variant:"ghost",onClick:()=>n("annotations"),children:e.jsx(k.LuNotebookPen,{})}),J(s)&&e.jsx(t.IconButton,{"aria-label":"Refit",size:"lg",variant:"ghost",onClick:()=>{i.next(!0)},disabled:!c,children:e.jsx(V.MdOutlineFitScreen,{})}),e.jsx(t.IconButton,{"aria-label":"Thumbnails",size:"lg",variant:l?.isZooming&&l.currentScale<1?"solid":"ghost",onClick:()=>{l?.isZooming?s?.zoom.exit():s?.zoom.enter({animate:!0,scale:.5})},children:e.jsx(k.LuGalleryHorizontal,{})}),X(s)&&e.jsx(t.IconButton,{"aria-label":"Gallery",size:"lg",variant:"ghost",onClick:()=>n("gallery"),children:e.jsx(se.RiGalleryView2,{})})]})})]})})]})}),je=()=>{const[o,n]=h.useState(!1),s=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 i(){n(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",i),()=>{document.removeEventListener("fullscreenchange",i)}},[]),{isFullscreen:o,onToggleFullscreenClick:s}},Re=h.memo(({open:o,onItemClick:n})=>{const s=v(),i=g.useObserve(()=>s?.context.manifest$,[s]),{isFullscreen:r,onToggleFullscreenClick:a}=je();return e.jsxs(R,{present:o,position:"top",height:"80px",justifyContent:"space-between",children:[e.jsx(t.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>n("back"),children:e.jsx(Y.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:i?.title})}),e.jsxs(t.HStack,{children:[e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>n("more"),children:e.jsx(Y.IoMdMore,{})}),e.jsx(t.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:a,children:r?e.jsx(V.MdFullscreenExit,{}):e.jsx(V.MdFullscreen,{})})]})]})}),eo=h.memo(({onItemClick:o})=>{const[n]=G(),{refitMenuSignal:s}=w(),i=g.useSignalValue(s);return e.jsxs(e.Fragment,{children:[e.jsx(Re,{open:n&&!i,onItemClick:o}),e.jsx(Je,{open:n&&!i,onItemClick:o})]})}),oo=T.forwardRef(function(n,s){const{label:i,children:r,helperText:a,errorText:l,optionalText:c,...p}=n;return e.jsxs(t.Field.Root,{ref:s,...p,children:[i&&e.jsxs(t.Field.Label,{children:[i,e.jsx(t.Field.RequiredIndicator,{fallback:c})]}),r,a&&e.jsx(t.Field.HelperText,{children:a}),l&&e.jsx(t.Field.ErrorText,{children:l})]})}),W=T.forwardRef(function(n,s){const{children:i,inputProps:r,rootRef:a,...l}=n;return e.jsxs(t.RadioGroup.Item,{ref:a,...l,children:[e.jsx(t.RadioGroup.ItemHiddenInput,{ref:s,...r}),e.jsx(t.RadioGroup.ItemIndicator,{}),i&&e.jsx(t.RadioGroup.ItemText,{children:i})]})}),no=t.RadioGroup.Root,to=T.forwardRef(function(n,s){const{marks:i,label:r,showValue:a,...l}=n,c=n.defaultValue??n.value,p=i?.map(S=>typeof S=="number"?{value:S,label:void 0}:S),u=!!p?.some(S=>S.label);return e.jsxs(t.Slider.Root,{ref:s,thumbAlignment:"center",...l,children:[r&&!a&&e.jsx(t.Slider.Label,{children:r}),r&&a&&e.jsxs(t.HStack,{justify:"space-between",children:[e.jsx(t.Slider.Label,{children:r}),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(so,{value:c}),e.jsx(ro,{marks:p})]})]})});function so(o){const{value:n}=o;return e.jsx(t.For,{each:n,children:(s,i)=>e.jsx(t.Slider.Thumb,{index:i,children:e.jsx(t.Slider.HiddenInput,{})},i)})}const ro=T.forwardRef(function(n,s){const{marks:i}=n;return i?.length?e.jsx(t.Slider.MarkerGroup,{ref:s,children:i.map((r,a)=>{const l=typeof r=="number"?r:r.value,c=typeof r=="number"?void 0:r.label;return e.jsxs(t.Slider.Marker,{value:l,children:[e.jsx(t.Slider.MarkerIndicator,{}),c]},a)})}):null}),io=h.memo(()=>{const{refitMenuSignal:n}=w(),s=g.useSignalValue(n),i=v(),r=J(i)?i:void 0,a=g.useObserve(()=>r?.refit.settings$,[r]);return e.jsx(m,{lazyMount:!0,open:s,onOpenChange:l=>n.next(l.open),placement:"center",children:e.jsxs(x,{children:[e.jsx(E,{children:e.jsx(D,{children:"Viewport fit"})}),e.jsx(A,{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(oo,{label:"Profile",children:e.jsx(no,{defaultValue:"fit",onValueChange:l=>{const c=l.value;r?.refit.update({viewportFit:c,customWidth:60})},value:a?.viewportFit??"fit",children:e.jsxs(t.Stack,{gap:2,children:[e.jsx(W,{value:"desktop",children:"Desktop"}),e.jsx(W,{value:"tablet",children:"Tablet"}),e.jsx(W,{value:"fit",children:"Full width (default)"}),e.jsx(W,{value:"custom",children:"Custom"})]})})}),e.jsx(to,{label:"Maximum width (%)",showValue:!0,max:100,min:10,step:1,disabled:a?.viewportFit!=="custom",value:[a?.customWidth??60],onValueChange:l=>{const c=l.value[0]??0;r?.refit.update({customWidth:c})}})]})]})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Close"})})}),e.jsx(O,{})]})})}),ao=h.memo(({contextText:o="",startOffset:n=0,text:s,cfi:i="#",onClick:r,absolutePageIndex:a})=>{const c=o.substring(Math.max(n-15,0),Math.max(n,0)),p=o.substring(Math.min(n+s.length,o.length-1),Math.min(n+s.length+15,o.length-1));return e.jsxs(t.Link,{href:i,style:{margin:5,overflow:"hidden"},onClick:u=>{u.preventDefault(),r(i)},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:s}),p,'"']}),e.jsx(t.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${a!==void 0?a+1:"unknown (not loaded)"}`})]})}),lo=500,co=()=>{const o=g.useConstant(()=>new d.BehaviorSubject("")),n=g.useObserve(o),s=v(),i=Z(s)?s:void 0,r=g.useObserve(()=>o.pipe(d.distinctUntilChanged(),d.switchMap(a=>a===""||!i?d.of(void 0):d.merge(d.of({type:"start",data:void 0}),d.timer(lo).pipe(d.switchMap(()=>i.search.search(a)),d.map(l=>({type:"end",data:l})))))),[i,o]);return{value:n,setValue:o.next.bind(o),status:r?.type??"idle",data:r?.data}},ho=h.memo(({onNavigate:o})=>{const n=v(),{value:s,setValue:i,status:r,data:a}=co(),l=u=>{i(u.target.value)},c=h.useCallback(u=>{o(),n?.navigation.goToCfi(u)},[n,o]),p=g.useObserve(()=>n?.locateResource(a?.slice(0,100)??[]),[a]);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:[r==="start"&&e.jsx(t.Text,{children:"Searching ..."}),a?.length===0&&e.jsx(t.Text,{children:"No results"}),r==="end"&&(a?.length??0)>0&&e.jsxs(t.Stack,{children:[e.jsxs(t.Text,{fontSize:"md",children:[a?.length," result(s)"]}),e.jsx(t.Stack,{gap:0,children:p?.map((u,S)=>e.jsx(ao,{contextText:u.meta?.range?.startContainer.parentElement?.textContent??"",pageIndex:u.meta?.itemPageIndex,startOffset:u.meta?.range?.startOffset??0,text:s,cfi:u.meta.cfi,onClick:c,absolutePageIndex:u.meta?.absolutePageIndex},S))})]})]})]})}),go=h.memo(({open:o,setOpen:n,onNavigate:s})=>e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:i=>n(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{height:"100%",children:[e.jsx(E,{children:e.jsx(D,{children:"Search"})}),e.jsx(A,{flex:1,p:0,children:e.jsx(ho,{onNavigate:s})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),po=h.memo(({onNavigate:o})=>{const n=v(),{manifest:s,assumedRenditionLayout:i}=g.useObserve(()=>n?.context,[n])??{},{nav:r}=s??{},a=z();r?.toc;const{beginSpineItemIndex:l,beginPageIndexInSpineItem:c}=a??{},p=(i==="reflowable"?c:l)||0;let u=a?.beginChapterInfo;for(;u?.subChapter;)u=u?.subChapter;const S=(f,C,P)=>e.jsxs(h.Fragment,{children:[e.jsx(t.List.Item,{pl:4*(P+1),style:{display:"flex",alignItems:"center"},children:e.jsxs(t.Link,{onClick:()=>{o(),n?.navigation.goToUrl(f.href)},href:"#",children:[u?.path===f.path&&e.jsx(t.List.Indicator,{asChild:!0,children:e.jsx(k.LuCircleCheck,{})}),u?.path!==f.path&&e.jsx(t.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.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((y,L)=>S(y,L,P+1))})]},C);return e.jsx(t.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:r?.toc.map((f,C)=>S(f,C,0))})}),uo=h.memo(({open:o,setOpen:n,onNavigate:s})=>e.jsx(m,{lazyMount:!0,placement:"center",open:o,onOpenChange:i=>n(i.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(x,{children:[e.jsx(E,{children:e.jsx(D,{children:"Table of Contents"})}),e.jsx(A,{overflowY:"auto",flex:1,children:e.jsx(po,{onNavigate:s})}),e.jsx(B,{children:e.jsx(M,{asChild:!0,children:e.jsx(t.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(O,{})]})})),fo=({enableFloatingTime:o=!0,enableFloatingProgress:n=!0,onItemClick:s})=>{const[i,r]=h.useState(!1),[a,l]=h.useState(!1),[c,p]=h.useState(!1),[u,S]=h.useState(void 0),[f,C]=h.useState(!1),[P,y]=G(),L=h.useCallback(()=>{r(!1),l(!1),p(!1),S(void 0),y(!1),C(!1)},[y]),F=h.useCallback(I=>{I==="annotations"?S("annotations"):I==="search"?p(!0):I==="help"?l(!0):I==="toc"?r(!0):I==="bookmarks"?S("bookmarks"):I==="gallery"&&C(!0),s?.(I)},[s]);return Fe(),$e(),Pe(),e.jsxs(e.Fragment,{children:[n&&e.jsx(t.Presence,{present:!P,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(Me,{})}),e.jsx(Be,{open:f,setOpen:C}),e.jsx(io,{}),e.jsx(eo,{onItemClick:F}),e.jsx(Ie,{}),e.jsx(De,{open:a,setOpen:l}),e.jsx(uo,{open:i,setOpen:r,onNavigate:L}),e.jsx(go,{open:c,setOpen:p,onNavigate:L}),e.jsx(be,{openWith:u,setOpen:I=>S(I?"annotations":void 0),onNavigate:L}),e.jsx(t.Presence,{present:o||P,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"slow",overflow:"hidden",children:e.jsx(_e,{})}),e.jsx(ye,{})]})};b.BOOKMARK_AREA_DATA_ATTRIBUTE=K,b.ReactReader=fo,b.ReactReaderProvider=le,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=index.umd.cjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prose-reader/react-reader",
3
3
  "private": false,
4
- "version": "1.248.0",
4
+ "version": "1.249.0",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
@@ -54,5 +54,5 @@
54
54
  "optional": true
55
55
  }
56
56
  },
57
- "gitHead": "a1696223e15a09e733433dc84c864caca5c71d6d"
57
+ "gitHead": "1f3c4ee10fda96813c99beede9f3acae2479f262"
58
58
  }