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