@cyber-harbour/ui 2.2.35 → 2.2.36

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.
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkXLDJPZWO_js=require('./chunk-XLDJPZWO.js'),react=require('react'),z=require('lodash.debounce'),reactPdf=require('react-pdf');require('react-pdf/dist/Page/AnnotationLayer.css'),require('react-pdf/dist/Page/TextLayer.css');var reactVirtuoso=require('react-virtuoso'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var z__default=/*#__PURE__*/_interopDefault(z);var f="/pdfjs";typeof window<"u"&&typeof document<"u"&&(reactPdf.pdfjs.GlobalWorkerOptions.workerSrc=`${f}/pdf.worker.min.js`);var se=1e3,ie=400,le=150,ce=70,de=1.414,I=400,Ne=chunkXLDJPZWO_js.a(({url:M})=>{let[a,O]=react.useState(0),[i,b]=react.useState(1),[H,T]=react.useState(true),[E,B]=react.useState(null),[v,F]=react.useState(I),[$,Z]=react.useState(I),[l,R]=react.useState(1),[x,G]=react.useState(I),[k,V]=react.useState(de),c=react.useRef(null),C=react.useRef(null),y=react.useRef(false),d=react.useRef(null),N=react.useRef(false),p=react.useCallback((e,r=true)=>{e<1||e>a||(y.current=true,C.current?.scrollToIndex({index:e-1,align:"start",behavior:r?"smooth":"auto"}),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{N.current&&(y.current=false);},se));},[a]),w=react.useMemo(()=>z__default.default((e,r=false)=>{p(e,r);},ie),[p]),W=react.useCallback(()=>{R(e=>Math.min(e+.25,4));},[]),Y=react.useCallback(()=>{R(e=>Math.max(e-.25,.25));},[]);react.useEffect(()=>{if(!c.current)return;let e=z__default.default(()=>{c.current&&(F(c.current.offsetWidth-ce),Z(c.current.clientHeight));},le);e();let r=new ResizeObserver(e);return r.observe(c.current),()=>{r.disconnect(),e.cancel();}},[]);let J=react.useMemo(()=>({cMapPacked:true,cMapUrl:`${f}/cmaps/`,standardFontDataUrl:`${f}/standard_fonts/`,wasmUrl:`${f}/wasm/`,iccUrl:`${f}/icc/`}),[]),q=react.useCallback(({numPages:e})=>{O(e),T(false);},[]),K=react.useCallback(e=>{B(`Failed to load PDF: ${e.message}`),T(false);},[]),g=react.useCallback(e=>{let r=i+e;b(r),p(r);},[i,p]),Q=react.useCallback(()=>{g(-1);},[g]),X=react.useCallback(()=>{g(1);},[g]),ee=react.useCallback(e=>{if(y.current)return;let r=e.startIndex+1;r!==i&&b(r);},[i]);return react.useEffect(()=>(N.current=true,()=>{N.current=false,w.cancel(),d.current&&clearTimeout(d.current);}),[w]),react.useEffect(()=>{G(v*l*k);},[v,l,k]),E?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full w-full px-8.5",children:jsxRuntime.jsx("div",{className:"text-red-500 text-center",children:jsxRuntime.jsx("p",{children:E})})}):jsxRuntime.jsxs("div",{className:"h-full w-full flex flex-col overflow-hidden pb-5",children:[H&&jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full px-8.5",children:jsxRuntime.jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF..."})}),a>0&&jsxRuntime.jsxs("div",{className:"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3",children:[jsxRuntime.jsxs(chunkXLDJPZWO_js.tb,{py:4,px:8,className:"flex items-center justify-start gap-1 rounded-[5px]!",children:[jsxRuntime.jsx(chunkXLDJPZWO_js._a,{color:"text.lighter",style:{fontSize:10},children:"Page:"}),jsxRuntime.jsxs("span",{className:"flex items-center gap-2 text-[12px]",children:[jsxRuntime.jsx("input",{type:"number",min:1,max:a,value:i,onChange:e=>{let r=parseInt(e.target.value,10);r>=1&&r<=a&&(b(r),w(r,false));},className:"w-15 px-1 py-1 text-end text-[12px]"}),"/ ",a]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.25 pl-1",children:[jsxRuntime.jsx(chunkXLDJPZWO_js.z,{variant:"empty","aria-label":"previous page",color:"secondary",size:"small",type:"button",disabled:i<=1,onClick:Q,icon:jsxRuntime.jsx(chunkXLDJPZWO_js.ma,{style:{width:8,height:8}})}),jsxRuntime.jsx(chunkXLDJPZWO_js.z,{variant:"empty","aria-label":"next page",color:"secondary",size:"small",type:"button",disabled:i>=a,onClick:X,icon:jsxRuntime.jsx(chunkXLDJPZWO_js.la,{style:{width:8,height:8}})})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsxRuntime.jsx(chunkXLDJPZWO_js.z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsxRuntime.jsx(chunkXLDJPZWO_js.Ra,{style:{width:20,height:20}}),onClick:Y,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l<=.25,p:7}),jsxRuntime.jsxs(chunkXLDJPZWO_js.tb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsxRuntime.jsx(chunkXLDJPZWO_js._a,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxRuntime.jsxs(chunkXLDJPZWO_js._a,{children:[l*100,"%"]})]}),jsxRuntime.jsx(chunkXLDJPZWO_js.z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsxRuntime.jsx(chunkXLDJPZWO_js.na,{style:{width:14,height:14}}),onClick:W,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l>=4,p:10})]})]}),jsxRuntime.jsx("div",{ref:c,className:"flex-1 overflow-hidden min-h-0",children:jsxRuntime.jsx(reactPdf.Document,{options:J,file:M,onLoadSuccess:q,onLoadError:K,loading:jsxRuntime.jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsxRuntime.jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),children:jsxRuntime.jsx(reactVirtuoso.Virtuoso,{ref:C,style:{height:$||"calc(100dvh - 190px)",width:"100%",scrollbarGutter:"stable both-edges"},totalCount:a,rangeChanged:ee,defaultItemHeight:x,itemContent:e=>jsxRuntime.jsx("div",{className:"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800",children:jsxRuntime.jsx(reactPdf.Page,{pageNumber:e+1,renderTextLayer:true,renderAnnotationLayer:true,width:v*l,onLoadSuccess:r=>{if(e===0){let te=r.height/r.width;V(te);}},loading:jsxRuntime.jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsxRuntime.jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),className:"h-auto w-full transition-[width] duration-[600ms] ease-in-out"})})})})})]})},"PdfDriver");exports.PdfDriver=Ne;//# sourceMappingURL=PdfDriver-WICDQXHI.js.map
2
- //# sourceMappingURL=PdfDriver-WICDQXHI.js.map
1
+ 'use strict';var chunkGKPBTQZ3_js=require('./chunk-GKPBTQZ3.js'),react=require('react'),z=require('lodash.debounce'),reactPdf=require('react-pdf');require('react-pdf/dist/Page/AnnotationLayer.css'),require('react-pdf/dist/Page/TextLayer.css');var reactVirtuoso=require('react-virtuoso'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var z__default=/*#__PURE__*/_interopDefault(z);var f="/pdfjs";typeof window<"u"&&typeof document<"u"&&(reactPdf.pdfjs.GlobalWorkerOptions.workerSrc=`${f}/pdf.worker.min.js`);var se=1e3,ie=400,le=150,ce=70,de=1.414,I=400,Ne=chunkGKPBTQZ3_js.a(({url:M})=>{let[a,O]=react.useState(0),[i,b]=react.useState(1),[H,T]=react.useState(true),[E,B]=react.useState(null),[v,F]=react.useState(I),[$,Z]=react.useState(I),[l,R]=react.useState(1),[x,G]=react.useState(I),[k,V]=react.useState(de),c=react.useRef(null),C=react.useRef(null),y=react.useRef(false),d=react.useRef(null),N=react.useRef(false),p=react.useCallback((e,r=true)=>{e<1||e>a||(y.current=true,C.current?.scrollToIndex({index:e-1,align:"start",behavior:r?"smooth":"auto"}),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{N.current&&(y.current=false);},se));},[a]),w=react.useMemo(()=>z__default.default((e,r=false)=>{p(e,r);},ie),[p]),W=react.useCallback(()=>{R(e=>Math.min(e+.25,4));},[]),Y=react.useCallback(()=>{R(e=>Math.max(e-.25,.25));},[]);react.useEffect(()=>{if(!c.current)return;let e=z__default.default(()=>{c.current&&(F(c.current.offsetWidth-ce),Z(c.current.clientHeight));},le);e();let r=new ResizeObserver(e);return r.observe(c.current),()=>{r.disconnect(),e.cancel();}},[]);let J=react.useMemo(()=>({cMapPacked:true,cMapUrl:`${f}/cmaps/`,standardFontDataUrl:`${f}/standard_fonts/`,wasmUrl:`${f}/wasm/`,iccUrl:`${f}/icc/`}),[]),q=react.useCallback(({numPages:e})=>{O(e),T(false);},[]),K=react.useCallback(e=>{B(`Failed to load PDF: ${e.message}`),T(false);},[]),g=react.useCallback(e=>{let r=i+e;b(r),p(r);},[i,p]),Q=react.useCallback(()=>{g(-1);},[g]),X=react.useCallback(()=>{g(1);},[g]),ee=react.useCallback(e=>{if(y.current)return;let r=e.startIndex+1;r!==i&&b(r);},[i]);return react.useEffect(()=>(N.current=true,()=>{N.current=false,w.cancel(),d.current&&clearTimeout(d.current);}),[w]),react.useEffect(()=>{G(v*l*k);},[v,l,k]),E?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full w-full px-8.5",children:jsxRuntime.jsx("div",{className:"text-red-500 text-center",children:jsxRuntime.jsx("p",{children:E})})}):jsxRuntime.jsxs("div",{className:"h-full w-full flex flex-col overflow-hidden pb-5",children:[H&&jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full px-8.5",children:jsxRuntime.jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF..."})}),a>0&&jsxRuntime.jsxs("div",{className:"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3",children:[jsxRuntime.jsxs(chunkGKPBTQZ3_js.tb,{py:4,px:8,className:"flex items-center justify-start gap-1 rounded-[5px]!",children:[jsxRuntime.jsx(chunkGKPBTQZ3_js._a,{color:"text.lighter",style:{fontSize:10},children:"Page:"}),jsxRuntime.jsxs("span",{className:"flex items-center gap-2 text-[12px]",children:[jsxRuntime.jsx("input",{type:"number",min:1,max:a,value:i,onChange:e=>{let r=parseInt(e.target.value,10);r>=1&&r<=a&&(b(r),w(r,false));},className:"w-15 px-1 py-1 text-end text-[12px]"}),"/ ",a]}),jsxRuntime.jsxs("div",{className:"flex flex-col gap-0.25 pl-1",children:[jsxRuntime.jsx(chunkGKPBTQZ3_js.z,{variant:"empty","aria-label":"previous page",color:"secondary",size:"small",type:"button",disabled:i<=1,onClick:Q,icon:jsxRuntime.jsx(chunkGKPBTQZ3_js.ma,{style:{width:8,height:8}})}),jsxRuntime.jsx(chunkGKPBTQZ3_js.z,{variant:"empty","aria-label":"next page",color:"secondary",size:"small",type:"button",disabled:i>=a,onClick:X,icon:jsxRuntime.jsx(chunkGKPBTQZ3_js.la,{style:{width:8,height:8}})})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsxRuntime.jsx(chunkGKPBTQZ3_js.z,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsxRuntime.jsx(chunkGKPBTQZ3_js.Ra,{style:{width:20,height:20}}),onClick:Y,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l<=.25,p:7}),jsxRuntime.jsxs(chunkGKPBTQZ3_js.tb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsxRuntime.jsx(chunkGKPBTQZ3_js._a,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxRuntime.jsxs(chunkGKPBTQZ3_js._a,{children:[l*100,"%"]})]}),jsxRuntime.jsx(chunkGKPBTQZ3_js.z,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsxRuntime.jsx(chunkGKPBTQZ3_js.na,{style:{width:14,height:14}}),onClick:W,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l>=4,p:10})]})]}),jsxRuntime.jsx("div",{ref:c,className:"flex-1 overflow-hidden min-h-0",children:jsxRuntime.jsx(reactPdf.Document,{options:J,file:M,onLoadSuccess:q,onLoadError:K,loading:jsxRuntime.jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsxRuntime.jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),children:jsxRuntime.jsx(reactVirtuoso.Virtuoso,{ref:C,style:{height:$||"calc(100dvh - 190px)",width:"100%",scrollbarGutter:"stable both-edges"},totalCount:a,rangeChanged:ee,defaultItemHeight:x,itemContent:e=>jsxRuntime.jsx("div",{className:"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800",children:jsxRuntime.jsx(reactPdf.Page,{pageNumber:e+1,renderTextLayer:true,renderAnnotationLayer:true,width:v*l,onLoadSuccess:r=>{if(e===0){let te=r.height/r.width;V(te);}},loading:jsxRuntime.jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsxRuntime.jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),className:"h-auto w-full transition-[width] duration-[600ms] ease-in-out"})})})})})]})},"PdfDriver");exports.PdfDriver=Ne;//# sourceMappingURL=PdfDriver-IE6DT35L.js.map
2
+ //# sourceMappingURL=PdfDriver-IE6DT35L.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","SCROLL_ANIMATION_DURATION","INPUT_DEBOUNCE_DELAY","RESIZE_DEBOUNCE_DELAY","CONTAINER_PADDING","DEFAULT_RATIO_A4","DEFAULT_MIN_SIZE","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","height","setHeight","scale","setScale","defaultPageHeight","setDefaultPageHeight","pageAspectRatio","setPageAspectRatio","containerRef","useRef","virtuosoRef","isUserScrollingRef","scrollTimeoutRef","isMountedRef","scrollToPage","useCallback","page","smooth","debouncedScroll","useMemo","debounce","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","observer","options","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","newPage","previousPage","nextPage","handleRangeChanged","range","visiblePage","jsx","jsxs","Box","Typography","Button","ChevronUpIcon","ChevronDownIcon","MinusIcon","PlusIcon","Document","Virtuoso","index","Page","ratio"],"mappings":"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","file":"PdfDriver-WICDQXHI.js","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport debounce from 'lodash.debounce';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Virtuoso, VirtuosoHandle } from 'react-virtuoso';\nimport { Box, Button, ChevronDownIcon, ChevronUpIcon, MinusIcon, PlusIcon, Typography } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\nconst SCROLL_ANIMATION_DURATION = 1000;\nconst INPUT_DEBOUNCE_DELAY = 400;\nconst RESIZE_DEBOUNCE_DELAY = 150;\nconst CONTAINER_PADDING = 70;\nconst DEFAULT_RATIO_A4 = 1.414;\nconst DEFAULT_MIN_SIZE = 400;\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(DEFAULT_MIN_SIZE);\n const [height, setHeight] = useState<number>(DEFAULT_MIN_SIZE);\n const [scale, setScale] = useState(1);\n const [defaultPageHeight, setDefaultPageHeight] = useState(DEFAULT_MIN_SIZE);\n const [pageAspectRatio, setPageAspectRatio] = useState(DEFAULT_RATIO_A4);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const virtuosoRef = useRef<VirtuosoHandle>(null);\n const isUserScrollingRef = useRef<boolean>(false);\n const scrollTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const isMountedRef = useRef(false);\n\n const scrollToPage = useCallback(\n (page: number, smooth = true) => {\n if (page < 1 || page > numPages) return;\n\n isUserScrollingRef.current = true;\n virtuosoRef.current?.scrollToIndex({\n index: page - 1,\n align: 'start',\n behavior: smooth ? 'smooth' : 'auto',\n });\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n scrollTimeoutRef.current = setTimeout(() => {\n if (isMountedRef.current) isUserScrollingRef.current = false;\n }, SCROLL_ANIMATION_DURATION);\n },\n [numPages]\n );\n\n const debouncedScroll = useMemo(() => {\n return debounce((page: number, smooth = false) => {\n scrollToPage(page, smooth);\n }, INPUT_DEBOUNCE_DELAY);\n }, [scrollToPage]);\n\n const handleZoomIn = useCallback(() => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n }, []);\n\n const handleZoomOut = useCallback(() => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n }, []);\n\n useEffect(() => {\n if (!containerRef.current) return;\n const updateSize = debounce(() => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - CONTAINER_PADDING);\n setHeight(containerRef.current.clientHeight);\n }\n }, RESIZE_DEBOUNCE_DELAY);\n updateSize();\n const observer = new ResizeObserver(updateSize);\n observer.observe(containerRef.current);\n return () => {\n observer.disconnect();\n updateSize.cancel();\n };\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n const onDocumentLoadSuccess = useCallback(({ numPages }: { numPages: number }): void => {\n setNumPages(numPages);\n setLoading(false);\n }, []);\n\n const onDocumentLoadError = useCallback((error: Error): void => {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }, []);\n\n const changePage = useCallback(\n (offset: number): void => {\n const newPage = pageNumber + offset;\n setPageNumber(newPage);\n scrollToPage(newPage);\n },\n [pageNumber, scrollToPage]\n );\n\n const previousPage = useCallback((): void => {\n changePage(-1);\n }, [changePage]);\n\n const nextPage = useCallback((): void => {\n changePage(1);\n }, [changePage]);\n\n const handleRangeChanged = useCallback(\n (range: { startIndex: number; endIndex: number }) => {\n if (isUserScrollingRef.current) {\n return;\n }\n const visiblePage = range.startIndex + 1;\n if (visiblePage !== pageNumber) {\n setPageNumber(visiblePage);\n }\n },\n [pageNumber]\n );\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n debouncedScroll.cancel();\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n };\n }, [debouncedScroll]);\n\n useEffect(() => {\n setDefaultPageHeight(width * scale * pageAspectRatio);\n }, [width, scale, pageAspectRatio]);\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full px-8.5\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full px-8.5\">\n <div className=\"text-gray-500 dark:text-gray-400\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3\">\n <Box py={4} px={8} className=\"flex items-center justify-start gap-1 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Page:\n </Typography>\n <span className=\"flex items-center gap-2 text-[12px]\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n debouncedScroll(page, false);\n }\n }}\n className=\"w-15 px-1 py-1 text-end text-[12px]\"\n />\n / {numPages}\n </span>\n <div className=\"flex flex-col gap-0.25 pl-1\">\n <Button\n variant=\"empty\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n icon={<ChevronUpIcon style={{ width: 8, height: 8 }} />}\n />\n <Button\n variant=\"empty\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n icon={<ChevronDownIcon style={{ width: 8, height: 8 }} />}\n />\n </div>\n </Box>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"default\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={8} px={8} className=\"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Scale:\n </Typography>\n <Typography>{scale * 100}%</Typography>\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"default\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale >= 4}\n p={10}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-hidden min-h-0\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n >\n <Virtuoso\n ref={virtuosoRef}\n style={{ height: height || 'calc(100dvh - 190px)', width: '100%', scrollbarGutter: 'stable both-edges' }}\n totalCount={numPages}\n rangeChanged={handleRangeChanged}\n defaultItemHeight={defaultPageHeight}\n itemContent={(index) => (\n <div className=\"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800\">\n <Page\n pageNumber={index + 1}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n onLoadSuccess={(page) => {\n if (index === 0) {\n const ratio = page.height / page.width;\n setPageAspectRatio(ratio);\n }\n }}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out\"\n />\n </div>\n )}\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","SCROLL_ANIMATION_DURATION","INPUT_DEBOUNCE_DELAY","RESIZE_DEBOUNCE_DELAY","CONTAINER_PADDING","DEFAULT_RATIO_A4","DEFAULT_MIN_SIZE","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","height","setHeight","scale","setScale","defaultPageHeight","setDefaultPageHeight","pageAspectRatio","setPageAspectRatio","containerRef","useRef","virtuosoRef","isUserScrollingRef","scrollTimeoutRef","isMountedRef","scrollToPage","useCallback","page","smooth","debouncedScroll","useMemo","debounce","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","observer","options","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","newPage","previousPage","nextPage","handleRangeChanged","range","visiblePage","jsx","jsxs","Box","Typography","Button","ChevronUpIcon","ChevronDownIcon","MinusIcon","PlusIcon","Document","Virtuoso","index","Page","ratio"],"mappings":"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","file":"PdfDriver-IE6DT35L.js","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport debounce from 'lodash.debounce';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Virtuoso, VirtuosoHandle } from 'react-virtuoso';\nimport { Box, Button, ChevronDownIcon, ChevronUpIcon, MinusIcon, PlusIcon, Typography } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\nconst SCROLL_ANIMATION_DURATION = 1000;\nconst INPUT_DEBOUNCE_DELAY = 400;\nconst RESIZE_DEBOUNCE_DELAY = 150;\nconst CONTAINER_PADDING = 70;\nconst DEFAULT_RATIO_A4 = 1.414;\nconst DEFAULT_MIN_SIZE = 400;\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(DEFAULT_MIN_SIZE);\n const [height, setHeight] = useState<number>(DEFAULT_MIN_SIZE);\n const [scale, setScale] = useState(1);\n const [defaultPageHeight, setDefaultPageHeight] = useState(DEFAULT_MIN_SIZE);\n const [pageAspectRatio, setPageAspectRatio] = useState(DEFAULT_RATIO_A4);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const virtuosoRef = useRef<VirtuosoHandle>(null);\n const isUserScrollingRef = useRef<boolean>(false);\n const scrollTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const isMountedRef = useRef(false);\n\n const scrollToPage = useCallback(\n (page: number, smooth = true) => {\n if (page < 1 || page > numPages) return;\n\n isUserScrollingRef.current = true;\n virtuosoRef.current?.scrollToIndex({\n index: page - 1,\n align: 'start',\n behavior: smooth ? 'smooth' : 'auto',\n });\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n scrollTimeoutRef.current = setTimeout(() => {\n if (isMountedRef.current) isUserScrollingRef.current = false;\n }, SCROLL_ANIMATION_DURATION);\n },\n [numPages]\n );\n\n const debouncedScroll = useMemo(() => {\n return debounce((page: number, smooth = false) => {\n scrollToPage(page, smooth);\n }, INPUT_DEBOUNCE_DELAY);\n }, [scrollToPage]);\n\n const handleZoomIn = useCallback(() => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n }, []);\n\n const handleZoomOut = useCallback(() => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n }, []);\n\n useEffect(() => {\n if (!containerRef.current) return;\n const updateSize = debounce(() => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - CONTAINER_PADDING);\n setHeight(containerRef.current.clientHeight);\n }\n }, RESIZE_DEBOUNCE_DELAY);\n updateSize();\n const observer = new ResizeObserver(updateSize);\n observer.observe(containerRef.current);\n return () => {\n observer.disconnect();\n updateSize.cancel();\n };\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n const onDocumentLoadSuccess = useCallback(({ numPages }: { numPages: number }): void => {\n setNumPages(numPages);\n setLoading(false);\n }, []);\n\n const onDocumentLoadError = useCallback((error: Error): void => {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }, []);\n\n const changePage = useCallback(\n (offset: number): void => {\n const newPage = pageNumber + offset;\n setPageNumber(newPage);\n scrollToPage(newPage);\n },\n [pageNumber, scrollToPage]\n );\n\n const previousPage = useCallback((): void => {\n changePage(-1);\n }, [changePage]);\n\n const nextPage = useCallback((): void => {\n changePage(1);\n }, [changePage]);\n\n const handleRangeChanged = useCallback(\n (range: { startIndex: number; endIndex: number }) => {\n if (isUserScrollingRef.current) {\n return;\n }\n const visiblePage = range.startIndex + 1;\n if (visiblePage !== pageNumber) {\n setPageNumber(visiblePage);\n }\n },\n [pageNumber]\n );\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n debouncedScroll.cancel();\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n };\n }, [debouncedScroll]);\n\n useEffect(() => {\n setDefaultPageHeight(width * scale * pageAspectRatio);\n }, [width, scale, pageAspectRatio]);\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full px-8.5\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full px-8.5\">\n <div className=\"text-gray-500 dark:text-gray-400\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3\">\n <Box py={4} px={8} className=\"flex items-center justify-start gap-1 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Page:\n </Typography>\n <span className=\"flex items-center gap-2 text-[12px]\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n debouncedScroll(page, false);\n }\n }}\n className=\"w-15 px-1 py-1 text-end text-[12px]\"\n />\n / {numPages}\n </span>\n <div className=\"flex flex-col gap-0.25 pl-1\">\n <Button\n variant=\"empty\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n icon={<ChevronUpIcon style={{ width: 8, height: 8 }} />}\n />\n <Button\n variant=\"empty\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n icon={<ChevronDownIcon style={{ width: 8, height: 8 }} />}\n />\n </div>\n </Box>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"default\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={8} px={8} className=\"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Scale:\n </Typography>\n <Typography>{scale * 100}%</Typography>\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"default\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale >= 4}\n p={10}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-hidden min-h-0\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n >\n <Virtuoso\n ref={virtuosoRef}\n style={{ height: height || 'calc(100dvh - 190px)', width: '100%', scrollbarGutter: 'stable both-edges' }}\n totalCount={numPages}\n rangeChanged={handleRangeChanged}\n defaultItemHeight={defaultPageHeight}\n itemContent={(index) => (\n <div className=\"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800\">\n <Page\n pageNumber={index + 1}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n onLoadSuccess={(page) => {\n if (index === 0) {\n const ratio = page.height / page.width;\n setPageAspectRatio(ratio);\n }\n }}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out\"\n />\n </div>\n )}\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
@@ -1,2 +1,2 @@
1
- import {a,tb,_a,z as z$1,ma,la,Ra,na}from'./chunk-JRNFYOX5.mjs';import {useState,useRef,useCallback,useMemo,useEffect}from'react';import z from'lodash.debounce';import {pdfjs,Document,Page}from'react-pdf';import'react-pdf/dist/Page/AnnotationLayer.css';import'react-pdf/dist/Page/TextLayer.css';import {Virtuoso}from'react-virtuoso';import {jsx,jsxs}from'react/jsx-runtime';var f="/pdfjs";typeof window<"u"&&typeof document<"u"&&(pdfjs.GlobalWorkerOptions.workerSrc=`${f}/pdf.worker.min.js`);var se=1e3,ie=400,le=150,ce=70,de=1.414,I=400,ye=a(({url:M})=>{let[a,O]=useState(0),[i,b]=useState(1),[H,T]=useState(true),[E,B]=useState(null),[v,F]=useState(I),[$,Z]=useState(I),[l,R]=useState(1),[x,G]=useState(I),[k,V]=useState(de),c=useRef(null),C=useRef(null),y=useRef(false),d=useRef(null),N=useRef(false),p=useCallback((e,r=true)=>{e<1||e>a||(y.current=true,C.current?.scrollToIndex({index:e-1,align:"start",behavior:r?"smooth":"auto"}),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{N.current&&(y.current=false);},se));},[a]),w=useMemo(()=>z((e,r=false)=>{p(e,r);},ie),[p]),W=useCallback(()=>{R(e=>Math.min(e+.25,4));},[]),Y=useCallback(()=>{R(e=>Math.max(e-.25,.25));},[]);useEffect(()=>{if(!c.current)return;let e=z(()=>{c.current&&(F(c.current.offsetWidth-ce),Z(c.current.clientHeight));},le);e();let r=new ResizeObserver(e);return r.observe(c.current),()=>{r.disconnect(),e.cancel();}},[]);let J=useMemo(()=>({cMapPacked:true,cMapUrl:`${f}/cmaps/`,standardFontDataUrl:`${f}/standard_fonts/`,wasmUrl:`${f}/wasm/`,iccUrl:`${f}/icc/`}),[]),q=useCallback(({numPages:e})=>{O(e),T(false);},[]),K=useCallback(e=>{B(`Failed to load PDF: ${e.message}`),T(false);},[]),g=useCallback(e=>{let r=i+e;b(r),p(r);},[i,p]),Q=useCallback(()=>{g(-1);},[g]),X=useCallback(()=>{g(1);},[g]),ee=useCallback(e=>{if(y.current)return;let r=e.startIndex+1;r!==i&&b(r);},[i]);return useEffect(()=>(N.current=true,()=>{N.current=false,w.cancel(),d.current&&clearTimeout(d.current);}),[w]),useEffect(()=>{G(v*l*k);},[v,l,k]),E?jsx("div",{className:"flex items-center justify-center h-full w-full px-8.5",children:jsx("div",{className:"text-red-500 text-center",children:jsx("p",{children:E})})}):jsxs("div",{className:"h-full w-full flex flex-col overflow-hidden pb-5",children:[H&&jsx("div",{className:"flex items-center justify-center h-full px-8.5",children:jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF..."})}),a>0&&jsxs("div",{className:"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3",children:[jsxs(tb,{py:4,px:8,className:"flex items-center justify-start gap-1 rounded-[5px]!",children:[jsx(_a,{color:"text.lighter",style:{fontSize:10},children:"Page:"}),jsxs("span",{className:"flex items-center gap-2 text-[12px]",children:[jsx("input",{type:"number",min:1,max:a,value:i,onChange:e=>{let r=parseInt(e.target.value,10);r>=1&&r<=a&&(b(r),w(r,false));},className:"w-15 px-1 py-1 text-end text-[12px]"}),"/ ",a]}),jsxs("div",{className:"flex flex-col gap-0.25 pl-1",children:[jsx(z$1,{variant:"empty","aria-label":"previous page",color:"secondary",size:"small",type:"button",disabled:i<=1,onClick:Q,icon:jsx(ma,{style:{width:8,height:8}})}),jsx(z$1,{variant:"empty","aria-label":"next page",color:"secondary",size:"small",type:"button",disabled:i>=a,onClick:X,icon:jsx(la,{style:{width:8,height:8}})})]})]}),jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsx(z$1,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Ra,{style:{width:20,height:20}}),onClick:Y,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l<=.25,p:7}),jsxs(tb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsx(_a,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxs(_a,{children:[l*100,"%"]})]}),jsx(z$1,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(na,{style:{width:14,height:14}}),onClick:W,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l>=4,p:10})]})]}),jsx("div",{ref:c,className:"flex-1 overflow-hidden min-h-0",children:jsx(Document,{options:J,file:M,onLoadSuccess:q,onLoadError:K,loading:jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),children:jsx(Virtuoso,{ref:C,style:{height:$||"calc(100dvh - 190px)",width:"100%",scrollbarGutter:"stable both-edges"},totalCount:a,rangeChanged:ee,defaultItemHeight:x,itemContent:e=>jsx("div",{className:"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800",children:jsx(Page,{pageNumber:e+1,renderTextLayer:true,renderAnnotationLayer:true,width:v*l,onLoadSuccess:r=>{if(e===0){let te=r.height/r.width;V(te);}},loading:jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),className:"h-auto w-full transition-[width] duration-[600ms] ease-in-out"})})})})})]})},"PdfDriver");export{ye as PdfDriver};//# sourceMappingURL=PdfDriver-D37B42JP.mjs.map
2
- //# sourceMappingURL=PdfDriver-D37B42JP.mjs.map
1
+ import {a,tb,_a,z as z$1,ma,la,Ra,na}from'./chunk-I5ITYF6G.mjs';import {useState,useRef,useCallback,useMemo,useEffect}from'react';import z from'lodash.debounce';import {pdfjs,Document,Page}from'react-pdf';import'react-pdf/dist/Page/AnnotationLayer.css';import'react-pdf/dist/Page/TextLayer.css';import {Virtuoso}from'react-virtuoso';import {jsx,jsxs}from'react/jsx-runtime';var f="/pdfjs";typeof window<"u"&&typeof document<"u"&&(pdfjs.GlobalWorkerOptions.workerSrc=`${f}/pdf.worker.min.js`);var se=1e3,ie=400,le=150,ce=70,de=1.414,I=400,ye=a(({url:M})=>{let[a,O]=useState(0),[i,b]=useState(1),[H,T]=useState(true),[E,B]=useState(null),[v,F]=useState(I),[$,Z]=useState(I),[l,R]=useState(1),[x,G]=useState(I),[k,V]=useState(de),c=useRef(null),C=useRef(null),y=useRef(false),d=useRef(null),N=useRef(false),p=useCallback((e,r=true)=>{e<1||e>a||(y.current=true,C.current?.scrollToIndex({index:e-1,align:"start",behavior:r?"smooth":"auto"}),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{N.current&&(y.current=false);},se));},[a]),w=useMemo(()=>z((e,r=false)=>{p(e,r);},ie),[p]),W=useCallback(()=>{R(e=>Math.min(e+.25,4));},[]),Y=useCallback(()=>{R(e=>Math.max(e-.25,.25));},[]);useEffect(()=>{if(!c.current)return;let e=z(()=>{c.current&&(F(c.current.offsetWidth-ce),Z(c.current.clientHeight));},le);e();let r=new ResizeObserver(e);return r.observe(c.current),()=>{r.disconnect(),e.cancel();}},[]);let J=useMemo(()=>({cMapPacked:true,cMapUrl:`${f}/cmaps/`,standardFontDataUrl:`${f}/standard_fonts/`,wasmUrl:`${f}/wasm/`,iccUrl:`${f}/icc/`}),[]),q=useCallback(({numPages:e})=>{O(e),T(false);},[]),K=useCallback(e=>{B(`Failed to load PDF: ${e.message}`),T(false);},[]),g=useCallback(e=>{let r=i+e;b(r),p(r);},[i,p]),Q=useCallback(()=>{g(-1);},[g]),X=useCallback(()=>{g(1);},[g]),ee=useCallback(e=>{if(y.current)return;let r=e.startIndex+1;r!==i&&b(r);},[i]);return useEffect(()=>(N.current=true,()=>{N.current=false,w.cancel(),d.current&&clearTimeout(d.current);}),[w]),useEffect(()=>{G(v*l*k);},[v,l,k]),E?jsx("div",{className:"flex items-center justify-center h-full w-full px-8.5",children:jsx("div",{className:"text-red-500 text-center",children:jsx("p",{children:E})})}):jsxs("div",{className:"h-full w-full flex flex-col overflow-hidden pb-5",children:[H&&jsx("div",{className:"flex items-center justify-center h-full px-8.5",children:jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading PDF..."})}),a>0&&jsxs("div",{className:"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3",children:[jsxs(tb,{py:4,px:8,className:"flex items-center justify-start gap-1 rounded-[5px]!",children:[jsx(_a,{color:"text.lighter",style:{fontSize:10},children:"Page:"}),jsxs("span",{className:"flex items-center gap-2 text-[12px]",children:[jsx("input",{type:"number",min:1,max:a,value:i,onChange:e=>{let r=parseInt(e.target.value,10);r>=1&&r<=a&&(b(r),w(r,false));},className:"w-15 px-1 py-1 text-end text-[12px]"}),"/ ",a]}),jsxs("div",{className:"flex flex-col gap-0.25 pl-1",children:[jsx(z$1,{variant:"empty","aria-label":"previous page",color:"secondary",size:"small",type:"button",disabled:i<=1,onClick:Q,icon:jsx(ma,{style:{width:8,height:8}})}),jsx(z$1,{variant:"empty","aria-label":"next page",color:"secondary",size:"small",type:"button",disabled:i>=a,onClick:X,icon:jsx(la,{style:{width:8,height:8}})})]})]}),jsxs("div",{className:"flex items-center justify-center gap-3",children:[jsx(z$1,{variant:"outlined","aria-label":"zoom-out",color:"default",size:"small",icon:jsx(Ra,{style:{width:20,height:20}}),onClick:Y,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l<=.25,p:7}),jsxs(tb,{py:8,px:8,className:"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!",children:[jsx(_a,{color:"text.lighter",style:{fontSize:10},children:"Scale:"}),jsxs(_a,{children:[l*100,"%"]})]}),jsx(z$1,{variant:"outlined","aria-label":"zoom-in",size:"small",color:"default",icon:jsx(na,{style:{width:14,height:14}}),onClick:W,className:"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!",disabled:l>=4,p:10})]})]}),jsx("div",{ref:c,className:"flex-1 overflow-hidden min-h-0",children:jsx(Document,{options:J,file:M,onLoadSuccess:q,onLoadError:K,loading:jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),children:jsx(Virtuoso,{ref:C,style:{height:$||"calc(100dvh - 190px)",width:"100%",scrollbarGutter:"stable both-edges"},totalCount:a,rangeChanged:ee,defaultItemHeight:x,itemContent:e=>jsx("div",{className:"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800",children:jsx(Page,{pageNumber:e+1,renderTextLayer:true,renderAnnotationLayer:true,width:v*l,onLoadSuccess:r=>{if(e===0){let te=r.height/r.width;V(te);}},loading:jsx("div",{className:"flex items-center justify-center",style:{height:x},children:jsx("div",{className:"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent"})}),className:"h-auto w-full transition-[width] duration-[600ms] ease-in-out"})})})})})]})},"PdfDriver");export{ye as PdfDriver};//# sourceMappingURL=PdfDriver-RLN2RLDS.mjs.map
2
+ //# sourceMappingURL=PdfDriver-RLN2RLDS.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","SCROLL_ANIMATION_DURATION","INPUT_DEBOUNCE_DELAY","RESIZE_DEBOUNCE_DELAY","CONTAINER_PADDING","DEFAULT_RATIO_A4","DEFAULT_MIN_SIZE","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","height","setHeight","scale","setScale","defaultPageHeight","setDefaultPageHeight","pageAspectRatio","setPageAspectRatio","containerRef","useRef","virtuosoRef","isUserScrollingRef","scrollTimeoutRef","isMountedRef","scrollToPage","useCallback","page","smooth","debouncedScroll","useMemo","debounce","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","observer","options","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","newPage","previousPage","nextPage","handleRangeChanged","range","visiblePage","jsx","jsxs","Box","Typography","Button","ChevronUpIcon","ChevronDownIcon","MinusIcon","PlusIcon","Document","Virtuoso","index","Page","ratio"],"mappings":"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","file":"PdfDriver-D37B42JP.mjs","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport debounce from 'lodash.debounce';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Virtuoso, VirtuosoHandle } from 'react-virtuoso';\nimport { Box, Button, ChevronDownIcon, ChevronUpIcon, MinusIcon, PlusIcon, Typography } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\nconst SCROLL_ANIMATION_DURATION = 1000;\nconst INPUT_DEBOUNCE_DELAY = 400;\nconst RESIZE_DEBOUNCE_DELAY = 150;\nconst CONTAINER_PADDING = 70;\nconst DEFAULT_RATIO_A4 = 1.414;\nconst DEFAULT_MIN_SIZE = 400;\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(DEFAULT_MIN_SIZE);\n const [height, setHeight] = useState<number>(DEFAULT_MIN_SIZE);\n const [scale, setScale] = useState(1);\n const [defaultPageHeight, setDefaultPageHeight] = useState(DEFAULT_MIN_SIZE);\n const [pageAspectRatio, setPageAspectRatio] = useState(DEFAULT_RATIO_A4);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const virtuosoRef = useRef<VirtuosoHandle>(null);\n const isUserScrollingRef = useRef<boolean>(false);\n const scrollTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const isMountedRef = useRef(false);\n\n const scrollToPage = useCallback(\n (page: number, smooth = true) => {\n if (page < 1 || page > numPages) return;\n\n isUserScrollingRef.current = true;\n virtuosoRef.current?.scrollToIndex({\n index: page - 1,\n align: 'start',\n behavior: smooth ? 'smooth' : 'auto',\n });\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n scrollTimeoutRef.current = setTimeout(() => {\n if (isMountedRef.current) isUserScrollingRef.current = false;\n }, SCROLL_ANIMATION_DURATION);\n },\n [numPages]\n );\n\n const debouncedScroll = useMemo(() => {\n return debounce((page: number, smooth = false) => {\n scrollToPage(page, smooth);\n }, INPUT_DEBOUNCE_DELAY);\n }, [scrollToPage]);\n\n const handleZoomIn = useCallback(() => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n }, []);\n\n const handleZoomOut = useCallback(() => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n }, []);\n\n useEffect(() => {\n if (!containerRef.current) return;\n const updateSize = debounce(() => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - CONTAINER_PADDING);\n setHeight(containerRef.current.clientHeight);\n }\n }, RESIZE_DEBOUNCE_DELAY);\n updateSize();\n const observer = new ResizeObserver(updateSize);\n observer.observe(containerRef.current);\n return () => {\n observer.disconnect();\n updateSize.cancel();\n };\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n const onDocumentLoadSuccess = useCallback(({ numPages }: { numPages: number }): void => {\n setNumPages(numPages);\n setLoading(false);\n }, []);\n\n const onDocumentLoadError = useCallback((error: Error): void => {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }, []);\n\n const changePage = useCallback(\n (offset: number): void => {\n const newPage = pageNumber + offset;\n setPageNumber(newPage);\n scrollToPage(newPage);\n },\n [pageNumber, scrollToPage]\n );\n\n const previousPage = useCallback((): void => {\n changePage(-1);\n }, [changePage]);\n\n const nextPage = useCallback((): void => {\n changePage(1);\n }, [changePage]);\n\n const handleRangeChanged = useCallback(\n (range: { startIndex: number; endIndex: number }) => {\n if (isUserScrollingRef.current) {\n return;\n }\n const visiblePage = range.startIndex + 1;\n if (visiblePage !== pageNumber) {\n setPageNumber(visiblePage);\n }\n },\n [pageNumber]\n );\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n debouncedScroll.cancel();\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n };\n }, [debouncedScroll]);\n\n useEffect(() => {\n setDefaultPageHeight(width * scale * pageAspectRatio);\n }, [width, scale, pageAspectRatio]);\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full px-8.5\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full px-8.5\">\n <div className=\"text-gray-500 dark:text-gray-400\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3\">\n <Box py={4} px={8} className=\"flex items-center justify-start gap-1 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Page:\n </Typography>\n <span className=\"flex items-center gap-2 text-[12px]\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n debouncedScroll(page, false);\n }\n }}\n className=\"w-15 px-1 py-1 text-end text-[12px]\"\n />\n / {numPages}\n </span>\n <div className=\"flex flex-col gap-0.25 pl-1\">\n <Button\n variant=\"empty\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n icon={<ChevronUpIcon style={{ width: 8, height: 8 }} />}\n />\n <Button\n variant=\"empty\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n icon={<ChevronDownIcon style={{ width: 8, height: 8 }} />}\n />\n </div>\n </Box>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"default\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={8} px={8} className=\"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Scale:\n </Typography>\n <Typography>{scale * 100}%</Typography>\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"default\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale >= 4}\n p={10}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-hidden min-h-0\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n >\n <Virtuoso\n ref={virtuosoRef}\n style={{ height: height || 'calc(100dvh - 190px)', width: '100%', scrollbarGutter: 'stable both-edges' }}\n totalCount={numPages}\n rangeChanged={handleRangeChanged}\n defaultItemHeight={defaultPageHeight}\n itemContent={(index) => (\n <div className=\"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800\">\n <Page\n pageNumber={index + 1}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n onLoadSuccess={(page) => {\n if (index === 0) {\n const ratio = page.height / page.width;\n setPageAspectRatio(ratio);\n }\n }}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out\"\n />\n </div>\n )}\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/FileViewer/drivers/PdfDriver/PdfDriver.tsx"],"names":["BASE_DIR","pdfjs","SCROLL_ANIMATION_DURATION","INPUT_DEBOUNCE_DELAY","RESIZE_DEBOUNCE_DELAY","CONTAINER_PADDING","DEFAULT_RATIO_A4","DEFAULT_MIN_SIZE","PdfDriver","__name","url","numPages","setNumPages","useState","pageNumber","setPageNumber","loading","setLoading","error","setError","width","setWidth","height","setHeight","scale","setScale","defaultPageHeight","setDefaultPageHeight","pageAspectRatio","setPageAspectRatio","containerRef","useRef","virtuosoRef","isUserScrollingRef","scrollTimeoutRef","isMountedRef","scrollToPage","useCallback","page","smooth","debouncedScroll","useMemo","debounce","handleZoomIn","prev","handleZoomOut","useEffect","updateSize","observer","options","onDocumentLoadSuccess","onDocumentLoadError","changePage","offset","newPage","previousPage","nextPage","handleRangeChanged","range","visiblePage","jsx","jsxs","Box","Typography","Button","ChevronUpIcon","ChevronDownIcon","MinusIcon","PlusIcon","Document","Virtuoso","index","Page","ratio"],"mappings":"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","file":"PdfDriver-RLN2RLDS.mjs","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport debounce from 'lodash.debounce';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport 'react-pdf/dist/Page/AnnotationLayer.css';\nimport 'react-pdf/dist/Page/TextLayer.css';\nimport { Virtuoso, VirtuosoHandle } from 'react-virtuoso';\nimport { Box, Button, ChevronDownIcon, ChevronUpIcon, MinusIcon, PlusIcon, Typography } from '../../../Core';\n\nconst BASE_DIR = '/pdfjs';\n\n// Set up the worker - self-hosted configuration (client-side only)\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n pdfjs.GlobalWorkerOptions.workerSrc = `${BASE_DIR}/pdf.worker.min.js`;\n}\n\ninterface PdfDriverProps {\n url: string;\n}\nconst SCROLL_ANIMATION_DURATION = 1000;\nconst INPUT_DEBOUNCE_DELAY = 400;\nconst RESIZE_DEBOUNCE_DELAY = 150;\nconst CONTAINER_PADDING = 70;\nconst DEFAULT_RATIO_A4 = 1.414;\nconst DEFAULT_MIN_SIZE = 400;\n\nexport const PdfDriver: React.FC<PdfDriverProps> = ({ url }) => {\n const [numPages, setNumPages] = useState<number>(0);\n const [pageNumber, setPageNumber] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n const [width, setWidth] = useState<number>(DEFAULT_MIN_SIZE);\n const [height, setHeight] = useState<number>(DEFAULT_MIN_SIZE);\n const [scale, setScale] = useState(1);\n const [defaultPageHeight, setDefaultPageHeight] = useState(DEFAULT_MIN_SIZE);\n const [pageAspectRatio, setPageAspectRatio] = useState(DEFAULT_RATIO_A4);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const virtuosoRef = useRef<VirtuosoHandle>(null);\n const isUserScrollingRef = useRef<boolean>(false);\n const scrollTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const isMountedRef = useRef(false);\n\n const scrollToPage = useCallback(\n (page: number, smooth = true) => {\n if (page < 1 || page > numPages) return;\n\n isUserScrollingRef.current = true;\n virtuosoRef.current?.scrollToIndex({\n index: page - 1,\n align: 'start',\n behavior: smooth ? 'smooth' : 'auto',\n });\n\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n\n scrollTimeoutRef.current = setTimeout(() => {\n if (isMountedRef.current) isUserScrollingRef.current = false;\n }, SCROLL_ANIMATION_DURATION);\n },\n [numPages]\n );\n\n const debouncedScroll = useMemo(() => {\n return debounce((page: number, smooth = false) => {\n scrollToPage(page, smooth);\n }, INPUT_DEBOUNCE_DELAY);\n }, [scrollToPage]);\n\n const handleZoomIn = useCallback(() => {\n setScale((prev) => Math.min(prev + 0.25, 4));\n }, []);\n\n const handleZoomOut = useCallback(() => {\n setScale((prev) => Math.max(prev - 0.25, 0.25));\n }, []);\n\n useEffect(() => {\n if (!containerRef.current) return;\n const updateSize = debounce(() => {\n if (containerRef.current) {\n setWidth(containerRef.current.offsetWidth - CONTAINER_PADDING);\n setHeight(containerRef.current.clientHeight);\n }\n }, RESIZE_DEBOUNCE_DELAY);\n updateSize();\n const observer = new ResizeObserver(updateSize);\n observer.observe(containerRef.current);\n return () => {\n observer.disconnect();\n updateSize.cancel();\n };\n }, []);\n\n const options = useMemo(\n () => ({\n cMapPacked: true,\n cMapUrl: `${BASE_DIR}/cmaps/`,\n standardFontDataUrl: `${BASE_DIR}/standard_fonts/`,\n wasmUrl: `${BASE_DIR}/wasm/`,\n iccUrl: `${BASE_DIR}/icc/`,\n }),\n []\n );\n\n const onDocumentLoadSuccess = useCallback(({ numPages }: { numPages: number }): void => {\n setNumPages(numPages);\n setLoading(false);\n }, []);\n\n const onDocumentLoadError = useCallback((error: Error): void => {\n setError(`Failed to load PDF: ${error.message}`);\n setLoading(false);\n }, []);\n\n const changePage = useCallback(\n (offset: number): void => {\n const newPage = pageNumber + offset;\n setPageNumber(newPage);\n scrollToPage(newPage);\n },\n [pageNumber, scrollToPage]\n );\n\n const previousPage = useCallback((): void => {\n changePage(-1);\n }, [changePage]);\n\n const nextPage = useCallback((): void => {\n changePage(1);\n }, [changePage]);\n\n const handleRangeChanged = useCallback(\n (range: { startIndex: number; endIndex: number }) => {\n if (isUserScrollingRef.current) {\n return;\n }\n const visiblePage = range.startIndex + 1;\n if (visiblePage !== pageNumber) {\n setPageNumber(visiblePage);\n }\n },\n [pageNumber]\n );\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n debouncedScroll.cancel();\n if (scrollTimeoutRef.current) {\n clearTimeout(scrollTimeoutRef.current);\n }\n };\n }, [debouncedScroll]);\n\n useEffect(() => {\n setDefaultPageHeight(width * scale * pageAspectRatio);\n }, [width, scale, pageAspectRatio]);\n\n if (error) {\n return (\n <div className=\"flex items-center justify-center h-full w-full px-8.5\">\n <div className=\"text-red-500 text-center\">\n <p>{error}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full flex flex-col overflow-hidden pb-5\">\n {loading && (\n <div className=\"flex items-center justify-center h-full px-8.5\">\n <div className=\"text-gray-500 dark:text-gray-400\">Loading PDF...</div>\n </div>\n )}\n {numPages > 0 && (\n <div className=\"flex items-center justify-center md:justify-between flex-wrap gap-3 px-8.5 py-3\">\n <Box py={4} px={8} className=\"flex items-center justify-start gap-1 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Page:\n </Typography>\n <span className=\"flex items-center gap-2 text-[12px]\">\n <input\n type=\"number\"\n min={1}\n max={numPages}\n value={pageNumber}\n onChange={(e) => {\n const page = parseInt(e.target.value, 10);\n if (page >= 1 && page <= numPages) {\n setPageNumber(page);\n debouncedScroll(page, false);\n }\n }}\n className=\"w-15 px-1 py-1 text-end text-[12px]\"\n />\n / {numPages}\n </span>\n <div className=\"flex flex-col gap-0.25 pl-1\">\n <Button\n variant=\"empty\"\n aria-label=\"previous page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber <= 1}\n onClick={previousPage}\n icon={<ChevronUpIcon style={{ width: 8, height: 8 }} />}\n />\n <Button\n variant=\"empty\"\n aria-label=\"next page\"\n color=\"secondary\"\n size=\"small\"\n type=\"button\"\n disabled={pageNumber >= numPages}\n onClick={nextPage}\n icon={<ChevronDownIcon style={{ width: 8, height: 8 }} />}\n />\n </div>\n </Box>\n <div className=\"flex items-center justify-center gap-3\">\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-out\"\n color=\"default\"\n size=\"small\"\n icon={<MinusIcon style={{ width: 20, height: 20 }} />}\n onClick={handleZoomOut}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale <= 0.25}\n p={7}\n />\n <Box py={8} px={8} className=\"flex items-center justify-between gap-1.5 min-w-21 rounded-[5px]!\">\n <Typography color=\"text.lighter\" style={{ fontSize: 10 }}>\n Scale:\n </Typography>\n <Typography>{scale * 100}%</Typography>\n </Box>\n <Button\n variant=\"outlined\"\n aria-label=\"zoom-in\"\n size=\"small\"\n color=\"default\"\n icon={<PlusIcon style={{ width: 14, height: 14 }} />}\n onClick={handleZoomIn}\n className=\"bg-white! dark:bg-neutral-800! hover:bg-blue-50! dark:hover:bg-neutral-700!\"\n disabled={scale >= 4}\n p={10}\n />\n </div>\n </div>\n )}\n <div ref={containerRef} className=\"flex-1 overflow-hidden min-h-0\">\n <Document\n options={options}\n file={url}\n onLoadSuccess={onDocumentLoadSuccess}\n onLoadError={onDocumentLoadError}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n >\n <Virtuoso\n ref={virtuosoRef}\n style={{ height: height || 'calc(100dvh - 190px)', width: '100%', scrollbarGutter: 'stable both-edges' }}\n totalCount={numPages}\n rangeChanged={handleRangeChanged}\n defaultItemHeight={defaultPageHeight}\n itemContent={(index) => (\n <div className=\"mx-auto w-fit mb-4 border border-1 border-gray-100 dark:border-neutral-800\">\n <Page\n pageNumber={index + 1}\n renderTextLayer={true}\n renderAnnotationLayer={true}\n width={width * scale}\n onLoadSuccess={(page) => {\n if (index === 0) {\n const ratio = page.height / page.width;\n setPageAspectRatio(ratio);\n }\n }}\n loading={\n <div className=\"flex items-center justify-center\" style={{ height: defaultPageHeight }}>\n <div className=\"h-10 w-10 rounded-full border border-2 border-gray-200 dark:border-neutral-700 animate-spin border-s-transparent\" />\n </div>\n }\n className=\"h-auto w-full transition-[width] duration-[600ms] ease-in-out\"\n />\n </div>\n )}\n />\n </Document>\n </div>\n </div>\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- 'use strict';var q4=require('react'),s1=require('styled-components'),jsxRuntime=require('react/jsx-runtime'),reactTinyPopover=require('react-tiny-popover'),reactDom=require('react-dom'),Y8=require('react-content-loader');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var q4__default=/*#__PURE__*/_interopDefault(q4);var s1__default=/*#__PURE__*/_interopDefault(s1);var Y8__default=/*#__PURE__*/_interopDefault(Y8);var z4=Object.defineProperty;var r=(o,e)=>z4(o,"name",{value:e,configurable:true});var V1=r((o,e)=>{if(!e||typeof e!="string")return;if(!(e.includes(".")||o.colors.hasOwnProperty(e)))return e;let i=e.split(".");if(i.length===1)return o.colors[i[0]];if(i.length===2){let[C,s]=i,l=o.colors[C];if(l&&typeof l=="object")return l[s]}},"resolveThemeColor"),c=r((o,e=16)=>{let t=typeof o=="string"?parseFloat(o.replace("px","")):o;return isNaN(t)?(console.warn(`Invalid pixel value: ${o}`),"0"):`${(t/e).toFixed(4).replace(/\.?0+$/,"")}rem`},"pxToRem"),s5=r((o,e=16)=>{let t=typeof o=="string"?parseFloat(o.replace("rem","")):o;return isNaN(t)?0:t*e},"remToPx"),u2={contextMenu:["padding"],baseSize:true},T=r((o,e=16)=>{if(typeof o=="string"&&/(%|d?vh|d?vw|d?rem)$/.test(o.trim()))return o;let t=typeof o=="string"?parseFloat(o):o;return isNaN(t)?`${o}`:`${(t/e).toFixed(4).replace(/\.?0+$/,"")}rem`},"propToRem"),c1=r((o,e=14,t)=>{let i={};return Object.entries(o).forEach(([C,s])=>{s!==null&&typeof s=="object"&&!Array.isArray(s)?i[C]=c1(s,e,C):typeof s=="string"&&/^\d+(\.\d+)?px$/.test(s.trim())||typeof s=="number"&&["fontSize","width","height","padding","margin","gap","borderRadius","size"].some(l=>C.toLowerCase().includes(l.toLowerCase()))&&!(t&&Array.isArray(u2[t])&&u2[t].includes(C))&&!u2[C]?i[C]=c(s,e):i[C]=s;}),i},"convertPaletteToRem"),R=r((o,e,t,i)=>o.button[e][t][i],"getButtonStyles"),O=r((o,e)=>o.button.sizes[e],"getButtonSizeStyles"),b9=r((o,e,t)=>o.input[e][t],"getInputStyles"),u9=r((o,e="body")=>o.typography.variants[e]||o.typography.variants.body,"getTypographyStyles"),h9=r((o,e="m")=>`@media (min-width: ${o.breakpoints[e]}px)`,"getBreakpoint"),L1=r((o,e)=>{try{let t=parseInt(o.slice(1,3),16),i=parseInt(o.slice(3,5),16),C=parseInt(o.slice(5,7),16);return `rgba(${t}, ${i}, ${C}, ${e})`}catch{return o}},"hexToRgba");var H1={dropdown:1e3,sticky:1020,fixed:1030,backdrop:1040,modal:1050,popover:1060,tooltip:1070},o1={xs:320,s:576,m:768,l:992,xl:1200},F1={fontFamily:"var(--font-family)",lineHeight:1.49,variants:{h1:{fontSize:22},h2:{fontSize:16},h3:{fontSize:14},body:{fontSize:12}}};var l5={mode:"light",baseSize:14,colors:{background:"#ffffff",backgroundBase:"#F7F8FC",primary:{main:"#0042EC",light:"#80A0F5",lighter:"#E5ECFD",lightest:"#F3F7FF",lightest2:"rgba(0, 66, 236, 0.05)",dark:"#10253A"},text:{main:"#101010",light:"#535353",lighter:"#99989C",invert:"#ffffff",success:"#31B083",error:"#C93939"},stroke:{main:"#C7C5C5",light:"#EBEBEB",lighter:"#F3F3F3"},disable:"#FAFAFA",success:"#27AE60",error:"#C93939",warning:"#F2994A",info:"#2F80ED"},typography:F1,breakpoints:o1,zIndex:H1,line:{size:1,color:"#EBEBEB"},button:{fill:{default:{default:{background:"#E8EAEE",text:"#101010",border:" #E8EAEE",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},primary:{default:{background:"#0042EC",text:"#FFFFFF",border:" #0042EC",boxShadow:"none"},hover:{background:"#4D7BF2",text:"#FFFFFF",border:" #4D7BF2",boxShadow:"none"},active:{background:"#4D7BF2",text:"#FFFFFF",border:" #4D7BF2",boxShadow:"none"},disabled:{background:"#99989C",text:"#FFFFFF",border:" #E5ECFD",boxShadow:"none"}},secondary:{default:{background:"#E8EAEE",text:"#101010",border:" #E8EAEE",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},error:{default:{background:"#C93939",text:"#FFFFFF",border:" #C93939",boxShadow:"none"},hover:{background:"#C53939",text:"#FFFFFF",border:" #C53939",boxShadow:"none"},active:{background:"#C53939",text:"#FFFFFF",border:" #C53939",boxShadow:"none"},disabled:{background:"#FFCCCB",text:"#FFFFFF",border:" #FFCCCB",boxShadow:"none"}},soft:{default:{background:"#80A0F5",text:"#FFFFFF",border:"#80A0F5",boxShadow:"none"},hover:{background:"#0042EC",text:"#FFFFFF",border:"#0042EC",boxShadow:"none"},active:{background:"#0042EC",text:"#FFFFFF",border:"#0042EC",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"#535353",text:"#FFFFFF",border:"#535353",boxShadow:"none"},hover:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},active:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},outlined:{default:{default:{background:"transparent",text:"#101010",border:"#E6E7EB",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#101010",border:"#E6E7EB",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:"#E6E7EB",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"#E6E7EB",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#0042EC",border:" #0042EC",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#0042EC",border:" #0042EC",boxShadow:"none"},active:{background:"#E5ECFD",text:"#0042EC",border:" #0042EC",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},secondary:{default:{background:"transparent",text:"#0042EC",border:"#E6E7EB",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#0042EC",border:"#E6E7EB",boxShadow:"none"},active:{background:"#E5ECFD",text:"#0042EC",border:"#E6E7EB",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"#E6E7EB",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:" #C93939",boxShadow:"none"},hover:{background:"#FCF5F5",text:"#C93939",border:" #C93939",boxShadow:"none"},active:{background:"#FCF5F5",text:"#C93939",border:" #C93939",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},active:{background:"#E5ECFD",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"transparent",text:"#535353",border:"#EBEBEB",boxShadow:"none"},hover:{background:"#EEEEEE",text:"#535353",border:"#EBEBEB",boxShadow:"none"},active:{background:"#EEEEEE",text:"#535353",border:"#EBEBEB",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},empty:{default:{default:{background:"transparent",text:"#101010",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#0042EC",border:"transparent",boxShadow:"none",filledIcon:{background:"#E5ECFD",color:"#0042EC"}},hover:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none",filledIcon:{background:"#0042EC",color:"#ffffff"}},active:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none",filledIcon:{background:"#0042EC",color:"#ffffff"}},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none",filledIcon:{background:"#BEBEBE",color:"#99989C"}}},secondary:{default:{background:"transparent",text:"#101010",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#0042EC",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#0042EC",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#E17878",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#D85B5B",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},light:{default:{background:"transparent",text:"#535353",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}}},sizes:{small:{fontSize:14,iconSize:16,paddingInline:12,paddingBlock:8,borderRadius:8,borderWidth:1,gap:8},medium:{fontSize:16,iconSize:16,paddingInline:14,paddingBlock:10,borderRadius:10,borderWidth:1,gap:8}}},sidebar:{background:"#FFFFFF",border:"#EBEBEB",width:242,collapsedWidth:65,text:{default:"#535353",active:"#0042EC",hover:"#0042EC"},item:{default:{background:"transparent",border:"transparent",padding:"10px 16px",height:40},active:{background:"#E5ECFD",borderLeft:"2px solid #0042EC",padding:"10px 16px",height:40},hover:{background:"#F3F7FF",border:"transparent",padding:"10px 16px",height:40}},section:{background:"transparent",padding:"16px 16px 8px",title:{color:"#99989C",fontSize:"12px",fontWeight:600}},delimeter:{color:"#C7C5C5",thickness:1,margin:"8px 0"}},contextMenu:{button:{default:{background:"transparent",text:"#101010",border:" #EBEBEB",boxShadow:"none"},hover:{background:"transparent",text:"#0042EC",border:" #EBEBEB",boxShadow:"none"},active:{background:"transparent",text:"#0042EC",border:" #EBEBEB",boxShadow:"none"},disabled:{background:"#FAFAFA",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},delimeter:{color:"#C7C5C5",thickness:1,marginInline:12,marginBlock:3,style:"solid"},shadow:"0px 10px 40px -4px rgba(0, 0, 0, 0.06), 0px 2px 8px -2px rgba(0, 0, 0, 0.04)",padding:6,icon:{size:7}},select:{item:{default:{background:"transparent",text:"#101010",border:" none",boxShadow:"none"},hover:{background:"#F3F4F6",text:"#101010",border:" none",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:" none",boxShadow:"none"},disabled:{background:"#FAFAFA",text:"#99989C",border:" none",boxShadow:"none"}},paddingBlock:6,paddingInline:6,margin:2,padding:8},rowActionsMenu:{button:{default:{background:"transparent",text:"#101010",border:" none",boxShadow:"none"},hover:{background:"transparent",text:"#0042EC",border:" none",boxShadow:"none"},active:{background:"transparent",text:"#0042EC",border:" none",boxShadow:"none"},disabled:{background:"#FAFAFA",text:"#99989C",border:" none",boxShadow:"none"}},delimiterColor:"#C7C5C5",icon:{size:16}},input:{sizes:{empty:{fontSize:14,paddingInline:0,paddingBlock:0,borderRadius:0,iconSize:14,height:"auto",lineHeight:16},small:{fontSize:14,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:14,height:40,lineHeight:16},medium:{fontSize:16,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:16,height:40,lineHeight:18}},outlined:{default:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" #EBEBEB",boxShadow:"none",icon:"#101010"},focus:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" #0042EC",boxShadow:"none",icon:"#101010"},error:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" #C93939",boxShadow:"none",icon:"#C93939"},disabled:{background:"#FAFAFA",text:"#99989C",placeholder:"#99989C",border:" #EBEBEB",boxShadow:"none",icon:"#99989C"}},empty:{default:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#101010"},focus:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#101010"},error:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#C93939"},disabled:{background:"#FAFAFA",text:"#99989C",placeholder:"#99989C",border:"transparent",boxShadow:"none",icon:"#99989C"}}},box:{padding:20,borderRadius:8,border:{width:1,style:"solid",color:"#E6E7EB"},background:"#FFFFFF"},graph2D:{ring:{highlightFill:"rgba(255, 165, 0, 0.3)",selectionFill:"rgba(0, 66, 236, 0.3)"},button:{stroke:"#e5e5e5",normalFill:"rgba(255, 255, 255, 0.8)",hoverFill:"rgba(230, 230, 230, 0.9)",textColor:"#99989C",spinnerColor:"#80A0F5"},grid:{dotColor:"rgba(0, 0, 0, 0.5)"},link:{normal:"#999",highlighted:"#ff9900",textColor:"#666",highlightedTextColor:"#663300",textBgColor:"rgba(255, 255, 255, 0.8)",highlightedTextBgColor:"rgba(255, 230, 204, 0.9)"}},contentLoader:{foreground:"#E2E2E2E2",background:"#F3F3F3"},tag:{outlined:{borderRadius:50,paddingBlock:5,paddingInline:10,borderWidth:1,color:{default:"#535353",primary:"#0042EC",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#101010",orange:"#d3741b"}},fill:{borderRadius:4,paddingBlock:5,paddingInline:10,borderWidth:0,color:{default:"#535353",primary:"#0042EC",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#101010",orange:"#d3741b"}}},alert:{paddingBlock:16,paddingLeft:16,paddingRight:44,borderRadius:5,fontSize:14,gap:12,icon:{width:16,height:14,paddingTop:2},color:{icon:"#FDC700",text:"#894B00",background:"#FFFBE0"}},label:{sizes:{small:{fontSize:14,gap:10,marginBottom:20,helpText:{fontSize:12,marginTop:5}},medium:{fontSize:16,gap:10,marginBottom:25,helpText:{fontSize:14,marginTop:5}}},color:"#101010",helpTextColor:"#99989C"},leanerProgress:{background:"#EBEBEB",progressColor:"#0042EC"},switch:{default:{background:"#C7C5C5",color:"#FFFFFF"},checked:{background:"#0042EC",color:"#FFFFFF"},disabled:{background:"#EBEBEB",color:"#FFFFFF"}},drawer:{padding:20,width:573,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)"},tooltip:{fontSize:14,padding:10,borderRadius:6,maxWidth:240,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)",color:"#535353",background:"#EBEBEB"},pagination:{fontSize:14,paddingBlock:4,paddingInline:8,borderRadius:3,gap:6,height:26,iconSize:8},overlay:{paddingBlock:40,gap:6,background:"rgba(16, 16, 16, 0.1)"},modal:{padding:20,width:545,shadow:"0px 0px 10px 0px rgba(0, 0, 0, 0.25)",borderColor:"#EBEBEB",background:"#FFFFFF",borderRadius:8}},d5=c1(l5,l5.baseSize);var p5={mode:"dark",baseSize:14,colors:{background:"#0F1317",backgroundBase:"#000000",primary:{main:"#158EFF",light:"#80A0F5",lighter:"#10253A",lightest:"#020E19",lightest2:"rgba(0, 66, 236, 0.05)",dark:"#80A0F5"},text:{main:"#FFFFFF",light:"#99989C",lighter:"#535353",invert:"#101010",success:"#31B083",error:"#C93939"},stroke:{main:"#34404C",light:"#1E2226",lighter:"#333333"},disable:"#080A0C",success:"#27AE60",error:"#C93939",warning:"#F2994A",info:"#2F80ED"},typography:F1,breakpoints:o1,zIndex:H1,line:{size:1,color:"#1E2226"},button:{fill:{default:{default:{background:"#1E2226",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},disabled:{background:"#1E2226",text:"#99989C",border:" #1E2226",boxShadow:"none"}},primary:{default:{background:"#158EFF",text:"#FFFFFF",border:" #158EFF",boxShadow:"none"},hover:{background:"#44a5ff",text:"#FFFFFF",border:" #44a5ff",boxShadow:"none"},active:{background:"#44a5ff",text:"#FFFFFF",border:" #44a5ff",boxShadow:"none"},disabled:{background:"#99989C",text:"#FFFFFF",border:" #10253A",boxShadow:"none"}},secondary:{default:{background:"#1E2226",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},disabled:{background:"#1E2226",text:"#99989C",border:" #1E2226",boxShadow:"none"}},error:{default:{background:"#C93939",text:"#FFFFFF",border:" #C93939",boxShadow:"none"},hover:{background:"#d46161",text:"#FFFFFF",border:" #d46161",boxShadow:"none"},active:{background:"#d46161",text:"#FFFFFF",border:" #d46161",boxShadow:"none"},disabled:{background:"#511616",text:"#FFFFFF",border:" #511616",boxShadow:"none"}},soft:{default:{background:"#80A0F5",text:"#FFFFFF",border:"#80A0F5",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:"#10253A",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:"#10253A",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"#535353",text:"#FFFFFF",border:"#535353",boxShadow:"none"},hover:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},active:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},outlined:{default:{default:{background:"transparent",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #1E2226",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#158EFF",border:" #158EFF",boxShadow:"none"},hover:{background:"#10253A",text:"#158EFF",border:" #158EFF",boxShadow:"none"},active:{background:"#10253A",text:"#158EFF",border:" #158EFF",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},secondary:{default:{background:"transparent",text:"#158EFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#158EFF",border:" #1E2226",boxShadow:"none"},active:{background:"#10253A",text:"#158EFF",border:" #1E2226",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #1E2226",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:" #C93939",boxShadow:"none"},hover:{background:"#290b0b",text:"#C93939",border:" #290b0b",boxShadow:"none"},active:{background:"#290b0b",text:"#C93939",border:" #290b0b",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},hover:{background:"#1A212D",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},active:{background:"#1A212D",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"transparent",text:"#E8EAEE",border:"#34404C",boxShadow:"none"},hover:{background:"#222A32",text:"#E8EAEE",border:"#34404C",boxShadow:"none"},active:{background:"#222A32",text:"#E8EAEE",border:"#34404C",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},empty:{default:{default:{background:"transparent",text:"#FFFFFF",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#158EFF",border:"transparent",boxShadow:"none",filledIcon:{background:"#10253A",color:"#158EFF"}},hover:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none",filledIcon:{background:"#158EFF",color:"#0F1317"}},active:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none",filledIcon:{background:"#158EFF",color:"#0F1317"}},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none",filledIcon:{background:"#BEBEBE",color:"#99989C"}}},secondary:{default:{background:"transparent",text:"#FFFFFF",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#158EFF",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#158EFF",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#d46161",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#d46161",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},light:{default:{background:"transparent",text:"#E8EAEE",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#34404C",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#34404C",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}}},sizes:{small:{fontSize:14,iconSize:16,paddingInline:12,paddingBlock:8,borderRadius:8,borderWidth:1,gap:8},medium:{fontSize:16,iconSize:16,paddingInline:14,paddingBlock:10,borderRadius:10,borderWidth:1,gap:8}}},sidebar:{background:"#0F1317",border:"#1E2226",width:242,collapsedWidth:65,text:{default:"#99989C",active:"#158EFF",hover:"#158EFF"},item:{default:{background:"transparent",border:"transparent",padding:"10px 16px",height:40},active:{background:"#10253A",borderLeft:"2px solid #158EFF",padding:"10px 16px",height:40},hover:{background:"#020E19",border:"transparent",padding:"10px 16px",height:40}},section:{background:"transparent",padding:"16px 16px 8px",title:{color:"#020b14",fontSize:"12px",fontWeight:600}},delimeter:{color:"#34404C",thickness:1,margin:"8px 0"}},contextMenu:{button:{default:{background:"transparent",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"transparent",text:"#158EFF",border:" #1E2226",boxShadow:"none"},active:{background:"transparent",text:"#158EFF",border:" #1E2226",boxShadow:"none"},disabled:{background:"#080A0C",text:"#99989C",border:" #1E2226",boxShadow:"none"}},delimeter:{color:"#34404C",thickness:1,marginInline:12,marginBlock:3,style:"solid"},shadow:"0px 10px 40px -4px rgba(0, 0, 0, 0.5), 0px 2px 8px -2px rgba(0, 0, 0, 0.3)",padding:6,icon:{size:7}},select:{item:{default:{background:"transparent",text:"#FFFFFF",border:" none",boxShadow:"none"},hover:{background:"#1E2226",text:"#FFFFFF",border:" none",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" none",boxShadow:"none"},disabled:{background:"#080A0C",text:"#99989C",border:" none",boxShadow:"none"}},paddingBlock:6,paddingInline:6,margin:2,padding:8},rowActionsMenu:{button:{default:{background:"transparent",text:"#FFFFFF",border:" none",boxShadow:"none"},hover:{background:"transparent",text:"#158EFF",border:" none",boxShadow:"none"},active:{background:"transparent",text:"#158EFF",border:" none",boxShadow:"none"},disabled:{background:"#080A0C",text:"#99989C",border:" none",boxShadow:"none"}},delimiterColor:"#34404C",icon:{size:16}},input:{sizes:{empty:{fontSize:14,paddingInline:0,paddingBlock:0,borderRadius:0,iconSize:14,height:"auto",lineHeight:16},small:{fontSize:14,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:14,height:40,lineHeight:16},medium:{fontSize:16,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:16,height:40,lineHeight:18}},outlined:{default:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" #1E2226",boxShadow:"none",icon:"#FFFFFF"},focus:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" #158EFF",boxShadow:"none",icon:"#FFFFFF"},error:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" #C93939",boxShadow:"none",icon:"#C93939"},disabled:{background:"#080A0C",text:"#99989C",placeholder:"#99989C",border:" #1E2226",boxShadow:"none",icon:"#99989C"}},empty:{default:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#FFFFFF"},focus:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#FFFFFF"},error:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#C93939"},disabled:{background:"transparent",text:"#99989C",placeholder:"#99989C",border:"transparent",boxShadow:"none",icon:"#99989C"}}},box:{padding:20,borderRadius:8,border:{width:1,style:"solid",color:"#1E2226"},background:"#0F1317"},graph2D:{ring:{highlightFill:"rgba(0, 90, 255, 0.3)",selectionFill:"rgba(0, 90, 255, 0.5)"},button:{stroke:"#1A1A1A",normalFill:"rgba(0, 0, 0, 0.8)",hoverFill:"rgba(25, 25, 25, 0.9)",textColor:"#99989C",spinnerColor:"#80A0F5"},grid:{dotColor:"rgba(255, 255, 255, 0.5)"},link:{normal:"#666",highlighted:"#0066ff",textColor:"#999",highlightedTextColor:"#99ccff",textBgColor:"rgba(0, 0, 0, 0.8)",highlightedTextBgColor:"rgba(0, 25, 51, 0.9)"}},contentLoader:{foreground:"#99989C",background:"#535353"},tag:{outlined:{borderRadius:50,paddingBlock:5,paddingInline:10,borderWidth:1,color:{default:"#99989C",primary:"#3991FA",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#FFFFFF",orange:"#d3741b"}},fill:{borderRadius:4,paddingBlock:5,paddingInline:10,borderWidth:0,color:{default:"#99989C",primary:"#3991FA",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#FFFFFF",orange:"#d3741b"}}},alert:{paddingBlock:16,paddingLeft:16,paddingRight:44,borderRadius:5,fontSize:14,gap:12,icon:{width:16,height:14,paddingTop:2},color:{icon:"#FDC700",text:"#FFEDD8",background:"#68550E"}},label:{sizes:{small:{fontSize:14,gap:10,marginBottom:20,helpText:{fontSize:12,marginTop:5}},medium:{fontSize:16,gap:10,marginBottom:25,helpText:{fontSize:14,marginTop:5}}},color:"#ffffff",helpTextColor:"#535353"},leanerProgress:{background:"#1E2226",progressColor:"#158EFF"},switch:{default:{background:"#34404C",color:"#0F1317"},checked:{background:"#158EFF",color:"#0F1317"},disabled:{background:"#1E2226",color:"#0F1317"}},drawer:{padding:20,width:573,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)"},tooltip:{fontSize:14,padding:10,borderRadius:6,maxWidth:240,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)",color:"#99989C",background:"#1E2226"},pagination:{fontSize:14,paddingBlock:4,paddingInline:8,borderRadius:3,gap:6,height:26,iconSize:8},overlay:{paddingBlock:40,gap:6,background:"rgba(0, 0, 0, 0.5)"},modal:{padding:20,width:545,shadow:"0px 0px 10px 0px rgba(0, 0, 0, 0.25)",borderColor:"#1E2226",background:"#0F1317",borderRadius:8}},c5=c1(p5,p5.baseSize);var h2=r(o=>{if(typeof window<"u"){let t=window.innerWidth;for(let[i,C]of Object.entries(o))if(t<C)return i}let e=Object.keys(o);return e[e.length-1]},"getBreakpoint"),b5=q4.createContext(h2(o1)),u5=r(({children:o})=>{let e=s1.useTheme(),[t,i]=q4.useState(h2(e.breakpoints));return q4.useEffect(()=>{if(typeof window>"u")return;let C=r(()=>{let s=h2(e.breakpoints);s!==t&&i(s);},"handleResize");return window.addEventListener("resize",C),()=>{window.removeEventListener("resize",C);}},[t,e.breakpoints]),jsxRuntime.jsx(b5.Provider,{value:t,children:o})},"BreakpointProvider"),h5=r(()=>{let o=q4.useContext(b5),e=s1.useTheme(),t=q4.useMemo(()=>Object.keys(e.breakpoints),[e.breakpoints]);return {currentBreakpoint:o,breakpointsOrder:t}},"useBreakpoint");var f5=s1.createGlobalStyle(({theme:o})=>`
1
+ 'use strict';var q4=require('react'),s1=require('styled-components'),jsxRuntime=require('react/jsx-runtime'),reactTinyPopover=require('react-tiny-popover'),reactDom=require('react-dom'),Y8=require('react-content-loader');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var q4__default=/*#__PURE__*/_interopDefault(q4);var s1__default=/*#__PURE__*/_interopDefault(s1);var Y8__default=/*#__PURE__*/_interopDefault(Y8);var z4=Object.defineProperty;var r=(o,e)=>z4(o,"name",{value:e,configurable:true});var V1=r((o,e)=>{if(!e||typeof e!="string")return;if(!(e.includes(".")||o.colors.hasOwnProperty(e)))return e;let i=e.split(".");if(i.length===1)return o.colors[i[0]];if(i.length===2){let[C,s]=i,l=o.colors[C];if(l&&typeof l=="object")return l[s]}},"resolveThemeColor"),c=r((o,e=16)=>{let t=typeof o=="string"?parseFloat(o.replace("px","")):o;return isNaN(t)?(console.warn(`Invalid pixel value: ${o}`),"0"):`${(t/e).toFixed(4).replace(/\.?0+$/,"")}rem`},"pxToRem"),s5=r((o,e=16)=>{let t=typeof o=="string"?parseFloat(o.replace("rem","")):o;return isNaN(t)?0:t*e},"remToPx"),u2={contextMenu:["padding"],baseSize:true},T=r((o,e=16)=>{if(typeof o=="string"&&/(%|d?vh|d?vw|d?rem)$/.test(o.trim()))return o;let t=typeof o=="string"?parseFloat(o):o;return isNaN(t)?`${o}`:`${(t/e).toFixed(4).replace(/\.?0+$/,"")}rem`},"propToRem"),c1=r((o,e=14,t)=>{let i={};return Object.entries(o).forEach(([C,s])=>{s!==null&&typeof s=="object"&&!Array.isArray(s)?i[C]=c1(s,e,C):typeof s=="string"&&/^\d+(\.\d+)?px$/.test(s.trim())||typeof s=="number"&&["fontSize","width","height","padding","margin","gap","borderRadius","size"].some(l=>C.toLowerCase().includes(l.toLowerCase()))&&!(t&&Array.isArray(u2[t])&&u2[t].includes(C))&&!u2[C]?i[C]=c(s,e):i[C]=s;}),i},"convertPaletteToRem"),R=r((o,e,t,i)=>o.button[e][t][i],"getButtonStyles"),O=r((o,e)=>o.button.sizes[e],"getButtonSizeStyles"),b9=r((o,e,t)=>o.input[e][t],"getInputStyles"),u9=r((o,e="body")=>o.typography.variants[e]||o.typography.variants.body,"getTypographyStyles"),h9=r((o,e="m")=>`@media (min-width: ${o.breakpoints[e]}px)`,"getBreakpoint"),L1=r((o,e)=>{try{let t=parseInt(o.slice(1,3),16),i=parseInt(o.slice(3,5),16),C=parseInt(o.slice(5,7),16);return `rgba(${t}, ${i}, ${C}, ${e})`}catch{return o}},"hexToRgba");var H1={dropdown:1e3,sticky:1020,fixed:1030,backdrop:1040,modal:1050,popover:1060,tooltip:1070},o1={xs:320,s:576,m:768,l:992,xl:1200},F1={fontFamily:"var(--font-family)",lineHeight:1.49,variants:{h1:{fontSize:22},h2:{fontSize:16},h3:{fontSize:14},body:{fontSize:12}}};var l5={mode:"light",baseSize:14,colors:{background:"#ffffff",backgroundBase:"#F7F8FC",primary:{main:"#0042EC",light:"#80A0F5",lighter:"#E5ECFD",lightest:"#F3F7FF",lightest2:"rgba(0, 66, 236, 0.05)",dark:"#10253A"},text:{main:"#101010",light:"#535353",lighter:"#99989C",invert:"#ffffff",success:"#31B083",error:"#C93939"},stroke:{main:"#C7C5C5",light:"#EBEBEB",lighter:"#F3F3F3"},disable:"#FAFAFA",success:"#27AE60",error:"#C93939",warning:"#F2994A",info:"#2F80ED"},typography:F1,breakpoints:o1,zIndex:H1,line:{size:1,color:"#EBEBEB"},button:{fill:{default:{default:{background:"#E8EAEE",text:"#101010",border:" #E8EAEE",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},primary:{default:{background:"#0042EC",text:"#FFFFFF",border:" #0042EC",boxShadow:"none"},hover:{background:"#4D7BF2",text:"#FFFFFF",border:" #4D7BF2",boxShadow:"none"},active:{background:"#4D7BF2",text:"#FFFFFF",border:" #4D7BF2",boxShadow:"none"},disabled:{background:"#99989C",text:"#FFFFFF",border:" #E5ECFD",boxShadow:"none"}},secondary:{default:{background:"#E8EAEE",text:"#101010",border:" #E8EAEE",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:" #E5ECFD",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},error:{default:{background:"#C93939",text:"#FFFFFF",border:" #C93939",boxShadow:"none"},hover:{background:"#E06060",text:"#FFFFFF",border:" #E06060",boxShadow:"none"},active:{background:"#A82E2E",text:"#FFFFFF",border:" #A82E2E",boxShadow:"none"},disabled:{background:"#FFCCCB",text:"#FFFFFF",border:" #FFCCCB",boxShadow:"none"}},soft:{default:{background:"#80A0F5",text:"#FFFFFF",border:"#80A0F5",boxShadow:"none"},hover:{background:"#0042EC",text:"#FFFFFF",border:"#0042EC",boxShadow:"none"},active:{background:"#0042EC",text:"#FFFFFF",border:"#0042EC",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"#535353",text:"#FFFFFF",border:"#535353",boxShadow:"none"},hover:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},active:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},outlined:{default:{default:{background:"transparent",text:"#101010",border:"#E6E7EB",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#101010",border:"#E6E7EB",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:"#E6E7EB",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"#E6E7EB",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#0042EC",border:" #0042EC",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#0042EC",border:" #0042EC",boxShadow:"none"},active:{background:"#E5ECFD",text:"#0042EC",border:" #0042EC",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},secondary:{default:{background:"transparent",text:"#0042EC",border:"#E6E7EB",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#0042EC",border:"#E6E7EB",boxShadow:"none"},active:{background:"#E5ECFD",text:"#0042EC",border:"#E6E7EB",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"#E6E7EB",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:" #C93939",boxShadow:"none"},hover:{background:"#FCF5F5",text:"#C93939",border:" #C93939",boxShadow:"none"},active:{background:"#FCF5F5",text:"#C93939",border:" #C93939",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},hover:{background:"#E5ECFD",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},active:{background:"#E5ECFD",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"transparent",text:"#535353",border:"#EBEBEB",boxShadow:"none"},hover:{background:"#EEEEEE",text:"#535353",border:"#EBEBEB",boxShadow:"none"},active:{background:"#EEEEEE",text:"#535353",border:"#EBEBEB",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},empty:{default:{default:{background:"transparent",text:"#101010",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#0042EC",border:"transparent",boxShadow:"none",filledIcon:{background:"#E5ECFD",color:"#0042EC"}},hover:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none",filledIcon:{background:"#0042EC",color:"#ffffff"}},active:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none",filledIcon:{background:"#0042EC",color:"#ffffff"}},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none",filledIcon:{background:"#BEBEBE",color:"#99989C"}}},secondary:{default:{background:"transparent",text:"#101010",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#0042EC",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#0042EC",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#E06060",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#A82E2E",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},light:{default:{background:"transparent",text:"#535353",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}}},sizes:{small:{fontSize:14,iconSize:16,paddingInline:12,paddingBlock:8,borderRadius:8,borderWidth:1,gap:8},medium:{fontSize:16,iconSize:16,paddingInline:14,paddingBlock:10,borderRadius:10,borderWidth:1,gap:8}}},sidebar:{background:"#FFFFFF",border:"#EBEBEB",width:242,collapsedWidth:65,text:{default:"#535353",active:"#0042EC",hover:"#0042EC"},item:{default:{background:"transparent",border:"transparent",padding:"10px 16px",height:40},active:{background:"#E5ECFD",borderLeft:"2px solid #0042EC",padding:"10px 16px",height:40},hover:{background:"#F3F7FF",border:"transparent",padding:"10px 16px",height:40}},section:{background:"transparent",padding:"16px 16px 8px",title:{color:"#99989C",fontSize:"12px",fontWeight:600}},delimeter:{color:"#C7C5C5",thickness:1,margin:"8px 0"}},contextMenu:{button:{default:{background:"transparent",text:"#101010",border:" #EBEBEB",boxShadow:"none"},hover:{background:"transparent",text:"#0042EC",border:" #EBEBEB",boxShadow:"none"},active:{background:"transparent",text:"#0042EC",border:" #EBEBEB",boxShadow:"none"},disabled:{background:"#FAFAFA",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},delimeter:{color:"#C7C5C5",thickness:1,marginInline:12,marginBlock:3,style:"solid"},shadow:"0px 10px 40px -4px rgba(0, 0, 0, 0.06), 0px 2px 8px -2px rgba(0, 0, 0, 0.04)",padding:6,icon:{size:7}},select:{item:{default:{background:"transparent",text:"#101010",border:" none",boxShadow:"none"},hover:{background:"#F3F4F6",text:"#101010",border:" none",boxShadow:"none"},active:{background:"#E5ECFD",text:"#101010",border:" none",boxShadow:"none"},disabled:{background:"#FAFAFA",text:"#99989C",border:" none",boxShadow:"none"}},paddingBlock:6,paddingInline:6,margin:2,padding:8},rowActionsMenu:{button:{default:{background:"transparent",text:"#101010",border:" none",boxShadow:"none"},hover:{background:"transparent",text:"#0042EC",border:" none",boxShadow:"none"},active:{background:"transparent",text:"#0042EC",border:" none",boxShadow:"none"},disabled:{background:"#FAFAFA",text:"#99989C",border:" none",boxShadow:"none"}},delimiterColor:"#C7C5C5",icon:{size:16}},input:{sizes:{empty:{fontSize:14,paddingInline:0,paddingBlock:0,borderRadius:0,iconSize:14,height:"auto",lineHeight:16},small:{fontSize:14,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:14,height:40,lineHeight:16},medium:{fontSize:16,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:16,height:40,lineHeight:18}},outlined:{default:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" #EBEBEB",boxShadow:"none",icon:"#101010"},focus:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" #0042EC",boxShadow:"none",icon:"#101010"},error:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" #C93939",boxShadow:"none",icon:"#C93939"},disabled:{background:"#FAFAFA",text:"#99989C",placeholder:"#99989C",border:" #EBEBEB",boxShadow:"none",icon:"#99989C"}},empty:{default:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#101010"},focus:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#101010"},error:{background:"transparent",text:"#101010",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#C93939"},disabled:{background:"#FAFAFA",text:"#99989C",placeholder:"#99989C",border:"transparent",boxShadow:"none",icon:"#99989C"}}},box:{padding:20,borderRadius:8,border:{width:1,style:"solid",color:"#E6E7EB"},background:"#FFFFFF"},graph2D:{ring:{highlightFill:"rgba(255, 165, 0, 0.3)",selectionFill:"rgba(0, 66, 236, 0.3)"},button:{stroke:"#e5e5e5",normalFill:"rgba(255, 255, 255, 0.8)",hoverFill:"rgba(230, 230, 230, 0.9)",textColor:"#99989C",spinnerColor:"#80A0F5"},grid:{dotColor:"rgba(0, 0, 0, 0.5)"},link:{normal:"#999",highlighted:"#ff9900",textColor:"#666",highlightedTextColor:"#663300",textBgColor:"rgba(255, 255, 255, 0.8)",highlightedTextBgColor:"rgba(255, 230, 204, 0.9)"}},contentLoader:{foreground:"#E2E2E2E2",background:"#F3F3F3"},tag:{outlined:{borderRadius:50,paddingBlock:5,paddingInline:10,borderWidth:1,color:{default:"#535353",primary:"#0042EC",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#101010",orange:"#d3741b"}},fill:{borderRadius:4,paddingBlock:5,paddingInline:10,borderWidth:0,color:{default:"#535353",primary:"#0042EC",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#101010",orange:"#d3741b"}}},alert:{paddingBlock:16,paddingLeft:16,paddingRight:44,borderRadius:5,fontSize:14,gap:12,icon:{width:16,height:14,paddingTop:2},color:{icon:"#FDC700",text:"#894B00",background:"#FFFBE0"}},label:{sizes:{small:{fontSize:14,gap:10,marginBottom:20,helpText:{fontSize:12,marginTop:5}},medium:{fontSize:16,gap:10,marginBottom:25,helpText:{fontSize:14,marginTop:5}}},color:"#101010",helpTextColor:"#99989C"},leanerProgress:{background:"#EBEBEB",progressColor:"#0042EC"},switch:{default:{background:"#C7C5C5",color:"#FFFFFF"},checked:{background:"#0042EC",color:"#FFFFFF"},disabled:{background:"#EBEBEB",color:"#FFFFFF"}},drawer:{padding:20,width:573,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)"},tooltip:{fontSize:14,padding:10,borderRadius:6,maxWidth:240,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)",color:"#535353",background:"#EBEBEB"},pagination:{fontSize:14,paddingBlock:4,paddingInline:8,borderRadius:3,gap:6,height:26,iconSize:8},overlay:{paddingBlock:40,gap:6,background:"rgba(16, 16, 16, 0.1)"},modal:{padding:20,width:545,shadow:"0px 0px 10px 0px rgba(0, 0, 0, 0.25)",borderColor:"#EBEBEB",background:"#FFFFFF",borderRadius:8}},d5=c1(l5,l5.baseSize);var p5={mode:"dark",baseSize:14,colors:{background:"#0F1317",backgroundBase:"#000000",primary:{main:"#158EFF",light:"#80A0F5",lighter:"#10253A",lightest:"#020E19",lightest2:"rgba(0, 66, 236, 0.05)",dark:"#80A0F5"},text:{main:"#FFFFFF",light:"#99989C",lighter:"#535353",invert:"#101010",success:"#31B083",error:"#C93939"},stroke:{main:"#34404C",light:"#1E2226",lighter:"#333333"},disable:"#080A0C",success:"#27AE60",error:"#C93939",warning:"#F2994A",info:"#2F80ED"},typography:F1,breakpoints:o1,zIndex:H1,line:{size:1,color:"#1E2226"},button:{fill:{default:{default:{background:"#1E2226",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},disabled:{background:"#1E2226",text:"#99989C",border:" #1E2226",boxShadow:"none"}},primary:{default:{background:"#158EFF",text:"#FFFFFF",border:" #158EFF",boxShadow:"none"},hover:{background:"#44a5ff",text:"#FFFFFF",border:" #44a5ff",boxShadow:"none"},active:{background:"#44a5ff",text:"#FFFFFF",border:" #44a5ff",boxShadow:"none"},disabled:{background:"#99989C",text:"#FFFFFF",border:" #10253A",boxShadow:"none"}},secondary:{default:{background:"#1E2226",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" #10253A",boxShadow:"none"},disabled:{background:"#1E2226",text:"#99989C",border:" #1E2226",boxShadow:"none"}},error:{default:{background:"#C93939",text:"#FFFFFF",border:" #C93939",boxShadow:"none"},hover:{background:"#d46161",text:"#FFFFFF",border:" #d46161",boxShadow:"none"},active:{background:"#d46161",text:"#FFFFFF",border:" #d46161",boxShadow:"none"},disabled:{background:"#511616",text:"#FFFFFF",border:" #511616",boxShadow:"none"}},soft:{default:{background:"#80A0F5",text:"#FFFFFF",border:"#80A0F5",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:"#10253A",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:"#10253A",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"#535353",text:"#FFFFFF",border:"#535353",boxShadow:"none"},hover:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},active:{background:"#99989C",text:"#FFFFFF",border:"#99989C",boxShadow:"none"},disabled:{background:"#EBEBEB",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},outlined:{default:{default:{background:"transparent",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #1E2226",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#158EFF",border:" #158EFF",boxShadow:"none"},hover:{background:"#10253A",text:"#158EFF",border:" #158EFF",boxShadow:"none"},active:{background:"#10253A",text:"#158EFF",border:" #158EFF",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},secondary:{default:{background:"transparent",text:"#158EFF",border:" #1E2226",boxShadow:"none"},hover:{background:"#10253A",text:"#158EFF",border:" #1E2226",boxShadow:"none"},active:{background:"#10253A",text:"#158EFF",border:" #1E2226",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #1E2226",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:" #C93939",boxShadow:"none"},hover:{background:"#290b0b",text:"#C93939",border:" #290b0b",boxShadow:"none"},active:{background:"#290b0b",text:"#C93939",border:" #290b0b",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #99989C",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},hover:{background:"#1A212D",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},active:{background:"#1A212D",text:"#80A0F5",border:"#80A0F5",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}},light:{default:{background:"transparent",text:"#E8EAEE",border:"#34404C",boxShadow:"none"},hover:{background:"#222A32",text:"#E8EAEE",border:"#34404C",boxShadow:"none"},active:{background:"#222A32",text:"#E8EAEE",border:"#34404C",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:" #EBEBEB",boxShadow:"none"}}},empty:{default:{default:{background:"transparent",text:"#FFFFFF",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},primary:{default:{background:"transparent",text:"#158EFF",border:"transparent",boxShadow:"none",filledIcon:{background:"#10253A",color:"#158EFF"}},hover:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none",filledIcon:{background:"#158EFF",color:"#0F1317"}},active:{background:"transparent",text:"#44a5ff",border:"transparent",boxShadow:"none",filledIcon:{background:"#158EFF",color:"#0F1317"}},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none",filledIcon:{background:"#BEBEBE",color:"#99989C"}}},secondary:{default:{background:"transparent",text:"#FFFFFF",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#158EFF",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#158EFF",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},error:{default:{background:"transparent",text:"#C93939",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#d46161",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#d46161",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},soft:{default:{background:"transparent",text:"#80A0F5",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#E5ECFD",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}},light:{default:{background:"transparent",text:"#E8EAEE",border:"transparent",boxShadow:"none"},hover:{background:"transparent",text:"#34404C",border:"transparent",boxShadow:"none"},active:{background:"transparent",text:"#34404C",border:"transparent",boxShadow:"none"},disabled:{background:"transparent",text:"#99989C",border:"transparent",boxShadow:"none"}}},sizes:{small:{fontSize:14,iconSize:16,paddingInline:12,paddingBlock:8,borderRadius:8,borderWidth:1,gap:8},medium:{fontSize:16,iconSize:16,paddingInline:14,paddingBlock:10,borderRadius:10,borderWidth:1,gap:8}}},sidebar:{background:"#0F1317",border:"#1E2226",width:242,collapsedWidth:65,text:{default:"#99989C",active:"#158EFF",hover:"#158EFF"},item:{default:{background:"transparent",border:"transparent",padding:"10px 16px",height:40},active:{background:"#10253A",borderLeft:"2px solid #158EFF",padding:"10px 16px",height:40},hover:{background:"#020E19",border:"transparent",padding:"10px 16px",height:40}},section:{background:"transparent",padding:"16px 16px 8px",title:{color:"#020b14",fontSize:"12px",fontWeight:600}},delimeter:{color:"#34404C",thickness:1,margin:"8px 0"}},contextMenu:{button:{default:{background:"transparent",text:"#FFFFFF",border:" #1E2226",boxShadow:"none"},hover:{background:"transparent",text:"#158EFF",border:" #1E2226",boxShadow:"none"},active:{background:"transparent",text:"#158EFF",border:" #1E2226",boxShadow:"none"},disabled:{background:"#080A0C",text:"#99989C",border:" #1E2226",boxShadow:"none"}},delimeter:{color:"#34404C",thickness:1,marginInline:12,marginBlock:3,style:"solid"},shadow:"0px 10px 40px -4px rgba(0, 0, 0, 0.5), 0px 2px 8px -2px rgba(0, 0, 0, 0.3)",padding:6,icon:{size:7}},select:{item:{default:{background:"transparent",text:"#FFFFFF",border:" none",boxShadow:"none"},hover:{background:"#1E2226",text:"#FFFFFF",border:" none",boxShadow:"none"},active:{background:"#10253A",text:"#FFFFFF",border:" none",boxShadow:"none"},disabled:{background:"#080A0C",text:"#99989C",border:" none",boxShadow:"none"}},paddingBlock:6,paddingInline:6,margin:2,padding:8},rowActionsMenu:{button:{default:{background:"transparent",text:"#FFFFFF",border:" none",boxShadow:"none"},hover:{background:"transparent",text:"#158EFF",border:" none",boxShadow:"none"},active:{background:"transparent",text:"#158EFF",border:" none",boxShadow:"none"},disabled:{background:"#080A0C",text:"#99989C",border:" none",boxShadow:"none"}},delimiterColor:"#34404C",icon:{size:16}},input:{sizes:{empty:{fontSize:14,paddingInline:0,paddingBlock:0,borderRadius:0,iconSize:14,height:"auto",lineHeight:16},small:{fontSize:14,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:14,height:40,lineHeight:16},medium:{fontSize:16,paddingInline:10,paddingBlock:10,borderRadius:5,iconSize:16,height:40,lineHeight:18}},outlined:{default:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" #1E2226",boxShadow:"none",icon:"#FFFFFF"},focus:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" #158EFF",boxShadow:"none",icon:"#FFFFFF"},error:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" #C93939",boxShadow:"none",icon:"#C93939"},disabled:{background:"#080A0C",text:"#99989C",placeholder:"#99989C",border:" #1E2226",boxShadow:"none",icon:"#99989C"}},empty:{default:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#FFFFFF"},focus:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#FFFFFF"},error:{background:"transparent",text:"#FFFFFF",placeholder:"#99989C",border:" transparent",boxShadow:"none",icon:"#C93939"},disabled:{background:"transparent",text:"#99989C",placeholder:"#99989C",border:"transparent",boxShadow:"none",icon:"#99989C"}}},box:{padding:20,borderRadius:8,border:{width:1,style:"solid",color:"#1E2226"},background:"#0F1317"},graph2D:{ring:{highlightFill:"rgba(0, 90, 255, 0.3)",selectionFill:"rgba(0, 90, 255, 0.5)"},button:{stroke:"#1A1A1A",normalFill:"rgba(0, 0, 0, 0.8)",hoverFill:"rgba(25, 25, 25, 0.9)",textColor:"#99989C",spinnerColor:"#80A0F5"},grid:{dotColor:"rgba(255, 255, 255, 0.5)"},link:{normal:"#666",highlighted:"#0066ff",textColor:"#999",highlightedTextColor:"#99ccff",textBgColor:"rgba(0, 0, 0, 0.8)",highlightedTextBgColor:"rgba(0, 25, 51, 0.9)"}},contentLoader:{foreground:"#99989C",background:"#535353"},tag:{outlined:{borderRadius:50,paddingBlock:5,paddingInline:10,borderWidth:1,color:{default:"#99989C",primary:"#3991FA",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#FFFFFF",orange:"#d3741b"}},fill:{borderRadius:4,paddingBlock:5,paddingInline:10,borderWidth:0,color:{default:"#99989C",primary:"#3991FA",error:"#D82323",success:"#38A473",warning:"#DEB839",disabled:"#ebebeb",text:"#FFFFFF",orange:"#d3741b"}}},alert:{paddingBlock:16,paddingLeft:16,paddingRight:44,borderRadius:5,fontSize:14,gap:12,icon:{width:16,height:14,paddingTop:2},color:{icon:"#FDC700",text:"#FFEDD8",background:"#68550E"}},label:{sizes:{small:{fontSize:14,gap:10,marginBottom:20,helpText:{fontSize:12,marginTop:5}},medium:{fontSize:16,gap:10,marginBottom:25,helpText:{fontSize:14,marginTop:5}}},color:"#ffffff",helpTextColor:"#535353"},leanerProgress:{background:"#1E2226",progressColor:"#158EFF"},switch:{default:{background:"#34404C",color:"#0F1317"},checked:{background:"#158EFF",color:"#0F1317"},disabled:{background:"#1E2226",color:"#0F1317"}},drawer:{padding:20,width:573,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)"},tooltip:{fontSize:14,padding:10,borderRadius:6,maxWidth:240,shadow:"0px 4px 10px 0px rgba(0, 0, 0, 0.25)",color:"#99989C",background:"#1E2226"},pagination:{fontSize:14,paddingBlock:4,paddingInline:8,borderRadius:3,gap:6,height:26,iconSize:8},overlay:{paddingBlock:40,gap:6,background:"rgba(0, 0, 0, 0.5)"},modal:{padding:20,width:545,shadow:"0px 0px 10px 0px rgba(0, 0, 0, 0.25)",borderColor:"#1E2226",background:"#0F1317",borderRadius:8}},c5=c1(p5,p5.baseSize);var h2=r(o=>{if(typeof window<"u"){let t=window.innerWidth;for(let[i,C]of Object.entries(o))if(t<C)return i}let e=Object.keys(o);return e[e.length-1]},"getBreakpoint"),b5=q4.createContext(h2(o1)),u5=r(({children:o})=>{let e=s1.useTheme(),[t,i]=q4.useState(h2(e.breakpoints));return q4.useEffect(()=>{if(typeof window>"u")return;let C=r(()=>{let s=h2(e.breakpoints);s!==t&&i(s);},"handleResize");return window.addEventListener("resize",C),()=>{window.removeEventListener("resize",C);}},[t,e.breakpoints]),jsxRuntime.jsx(b5.Provider,{value:t,children:o})},"BreakpointProvider"),h5=r(()=>{let o=q4.useContext(b5),e=s1.useTheme(),t=q4.useMemo(()=>Object.keys(e.breakpoints),[e.breakpoints]);return {currentBreakpoint:o,breakpointsOrder:t}},"useBreakpoint");var f5=s1.createGlobalStyle(({theme:o})=>`
2
2
  *, *::before, *::after {
3
3
  box-sizing: border-box;
4
4
  }
@@ -1390,5 +1390,5 @@
1390
1390
  }
1391
1391
  }
1392
1392
  animation: move 1.5s linear infinite;
1393
- `;exports.$=Y6;exports.$a=ks;exports.A=x2;exports.Aa=Z3;exports.Ab=rg;exports.B=a6;exports.Ba=E3;exports.Bb=cg;exports.C=s6;exports.Ca=B3;exports.Cb=yg;exports.D=S2;exports.Da=z3;exports.Db=Vg;exports.E=d6;exports.Ea=R3;exports.Eb=Lg;exports.F=p6;exports.Fa=D3;exports.Fb=Ig;exports.G=w2;exports.Ga=N3;exports.Gb=$4;exports.H=v2;exports.Ha=_3;exports.Hb=rb;exports.I=u6;exports.Ia=U3;exports.Ib=nb;exports.J=f6;exports.Ja=Y3;exports.Jb=ib;exports.K=x6;exports.Ka=K3;exports.Kb=ab;exports.L=w6;exports.La=q3;exports.Lb=C9;exports.M=v6;exports.Ma=Q3;exports.Mb=Zb;exports.N=y6;exports.Na=o0;exports.Nb=zb;exports.O=L6;exports.Oa=t0;exports.P=F6;exports.Pa=r0;exports.Q=P6;exports.Qa=n0;exports.R=$6;exports.Ra=a0;exports.S=E6;exports.Sa=W2;exports.T=L2;exports.Ta=N2;exports.U=B6;exports.Ua=s0;exports.V=T6;exports.Va=i1;exports.W=G6;exports.Wa=OC;exports.X=A6;exports.Xa=QC;exports.Y=D6;exports.Ya=as;exports.Z=N6;exports.Za=gs;exports._=_6;exports._a=e4;exports.a=r;exports.aa=K6;exports.ab=Bs;exports.b=V1;exports.ba=q6;exports.bb=Ds;exports.c=c;exports.ca=Q6;exports.cb=Xs;exports.d=s5;exports.da=o3;exports.db=js;exports.e=T;exports.ea=e3;exports.eb=il;exports.f=c1;exports.fa=r3;exports.fb=Ml;exports.g=R;exports.ga=i3;exports.gb=$l;exports.h=O;exports.ha=C3;exports.hb=l4;exports.i=b9;exports.ia=l3;exports.ib=ql;exports.j=u9;exports.ja=E2;exports.jb=d4;exports.k=h9;exports.ka=p3;exports.kb=gd;exports.l=L1;exports.la=I2;exports.lb=$d;exports.m=l5;exports.ma=B2;exports.mb=j1;exports.n=d5;exports.na=c3;exports.nb=$7;exports.o=p5;exports.oa=b3;exports.ob=h4;exports.p=c5;exports.pa=r1;exports.pb=x4;exports.q=u5;exports.qa=h3;exports.qb=kp;exports.r=h5;exports.ra=x1;exports.rb=r8;exports.s=q9;exports.sa=m3;exports.sb=C8;exports.t=k1;exports.ta=S3;exports.tb=rc;exports.u=m;exports.ua=v3;exports.ub=pc;exports.v=o6;exports.va=M3;exports.vb=hc;exports.w=w;exports.wa=V3;exports.wb=Hc;exports.x=v;exports.xa=H3;exports.xb=Tc;exports.y=co;exports.ya=k3;exports.yb=Oc;exports.z=_;exports.za=G2;exports.zb=qc;//# sourceMappingURL=chunk-XLDJPZWO.js.map
1394
- //# sourceMappingURL=chunk-XLDJPZWO.js.map
1393
+ `;exports.$=Y6;exports.$a=ks;exports.A=x2;exports.Aa=Z3;exports.Ab=rg;exports.B=a6;exports.Ba=E3;exports.Bb=cg;exports.C=s6;exports.Ca=B3;exports.Cb=yg;exports.D=S2;exports.Da=z3;exports.Db=Vg;exports.E=d6;exports.Ea=R3;exports.Eb=Lg;exports.F=p6;exports.Fa=D3;exports.Fb=Ig;exports.G=w2;exports.Ga=N3;exports.Gb=$4;exports.H=v2;exports.Ha=_3;exports.Hb=rb;exports.I=u6;exports.Ia=U3;exports.Ib=nb;exports.J=f6;exports.Ja=Y3;exports.Jb=ib;exports.K=x6;exports.Ka=K3;exports.Kb=ab;exports.L=w6;exports.La=q3;exports.Lb=C9;exports.M=v6;exports.Ma=Q3;exports.Mb=Zb;exports.N=y6;exports.Na=o0;exports.Nb=zb;exports.O=L6;exports.Oa=t0;exports.P=F6;exports.Pa=r0;exports.Q=P6;exports.Qa=n0;exports.R=$6;exports.Ra=a0;exports.S=E6;exports.Sa=W2;exports.T=L2;exports.Ta=N2;exports.U=B6;exports.Ua=s0;exports.V=T6;exports.Va=i1;exports.W=G6;exports.Wa=OC;exports.X=A6;exports.Xa=QC;exports.Y=D6;exports.Ya=as;exports.Z=N6;exports.Za=gs;exports._=_6;exports._a=e4;exports.a=r;exports.aa=K6;exports.ab=Bs;exports.b=V1;exports.ba=q6;exports.bb=Ds;exports.c=c;exports.ca=Q6;exports.cb=Xs;exports.d=s5;exports.da=o3;exports.db=js;exports.e=T;exports.ea=e3;exports.eb=il;exports.f=c1;exports.fa=r3;exports.fb=Ml;exports.g=R;exports.ga=i3;exports.gb=$l;exports.h=O;exports.ha=C3;exports.hb=l4;exports.i=b9;exports.ia=l3;exports.ib=ql;exports.j=u9;exports.ja=E2;exports.jb=d4;exports.k=h9;exports.ka=p3;exports.kb=gd;exports.l=L1;exports.la=I2;exports.lb=$d;exports.m=l5;exports.ma=B2;exports.mb=j1;exports.n=d5;exports.na=c3;exports.nb=$7;exports.o=p5;exports.oa=b3;exports.ob=h4;exports.p=c5;exports.pa=r1;exports.pb=x4;exports.q=u5;exports.qa=h3;exports.qb=kp;exports.r=h5;exports.ra=x1;exports.rb=r8;exports.s=q9;exports.sa=m3;exports.sb=C8;exports.t=k1;exports.ta=S3;exports.tb=rc;exports.u=m;exports.ua=v3;exports.ub=pc;exports.v=o6;exports.va=M3;exports.vb=hc;exports.w=w;exports.wa=V3;exports.wb=Hc;exports.x=v;exports.xa=H3;exports.xb=Tc;exports.y=co;exports.ya=k3;exports.yb=Oc;exports.z=_;exports.za=G2;exports.zb=qc;//# sourceMappingURL=chunk-GKPBTQZ3.js.map
1394
+ //# sourceMappingURL=chunk-GKPBTQZ3.js.map