@gouvfr-lasuite/ui-kit 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PdfPreview-CiefW-8Q.cjs → PdfPreview-BgrDRBo3.cjs} +2 -2
- package/dist/{PdfPreview-CiefW-8Q.cjs.map → PdfPreview-BgrDRBo3.cjs.map} +1 -1
- package/dist/{PdfPreview-BRLzv-qj.js → PdfPreview-BzwV05lv.js} +3 -3
- package/dist/{PdfPreview-BRLzv-qj.js.map → PdfPreview-BzwV05lv.js.map} +1 -1
- package/dist/ZoomPlus-BYvInasa.cjs +23 -0
- package/dist/ZoomPlus-BYvInasa.cjs.map +1 -0
- package/dist/{ZoomPlus-B6u2-sQg.js → ZoomPlus-CqMxLvvg.js} +96 -66
- package/dist/ZoomPlus-CqMxLvvg.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +627 -653
- package/dist/icons.js.map +1 -1
- package/dist/{index-BccxlMZn.js → index-B4kcK437.js} +4939 -4845
- package/dist/index-B4kcK437.js.map +1 -0
- package/dist/index-BL_a2Q73.cjs +87 -0
- package/dist/index-BL_a2Q73.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +16 -1
- package/dist/index.js +8 -8
- package/dist/storybook/preview-files/coucou.pages +0 -0
- package/dist/storybook/preview-files/pdf_with_js.pdf +0 -0
- package/dist/storybook/preview-files/pdf_with_js_link.pdf +0 -0
- package/dist/storybook/preview-files/pdf_with_links.pdf +0 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/ZoomPlus-B6u2-sQg.js.map +0 -1
- package/dist/ZoomPlus-BKS1WH5u.cjs +0 -23
- package/dist/ZoomPlus-BKS1WH5u.cjs.map +0 -1
- package/dist/index-7Uvc4sdP.cjs +0 -87
- package/dist/index-7Uvc4sdP.cjs.map +0 -1
- package/dist/index-BccxlMZn.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdfPreview-BRLzv-qj.js","sources":["../src/components/preview/viewers/pdf-preview/pdfPolyfills.ts","../src/components/preview/viewers/pdf-preview/usePdfNavigation.ts","../src/components/preview/viewers/pdf-preview/usePdfPageDimensions.ts","../src/components/preview/viewers/pdf-preview/PdfThumbnailSidebar.tsx","../src/components/preview/viewers/pdf-preview/PdfControls.tsx","../src/components/preview/viewers/pdf-preview/useDebouncedResize.ts","../src/components/preview/viewers/pdf-preview/PdfPageViewer.tsx","../src/components/preview/viewers/pdf-preview/useRedirectDisclaimer.tsx","../src/components/preview/viewers/pdf-preview/pdfOptions.ts","../src/components/preview/viewers/pdf-preview/PdfPreview.tsx"],"sourcesContent":["/**\n * Polyfills required by pdfjs-dist for older browsers (e.g. Edge)\n * that lack these newer APIs.\n *\n * They live in a dedicated file so they are imported as the very first\n * module in PdfPreview.tsx — before react-pdf or pdfjs-dist execute —\n * guaranteeing the APIs exist when PDF code initialises.\n * A separate file also makes it easy to remove once browser support\n * catches up.\n */\n\nif (\n typeof (URL as unknown as { parse?: unknown }).parse === \"undefined\"\n) {\n (URL as unknown as Record<string, unknown>).parse = function (\n url: string,\n base?: string,\n ) {\n try {\n return new URL(url, base);\n } catch {\n return null;\n }\n };\n}\n\nconst promiseCtor = Promise as unknown as Record<string, unknown>;\nif (typeof promiseCtor.withResolvers === \"undefined\") {\n promiseCtor.withResolvers = function <T>() {\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n };\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\n\ninterface UsePdfNavigationParams {\n numPages: number;\n currentPage: number;\n scrollToPage: (page: number) => void;\n}\n\nexport const usePdfNavigation = ({\n numPages,\n currentPage,\n scrollToPage,\n}: UsePdfNavigationParams) => {\n const [pageInputValue, setPageInputValue] = useState<string>(\"1\");\n\n const goToPage = useCallback(\n (page: number) => {\n const clamped = Math.max(1, Math.min(numPages, page));\n setPageInputValue(String(clamped));\n scrollToPage(clamped);\n },\n [numPages, scrollToPage],\n );\n\n const onDocumentLoadSuccess = useCallback(\n ({ numPages: nextNumPages }: PDFDocumentProxy) => {\n setPageInputValue(\"1\");\n return nextNumPages;\n },\n [],\n );\n\n const handlePageInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setPageInputValue(e.target.value);\n };\n\n const handlePageInputSubmit = () => {\n const parsed = parseInt(pageInputValue, 10);\n if (isNaN(parsed)) {\n setPageInputValue(String(currentPage));\n return;\n }\n goToPage(parsed);\n };\n\n const handlePageInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n handlePageInputSubmit();\n }\n };\n\n // onItemClick handles internal PDF links (e.g. table of contents entries).\n // It is called by react-pdf's Document via a viewer ref that is created once\n // with useRef, so the callback is captured in a stale closure from the first\n // render. We use a ref to always access the latest goToPage (which depends\n // on numPages) so navigation targets the correct page.\n //\n // onClick (handlePdfClick) handles regular DOM clicks on the annotation layer\n // — it intercepts external links to show a redirect disclaimer modal.\n const goToPageRef = useRef(goToPage);\n useEffect(() => {\n goToPageRef.current = goToPage;\n }, [goToPage]);\n\n const onItemClick = useCallback((args: { pageNumber: number }) => {\n goToPageRef.current(args.pageNumber);\n }, []);\n\n return {\n goToPage,\n onDocumentLoadSuccess,\n pageInputValue,\n setPageInputValue,\n handlePageInputChange,\n handlePageInputSubmit,\n handlePageInputKeyDown,\n onItemClick,\n };\n};\n","import { useCallback, useRef, useState } from \"react\";\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\n\nexport interface PageDimension {\n w: number;\n h: number;\n}\n\n// Shared ratio fallback for rows whose dimensions have not yet been fetched.\n// Matches ISO 216 A4 portrait so first paint looks identical to the previous\n// hardcoded layout until real dimensions arrive.\nexport const FALLBACK_RATIO = 1.414;\n\nexport type PageDimensionsMap = ReadonlyMap<number, PageDimension>;\n\nexport interface UsePdfPageDimensionsResult {\n pageDimensions: PageDimensionsMap;\n requestPageDimension: (page: number) => void;\n // Ensures dimensions for the given pages are loaded. Resolves with the\n // up-to-date pageDimensions map once every requested page is cached —\n // callers use the resolved map directly to compute offsets without waiting\n // for React to commit the state update. Pages already cached or in flight\n // dedupe with existing work.\n ensurePageDimensions: (pages: number[]) => Promise<PageDimensionsMap>;\n setPdf: (pdf: PDFDocumentProxy | null) => void;\n}\n\n// Lazy per-page viewport cache. Consumers call requestPageDimension(page) when\n// a page scrolls into virtualization overscan; the returned pageDimensions map\n// is the read side of the cache. Once the page's dimensions are fetched, they\n// become available via pageDimensions, triggering a re-render of the PDF\n// previews with the correct dimension.\nexport function usePdfPageDimensions(): UsePdfPageDimensionsResult {\n const pdfRef = useRef<PDFDocumentProxy | null>(null);\n // Tracks fetches currently in progress so concurrent callers share one\n // getPage() round trip. Two distinct jobs:\n // - Dedup: onRowsRendered fires on every scroll tick, so the same page\n // can be requested many times before the first fetch resolves.\n // - Synchronisation: ensurePageDimensions([1..N]) (used by scrollToPage)\n // awaits Promise.all of fetchPageDimension(i). If another caller (e.g.\n // the overscan prefetch) has already started a fetch for page i, we\n // must return *that* Promise — otherwise `await` would resolve before\n // the stored fetch's .then() commits dimensions to pageDimensionsRef,\n // and scrollToPage would read stale dimensions when computing its\n // offset.\n const inFlightRef = useRef<Map<number, Promise<void>>>(new Map());\n // Mirror of pageDimensions state, read synchronously inside\n // requestPageDimension to dedupe fetches without stale-closure reads of\n // state.\n const pageDimensionsRef = useRef<Map<number, PageDimension>>(new Map());\n const [pageDimensions, setPageDimensions] = useState<\n Map<number, PageDimension>\n >(() => new Map());\n\n const setPdf = useCallback((pdf: PDFDocumentProxy | null) => {\n // Any cached dimensions belong to the previous document; reset on every\n // switch (including clear) so stale heights don't leak into the new doc.\n pdfRef.current = pdf;\n inFlightRef.current = new Map();\n pageDimensionsRef.current = new Map();\n setPageDimensions(new Map());\n }, []);\n\n const fetchPageDimension = useCallback((page: number): Promise<void> => {\n const pdf = pdfRef.current;\n if (!pdf) {\n return Promise.resolve();\n }\n if (pageDimensionsRef.current.has(page)) {\n return Promise.resolve();\n }\n const existing = inFlightRef.current.get(page);\n if (existing) {\n return existing;\n }\n\n const promise = pdf\n .getPage(page)\n .then((p) => {\n const vp = p.getViewport({ scale: 1 });\n const next = new Map(pageDimensionsRef.current);\n next.set(page, { w: vp.width, h: vp.height });\n pageDimensionsRef.current = next;\n setPageDimensions(next);\n })\n .catch((err) => {\n // Resolve (don't reject) on failure so ensurePageDimensions stays\n // usable: a page-input jump still scrolls, with FALLBACK_RATIO\n // standing in for the failed page via getRatio's map miss.\n console.warn(`Failed to fetch dimensions for PDF page ${page}`, err);\n })\n .finally(() => {\n inFlightRef.current.delete(page);\n });\n inFlightRef.current.set(page, promise);\n return promise;\n }, []);\n\n const requestPageDimension = useCallback(\n (page: number) => {\n void fetchPageDimension(page);\n },\n [fetchPageDimension],\n );\n\n const ensurePageDimensions = useCallback(\n async (pages: number[]): Promise<PageDimensionsMap> => {\n await Promise.all(pages.map((p) => fetchPageDimension(p)));\n return pageDimensionsRef.current;\n },\n [fetchPageDimension],\n );\n\n return {\n pageDimensions,\n requestPageDimension,\n ensurePageDimensions,\n setPdf,\n };\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { Thumbnail } from \"react-pdf\";\nimport { AutoSizer, List } from \"react-virtualized\";\nimport type { ListRowRenderer } from \"react-virtualized\";\nimport {\n OPEN_DELAY,\n THUMBNAIL_GAP,\n THUMBNAIL_LABEL_SPACE,\n THUMBNAIL_WIDTH,\n TRANSITION_DELAY,\n} from \"./pdfConsts\";\nimport { FALLBACK_RATIO, type PageDimensionsMap } from \"./usePdfPageDimensions\";\n\ninterface PdfThumbnailSidebarProps {\n numPages: number;\n currentPage: number;\n goToPage: (page: number) => void;\n isOpen: boolean;\n pageDimensions: PageDimensionsMap;\n requestPageDimension: (page: number) => void;\n}\n\n// Two-phase mount/unmount to allow CSS transitions to play out:\n// Opening: mount immediately (unmount=false), then defer isOpenProxy=true\n// so the DOM is present before the \"open\" class triggers the transition.\n// Closing: remove the \"open\" class first (isOpenProxy=false), wait for the\n// transition to finish (TRANSITION_DELAY), then unmount the component.\n// When closed the component is not mounted, which is better for performance\n// as this component is quite heavy and is not needed when closed.\nexport function PdfThumbnailSidebar(props: PdfThumbnailSidebarProps) {\n const [unmount, setUnmount] = useState(true);\n const [isOpenProxy, setIsOpenProxy] = useState(props.isOpen);\n\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n if (props.isOpen) {\n setUnmount(false);\n timer = setTimeout(() => setIsOpenProxy(true), OPEN_DELAY);\n } else {\n setIsOpenProxy(false);\n // The 1.1 is to allow for the transition to finish.\n // It is a safety margin to avoid the component being unmounted too early.\n timer = setTimeout(() => setUnmount(true), TRANSITION_DELAY * 1.1);\n }\n return () => clearTimeout(timer);\n }, [props.isOpen]);\n\n if (unmount) {\n return null;\n }\n\n return <PdfThumbnailSidebarContent {...props} isOpen={isOpenProxy} />;\n}\n\nexport function PdfThumbnailSidebarContent({\n numPages,\n currentPage,\n goToPage,\n isOpen,\n pageDimensions,\n requestPageDimension,\n}: PdfThumbnailSidebarProps) {\n const listRef = useRef<List>(null);\n // When true, the next currentPage change came from a thumbnail click\n // and should not trigger an auto-scroll of the sidebar.\n const isClickNavRef = useRef(false);\n // Scroll to the current page on first render, then clear so the prop\n // no longer forces scroll position on subsequent renders.\n const [initialScrollIndex, setInitialScrollIndex] = useState<\n number | undefined\n >(currentPage - 1);\n\n // Auto-scroll active thumbnail into view (only for scroll-initiated changes)\n useEffect(() => {\n if (!listRef.current) return;\n if (isClickNavRef.current) {\n isClickNavRef.current = false;\n return;\n }\n listRef.current.scrollToRow(currentPage - 1);\n }, [currentPage]);\n\n const getRatio = useCallback(\n (index: number) => {\n const d = pageDimensions.get(index + 1);\n return d ? d.h / d.w : FALLBACK_RATIO;\n },\n [pageDimensions],\n );\n\n const rowHeight = useCallback(\n ({ index }: { index: number }) => {\n const thumbH = THUMBNAIL_WIDTH * getRatio(index);\n const base = thumbH + THUMBNAIL_LABEL_SPACE + THUMBNAIL_GAP;\n // Every row reserves a gap above via paddingTop. The last row also\n // reserves one below so the final thumbnail has matching breathing\n // room at the bottom of the sidebar.\n return index === numPages - 1 ? base + THUMBNAIL_GAP : base;\n },\n [getRatio, numPages],\n );\n\n // Invalidate react-virtualized's row-height cache when dimensions update.\n useEffect(() => {\n listRef.current?.recomputeRowHeights();\n }, [pageDimensions, numPages]);\n\n const handleRowsRendered = useCallback(\n ({\n overscanStartIndex,\n overscanStopIndex,\n }: {\n overscanStartIndex: number;\n overscanStopIndex: number;\n }) => {\n for (let i = overscanStartIndex; i <= overscanStopIndex; i++) {\n requestPageDimension(i + 1);\n }\n if (initialScrollIndex !== undefined) setInitialScrollIndex(undefined);\n },\n [requestPageDimension, initialScrollIndex],\n );\n\n const rowRenderer: ListRowRenderer = ({ index, key, style }) => {\n const page = index + 1;\n const ratio = getRatio(index);\n const thumbnailSkeleton = (\n <div\n className=\"pdf-preview__thumbnail-skeleton\"\n style={{ width: THUMBNAIL_WIDTH, height: THUMBNAIL_WIDTH * ratio }}\n />\n );\n return (\n <div\n key={key}\n style={{\n ...style,\n paddingTop: THUMBNAIL_GAP,\n paddingBottom: index === numPages - 1 ? THUMBNAIL_GAP : 0,\n boxSizing: \"border-box\",\n }}\n >\n <button\n data-thumb-page={page}\n className={`pdf-preview__thumbnail${currentPage === page ? \" pdf-preview__thumbnail--active\" : \"\"}`}\n onClick={() => {\n isClickNavRef.current = true;\n goToPage(page);\n }}\n aria-label={`Go to page ${page}`}\n >\n <Thumbnail\n pageNumber={page}\n width={THUMBNAIL_WIDTH}\n loading={thumbnailSkeleton}\n />\n <span className=\"pdf-preview__thumbnail-number\">{page}</span>\n </button>\n </div>\n );\n };\n\n return (\n <div\n className={`pdf-preview__sidebar${!isOpen ? \" pdf-preview__sidebar--closed\" : \"\"}`}\n >\n <AutoSizer>\n {({ height, width }) => (\n <List\n ref={listRef}\n height={height}\n width={width}\n rowCount={numPages}\n rowHeight={rowHeight}\n estimatedRowSize={\n THUMBNAIL_WIDTH * FALLBACK_RATIO +\n THUMBNAIL_LABEL_SPACE +\n THUMBNAIL_GAP\n }\n overscanRowCount={5}\n rowRenderer={rowRenderer}\n scrollToIndex={initialScrollIndex}\n scrollToAlignment=\"center\"\n onRowsRendered={handleRowsRendered}\n style={{ outline: \"none\" }}\n />\n )}\n </AutoSizer>\n </div>\n );\n}\n","import { Button, Input } from \"@gouvfr-lasuite/cunningham-react\";\nimport { LeftSidebarIcon } from \"../../icons/LeftSidebarIcon\";\nimport { ZoomControls } from \"../../components/ZoomControls/ZoomControls\";\n\ninterface PdfControlsProps {\n numPages: number;\n pageInputValue: string;\n onToggleSidebar: () => void;\n onPageInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onPageInputSubmit: () => void;\n onPageInputKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onZoomIn: () => void;\n onZoomReset: () => void;\n onZoomOut: () => void;\n}\n\nexport function PdfControls({\n numPages,\n pageInputValue,\n onToggleSidebar,\n onPageInputChange,\n onPageInputSubmit,\n onPageInputKeyDown,\n onZoomIn,\n onZoomReset,\n onZoomOut,\n}: PdfControlsProps) {\n return (\n <div className=\"file-preview__controls\">\n <Button\n variant=\"tertiary\"\n color=\"neutral\"\n onClick={onToggleSidebar}\n aria-label=\"Toggle sidebar\"\n size=\"small\"\n icon={<LeftSidebarIcon />}\n />\n <div className=\"file-preview__controls__separator\" />\n <div className=\"pdf-preview__page-nav\">\n <div className=\"pdf-preview__page-indicator\">\n <Input\n variant=\"classic\"\n value={pageInputValue}\n onChange={onPageInputChange}\n onBlur={onPageInputSubmit}\n onKeyDown={onPageInputKeyDown}\n aria-label=\"Current page\"\n size={pageInputValue.length || 1}\n />\n <span className=\"pdf-preview__page-total\">/ {numPages}</span>\n </div>\n </div>\n <div className=\"file-preview__controls__separator\" />\n <ZoomControls\n zoomOut={onZoomOut}\n zoomIn={onZoomIn}\n resetView={onZoomReset}\n />\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\n\nfunction debounce<T extends (...args: never[]) => unknown>(\n func: T,\n timeout = 300,\n): ((...args: Parameters<T>) => void) & { cancel: () => void } {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const debouncedFunc = (...args: Parameters<T>) => {\n if (timer !== undefined) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n func(...args);\n }, timeout);\n };\n debouncedFunc.cancel = () => {\n if (timer !== undefined) {\n clearTimeout(timer);\n }\n };\n return debouncedFunc;\n}\n\nexport const useDebouncedResize = () => {\n const [size, setSize] = useState({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n\n useEffect(() => {\n const handleResize = debounce(() => {\n setSize({ width: window.innerWidth, height: window.innerHeight });\n }, 100);\n window.addEventListener(\"resize\", handleResize);\n return () => {\n handleResize.cancel();\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return size;\n};\n","import {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Page } from \"react-pdf\";\nimport { AutoSizer, List } from \"react-virtualized\";\nimport type { ListRowRenderer, Index } from \"react-virtualized\";\nimport { useDebouncedResize } from \"./useDebouncedResize\";\nimport { FALLBACK_RATIO, type PageDimensionsMap } from \"./usePdfPageDimensions\";\n\nconst PAGE_GAP = 16;\nconst BASE_WIDTH = 800;\nconst PAGE_MARGIN = 32;\n\nexport interface PdfPageViewerHandle {\n scrollToPage: (page: number) => void;\n}\n\ninterface PdfPageViewerProps {\n numPages: number;\n zoom: number;\n onCurrentPageChange: (page: number) => void;\n onClick: (e: React.MouseEvent<HTMLDivElement>) => void;\n pageDimensions: PageDimensionsMap;\n requestPageDimension: (page: number) => void;\n ensurePageDimensions: (pages: number[]) => Promise<PageDimensionsMap>;\n}\n\nexport function PdfPageViewer({\n numPages,\n zoom,\n onCurrentPageChange,\n onClick,\n pageDimensions,\n requestPageDimension,\n ensurePageDimensions,\n ref,\n}: PdfPageViewerProps & { ref?: React.Ref<PdfPageViewerHandle> }) {\n const listRef = useRef<List>(null);\n const prevZoomRef = useRef(zoom);\n const [scrollTop, setScrollTop] = useState(0);\n const listHeightRef = useRef(0);\n // Each scrollToPage call bumps this counter and captures its own id.\n // When a later call supersedes an earlier one, the earlier one checks\n // the counter in its async tail and bails — otherwise dimensions arriving\n // late for a stale target can clobber the user's newest jump.\n const scrollJumpIdRef = useRef(0);\n\n const size = useDebouncedResize();\n\n const width = useMemo(() => {\n return BASE_WIDTH + PAGE_MARGIN > size.width\n ? size.width - PAGE_MARGIN\n : BASE_WIDTH;\n }, [size.width]);\n\n // Per-page aspect ratio (height / width) from pdfjs.\n const getRatio = useCallback(\n (index: number) => {\n const d = pageDimensions.get(index + 1);\n return d ? d.h / d.w : FALLBACK_RATIO;\n },\n [pageDimensions],\n );\n\n const rowHeightForIndex = useCallback(\n (index: number) => {\n const h = width * getRatio(index) * zoom;\n const gap = PAGE_GAP * zoom;\n // Every row reserves a gap above the page via paddingTop. The last\n // row additionally reserves a gap below it so the final page has\n // breathing room matching the space above every other page.\n return index === numPages - 1 ? h + 2 * gap : h + gap;\n },\n [width, getRatio, zoom, numPages],\n );\n\n // Wrapper around rowHeightForIndex with appropriate signature for react-virtualized.\n const rowHeight = useCallback(\n ({ index }: Index) => rowHeightForIndex(index),\n [rowHeightForIndex],\n );\n\n // When zoom, width, pageDimensions or numPages change, row heights must be\n // recalculated because react-virtualized caches them internally.\n // On zoom change we also scale scrollTop proportionally so the user stays\n // on the same part of the document (e.g. 2x zoom → 2x scroll offset).\n useEffect(() => {\n listRef.current?.recomputeRowHeights();\n\n if (prevZoomRef.current !== zoom && listRef.current) {\n const ratio = zoom / prevZoomRef.current;\n const newScrollTop = Math.round(scrollTop * ratio);\n\n listRef.current.scrollToPosition(newScrollTop);\n prevZoomRef.current = zoom;\n }\n }, [zoom, width, pageDimensions, numPages]);\n\n // Find which page contains the vertical center of the viewport by walking\n // cumulative row heights until we pass the midpoint.\n const currentPage = useMemo(() => {\n if (numPages === 0) return 1;\n\n const viewportCenter = scrollTop + listHeightRef.current / 2;\n\n let offset = 0;\n for (let i = 0; i < numPages; i++) {\n const h = rowHeightForIndex(i);\n if (offset + h > viewportCenter) {\n return i + 1;\n }\n offset += h;\n }\n\n return numPages;\n }, [scrollTop, numPages, rowHeightForIndex]);\n\n useEffect(() => {\n onCurrentPageChange(currentPage);\n }, [currentPage]);\n\n const scrollToPage = useCallback(\n (page: number) => {\n // Jump targets can land on a page whose predecessors haven't had their\n // dimensions fetched yet (the user never scrolled through them). Await\n // dimensions for the whole prefix before computing the offset so the\n // scroll lands on the real page, not an A4-fallback approximation. We\n // use the up-to-date map returned by ensurePageDimensions rather than\n // rowHeightForIndex because React may not have committed the state\n // update yet when the promise resolves.\n //\n // Jumps issued in quick succession (e.g. a user mashing the page input)\n // race: an earlier call's prefix may take longer than a later call's,\n // so a stale .then() could clobber the newest target. We tag each call\n // with an id and bail if a newer one has been issued.\n scrollJumpIdRef.current += 1;\n const jumpId = scrollJumpIdRef.current;\n\n const pages: number[] = [];\n for (let i = 1; i <= page; i++) pages.push(i);\n ensurePageDimensions(pages).then((dimensions) => {\n if (scrollJumpIdRef.current !== jumpId) return;\n if (!listRef.current) return;\n let offset = 0;\n for (let i = 0; i < page - 1; i++) {\n const d = dimensions.get(i + 1);\n const ratio = d ? d.h / d.w : FALLBACK_RATIO;\n offset += width * ratio * zoom + PAGE_GAP * zoom;\n }\n listRef.current.scrollToPosition(offset);\n });\n },\n [ensurePageDimensions, width, zoom],\n );\n\n useImperativeHandle(ref, () => ({ scrollToPage }), [scrollToPage]);\n\n const handleScroll = useCallback(\n ({\n scrollTop: st,\n clientHeight,\n }: {\n scrollTop: number;\n clientHeight: number;\n }) => {\n listHeightRef.current = clientHeight;\n setScrollTop(st);\n },\n [],\n );\n\n const handleRowsRendered = useCallback(\n ({\n overscanStartIndex,\n overscanStopIndex,\n }: {\n overscanStartIndex: number;\n overscanStopIndex: number;\n }) => {\n for (let i = overscanStartIndex; i <= overscanStopIndex; i++) {\n requestPageDimension(i + 1);\n }\n },\n [requestPageDimension],\n );\n\n const rowRenderer: ListRowRenderer = ({ index, key, style }) => {\n const ratio = getRatio(index);\n const pageSkeleton = (\n <div\n className=\"pdf-preview__page-skeleton pdf-preview__page-skeleton--measured\"\n style={{ height: width * ratio * zoom, width: width * zoom }}\n />\n );\n return (\n <div\n key={key}\n data-preview-backdrop=\"true\"\n className=\"pdf-preview__page-container\"\n style={{\n ...style,\n paddingTop: PAGE_GAP * zoom,\n paddingBottom: index === numPages - 1 ? PAGE_GAP * zoom : 0,\n }}\n >\n <Page\n pageNumber={index + 1}\n width={width}\n scale={zoom}\n loading={pageSkeleton}\n />\n </div>\n );\n };\n\n return (\n <div className=\"pdf-preview__container\" onClick={onClick}>\n <AutoSizer>\n {({ height, width: autoWidth }) => {\n // When zoomed in the page content may exceed the viewport width.\n // The wrapper div is clamped to the viewport (autoWidth) and scrolls\n // horizontally, while the List itself is sized to the full content\n // width so pages render uncropped.\n const listWidth = Math.max(autoWidth, width * zoom);\n return (\n <div\n style={{\n width: autoWidth,\n height,\n }}\n className=\"pdf-preview__horizontal-scroll\"\n >\n <List\n ref={listRef}\n height={height}\n width={listWidth}\n rowCount={numPages}\n rowHeight={rowHeight}\n estimatedRowSize={\n width * FALLBACK_RATIO * zoom + PAGE_GAP * zoom\n }\n overscanRowCount={3}\n onScroll={handleScroll}\n onRowsRendered={handleRowsRendered}\n rowRenderer={rowRenderer}\n style={{ outline: \"none\" }}\n />\n </div>\n );\n }}\n </AutoSizer>\n </div>\n );\n}\n","import { useCallback } from \"react\";\nimport { useModals } from \"@gouvfr-lasuite/cunningham-react\";\nimport { useCustomTranslations } from \":/hooks/useCustomTranslations\";\n\nconst SAFE_PROTOCOLS = [\"https:\", \"http:\"];\n\nexport const useRedirectDisclaimer = () => {\n const modals = useModals();\n const { t } = useCustomTranslations();\n const handlePdfClick = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n const anchor = target.closest(\"a\");\n if (anchor && anchor.href) {\n if (anchor.closest(\"[data-internal-link]\")) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n try {\n const url = new URL(anchor.href);\n if (!SAFE_PROTOCOLS.includes(url.protocol)) return;\n } catch {\n return;\n }\n\n modals.confirmationModal({\n title: t(\"components.filePreview.externalLink.title\"),\n children: (\n <div>\n <p>{t(\"components.filePreview.externalLink.description\")}</p>\n <span className=\"pdf-preview__external-link\">{anchor.href}</span>\n <p>{t(\"components.filePreview.externalLink.confirmQuestion\")}</p>\n </div>\n ),\n onDecide: (decision) => {\n if (decision === \"yes\") {\n window.open(anchor.href, \"_blank\", \"noopener,noreferrer\");\n }\n },\n });\n }\n },\n [modals, t],\n );\n return { handlePdfClick };\n};\n","export const pdfOptions = {\n cMapUrl: \"/cmaps/\",\n standardFontDataUrl: \"/standard_fonts/\",\n wasmUrl: \"/wasm/\",\n isEvalSupported: false,\n};\n","import \"./pdfPolyfills\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { Document, pdfjs } from \"react-pdf\";\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\n\nimport { Icon, IconType } from \":/components/icon\";\nimport { useCustomTranslations } from \":/hooks/useCustomTranslations\";\n\nimport { usePdfNavigation } from \"./usePdfNavigation\";\nimport { PdfThumbnailSidebar } from \"./PdfThumbnailSidebar\";\nimport { PdfControls } from \"./PdfControls\";\nimport { PdfPageViewer } from \"./PdfPageViewer\";\nimport type { PdfPageViewerHandle } from \"./PdfPageViewer\";\nimport { useRedirectDisclaimer } from \"./useRedirectDisclaimer\";\nimport { OutdatedBrowserPreview } from \"./OutdatedBrowserPreview\";\nimport { pdfOptions } from \"./pdfOptions\";\nimport { usePdfPageDimensions } from \"./usePdfPageDimensions\";\nimport { DEFAULT_PDF_WORKER_SRC } from \"./pdfConsts\";\n\ninterface PdfPreviewProps {\n src: string;\n onThumbailSidebarOpen?: (isOpen: boolean) => void;\n pdfWorkerSrc?: string;\n}\n\nexport function PdfPreview({\n src,\n onThumbailSidebarOpen,\n pdfWorkerSrc = DEFAULT_PDF_WORKER_SRC,\n}: PdfPreviewProps) {\n // Set the worker source once per render — pdfjs reads this when loading\n // the next document. Last-write-wins if multiple consumers configure it.\n pdfjs.GlobalWorkerOptions.workerSrc = pdfWorkerSrc;\n\n const { t } = useCustomTranslations();\n const [numPages, setNumPages] = useState<number>(1);\n const [documentError, setDocumentError] = useState<\n \"generic\" | \"outdated\" | null\n >(null);\n const [currentPage, setCurrentPage] = useState(1);\n const [isSidebarOpen, setIsSidebarOpen] = useState(false);\n const viewerRef = useRef<PdfPageViewerHandle>(null);\n const { handlePdfClick } = useRedirectDisclaimer();\n\n const [zoom, setZoom] = useState(1);\n const { pageDimensions, requestPageDimension, ensurePageDimensions, setPdf } =\n usePdfPageDimensions();\n\n const zoomIn = useCallback(() => {\n setZoom((prev) => Math.min(3, prev + 0.25));\n }, []);\n const zoomOut = useCallback(() => {\n setZoom((prev) => Math.max(0.5, prev - 0.25));\n }, []);\n const zoomReset = useCallback(() => {\n setZoom(1);\n }, []);\n const toggleSidebar = useCallback(() => {\n setIsSidebarOpen((prev) => {\n onThumbailSidebarOpen?.(!prev);\n return !prev;\n });\n }, []);\n\n const scrollToPage = useCallback((page: number) => {\n viewerRef.current?.scrollToPage(page);\n }, []);\n\n const {\n goToPage,\n onDocumentLoadSuccess: onNavLoadSuccess,\n pageInputValue,\n setPageInputValue,\n handlePageInputChange,\n handlePageInputSubmit,\n handlePageInputKeyDown,\n onItemClick,\n } = usePdfNavigation({ numPages, currentPage, scrollToPage });\n\n useEffect(() => {\n setPageInputValue(String(currentPage));\n }, [currentPage, setPageInputValue]);\n\n const { data: file, error } = useQuery<File, Error>({\n queryKey: [\"pdf\", src],\n queryFn: async ({ signal }) => {\n const response = await fetch(src, {\n credentials: \"include\",\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch PDF: ${response.status}`);\n }\n\n const blob = await response.blob();\n const filename = src.split(\"/\").pop() || \"document.pdf\";\n return new File([blob], filename, { type: \"application/pdf\" });\n },\n staleTime: Infinity,\n });\n\n const onDocumentLoadSuccess = useCallback(\n (pdf: PDFDocumentProxy) => {\n const nextNumPages = onNavLoadSuccess(pdf);\n setNumPages(nextNumPages);\n setPdf(pdf);\n },\n [onNavLoadSuccess, setPdf],\n );\n\n const handleDocumentError = useCallback((error: Error) => {\n const pdfErrors = [\n \"InvalidPDFException\",\n \"FormatError\",\n \"PasswordException\",\n \"ResponseException\",\n ];\n console.log(error);\n setDocumentError(pdfErrors.includes(error.name) ? \"generic\" : \"outdated\");\n }, []);\n\n console.log(error);\n\n if (error?.message || documentError === \"generic\") {\n return (\n <div className=\"file-preview-unsupported\" data-preview-backdrop=\"true\">\n <div className=\"file-preview-unsupported__icon\">\n <Icon name=\"error\" type={IconType.OUTLINED} size={48} />\n </div>\n <p className=\"file-preview-unsupported__title\">\n {t(\"components.filePreview.error.title\")}\n </p>\n <p className=\"file-preview-unsupported__description\">\n {t(\"components.filePreview.error.description\")}\n </p>\n </div>\n );\n }\n\n if (documentError === \"outdated\") {\n return <OutdatedBrowserPreview />;\n }\n\n const loadingSkeleton = (\n <div className=\"pdf-preview__container-skeleton\">\n <div className=\"pdf-preview__page-skeleton\" />\n </div>\n );\n\n return (\n <div className=\"pdf-preview\">\n <div className=\"pdf-preview__body\" data-preview-backdrop=\"true\">\n {file ? (\n <Document\n file={file}\n onLoadSuccess={onDocumentLoadSuccess}\n onItemClick={onItemClick}\n options={pdfOptions}\n loading={loadingSkeleton}\n onLoadError={handleDocumentError}\n >\n <PdfThumbnailSidebar\n numPages={numPages}\n currentPage={currentPage}\n goToPage={goToPage}\n isOpen={isSidebarOpen}\n pageDimensions={pageDimensions}\n requestPageDimension={requestPageDimension}\n />\n <PdfPageViewer\n ref={viewerRef}\n numPages={numPages}\n zoom={zoom}\n onCurrentPageChange={setCurrentPage}\n onClick={handlePdfClick}\n pageDimensions={pageDimensions}\n requestPageDimension={requestPageDimension}\n ensurePageDimensions={ensurePageDimensions}\n />\n </Document>\n ) : (\n loadingSkeleton\n )}\n </div>\n <PdfControls\n numPages={numPages}\n pageInputValue={pageInputValue}\n onToggleSidebar={toggleSidebar}\n onPageInputChange={handlePageInputChange}\n onPageInputSubmit={handlePageInputSubmit}\n onPageInputKeyDown={handlePageInputKeyDown}\n onZoomIn={zoomIn}\n onZoomReset={zoomReset}\n onZoomOut={zoomOut}\n />\n </div>\n );\n}\n\nexport default PdfPreview;\n"],"names":["url","base","promiseCtor","resolve","reject","res","rej","usePdfNavigation","numPages","currentPage","scrollToPage","pageInputValue","setPageInputValue","useState","goToPage","useCallback","page","clamped","onDocumentLoadSuccess","nextNumPages","handlePageInputChange","e","handlePageInputSubmit","parsed","handlePageInputKeyDown","goToPageRef","useRef","useEffect","onItemClick","args","FALLBACK_RATIO","usePdfPageDimensions","pdfRef","inFlightRef","pageDimensionsRef","pageDimensions","setPageDimensions","setPdf","pdf","fetchPageDimension","existing","promise","p","vp","next","err","requestPageDimension","ensurePageDimensions","pages","PdfThumbnailSidebar","props","unmount","setUnmount","isOpenProxy","setIsOpenProxy","timer","OPEN_DELAY","TRANSITION_DELAY","jsx","PdfThumbnailSidebarContent","isOpen","listRef","isClickNavRef","initialScrollIndex","setInitialScrollIndex","getRatio","index","d","rowHeight","THUMBNAIL_WIDTH","THUMBNAIL_LABEL_SPACE","THUMBNAIL_GAP","_a","handleRowsRendered","overscanStartIndex","overscanStopIndex","i","rowRenderer","key","style","ratio","thumbnailSkeleton","jsxs","Thumbnail","AutoSizer","height","width","List","PdfControls","onToggleSidebar","onPageInputChange","onPageInputSubmit","onPageInputKeyDown","onZoomIn","onZoomReset","onZoomOut","Button","LeftSidebarIcon","Input","ZoomControls","debounce","func","timeout","debouncedFunc","useDebouncedResize","size","setSize","handleResize","PAGE_GAP","BASE_WIDTH","PAGE_MARGIN","PdfPageViewer","zoom","onCurrentPageChange","onClick","ref","prevZoomRef","scrollTop","setScrollTop","listHeightRef","scrollJumpIdRef","useMemo","rowHeightForIndex","h","gap","newScrollTop","viewportCenter","offset","jumpId","dimensions","useImperativeHandle","handleScroll","st","clientHeight","pageSkeleton","Page","autoWidth","listWidth","SAFE_PROTOCOLS","useRedirectDisclaimer","modals","useModals","t","useCustomTranslations","anchor","decision","pdfOptions","PdfPreview","src","onThumbailSidebarOpen","pdfWorkerSrc","DEFAULT_PDF_WORKER_SRC","pdfjs","setNumPages","documentError","setDocumentError","setCurrentPage","isSidebarOpen","setIsSidebarOpen","viewerRef","handlePdfClick","setZoom","zoomIn","prev","zoomOut","zoomReset","toggleSidebar","onNavLoadSuccess","file","error","useQuery","signal","response","blob","filename","handleDocumentError","pdfErrors","Icon","IconType","OutdatedBrowserPreview","loadingSkeleton","Document"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PdfPreview-BzwV05lv.js","sources":["../src/components/preview/viewers/pdf-preview/pdfPolyfills.ts","../src/components/preview/viewers/pdf-preview/usePdfNavigation.ts","../src/components/preview/viewers/pdf-preview/usePdfPageDimensions.ts","../src/components/preview/viewers/pdf-preview/PdfThumbnailSidebar.tsx","../src/components/preview/viewers/pdf-preview/PdfControls.tsx","../src/components/preview/viewers/pdf-preview/useDebouncedResize.ts","../src/components/preview/viewers/pdf-preview/PdfPageViewer.tsx","../src/components/preview/viewers/pdf-preview/useRedirectDisclaimer.tsx","../src/components/preview/viewers/pdf-preview/pdfOptions.ts","../src/components/preview/viewers/pdf-preview/PdfPreview.tsx"],"sourcesContent":["/**\n * Polyfills required by pdfjs-dist for older browsers (e.g. Edge)\n * that lack these newer APIs.\n *\n * They live in a dedicated file so they are imported as the very first\n * module in PdfPreview.tsx — before react-pdf or pdfjs-dist execute —\n * guaranteeing the APIs exist when PDF code initialises.\n * A separate file also makes it easy to remove once browser support\n * catches up.\n */\n\nif (\n typeof (URL as unknown as { parse?: unknown }).parse === \"undefined\"\n) {\n (URL as unknown as Record<string, unknown>).parse = function (\n url: string,\n base?: string,\n ) {\n try {\n return new URL(url, base);\n } catch {\n return null;\n }\n };\n}\n\nconst promiseCtor = Promise as unknown as Record<string, unknown>;\nif (typeof promiseCtor.withResolvers === \"undefined\") {\n promiseCtor.withResolvers = function <T>() {\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n };\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\n\ninterface UsePdfNavigationParams {\n numPages: number;\n currentPage: number;\n scrollToPage: (page: number) => void;\n}\n\nexport const usePdfNavigation = ({\n numPages,\n currentPage,\n scrollToPage,\n}: UsePdfNavigationParams) => {\n const [pageInputValue, setPageInputValue] = useState<string>(\"1\");\n\n const goToPage = useCallback(\n (page: number) => {\n const clamped = Math.max(1, Math.min(numPages, page));\n setPageInputValue(String(clamped));\n scrollToPage(clamped);\n },\n [numPages, scrollToPage],\n );\n\n const onDocumentLoadSuccess = useCallback(\n ({ numPages: nextNumPages }: PDFDocumentProxy) => {\n setPageInputValue(\"1\");\n return nextNumPages;\n },\n [],\n );\n\n const handlePageInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setPageInputValue(e.target.value);\n };\n\n const handlePageInputSubmit = () => {\n const parsed = parseInt(pageInputValue, 10);\n if (isNaN(parsed)) {\n setPageInputValue(String(currentPage));\n return;\n }\n goToPage(parsed);\n };\n\n const handlePageInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n handlePageInputSubmit();\n }\n };\n\n // onItemClick handles internal PDF links (e.g. table of contents entries).\n // It is called by react-pdf's Document via a viewer ref that is created once\n // with useRef, so the callback is captured in a stale closure from the first\n // render. We use a ref to always access the latest goToPage (which depends\n // on numPages) so navigation targets the correct page.\n //\n // onClick (handlePdfClick) handles regular DOM clicks on the annotation layer\n // — it intercepts external links to show a redirect disclaimer modal.\n const goToPageRef = useRef(goToPage);\n useEffect(() => {\n goToPageRef.current = goToPage;\n }, [goToPage]);\n\n const onItemClick = useCallback((args: { pageNumber: number }) => {\n goToPageRef.current(args.pageNumber);\n }, []);\n\n return {\n goToPage,\n onDocumentLoadSuccess,\n pageInputValue,\n setPageInputValue,\n handlePageInputChange,\n handlePageInputSubmit,\n handlePageInputKeyDown,\n onItemClick,\n };\n};\n","import { useCallback, useRef, useState } from \"react\";\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\n\nexport interface PageDimension {\n w: number;\n h: number;\n}\n\n// Shared ratio fallback for rows whose dimensions have not yet been fetched.\n// Matches ISO 216 A4 portrait so first paint looks identical to the previous\n// hardcoded layout until real dimensions arrive.\nexport const FALLBACK_RATIO = 1.414;\n\nexport type PageDimensionsMap = ReadonlyMap<number, PageDimension>;\n\nexport interface UsePdfPageDimensionsResult {\n pageDimensions: PageDimensionsMap;\n requestPageDimension: (page: number) => void;\n // Ensures dimensions for the given pages are loaded. Resolves with the\n // up-to-date pageDimensions map once every requested page is cached —\n // callers use the resolved map directly to compute offsets without waiting\n // for React to commit the state update. Pages already cached or in flight\n // dedupe with existing work.\n ensurePageDimensions: (pages: number[]) => Promise<PageDimensionsMap>;\n setPdf: (pdf: PDFDocumentProxy | null) => void;\n}\n\n// Lazy per-page viewport cache. Consumers call requestPageDimension(page) when\n// a page scrolls into virtualization overscan; the returned pageDimensions map\n// is the read side of the cache. Once the page's dimensions are fetched, they\n// become available via pageDimensions, triggering a re-render of the PDF\n// previews with the correct dimension.\nexport function usePdfPageDimensions(): UsePdfPageDimensionsResult {\n const pdfRef = useRef<PDFDocumentProxy | null>(null);\n // Tracks fetches currently in progress so concurrent callers share one\n // getPage() round trip. Two distinct jobs:\n // - Dedup: onRowsRendered fires on every scroll tick, so the same page\n // can be requested many times before the first fetch resolves.\n // - Synchronisation: ensurePageDimensions([1..N]) (used by scrollToPage)\n // awaits Promise.all of fetchPageDimension(i). If another caller (e.g.\n // the overscan prefetch) has already started a fetch for page i, we\n // must return *that* Promise — otherwise `await` would resolve before\n // the stored fetch's .then() commits dimensions to pageDimensionsRef,\n // and scrollToPage would read stale dimensions when computing its\n // offset.\n const inFlightRef = useRef<Map<number, Promise<void>>>(new Map());\n // Mirror of pageDimensions state, read synchronously inside\n // requestPageDimension to dedupe fetches without stale-closure reads of\n // state.\n const pageDimensionsRef = useRef<Map<number, PageDimension>>(new Map());\n const [pageDimensions, setPageDimensions] = useState<\n Map<number, PageDimension>\n >(() => new Map());\n\n const setPdf = useCallback((pdf: PDFDocumentProxy | null) => {\n // Any cached dimensions belong to the previous document; reset on every\n // switch (including clear) so stale heights don't leak into the new doc.\n pdfRef.current = pdf;\n inFlightRef.current = new Map();\n pageDimensionsRef.current = new Map();\n setPageDimensions(new Map());\n }, []);\n\n const fetchPageDimension = useCallback((page: number): Promise<void> => {\n const pdf = pdfRef.current;\n if (!pdf) {\n return Promise.resolve();\n }\n if (pageDimensionsRef.current.has(page)) {\n return Promise.resolve();\n }\n const existing = inFlightRef.current.get(page);\n if (existing) {\n return existing;\n }\n\n const promise = pdf\n .getPage(page)\n .then((p) => {\n const vp = p.getViewport({ scale: 1 });\n const next = new Map(pageDimensionsRef.current);\n next.set(page, { w: vp.width, h: vp.height });\n pageDimensionsRef.current = next;\n setPageDimensions(next);\n })\n .catch((err) => {\n // Resolve (don't reject) on failure so ensurePageDimensions stays\n // usable: a page-input jump still scrolls, with FALLBACK_RATIO\n // standing in for the failed page via getRatio's map miss.\n console.warn(`Failed to fetch dimensions for PDF page ${page}`, err);\n })\n .finally(() => {\n inFlightRef.current.delete(page);\n });\n inFlightRef.current.set(page, promise);\n return promise;\n }, []);\n\n const requestPageDimension = useCallback(\n (page: number) => {\n void fetchPageDimension(page);\n },\n [fetchPageDimension],\n );\n\n const ensurePageDimensions = useCallback(\n async (pages: number[]): Promise<PageDimensionsMap> => {\n await Promise.all(pages.map((p) => fetchPageDimension(p)));\n return pageDimensionsRef.current;\n },\n [fetchPageDimension],\n );\n\n return {\n pageDimensions,\n requestPageDimension,\n ensurePageDimensions,\n setPdf,\n };\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { Thumbnail } from \"react-pdf\";\nimport { AutoSizer, List } from \"react-virtualized\";\nimport type { ListRowRenderer } from \"react-virtualized\";\nimport {\n OPEN_DELAY,\n THUMBNAIL_GAP,\n THUMBNAIL_LABEL_SPACE,\n THUMBNAIL_WIDTH,\n TRANSITION_DELAY,\n} from \"./pdfConsts\";\nimport { FALLBACK_RATIO, type PageDimensionsMap } from \"./usePdfPageDimensions\";\n\ninterface PdfThumbnailSidebarProps {\n numPages: number;\n currentPage: number;\n goToPage: (page: number) => void;\n isOpen: boolean;\n pageDimensions: PageDimensionsMap;\n requestPageDimension: (page: number) => void;\n}\n\n// Two-phase mount/unmount to allow CSS transitions to play out:\n// Opening: mount immediately (unmount=false), then defer isOpenProxy=true\n// so the DOM is present before the \"open\" class triggers the transition.\n// Closing: remove the \"open\" class first (isOpenProxy=false), wait for the\n// transition to finish (TRANSITION_DELAY), then unmount the component.\n// When closed the component is not mounted, which is better for performance\n// as this component is quite heavy and is not needed when closed.\nexport function PdfThumbnailSidebar(props: PdfThumbnailSidebarProps) {\n const [unmount, setUnmount] = useState(true);\n const [isOpenProxy, setIsOpenProxy] = useState(props.isOpen);\n\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n if (props.isOpen) {\n setUnmount(false);\n timer = setTimeout(() => setIsOpenProxy(true), OPEN_DELAY);\n } else {\n setIsOpenProxy(false);\n // The 1.1 is to allow for the transition to finish.\n // It is a safety margin to avoid the component being unmounted too early.\n timer = setTimeout(() => setUnmount(true), TRANSITION_DELAY * 1.1);\n }\n return () => clearTimeout(timer);\n }, [props.isOpen]);\n\n if (unmount) {\n return null;\n }\n\n return <PdfThumbnailSidebarContent {...props} isOpen={isOpenProxy} />;\n}\n\nexport function PdfThumbnailSidebarContent({\n numPages,\n currentPage,\n goToPage,\n isOpen,\n pageDimensions,\n requestPageDimension,\n}: PdfThumbnailSidebarProps) {\n const listRef = useRef<List>(null);\n // When true, the next currentPage change came from a thumbnail click\n // and should not trigger an auto-scroll of the sidebar.\n const isClickNavRef = useRef(false);\n // Scroll to the current page on first render, then clear so the prop\n // no longer forces scroll position on subsequent renders.\n const [initialScrollIndex, setInitialScrollIndex] = useState<\n number | undefined\n >(currentPage - 1);\n\n // Auto-scroll active thumbnail into view (only for scroll-initiated changes)\n useEffect(() => {\n if (!listRef.current) return;\n if (isClickNavRef.current) {\n isClickNavRef.current = false;\n return;\n }\n listRef.current.scrollToRow(currentPage - 1);\n }, [currentPage]);\n\n const getRatio = useCallback(\n (index: number) => {\n const d = pageDimensions.get(index + 1);\n return d ? d.h / d.w : FALLBACK_RATIO;\n },\n [pageDimensions],\n );\n\n const rowHeight = useCallback(\n ({ index }: { index: number }) => {\n const thumbH = THUMBNAIL_WIDTH * getRatio(index);\n const base = thumbH + THUMBNAIL_LABEL_SPACE + THUMBNAIL_GAP;\n // Every row reserves a gap above via paddingTop. The last row also\n // reserves one below so the final thumbnail has matching breathing\n // room at the bottom of the sidebar.\n return index === numPages - 1 ? base + THUMBNAIL_GAP : base;\n },\n [getRatio, numPages],\n );\n\n // Invalidate react-virtualized's row-height cache when dimensions update.\n useEffect(() => {\n listRef.current?.recomputeRowHeights();\n }, [pageDimensions, numPages]);\n\n const handleRowsRendered = useCallback(\n ({\n overscanStartIndex,\n overscanStopIndex,\n }: {\n overscanStartIndex: number;\n overscanStopIndex: number;\n }) => {\n for (let i = overscanStartIndex; i <= overscanStopIndex; i++) {\n requestPageDimension(i + 1);\n }\n if (initialScrollIndex !== undefined) setInitialScrollIndex(undefined);\n },\n [requestPageDimension, initialScrollIndex],\n );\n\n const rowRenderer: ListRowRenderer = ({ index, key, style }) => {\n const page = index + 1;\n const ratio = getRatio(index);\n const thumbnailSkeleton = (\n <div\n className=\"pdf-preview__thumbnail-skeleton\"\n style={{ width: THUMBNAIL_WIDTH, height: THUMBNAIL_WIDTH * ratio }}\n />\n );\n return (\n <div\n key={key}\n style={{\n ...style,\n paddingTop: THUMBNAIL_GAP,\n paddingBottom: index === numPages - 1 ? THUMBNAIL_GAP : 0,\n boxSizing: \"border-box\",\n }}\n >\n <button\n data-thumb-page={page}\n className={`pdf-preview__thumbnail${currentPage === page ? \" pdf-preview__thumbnail--active\" : \"\"}`}\n onClick={() => {\n isClickNavRef.current = true;\n goToPage(page);\n }}\n aria-label={`Go to page ${page}`}\n >\n <Thumbnail\n pageNumber={page}\n width={THUMBNAIL_WIDTH}\n loading={thumbnailSkeleton}\n />\n <span className=\"pdf-preview__thumbnail-number\">{page}</span>\n </button>\n </div>\n );\n };\n\n return (\n <div\n className={`pdf-preview__sidebar${!isOpen ? \" pdf-preview__sidebar--closed\" : \"\"}`}\n >\n <AutoSizer>\n {({ height, width }) => (\n <List\n ref={listRef}\n height={height}\n width={width}\n rowCount={numPages}\n rowHeight={rowHeight}\n estimatedRowSize={\n THUMBNAIL_WIDTH * FALLBACK_RATIO +\n THUMBNAIL_LABEL_SPACE +\n THUMBNAIL_GAP\n }\n overscanRowCount={5}\n rowRenderer={rowRenderer}\n scrollToIndex={initialScrollIndex}\n scrollToAlignment=\"center\"\n onRowsRendered={handleRowsRendered}\n style={{ outline: \"none\" }}\n />\n )}\n </AutoSizer>\n </div>\n );\n}\n","import { Button, Input } from \"@gouvfr-lasuite/cunningham-react\";\nimport { LeftSidebarIcon } from \"../../icons/LeftSidebarIcon\";\nimport { ZoomControls } from \"../../components/ZoomControls/ZoomControls\";\n\ninterface PdfControlsProps {\n numPages: number;\n pageInputValue: string;\n onToggleSidebar: () => void;\n onPageInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onPageInputSubmit: () => void;\n onPageInputKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onZoomIn: () => void;\n onZoomReset: () => void;\n onZoomOut: () => void;\n}\n\nexport function PdfControls({\n numPages,\n pageInputValue,\n onToggleSidebar,\n onPageInputChange,\n onPageInputSubmit,\n onPageInputKeyDown,\n onZoomIn,\n onZoomReset,\n onZoomOut,\n}: PdfControlsProps) {\n return (\n <div className=\"file-preview__controls\">\n <Button\n variant=\"tertiary\"\n color=\"neutral\"\n onClick={onToggleSidebar}\n aria-label=\"Toggle sidebar\"\n size=\"small\"\n icon={<LeftSidebarIcon />}\n />\n <div className=\"file-preview__controls__separator\" />\n <div className=\"pdf-preview__page-nav\">\n <div className=\"pdf-preview__page-indicator\">\n <Input\n variant=\"classic\"\n value={pageInputValue}\n onChange={onPageInputChange}\n onBlur={onPageInputSubmit}\n onKeyDown={onPageInputKeyDown}\n aria-label=\"Current page\"\n size={pageInputValue.length || 1}\n />\n <span className=\"pdf-preview__page-total\">/ {numPages}</span>\n </div>\n </div>\n <div className=\"file-preview__controls__separator\" />\n <ZoomControls\n zoomOut={onZoomOut}\n zoomIn={onZoomIn}\n resetView={onZoomReset}\n />\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\n\nfunction debounce<T extends (...args: never[]) => unknown>(\n func: T,\n timeout = 300,\n): ((...args: Parameters<T>) => void) & { cancel: () => void } {\n let timer: ReturnType<typeof setTimeout> | undefined;\n const debouncedFunc = (...args: Parameters<T>) => {\n if (timer !== undefined) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n func(...args);\n }, timeout);\n };\n debouncedFunc.cancel = () => {\n if (timer !== undefined) {\n clearTimeout(timer);\n }\n };\n return debouncedFunc;\n}\n\nexport const useDebouncedResize = () => {\n const [size, setSize] = useState({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n\n useEffect(() => {\n const handleResize = debounce(() => {\n setSize({ width: window.innerWidth, height: window.innerHeight });\n }, 100);\n window.addEventListener(\"resize\", handleResize);\n return () => {\n handleResize.cancel();\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return size;\n};\n","import {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Page } from \"react-pdf\";\nimport { AutoSizer, List } from \"react-virtualized\";\nimport type { ListRowRenderer, Index } from \"react-virtualized\";\nimport { useDebouncedResize } from \"./useDebouncedResize\";\nimport { FALLBACK_RATIO, type PageDimensionsMap } from \"./usePdfPageDimensions\";\n\nconst PAGE_GAP = 16;\nconst BASE_WIDTH = 800;\nconst PAGE_MARGIN = 32;\n\nexport interface PdfPageViewerHandle {\n scrollToPage: (page: number) => void;\n}\n\ninterface PdfPageViewerProps {\n numPages: number;\n zoom: number;\n onCurrentPageChange: (page: number) => void;\n onClick: (e: React.MouseEvent<HTMLDivElement>) => void;\n pageDimensions: PageDimensionsMap;\n requestPageDimension: (page: number) => void;\n ensurePageDimensions: (pages: number[]) => Promise<PageDimensionsMap>;\n}\n\nexport function PdfPageViewer({\n numPages,\n zoom,\n onCurrentPageChange,\n onClick,\n pageDimensions,\n requestPageDimension,\n ensurePageDimensions,\n ref,\n}: PdfPageViewerProps & { ref?: React.Ref<PdfPageViewerHandle> }) {\n const listRef = useRef<List>(null);\n const prevZoomRef = useRef(zoom);\n const [scrollTop, setScrollTop] = useState(0);\n const listHeightRef = useRef(0);\n // Each scrollToPage call bumps this counter and captures its own id.\n // When a later call supersedes an earlier one, the earlier one checks\n // the counter in its async tail and bails — otherwise dimensions arriving\n // late for a stale target can clobber the user's newest jump.\n const scrollJumpIdRef = useRef(0);\n\n const size = useDebouncedResize();\n\n const width = useMemo(() => {\n return BASE_WIDTH + PAGE_MARGIN > size.width\n ? size.width - PAGE_MARGIN\n : BASE_WIDTH;\n }, [size.width]);\n\n // Per-page aspect ratio (height / width) from pdfjs.\n const getRatio = useCallback(\n (index: number) => {\n const d = pageDimensions.get(index + 1);\n return d ? d.h / d.w : FALLBACK_RATIO;\n },\n [pageDimensions],\n );\n\n const rowHeightForIndex = useCallback(\n (index: number) => {\n const h = width * getRatio(index) * zoom;\n const gap = PAGE_GAP * zoom;\n // Every row reserves a gap above the page via paddingTop. The last\n // row additionally reserves a gap below it so the final page has\n // breathing room matching the space above every other page.\n return index === numPages - 1 ? h + 2 * gap : h + gap;\n },\n [width, getRatio, zoom, numPages],\n );\n\n // Wrapper around rowHeightForIndex with appropriate signature for react-virtualized.\n const rowHeight = useCallback(\n ({ index }: Index) => rowHeightForIndex(index),\n [rowHeightForIndex],\n );\n\n // When zoom, width, pageDimensions or numPages change, row heights must be\n // recalculated because react-virtualized caches them internally.\n // On zoom change we also scale scrollTop proportionally so the user stays\n // on the same part of the document (e.g. 2x zoom → 2x scroll offset).\n useEffect(() => {\n listRef.current?.recomputeRowHeights();\n\n if (prevZoomRef.current !== zoom && listRef.current) {\n const ratio = zoom / prevZoomRef.current;\n const newScrollTop = Math.round(scrollTop * ratio);\n\n listRef.current.scrollToPosition(newScrollTop);\n prevZoomRef.current = zoom;\n }\n }, [zoom, width, pageDimensions, numPages]);\n\n // Find which page contains the vertical center of the viewport by walking\n // cumulative row heights until we pass the midpoint.\n const currentPage = useMemo(() => {\n if (numPages === 0) return 1;\n\n const viewportCenter = scrollTop + listHeightRef.current / 2;\n\n let offset = 0;\n for (let i = 0; i < numPages; i++) {\n const h = rowHeightForIndex(i);\n if (offset + h > viewportCenter) {\n return i + 1;\n }\n offset += h;\n }\n\n return numPages;\n }, [scrollTop, numPages, rowHeightForIndex]);\n\n useEffect(() => {\n onCurrentPageChange(currentPage);\n }, [currentPage]);\n\n const scrollToPage = useCallback(\n (page: number) => {\n // Jump targets can land on a page whose predecessors haven't had their\n // dimensions fetched yet (the user never scrolled through them). Await\n // dimensions for the whole prefix before computing the offset so the\n // scroll lands on the real page, not an A4-fallback approximation. We\n // use the up-to-date map returned by ensurePageDimensions rather than\n // rowHeightForIndex because React may not have committed the state\n // update yet when the promise resolves.\n //\n // Jumps issued in quick succession (e.g. a user mashing the page input)\n // race: an earlier call's prefix may take longer than a later call's,\n // so a stale .then() could clobber the newest target. We tag each call\n // with an id and bail if a newer one has been issued.\n scrollJumpIdRef.current += 1;\n const jumpId = scrollJumpIdRef.current;\n\n const pages: number[] = [];\n for (let i = 1; i <= page; i++) pages.push(i);\n ensurePageDimensions(pages).then((dimensions) => {\n if (scrollJumpIdRef.current !== jumpId) return;\n if (!listRef.current) return;\n let offset = 0;\n for (let i = 0; i < page - 1; i++) {\n const d = dimensions.get(i + 1);\n const ratio = d ? d.h / d.w : FALLBACK_RATIO;\n offset += width * ratio * zoom + PAGE_GAP * zoom;\n }\n listRef.current.scrollToPosition(offset);\n });\n },\n [ensurePageDimensions, width, zoom],\n );\n\n useImperativeHandle(ref, () => ({ scrollToPage }), [scrollToPage]);\n\n const handleScroll = useCallback(\n ({\n scrollTop: st,\n clientHeight,\n }: {\n scrollTop: number;\n clientHeight: number;\n }) => {\n listHeightRef.current = clientHeight;\n setScrollTop(st);\n },\n [],\n );\n\n const handleRowsRendered = useCallback(\n ({\n overscanStartIndex,\n overscanStopIndex,\n }: {\n overscanStartIndex: number;\n overscanStopIndex: number;\n }) => {\n for (let i = overscanStartIndex; i <= overscanStopIndex; i++) {\n requestPageDimension(i + 1);\n }\n },\n [requestPageDimension],\n );\n\n const rowRenderer: ListRowRenderer = ({ index, key, style }) => {\n const ratio = getRatio(index);\n const pageSkeleton = (\n <div\n className=\"pdf-preview__page-skeleton pdf-preview__page-skeleton--measured\"\n style={{ height: width * ratio * zoom, width: width * zoom }}\n />\n );\n return (\n <div\n key={key}\n data-preview-backdrop=\"true\"\n className=\"pdf-preview__page-container\"\n style={{\n ...style,\n paddingTop: PAGE_GAP * zoom,\n paddingBottom: index === numPages - 1 ? PAGE_GAP * zoom : 0,\n }}\n >\n <Page\n pageNumber={index + 1}\n width={width}\n scale={zoom}\n loading={pageSkeleton}\n />\n </div>\n );\n };\n\n return (\n <div className=\"pdf-preview__container\" onClick={onClick}>\n <AutoSizer>\n {({ height, width: autoWidth }) => {\n // When zoomed in the page content may exceed the viewport width.\n // The wrapper div is clamped to the viewport (autoWidth) and scrolls\n // horizontally, while the List itself is sized to the full content\n // width so pages render uncropped.\n const listWidth = Math.max(autoWidth, width * zoom);\n return (\n <div\n style={{\n width: autoWidth,\n height,\n }}\n className=\"pdf-preview__horizontal-scroll\"\n >\n <List\n ref={listRef}\n height={height}\n width={listWidth}\n rowCount={numPages}\n rowHeight={rowHeight}\n estimatedRowSize={\n width * FALLBACK_RATIO * zoom + PAGE_GAP * zoom\n }\n overscanRowCount={3}\n onScroll={handleScroll}\n onRowsRendered={handleRowsRendered}\n rowRenderer={rowRenderer}\n style={{ outline: \"none\" }}\n />\n </div>\n );\n }}\n </AutoSizer>\n </div>\n );\n}\n","import { useCallback } from \"react\";\nimport { useModals } from \"@gouvfr-lasuite/cunningham-react\";\nimport { useCustomTranslations } from \":/hooks/useCustomTranslations\";\n\nconst SAFE_PROTOCOLS = [\"https:\", \"http:\"];\n\nexport const useRedirectDisclaimer = () => {\n const modals = useModals();\n const { t } = useCustomTranslations();\n const handlePdfClick = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n const anchor = target.closest(\"a\");\n if (anchor && anchor.href) {\n if (anchor.closest(\"[data-internal-link]\")) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n try {\n const url = new URL(anchor.href);\n if (!SAFE_PROTOCOLS.includes(url.protocol)) return;\n } catch {\n return;\n }\n\n modals.confirmationModal({\n title: t(\"components.filePreview.externalLink.title\"),\n children: (\n <div>\n <p>{t(\"components.filePreview.externalLink.description\")}</p>\n <span className=\"pdf-preview__external-link\">{anchor.href}</span>\n <p>{t(\"components.filePreview.externalLink.confirmQuestion\")}</p>\n </div>\n ),\n onDecide: (decision) => {\n if (decision === \"yes\") {\n window.open(anchor.href, \"_blank\", \"noopener,noreferrer\");\n }\n },\n });\n }\n },\n [modals, t],\n );\n return { handlePdfClick };\n};\n","export const pdfOptions = {\n cMapUrl: \"/cmaps/\",\n standardFontDataUrl: \"/standard_fonts/\",\n wasmUrl: \"/wasm/\",\n isEvalSupported: false,\n};\n","import \"./pdfPolyfills\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { Document, pdfjs } from \"react-pdf\";\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\n\nimport { Icon, IconType } from \":/components/icon\";\nimport { useCustomTranslations } from \":/hooks/useCustomTranslations\";\n\nimport { usePdfNavigation } from \"./usePdfNavigation\";\nimport { PdfThumbnailSidebar } from \"./PdfThumbnailSidebar\";\nimport { PdfControls } from \"./PdfControls\";\nimport { PdfPageViewer } from \"./PdfPageViewer\";\nimport type { PdfPageViewerHandle } from \"./PdfPageViewer\";\nimport { useRedirectDisclaimer } from \"./useRedirectDisclaimer\";\nimport { OutdatedBrowserPreview } from \"./OutdatedBrowserPreview\";\nimport { pdfOptions } from \"./pdfOptions\";\nimport { usePdfPageDimensions } from \"./usePdfPageDimensions\";\nimport { DEFAULT_PDF_WORKER_SRC } from \"./pdfConsts\";\n\ninterface PdfPreviewProps {\n src: string;\n onThumbailSidebarOpen?: (isOpen: boolean) => void;\n pdfWorkerSrc?: string;\n}\n\nexport function PdfPreview({\n src,\n onThumbailSidebarOpen,\n pdfWorkerSrc = DEFAULT_PDF_WORKER_SRC,\n}: PdfPreviewProps) {\n // Set the worker source once per render — pdfjs reads this when loading\n // the next document. Last-write-wins if multiple consumers configure it.\n pdfjs.GlobalWorkerOptions.workerSrc = pdfWorkerSrc;\n\n const { t } = useCustomTranslations();\n const [numPages, setNumPages] = useState<number>(1);\n const [documentError, setDocumentError] = useState<\n \"generic\" | \"outdated\" | null\n >(null);\n const [currentPage, setCurrentPage] = useState(1);\n const [isSidebarOpen, setIsSidebarOpen] = useState(false);\n const viewerRef = useRef<PdfPageViewerHandle>(null);\n const { handlePdfClick } = useRedirectDisclaimer();\n\n const [zoom, setZoom] = useState(1);\n const { pageDimensions, requestPageDimension, ensurePageDimensions, setPdf } =\n usePdfPageDimensions();\n\n const zoomIn = useCallback(() => {\n setZoom((prev) => Math.min(3, prev + 0.25));\n }, []);\n const zoomOut = useCallback(() => {\n setZoom((prev) => Math.max(0.5, prev - 0.25));\n }, []);\n const zoomReset = useCallback(() => {\n setZoom(1);\n }, []);\n const toggleSidebar = useCallback(() => {\n setIsSidebarOpen((prev) => {\n onThumbailSidebarOpen?.(!prev);\n return !prev;\n });\n }, []);\n\n const scrollToPage = useCallback((page: number) => {\n viewerRef.current?.scrollToPage(page);\n }, []);\n\n const {\n goToPage,\n onDocumentLoadSuccess: onNavLoadSuccess,\n pageInputValue,\n setPageInputValue,\n handlePageInputChange,\n handlePageInputSubmit,\n handlePageInputKeyDown,\n onItemClick,\n } = usePdfNavigation({ numPages, currentPage, scrollToPage });\n\n useEffect(() => {\n setPageInputValue(String(currentPage));\n }, [currentPage, setPageInputValue]);\n\n const { data: file, error } = useQuery<File, Error>({\n queryKey: [\"pdf\", src],\n queryFn: async ({ signal }) => {\n const response = await fetch(src, {\n credentials: \"include\",\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch PDF: ${response.status}`);\n }\n\n const blob = await response.blob();\n const filename = src.split(\"/\").pop() || \"document.pdf\";\n return new File([blob], filename, { type: \"application/pdf\" });\n },\n staleTime: Infinity,\n });\n\n const onDocumentLoadSuccess = useCallback(\n (pdf: PDFDocumentProxy) => {\n const nextNumPages = onNavLoadSuccess(pdf);\n setNumPages(nextNumPages);\n setPdf(pdf);\n },\n [onNavLoadSuccess, setPdf],\n );\n\n const handleDocumentError = useCallback((error: Error) => {\n const pdfErrors = [\n \"InvalidPDFException\",\n \"FormatError\",\n \"PasswordException\",\n \"ResponseException\",\n ];\n console.log(error);\n setDocumentError(pdfErrors.includes(error.name) ? \"generic\" : \"outdated\");\n }, []);\n\n console.log(error);\n\n if (error?.message || documentError === \"generic\") {\n return (\n <div className=\"file-preview-unsupported\" data-preview-backdrop=\"true\">\n <div className=\"file-preview-unsupported__icon\">\n <Icon name=\"error\" type={IconType.OUTLINED} size={48} />\n </div>\n <p className=\"file-preview-unsupported__title\">\n {t(\"components.filePreview.error.title\")}\n </p>\n <p className=\"file-preview-unsupported__description\">\n {t(\"components.filePreview.error.description\")}\n </p>\n </div>\n );\n }\n\n if (documentError === \"outdated\") {\n return <OutdatedBrowserPreview />;\n }\n\n const loadingSkeleton = (\n <div className=\"pdf-preview__container-skeleton\">\n <div className=\"pdf-preview__page-skeleton\" />\n </div>\n );\n\n return (\n <div className=\"pdf-preview\">\n <div className=\"pdf-preview__body\" data-preview-backdrop=\"true\">\n {file ? (\n <Document\n file={file}\n onLoadSuccess={onDocumentLoadSuccess}\n onItemClick={onItemClick}\n options={pdfOptions}\n loading={loadingSkeleton}\n onLoadError={handleDocumentError}\n >\n <PdfThumbnailSidebar\n numPages={numPages}\n currentPage={currentPage}\n goToPage={goToPage}\n isOpen={isSidebarOpen}\n pageDimensions={pageDimensions}\n requestPageDimension={requestPageDimension}\n />\n <PdfPageViewer\n ref={viewerRef}\n numPages={numPages}\n zoom={zoom}\n onCurrentPageChange={setCurrentPage}\n onClick={handlePdfClick}\n pageDimensions={pageDimensions}\n requestPageDimension={requestPageDimension}\n ensurePageDimensions={ensurePageDimensions}\n />\n </Document>\n ) : (\n loadingSkeleton\n )}\n </div>\n <PdfControls\n numPages={numPages}\n pageInputValue={pageInputValue}\n onToggleSidebar={toggleSidebar}\n onPageInputChange={handlePageInputChange}\n onPageInputSubmit={handlePageInputSubmit}\n onPageInputKeyDown={handlePageInputKeyDown}\n onZoomIn={zoomIn}\n onZoomReset={zoomReset}\n onZoomOut={zoomOut}\n />\n </div>\n );\n}\n\nexport default PdfPreview;\n"],"names":["url","base","promiseCtor","resolve","reject","res","rej","usePdfNavigation","numPages","currentPage","scrollToPage","pageInputValue","setPageInputValue","useState","goToPage","useCallback","page","clamped","onDocumentLoadSuccess","nextNumPages","handlePageInputChange","e","handlePageInputSubmit","parsed","handlePageInputKeyDown","goToPageRef","useRef","useEffect","onItemClick","args","FALLBACK_RATIO","usePdfPageDimensions","pdfRef","inFlightRef","pageDimensionsRef","pageDimensions","setPageDimensions","setPdf","pdf","fetchPageDimension","existing","promise","p","vp","next","err","requestPageDimension","ensurePageDimensions","pages","PdfThumbnailSidebar","props","unmount","setUnmount","isOpenProxy","setIsOpenProxy","timer","OPEN_DELAY","TRANSITION_DELAY","jsx","PdfThumbnailSidebarContent","isOpen","listRef","isClickNavRef","initialScrollIndex","setInitialScrollIndex","getRatio","index","d","rowHeight","THUMBNAIL_WIDTH","THUMBNAIL_LABEL_SPACE","THUMBNAIL_GAP","_a","handleRowsRendered","overscanStartIndex","overscanStopIndex","i","rowRenderer","key","style","ratio","thumbnailSkeleton","jsxs","Thumbnail","AutoSizer","height","width","List","PdfControls","onToggleSidebar","onPageInputChange","onPageInputSubmit","onPageInputKeyDown","onZoomIn","onZoomReset","onZoomOut","Button","LeftSidebarIcon","Input","ZoomControls","debounce","func","timeout","debouncedFunc","useDebouncedResize","size","setSize","handleResize","PAGE_GAP","BASE_WIDTH","PAGE_MARGIN","PdfPageViewer","zoom","onCurrentPageChange","onClick","ref","prevZoomRef","scrollTop","setScrollTop","listHeightRef","scrollJumpIdRef","useMemo","rowHeightForIndex","h","gap","newScrollTop","viewportCenter","offset","jumpId","dimensions","useImperativeHandle","handleScroll","st","clientHeight","pageSkeleton","Page","autoWidth","listWidth","SAFE_PROTOCOLS","useRedirectDisclaimer","modals","useModals","t","useCustomTranslations","anchor","decision","pdfOptions","PdfPreview","src","onThumbailSidebarOpen","pdfWorkerSrc","DEFAULT_PDF_WORKER_SRC","pdfjs","setNumPages","documentError","setDocumentError","setCurrentPage","isSidebarOpen","setIsSidebarOpen","viewerRef","handlePdfClick","setZoom","zoomIn","prev","zoomOut","zoomReset","toggleSidebar","onNavLoadSuccess","file","error","useQuery","signal","response","blob","filename","handleDocumentError","pdfErrors","Icon","IconType","OutdatedBrowserPreview","loadingSkeleton","Document"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";const n1=require("react");var A={exports:{}},p={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var F;function c1(){if(F)return p;F=1;var r=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function m(R,i,d){var q=null;if(d!==void 0&&(q=""+d),i.key!==void 0&&(q=""+i.key),"key"in i){d={};for(var x in i)x!=="key"&&(d[x]=i[x])}else d=i;return i=d.ref,{$$typeof:r,type:R,key:q,ref:i!==void 0?i:null,props:d}}return p.Fragment=u,p.jsx=m,p.jsxs=m,p}var j={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-jsx-runtime.development.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var I;function s1(){return I||(I=1,process.env.NODE_ENV!=="production"&&function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===l1?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case M:return"Fragment";case Z:return"Profiler";case W:return"StrictMode";case K:return"Suspense";case e1:return"SuspenseList";case a1:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case X:return"Portal";case B:return(e.displayName||"Context")+".Provider";case J:return(e._context.displayName||"Context")+".Consumer";case Q:var l=e.render;return e=e.displayName,e||(e=l.displayName||l.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case r1:return l=e.displayName||null,l!==null?l:r(e.type)||"Memo";case z:l=e._payload,e=e._init;try{return r(e(l))}catch{}}return null}function u(e){return""+e}function m(e){try{u(e);var l=!1}catch{l=!0}if(l){l=console;var o=l.error,n=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o.call(l,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",n),u(e)}}function R(e){if(e===M)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===z)return"<...>";try{var l=r(e);return l?"<"+l+">":"<...>"}catch{return"<...>"}}function i(){var e=_.A;return e===null?null:e.getOwner()}function d(){return Error("react-stack-top-frame")}function q(e){if(P.call(e,"key")){var l=Object.getOwnPropertyDescriptor(e,"key").get;if(l&&l.isReactWarning)return!1}return e.key!==void 0}function x(e,l){function o(){O||(O=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",l))}o.isReactWarning=!0,Object.defineProperty(e,"key",{get:o,configurable:!0})}function G(){var e=r(this.type);return V[e]||(V[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function $(e,l,o,n,h,f,T,S){return o=f.ref,e={$$typeof:w,type:e,key:l,props:f,_owner:h},(o!==void 0?o:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:G}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:T}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:S}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function k(e,l,o,n,h,f,T,S){var c=l.children;if(c!==void 0)if(n)if(t1(c)){for(n=0;n<c.length;n++)g(c[n]);Object.freeze&&Object.freeze(c)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else g(c);if(P.call(l,"key")){c=r(e);var v=Object.keys(l).filter(function(o1){return o1!=="key"});n=0<v.length?"{key: someKey, "+v.join(": ..., ")+": ...}":"{key: someKey}",N[c+n]||(v=0<v.length?"{"+v.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
18
|
+
let props = %s;
|
|
19
|
+
<%s {...props} />
|
|
20
|
+
React keys must be passed directly to JSX without using spread:
|
|
21
|
+
let props = %s;
|
|
22
|
+
<%s key={someKey} {...props} />`,n,c,v,c),N[c+n]=!0)}if(c=null,o!==void 0&&(m(o),c=""+o),q(l)&&(m(l.key),c=""+l.key),"key"in l){o={};for(var L in l)L!=="key"&&(o[L]=l[L])}else o=l;return c&&x(o,typeof e=="function"?e.displayName||e.name||"Unknown":e),$(e,c,f,h,i(),o,T,S)}function g(e){typeof e=="object"&&e!==null&&e.$$typeof===w&&e._store&&(e._store.validated=1)}var E=n1,w=Symbol.for("react.transitional.element"),X=Symbol.for("react.portal"),M=Symbol.for("react.fragment"),W=Symbol.for("react.strict_mode"),Z=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),B=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),K=Symbol.for("react.suspense"),e1=Symbol.for("react.suspense_list"),r1=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),a1=Symbol.for("react.activity"),l1=Symbol.for("react.client.reference"),_=E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=Object.prototype.hasOwnProperty,t1=Array.isArray,b=console.createTask?console.createTask:function(){return null};E={react_stack_bottom_frame:function(e){return e()}};var O,V={},y=E.react_stack_bottom_frame.bind(E,d)(),H=b(R(d)),N={};j.Fragment=M,j.jsx=function(e,l,o,n,h){var f=1e4>_.recentlyCreatedOwnerStacks++;return k(e,l,o,!1,n,h,f?Error("react-stack-top-frame"):y,f?b(R(e)):H)},j.jsxs=function(e,l,o,n,h){var f=1e4>_.recentlyCreatedOwnerStacks++;return k(e,l,o,!0,n,h,f?Error("react-stack-top-frame"):y,f?b(R(e)):H)}}()),j}var D;function i1(){return D||(D=1,process.env.NODE_ENV==="production"?A.exports=c1():A.exports=s1()),A.exports}var a=i1(),s=(r=>(r.X_SMALL="xsmall",r.SMALL="small",r.MEDIUM="medium",r.LARGE="large",r.X_LARGE="xlarge",r))(s||{}),Y=(r=>(r.OUTLINED="outlined",r.FILLED="filled",r))(Y||{});const C={[s.X_SMALL]:11,[s.SMALL]:16,[s.MEDIUM]:24,[s.LARGE]:32,[s.X_LARGE]:40},U={[s.X_SMALL]:16,[s.SMALL]:24,[s.MEDIUM]:32,[s.LARGE]:40,[s.X_LARGE]:48},u1=r=>U[r]??24,d1=r=>C[r]??24,t=r=>{let u;return typeof r.size=="number"?u=r.size:r.size&&C[r.size]?u=C[r.size]:u=24,a.jsx("svg",{width:u,height:u,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r,children:r.children})},f1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M11.293 4.293a1 1 0 1 1 1.414 1.414L7.414 11H19a1 1 0 0 1 0 2H7.414l5.293 5.293a1 1 0 1 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414z"})}),h1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M11.293 4.293a1 1 0 0 1 1.414 0l7 7a1 1 0 0 1 0 1.414l-7 7a1 1 0 1 1-1.414-1.414L16.586 13H5a1 1 0 1 1 0-2h11.586l-5.293-5.293a1 1 0 0 1 0-1.414"})}),v1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M12 2a1 1 0 0 1 0 2H6.8c-.857 0-1.439.001-1.889.038-.438.036-.663.1-.82.18a2 2 0 0 0-.873.874c-.08.156-.145.38-.18.82C3 6.361 3 6.942 3 7.8v6.4c0 .857 0 1.439.037 1.889.036.438.101.663.18.82a2 2 0 0 0 .875.873c.156.08.38.144.82.18.45.037 1.031.038 1.888.038h5.523c.03 0 .17-.004.313.023q.08.015.16.04l.153.058c.132.06.244.144.269.161l3.282 2.296V19.47c0-.046-.009-.27.049-.48.11-.4.398-.724.775-.884l.166-.057.158-.032c.152-.022.287-.017.322-.017 1.023 0 1.334-.01 1.562-.072a2 2 0 0 0 1.396-1.396c.063-.228.072-.538.072-1.561V11a1 1 0 1 1 2 0v3.97c0 .892.009 1.54-.145 2.095a4 4 0 0 1-2.79 2.79c-.439.122-.936.141-1.565.144v1.426c0 .154 0 .339-.014.494-.013.143-.05.45-.265.73a1.35 1.35 0 0 1-1.012.528 1.4 1.4 0 0 1-.751-.201c-.135-.078-.287-.185-.413-.274L12.185 20H6.8c-.824 0-1.502.001-2.052-.044-.562-.046-1.08-.144-1.564-.392a4 4 0 0 1-1.748-1.749c-.248-.485-.346-1.001-.392-1.563C.999 15.702 1 15.024 1 14.2V7.8c0-.824-.001-1.502.044-2.052.046-.562.144-1.078.392-1.563a4 4 0 0 1 1.748-1.75c.485-.247 1.002-.345 1.564-.391C5.298 1.999 5.976 2 6.8 2z"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M19.876 1a3.124 3.124 0 0 1 2.209 5.333l-5.013 5.01v-.001a3 3 0 0 1-1.281.759l-2.87.837a1.501 1.501 0 0 1-1.86-1.86l.837-2.87.059-.18c.15-.413.387-.79.7-1.101l5.01-5.012A3.12 3.12 0 0 1 19.876 1m0 2c-.298 0-.584.118-.795.33l-5.01 5.01a1 1 0 0 0-.253.429l-.582 1.994 1.995-.582c.161-.047.309-.135.427-.253l5.013-5.01.074-.081A1.124 1.124 0 0 0 19.876 3",clipRule:"evenodd"})]}),m1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M10.119 19.885q-.656 0-1.118-.581l-4.709-5.89q-.173-.21-.254-.41a1.2 1.2 0 0 1-.073-.409q0-.472.309-.781.318-.31.8-.31.555 0 .936.5l4.072 5.227 7.89-12.535q.21-.318.427-.445.219-.135.564-.136.472 0 .772.3.3.29.3.763 0 .191-.063.391-.065.19-.2.41l-8.544 13.316q-.4.59-1.11.59"})}),R1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M8.293 5.293a1 1 0 0 1 1.414 0l6 6a1 1 0 0 1 0 1.414l-6 6a1 1 0 1 1-1.414-1.414L13.586 12 8.293 6.707a1 1 0 0 1 0-1.414"})}),q1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M12 2A10 10 0 1 1 2 12a1 1 0 1 1 2 0 8 8 0 1 0 8.002-8 8.75 8.75 0 0 0-6.047 2.459L5.415 7H8a1 1 0 0 1 0 2H3q-.085-.001-.166-.016-.015-.001-.031-.005l-.034-.007-.062-.016a1 1 0 0 1-.205-.09 1 1 0 0 1-.382-.391l-.02-.042a1 1 0 0 1-.057-.141A1 1 0 0 1 2 8V3a1 1 0 0 1 2 0v2.586l.553-.553.393-.363A10.75 10.75 0 0 1 11.996 2z"}),a.jsx("path",{fill:"currentColor",d:"M12 6a1 1 0 0 1 1 1v4.382l3.447 1.723a1 1 0 0 1-.894 1.79l-4-2A1 1 0 0 1 11 12V7a1 1 0 0 1 1-1"})]}),x1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M12 13a1 1 0 1 1 0 2H8.5a1 1 0 1 1 0-2zM15.5 9.5a1 1 0 1 1 0 2h-7a1 1 0 1 1 0-2zM15.5 6a1 1 0 1 1 0 2h-7a1 1 0 1 1 0-2z"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M15.2 1c.824 0 1.502-.001 2.052.044.562.046 1.08.144 1.564.392a4 4 0 0 1 1.749 1.748c.247.485.345 1.002.391 1.564.045.55.044 1.228.044 2.052v10.4c0 .824.001 1.502-.044 2.052-.046.562-.144 1.08-.392 1.564a4 4 0 0 1-1.748 1.749c-.485.247-1.002.345-1.564.391-.55.045-1.228.044-2.052.044H8.8c-.824 0-1.502.001-2.052-.044-.562-.046-1.078-.145-1.563-.392a4 4 0 0 1-1.75-1.749c-.246-.485-.345-1.001-.391-1.563C2.999 18.702 3 18.024 3 17.2V6.8c0-.824 0-1.502.045-2.052.046-.562.144-1.08.392-1.564a4 4 0 0 1 1.748-1.748c.485-.248 1.002-.346 1.564-.392C7.299.999 7.977 1 8.801 1zM8.8 3c-.856 0-1.439 0-1.889.037-.438.036-.662.101-.818.18a2 2 0 0 0-.874.875c-.08.156-.145.38-.18.82C5 5.361 5 5.942 5 6.8v10.4c0 .857.001 1.439.038 1.889.036.438.1.663.18.82a2 2 0 0 0 .874.873c.156.08.38.145.82.18C7.361 21 7.942 21 8.8 21h6.4c.857 0 1.439 0 1.889-.037.438-.036.663-.101.82-.18a2 2 0 0 0 .873-.875c.08-.156.145-.38.18-.82.038-.45.038-1.031.038-1.888V6.8c0-.857 0-1.439-.037-1.889-.036-.438-.101-.663-.18-.82a2 2 0 0 0-.875-.873c-.156-.08-.38-.145-.82-.18C16.639 3 16.058 3 15.2 3z",clipRule:"evenodd"})]}),p1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M13.225 1.462a.45.45 0 0 1 .379.162q.144.162.144.496v1.22a8.7 8.7 0 0 1 1.805.557A9.3 9.3 0 0 1 18.53 5.9a9.2 9.2 0 0 1 2.002 2.969 9 9 0 0 1 .732 3.617 9 9 0 0 1-.732 3.618 9.37 9.37 0 0 1-4.98 4.97 9 9 0 0 1-3.617.732 9 9 0 0 1-3.619-.731 9.4 9.4 0 0 1-2.967-2.003 9.5 9.5 0 0 1-2.012-2.968 9.1 9.1 0 0 1-.722-3.618q0-1.479.442-2.833a9.3 9.3 0 0 1 1.255-2.5A9.4 9.4 0 0 1 6.25 5.152q.351-.306.749-.252.396.045.622.352.243.342.162.703t-.405.632a7.5 7.5 0 0 0-1.543 1.596 7.3 7.3 0 0 0-1.02 2.003 7.2 7.2 0 0 0-.36 2.3q0 1.553.577 2.906.587 1.353 1.614 2.382a7.5 7.5 0 0 0 2.382 1.605 7.3 7.3 0 0 0 2.906.587 7.2 7.2 0 0 0 2.905-.587 7.5 7.5 0 0 0 2.382-1.605 7.4 7.4 0 0 0 1.615-2.382q.577-1.353.577-2.905a7.3 7.3 0 0 0-.577-2.905 7.3 7.3 0 0 0-1.615-2.382 7.5 7.5 0 0 0-2.382-1.606 7 7 0 0 0-1.092-.369v1.172q0 .325-.144.496a.48.48 0 0 1-.38.163q-.225-.01-.477-.19L9.823 4.773q-.297-.216-.306-.514 0-.298.306-.514l2.914-2.103a.94.94 0 0 1 .488-.18"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M14.1 9.058q.884 0 1.417.523.532.513.766 1.336.234.811.235 1.705 0 .667-.126 1.307a3.9 3.9 0 0 1-.415 1.156 2.26 2.26 0 0 1-.75.811q-.46.298-1.127.298-.885 0-1.416-.514-.532-.524-.767-1.344a6.2 6.2 0 0 1-.235-1.714q0-.669.127-1.3t.406-1.146a2.3 2.3 0 0 1 .748-.811q.47-.307 1.137-.307m0 1.11q-.352 0-.577.315-.226.306-.343.866a6.2 6.2 0 0 0-.117 1.273q0 .721.117 1.28.117.56.343.885.225.315.577.315.342 0 .578-.315.234-.325.342-.884.118-.56.118-1.281 0-.714-.117-1.264-.119-.56-.353-.875-.226-.315-.568-.315",clipRule:"evenodd"}),a.jsx("path",{fill:"currentColor",d:"M9.444 9.13q.37 0 .579.199.216.198.215.568v5.522q0 .306-.18.513t-.505.208q-.316 0-.496-.198a.77.77 0 0 1-.181-.524V10.52H8.85l-.813.613q-.09.055-.17.091a.4.4 0 0 1-.181.036.45.45 0 0 1-.334-.135.5.5 0 0 1-.136-.36q0-.308.298-.533l.947-.695q.235-.18.46-.288.235-.118.523-.119"})]}),j1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M10.645 1.462a.94.94 0 0 1 .487.18l2.914 2.102q.306.216.306.514t-.306.514l-2.914 2.094q-.262.18-.487.19a.5.5 0 0 1-.38-.164q-.144-.171-.144-.496v-1.17A7.496 7.496 0 0 0 6.647 7.2 7.5 7.5 0 0 0 5.033 9.58a7.3 7.3 0 0 0-.578 2.905q0 1.552.578 2.905.587 1.353 1.614 2.382a7.5 7.5 0 0 0 2.382 1.605 7.3 7.3 0 0 0 2.906.587 7.2 7.2 0 0 0 2.905-.587 7.5 7.5 0 0 0 2.382-1.605 7.4 7.4 0 0 0 1.615-2.382q.577-1.353.577-2.905 0-1.219-.361-2.3a7.3 7.3 0 0 0-1.02-2.004 7.2 7.2 0 0 0-1.542-1.596 1.16 1.16 0 0 1-.397-.632q-.081-.36.153-.703a.86.86 0 0 1 .623-.352q.396-.054.748.252a9.2 9.2 0 0 1 1.93 2.003 9.1 9.1 0 0 1 1.265 2.499 8.9 8.9 0 0 1 .45 2.833 9 9 0 0 1-.73 3.618 9.37 9.37 0 0 1-4.98 4.97 9 9 0 0 1-3.618.732 9 9 0 0 1-3.619-.731 9.4 9.4 0 0 1-2.967-2.003 9.5 9.5 0 0 1-2.012-2.968 9.1 9.1 0 0 1-.722-3.618 9.1 9.1 0 0 1 .722-3.617A9.2 9.2 0 0 1 5.34 5.9a9.5 9.5 0 0 1 2.976-2.003 9 9 0 0 1 1.805-.557V2.12q0-.334.145-.496a.46.46 0 0 1 .379-.162"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M14.1 9.058q.884 0 1.417.523.532.513.766 1.336.234.811.235 1.705 0 .667-.126 1.307a3.9 3.9 0 0 1-.415 1.156 2.26 2.26 0 0 1-.75.811q-.46.298-1.127.298-.885 0-1.416-.514-.532-.524-.767-1.344a6.2 6.2 0 0 1-.235-1.714q0-.669.127-1.3t.406-1.146a2.3 2.3 0 0 1 .748-.811q.47-.307 1.137-.307m0 1.11q-.352 0-.577.315-.226.306-.343.866a6.2 6.2 0 0 0-.117 1.273q0 .721.117 1.28.117.56.343.885.225.315.577.315.342 0 .578-.315.234-.325.342-.884.118-.56.118-1.281 0-.714-.117-1.264-.119-.56-.353-.875-.226-.315-.568-.315",clipRule:"evenodd"}),a.jsx("path",{fill:"currentColor",d:"M9.444 9.13q.37 0 .579.199.216.198.215.568v5.522q0 .306-.18.513t-.505.208q-.316 0-.496-.198a.77.77 0 0 1-.181-.524V10.52H8.85l-.813.613q-.09.055-.17.091a.4.4 0 0 1-.181.036.45.45 0 0 1-.334-.135.5.5 0 0 1-.136-.36q0-.308.298-.533l.947-.695q.235-.18.46-.288.235-.118.523-.119"})]}),E1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 8a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4",clipRule:"evenodd"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 1.018a3.34 3.34 0 0 1 3.281 2.716l.044.308v.006a1.34 1.34 0 0 0 1.277 1.22c.214.01.429-.033.624-.123l.297-.12a3.34 3.34 0 0 1 3.038 5.873l-.008.004a1.344 1.344 0 0 0-.126 2.094l.126.1.008.006a3.34 3.34 0 0 1-3.326 5.756l-.01-.003a1.34 1.34 0 0 0-1.9 1.096v.007a3.34 3.34 0 0 1-6.65 0l-.001-.007a1.34 1.34 0 0 0-1.9-1.096l-.01.003a3.341 3.341 0 0 1-4.646-3.746 3.34 3.34 0 0 1 1.32-2.01l.008-.005a1.342 1.342 0 0 0 0-2.195l-.009-.005a3.34 3.34 0 0 1 3.037-5.872l.288.115.01.005a1.34 1.34 0 0 0 1.695-.495 1.34 1.34 0 0 0 .205-.602q.005-.063.018-.122A3.34 3.34 0 0 1 12 1.018m0 2a1.34 1.34 0 0 0-1.334 1.212 1 1 0 0 1-.015.1 3.34 3.34 0 0 1-1.644 2.493 3.34 3.34 0 0 1-3.08.135 1.34 1.34 0 0 0-1.702.555 1.343 1.343 0 0 0 .378 1.758 3.338 3.338 0 0 1-.002 5.456l.001.002a1.341 1.341 0 0 0 1.334 2.31 3.34 3.34 0 0 1 4.22 1.233c.287.451.46.964.509 1.497a1.341 1.341 0 0 0 2.669 0 3.34 3.34 0 0 1 4.727-2.73l.116.045a1.344 1.344 0 0 0 1.6-.596 1.34 1.34 0 0 0-.38-1.76 3.344 3.344 0 0 1-1.038-4.269 3.34 3.34 0 0 1 1.045-1.193 1.341 1.341 0 0 0-1.343-2.304 3.342 3.342 0 0 1-4.728-2.737A1.34 1.34 0 0 0 12 3.018",clipRule:"evenodd"})]}),A1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M9 2.5a1 1 0 0 1 0 2H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h4a1 1 0 1 1 0 2H5a3 3 0 0 1-3-3v-14a3 3 0 0 1 3-3z"}),a.jsx("path",{fill:"currentColor",d:"M15.293 6.793a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 .25.414l.015.062q.027.111.028.231-.001.084-.016.165a.991.991 0 0 1-.202.455 1 1 0 0 1-.075.087l-5 5a1 1 0 1 1-1.414-1.414l3.293-3.293H9a1 1 0 1 1 0-2h9.586l-3.293-3.293a1 1 0 0 1 0-1.414"})]}),C1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M9.293 13.293a1 1 0 1 1 1.414 1.414L5.414 20H9a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1v-6a1 1 0 1 1 2 0v3.586zM22 9a1 1 0 1 1-2 0V5.414l-5.293 5.293a1 1 0 1 1-1.414-1.414L18.586 4H15a1 1 0 1 1 0-2h6a1 1 0 0 1 1 1z"})}),M1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M9.315 3.5c.742 0 1.342.6 1.342 1.342v14.316c0 .741-.6 1.342-1.342 1.342H6.632c-.741 0-1.343-.6-1.343-1.342V4.842c0-.741.602-1.342 1.343-1.342zM17.368 3.5c.741 0 1.342.6 1.342 1.342v14.316c0 .741-.6 1.342-1.342 1.342h-2.684c-.741 0-1.342-.6-1.342-1.342V4.842c0-.741.6-1.342 1.342-1.342z"})}),_1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M7.64 3.5c.393.001.779.107 1.119.305l10.732 6.26a2.24 2.24 0 0 1 1.115 1.933 2.24 2.24 0 0 1-.987 1.856l-.124.078L8.76 20.195a2.236 2.236 0 0 1-3.364-1.933V5.737A2.24 2.24 0 0 1 7.64 3.5"})}),b1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 2a1 1 0 0 1 1 1v1.385A16 16 0 0 0 20 6h1a1 1 0 1 1 0 2h-.932l2.868 7.648A1 1 0 0 1 22.6 16.8a6 6 0 0 1-7.199 0 1 1 0 0 1-.337-1.152l2.911-7.764A18 18 0 0 1 13 6.58V20h4a1 1 0 1 1 0 2H7a1 1 0 0 1 0-2h4V6.581a18 18 0 0 1-4.976 1.304l2.912 7.763A1 1 0 0 1 8.6 16.8a6 6 0 0 1-7.199 0 1 1 0 0 1-.337-1.152L3.931 8H3a1 1 0 0 1 0-2h1c2.428 0 4.82-.555 7-1.615V3a1 1 0 0 1 1-1M3.224 15.581C3.774 15.853 4.38 16 5 16c.619 0 1.225-.147 1.774-.419L5 10.85zm14 0c.55.272 1.156.419 1.776.419.619 0 1.225-.147 1.774-.419L19 10.85z",clipRule:"evenodd"})}),T1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M15.017 18.602a1 1 0 0 1 1.239.683l.705 2.438a1 1 0 0 1-1.922.555l-.705-2.438a1 1 0 0 1 .683-1.238M16.127 15.513a1 1 0 0 1 1.36-.386l3.758 2.098a1 1 0 0 1-.975 1.746l-3.758-2.098a1 1 0 0 1-.385-1.36"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 1a1 1 0 0 1 1 1v3.897l5.964 3.115a2 2 0 0 1 .878 2.673l-3.106 6.213a2.003 2.003 0 0 1-2.7.885l-6.889-3.597-.01-.005a4 4 0 0 1-1.734-5.213l.01-.022 1.38-2.79.015-.028A4 4 0 0 1 7 5.07V2a1 1 0 0 1 1-1M7 7.129a2 2 0 0 0-2.43.943l-1.355 2.74a2.003 2.003 0 0 0 .858 2.601l6.874 3.589 3.106-6.21-.015-.008L9 8.152V9a1 1 0 1 1-2 0z",clipRule:"evenodd"}),a.jsx("path",{fill:"currentColor",d:"M21.832 10.92a1 1 0 0 1 .387 1.964l-3.025.597a1.001 1.001 0 0 1-.389-1.961z"})]}),S1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M8.293 3.293a1 1 0 1 1 1.414 1.414L6.414 8H14.5a6.5 6.5 0 0 1 0 13H11a1 1 0 1 1 0-2h3.5a4.501 4.501 0 0 0 3.182-7.682A4.5 4.5 0 0 0 14.5 10H6.414l3.293 3.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1-.25-.416l-.013-.05a1 1 0 0 1-.002-.473q.007-.03.015-.06a1 1 0 0 1 .096-.213q.064-.111.154-.202z"})}),L1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M10.088 3.01c.25-.03.502-.005.741.074l.118.044.115.052c.224.113.42.274.576.472l.074.103.066.107c.145.255.221.544.222.838v14.597l-.005.126a1.704 1.704 0 0 1-2.907 1.08l-3.384-3.385A.4.4 0 0 0 5.42 17H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h2.419a.4.4 0 0 0 .285-.118l3.387-3.386c.238-.238.542-.4.872-.466zM3 15h2.416a2.4 2.4 0 0 1 1.704.706l2.88 2.88V5.414l-2.88 2.88a2.4 2.4 0 0 1-1.704.705H3zM16 12a4 4 0 0 0-.8-2.4 1 1 0 1 1 1.6-1.2 6 6 0 0 1 0 7.2 1 1 0 1 1-1.6-1.2A4 4 0 0 0 16 12"}),a.jsx("path",{fill:"currentColor",d:"M21 12a8 8 0 0 0-2.343-5.657 1 1 0 1 1 1.414-1.414 10 10 0 0 1 0 14.143 1 1 0 0 1-1.414-1.415A8 8 0 0 0 21 12"})]}),k1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",d:"M10.088 3.01c.25-.03.502-.005.741.074l.118.044.115.052c.224.113.42.274.576.472l.074.103.066.107c.145.255.221.544.222.838v14.597l-.005.126a1.704 1.704 0 0 1-2.907 1.08l-3.384-3.385A.4.4 0 0 0 5.42 17H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h2.419a.4.4 0 0 0 .285-.118l3.387-3.386c.238-.238.542-.4.872-.466zm11.205 5.283a1 1 0 1 1 1.414 1.414L20.414 12l2.293 2.293a1 1 0 1 1-1.414 1.414L19 13.414l-2.293 2.293a1 1 0 1 1-1.414-1.414L17.586 12l-2.293-2.293a1 1 0 1 1 1.414-1.414L19 10.586zM3 15h2.416a2.4 2.4 0 0 1 1.704.706l2.88 2.88V5.414l-2.88 2.88a2.4 2.4 0 0 1-1.704.705H3z"})}),g1=r=>a.jsx(t,{...r,children:a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482c-.263.785-.99 1.963-1.349 2.46l4.467 4.483q.16.152.236.357.084.206.084.434 0 .318-.145.578a1.093 1.093 0 0 1-.974.555q-.227 0-.44-.084a1 1 0 0 1-.373-.243L15 16.59c-.487.324-1.566.92-2.318 1.164a7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465",clipRule:"evenodd"})}),w1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M10.664 6.427q.386 0 .604.227a.8.8 0 0 1 .227.584v5.718q0 .346-.198.504t-.524.158a.74.74 0 0 1-.535-.197q-.197-.198-.197-.544V8h-.07l-.929.652q-.128.09-.218.13a.6.6 0 0 1-.227.038.55.55 0 0 1-.386-.158.53.53 0 0 1-.158-.386q0-.355.355-.603l1.277-.89q.296-.198.495-.277.207-.08.484-.08"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482-.395 1.177-1.097 2.147l4.51 4.53q.208.2.307.466.109.267.108.563 0 .416-.187.752-.188.337-.515.524a1.4 1.4 0 0 1-.752.199q-.296 0-.573-.11a1.34 1.34 0 0 1-.485-.316l-4.54-4.541a8.4 8.4 0 0 1-2.078 1 7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465",clipRule:"evenodd"})]}),z1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M12.88 9.275q.316 0 .544.238a.74.74 0 0 1 .227.545q0 .316-.227.544a.74.74 0 0 1-.544.227H7.766a.74.74 0 0 1-.544-.227.74.74 0 0 1-.228-.544q0-.318.228-.545a.73.73 0 0 1 .544-.238z"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482-.395 1.177-1.097 2.147l4.51 4.53q.208.2.307.466.109.267.108.563 0 .416-.187.752-.188.337-.515.524a1.4 1.4 0 0 1-.752.199q-.296 0-.573-.11a1.34 1.34 0 0 1-.485-.316l-4.54-4.541a8.4 8.4 0 0 1-2.078 1 7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465",clipRule:"evenodd"})]}),P1=r=>a.jsxs(t,{...r,children:[a.jsx("path",{fill:"currentColor",d:"M10.328 6.724q.326 0 .554.227a.75.75 0 0 1 .227.554v1.77h1.77q.327 0 .545.228a.76.76 0 0 1 .227.555.75.75 0 0 1-.227.553.74.74 0 0 1-.544.218h-1.77v1.77a.75.75 0 0 1-.228.554.75.75 0 0 1-.554.228.74.74 0 0 1-.545-.228.75.75 0 0 1-.227-.553v-1.77h-1.78a.76.76 0 0 1-.772-.772q0-.327.227-.555a.74.74 0 0 1 .544-.228h1.78v-1.77q0-.326.228-.554a.74.74 0 0 1 .545-.227"}),a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482-.395 1.177-1.097 2.147l4.51 4.53q.208.2.307.466.109.267.108.563 0 .416-.187.752-.188.337-.515.524a1.4 1.4 0 0 1-.752.199q-.296 0-.573-.11a1.34 1.34 0 0 1-.485-.316l-4.54-4.541a8.4 8.4 0 0 1-2.078 1 7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465",clipRule:"evenodd"})]});exports.ArrowLeft=f1;exports.ArrowRight=h1;exports.BubbleEdit=v1;exports.Checkmark2=m1;exports.ChevronRight=R1;exports.ClockArrowCirclepath=q1;exports.Doc=x1;exports.FastBackward=p1;exports.FastForward=j1;exports.GearRounded=E1;exports.IconSize=s;exports.IconSvg=t;exports.IconType=Y;exports.Logout=A1;exports.Maximize=C1;exports.Pause=M1;exports.Play=_1;exports.Scale=b1;exports.Spotlight=T1;exports.Undo=S1;exports.Volume2=L1;exports.VolumeX=k1;exports.Zoom=g1;exports.Zoom1=w1;exports.ZoomMinus=z1;exports.ZoomPlus=P1;exports.containerSizeMap=U;exports.getContainerSize=u1;exports.getIconSize=d1;exports.iconSizeMap=C;exports.jsxRuntimeExports=a;
|
|
23
|
+
//# sourceMappingURL=ZoomPlus-BYvInasa.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomPlus-BYvInasa.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/components/icon/types.ts","../src/components/icon/utils.ts","../src/components/icon/IconSvg.tsx","../src/components/icon/icons/ArrowLeft.tsx","../src/components/icon/icons/ArrowRight.tsx","../src/components/icon/icons/BubbleEdit.tsx","../src/components/icon/icons/Checkmark2.tsx","../src/components/icon/icons/ChevronRight.tsx","../src/components/icon/icons/ClockArrowCirclepath.tsx","../src/components/icon/icons/Doc.tsx","../src/components/icon/icons/FastBackward.tsx","../src/components/icon/icons/FastForward.tsx","../src/components/icon/icons/GearRounded.tsx","../src/components/icon/icons/Logout.tsx","../src/components/icon/icons/Maximize.tsx","../src/components/icon/icons/Pause.tsx","../src/components/icon/icons/Play.tsx","../src/components/icon/icons/Scale.tsx","../src/components/icon/icons/Spotlight.tsx","../src/components/icon/icons/Undo.tsx","../src/components/icon/icons/Volume2.tsx","../src/components/icon/icons/VolumeX.tsx","../src/components/icon/icons/Zoom.tsx","../src/components/icon/icons/Zoom1.tsx","../src/components/icon/icons/ZoomMinus.tsx","../src/components/icon/icons/ZoomPlus.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","export enum IconSize {\n X_SMALL = \"xsmall\",\n SMALL = \"small\",\n MEDIUM = \"medium\",\n LARGE = \"large\",\n X_LARGE = \"xlarge\",\n}\n\nexport enum IconType {\n OUTLINED = \"outlined\",\n FILLED = \"filled\",\n};","import { IconSize } from \"./types\";\n\nexport const iconSizeMap: Record<IconSize, number> = {\n [IconSize.X_SMALL]: 11,\n [IconSize.SMALL]: 16,\n [IconSize.MEDIUM]: 24,\n [IconSize.LARGE]: 32,\n [IconSize.X_LARGE]: 40,\n};\n\nexport const containerSizeMap: Record<IconSize, number> = {\n [IconSize.X_SMALL]: 16,\n [IconSize.SMALL]: 24,\n [IconSize.MEDIUM]: 32,\n [IconSize.LARGE]: 40,\n [IconSize.X_LARGE]: 48,\n};\n\nexport const getContainerSize = (iconSize: IconSize): number => {\n return containerSizeMap[iconSize] ?? 24;\n};\n\n\nexport const getIconSize = (iconSize: IconSize): number => {\n return iconSizeMap[iconSize] ?? 24;\n};","import { IconProps } from \"./Icon\";\nimport { IconSize } from \"./types\";\nimport { iconSizeMap } from \"./utils\";\n\nexport type IconSvgProps = Omit<Partial<IconProps>, \"name\" | \"type\">;\n\nexport const IconSvg = (\n props: React.SVGProps<SVGSVGElement> & IconSvgProps,\n) => {\n let size: number;\n if (typeof props.size === \"number\") {\n size = props.size;\n } else if (props.size && iconSizeMap[props.size as IconSize]) {\n size = iconSizeMap[props.size as IconSize];\n } else {\n size = 24;\n }\n\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n {props.children}\n </svg>\n );\n};\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst ArrowLeft = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M11.293 4.293a1 1 0 1 1 1.414 1.414L7.414 11H19a1 1 0 0 1 0 2H7.414l5.293 5.293a1 1 0 1 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414z\"\n />\n </IconSvg>\n);\nexport { ArrowLeft };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst ArrowRight = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M11.293 4.293a1 1 0 0 1 1.414 0l7 7a1 1 0 0 1 0 1.414l-7 7a1 1 0 1 1-1.414-1.414L16.586 13H5a1 1 0 1 1 0-2h11.586l-5.293-5.293a1 1 0 0 1 0-1.414\"\n />\n </IconSvg>\n);\nexport { ArrowRight };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst BubbleEdit = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M12 2a1 1 0 0 1 0 2H6.8c-.857 0-1.439.001-1.889.038-.438.036-.663.1-.82.18a2 2 0 0 0-.873.874c-.08.156-.145.38-.18.82C3 6.361 3 6.942 3 7.8v6.4c0 .857 0 1.439.037 1.889.036.438.101.663.18.82a2 2 0 0 0 .875.873c.156.08.38.144.82.18.45.037 1.031.038 1.888.038h5.523c.03 0 .17-.004.313.023q.08.015.16.04l.153.058c.132.06.244.144.269.161l3.282 2.296V19.47c0-.046-.009-.27.049-.48.11-.4.398-.724.775-.884l.166-.057.158-.032c.152-.022.287-.017.322-.017 1.023 0 1.334-.01 1.562-.072a2 2 0 0 0 1.396-1.396c.063-.228.072-.538.072-1.561V11a1 1 0 1 1 2 0v3.97c0 .892.009 1.54-.145 2.095a4 4 0 0 1-2.79 2.79c-.439.122-.936.141-1.565.144v1.426c0 .154 0 .339-.014.494-.013.143-.05.45-.265.73a1.35 1.35 0 0 1-1.012.528 1.4 1.4 0 0 1-.751-.201c-.135-.078-.287-.185-.413-.274L12.185 20H6.8c-.824 0-1.502.001-2.052-.044-.562-.046-1.08-.144-1.564-.392a4 4 0 0 1-1.748-1.749c-.248-.485-.346-1.001-.392-1.563C.999 15.702 1 15.024 1 14.2V7.8c0-.824-.001-1.502.044-2.052.046-.562.144-1.078.392-1.563a4 4 0 0 1 1.748-1.75c.485-.247 1.002-.345 1.564-.391C5.298 1.999 5.976 2 6.8 2z\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M19.876 1a3.124 3.124 0 0 1 2.209 5.333l-5.013 5.01v-.001a3 3 0 0 1-1.281.759l-2.87.837a1.501 1.501 0 0 1-1.86-1.86l.837-2.87.059-.18c.15-.413.387-.79.7-1.101l5.01-5.012A3.12 3.12 0 0 1 19.876 1m0 2c-.298 0-.584.118-.795.33l-5.01 5.01a1 1 0 0 0-.253.429l-.582 1.994 1.995-.582c.161-.047.309-.135.427-.253l5.013-5.01.074-.081A1.124 1.124 0 0 0 19.876 3\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { BubbleEdit };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Checkmark2 = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M10.119 19.885q-.656 0-1.118-.581l-4.709-5.89q-.173-.21-.254-.41a1.2 1.2 0 0 1-.073-.409q0-.472.309-.781.318-.31.8-.31.555 0 .936.5l4.072 5.227 7.89-12.535q.21-.318.427-.445.219-.135.564-.136.472 0 .772.3.3.29.3.763 0 .191-.063.391-.065.19-.2.41l-8.544 13.316q-.4.59-1.11.59\"\n />\n </IconSvg>\n);\nexport { Checkmark2 };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst ChevronRight = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M8.293 5.293a1 1 0 0 1 1.414 0l6 6a1 1 0 0 1 0 1.414l-6 6a1 1 0 1 1-1.414-1.414L13.586 12 8.293 6.707a1 1 0 0 1 0-1.414\"\n />\n </IconSvg>\n);\nexport { ChevronRight };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst ClockArrowCirclepath = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M12 2A10 10 0 1 1 2 12a1 1 0 1 1 2 0 8 8 0 1 0 8.002-8 8.75 8.75 0 0 0-6.047 2.459L5.415 7H8a1 1 0 0 1 0 2H3q-.085-.001-.166-.016-.015-.001-.031-.005l-.034-.007-.062-.016a1 1 0 0 1-.205-.09 1 1 0 0 1-.382-.391l-.02-.042a1 1 0 0 1-.057-.141A1 1 0 0 1 2 8V3a1 1 0 0 1 2 0v2.586l.553-.553.393-.363A10.75 10.75 0 0 1 11.996 2z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M12 6a1 1 0 0 1 1 1v4.382l3.447 1.723a1 1 0 0 1-.894 1.79l-4-2A1 1 0 0 1 11 12V7a1 1 0 0 1 1-1\"\n />\n </IconSvg>\n);\nexport { ClockArrowCirclepath };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Doc = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M12 13a1 1 0 1 1 0 2H8.5a1 1 0 1 1 0-2zM15.5 9.5a1 1 0 1 1 0 2h-7a1 1 0 1 1 0-2zM15.5 6a1 1 0 1 1 0 2h-7a1 1 0 1 1 0-2z\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M15.2 1c.824 0 1.502-.001 2.052.044.562.046 1.08.144 1.564.392a4 4 0 0 1 1.749 1.748c.247.485.345 1.002.391 1.564.045.55.044 1.228.044 2.052v10.4c0 .824.001 1.502-.044 2.052-.046.562-.144 1.08-.392 1.564a4 4 0 0 1-1.748 1.749c-.485.247-1.002.345-1.564.391-.55.045-1.228.044-2.052.044H8.8c-.824 0-1.502.001-2.052-.044-.562-.046-1.078-.145-1.563-.392a4 4 0 0 1-1.75-1.749c-.246-.485-.345-1.001-.391-1.563C2.999 18.702 3 18.024 3 17.2V6.8c0-.824 0-1.502.045-2.052.046-.562.144-1.08.392-1.564a4 4 0 0 1 1.748-1.748c.485-.248 1.002-.346 1.564-.392C7.299.999 7.977 1 8.801 1zM8.8 3c-.856 0-1.439 0-1.889.037-.438.036-.662.101-.818.18a2 2 0 0 0-.874.875c-.08.156-.145.38-.18.82C5 5.361 5 5.942 5 6.8v10.4c0 .857.001 1.439.038 1.889.036.438.1.663.18.82a2 2 0 0 0 .874.873c.156.08.38.145.82.18C7.361 21 7.942 21 8.8 21h6.4c.857 0 1.439 0 1.889-.037.438-.036.663-.101.82-.18a2 2 0 0 0 .873-.875c.08-.156.145-.38.18-.82.038-.45.038-1.031.038-1.888V6.8c0-.857 0-1.439-.037-1.889-.036-.438-.101-.663-.18-.82a2 2 0 0 0-.875-.873c-.156-.08-.38-.145-.82-.18C16.639 3 16.058 3 15.2 3z\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { Doc };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst FastBackward = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M13.225 1.462a.45.45 0 0 1 .379.162q.144.162.144.496v1.22a8.7 8.7 0 0 1 1.805.557A9.3 9.3 0 0 1 18.53 5.9a9.2 9.2 0 0 1 2.002 2.969 9 9 0 0 1 .732 3.617 9 9 0 0 1-.732 3.618 9.37 9.37 0 0 1-4.98 4.97 9 9 0 0 1-3.617.732 9 9 0 0 1-3.619-.731 9.4 9.4 0 0 1-2.967-2.003 9.5 9.5 0 0 1-2.012-2.968 9.1 9.1 0 0 1-.722-3.618q0-1.479.442-2.833a9.3 9.3 0 0 1 1.255-2.5A9.4 9.4 0 0 1 6.25 5.152q.351-.306.749-.252.396.045.622.352.243.342.162.703t-.405.632a7.5 7.5 0 0 0-1.543 1.596 7.3 7.3 0 0 0-1.02 2.003 7.2 7.2 0 0 0-.36 2.3q0 1.553.577 2.906.587 1.353 1.614 2.382a7.5 7.5 0 0 0 2.382 1.605 7.3 7.3 0 0 0 2.906.587 7.2 7.2 0 0 0 2.905-.587 7.5 7.5 0 0 0 2.382-1.605 7.4 7.4 0 0 0 1.615-2.382q.577-1.353.577-2.905a7.3 7.3 0 0 0-.577-2.905 7.3 7.3 0 0 0-1.615-2.382 7.5 7.5 0 0 0-2.382-1.606 7 7 0 0 0-1.092-.369v1.172q0 .325-.144.496a.48.48 0 0 1-.38.163q-.225-.01-.477-.19L9.823 4.773q-.297-.216-.306-.514 0-.298.306-.514l2.914-2.103a.94.94 0 0 1 .488-.18\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M14.1 9.058q.884 0 1.417.523.532.513.766 1.336.234.811.235 1.705 0 .667-.126 1.307a3.9 3.9 0 0 1-.415 1.156 2.26 2.26 0 0 1-.75.811q-.46.298-1.127.298-.885 0-1.416-.514-.532-.524-.767-1.344a6.2 6.2 0 0 1-.235-1.714q0-.669.127-1.3t.406-1.146a2.3 2.3 0 0 1 .748-.811q.47-.307 1.137-.307m0 1.11q-.352 0-.577.315-.226.306-.343.866a6.2 6.2 0 0 0-.117 1.273q0 .721.117 1.28.117.56.343.885.225.315.577.315.342 0 .578-.315.234-.325.342-.884.118-.56.118-1.281 0-.714-.117-1.264-.119-.56-.353-.875-.226-.315-.568-.315\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M9.444 9.13q.37 0 .579.199.216.198.215.568v5.522q0 .306-.18.513t-.505.208q-.316 0-.496-.198a.77.77 0 0 1-.181-.524V10.52H8.85l-.813.613q-.09.055-.17.091a.4.4 0 0 1-.181.036.45.45 0 0 1-.334-.135.5.5 0 0 1-.136-.36q0-.308.298-.533l.947-.695q.235-.18.46-.288.235-.118.523-.119\"\n />\n </IconSvg>\n);\nexport { FastBackward };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst FastForward = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M10.645 1.462a.94.94 0 0 1 .487.18l2.914 2.102q.306.216.306.514t-.306.514l-2.914 2.094q-.262.18-.487.19a.5.5 0 0 1-.38-.164q-.144-.171-.144-.496v-1.17A7.496 7.496 0 0 0 6.647 7.2 7.5 7.5 0 0 0 5.033 9.58a7.3 7.3 0 0 0-.578 2.905q0 1.552.578 2.905.587 1.353 1.614 2.382a7.5 7.5 0 0 0 2.382 1.605 7.3 7.3 0 0 0 2.906.587 7.2 7.2 0 0 0 2.905-.587 7.5 7.5 0 0 0 2.382-1.605 7.4 7.4 0 0 0 1.615-2.382q.577-1.353.577-2.905 0-1.219-.361-2.3a7.3 7.3 0 0 0-1.02-2.004 7.2 7.2 0 0 0-1.542-1.596 1.16 1.16 0 0 1-.397-.632q-.081-.36.153-.703a.86.86 0 0 1 .623-.352q.396-.054.748.252a9.2 9.2 0 0 1 1.93 2.003 9.1 9.1 0 0 1 1.265 2.499 8.9 8.9 0 0 1 .45 2.833 9 9 0 0 1-.73 3.618 9.37 9.37 0 0 1-4.98 4.97 9 9 0 0 1-3.618.732 9 9 0 0 1-3.619-.731 9.4 9.4 0 0 1-2.967-2.003 9.5 9.5 0 0 1-2.012-2.968 9.1 9.1 0 0 1-.722-3.618 9.1 9.1 0 0 1 .722-3.617A9.2 9.2 0 0 1 5.34 5.9a9.5 9.5 0 0 1 2.976-2.003 9 9 0 0 1 1.805-.557V2.12q0-.334.145-.496a.46.46 0 0 1 .379-.162\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M14.1 9.058q.884 0 1.417.523.532.513.766 1.336.234.811.235 1.705 0 .667-.126 1.307a3.9 3.9 0 0 1-.415 1.156 2.26 2.26 0 0 1-.75.811q-.46.298-1.127.298-.885 0-1.416-.514-.532-.524-.767-1.344a6.2 6.2 0 0 1-.235-1.714q0-.669.127-1.3t.406-1.146a2.3 2.3 0 0 1 .748-.811q.47-.307 1.137-.307m0 1.11q-.352 0-.577.315-.226.306-.343.866a6.2 6.2 0 0 0-.117 1.273q0 .721.117 1.28.117.56.343.885.225.315.577.315.342 0 .578-.315.234-.325.342-.884.118-.56.118-1.281 0-.714-.117-1.264-.119-.56-.353-.875-.226-.315-.568-.315\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M9.444 9.13q.37 0 .579.199.216.198.215.568v5.522q0 .306-.18.513t-.505.208q-.316 0-.496-.198a.77.77 0 0 1-.181-.524V10.52H8.85l-.813.613q-.09.055-.17.091a.4.4 0 0 1-.181.036.45.45 0 0 1-.334-.135.5.5 0 0 1-.136-.36q0-.308.298-.533l.947-.695q.235-.18.46-.288.235-.118.523-.119\"\n />\n </IconSvg>\n);\nexport { FastForward };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst GearRounded = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M12 8a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M12 1.018a3.34 3.34 0 0 1 3.281 2.716l.044.308v.006a1.34 1.34 0 0 0 1.277 1.22c.214.01.429-.033.624-.123l.297-.12a3.34 3.34 0 0 1 3.038 5.873l-.008.004a1.344 1.344 0 0 0-.126 2.094l.126.1.008.006a3.34 3.34 0 0 1-3.326 5.756l-.01-.003a1.34 1.34 0 0 0-1.9 1.096v.007a3.34 3.34 0 0 1-6.65 0l-.001-.007a1.34 1.34 0 0 0-1.9-1.096l-.01.003a3.341 3.341 0 0 1-4.646-3.746 3.34 3.34 0 0 1 1.32-2.01l.008-.005a1.342 1.342 0 0 0 0-2.195l-.009-.005a3.34 3.34 0 0 1 3.037-5.872l.288.115.01.005a1.34 1.34 0 0 0 1.695-.495 1.34 1.34 0 0 0 .205-.602q.005-.063.018-.122A3.34 3.34 0 0 1 12 1.018m0 2a1.34 1.34 0 0 0-1.334 1.212 1 1 0 0 1-.015.1 3.34 3.34 0 0 1-1.644 2.493 3.34 3.34 0 0 1-3.08.135 1.34 1.34 0 0 0-1.702.555 1.343 1.343 0 0 0 .378 1.758 3.338 3.338 0 0 1-.002 5.456l.001.002a1.341 1.341 0 0 0 1.334 2.31 3.34 3.34 0 0 1 4.22 1.233c.287.451.46.964.509 1.497a1.341 1.341 0 0 0 2.669 0 3.34 3.34 0 0 1 4.727-2.73l.116.045a1.344 1.344 0 0 0 1.6-.596 1.34 1.34 0 0 0-.38-1.76 3.344 3.344 0 0 1-1.038-4.269 3.34 3.34 0 0 1 1.045-1.193 1.341 1.341 0 0 0-1.343-2.304 3.342 3.342 0 0 1-4.728-2.737A1.34 1.34 0 0 0 12 3.018\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { GearRounded };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Logout = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M9 2.5a1 1 0 0 1 0 2H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h4a1 1 0 1 1 0 2H5a3 3 0 0 1-3-3v-14a3 3 0 0 1 3-3z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M15.293 6.793a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 .25.414l.015.062q.027.111.028.231-.001.084-.016.165a.991.991 0 0 1-.202.455 1 1 0 0 1-.075.087l-5 5a1 1 0 1 1-1.414-1.414l3.293-3.293H9a1 1 0 1 1 0-2h9.586l-3.293-3.293a1 1 0 0 1 0-1.414\"\n />\n </IconSvg>\n);\nexport { Logout };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Maximize = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M9.293 13.293a1 1 0 1 1 1.414 1.414L5.414 20H9a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1v-6a1 1 0 1 1 2 0v3.586zM22 9a1 1 0 1 1-2 0V5.414l-5.293 5.293a1 1 0 1 1-1.414-1.414L18.586 4H15a1 1 0 1 1 0-2h6a1 1 0 0 1 1 1z\"\n />\n </IconSvg>\n);\nexport { Maximize };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Pause = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M9.315 3.5c.742 0 1.342.6 1.342 1.342v14.316c0 .741-.6 1.342-1.342 1.342H6.632c-.741 0-1.343-.6-1.343-1.342V4.842c0-.741.602-1.342 1.343-1.342zM17.368 3.5c.741 0 1.342.6 1.342 1.342v14.316c0 .741-.6 1.342-1.342 1.342h-2.684c-.741 0-1.342-.6-1.342-1.342V4.842c0-.741.6-1.342 1.342-1.342z\"\n />\n </IconSvg>\n);\nexport { Pause };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Play = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M7.64 3.5c.393.001.779.107 1.119.305l10.732 6.26a2.24 2.24 0 0 1 1.115 1.933 2.24 2.24 0 0 1-.987 1.856l-.124.078L8.76 20.195a2.236 2.236 0 0 1-3.364-1.933V5.737A2.24 2.24 0 0 1 7.64 3.5\"\n />\n </IconSvg>\n);\nexport { Play };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Scale = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M12 2a1 1 0 0 1 1 1v1.385A16 16 0 0 0 20 6h1a1 1 0 1 1 0 2h-.932l2.868 7.648A1 1 0 0 1 22.6 16.8a6 6 0 0 1-7.199 0 1 1 0 0 1-.337-1.152l2.911-7.764A18 18 0 0 1 13 6.58V20h4a1 1 0 1 1 0 2H7a1 1 0 0 1 0-2h4V6.581a18 18 0 0 1-4.976 1.304l2.912 7.763A1 1 0 0 1 8.6 16.8a6 6 0 0 1-7.199 0 1 1 0 0 1-.337-1.152L3.931 8H3a1 1 0 0 1 0-2h1c2.428 0 4.82-.555 7-1.615V3a1 1 0 0 1 1-1M3.224 15.581C3.774 15.853 4.38 16 5 16c.619 0 1.225-.147 1.774-.419L5 10.85zm14 0c.55.272 1.156.419 1.776.419.619 0 1.225-.147 1.774-.419L19 10.85z\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { Scale };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Spotlight = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M15.017 18.602a1 1 0 0 1 1.239.683l.705 2.438a1 1 0 0 1-1.922.555l-.705-2.438a1 1 0 0 1 .683-1.238M16.127 15.513a1 1 0 0 1 1.36-.386l3.758 2.098a1 1 0 0 1-.975 1.746l-3.758-2.098a1 1 0 0 1-.385-1.36\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M8 1a1 1 0 0 1 1 1v3.897l5.964 3.115a2 2 0 0 1 .878 2.673l-3.106 6.213a2.003 2.003 0 0 1-2.7.885l-6.889-3.597-.01-.005a4 4 0 0 1-1.734-5.213l.01-.022 1.38-2.79.015-.028A4 4 0 0 1 7 5.07V2a1 1 0 0 1 1-1M7 7.129a2 2 0 0 0-2.43.943l-1.355 2.74a2.003 2.003 0 0 0 .858 2.601l6.874 3.589 3.106-6.21-.015-.008L9 8.152V9a1 1 0 1 1-2 0z\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M21.832 10.92a1 1 0 0 1 .387 1.964l-3.025.597a1.001 1.001 0 0 1-.389-1.961z\"\n />\n </IconSvg>\n);\nexport { Spotlight };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Undo = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M8.293 3.293a1 1 0 1 1 1.414 1.414L6.414 8H14.5a6.5 6.5 0 0 1 0 13H11a1 1 0 1 1 0-2h3.5a4.501 4.501 0 0 0 3.182-7.682A4.5 4.5 0 0 0 14.5 10H6.414l3.293 3.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1-.25-.416l-.013-.05a1 1 0 0 1-.002-.473q.007-.03.015-.06a1 1 0 0 1 .096-.213q.064-.111.154-.202z\"\n />\n </IconSvg>\n);\nexport { Undo };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Volume2 = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M10.088 3.01c.25-.03.502-.005.741.074l.118.044.115.052c.224.113.42.274.576.472l.074.103.066.107c.145.255.221.544.222.838v14.597l-.005.126a1.704 1.704 0 0 1-2.907 1.08l-3.384-3.385A.4.4 0 0 0 5.42 17H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h2.419a.4.4 0 0 0 .285-.118l3.387-3.386c.238-.238.542-.4.872-.466zM3 15h2.416a2.4 2.4 0 0 1 1.704.706l2.88 2.88V5.414l-2.88 2.88a2.4 2.4 0 0 1-1.704.705H3zM16 12a4 4 0 0 0-.8-2.4 1 1 0 1 1 1.6-1.2 6 6 0 0 1 0 7.2 1 1 0 1 1-1.6-1.2A4 4 0 0 0 16 12\"\n />\n <path\n fill=\"currentColor\"\n d=\"M21 12a8 8 0 0 0-2.343-5.657 1 1 0 1 1 1.414-1.414 10 10 0 0 1 0 14.143 1 1 0 0 1-1.414-1.415A8 8 0 0 0 21 12\"\n />\n </IconSvg>\n);\nexport { Volume2 };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst VolumeX = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M10.088 3.01c.25-.03.502-.005.741.074l.118.044.115.052c.224.113.42.274.576.472l.074.103.066.107c.145.255.221.544.222.838v14.597l-.005.126a1.704 1.704 0 0 1-2.907 1.08l-3.384-3.385A.4.4 0 0 0 5.42 17H3a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h2.419a.4.4 0 0 0 .285-.118l3.387-3.386c.238-.238.542-.4.872-.466zm11.205 5.283a1 1 0 1 1 1.414 1.414L20.414 12l2.293 2.293a1 1 0 1 1-1.414 1.414L19 13.414l-2.293 2.293a1 1 0 1 1-1.414-1.414L17.586 12l-2.293-2.293a1 1 0 1 1 1.414-1.414L19 10.586zM3 15h2.416a2.4 2.4 0 0 1 1.704.706l2.88 2.88V5.414l-2.88 2.88a2.4 2.4 0 0 1-1.704.705H3z\"\n />\n </IconSvg>\n);\nexport { VolumeX };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Zoom = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482c-.263.785-.99 1.963-1.349 2.46l4.467 4.483q.16.152.236.357.084.206.084.434 0 .318-.145.578a1.093 1.093 0 0 1-.974.555q-.227 0-.44-.084a1 1 0 0 1-.373-.243L15 16.59c-.487.324-1.566.92-2.318 1.164a7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { Zoom };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst Zoom1 = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M10.664 6.427q.386 0 .604.227a.8.8 0 0 1 .227.584v5.718q0 .346-.198.504t-.524.158a.74.74 0 0 1-.535-.197q-.197-.198-.197-.544V8h-.07l-.929.652q-.128.09-.218.13a.6.6 0 0 1-.227.038.55.55 0 0 1-.386-.158.53.53 0 0 1-.158-.386q0-.355.355-.603l1.277-.89q.296-.198.495-.277.207-.08.484-.08\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482-.395 1.177-1.097 2.147l4.51 4.53q.208.2.307.466.109.267.108.563 0 .416-.187.752-.188.337-.515.524a1.4 1.4 0 0 1-.752.199q-.296 0-.573-.11a1.34 1.34 0 0 1-.485-.316l-4.54-4.541a8.4 8.4 0 0 1-2.078 1 7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { Zoom1 };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst ZoomMinus = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M12.88 9.275q.316 0 .544.238a.74.74 0 0 1 .227.545q0 .316-.227.544a.74.74 0 0 1-.544.227H7.766a.74.74 0 0 1-.544-.227.74.74 0 0 1-.228-.544q0-.318.228-.545a.73.73 0 0 1 .544-.238z\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482-.395 1.177-1.097 2.147l4.51 4.53q.208.2.307.466.109.267.108.563 0 .416-.187.752-.188.337-.515.524a1.4 1.4 0 0 1-.752.199q-.296 0-.573-.11a1.34 1.34 0 0 1-.485-.316l-4.54-4.541a8.4 8.4 0 0 1-2.078 1 7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { ZoomMinus };\n","// Auto-generated by scripts/generate-icons.ts -- DO NOT EDIT\nimport { IconSvg, IconSvgProps } from \":/components/icon/IconSvg\";\nconst ZoomPlus = (props: IconSvgProps) => (\n <IconSvg {...props}>\n <path\n fill=\"currentColor\"\n d=\"M10.328 6.724q.326 0 .554.227a.75.75 0 0 1 .227.554v1.77h1.77q.327 0 .545.228a.76.76 0 0 1 .227.555.75.75 0 0 1-.227.553.74.74 0 0 1-.544.218h-1.77v1.77a.75.75 0 0 1-.228.554.75.75 0 0 1-.554.228.74.74 0 0 1-.545-.228.75.75 0 0 1-.227-.553v-1.77h-1.78a.76.76 0 0 1-.772-.772q0-.327.227-.555a.74.74 0 0 1 .544-.228h1.78v-1.77q0-.326.228-.554a.74.74 0 0 1 .545-.227\"\n />\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M10.328 2.005q1.672 0 3.126.623a8 8 0 0 1 2.571 1.741 8.1 8.1 0 0 1 1.732 2.572q.633 1.455.633 3.117 0 1.305-.406 2.482-.395 1.177-1.097 2.147l4.51 4.53q.208.2.307.466.109.267.108.563 0 .416-.187.752-.188.337-.515.524a1.4 1.4 0 0 1-.752.199q-.296 0-.573-.11a1.34 1.34 0 0 1-.485-.316l-4.54-4.541a8.4 8.4 0 0 1-2.078 1 7.7 7.7 0 0 1-2.354.355 7.9 7.9 0 0 1-3.126-.623 8.1 8.1 0 0 1-2.562-1.731 8.2 8.2 0 0 1-1.742-2.562 7.9 7.9 0 0 1-.623-3.135q0-1.662.623-3.117A8.2 8.2 0 0 1 4.64 4.37a7.9 7.9 0 0 1 5.688-2.364m0 2.067q-1.237 0-2.325.465a5.9 5.9 0 0 0-1.919 1.286 6 6 0 0 0-1.286 1.91 6 6 0 0 0-.455 2.325q0 1.245.455 2.334.465 1.078 1.286 1.899.831.821 1.919 1.296 1.087.465 2.325.465 1.246 0 2.324-.465a6.2 6.2 0 0 0 1.91-1.296 6 6 0 0 0 1.286-1.9 5.8 5.8 0 0 0 .474-2.333q0-1.237-.474-2.326a6 6 0 0 0-1.287-1.909 5.8 5.8 0 0 0-1.909-1.286 5.8 5.8 0 0 0-2.324-.465\"\n clipRule=\"evenodd\"\n />\n </IconSvg>\n);\nexport { ZoomPlus };\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","IconSize","IconType","iconSizeMap","containerSizeMap","getContainerSize","iconSize","getIconSize","IconSvg","size","jsx","ArrowLeft","ArrowRight","BubbleEdit","jsxs","Checkmark2","ChevronRight","ClockArrowCirclepath","Doc","FastBackward","FastForward","GearRounded","Logout","Maximize","Pause","Play","Scale","Spotlight","Undo","Volume2","VolumeX","Zoom","Zoom1","ZoomMinus","ZoomPlus"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|