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