@prose-reader/react-reader 1.190.0 → 1.192.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
@@ -285,7 +285,7 @@ const Y = k.ActionTrigger, T = () => {
285
285
  ] })
286
286
  }
287
287
  )
288
- ), en = "@prose-reader/react-reader", nn = "1.189.0", tn = f(
288
+ ), en = "@prose-reader/react-reader", nn = "1.191.0", tn = f(
289
289
  ({
290
290
  open: n,
291
291
  setOpen: t
@@ -1,2 +1,2 @@
1
- (function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("reactjrx"),require("rxjs"),require("@chakra-ui/react"),require("react-icons/lu"),require("react-dom"),require("react-icons/bs"),require("react-icons/rx"),require("react-icons/hi"),require("rc-slider"),require("rc-slider/assets/index.css"),require("react-icons/io"),require("react-icons/md")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","reactjrx","rxjs","@chakra-ui/react","react-icons/lu","react-dom","react-icons/bs","react-icons/rx","react-icons/hi","rc-slider","rc-slider/assets/index.css","react-icons/io","react-icons/md"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b["prose-react-reader"]={},b.jsxRuntime,b.React,b.reactjrx,b.rxjs,b.react,b.lu,b.reactDom,b.bs,b.rx,b.hi,b.RcSlider,null,b.io,b.md))})(this,function(b,e,d,f,T,s,k,X,N,m,J,Z,Le,V,Y){"use strict";function j(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const t in o)if(t!=="default"){const l=Object.getOwnPropertyDescriptor(o,t);Object.defineProperty(n,t,l.get?l:{enumerable:!0,get:()=>o[t]})}}return n.default=o,Object.freeze(n)}const y=j(d),$=d.createContext({reader:void 0,quickMenuSignal:f.signal({default:!1})}),R=d.memo(({children:o,reader:n,quickMenuOpen:t,onQuickMenuOpenChange:l})=>{const[,i]=f.useSignal({default:t}),r=f.useLiveRef(l),c=d.useMemo(()=>({quickMenuSignal:i,reader:n}),[i,n]);return d.useEffect(()=>{i.setValue(t)},[t,i]),f.useSubscribe(()=>i.subject.pipe(T.tap(r.current)),[i,r]),e.jsx($.Provider,{value:c,children:o})}),ee=y.forwardRef(function(n,t){return e.jsx(s.IconButton,{variant:"ghost","aria-label":"Close",ref:t,...n,children:n.children??e.jsx(k.LuX,{})})}),D=y.forwardRef(function(n,t){const{children:l,portalled:i=!0,portalRef:r,backdrop:c=!0,...g}=n;return e.jsxs(s.Portal,{disabled:!i,container:r,children:[c&&e.jsx(s.Dialog.Backdrop,{}),e.jsx(s.Dialog.Positioner,{children:e.jsx(s.Dialog.Content,{ref:t,...g,asChild:!1,children:l})})]})}),B=y.forwardRef(function(n,t){return e.jsx(s.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...n,asChild:!0,children:e.jsx(ee,{size:"sm",ref:t,children:n.children})})}),z=s.Dialog.Root,A=s.Dialog.Footer,E=s.Dialog.Header,L=s.Dialog.Body;s.Dialog.Backdrop;const M=s.Dialog.Title;s.Dialog.Description,s.Dialog.Trigger;const _=s.Dialog.ActionTrigger,I=()=>{const{reader:o}=d.useContext($);return o},U=o=>!!o&&"__PROSE_READER_ENHANCER_SEARCH"in o,H=o=>!!o&&"__PROSE_READER_ENHANCER_BOOKMARKS"in o,Q=o=>!!o&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in o,oe=d.memo(({onNavigate:o})=>{const n=I(),t=Q(n)?n:void 0,l=f.useObserve(()=>t==null?void 0:t.annotations.highlights$.pipe(T.switchMap(r=>t.pagination.locate(r))),[t]),i=(r,c)=>{var g;return e.jsx(s.List.Item,{children:e.jsxs(s.Link,{href:"#",onClick:()=>{o(),n==null||n.navigation.goToCfi(r.cfi??"")},children:[(r.contents??[])[0]?e.jsx(s.List.Indicator,{asChild:!0,children:e.jsx(k.LuNotebookPen,{})}):e.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuNotebookPen,{})}),e.jsxs(s.Stack,{gap:0,children:[e.jsx(s.Text,{lineClamp:2,fontSize:"md",children:r.selectionAsText?r.selectionAsText??"":e.jsx("i",{children:e.jsx("b",{children:"unknown (not loaded)"})})}),e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${((g=r.meta)==null?void 0:g.absolutePageIndex)!==void 0?r.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})},c)};return e.jsx(s.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:l==null?void 0:l.map((r,c)=>i(r,c))})}),ne=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{height:"100%",children:[e.jsx(E,{children:e.jsx(M,{children:"Annotations"})}),e.jsx(L,{flex:1,children:e.jsx(oe,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),se=d.memo(()=>{const o=I(),n=H(o)?o:void 0,t=f.useObserve(()=>o==null?void 0:o.spine.element$,[o]),l=f.useObserve(()=>n==null?void 0:n.bookmarks.pages$,[n]),i=f.useObserve(()=>n==null?void 0:n.bookmarks.bookmarks$,[n]),r=f.useObserve(()=>o==null?void 0:o.pagination.locate(i??[]),[o,i]);return t?e.jsx(e.Fragment,{children:X.createPortal(l==null?void 0:l.map(({isBookmarkable:c,absolutePosition:{left:g,top:p,width:a}},u)=>{const h=r==null?void 0:r.find(x=>{var v;return((v=x.meta)==null?void 0:v.absolutePageIndex)===u});return c?e.jsx(s.Presence,{present:!0,lazyMount:!0,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(s.Box,{"data-bookmark-area":!0,position:"absolute",left:g+a,transform:"translateX(-100%)",top:p,p:2,children:h?e.jsx(s.IconButton,{"aria-label":"bookmark",opacity:.5,_hover:{opacity:1},onClick:()=>{h&&(n==null||n.bookmarks.delete(h==null?void 0:h.id))},size:"lg",variant:"ghost",_icon:{boxSize:"36px"},children:e.jsx(N.BsBookmarkXFill,{})}):e.jsx(s.IconButton,{"aria-label":"bookmark",onClick:()=>{n==null||n.bookmarks.bookmark(u)},size:"lg",bgColor:"white",opacity:.5,_hover:{opacity:1},variant:"ghost",_icon:{boxSize:"36px"},children:e.jsx(N.BsBookmarkPlus,{})})})},u):null}),t)}):null}),te=d.memo(({onNavigate:o})=>{const n=I(),t=H(n)?n:void 0,l=f.useObserve(()=>t==null?void 0:t.bookmarks.bookmarks$.pipe(T.switchMap(r=>t.pagination.locate(r))),[t]),i=(r,c)=>{var g,p,a,u,h;return e.jsxs(s.List.Item,{justifyContent:"space-between",alignItems:"center",children:[e.jsx(s.Link,{href:"#",onClick:()=>{o(),n==null||n.navigation.goToCfi(r.cfi??"")},children:e.jsxs(s.Stack,{gap:0,children:[e.jsx(s.Text,{fontSize:"md",children:`Book page: ${((g=r.meta)==null?void 0:g.absolutePageIndex)!==void 0?r.meta.absolutePageIndex+1:"unknown"}`}),e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",truncate:!0,lineClamp:2,children:(a=(p=r.meta)==null?void 0:p.startNode)!=null&&a.textContent?(h=(u=r.meta)==null?void 0:u.startNode)==null?void 0:h.textContent:"..."})]})}),e.jsx(s.Button,{colorPalette:"red",variant:"solid",size:"xs",onClick:()=>{t==null||t.bookmarks.delete(r.id)},children:"Delete"})]},c)};return e.jsx(s.List.Root,{overflowY:"auto",gap:3,variant:"plain",overflow:"auto",children:l==null?void 0:l.map((r,c)=>i(r,c))})}),le=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{height:"100%",children:[e.jsx(E,{children:e.jsx(M,{children:"Bookmarks"})}),e.jsx(L,{children:e.jsx(te,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),re="@prose-reader/react-reader",ie="1.189.0",ae=d.memo(({open:o,setOpen:n})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:t=>n(t.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{children:[e.jsx(E,{children:e.jsx(M,{children:"Help"})}),e.jsxs(L,{overflowY:"auto",flex:1,children:[e.jsx(s.Heading,{mb:2,as:"h3",size:"lg",children:"Shortcuts"}),e.jsxs(s.HStack,{mb:1,children:[e.jsx(s.Kbd,{children:e.jsx(k.LuArrowBigRight,{})})," ",e.jsx(s.Text,{children:"Navigate to right page"})]}),e.jsxs(s.HStack,{mb:1,children:[e.jsx(s.Kbd,{children:e.jsx(k.LuArrowBigLeft,{})})," ",e.jsx(s.Text,{children:"Navigate to left page"})]}),e.jsx(s.Heading,{mb:2,mt:4,as:"h3",size:"lg",children:"About"}),e.jsxs(s.Text,{children:[re," version: ",ie]})]}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),w=()=>{const o=I();return f.useObserve(()=>o?T.combineLatest([o.pagination.state$,o.context.state$]).pipe(T.map(([n,t])=>{var i;const l=(i=t.manifest)==null?void 0:i.spineItems.every(r=>{var c;return(c=r.mediaType)==null?void 0:c.startsWith("image/")});return{...n,hasChapters:!t.isFullyPrePaginated&&!l}})):T.NEVER,[o])},ce=()=>{const o=w(),n=Math.floor(((o==null?void 0:o.percentageEstimateOfBook)??0)*100),t=n>0?n:1;return(o==null?void 0:o.percentageEstimateOfBook)===void 0?null:e.jsx(s.Box,{position:"absolute",right:0,bottom:0,p:2,color:"black",children:e.jsxs(s.Text,{fontSize:"sm",children:[t," %"]})})},de=()=>{const[o,n]=d.useState(new Date);return d.useEffect(()=>{const t=setInterval(()=>{n(new Date)},6e4);return()=>clearInterval(t)},[]),o},he=o=>{const n=de();return e.jsx(s.Text,{fontSize:"xs",...o,children:n.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},q=()=>{const{quickMenuSignal:o}=d.useContext($);return[f.useSignalValue(o),o.setValue,o]},ge=()=>{const[o]=q();return e.jsx(s.Box,{position:"absolute",left:0,bottom:0,p:2,color:o?void 0:"colorPalette.contrast",children:e.jsx(he,{})})},pe=y.forwardRef(function(n,t){const{showArrow:l,children:i,portalled:r=!0,content:c,portalRef:g,...p}=n;return e.jsxs(s.Popover.Root,{...p,positioning:{...p.positioning,gutter:4},children:[e.jsx(s.Popover.Trigger,{asChild:!0,children:i}),e.jsx(s.Portal,{disabled:!r,container:g,children:e.jsx(s.Popover.Positioner,{children:e.jsxs(s.Popover.Content,{width:"auto",px:"2",py:"1",textStyle:"xs",rounded:"sm",ref:t,children:[l&&e.jsx(s.Popover.Arrow,{children:e.jsx(s.Popover.ArrowTip,{})}),c]})})})]})}),fe=y.forwardRef(function(n,t){const{children:l,...i}=n;return e.jsx(pe,{content:l,...i,ref:t,children:e.jsx(s.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:e.jsx(J.HiOutlineInformationCircle,{})})})}),ue=y.forwardRef(function(n,t){return e.jsx(s.Progress.Track,{...n,ref:t,children:e.jsx(s.Progress.Range,{})})});y.forwardRef(function(n,t){const{children:l,info:i,...r}=n;return e.jsxs(s.Progress.Label,{...r,ref:t,children:[l,i&&e.jsx(fe,{children:i})]})});const be=s.Progress.Root,xe=s.Progress.ValueText,F=()=>{const o=w(),n=(o==null?void 0:o.numberOfTotalPages)===1,t=((o==null?void 0:o.beginNumberOfPagesInSpineItem)??0)>1,l=((o==null?void 0:o.endNumberOfPagesInSpineItem)??0)>1,i=(o!=null&&o.hasChapters?o==null?void 0:o.beginPageIndexInSpineItem:o==null?void 0:o.beginAbsolutePageIndex)??0,r=(o!=null&&o.hasChapters?o==null?void 0:o.endPageIndexInSpineItem:o==null?void 0:o.endAbsolutePageIndex)??0,[c=0,g=0]=[i,r].sort((u,h)=>u-h),p=(o==null?void 0:o.beginPageIndexInSpineItem)!==(o==null?void 0:o.endPageIndexInSpineItem)||(o==null?void 0:o.beginSpineItemIndex)!==(o==null?void 0:o.endSpineItemIndex),a=o!=null&&o.hasChapters?o==null?void 0:o.beginNumberOfPagesInSpineItem:o==null?void 0:o.numberOfTotalPages;return{hasOnlyOnePage:n,beginPageIndex:i,endPageIndex:r,isBeginWithinChapter:t,isEndWithinChapter:l,beginAndEndAreDifferent:p,totalApproximatePages:a,leftPageIndex:c,rightPageIndex:g}},ve=()=>{const o=w(),{hasOnlyOnePage:n,leftPageIndex:t,rightPageIndex:l,totalApproximatePages:i,beginAndEndAreDifferent:r}=F(),c=Math.round(((o==null?void 0:o.percentageEstimateOfBook)??0)*100),g=a=>a!=null&&a.subChapter?`${a.title} / ${g(a.subChapter)}`:(a==null?void 0:a.title)||"",p=g(o==null?void 0:o.beginChapterInfo);return e.jsxs(s.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[e.jsx(be,{value:c,size:"xs",width:150,children:e.jsxs(s.HStack,{justifyContent:"space-between",children:[e.jsx(ue,{width:110}),e.jsx(xe,{children:`${c}%`})]})}),e.jsx(s.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:p?`Chapter: ${p}`:" "}),!n&&e.jsxs(s.HStack,{children:[e.jsx(s.Text,{fontSize:"xs",children:r?`${t+1} - ${l+1} of ${i}`:`${t+1} of ${i}`}),!!(o!=null&&o.hasChapters)&&e.jsxs(e.Fragment,{children:[e.jsx(s.Text,{children:"-"}),e.jsxs(s.Text,{fontSize:"xs",children:["(",((o==null?void 0:o.beginAbsolutePageIndex)??0)+1,")"]})]})]})]})},G=d.memo(({children:o,position:n,...t})=>e.jsx(s.Presence,{display:"flex",flexDirection:"row",width:"100%",position:"absolute",...n==="bottom"?{bottom:0}:{top:0},animationName:n==="bottom"?{_open:"slide-from-bottom, fade-in",_closed:"slide-to-bottom, fade-out"}:{_open:"slide-from-top, fade-in",_closed:"slide-to-top, fade-out"},animationDuration:"moderate",bgColor:"bg.panel",alignItems:"center",justifyContent:"center",shadow:"md",p:4,...t,children:o})),Ce=s.chakra(Z),ke=d.memo(o=>e.jsx(s.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:e.jsx(Ce,{keyboard:!1,style:{padding:0},css:{"& > .rc-slider-handle:focus-visible":{boxShadow:"0 0 0 2px var(--color-solid) !important"},"& > .rc-slider-handle:active":{boxShadow:"0 0 5px var(--color-solid) !important"},"& > .rc-slider-handle.rc-slider-handle-dragging":{boxShadow:"0 0 0 3px var(--color-solid) !important"}},styles:{rail:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--bg-emphasized)"},track:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--color-solid)"},handle:{width:"24px",height:"24px",top:"50%",borderColor:"var(--color-solid)",transform:`translate(${o.reverse?"50%":"-50%"}, -50%)`,backgroundColor:"var(--bg)",marginTop:"0px"}},...o})})),Se=()=>{const o=w(),n=o==null?void 0:o.isUsingSpread,{beginPageIndex:t,totalApproximatePages:l=0}=F(),i=n?Math.floor((t||0)/2):t,[r,c]=f.useSignal({default:i||0}),g=0,p=Math.max(0,n?Math.floor((l-1)/2):l-1);return d.useEffect(()=>{c.setValue(i||0)},[i,c]),{value:r,valueSignal:c,min:g,max:p}},Ie=o=>{const n=I(),t=w(),{manifest:l}=f.useObserve(()=>n==null?void 0:n.context.state$,[])??{},i=(l==null?void 0:l.readingDirection)==="rtl",r=t==null?void 0:t.isUsingSpread,{totalApproximatePages:c=0,isBeginWithinChapter:g}=F(),p=1,a=g,{value:u,valueSignal:h,min:x,max:v}=Se(),P=d.useCallback(C=>{const[O=0]=Array.isArray(C)?C:[C];h.setValue(O);const S=r?Math.floor(O)*2:Math.floor(O);a?n==null||n.navigation.goToPageOfSpineItem({pageIndex:S,spineItemId:n.pagination.getState().beginSpineItemIndex??0,animation:!1}):n==null||n.navigation.goToAbsolutePageIndex({absolutePageIndex:S,animation:!1})},[n,r,h,a]);return f.useSubscribe(()=>n==null?void 0:n.navigation.throttleLock({duration:100,trigger:h.subject}),[n,h]),c===1||r&&c===2?null:e.jsx(ke,{value:[u],max:v,min:x,reverse:i,step:p,onChange:P,...o})},Pe=d.memo(({open:o,onItemClick:n})=>{const t=I(),l=f.useObserve(()=>t==null?void 0:t.navigation.state$,[t]),i=f.useObserve(()=>t==null?void 0:t.settings.values$,[t]),r=(i==null?void 0:i.computedPageTurnDirection)==="vertical",[c,g]=d.useState(!0);return e.jsx(G,{present:o,position:"bottom",children:e.jsxs(s.Stack,{flex:1,overflow:"auto",children:[e.jsxs(s.HStack,{flex:1,alignItems:"center",justifyContent:"center",children:[e.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>t==null?void 0:t.navigation.goToLeftOrTopSpineItem(),disabled:!(l!=null&&l.canGoLeftSpineItem)&&!(l!=null&&l.canGoTopSpineItem),children:r?e.jsx(m.RxDoubleArrowUp,{}):e.jsx(m.RxDoubleArrowLeft,{})}),e.jsxs(s.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[e.jsx(ve,{}),e.jsx(Ie,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!(l!=null&&l.canGoRightSpineItem)&&!(l!=null&&l.canGoBottomSpineItem),onClick:()=>{t==null||t.navigation.goToRightOrBottomSpineItem()},children:r?e.jsx(m.RxDoubleArrowDown,{}):e.jsx(m.RxDoubleArrowRight,{})})]}),e.jsx(s.HStack,{alignItems:"center",justifyContent:"center",children:e.jsxs(s.Collapsible.Root,{open:c,flex:1,onOpenChange:({open:p})=>{g(p)},children:[e.jsx(s.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:e.jsx(k.LuChevronDown,{style:{transform:c?"rotate(0deg)":"rotate(180deg)"}})}),e.jsxs(s.Collapsible.Content,{display:"flex",justifyContent:"center",children:[e.jsx(s.IconButton,{"aria-label":"Help",size:"lg",variant:"ghost",onClick:()=>n("help"),children:e.jsx(k.LuCircleHelp,{})}),e.jsx(s.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>n("toc"),children:e.jsx(k.LuTableOfContents,{})}),U(t)&&e.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("search"),children:e.jsx(k.LuSearch,{})}),H(t)&&e.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("bookmarks"),children:e.jsx(N.BsBookmarks,{})}),Q(t)&&e.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("annotations"),children:e.jsx(k.LuNotebookPen,{})})]})]})})]})})}),Te=()=>{const[o,n]=d.useState(!1),t=d.useCallback(()=>document.fullscreenElement?document.exitFullscreen().catch(console.error).then(()=>{n(!1)}):document.documentElement.requestFullscreen({navigationUI:"hide"}).catch(console.error).then(()=>{n(!0)}),[]);return d.useEffect(()=>{function l(){n(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",l),()=>{document.removeEventListener("fullscreenchange",l)}},[]),{isFullscreen:o,onToggleFullscreenClick:t}},Oe=d.memo(({open:o,onItemClick:n})=>{const t=I(),l=f.useObserve(()=>t==null?void 0:t.context.manifest$,[t]),{isFullscreen:i,onToggleFullscreenClick:r}=Te();return e.jsxs(G,{present:o,position:"top",height:"80px",justifyContent:"space-between",children:[e.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>n("back"),children:e.jsx(V.IoIosArrowBack,{})}),e.jsx(s.Stack,{flex:1,maxW:600,gap:1,alignItems:"center",overflow:"auto",px:4,children:e.jsx(s.Text,{truncate:!0,maxWidth:"100%",children:l==null?void 0:l.title})}),e.jsxs(s.HStack,{children:[e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>n("more"),children:e.jsx(V.IoMdMore,{})}),e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:r,children:i?e.jsx(Y.MdFullscreenExit,{}):e.jsx(Y.MdFullscreen,{})})]})]})}),ye=d.memo(({onItemClick:o})=>{const[n]=q();return e.jsxs(e.Fragment,{children:[e.jsx(Oe,{open:n,onItemClick:o}),e.jsx(Pe,{open:n,onItemClick:o})]})}),we=d.memo(({contextText:o="",startOffset:n=0,text:t,cfi:l="#",onClick:i,absolutePageIndex:r})=>{const g=o.substring(Math.max(n-15,0),Math.max(n,0)),p=o.substring(Math.min(n+t.length,o.length-1),Math.min(n+t.length+15,o.length-1));return e.jsxs(s.Link,{href:l,style:{margin:5,overflow:"hidden"},onClick:a=>{a.preventDefault(),i(l)},display:"flex",flexDirection:"column",alignItems:"flex-start",gap:0,children:[e.jsxs(s.Text,{lineClamp:1,as:"cite",style:{display:"block"},children:['"',g,e.jsx("b",{children:t}),p,'"']}),e.jsx(s.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${r!==void 0?r+1:"unknown (not loaded)"}`})]})}),De=d.memo(({onNavigate:o})=>{const[n,t]=d.useState(""),l=I(),i=U(l)?l:void 0,r=h=>{t(h.target.value)},c=d.useCallback(h=>{o(),l==null||l.navigation.goToCfi(h)},[l,o]),g=f.useObserve(()=>i==null?void 0:i.search.search(n).pipe(T.map(h=>({type:"end",data:h})),T.startWith({type:"start"})),[l,n]),p=(g==null?void 0:g.type)==="start",a=(g==null?void 0:g.type)==="end"?g.data:[],u=f.useObserve(()=>l==null?void 0:l.pagination.locate(a.slice(0,100)),[a]);return e.jsxs(s.Stack,{flex:1,height:"100%",children:[e.jsx(s.Box,{px:4,children:e.jsx(s.Input,{placeholder:"Type something...",value:n,onChange:r,borderRadius:0})}),e.jsxs(s.Box,{px:4,pb:4,mt:2,flex:1,style:{overflow:"hidden",overflowY:"auto"},children:[p&&e.jsx(s.Text,{children:"Searching ..."}),!p&&a.length===0&&e.jsx("p",{children:"There are no results"}),!p&&a.length>=0&&e.jsxs(s.Stack,{children:[e.jsxs(s.Heading,{as:"h2",size:"md",children:[a.length," result(s)"]}),e.jsx(s.Stack,{gap:0,children:u==null?void 0:u.map((h,x)=>{var v,P,C,O,S,K,W;return e.jsx(we,{contextText:((C=(P=(v=h.meta)==null?void 0:v.range)==null?void 0:P.startContainer.parentElement)==null?void 0:C.textContent)??"",pageIndex:(O=h.meta)==null?void 0:O.itemPageIndex,startOffset:((K=(S=h.meta)==null?void 0:S.range)==null?void 0:K.startOffset)??0,text:n,cfi:h.cfi,onClick:c,absolutePageIndex:(W=h.meta)==null?void 0:W.absolutePageIndex},x)})})]})]})]})}),Be=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{height:"100%",children:[e.jsx(E,{children:e.jsx(M,{children:"Search"})}),e.jsx(L,{flex:1,children:e.jsx(De,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),ze=d.memo(({onNavigate:o})=>{const n=I(),{manifest:t,assumedRenditionLayout:l}=f.useObserve(()=>n==null?void 0:n.context.state$,[n])??{},{nav:i}=t??{},r=w();i!=null&&i.toc;const{beginSpineItemIndex:c,beginPageIndexInSpineItem:g}=r??{},p=(l==="reflowable"?g:c)||0;console.log({assumedRenditionLayout:l,currentSpineItemOrChapterPageIndex:p});let a=r==null?void 0:r.beginChapterInfo;for(;a!=null&&a.subChapter;)a=a==null?void 0:a.subChapter;const u=(h,x,v)=>e.jsxs(d.Fragment,{children:[e.jsx(s.List.Item,{pl:4*(v+1),style:{display:"flex",alignItems:"center"},children:e.jsxs(s.Link,{onClick:()=>{o(),n==null||n.navigation.goToUrl(h.href)},href:"#",children:[(a==null?void 0:a.path)===h.path&&e.jsx(s.List.Indicator,{asChild:!0,children:e.jsx(k.LuCircleCheck,{})}),(a==null?void 0:a.path)!==h.path&&e.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuCircleCheck,{})}),e.jsxs(s.Stack,{gap:0,children:[e.jsx(s.Text,{fontSize:"md",children:h.title||h.path}),(a==null?void 0:a.path)===h.path&&e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Currently on page ${p+1}`})]})]})}),h.contents.length>0&&e.jsx(s.List.Root,{as:"div",gap:2,children:h.contents.map((P,C)=>u(P,C,v+1))})]},x);return e.jsx(s.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:i==null?void 0:i.toc.map((h,x)=>u(h,x,0))})}),Ae=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{children:[e.jsx(E,{children:e.jsx(M,{children:"Table of Contents"})}),e.jsx(L,{overflowY:"auto",flex:1,children:e.jsx(ze,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),Ee=({enableFloatingTime:o=!0,enableFloatingProgress:n=!0,onItemClick:t})=>{const[l,i]=d.useState(!1),[r,c]=d.useState(!1),[g,p]=d.useState(!1),[a,u]=d.useState(!1),[h,x]=d.useState(!1),[v,P]=q(),C=d.useCallback(()=>{i(!1),c(!1),p(!1),u(!1),x(!1),P(!1)},[P]),O=d.useCallback(S=>{S==="annotations"?u(!0):S==="search"?p(!0):S==="help"?c(!0):S==="toc"?i(!0):S==="bookmarks"&&x(!0),t==null||t(S)},[t]);return e.jsxs(e.Fragment,{children:[n&&e.jsx(s.Presence,{present:!v,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(ce,{})}),e.jsx(ye,{onItemClick:O}),e.jsx(se,{}),e.jsx(ae,{open:r,setOpen:c}),e.jsx(Ae,{open:l,setOpen:i,onNavigate:C}),e.jsx(Be,{open:g,setOpen:p,onNavigate:C}),e.jsx(ne,{open:a,setOpen:u,onNavigate:C}),e.jsx(le,{open:h,setOpen:x,onNavigate:C}),e.jsx(s.Presence,{present:o||v,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"slow",overflow:"hidden",children:e.jsx(ge,{})})]})};b.ReactReader=Ee,b.ReactReaderProvider=R,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
1
+ (function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react/jsx-runtime"),require("react"),require("reactjrx"),require("rxjs"),require("@chakra-ui/react"),require("react-icons/lu"),require("react-dom"),require("react-icons/bs"),require("react-icons/rx"),require("react-icons/hi"),require("rc-slider"),require("rc-slider/assets/index.css"),require("react-icons/io"),require("react-icons/md")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","reactjrx","rxjs","@chakra-ui/react","react-icons/lu","react-dom","react-icons/bs","react-icons/rx","react-icons/hi","rc-slider","rc-slider/assets/index.css","react-icons/io","react-icons/md"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b["prose-react-reader"]={},b.jsxRuntime,b.React,b.reactjrx,b.rxjs,b.react,b.lu,b.reactDom,b.bs,b.rx,b.hi,b.RcSlider,null,b.io,b.md))})(this,function(b,e,d,f,T,s,k,X,N,m,J,Z,Le,V,Y){"use strict";function j(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const t in o)if(t!=="default"){const l=Object.getOwnPropertyDescriptor(o,t);Object.defineProperty(n,t,l.get?l:{enumerable:!0,get:()=>o[t]})}}return n.default=o,Object.freeze(n)}const y=j(d),$=d.createContext({reader:void 0,quickMenuSignal:f.signal({default:!1})}),R=d.memo(({children:o,reader:n,quickMenuOpen:t,onQuickMenuOpenChange:l})=>{const[,i]=f.useSignal({default:t}),r=f.useLiveRef(l),c=d.useMemo(()=>({quickMenuSignal:i,reader:n}),[i,n]);return d.useEffect(()=>{i.setValue(t)},[t,i]),f.useSubscribe(()=>i.subject.pipe(T.tap(r.current)),[i,r]),e.jsx($.Provider,{value:c,children:o})}),ee=y.forwardRef(function(n,t){return e.jsx(s.IconButton,{variant:"ghost","aria-label":"Close",ref:t,...n,children:n.children??e.jsx(k.LuX,{})})}),D=y.forwardRef(function(n,t){const{children:l,portalled:i=!0,portalRef:r,backdrop:c=!0,...g}=n;return e.jsxs(s.Portal,{disabled:!i,container:r,children:[c&&e.jsx(s.Dialog.Backdrop,{}),e.jsx(s.Dialog.Positioner,{children:e.jsx(s.Dialog.Content,{ref:t,...g,asChild:!1,children:l})})]})}),B=y.forwardRef(function(n,t){return e.jsx(s.Dialog.CloseTrigger,{position:"absolute",top:"2",insetEnd:"2",...n,asChild:!0,children:e.jsx(ee,{size:"sm",ref:t,children:n.children})})}),z=s.Dialog.Root,A=s.Dialog.Footer,E=s.Dialog.Header,L=s.Dialog.Body;s.Dialog.Backdrop;const M=s.Dialog.Title;s.Dialog.Description,s.Dialog.Trigger;const _=s.Dialog.ActionTrigger,I=()=>{const{reader:o}=d.useContext($);return o},U=o=>!!o&&"__PROSE_READER_ENHANCER_SEARCH"in o,H=o=>!!o&&"__PROSE_READER_ENHANCER_BOOKMARKS"in o,Q=o=>!!o&&"__PROSE_READER_ENHANCER_ANNOTATIONS"in o,oe=d.memo(({onNavigate:o})=>{const n=I(),t=Q(n)?n:void 0,l=f.useObserve(()=>t==null?void 0:t.annotations.highlights$.pipe(T.switchMap(r=>t.pagination.locate(r))),[t]),i=(r,c)=>{var g;return e.jsx(s.List.Item,{children:e.jsxs(s.Link,{href:"#",onClick:()=>{o(),n==null||n.navigation.goToCfi(r.cfi??"")},children:[(r.contents??[])[0]?e.jsx(s.List.Indicator,{asChild:!0,children:e.jsx(k.LuNotebookPen,{})}):e.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuNotebookPen,{})}),e.jsxs(s.Stack,{gap:0,children:[e.jsx(s.Text,{lineClamp:2,fontSize:"md",children:r.selectionAsText?r.selectionAsText??"":e.jsx("i",{children:e.jsx("b",{children:"unknown (not loaded)"})})}),e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Book page: ${((g=r.meta)==null?void 0:g.absolutePageIndex)!==void 0?r.meta.absolutePageIndex+1:"unknown (not loaded)"}`})]})]})},c)};return e.jsx(s.List.Root,{overflowY:"auto",gap:3,pt:4,variant:"plain",children:l==null?void 0:l.map((r,c)=>i(r,c))})}),ne=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{height:"100%",children:[e.jsx(E,{children:e.jsx(M,{children:"Annotations"})}),e.jsx(L,{flex:1,children:e.jsx(oe,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),se=d.memo(()=>{const o=I(),n=H(o)?o:void 0,t=f.useObserve(()=>o==null?void 0:o.spine.element$,[o]),l=f.useObserve(()=>n==null?void 0:n.bookmarks.pages$,[n]),i=f.useObserve(()=>n==null?void 0:n.bookmarks.bookmarks$,[n]),r=f.useObserve(()=>o==null?void 0:o.pagination.locate(i??[]),[o,i]);return t?e.jsx(e.Fragment,{children:X.createPortal(l==null?void 0:l.map(({isBookmarkable:c,absolutePosition:{left:g,top:p,width:a}},u)=>{const h=r==null?void 0:r.find(x=>{var v;return((v=x.meta)==null?void 0:v.absolutePageIndex)===u});return c?e.jsx(s.Presence,{present:!0,lazyMount:!0,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(s.Box,{"data-bookmark-area":!0,position:"absolute",left:g+a,transform:"translateX(-100%)",top:p,p:2,children:h?e.jsx(s.IconButton,{"aria-label":"bookmark",opacity:.5,_hover:{opacity:1},onClick:()=>{h&&(n==null||n.bookmarks.delete(h==null?void 0:h.id))},size:"lg",variant:"ghost",_icon:{boxSize:"36px"},children:e.jsx(N.BsBookmarkXFill,{})}):e.jsx(s.IconButton,{"aria-label":"bookmark",onClick:()=>{n==null||n.bookmarks.bookmark(u)},size:"lg",bgColor:"white",opacity:.5,_hover:{opacity:1},variant:"ghost",_icon:{boxSize:"36px"},children:e.jsx(N.BsBookmarkPlus,{})})})},u):null}),t)}):null}),te=d.memo(({onNavigate:o})=>{const n=I(),t=H(n)?n:void 0,l=f.useObserve(()=>t==null?void 0:t.bookmarks.bookmarks$.pipe(T.switchMap(r=>t.pagination.locate(r))),[t]),i=(r,c)=>{var g,p,a,u,h;return e.jsxs(s.List.Item,{justifyContent:"space-between",alignItems:"center",children:[e.jsx(s.Link,{href:"#",onClick:()=>{o(),n==null||n.navigation.goToCfi(r.cfi??"")},children:e.jsxs(s.Stack,{gap:0,children:[e.jsx(s.Text,{fontSize:"md",children:`Book page: ${((g=r.meta)==null?void 0:g.absolutePageIndex)!==void 0?r.meta.absolutePageIndex+1:"unknown"}`}),e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",truncate:!0,lineClamp:2,children:(a=(p=r.meta)==null?void 0:p.startNode)!=null&&a.textContent?(h=(u=r.meta)==null?void 0:u.startNode)==null?void 0:h.textContent:"..."})]})}),e.jsx(s.Button,{colorPalette:"red",variant:"solid",size:"xs",onClick:()=>{t==null||t.bookmarks.delete(r.id)},children:"Delete"})]},c)};return e.jsx(s.List.Root,{overflowY:"auto",gap:3,variant:"plain",overflow:"auto",children:l==null?void 0:l.map((r,c)=>i(r,c))})}),le=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{height:"100%",children:[e.jsx(E,{children:e.jsx(M,{children:"Bookmarks"})}),e.jsx(L,{children:e.jsx(te,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),re="@prose-reader/react-reader",ie="1.191.0",ae=d.memo(({open:o,setOpen:n})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:t=>n(t.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{children:[e.jsx(E,{children:e.jsx(M,{children:"Help"})}),e.jsxs(L,{overflowY:"auto",flex:1,children:[e.jsx(s.Heading,{mb:2,as:"h3",size:"lg",children:"Shortcuts"}),e.jsxs(s.HStack,{mb:1,children:[e.jsx(s.Kbd,{children:e.jsx(k.LuArrowBigRight,{})})," ",e.jsx(s.Text,{children:"Navigate to right page"})]}),e.jsxs(s.HStack,{mb:1,children:[e.jsx(s.Kbd,{children:e.jsx(k.LuArrowBigLeft,{})})," ",e.jsx(s.Text,{children:"Navigate to left page"})]}),e.jsx(s.Heading,{mb:2,mt:4,as:"h3",size:"lg",children:"About"}),e.jsxs(s.Text,{children:[re," version: ",ie]})]}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),w=()=>{const o=I();return f.useObserve(()=>o?T.combineLatest([o.pagination.state$,o.context.state$]).pipe(T.map(([n,t])=>{var i;const l=(i=t.manifest)==null?void 0:i.spineItems.every(r=>{var c;return(c=r.mediaType)==null?void 0:c.startsWith("image/")});return{...n,hasChapters:!t.isFullyPrePaginated&&!l}})):T.NEVER,[o])},ce=()=>{const o=w(),n=Math.floor(((o==null?void 0:o.percentageEstimateOfBook)??0)*100),t=n>0?n:1;return(o==null?void 0:o.percentageEstimateOfBook)===void 0?null:e.jsx(s.Box,{position:"absolute",right:0,bottom:0,p:2,color:"black",children:e.jsxs(s.Text,{fontSize:"sm",children:[t," %"]})})},de=()=>{const[o,n]=d.useState(new Date);return d.useEffect(()=>{const t=setInterval(()=>{n(new Date)},6e4);return()=>clearInterval(t)},[]),o},he=o=>{const n=de();return e.jsx(s.Text,{fontSize:"xs",...o,children:n.toLocaleTimeString(navigator.language,{hour:"2-digit",minute:"2-digit"})})},q=()=>{const{quickMenuSignal:o}=d.useContext($);return[f.useSignalValue(o),o.setValue,o]},ge=()=>{const[o]=q();return e.jsx(s.Box,{position:"absolute",left:0,bottom:0,p:2,color:o?void 0:"colorPalette.contrast",children:e.jsx(he,{})})},pe=y.forwardRef(function(n,t){const{showArrow:l,children:i,portalled:r=!0,content:c,portalRef:g,...p}=n;return e.jsxs(s.Popover.Root,{...p,positioning:{...p.positioning,gutter:4},children:[e.jsx(s.Popover.Trigger,{asChild:!0,children:i}),e.jsx(s.Portal,{disabled:!r,container:g,children:e.jsx(s.Popover.Positioner,{children:e.jsxs(s.Popover.Content,{width:"auto",px:"2",py:"1",textStyle:"xs",rounded:"sm",ref:t,children:[l&&e.jsx(s.Popover.Arrow,{children:e.jsx(s.Popover.ArrowTip,{})}),c]})})})]})}),fe=y.forwardRef(function(n,t){const{children:l,...i}=n;return e.jsx(pe,{content:l,...i,ref:t,children:e.jsx(s.IconButton,{variant:"ghost","aria-label":"info",size:"2xs",colorPalette:"gray",children:e.jsx(J.HiOutlineInformationCircle,{})})})}),ue=y.forwardRef(function(n,t){return e.jsx(s.Progress.Track,{...n,ref:t,children:e.jsx(s.Progress.Range,{})})});y.forwardRef(function(n,t){const{children:l,info:i,...r}=n;return e.jsxs(s.Progress.Label,{...r,ref:t,children:[l,i&&e.jsx(fe,{children:i})]})});const be=s.Progress.Root,xe=s.Progress.ValueText,F=()=>{const o=w(),n=(o==null?void 0:o.numberOfTotalPages)===1,t=((o==null?void 0:o.beginNumberOfPagesInSpineItem)??0)>1,l=((o==null?void 0:o.endNumberOfPagesInSpineItem)??0)>1,i=(o!=null&&o.hasChapters?o==null?void 0:o.beginPageIndexInSpineItem:o==null?void 0:o.beginAbsolutePageIndex)??0,r=(o!=null&&o.hasChapters?o==null?void 0:o.endPageIndexInSpineItem:o==null?void 0:o.endAbsolutePageIndex)??0,[c=0,g=0]=[i,r].sort((u,h)=>u-h),p=(o==null?void 0:o.beginPageIndexInSpineItem)!==(o==null?void 0:o.endPageIndexInSpineItem)||(o==null?void 0:o.beginSpineItemIndex)!==(o==null?void 0:o.endSpineItemIndex),a=o!=null&&o.hasChapters?o==null?void 0:o.beginNumberOfPagesInSpineItem:o==null?void 0:o.numberOfTotalPages;return{hasOnlyOnePage:n,beginPageIndex:i,endPageIndex:r,isBeginWithinChapter:t,isEndWithinChapter:l,beginAndEndAreDifferent:p,totalApproximatePages:a,leftPageIndex:c,rightPageIndex:g}},ve=()=>{const o=w(),{hasOnlyOnePage:n,leftPageIndex:t,rightPageIndex:l,totalApproximatePages:i,beginAndEndAreDifferent:r}=F(),c=Math.round(((o==null?void 0:o.percentageEstimateOfBook)??0)*100),g=a=>a!=null&&a.subChapter?`${a.title} / ${g(a.subChapter)}`:(a==null?void 0:a.title)||"",p=g(o==null?void 0:o.beginChapterInfo);return e.jsxs(s.Stack,{alignItems:"center",gap:1,maxW:"100%",overflow:"auto",children:[e.jsx(be,{value:c,size:"xs",width:150,children:e.jsxs(s.HStack,{justifyContent:"space-between",children:[e.jsx(ue,{width:110}),e.jsx(xe,{children:`${c}%`})]})}),e.jsx(s.Text,{truncate:!0,maxWidth:"100%",fontSize:"sm",mt:1,children:p?`Chapter: ${p}`:" "}),!n&&e.jsxs(s.HStack,{children:[e.jsx(s.Text,{fontSize:"xs",children:r?`${t+1} - ${l+1} of ${i}`:`${t+1} of ${i}`}),!!(o!=null&&o.hasChapters)&&e.jsxs(e.Fragment,{children:[e.jsx(s.Text,{children:"-"}),e.jsxs(s.Text,{fontSize:"xs",children:["(",((o==null?void 0:o.beginAbsolutePageIndex)??0)+1,")"]})]})]})]})},G=d.memo(({children:o,position:n,...t})=>e.jsx(s.Presence,{display:"flex",flexDirection:"row",width:"100%",position:"absolute",...n==="bottom"?{bottom:0}:{top:0},animationName:n==="bottom"?{_open:"slide-from-bottom, fade-in",_closed:"slide-to-bottom, fade-out"}:{_open:"slide-from-top, fade-in",_closed:"slide-to-top, fade-out"},animationDuration:"moderate",bgColor:"bg.panel",alignItems:"center",justifyContent:"center",shadow:"md",p:4,...t,children:o})),Ce=s.chakra(Z),ke=d.memo(o=>e.jsx(s.Box,{display:"contents",css:{"--bg":"colors.bg","--bg-emphasized":"colors.bg.emphasized","--color-solid":"colors.colorPalette.solid"},children:e.jsx(Ce,{keyboard:!1,style:{padding:0},css:{"& > .rc-slider-handle:focus-visible":{boxShadow:"0 0 0 2px var(--color-solid) !important"},"& > .rc-slider-handle:active":{boxShadow:"0 0 5px var(--color-solid) !important"},"& > .rc-slider-handle.rc-slider-handle-dragging":{boxShadow:"0 0 0 3px var(--color-solid) !important"}},styles:{rail:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--bg-emphasized)"},track:{height:"8px",top:"50%",transform:"translateY(-50%)",backgroundColor:"var(--color-solid)"},handle:{width:"24px",height:"24px",top:"50%",borderColor:"var(--color-solid)",transform:`translate(${o.reverse?"50%":"-50%"}, -50%)`,backgroundColor:"var(--bg)",marginTop:"0px"}},...o})})),Se=()=>{const o=w(),n=o==null?void 0:o.isUsingSpread,{beginPageIndex:t,totalApproximatePages:l=0}=F(),i=n?Math.floor((t||0)/2):t,[r,c]=f.useSignal({default:i||0}),g=0,p=Math.max(0,n?Math.floor((l-1)/2):l-1);return d.useEffect(()=>{c.setValue(i||0)},[i,c]),{value:r,valueSignal:c,min:g,max:p}},Ie=o=>{const n=I(),t=w(),{manifest:l}=f.useObserve(()=>n==null?void 0:n.context.state$,[])??{},i=(l==null?void 0:l.readingDirection)==="rtl",r=t==null?void 0:t.isUsingSpread,{totalApproximatePages:c=0,isBeginWithinChapter:g}=F(),p=1,a=g,{value:u,valueSignal:h,min:x,max:v}=Se(),P=d.useCallback(C=>{const[O=0]=Array.isArray(C)?C:[C];h.setValue(O);const S=r?Math.floor(O)*2:Math.floor(O);a?n==null||n.navigation.goToPageOfSpineItem({pageIndex:S,spineItemId:n.pagination.getState().beginSpineItemIndex??0,animation:!1}):n==null||n.navigation.goToAbsolutePageIndex({absolutePageIndex:S,animation:!1})},[n,r,h,a]);return f.useSubscribe(()=>n==null?void 0:n.navigation.throttleLock({duration:100,trigger:h.subject}),[n,h]),c===1||r&&c===2?null:e.jsx(ke,{value:[u],max:v,min:x,reverse:i,step:p,onChange:P,...o})},Pe=d.memo(({open:o,onItemClick:n})=>{const t=I(),l=f.useObserve(()=>t==null?void 0:t.navigation.state$,[t]),i=f.useObserve(()=>t==null?void 0:t.settings.values$,[t]),r=(i==null?void 0:i.computedPageTurnDirection)==="vertical",[c,g]=d.useState(!0);return e.jsx(G,{present:o,position:"bottom",children:e.jsxs(s.Stack,{flex:1,overflow:"auto",children:[e.jsxs(s.HStack,{flex:1,alignItems:"center",justifyContent:"center",children:[e.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>t==null?void 0:t.navigation.goToLeftOrTopSpineItem(),disabled:!(l!=null&&l.canGoLeftSpineItem)&&!(l!=null&&l.canGoTopSpineItem),children:r?e.jsx(m.RxDoubleArrowUp,{}):e.jsx(m.RxDoubleArrowLeft,{})}),e.jsxs(s.Stack,{flex:1,maxW:400,gap:2,alignItems:"center",overflow:"auto",px:4,children:[e.jsx(ve,{}),e.jsx(Ie,{style:{width:"100%",maxWidth:"300px",height:"35px"}})]}),e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",disabled:!(l!=null&&l.canGoRightSpineItem)&&!(l!=null&&l.canGoBottomSpineItem),onClick:()=>{t==null||t.navigation.goToRightOrBottomSpineItem()},children:r?e.jsx(m.RxDoubleArrowDown,{}):e.jsx(m.RxDoubleArrowRight,{})})]}),e.jsx(s.HStack,{alignItems:"center",justifyContent:"center",children:e.jsxs(s.Collapsible.Root,{open:c,flex:1,onOpenChange:({open:p})=>{g(p)},children:[e.jsx(s.Collapsible.Trigger,{paddingY:"3",width:"100%",display:"flex",justifyContent:"center",children:e.jsx(k.LuChevronDown,{style:{transform:c?"rotate(0deg)":"rotate(180deg)"}})}),e.jsxs(s.Collapsible.Content,{display:"flex",justifyContent:"center",children:[e.jsx(s.IconButton,{"aria-label":"Help",size:"lg",variant:"ghost",onClick:()=>n("help"),children:e.jsx(k.LuCircleHelp,{})}),e.jsx(s.IconButton,{"aria-label":"Table of contents",size:"lg",variant:"ghost",onClick:()=>n("toc"),children:e.jsx(k.LuTableOfContents,{})}),U(t)&&e.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("search"),children:e.jsx(k.LuSearch,{})}),H(t)&&e.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("bookmarks"),children:e.jsx(N.BsBookmarks,{})}),Q(t)&&e.jsx(s.IconButton,{"aria-label":"Search",size:"lg",variant:"ghost",onClick:()=>n("annotations"),children:e.jsx(k.LuNotebookPen,{})})]})]})})]})})}),Te=()=>{const[o,n]=d.useState(!1),t=d.useCallback(()=>document.fullscreenElement?document.exitFullscreen().catch(console.error).then(()=>{n(!1)}):document.documentElement.requestFullscreen({navigationUI:"hide"}).catch(console.error).then(()=>{n(!0)}),[]);return d.useEffect(()=>{function l(){n(!!document.fullscreenElement)}return document.addEventListener("fullscreenchange",l),()=>{document.removeEventListener("fullscreenchange",l)}},[]),{isFullscreen:o,onToggleFullscreenClick:t}},Oe=d.memo(({open:o,onItemClick:n})=>{const t=I(),l=f.useObserve(()=>t==null?void 0:t.context.manifest$,[t]),{isFullscreen:i,onToggleFullscreenClick:r}=Te();return e.jsxs(G,{present:o,position:"top",height:"80px",justifyContent:"space-between",children:[e.jsx(s.IconButton,{"aria-label":"left",size:"lg",variant:"ghost",flexShrink:0,onClick:()=>n("back"),children:e.jsx(V.IoIosArrowBack,{})}),e.jsx(s.Stack,{flex:1,maxW:600,gap:1,alignItems:"center",overflow:"auto",px:4,children:e.jsx(s.Text,{truncate:!0,maxWidth:"100%",children:l==null?void 0:l.title})}),e.jsxs(s.HStack,{children:[e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:()=>n("more"),children:e.jsx(V.IoMdMore,{})}),e.jsx(s.IconButton,{"aria-label":"right",size:"lg",flexShrink:0,variant:"ghost",onClick:r,children:i?e.jsx(Y.MdFullscreenExit,{}):e.jsx(Y.MdFullscreen,{})})]})]})}),ye=d.memo(({onItemClick:o})=>{const[n]=q();return e.jsxs(e.Fragment,{children:[e.jsx(Oe,{open:n,onItemClick:o}),e.jsx(Pe,{open:n,onItemClick:o})]})}),we=d.memo(({contextText:o="",startOffset:n=0,text:t,cfi:l="#",onClick:i,absolutePageIndex:r})=>{const g=o.substring(Math.max(n-15,0),Math.max(n,0)),p=o.substring(Math.min(n+t.length,o.length-1),Math.min(n+t.length+15,o.length-1));return e.jsxs(s.Link,{href:l,style:{margin:5,overflow:"hidden"},onClick:a=>{a.preventDefault(),i(l)},display:"flex",flexDirection:"column",alignItems:"flex-start",gap:0,children:[e.jsxs(s.Text,{lineClamp:1,as:"cite",style:{display:"block"},children:['"',g,e.jsx("b",{children:t}),p,'"']}),e.jsx(s.Text,{fontSize:"sm",color:"gray.500",style:{textDecoration:"none"},children:`Book page: ${r!==void 0?r+1:"unknown (not loaded)"}`})]})}),De=d.memo(({onNavigate:o})=>{const[n,t]=d.useState(""),l=I(),i=U(l)?l:void 0,r=h=>{t(h.target.value)},c=d.useCallback(h=>{o(),l==null||l.navigation.goToCfi(h)},[l,o]),g=f.useObserve(()=>i==null?void 0:i.search.search(n).pipe(T.map(h=>({type:"end",data:h})),T.startWith({type:"start"})),[l,n]),p=(g==null?void 0:g.type)==="start",a=(g==null?void 0:g.type)==="end"?g.data:[],u=f.useObserve(()=>l==null?void 0:l.pagination.locate(a.slice(0,100)),[a]);return e.jsxs(s.Stack,{flex:1,height:"100%",children:[e.jsx(s.Box,{px:4,children:e.jsx(s.Input,{placeholder:"Type something...",value:n,onChange:r,borderRadius:0})}),e.jsxs(s.Box,{px:4,pb:4,mt:2,flex:1,style:{overflow:"hidden",overflowY:"auto"},children:[p&&e.jsx(s.Text,{children:"Searching ..."}),!p&&a.length===0&&e.jsx("p",{children:"There are no results"}),!p&&a.length>=0&&e.jsxs(s.Stack,{children:[e.jsxs(s.Heading,{as:"h2",size:"md",children:[a.length," result(s)"]}),e.jsx(s.Stack,{gap:0,children:u==null?void 0:u.map((h,x)=>{var v,P,C,O,S,K,W;return e.jsx(we,{contextText:((C=(P=(v=h.meta)==null?void 0:v.range)==null?void 0:P.startContainer.parentElement)==null?void 0:C.textContent)??"",pageIndex:(O=h.meta)==null?void 0:O.itemPageIndex,startOffset:((K=(S=h.meta)==null?void 0:S.range)==null?void 0:K.startOffset)??0,text:n,cfi:h.cfi,onClick:c,absolutePageIndex:(W=h.meta)==null?void 0:W.absolutePageIndex},x)})})]})]})]})}),Be=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{height:"100%",children:[e.jsx(E,{children:e.jsx(M,{children:"Search"})}),e.jsx(L,{flex:1,children:e.jsx(De,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),ze=d.memo(({onNavigate:o})=>{const n=I(),{manifest:t,assumedRenditionLayout:l}=f.useObserve(()=>n==null?void 0:n.context.state$,[n])??{},{nav:i}=t??{},r=w();i!=null&&i.toc;const{beginSpineItemIndex:c,beginPageIndexInSpineItem:g}=r??{},p=(l==="reflowable"?g:c)||0;console.log({assumedRenditionLayout:l,currentSpineItemOrChapterPageIndex:p});let a=r==null?void 0:r.beginChapterInfo;for(;a!=null&&a.subChapter;)a=a==null?void 0:a.subChapter;const u=(h,x,v)=>e.jsxs(d.Fragment,{children:[e.jsx(s.List.Item,{pl:4*(v+1),style:{display:"flex",alignItems:"center"},children:e.jsxs(s.Link,{onClick:()=>{o(),n==null||n.navigation.goToUrl(h.href)},href:"#",children:[(a==null?void 0:a.path)===h.path&&e.jsx(s.List.Indicator,{asChild:!0,children:e.jsx(k.LuCircleCheck,{})}),(a==null?void 0:a.path)!==h.path&&e.jsx(s.List.Indicator,{asChild:!0,visibility:"hidden",children:e.jsx(k.LuCircleCheck,{})}),e.jsxs(s.Stack,{gap:0,children:[e.jsx(s.Text,{fontSize:"md",children:h.title||h.path}),(a==null?void 0:a.path)===h.path&&e.jsx(s.Text,{fontStyle:"italic",fontWeight:"bold",fontSize:"sm",children:`Currently on page ${p+1}`})]})]})}),h.contents.length>0&&e.jsx(s.List.Root,{as:"div",gap:2,children:h.contents.map((P,C)=>u(P,C,v+1))})]},x);return e.jsx(s.List.Root,{gap:3,overflowY:"auto",py:4,flex:1,children:i==null?void 0:i.toc.map((h,x)=>u(h,x,0))})}),Ae=d.memo(({open:o,setOpen:n,onNavigate:t})=>e.jsx(z,{lazyMount:!0,placement:"center",open:o,onOpenChange:l=>n(l.open),size:{mdDown:"full",md:"lg"},scrollBehavior:"inside",children:e.jsxs(D,{children:[e.jsx(E,{children:e.jsx(M,{children:"Table of Contents"})}),e.jsx(L,{overflowY:"auto",flex:1,children:e.jsx(ze,{onNavigate:t})}),e.jsx(A,{children:e.jsx(_,{asChild:!0,children:e.jsx(s.Button,{variant:"outline",children:"Cancel"})})}),e.jsx(B,{})]})})),Ee=({enableFloatingTime:o=!0,enableFloatingProgress:n=!0,onItemClick:t})=>{const[l,i]=d.useState(!1),[r,c]=d.useState(!1),[g,p]=d.useState(!1),[a,u]=d.useState(!1),[h,x]=d.useState(!1),[v,P]=q(),C=d.useCallback(()=>{i(!1),c(!1),p(!1),u(!1),x(!1),P(!1)},[P]),O=d.useCallback(S=>{S==="annotations"?u(!0):S==="search"?p(!0):S==="help"?c(!0):S==="toc"?i(!0):S==="bookmarks"&&x(!0),t==null||t(S)},[t]);return e.jsxs(e.Fragment,{children:[n&&e.jsx(s.Presence,{present:!v,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"moderate",children:e.jsx(ce,{})}),e.jsx(ye,{onItemClick:O}),e.jsx(se,{}),e.jsx(ae,{open:r,setOpen:c}),e.jsx(Ae,{open:l,setOpen:i,onNavigate:C}),e.jsx(Be,{open:g,setOpen:p,onNavigate:C}),e.jsx(ne,{open:a,setOpen:u,onNavigate:C}),e.jsx(le,{open:h,setOpen:x,onNavigate:C}),e.jsx(s.Presence,{present:o||v,animationName:{_open:"fade-in",_closed:"fade-out"},animationDuration:"slow",overflow:"hidden",children:e.jsx(ge,{})})]})};b.ReactReader=Ee,b.ReactReaderProvider=R,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=index.umd.cjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prose-reader/react-reader",
3
3
  "private": false,
4
- "version": "1.190.0",
4
+ "version": "1.192.0",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
@@ -49,5 +49,5 @@
49
49
  "optional": true
50
50
  }
51
51
  },
52
- "gitHead": "30270b61e7e262c9244b3b3d8c41245f140367b0"
52
+ "gitHead": "035f1337757519f5502ce99dee6811428a1e170d"
53
53
  }