PageSourceSearch

https://sheetstolabels.com/_next/static/chunks/9e008821f3b041a5.js

js sheetstolabels.com collected 2026-10-01 12:13:42 UTC 69,888 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,530167,e=>{"use strict";var t=e.i(466471),r=e.i(536355),a=e.i(884702);e.i(373373);var i=e.i(422e3),n=e.i(755956),s=e.i(601250),l=e.i(623099),o=e.i(79864),d=e.i(517810),c=e.i(695859),p=e.i(636680),u=e.i(654150),g=e.i(910776),h=e.i(299367),m=e.i(905355),x=e.i(855529),f=e.i(835762),b=e.i(550573),v=e.i(918720),w=e.i(511398),y=e.i(118621),j=e.i(273792),P=e.i(638678),k=e.i(534522),D=e.i(526683),N=e.i(199978),C=e.i(592805),z=e.i(892830),S=e.i(263178);let F=(e,t,r)=>{let a=Math.round(.352778*t),i=Math.round(.352778*r);return`${e} \xb7 ${a} \xd7 ${i} mm`},A=[{id:"a4",label:F("A4",595,842),width:595,height:842},{id:"letter",label:F("Letter",612,792),width:612,height:792},{id:"a3",label:F("A3",842,1191),width:842,height:1191},{id:"legal",label:F("Legal",612,1008),width:612,height:1008},{id:"ledger",label:F("Ledger",1224,792),width:1224,height:792},{id:"11x17",label:F("11×17",792,1224),width:792,height:1224},{id:"a5",label:F("A5",420,595),width:420,height:595},{id:"a0",label:F("A0",2384,3370),width:2384,height:3370},{id:"a1",label:F("A1",1684,2384),width:1684,height:2384},{id:"a6",label:F("A6",297,420),width:297,height:420},{id:"a7",label:F("A7",210,297),width:210,height:297},{id:"a8",label:F("A8",148,210),width:148,height:210},{id:"a9",label:F("A9",105,148),width:105,height:148},{id:"b3",label:F("B3",1e3,1417),width:1e3,height:1417},{id:"b4",label:F("B4",708,1e3),width:708,height:1e3},{id:"b5",label:F("B5",498,708),width:498,height:708}],T=[{id:"2",count:2,label:"2",sizeLabel:"A5/A4",cols:1,rows:2},{id:"4",count:4,label:"4",sizeLabel:"A6/A4",cols:2,rows:2},{id:"8",count:8,label:"8",sizeLabel:"A7/A4",cols:2,rows:4},{id:"16",count:16,label:"16",sizeLabel:"A8/A4",cols:4,rows:4}],L=(e,t)=>"2"===e.id?{cols:1,rows:2}:"8"===e.id&&t?{cols:4,rows:2}:{cols:e.cols,rows:e.rows},M=(e,t)=>{let r=[];for(let t=1;t<e;t+=1)r.push({index:t,kind:t%2==1?"fold":"cut"});let a=[];for(let r=1;r<t;r+=1){let t=1===e&&r%2==1?"fold":"cut";a.push({index:r,kind:t})}return{verticals:r,horizontals:a}},B={privacy:"Your PDF stays in this browser. Nothing is uploaded.",uploadTitle:"Start your booklet",uploadHint:"Use a normal reading-order PDF. This tool rearranges pages so they print, fold, and read in the right order.",uploadButton:"Choose PDF",uploadDrop:"or drop a PDF here",changeFile:"Change file",sourceTitle:"Check the source pages",sourceHint:"Most files can keep the default. Use 90° or odd/even rotation to match BookletFree.",rotatePages:"Page rotation",noChange:"No change",rot90cw:"Rotate 90° clockwise",rot90ccw:"Rotate 90° counterclockwise",oddCwEvenCcw:"Odd pages 90° clockwise, even pages 90° counterclockwise",oddCcwEvenCw:"Odd pages 90° counterclockwise, even pages 90° clockwise",pages:"pages",pagesToInclude:"Pages to include",allPages:"All pages",customRange:"Custom range",rangePlaceholder:"e.g. 1-12, 15, 18-24",rangeHelp:"Use commas and hyphens. Pages outside this range are left out of the booklet.",layoutTitle:"Choose paper and layout",layoutHint:"Cut-and-stack booklet. 2-up folds once on the horizontal dashed line. 4/8/16-up: cut along solid lines into strips, stack in order, fold once on each dashed spine, then staple.",paperSize:"Printer paper",rotatePaper:"Landscape sheet (Rotate 90°)",specSize:"Pages per printed sheet",layout2Title:"2-up · A5 on A4",layout2Desc:"Stack two pages, fold once on the horizontal dashed line, then staple.",layout4Title:"4-up · A6 on A4",layout4Desc:"Cut into 2 strips, stack, fold once on the dashed spine, then staple.",layout8Title:"8-up · A7 on A4",layout8Desc:"Cut into 4 strips, stack, fold once on the dashed spine, then staple.",layout16Title:"16-up · A8 on A4",layout16Desc:"Cut into strips (and mid vertical if needed), stack, fold once on each dashed spine, then staple.",splitPages:"Split spread pages",splitNone:"Do not split",splitLeftFirst:"Split left then right",splitRightFirst:"Split right then left",splitHelp:"Use this if each PDF page is already a two-page spread, such as a scanned open book.",blankAfterCover:"Add a blank page after the cover",blankAfterCoverHelp:"Pushes the first inside page to the right-hand side after folding.",sheetPreview:"How each sheet looks",outputSize:"Sheet size",pageSlots:"Pages per sheet",previewTitle:"Preview before you print",previewHint:"Page order on each sheet will look scrambled until you fold it. That is expected.",exportCardTitle:"Ready to print?",exportCardBody:"Preview is watermarked. Pay credits for a clean print PDF. 1 credit = 1 sheet of paper (front + back). Credits match “Sheets to print” — not booklet page count or PDF file pages.",exportTitle:"Export print-ready PDF",exportCredits:"{count} credits · no watermark",getCreditsLink:"View credit packs",advanced:"Marks and scaling",printGuide:"Print and bind guide",editOptions:"Change paper or layout",previous:"Back",next:"Continue",previewAndDownload:"Preview booklet",sourcePages:"Pages in booklet",outputPages:"Sheets to print (= credits)",pageLabels:"Tiny page numbers on the sheet",foldMarks:"Fold / cut guides",foldMarksDesc:"Dashed = fold (spine). Solid = cut. Matches the layout cards.",cropMarks:"Cut / crop marks",cropMarksDesc:"Corner L marks plus ticks on cut lines",bindingAligned:"Shift pages away from the spine",scaleMode:"Fit page into its slot",advancedHelp:"Turn guides off for a cleaner print. Spine shift leaves extra room for staples.",updatePreview:"Refresh preview",fit:"Fit (no cropping)",fill:"Fill (may crop)",generating:"Building booklet preview…",emptyPreview:"Upload a PDF to preview the booklet.",invalidPdf:"Please choose a valid PDF file.",invalidRange:"Enter a valid page range, such as 1-8 or 1-3, 5.",generateFailed:"Could not build this booklet. Try another PDF or a smaller page range.",generatedName:"booklet",printTitle:"Print and bind",printDuplex:"Printer with duplex",print1:"Open the downloaded PDF. Print at 100% / A
1ctual size. Do not choose Fit to page.",print2:"Turn on two-sided printing. 2-up portrait: flip on long edge. 2-up landscape: flip on short edge. Portrait 4/8/16-up: short edge. Landscape 4/8/16-up: long edge.",print3:"Keep the printed sheets in order. Do not reshuffle.",print4:"2-up: fold once on the horizontal dashed line, then staple. 4/8/16-up: cut along solid lines into strips, stack top→bottom in sheet order, fold once on each dashed spine, staple, then trim if needed.",printManual:"Printer without duplex",print5:"Export the PDF, print odd pages first, reload the stack in order, then print even pages on the back. Flip on the short edge so backs align.",printBind:"Binding",print6:"Saddle staple on the fold. Two staples near the top and bottom of the spine are enough for most home booklets."},R={privacy:"PDF 只在当前浏览器处理,不会上传到服务器",uploadTitle:"开始制作小册子",uploadHint:"请上传正常阅读顺序的 PDF。工具会重新排页,方便双面打印后对折阅读。",uploadButton:"选择 PDF",uploadDrop:"或把 PDF 拖到这里",changeFile:"更换文件",sourceTitle:"检查源文件页面",sourceHint:"大多数文件保持默认即可。可用 90° 或奇偶页旋转对齐 BookletFree。",rotatePages:"页面旋转",noChange:"不旋转",rot90cw:"顺时针旋转 90°",rot90ccw:"逆时针旋转 90°",oddCwEvenCcw:"奇数页顺时针 90°,偶数页逆时针 90°",oddCcwEvenCw:"奇数页逆时针 90°,偶数页顺时针 90°",pages:"页",pagesToInclude:"要排进小册子的页面",allPages:"全部页面",customRange:"自定义页码",rangePlaceholder:"例如 1-12, 15, 18-24",rangeHelp:"用逗号和连字符。未包含的页不会出现在成品里。",layoutTitle:"选择纸张和排版",layoutHint:"横切叠放拼版。2 页沿水平虚线对折一次;4/8/16 页:沿实线裁成条、按顺序叠好,沿虚线书脊对折一次再装订。",paperSize:"打印机用纸",rotatePaper:"横向纸张(旋转 90°)",specSize:"每张纸排几页",layout2Title:"2 页 · A4 打成 A5",layout2Desc:"上下叠放两页,沿水平虚线对折一次再装订。",layout4Title:"4 页 · A4 打成 A6",layout4Desc:"裁成 2 条,叠好后沿虚线书脊对折一次再装订。",layout8Title:"8 页 · A4 打成 A7",layout8Desc:"裁成 4 条,叠好后沿虚线书脊对折一次再装订。",layout16Title:"16 页 · A4 打成 A8",layout16Desc:"裁成条(必要时再竖向裁开),叠好后沿虚线书脊对折一次再装订。",splitPages:"拆分左右跨页",splitNone:"不拆分",splitLeftFirst:"先左后右",splitRightFirst:"先右后左",splitHelp:"如果 PDF 每一页已经是摊开的左右两页(例如扫描的对开书),请在这里拆开。",blankAfterCover:"封面后加一页空白",blankAfterCoverHelp:"对折后正文会从右边一页开始,封面单独占一页。",sheetPreview:"每张纸长什么样",outputSize:"纸张尺寸",pageSlots:"每张纸页数",previewTitle:"打印前预览",previewHint:"每张纸上的页码看起来会是乱序,对折后才会按 1、2、3… 阅读,这是正常的。",exportCardTitle:"准备打印?",exportCardBody:"预览带水印。支付 Credits 导出无水印打印版。1 credit = 1 张打印纸(正反面)。Credits 等于侧栏「需要打印的张数」,不是小册子页数或 PDF 文件页数。",exportTitle:"导出可打印 PDF",exportCredits:"{count} credits · 无水印",getCreditsLink:"查看 Credits 套餐",advanced:"标记和缩放",printGuide:"打印与装订说明",editOptions:"修改纸张或排版",previous:"上一步",next:"继续",previewAndDownload:"预览小册子",sourcePages:"小册子页数",outputPages:"需要打印的张数(= credits)",pageLabels:"在纸上印很小的页码",foldMarks:"折线 / 裁切线",foldMarksDesc:"虚线 = 书脊对折;实线 = 裁开。与上方排版示意图一致。",cropMarks:"裁切线",cropMarksDesc:"四角 L 形角标,以及裁切位置的短实线",bindingAligned:"内容往装订边外侧让开",scaleMode:"页面如何放进格子",advancedHelp:"正式打印可关掉参考线。装订让位会在书脊一侧多留一点空白,方便订书钉。",updatePreview:"刷新预览",fit:"适应(不裁切)",fill:"填满(可能裁切)",generating:"正在生成预览…",emptyPreview:"上传 PDF 后即可预览。",invali
1dPdf:"请选择有效的 PDF 文件。",invalidRange:"请输入有效页码,例如 1-8 或 1-3, 5。",generateFailed:"无法生成这本小册子。请换一个 PDF,或缩小页码范围。",generatedName:"booklet",printTitle:"怎么打印和装订",printDuplex:"有自动双面的打印机",print1:"打开下载的 PDF,缩放选 100% / 实际大小,不要“适应纸张”。",print2:"打开双面打印。2 页竖向选长边翻转;2 页横向选短边。竖向 4/8/16 页选短边;横向 4/8/16 页选长边。",print3:"纸张按打印顺序叠好,不要重新理页。",print4:"2 页:沿水平虚线对折一次再订。4/8/16 页:沿实线裁成条,按从上到下顺序叠好,沿虚线书脊对折一次后装订,必要时再修边。",printManual:"没有自动双面时",print5:"先导出 PDF,在阅读器中先打奇数页,纸按原顺序放回后再打偶数页。翻转选短边,保证正反面对齐。",printBind:"装订",print6:"沿中间折线骑马订。家用小册子在书脊上下各订一钉即可。"},H={privacy:"PDF 只在目前瀏覽器處理,不會上傳到伺服器",uploadTitle:"開始製作小冊子",uploadHint:"請上傳正常閱讀順序的 PDF。工具會重新排列頁碼,方便雙面列印後對摺閱讀。",uploadButton:"選擇 PDF",uploadDrop:"或將 PDF 拖曳至此",changeFile:"更換檔案",sourceTitle:"檢查來源檔案頁面",sourceHint:"大多數檔案保持預設即可。可用 90° 或奇偶頁旋轉對齊 BookletFree。",rotatePages:"頁面旋轉",noChange:"不旋轉",rot90cw:"順時針旋轉 90°",rot90ccw:"逆時針旋轉 90°",oddCwEvenCcw:"奇數頁順時針 90°,偶數頁逆時針 90°",oddCcwEvenCw:"奇數頁逆時針 90°,偶數頁順時針 90°",pages:"頁",pagesToInclude:"要排進小冊子的頁面",allPages:"全部頁面",customRange:"自訂頁碼",rangePlaceholder:"例如 1-12, 15, 18-24",rangeHelp:"請使用逗號與連字號。未包含的頁面不會出現在成品中。",layoutTitle:"選擇紙張與拼版",layoutHint:"橫切疊放拼版。2 頁沿水平虛線對摺一次;4/8/16 頁:沿實線裁成條、依序疊好,沿虛線書脊對摺一次再裝訂。",paperSize:"印表機紙張",rotatePaper:"橫向紙張(2 頁/張建議開啟)",specSize:"每張紙拼幾頁",layout2Title:"2 頁 · A4 印成 A5",layout2Desc:"上下疊放兩頁,沿水平虛線對摺一次再裝訂。",layout4Title:"4 頁 · A4 印成 A6",layout4Desc:"裁成 2 條,疊好後沿虛線書脊對摺一次再裝訂。",layout8Title:"8 頁 · A4 印成 A7",layout8Desc:"裁成 4 條,疊好後沿虛線書脊對摺一次再裝訂。",layout16Title:"16 頁 · A4 印成 A8",layout16Desc:"裁成條(必要時再直向裁開),疊好後沿虛線書脊對摺一次再裝訂。",splitPages:"拆分左右跨頁",splitNone:"不拆分",splitLeftFirst:"先左後右",splitRightFirst:"先右後左",splitHelp:"若 PDF 每一頁已是攤開的左右兩頁(例如掃描的對開書),請在此拆開。",blankAfterCover:"封面後加入一頁空白",blankAfterCoverHelp:"對摺後正文會從右側頁面開始,封面單獨占一頁。",sheetPreview:"每張紙的版面預覽",outputSize:"紙張尺寸",pageSlots:"每張紙頁數",previewTitle:"列印前預覽",previewHint:"每張紙上的頁碼看起來會是亂序,對摺後才會按 1、2、3… 閱讀,這是正常的。",exportCardTitle:"準備列印?",exportCardBody:"預覽帶浮水印。支付 Credits 匯出無浮水印列印版。1 credit = 1 張列印紙(正反面)。Credits 等於側欄「需列印的張數」,不是小冊子頁數或 PDF 檔案頁數。",exportTitle:"匯出可列印 PDF",exportCredits:"{count} credits · 無浮水印",getCreditsLink:"查看 Credits 方案",advanced:"標記與縮放",printGuide:"列印與裝訂說明",editOptions:"修改紙張或拼版",previous:"上一步",next:"繼續",previewAndDownload:"預覽小冊子",sourcePages:"小冊子頁數",outputPages:"需列印的張數(= credits)",pageLabels:"在紙上印微型頁碼",foldMarks:"書脊摺線",foldMarksDesc:"虛線標出每條紙帶對摺成冊的位置",cropMarks:"裁切線",cropMarksDesc:"四角 L 形角標,以及橫向(與中間直向)裁切位置的短實線",bindingAligned:"內容往裝訂邊外側讓開",scaleMode:"頁面如何放進格子",advancedHelp:"正式列印可關閉參考線。裝訂讓位會在書脊一側多留空白,方便打釘。",updatePreview:"重新整理預覽",fit:"適應(不裁切)",fill:"填滿(可能裁切)",generating:"正在產生預覽…",emptyPreview:"上傳 PDF 後即可預覽。",invali
1dPdf:"請選擇有效的 PDF 檔案。",invalidRange:"請輸入有效頁碼,例如 1-8 或 1-3, 5。",generateFailed:"無法產生此小冊子。請更換 PDF 或縮小頁碼範圍。",generatedName:"booklet",printTitle:"如何列印與裝訂",printDuplex:"支援自動雙面的印表機",print1:"開啟下載的 PDF,縮放選擇 100% / 實際大小,勿選「適合頁面大小」。",print2:"開啟雙面列印,選「短邊翻頁」(4/8/16 頁直向紙背面已旋轉 180°;2 頁橫向同樣用短邊)。",print3:"紙張依列印順序疊好,請勿重新整理頁碼。",print4:"2 頁:整疊對摺一次再釘。4/8/16 頁:沿實線裁成條,由上而下依序疊好,沿虛線書脊對摺一次後裝訂,必要時再修邊。",printManual:"無自動雙面時",print5:"先匯出 PDF,在閱讀器中先列印奇數頁,紙依原順序放回後再列印偶數頁。翻轉選短邊,確保正反對齊。",printBind:"裝訂",print6:"沿中央摺線騎馬訂裝訂。家用小冊子在書脊上下各訂一釘即可。"},E={privacy:"Ihre PDF bleibt im Browser. Es werden keine Daten hochgeladen.",uploadTitle:"Broschüre erstellen",uploadHint:"Laden Sie eine PDF in normaler Lese-Reihenfolge hoch. Das Tool ordnet die Seiten für den Falzdruck neu an.",uploadButton:"PDF auswählen",uploadDrop:"oder PDF hierher ziehen",changeFile:"Datei ändern",sourceTitle:"Quellseiten prüfen",sourceHint:"Die meisten Dateien behalten die Standardeinstellung. Nutzen Sie 90° oder ungerade/gerade Drehung wie bei BookletFree.",rotatePages:"Seitendrehung",noChange:"Keine Änderung",rot90cw:"Um 90° im Uhrzeigersinn drehen",rot90ccw:"Um 90° gegen den Uhrzeigersinn drehen",oddCwEvenCcw:"Ungerade Seiten 90° im Uhrzeigersinn, gerade Seiten 90° gegen den Uhrzeigersinn",oddCcwEvenCw:"Ungerade Seiten 90° gegen den Uhrzeigersinn, gerade Seiten 90° im Uhrzeigersinn",pages:"Seiten",pagesToInclude:"Seitenbereich für Broschüre",allPages:"Alle Seiten",customRange:"Benutzerdefinierter Bereich",rangePlaceholder:"z. B. 1-12, 15, 18-24",rangeHelp:"Mit Kommas und Bindestrichen trennen. Nicht enthaltene Seiten werden ausgelassen.",layoutTitle:"Papier und Layout wählen",layoutHint:"Schneiden-und-Stapeln. 2-up einmal falzen. 4/8/16-up: an durchgezogenen Linien in Streifen schneiden, stapeln, einmal am gestrichelten Rücken falzen und heften.",paperSize:"Druckerpapier",rotatePaper:"Querformat-Bogen (empfohlen für 2-up)",specSize:"Seiten pro Druckbogen",layout2Title:"2-up · A5 auf A4",layout2Desc:"Nach dem Duplexdruck einmal in der Mitte falzen.",layout4Title:"4-up · A6 auf A4",layout4Desc:"In 2 Streifen schneiden, stapeln, einmal am gestrichelten Rücken falzen und heften.",layout8Title:"8-up · A7 auf A4",layout8Desc:"In 4 Streifen schneiden, stapeln, einmal am gestrichelten Rücken falzen und heften.",layout16Title:"16-up · A8 auf A4",layout16Desc:"In Streifen schneiden, stapeln, einmal an jedem gestrichelten Rücken falzen und heften.",splitPages:"Doppelseiten trennen",splitNone:"Nicht trennen",splitLeftFirst:"Links dann rechts trennen",splitRightFirst:"Rechts dann links trennen",splitHelp:"Aktivieren, wenn jede PDF-Seite bereits eine aufgeschlagene Doppelseite ist.",blankAfterCover:"Leere Seite nach dem Cover einfügen",blankAfterCoverHelp:"Schiebt die erste Innenseite nach dem Falzen auf die rechte Buchseite.",sheetPreview:"Bogen-Vorschau",outputSize:"Papierformat",pageSlots:"Seiten pro Bogen",previewTitle:"Druck-Vorschau",previewHint:"Die Seitenreihenfolge wirkt vor dem Falzen ungeordnet. Das ist völlig normal.",exportCardTitle:"Bereit zum Drucken?",exportCardBody:"Vorschau hat Wasserzeichen. Credits = saubere Druck-PDF. 1 Credit pro Ausgabe-Bogen.",exportTitle:"Druckfertige PDF exportieren",exportCredits:"{count} Credits · ohne Wasserzeichen",getCreditsLink:"Credit-Pakete ansehen",advanced:"Markierungen und Skalierung",printGuide:"Druck- & Bindungsanleitung",editOptions:"Papier oder Layout ändern",previous:"Zurück",next:"Weiter",previewAndDownload:"Broschüre anzeigen",sourcePages:"Seiten in Broschüre",outputPages:"Druckbögen gesamt",pageLabels:"Kleine Seitenzahlen drucken",foldMarks:"Mittlere Falzlinie",foldMarksDesc:"Gestrichelte Linien an den Falzkanten",cropMarks:"Eck-Schneidemarken",cropMarksDesc:"Kurze durchgezogene L-Marken an den Ecken",bindingAligned:"Seitenabstand zum Bund erweitern",scaleMode:"Einpassen in Druckfeld",advancedHelp:"Hilfslinien für den Reindruck aussch
1alten. Bundabstand lässt Platz für Heftklammern.",updatePreview:"Vorschau aktualisieren",fit:"Einpassen (ohne Beschnitt)",fill:"Ausfüllen (evtl. Beschnitt)",generating:"Vorschau wird erstellt…",emptyPreview:"Laden Sie eine PDF hoch, um die Vorschau anzuzeigen.",invalidPdf:"Bitte wählen Sie eine gültige PDF-Datei.",invalidRange:"Geben Sie einen gültigen Seitenbereich ein (z. B. 1-8 oder 1-3, 5).",generateFailed:"Broschüre konnte nicht erstellt werden. Versuchen Sie eine andere PDF oder weniger Seiten.",generatedName:"broschuere",printTitle:"Drucken und Binden",printDuplex:"Drucker mit automatischem Duplex",print1:'Öffnen Sie die PDF. Bei 100 % / Tatsächliche Größe drucken. Nicht "An Seite anpassen" wählen.',print2:"Duplexdruck aktivieren. An kurzer Kante wenden (4/8/16-up Rückseiten sind 180° gedreht).",print3:"Druckstapel in exakter Reihenfolge belassen.",print4:"2-up: einmal falzen und heften. 4/8/16-up: an durchgezogenen Linien schneiden, streifenweise stapeln, einmal am gestrichelten Rücken falzen und heften.",printManual:"Manueller Duplexdruck",print5:"PDF exportieren, ungerade Seiten drucken, Stapel neu einlegen und gerade Seiten auf die Rückseite drucken. An kurzer Kante wenden.",printBind:"Bindung",print6:"Rückendrahtheftung auf der Falzlinie. Zwei Heftklammern oben und unten genügen."},I={privacy:"Su PDF permanece en este navegador. No se sube ningún archivo.",uploadTitle:"Crear folleto",uploadHint:"Suba un PDF con orden de lectura normal. La herramienta reordenará las páginas para el plegado.",uploadButton:"Seleccionar PDF",uploadDrop:"o arrastre un PDF aquí",changeFile:"Cambiar archivo",sourceTitle:"Revisar páginas de origen",sourceHint:"La mayoría de los archivos pueden dejar el valor predeterminado. Use 90° o rotación impar/par como en BookletFree.",rotatePages:"Rotación de páginas",noChange:"Sin cambios",rot90cw:"Girar 90° a la derecha",rot90ccw:"Girar 90° a la izquierda",oddCwEvenCcw:"Páginas impares 90° a la derecha, pares 90° a la izquierda",oddCcwEvenCw:"Páginas impares 90° a la izquierda, pares 90° a la derecha",pages:"páginas",pagesToInclude:"Páginas a incluir",allPages:"Todas las páginas",customRange:"Rango personalizado",rangePlaceholder:"ej. 1-12, 15, 18-24",rangeHelp:"Use comas y guiones. Las páginas fuera del rango se excluirán.",layoutTitle:"Elegir papel y diseño",layoutHint:"Corte y apilado. 2-up se pliega una vez. 4/8/16-up: corte en tiras por las líneas sólidas, apile, pliegue una vez en el lomo discontinuo y engrape.",paperSize:"Papel de impresión",rotatePaper:"Hoja horizontal (recomendado para 2-up)",specSize:"Páginas por pliego impreso",layout2Title:"2-up · A5 en A4",layout2Desc:"Plegar por la mitad una vez tras la impresión a doble cara.",layout4Title:"4-up · A6 en A4",layout4Desc:"Cortar en 2 tiras, apilar, plegar una vez en el lomo discontinuo y engrapar.",layout8Title:"8-up · A7 en A4",layout8Desc:"Cortar en 4 tiras, apilar, plegar una vez en el lomo discontinuo y engrapar.",layout16Title:"16-up · A8 en A4",layout16Desc:"Cortar en tiras, apilar, plegar una vez en cada lomo discontinuo y engrapar.",splitPages:"Dividir páginas dobles",splitNone:"No dividir",splitLeftFirst:"Dividir izquierda y luego derecha",splitRightFirst:"Dividir derecha y luego izquierda",splitHelp:"Active si cada página del PDF ya contiene una vista doble (como un libro abierto escaneado).",blankAfterCover:"Añadir página en blanco tras la portada",blankAfterCoverHelp:"Desplaza la primera página interior a la derecha tras el plegado.",sheetPreview:"Vista previa de las hojas",outputSize:"Tamaño del papel",pageSlots:"Páginas por hoja",previewTitle:"Vista previa de impresión",previewHint:"El orden de las páginas parecerá alterado antes del plegado. Es completamente normal.",exportCardTitle:"¿Listo para imprimir?",exportCardBody:"La vista previa tiene marca de agua. Pague créditos para un PDF limpio. 1 crédito por hoja de salida.",exportTitle:"Exportar PDF listo para imprimir",exportCredits:"{count} créditos · sin marca de agua",getCreditsLink:"Ver paquetes de créditos",advanced:"Marcas y escala",printGuide:"Guía de impresión y encuadernación",editOptions:"Cambiar papel o diseño",previous:"Anterior",next:"Continuar",previewAndDownload:"Previsualizar folleto",sourcePages:"Páginas del folleto",outputPages:"Pliegos a imprimir",pageLabels:"Imprimir números de página pequeños",foldMarks:"Línea de pliegue central",foldMarksDesc:"Líneas discontinuas donde se pliega la hoja",cropMarks:"Marcas de corte en las esquinas",cropMarksDesc:"Marcas L sólidas cortas en las esquinas",bindingAligned:"Desplazar páginas hacia el exterior del lomo",scaleMode:"Ajustar página en su celda",advancedHelp:"Desactive las guías para el archivo final. El margen de lomo deja espacio para grapas.",updatePreview:"Actualizar vista previa",fit:"Ajustar (sin recortar)",fill:"Rellenar (puede recortar)",generating:"Generando vista previa…",emptyPreview:"Suba un PDF para previsualizar el folleto.",invalidPdf:"Seleccione un archivo PDF válido.",invalidRange:"Ingrese un rango válido, como 1-8 o 1-3, 5.",generateFailed:"No se pudo generar el folleto. Pruebe con otro PDF o un rango menor.",generatedName:"folleto",printTitle:"Impresión y encuadernación",printDuplex:"Impresora con doble cara automática",print1:'Abra el PDF e imprima a 100% / Tamaño real. No elija "Ajustar a la página".',print2:"Active doble cara. Voltee por el borde corto (los dorsos de 4/8/16-up van girados 180°).",print3:"Conserve las hojas ordenadas según salen de la impresora.",print4:"2-up: doble una vez y engrape. 4/8/16-up: corte en tiras, apile, doble una vez en el lomo discontinuo y engra
1pe.",printManual:"Impresión manual a doble cara",print5:"Exporte el PDF, imprima páginas impares, recargue el mazo en orden e imprima pares al dorso. Voltee por el borde corto.",printBind:"Encuadernación",print6:"Cosido a caballo en el pliegue central. Dos grapas arriba y abajo bastan para la mayoría de cuadernillos."},$={privacy:"Votre PDF reste dans ce navigateur. Aucun fichier n'est transféré.",uploadTitle:"Créer votre livret",uploadHint:"Utilisez un PDF dans l'ordre de lecture normal. L'outil réorganise les pages pour le pliage.",uploadButton:"Choisir un PDF",uploadDrop:"ou glissez un PDF ici",changeFile:"Changer de fichier",sourceTitle:"Vérifier les pages source",sourceHint:"La plupart des fichiers peuvent garder le réglage par défaut. Utilisez 90° ou la rotation impair/pair comme BookletFree.",rotatePages:"Rotation des pages",noChange:"Aucun changement",rot90cw:"Rotation de 90° horaire",rot90ccw:"Rotation de 90° anti-horaire",oddCwEvenCcw:"Pages impaires 90° horaire, pages paires 90° anti-horaire",oddCcwEvenCw:"Pages impaires 90° anti-horaire, pages paires 90° horaire",pages:"pages",pagesToInclude:"Pages à inclure dans le livret",allPages:"Toutes les pages",customRange:"Plage personnalisée",rangePlaceholder:"ex. 1-12, 15, 18-24",rangeHelp:"Utilisez virgules et tirets. Les pages hors plage seront exclues.",layoutTitle:"Choisir le papier et l'imposition",layoutHint:"Découpe et empilement. 2-up se plie une fois. 4/8/16-up : découpez en bandes sur les traits pleins, empilez, pliez une fois sur le pli pointillé, puis agrafez.",paperSize:"Papier d'impression",rotatePaper:"Feuille en paysage (recommandé pour 2-up)",specSize:"Pages par feuille imprimée",layout2Title:"2-up · A5 sur A4",layout2Desc:"Plier en deux une fois après impression recto verso.",layout4Title:"4-up · A6 sur A4",layout4Desc:"Découper en 2 bandes, empiler, plier une fois sur le pli pointillé, puis agrafer.",layout8Title:"8-up · A7 sur A4",layout8Desc:"Découper en 4 bandes, empiler, plier une fois sur le pli pointillé, puis agrafer.",layout16Title:"16-up · A8 sur A4",layout16Desc:"Découper en bandes, empiler, plier une fois sur chaque pli pointillé, puis agrafer.",splitPages:"Découper les doubles pages",splitNone:"Ne pas découper",splitLeftFirst:"Découper gauche puis droite",splitRightFirst:"Découper droite puis gauche",splitHelp:"Activez si chaque page du PDF est déjà une vue double (comme un livre ouvert numérisé).",blankAfterCover:"Ajouter une page blanche après la couverture",blankAfterCoverHelp:"Place la première page intérieure à droite après le pliage.",sheetPreview:"Aperçu des feuilles",outputSize:"Format du papier",pageSlots:"Pages par feuille",previewTitle:"Aperçu avant impression",previewHint:"L'ordre des pages semble mélangé avant le pliage. C'est parfaitement normal.",exportCardTitle:"Prêt à imprimer ?",exportCardBody:"L'aperçu est filigrané. Payez des crédits pour un PDF propre. 1 crédit par feuille de sortie.",exportTitle:"Exporter le PDF prêt à imprimer",exportCredits:"{count} crédits · sans filigrane",getCreditsLink:"Voir les packs de crédits",advanced:"Repères et échelle",printGuide:"Guide d'impression et de reliure",editOptions:"Modifier le papier ou la disposition",previous:"Retour",next:"Continuer",previewAndDownload:"Prévisualiser le livret",sourcePages:"Pages du livret",outputPages:"Feuilles à imprimer",pageLabels:"Imprimer de petits numéros de page",foldMarks:"Ligne de pli central",foldMarksDesc:"Pointillés là où la feuille se plie",cropMarks:"Repères de coupe d'angle",cropMarksDesc:"Courts repères en L pleins aux coins",bindingAligned:"Décaler les pages vers l'extérieur de la reliure",scaleMode:"Ajustement dans la cellule",advancedHelp:"Masquez les repères pour l'impression finale. Le décalage de pli laisse de la place pour les agrafes.",updatePreview:"Actualiser l'aperçu",fit:"Ajuster (sans rognage)",fill:"Remplir (rognage possible)",generating:"Génération de l'aperçu…",emptyPreview:"Importez un PDF pour prévisualiser le livret.",invalidPdf:"Veuillez sélectionner un fichier PDF valide.",invalidRange:"Saisissez une plage valide (ex. 1-8 ou 1-3, 5).",generateFailed:"Impossible de générer le livret. Essayez un autre PDF ou une plage plus restreinte.",generatedName:"livret",printTitle:"Impression et reliure",printDuplex:"Imprimante avec recto verso automatique",print1:'Ouvrez le PDF et imprimez à 100% / Taille réelle. Ne choisissez pas "Ajuster à la page".',print2:"Activez le recto verso. Retournez sur le bord court (les versos 4/8/16-up sont tournés de 180°).",print3:"Gardez les feuilles dans l'ordre de sortie de l'imprimante.",print4:"2-up : pliez une fois et agrafez. 4/8/16-up : découpez en bandes, empilez, pliez une fois sur le pli pointillé, puis agrafez.",printManual:"Impression recto verso manuelle",print5:"Exportez le PDF, imprimez les impaires, rechargez le paquet dans l'ordre puis imprimez les paires au verso. Retournez sur le bord court.",printBind:"Reliure",print6:"Piqûre à cheval sur le pli central. Deux agrafes en haut et en bas suffisent."},U={privacy:"Ваш PDF обрабатывается в браузере. Никакие файлы не загружаются.",uploadTitle:"Создание брошюры",uploadHint:"Загрузите PDF в обычном порядке чтения. Инструмент перестроит страницы для спуска полос и сгиба.",uploadButton:"Выбрать PDF",uploadDrop:"или перетащите PDF сюда",changeFile:"Сменить файл",sourceTitle:"Проверка страниц исходника",sourceHint:"Большинству файлов подходит значение по умолчанию. Используйте 90° или поворот нечетных/четных, как в BookletFree.",rotatePages:"Поворот страниц",noChange:"Без изменений",rot90cw:"Поворот на 90° по часовой",rot90ccw:"Поворот на 90° против часовой",oddCwEvenCcw:"Нечетные страницы 90° по часовой, четные 90° против часовой",oddCcwEvenCw:"Нечетные страницы 90° против часовой, четные 90° по часовой",pages:"страниц",pagesToInclude:"Страницы для брошюры",allPages:"Все страницы",customRange:"Произвольный диапазон",rangePlaceholder:"напр. 1-12, 15, 18-24",rangeHelp:"Используйте запятые и дефисы. Неуказанные страницы будут исключены.",layoutTitle:"Выбор бумаги и раскладки",layoutHint:"Нарезка и стопка. 2-up — один сгиб. 4/8/16-up: режьте по сплошным лиÐ
1½Ð¸ÑÐ¼ на полосы, сложите стопкой, один раз согните по пунктирному корешку и скрепите.",paperSize:"Бумага принтера",rotatePaper:"Альбомный лист (рекомендуется для 2-up)",specSize:"Страниц на печатный лист",layout2Title:"2-up · A5 на A4",layout2Desc:"Сложите пополам один раз после двусторонней печати.",layout4Title:"4-up · A6 на A4",layout4Desc:"Разрежьте на 2 полосы, сложите, один раз согните по пунктиру и скрепите.",layout8Title:"8-up · A7 на A4",layout8Desc:"Разрежьте на 4 полосы, сложите, один раз согните по пунктиру и скрепите.",layout16Title:"16-up · A8 на A4",layout16Desc:"Разрежьте на полосы, сложите, один раз согните по каждому пунктирному корешку и скрепите.",splitPages:"Разделить развороты",splitNone:"Не разделять",splitLeftFirst:"Разделить сначала левую, затем правую",splitRightFirst:"Разделить сначала правую, затем левую",splitHelp:"Включите, если каждая страница PDF представляет собой разворот (например, скан разворота книги).",blankAfterCover:"Добавить пустую страницу после обложки",blankAfterCoverHelp:"Смещает первую внутреннюю страницу на правую сторону после сгиба.",sheetPreview:"Предпросмотр печатных листов",outputSize:"Формат бумаги",pageSlots:"Страниц на лист",previewTitle:"Предпросмотр перед печатью",previewHint:"Порядок страниц на листах выглядит не последовательным до сгиба. Это нормально.",exportCardTitle:"Готовы печатать?",exportCardBody:"В превью есть водяной знак. Credits — чистый PDF для печати. 1 credit за каждый выходной лист.",exportTitle:"Экспорт PDF для печати",exportCredits:"{count} credits · без водяного знака",getCreditsLink:"Посмотреть пакеты credits",advanced:"Метки и масштаб",printGuide:"Инструкция по печати и скреплению",editOptions:"Изменить бумагу или раскладку",previous:"Назад",next:"Далее",previewAndDownload:"Предпросмотр брошюры",sourcePages:"Страниц в брошюре",outputPages:"Печатных листов всего",pageLabels:"Печатать мелкие номера страниц",foldMarks:"Линия центрального сгиба",foldMarksDesc:"Пунктир по линиям сгиба",cropMarks:"Угловые метки обрезки",cropMarksDesc:"Короткие сплошные L-метки по углам листа",bindingAligned:"Сдвиг страниц от корешка",scaleMode:"Вписывание страницы в ячейку",advancedHelp:"Отключите метки для чистового доÐ
1ºÑƒÐ¼ÐµÐ½Ñ‚а. Сдвиг корешка оставляет место под скобы степлера.",updatePreview:"Обновить предпросмотр",fit:"Вписать (без обрезки)",fill:"Заполнить (возможна обрезка)",generating:"Формирование предпросмотра…",emptyPreview:"Загрузите PDF для предпросмотра брошюры.",invalidPdf:"Пожалуйста, выберите корректный PDF-файл.",invalidRange:"Введите корректный диапазон страниц, напр. 1-8 или 1-3, 5.",generateFailed:"Не удалось сформировать брошюру. Попробуйте другой PDF или уменьшите диапазон.",generatedName:"broshura",printTitle:"Печать и скрепление",printDuplex:"Принтер с автоматическим дуплексом",print1:'Откройте PDF. Печатайте в 100% / Реальный размер. Не выбирайте "Подогнать под размер".',print2:"Включите дуплекс. Переворот по короткому краю (оборот 4/8/16-up повёрнут на 180°).",print3:"Сохраняйте листы в порядке выхода из принтера.",print4:"2-up: один сгиб и скрепка. 4/8/16-up: нарежьте полосы, сложите стопкой, один сгиб по пунктиру и скрепка.",printManual:"Ручная двусторонняя печать",print5:"Экспортируйте PDF, напечатайте нечётные страницы, вставьте стопку в том же порядке и напечатайте чётные на обороте. Переворот по короткому краю.",printBind:"Скрепление",print6:"Скрепление скобами по линии сгиба (на скобу). Две скобы сверху и снизу вполне достаточны."},V=["upload","source","layout","preview"],O=(e,t)=>{let r=e.trim();if(!r)throw Error("empty range");let a=[],i=new Set;if(r.split(/[,\s]+/).map(e=>e.trim()).filter(Boolean).forEach(e=>{let r=e.match(/^(\d+)-(\d+)$/),n=e.match(/^\d+$/);if(r){let e=Number(r[1]),n=Number(r[2]);if(e<1||n<e||n>t)throw Error("invalid range");for(let t=e;t<=n;t+=1)i.has(t)||(i.add(t),a.push(t));return}if(n){let r=Number(e);if(r<1||r>t)throw Error("invalid page");i.has(r)||(i.add(r),a.push(r));return}throw Error("invalid token")}),0===a.length)throw Error("empty range");return a},G=e=>(90*Math.round(e/90)%360+360)%360,q=(e,t,r)=>"none"===t?e:e.map(e=>({...e,slots:e.slots.map(e=>{if("90cw"===t)return{...e,rotation:G(e.rotation-90)};if("90ccw"===t)return{...e,rotation:G(e.rotation+90)};if(1===r)return"out_binding"===t?{...e,rotation:180*(0!==e.row)}:{...e,rotation:180*(0===e.row)};let a=e.col%2;return"out_binding"===t?{...e,rotation:0===a?90:270}:{...e,rotation:0===a?270:90}})}));function _(e){let a,i,n,s,l,o,d,c=(0,r.c)(22),{step:p,labels:u}=e,g=V.indexOf(p),h=g/(V.length-1)*100,m=`${h}%`;if(c[0]!==m?(a=(0,t.jsx)("div",{className:"bg-muted h-2 w-full rounded-full",children:(0,t.jsx)("div",{className:"bg-primary h-full rounded-full transition-all",style:{width:m}})}),c[0]=m,c[1]=a):a=c[1],c[2]!==g||c[3]!==u){let e;c[5]!==g?(e=(e,r)=>{let a=r<=g;return(0,t.jsx)("div",{className:(0,D.cn)("flex size-7 -translate-y-1/2 items-center justify-center rounded-full border text-xs font-bold",a?"border-primary bg-primary text-primary-foreground":"border-border bg-background text-muted-foreground"),children:r+1},e)},c[5]=g,c[6]=e):e=c[6],i=u.map(e),c[2]=g,c[3]=u,c[4]=i}else i=c[4];if(c[7]!==i?(n=(0,t.jsx)("div",{className:"absolute left-0 top-0 flex w-full justify-between",children:i}),c[7]=i,c[8]=n):n=c[8],c[9]!==a||c[10]!==n?(s=(0,t.jsxs)("div",{className:"relative",children:[a,n]}),c[9]=a,c[10]=n,c[11]=s):s=c[11],c[12]!==g||c[13]!==u){let e;c[15]!==g?(e=(e,r)=>(0,t.jsx)("span",{className:(0,D.cn)("w-16 text-center sm:w-20",r<=g?"text-foreground":"text-muted-foreground"),children:e},e),c[15]=g,c[16]=e):e=c[16],l=u.map(e),c[12]=g,c[13]=u,c[14]=l}else l=c[14];return c[17]!==l?(o=(0,t.jsx)("div",{className:"mt-5 flex w-full justify-between text-xs font-semibold",children:l}),c[17]=l,c[18]=o):o=c[18],c[19]!==s||c[20]!==o?(d=(0,t.jsxs)("div",{className:"mx-auto w-full max-w-2xl pt-2",children:[s,o]}),c[19]=s,c[20]=o,c[21]=d):d=c[21],d}function K(e){let a,i,n,s,l=(0,r.c)(8),{mode:o}=e,d=0,c=0;"90cw"===o?(d=90,c=90):"90ccw"===o?(d=-90,c=-90):"in_binding"===o?(d=-90,c=90):"out_binding"===o&&(d=90,c=-90);let p=`rotate(${d}deg)`;l[0]!==p?(a=(0,t.jsx)("div",{className:"flex h-20 w-14 items-center justify-center border-2 border-zinc-900 bg-white text-lg font-bold text-zinc-950",style:{transform:p},children:"32"}),l[0]=p,l[1]=a):a=l[1],l[2]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)("div",{className:"h-20 border-l border-dashed border-zinc-500","aria-hidden":!0}),l[2]=i):i=l[2];let u=`rotate(${c}deg)`;return l[3]!==u?(n=(0,t.jsx)("div",{className:"flex h-20 w-14 items-center justify-center border-2 border-zinc-900 bg-white text-lg font-bold text-zinc-950",style:{transform:u},children:"1"}),l[3]=u,l[4]=n):n=l[4],l[5]!==a||l[6]!==n?(s=(0,t.jsxs)("div",{className:"flex h-28 items-center justify-center gap-2",children:[a,i,n]}),l[5]=a,l[6]=n,l[7]=s):s=l[7],s}
1function W(e){let a,i,n,s,l,o,d,c=(0,r.c)(18),{preset:p,sheetWidth:u,sheetHeight:g}=e,h=u>g;if(c[0]!==h||c[1]!==p){let e=L(p,h),r=M(e.cols,e.rows),o=h?128:96,d=h?80:128;l="flex h-36 items-center justify-center",a="relative border border-zinc-900 bg-white transition-all",c[7]!==d||c[8]!==o?(i={width:o,height:d},c[7]=d,c[8]=o,c[9]=i):i=c[9],n=r.verticals.map(r=>{let{index:a,kind:i}=r;return(0,t.jsx)("div",{className:(0,D.cn)("absolute top-0 bottom-0 border-l","fold"===i?"border-dashed border-primary":"border-solid border-primary"),style:{left:`${a/e.cols*100}%`},"aria-hidden":!0},`v-${a}`)}),s=r.horizontals.map(r=>{let{index:a,kind:i}=r;return(0,t.jsx)("div",{className:(0,D.cn)("absolute left-0 right-0 border-t","fold"===i?"border-dashed border-primary":"border-solid border-primary"),style:{top:`${a/e.rows*100}%`},"aria-hidden":!0},`h-${a}`)}),c[0]=h,c[1]=p,c[2]=a,c[3]=i,c[4]=n,c[5]=s,c[6]=l}else a=c[2],i=c[3],n=c[4],s=c[5],l=c[6];return c[10]!==a||c[11]!==i||c[12]!==n||c[13]!==s?(o=(0,t.jsxs)("div",{className:a,style:i,children:[n,s]}),c[10]=a,c[11]=i,c[12]=n,c[13]=s,c[14]=o):o=c[14],c[15]!==l||c[16]!==o?(d=(0,t.jsx)("div",{className:l,children:o}),c[15]=l,c[16]=o,c[17]=d):d=c[17],d}function Q({section:e}){let r=(0,l.useLocale)(),F="zh-TW"===r||"zh-Hant"===r?H:r.startsWith("zh")?R:"de"===r?E:"es"===r?I:"fr"===r?$:"ru"===r?U:B,V=(0,o.useSearchParams)(),G=(0,a.useRef)(null),Q=(0,a.useRef)(""),Z=(0,a.useRef)(!1),J=(0,a.useRef)(!1),Y={tryDemo:e.data?.tryDemo,tryDemoHint:e.data?.tryDemoHint,loadingDemo:e.data?.loadingDemo},[X,ee]=(0,a.useState)("upload"),[et,er]=(0,a.useState)(null),[ea,ei]=(0,a.useState)(null),[en,es]=(0,a.useState)(0),[el,eo]=(0,a.useState)(""),[ed,ec]=(0,a.useState)("none"),[ep,eu]=(0,a.useState)("all"),[eg,eh]=(0,a.useState)(""),[em,ex]=(0,a.useState)("none"),[ef,eb]=(0,a.useState)(!1),[ev,ew]=(0,a.useState)("a4"),[ey,ej]=(0,a.useState)(!1),[eP,ek]=(0,a.useState)("2"),[eD,eN]=(0,a.useState)(!1),[eC,ez]=(0,a.useState)(!1),[eS,eF]=(0,a.useState)(!0),[eA,eT]=(0,a.useState)(!0),[eL,eM]=(0,a.useState)(!1),[eB,eR]=(0,a.useState)(!1),[eH,eE]=(0,a.useState)("fit"),[eI,e$]=(0,a.useState)(null),[eU,eV]=(0,a.useState)(null),[eO,eG]=(0,a.useState)(!1),[eq,e_]=(0,a.useState)(!1),[eK,eW]=(0,a.useState)(""),eQ=(0,a.useMemo)(()=>A.find(e=>e.id===ev)||A[3],[ev]),eZ=(0,a.useMemo)(()=>T.find(e=>e.id===eP)||T[0],[eP]),eJ=(0,a.useMemo)(()=>({width:ey?eQ.height:eQ.width,height:ey?eQ.width:eQ.height}),[eQ.height,eQ.width,ey]),eY=(0,a.useMemo)(()=>L(eZ,eJ.width>eJ.height),[eZ,eJ.height,eJ.width]),eX=(0,a.useMemo)(()=>({width:Math.round(eJ.width/eY.cols),height:Math.round(eJ.height/eY.rows)}),[eY.cols,eY.rows,eJ.height,eJ.width]),e0=(0,a.useMemo)(()=>{if(!en)return[];if("all"===ep)return Array.from({length:en},(e,t)=>t+1);try{return O(eg,en)}catch{return[]}},[en,ep,eg]),e1=(0,a.useMemo)(()=>{if(!e0.length)return 0;let e="none"===em?1:2,t=+!!ef;return e0.length*e+t},[ef,e0.length,em]),e2=(0,a.useMemo)(()=>e1?Math.ceil(e1/(2*eZ.count)):0,[eZ.count,e1]),e4=(0,C.useExportFlow)({toolType:"pdf-booklet",toolName:"PDF Booklet Maker",itemCount:e0.length,pageCount:e2,contentHash:"pending",metadata:{layout:eP,paper:ev,sheetFilter:"all"}});(0,a.useEffect)(()=>{if(!eI)return void eV(null);let e=URL.createObjectURL(eI);return eV(e),()=>{URL.revokeObjectURL(e)}},[eI]);let e8=()=>{e$(null),eV(null)},e9=async e=>{if("application/pdf"!==e.type&&!e.name.toLowerCase().endsWith(".pdf"))return void eW(F.invalidPdf);try{let t=new Uint8Array(await e.arrayBuffer()),r=(await n.PDFDocument.load(t.slice(),{ignoreEncryption:!0})).getPageCount();if(!r)throw Error("empty pdf");er(e),ei(t.slice()),es(r),eo(e.name.replace(/\.[^/.]+$/,"")),eh(`1-${r}`),eW(""),e8(),ee("source")}catch{eW(F.invalidPdf)}},e6=async()=>{if(!eq&&!eO){e_(!0),eW("");try{let e=await fetch("/downloads/printable-pdf-booklet-demo-pages-1-16.pdf");if(!e.ok)throw Error("demo fetch failed");let t=await e.blob(),r=new File([t],"printable-pdf-booklet-demo-pages-1-16.pdf",{type:"application/pdf"}),a=new Uint8Array(await r.arrayBuffer()),i=(await n.PDFDocument.load(a.slice(),{ignoreEncryption:!0})).getPageCount();if(!i)throw Error("empty pdf");ec("none"),eu("all"),ex("none"),eb(!1),ew("a4"),ej(!0),ek("8"),eF(!0),eT(!0),eM(!1),eR(!1),eE("fit"),er(r),ei(a.slice()),es(i),eo(r.name.replace(/\.[^/.]+$/,"")),eh(`1-${i}`),e8(),Z.current=!0,ee("preview")}catch{eW(F.invalidPdf)}finally{e_(!1)}}},e5=(e,t,r,a,n,s,l)=>{let o=(l%360+360)%360,d=t.width,c=t.height,p=90===o||270===o?c:d,u=90===o||270===o?d:c,g="fill"===eH?Math.max(n/p,s/u):Math.min(n/p,s/u),h=p*g,m=u*g,x=r+(n-h)/2,f=a+(s-m)/2,b=90===o?{x:x+h,y:f,rotate:(0,i.degrees)(90)}:180===o?{x:x+h,y:f+m,rotate:(0,i.degrees)(180)}:270===o?{x:x,y:f+m,rotate:(0,i.degrees)(270)}:{x:x,y:f,rotate:(0,i.degrees)(0)};e.drawPage(t,{...b,xScale:g,yScale:g})},e3=(e,t,r,a,i)=>{e.drawRectangle({x:t,y:r,width:a,height:i,color:(0,s.rgb)(.99,.99,.99)})},e7=(e,t,r,a,i,n)=>{eB&&n&&e.drawText(n,{x:t+6,y:r+5,size:6,color:(0,s.rgb)(.45,.45,.45)})},te=(e,t,r,a,i,n)=>{let l=(0,s.rgb)(.85,.2,.2),o=(0,s.rgb)(.85,.2,.2),d=(0,s.rgb)(.12,.12,.12),c=M(a,i);
1eS&&n&&(c.verticals.forEach(({index:i,kind:n})=>{let s=t/a*i;e.drawLine({start:{x:s,y:8},end:{x:s,y:r-8},thickness:.5,color:"fold"===n?l:o,..."fold"===n?{dashArray:[4,3]}:{}})}),c.horizontals.forEach(({index:a,kind:n})=>{let s=r/i*a;e.drawLine({start:{x:8,y:s},end:{x:t-8,y:s},thickness:.5,color:"fold"===n?l:o,..."fold"===n?{dashArray:[4,3]}:{}})})),eA&&([{x:8,y:8,dx:1,dy:1},{x:t-8,y:8,dx:-1,dy:1},{x:8,y:r-8,dx:1,dy:-1},{x:t-8,y:r-8,dx:-1,dy:-1}].forEach(t=>{e.drawLine({start:{x:t.x+3*t.dx,y:t.y},end:{x:t.x+21*t.dx,y:t.y},thickness:.6,color:d}),e.drawLine({start:{x:t.x,y:t.y+3*t.dy},end:{x:t.x,y:t.y+21*t.dy},thickness:.6,color:d})}),c.horizontals.filter(e=>"cut"===e.kind).forEach(({index:a})=>{let n=r/i*a;e.drawLine({start:{x:0,y:n},end:{x:12,y:n},thickness:.5,color:d}),e.drawLine({start:{x:t-12,y:n},end:{x:t,y:n},thickness:.5,color:d})}),c.verticals.filter(e=>"cut"===e.kind).forEach(({index:i})=>{let n=t/a*i;e.drawLine({start:{x:n,y:0},end:{x:n,y:12},thickness:.5,color:d}),e.drawLine({start:{x:n,y:r-12},end:{x:n,y:r},thickness:.5,color:d})}))},tt=async(e="all")=>{var t;let r,a;
1if(!ea)throw Error("missing pdf");let i=await n.PDFDocument.load(ea.slice(),{ignoreEncryption:!0}),l=(t=i.getPageCount(),r="all"===ep?Array.from({length:t},(e,t)=>t+1):O(eg,t),a=[],r.forEach((e,t)=>{if("none"===em)a.push({sourceIndex:e-1,extraRotation:0});else{var r;let t,n=(r=i.getPage(e-1),{left:(t=r.getCropBox?.()||r.getMediaBox()).x,bottom:t.y,right:t.x+t.width,top:t.y+t.height,width:t.width,height:t.height}),s=n.left+n.width/2;("right-first"===em?[{left:s,bottom:n.bottom,right:n.right,top:n.top},{left:n.left,bottom:n.bottom,right:s,top:n.top}]:[{left:n.left,bottom:n.bottom,right:s,top:n.top},{left:s,bottom:n.bottom,right:n.right,top:n.top}]).forEach(t=>{a.push({sourceIndex:e-1,extraRotation:0,crop:t})})}ef&&0===t&&a.push(null)}),a),o=await n.PDFDocument.create(),d=ey?eQ.height:eQ.width,c=ey?eQ.width:eQ.height,p=new Map,u=async e=>{let t=`${e.sourceIndex}:${e.crop?`${e.crop.left},${e.crop.bottom},${e.crop.right},${e.crop.top}`:"full"}`,r=p.get(t);if(r)return r;let a=i.getPage(e.sourceIndex),n=e.crop?await o.embedPage(a,e.crop):await o.embedPage(a);return p.set(t,n),n},g=d>c,h=L(eZ,g),m=((e,t,r,a=!1,i="none")=>{if(1===t&&2===r)return q(((e,t=!1)=>{let r=4*Math.ceil(e/4),a=[];for(let i=0;i<r/4;i+=1){let n=r-2*i,s=2*i+1,l=2*i+2,o=r-2*i-1;a.push({sheetIndex:i,side:"front",slots:[{pageNum:n<=e?n:0,rotation:270,col:0,row:0},{pageNum:s<=e?s:0,rotation:270,col:0,row:1}]}),t?a.push({sheetIndex:i,side:"back",slots:[{pageNum:o<=e?o:0,rotation:90,col:0,row:0},{pageNum:l<=e?l:0,rotation:90,col:0,row:1}]}):a.push({sheetIndex:i,side:"back",slots:[{pageNum:l<=e?l:0,rotation:270,col:0,row:0},{pageNum:o<=e?o:0,rotation:270,col:0,row:1}]})}return a})(e,a),i,t);if(t%2!=0||r<1)throw Error("cut-stack booklet requires an even column count");let n=t*r,s=2*n*Math.ceil(e/(2*n)),l=((e,t)=>{let r=[];for(let a=0;a<t/4;a+=1){let i=2*a+1,n=2*a+2,s=t-2*a-1,l=t-2*a;r.push({FR:i>e?0:i,BL:n>e?0:n,BR:s>e?0:s,FL:l>e?0:l})}return r})(e,s),o=t/2,d=l.length/(r*o),c=[];for(let e=0;e<d;e+=1){let t=[],i=[];for(let a=0;a<r;a+=1)for(let r=0;r<o;r+=1){let n=l[d*o*a+e*o+r],s=2*r,c=s+1;t.push({pageNum:n.FL,rotation:0,col:s,row:a}),t.push({pageNum:n.FR,rotation:0,col:c,row:a}),i.push({pageNum:n.BL,col:s,row:a}),i.push({pageNum:n.BR,col:c,row:a})}let n=i.map(e=>{let t=Math.floor(e.col/2),i=e.col%2;if(a){let r=o-1-t;return{pageNum:e.pageNum,rotation:0,col:2*r+i,row:e.row}}return{pageNum:e.pageNum,rotation:180,col:2*t+(1-i),row:r-1-e.row}});c.push({sheetIndex:e,side:"front",slots:t}),c.push({sheetIndex:e,side:"back",slots:n})}return q(c,i,t)})(l.length,h.cols,h.rows,g,ed),x=d/h.cols,f=c/h.rows,b=eL&&h.cols>1?Math.max(8,.04*Math.min(x,f)):0;for(let t=0;t<m.length;t+=1){let r=m[t],a=t%2==0;if("odd"===e&&!a||"even"===e&&a)continue;let i=o.addPage([d,c]);for(let e of r.slots){let t=e.col<h.cols/2?0:b,r=e.col<h.cols/2?b:0,a=Math.max(6,.035*Math.min(x,f)),n=e.col*x,s=c-(e.row+1)*f,o=n+a+t,d=s+a,p=x-2*a-t-r,g=f-2*a,m=e.pageNum?l[e.pageNum-1]:null;m?e5(i,await u(m),o,d,p,g,(m.extraRotation+e.rotation)%360):e3(i,o,d,p,g),e7(i,n,s,x,f,e.pageNum?`P.${e.pageNum}`:"")}te(i,d,c,h.cols,h.rows,"front"===r.side),eB&&i.drawText(`Sheet ${r.sheetIndex+1} ${r.side}`,{x:8,y:8,size:6,color:(0,s.rgb)(.45,.45,.45)})}return await o.save()},tr=async()=>{if(ea){if("custom"===ep&&0===e0.length)return void eW(F.invalidRange);eG(!0),eW("");try{let e=await tt("all"),t=await (0,S.processPdf)(e,{mode:"preview",watermarkText:"SheetsToLabels.com"});e$(new Blob([t],{type:"application/pdf"}))}catch{eW(F.generateFailed)}finally{eG(!1)}}};(0,a.useEffect)(()=>{Z.current&&"preview"===X&&ea&&"8"===eP&&"a4"===ev&&!0===ey&&(Z.current=!1,tr())},[X,ea,eP,ev,ey]),(0,a.useEffect)(()=>{let e=V.get("demo");J.current||("1"===e||"true"===e)&&(J.current=!0,e6())},[V]),(0,a.useEffect)(()=>{let e=`${eS}-${eA}-${eB}-${eH}-${eL}-${em}-${ef}`;Q.current===e||(Q.current=e,"preview"===X&&ea&&eI&&tr())},[eS,eA,eB,eH,eL,em,ef,X,ea]);let ta=async e=>{if("layout"===e&&"custom"===ep&&0===e0.length)return void eW(F.invalidRange);if("preview"===e){ee("preview"),await tr();return}eW(""),ee(e)},ti=async()=>{if(!ea)return"";let e=new TextEncoder().encode(JSON.stringify({pageRange:eg,pageMode:ep,rotationMode:ed,splitMode:em,blankAfterCover:ef,paperId:ev,rotatePaper:ey,layoutId:eP,showFoldMarks:eS,showCropMarks:eA,bindingAligned:eL,showPageLabels:eB,scaleMode:eH})),t=new Uint8Array(ea.length+e.length);return t.set(ea),t.set(e,ea.length),Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",t))).map(e=>e.toString(16).padStart(2,"0")).join("")},tn=async()=>
1{if(ea&&eI&&!e4.isLoading)try{let e=await ti();e4.startExport(async()=>tt("all"),{contentHash:e,metadata:{layout:eP,paper:ev,pageCount:e0.length}})}catch{eW(F.generateFailed)}};(0,z.useExportAutoResume)(tn);let ts=r.startsWith("zh")?["上传","页面","纸张","预览"]:["Upload","Pages","Paper","Preview"],tl={2:{title:F.layout2Title,desc:F.layout2Desc},4:{title:F.layout4Title,desc:F.layout4Desc},8:{title:F.layout8Title,desc:F.layout8Desc},16:{title:F.layout16Title,desc:F.layout16Desc}};return(0,t.jsx)("section",{id:e.id||"pdf_booklet_wizard",className:"bg-background border-border border-t py-10 md:py-14",children:(0,t.jsxs)("div",{className:"mx-auto max-w-7xl px-4 md:px-8",children:[(0,t.jsxs)("div",{className:"mb-8 flex flex-col items-center gap-4 text-center",children:[(0,t.jsxs)("div",{className:"border-primary/20 bg-primary/10 text-primary inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-semibold",children:[(0,t.jsx)(p.Check,{className:"size-3.5"}),F.privacy]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-foreground text-2xl font-bold md:text-3xl",children:e.title||F.uploadTitle}),e.description&&(0,t.jsx)("p",{className:"text-muted-foreground mt-2 text-sm md:text-base",children:e.description})]}),(0,t.jsx)(_,{step:X,labels:ts})]}),(0,t.jsxs)("div",{className:"bg-card border-border rounded-lg border p-4 shadow-sm md:p-8",children:["upload"===X&&(0,t.jsxs)("div",{className:"mx-auto max-w-2xl py-8",children:[(0,t.jsx)("p",{className:"text-muted-foreground mb-4 text-center text-sm leading-6",children:F.uploadHint}),(0,t.jsxs)("button",{type:"button",onClick:()=>G.current?.click(),onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault();let t=e.dataTransfer.files?.[0];t&&e9(t)},className:"border-primary/25 bg-primary/5 hover:border-primary/60 hover:bg-primary/10 flex min-h-[320px] w-full flex-col items-center justify-center rounded-lg border-2 border-dashed px-6 text-center transition",children:[(0,t.jsx)("input",{ref:G,type:"file",accept:"application/pdf",className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&e9(t)}}),(0,t.jsx)(v.Upload,{className:"text-primary mb-4 size-12"}),(0,t.jsx)("span",{className:"bg-primary text-primary-foreground rounded-md px-5 py-3 text-sm font-bold shadow-sm",children:F.uploadButton}),(0,t.jsx)("span",{className:"text-muted-foreground mt-3 text-sm",children:F.uploadDrop})]}),(0,t.jsxs)("div",{className:"mt-5 flex flex-col items-center gap-2 text-center",children:[(0,t.jsxs)(w.Button,{type:"button",variant:"outline",disabled:eq||!Y.tryDemo,onClick:()=>void e6(),className:"h-11 gap-2",children:[eq?(0,t.jsx)(m.RotateCw,{className:"size-4 animate-spin"}):(0,t.jsx)(b.Sparkles,{className:"size-4"}),eq&&Y.loadingDemo||Y.tryDemo]}),Y.tryDemoHint&&(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-xs leading-5",children:Y.tryDemoHint})]})]}),"source"===X&&(0,t.jsxs)("div",{className:"space-y-8",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"bg-primary/10 text-primary flex size-11 items-center justify-center rounded-md",children:(0,t.jsx)(h.FileText,{className:"size-5"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-foreground text-xl font-bold",children:F.sourceTitle}),(0,t.jsxs)("p",{className:"text-muted-foreground text-sm",children:[el," · ",en," ",F.pages]}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:F.sourceHint})]})]}),(0,t.jsxs)(w.Button,{variant:"outline",onClick:()=>ee("upload"),children:[(0,t.jsx)(v.Upload,{className:"size-4"}),F.changeFile]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Label,{className:"text-foreground text-base font-bold",children:F.rotatePages}),(0,t.jsx)("div",{className:"mt-4 grid gap-4 md:grid-cols-3",children:[{value:"none",label:F.noChange},{value:"90cw",label:F.rot90cw},{value:"90ccw",label:F.rot90ccw},{value:"in_binding",label:F.oddCwEvenCcw},{value:"out_binding",label:F.oddCcwEvenCw}].map(e=>{let r=ed===e.value;return(0,t.jsxs)("button",{type:"button",onClick:()=>{ec(e.value),e8()},className:(0,D.cn)("relative min-h-[210px] rounded-lg border p-4 text-center transition",r?"border-primary/40 bg-primary/10 text-foreground":"border-border bg-background text-foreground hover:border-primary/30"),children:[(0,t.jsx)("span",{className:(0,D.cn)("absolute right-4 top-4 flex size-7 items-center justify-center rounded-full border",r?"border-primary bg-primary text-primary-foreground":"border-zinc-300 text-transparent"),children:(0,t.jsx)(p.Check,{className:"size-4"})}),(0,t.jsx)(K,{mode:e.value}),(0,t.jsx)("span",{className:"text-sm font-bold",children:e.label})]},e.value)})})]}
1),(0,t.jsxs)("div",{className:"max-w-md space-y-3",children:[(0,t.jsx)(j.Label,{className:"text-foreground text-base font-bold",children:F.pagesToInclude}),(0,t.jsxs)(P.Select,{value:ep,onValueChange:e=>{eu(e),e8()},children:[(0,t.jsx)(P.SelectTrigger,{className:"h-12",children:(0,t.jsx)(P.SelectValue,{})}),(0,t.jsxs)(P.SelectContent,{children:[(0,t.jsx)(P.SelectItem,{value:"all",children:F.allPages}),(0,t.jsx)(P.SelectItem,{value:"custom",children:F.customRange})]})]}),"custom"===ep&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.Input,{value:eg,placeholder:F.rangePlaceholder,onChange:e=>{eh(e.target.value),e8()}}),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-5",children:F.rangeHelp})]}),(0,t.jsxs)("div",{className:"space-y-2 pt-2",children:[(0,t.jsx)(j.Label,{className:"text-foreground text-base font-bold",children:F.splitPages}),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-5",children:F.splitHelp}),(0,t.jsxs)(P.Select,{value:em,onValueChange:e=>{ex(e),e8()},children:[(0,t.jsx)(P.SelectTrigger,{className:"h-12",children:(0,t.jsx)(P.SelectValue,{})}),(0,t.jsxs)(P.SelectContent,{children:[(0,t.jsx)(P.SelectItem,{value:"none",children:F.splitNone}),(0,t.jsx)(P.SelectItem,{value:"left-first",children:F.splitLeftFirst}),(0,t.jsx)(P.SelectItem,{value:"right-first",children:F.splitRightFirst})]})]})]}),(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 pt-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Label,{className:"text-sm font-bold",children:F.blankAfterCover}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-5",children:F.blankAfterCoverHelp})]}),(0,t.jsx)(k.Switch,{checked:ef,onCheckedChange:e=>{eb(e),e8()}})]})]}),(0,t.jsxs)("div",{className:"flex justify-between",children:[(0,t.jsxs)(w.Button,{variant:"outline",onClick:()=>ee("upload"),children:[(0,t.jsx)(d.ArrowLeft,{className:"size-4"}),F.previous]}),(0,t.jsxs)(w.Button,{className:"bg-primary text-primary-foreground hover:bg-primary/90",onClick:()=>void ta("layout"),children:[F.next,(0,t.jsx)(c.ArrowRight,{className:"size-4"})]})]})]}),"layout"===X&&(0,t.jsxs)("div",{className:"space-y-8",children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("h3",{className:"text-foreground text-2xl font-bold",children:F.layoutTitle}),(0,t.jsx)("p",{className:"text-muted-foreground mx-auto mt-2 max-w-2xl text-sm leading-6",children:F.layoutHint})]}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-[minmax(0,380px)_1fr] lg:items-start",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(j.Label,{className:"text-foreground text-base font-bold",children:F.paperSize}),(0,t.jsxs)(P.Select,{value:ev,onValueChange:e=>{ew(e),e8()},children:[(0,t.jsx)(P.SelectTrigger,{className:"h-12",children:(0,t.jsx)(P.SelectValue,{})}),(0,t.jsx)(P.SelectContent,{children:A.map(e=>(0,t.jsx)(P.SelectItem,{value:e.id,children:e.label},e.id))})]}),(0,t.jsxs)("div",{className:"bg-muted/60 border-border mt-4 rounded-lg border p-4",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,t.jsx)(j.Label,{className:"text-foreground text-sm font-bold",children:F.rotatePaper}),(0,t.jsx)(k.Switch,{checked:ey,onCheckedChange:e=>{ej(e),e8()}})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("div",{className:"flex h-28 w-28 items-center justify-center",children:(0,t.jsxs)("div",{className:"border-foreground relative bg-background border transition-all",style:{width:eJ.width>eJ.height?104:74,height:eJ.width>eJ.height?74:104},children:[M(eY.cols,eY.rows).verticals.map(({index:e,kind:r})=>(0,t.jsx)("div",{className:(0,D.cn)("absolute top-0 bottom-0 border-l","fold"===r?"border-dashed border-primary":"border-solid border-primary"),style:{left:`${e/eY.cols*100}%`},"aria-hidden":!0},`mini-v-${e}`)),M(eY.cols,eY.rows).horizontals.map(({index:e,kind:r})=>(0,t.jsx)("div",{className:(0,D.cn)("absolute left-0 right-0 border-t","fold"===r?"border-dashed border-primary":"border-solid border-primary"),style:{top:`${e/eY.rows*100}%`},"aria-hidden":!0},`mini-h-${e}`))]})}),(0,t.jsxs)("div",{className:"min-w-0 text-sm",children:[(0,t.jsx)("p",{className:"text-foreground font-bold",children:F.sheetPreview}),(0,t.jsxs)("p",{className:"text-muted-foreground mt-1",children:[F.outputSize,": ",Math.round(.352778*eJ.width)," ×"," ",Math.round(.352778*eJ.height)," mm"]}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:[F.pageSlots,": ",eZ.count," · ",eX.width," x ",eX.height," pt"]})]})]})]})]}),(0,t.jsx)("div",{className:"bg-muted/30 border-border rounded-lg border p-4",children:(0,t.jsxs)("div",{className:"grid gap-3 text-sm sm:grid-cols-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground block text-xs font-semibold uppercase",children:F.outputSize}),(0,t.jsxs)("span",{className:"text-foreground font-mono font-bold",children:[Math.round(.352778*eJ.width)," × ",Math.round(.352778*eJ.height)," mm"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground block text-xs font-semibold uppercase",children:F.pageSlots}),(0,t.jsx)("span",{className:"text-foreground font-mono font-bold",children:eZ.count})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground block text-xs font-semibold uppercase",children:F.outputPages}),(0,t.jsx)("span",{className:"text-foreground font-mono font-bold",children:e2||"-"})]})]})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Label,{className:"text-foreground text-base font-bold",children:F.specSize}),(0,t.jsx)("div",{className:"mt-4 grid gap-4 md:grid-cols-4",children:T.map(e=>{let r=eP===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>{ek(e.id),ej(!1),e8()},className:(0,D.cn)("relative min-h-[250px] rounded-lg border p-5 transition",r?"border-primary/40 bg-primary/10 text-foreground":"border-border bg-background text-foreground hover:border-primary/30"),children:[(0,t.jsx)("span",{className:(0,D.cn)("absolute right-4 top-4 flex size-7 items-center justify-center rounded-full border",r?"border-primary bg-primary text-primary-foreground":"border-zinc-300 text-transparent"),children:(0,t.jsx)(p.Check,{className:"size-4"})}),(0,t.jsxs)("div",{className:"pr-8 text-left",children:[(0,t.jsx)("div",{className:"text-lg font-bold",children:tl[e.id].title}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-5",children:tl[e.id].desc})]}),(0,t.jsx)(W,{preset:e,sheetWidth:eJ.width,sheetHeight:eJ.height})]},e.id)})})]}),(0,t.jsxs)("div",{className:"flex justify-between",children:[(0,t.jsxs)(w.Button,{variant:"outline",onClick:()=>ee("source"),children:[(0,t.jsx)(d.ArrowLeft,{className:"size-4"}),F.previous]}),(0,t.jsxs)(w.Button,{className:"bg-primary text-primary-foreground hover:bg-primary/90",onClick:()=>void ta("preview"),children:[F.previewAndDownload,(0,t.jsx)(c.ArrowRight,{className:"size-4"})]})]})]}),"preview"===X&&(0,t.jsxs)("div",{className:"grid gap-8 lg:grid-cols-[minmax(0,1fr)_minmax(280px,340px)]",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-foreground mb-2 text-2xl font-bold",children:F.previewTitle}),(0,t.jsx)("p",{className:"text-muted-foreground mb-4 text-sm leading-6",children:F.previewHint}),(0,t.jsx)("div",{className:"bg-muted h-[720px] overflow-hidden rounded-lg border border-border",children:eO?(0,t.jsxs)("div",{className:"flex h-full items-center justify-center text-sm font-semibold text-zinc-500",children:[(0,t.jsx)(m.RotateCw,{className:"mr-2 size-4 animate-spin"}),F.generating]}):eU?(0,t.jsx)("iframe",{title:F.previewTitle,src:eU,className:"bg-background h-full w-full"}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-zinc-500",children:F.emptyPreview})})]}),(0,t.jsxs)("div",{className:"space-y-4 lg:sticky lg:top-6 lg:self-start",children:[(0,t.jsxs)("div",{className:"bg-muted/50 border-border rounded-lg border p-4 text-sm",children:[(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:F.sourcePages}),(0,t.jsx)("span",{className:"text-foreground font-mono font-bold",children:e0.length||en})]}),(0,t.jsxs)("div",{className:"mt-2 flex justify-between gap-3",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:F.outputPages}),(0,t.jsx)("span",{className:"text-foreground font-mono font-bold",children:e2})]})]}),(0,t.jsxs)("div",{className:"border-primary/25 bg-primary/5 space-y-3 rounded-xl border p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-foreground font-semibold",children:F.exportCardTitle}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-sm leading-6",children:F.exportCardBody})]}),(0,t.jsxs)(w.Button,{disabled:!eI||eO||e4.isLoading,onClick:()=>void tn(),className:"bg-primary text-primary-foreground hover:bg-primary/90 h-auto w-full flex-col gap-0.5 py-3.5",children:[(0,t.jsxs)("span",{className:"flex items-center justify-center gap-2 text-base font-bold",children:[(0,t.jsx)(g.Download,{className:"size-5 shrink-0"}),F.exportTitle]}
1),(0,t.jsx)("span",{className:"text-primary-foreground/85 text-xs font-medium",children:F.exportCredits.replace("{count}",String(e2||1))})]}),(0,t.jsxs)(N.Link,{href:"/pricing",className:"text-primary block text-center text-xs font-medium underline-offset-2 hover:underline",children:[F.getCreditsLink," →"]})]}),(0,t.jsxs)(w.Button,{variant:"ghost",size:"sm",className:"text-muted-foreground w-full",onClick:()=>ee("layout"),children:[(0,t.jsx)(d.ArrowLeft,{className:"size-4"}),F.editOptions]}),(0,t.jsxs)("button",{type:"button",onClick:()=>eN(e=>!e),className:"border-border bg-background text-foreground hover:border-primary/30 flex h-11 w-full items-center justify-between rounded-lg border px-4 text-sm font-medium shadow-sm transition",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)(f.SlidersHorizontal,{className:"size-4"}),F.advanced]}),(0,t.jsx)(u.ChevronDown,{className:(0,D.cn)("size-4 transition",eD&&"rotate-180")})]}),eD&&(0,t.jsxs)("div",{className:"bg-muted/50 border-border space-y-4 rounded-lg border p-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground text-sm leading-6",children:F.advancedHelp}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Label,{className:"text-sm font-bold",children:F.foldMarks}),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-5",children:F.foldMarksDesc})]}),(0,t.jsx)(k.Switch,{checked:eS,onCheckedChange:e=>{eF(e)}})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Label,{className:"text-sm font-bold",children:F.cropMarks}
1),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-5",children:F.cropMarksDesc})]}),(0,t.jsx)(k.Switch,{checked:eA,onCheckedChange:e=>{eT(e)}})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsx)(j.Label,{className:"text-sm font-bold",children:F.bindingAligned}),(0,t.jsx)(k.Switch,{checked:eL,onCheckedChange:e=>{eM(e)}})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsx)("div",{children:(0,t.jsx)(j.Label,{className:"text-sm font-bold",children:F.pageLabels})}),(0,t.jsx)(k.Switch,{checked:eB,onCheckedChange:e=>{eR(e)}})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(j.Label,{className:"text-sm font-bold",children:F.scaleMode}),(0,t.jsxs)(P.Select,{value:eH,onValueChange:e=>{eE(e)},children:[(0,t.jsx)(P.SelectTrigger,{children:(0,t.jsx)(P.SelectValue,{})}),(0,t.jsxs)(P.SelectContent,{children:[(0,t.jsx)(P.SelectItem,{value:"fit",children:F.fit}),(0,t.jsx)(P.SelectItem,{value:"fill",children:F.fill})]})]})]}),(0,t.jsxs)(w.Button,{variant:"outline",className:"w-full",onClick:()=>void tr(),children:[(0,t.jsx)(x.Settings2,{className:"size-4"}),F.updatePreview]})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>ez(e=>!e),className:"border-border bg-background text-foreground hover:border-primary/30 flex h-11 w-full items-center justify-between rounded-lg border px-4 text-sm font-medium shadow-sm transition",children:[(0,t.jsx)("span",{children:F.printGuide}),(0,t.jsx)(u.ChevronDown,{className:(0,D.cn)("size-4 transition",eC&&"rotate-180")})]}),eC&&(0,t.jsxs)("div",{className:"border-border rounded-lg border p-4 text-sm",children:[(0,t.jsx)("p",{className:"text-foreground mb-3 font-bold",children:F.printTitle}),(0,t.jsx)("p",{className:"text-foreground mb-1 text-xs font-semibold uppercase tracking-wide",children:F.printDuplex}),(0,t.jsxs)("ol",{className:"text-muted-foreground mb-3 list-decimal space-y-1.5 pl-4 leading-6",children:[(0,t.jsx)("li",{children:F.print1}),(0,t.jsx)("li",{children:F.print2}),(0,t.jsx)("li",{children:F.print3}),(0,t.jsx)("li",{children:F.print4})]}),(0,t.jsx)("p",{className:"text-foreground mb-1 text-xs font-semibold uppercase tracking-wide",children:F.printManual}),(0,t.jsx)("p",{className:"text-muted-foreground mb-3 leading-6",children:F.print5}),(0,t.jsx)("p",{className:"text-foreground mb-1 text-xs font-semibold uppercase tracking-wide",children:F.printBind}),(0,t.jsx)("p",{className:"text-muted-foreground leading-6",children:F.print6})]})]})]}),eK&&(0,t.jsx)("div",{className:"mt-5 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm font-semibold text-red-700",children:eK})]})]})})}e.s(["PdfBookletWizard",()=>Q])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.