PageSourceSearch

https://mcstumble.com/_next/static/chunks/7899-2a8ca9544b1bd45b.js

js mcstumble.com collected 2026-10-06 19:50:56 UTC 23,110 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7899],{3641:function(e,o,r){r.d(o,{Z:function(){return JsonLd}});var t=r(85893),i=r(9008),n=r.n(i);function JsonLd(e){let{data:o}=e;return o?(0,t.jsx)(n(),{children:(0,t.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(o)}})}):null}},1269:function(e,o,r){r.d(o,{GR:function(){return function absoluteUrl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",o=function(e){if(!e||"string"!=typeof e)return i;let o=e.trim();if(!o)return i;try{let e=new URL(o.includes("://")?o:"https://".concat(o)),r=e.hostname.toLowerCase();if("localhost"===r||"127.0.0.1"===r||r.endsWith(".local"))return i;return r.startsWith("www.")&&(r=r.slice(4)),"https://".concat(r).replace(/\/+$/,"")}catch(e){return i}}(t.env.NEXT_PUBLIC_SITE_URL||t.env.SITE_URL||i);if(!e||"/"===e)return o;if(/^https?:\/\//i.test(e))try{let r=new URL(e);if("localhost"===r.hostname||"127.0.0.1"===r.hostname)return absoluteUrl(r.pathname+r.search+r.hash);let t=r.hostname.toLowerCase().replace(/^www\./,"");if("mcstumble.com"===t){let e="".concat(r.pathname.replace(/\/{2,}/g,"/")).concat(r.search).concat(r.hash);if(!r.pathname||"/"===r.pathname)return"".concat(o).concat(r.search).concat(r.hash);return"".concat(o).concat(e)}return"".concat(r.origin.replace(/\/+$/,"")).concat(r.pathname.replace(/\/{2,}/g,"/")).concat(r.search).concat(r.hash)}catch(e){return o}let r="/".concat(String(e).replace(/^\/+/,"")).replace(/\/{2,}/g,"/");return"".concat(o).concat("/"===r?"":r)}},KO:function(){return l},R0:function(){return a},fF:function(){return s},l:function(){return c},px:function(){return n}});var t=r(83454);let i="https://mcstumble.com",n="McStumble",a="/og-default.png",s=1200,c=630,l="McStumble — useful websites and free browser tools curated by Matty McTech"},87081:function(e,o,r){r.d(o,{DN:function(){return buildToolsDirectoryJsonLd},Pd:function(){return buildSeriesDirectoryJsonLd},gO:function(){return buildToolJsonLd},gP:function(){return buildHomeJsonLd},yw:function(){return buildAboutJsonLd}});var t=r(1269),i=r(76529);let n="https://mcstumble.com/#organization",a="https://mcstumble.com/#website",s={text:"UtilitiesApplication",image:"MultimediaApplication",productivity:"UtilitiesApplication",developers:"DeveloperApplication",design:"DesignApplication","pdf-tools":"UtilitiesApplication"};function organizationNode(){return{"@type":"Organization","@id":n,name:t.px,url:(0,t.GR)("/"),logo:(0,t.GR)(t.R0)}}function websiteNode(){let{includeSearchAction:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o={"@type":"WebSite","@id":a,name:t.px,url:(0,t.GR)("/"),publisher:{"@id":n}};return e&&(o.potentialAction={"@type":"SearchAction",target:{"@type":"EntryPoint",urlTemplate:"".concat((0,t.GR)("/tools"),"?search={search_term_string}")},"query-input":"required name=search_term_string"}),o}function breadcrumbList(e,o){return{"@type":"BreadcrumbList","@id":"".concat((0,t.GR)(e),"#breadcrumb"),itemListElement:o.map((e,o)=>({"@type":"ListItem",position:o+1,name:e.name,item:(0,t.GR)(e.path)}))}}function buildHomeJsonLd(){return{"@context":"https://schema.org","@graph":[organizationNode(),websiteNode(),{"@type":"WebPage","@id":"".concat((0,t.GR)("/"),"#webpage"),url:(0,t.GR)("/"),name:"McStumble | Matty McTech's Free Internet Toolbox",description:"Creator-curated browser tools for PDFs, images, text, coding, and productivity—plus one button for discovering the fun side of the web.",isPartOf:{"@id":a},about:{"@id":n}}]}}function buildAboutJsonLd(){let e=breadcrumbList("/about",[{name:"Home",path:"/"},{name:"About",path:"/about"}]);return{"@context":"https://schema.org","@graph":[organizationNode(),websiteNode(),{"@type":"AboutPage","@id":"".concat((0,t.GR)("/about"),"#webpage"),url:(0,t.GR)("/about"),name:"About McStumble | Curated by Matty McTech",description:"Meet the creator behind McStumble and the mission to make useful browser tools fast, free, and easy to find.",isPartOf:{"@id":a},about:{"@id":n},breadcrumb:{"@id":e["@id"]}},e]}}function buildToolsDirectoryJsonLd(){let e=i.Zm;return{"@context":"https://schema.org","@graph":[organizationNode(),websiteNode(),{"@type":"CollectionPage","@id":"".concat((0,t.GR)("/tools"),"#webpage"),url:(0,t.GR)("/tools"),name:"Free Browser Tools Curated by Matty McTech | McStumble",description:"Explore creator-curated PDF, image, text, developer, design, and productivity tools. Fast, free, and browser-based.",isPartOf:{"@id":a},mainEntity:{"@id":"".concat((0,t.GR)("/tools"),"#itemlist")}},{"@type":"ItemList","@id":"".concat((0,t.GR)("/tools"),"#itemlist"),numberOfItems:e.length,itemListElement:e.map((e,o)=>({"@type":"ListItem",position:o+1,name:e.name,url:(0,t.GR)(e.href)}))},breadcrumbList("/tools",[{name:"Home",path:"/"},{name:"Tools",path:"/tools"}])]}}function buildToolJsonLd(e){var o;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(0,i.uL)(e);if(!c)return null;let l=c.href,d=(0,t.GR)(l),m=r.name||c.name,p=r.description||c.description,u=r.applicationCategory||s[c.categoryId]||"
1UtilitiesApplication",f=[organizationNode(),websiteNode(),{"@type":"SoftwareApplication","@id":"".concat(d,"#app"),name:m,description:p,url:d,applicationCategory:u,operatingSystem:"Web Browser",isAccessibleForFree:!0,offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},publisher:{"@id":n},isPartOf:{"@id":a}},breadcrumbList(l,[{name:"Home",path:"/"},{name:"Tools",path:"/tools"},{name:c.categoryName,path:(0,i.W7)(c.categoryId)},{name:m,path:l}])],h=(o=r.faqs)&&0!==o.length?{"@type":"FAQPage","@id":"".concat((0,t.GR)(l),"#faq"),mainEntity:o.map(e=>({"@type":"Question",name:e.question,acceptedAnswer:{"@type":"Answer",text:e.answer}}))}:null;return h&&f.push(h),{"@context":"https://schema.org","@graph":f}}function buildSeriesDirectoryJsonLd(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r="powerful"===e?"/powerful":"/bored",i=(o||[]).filter(e=>e&&e.title&&e.url).map((e,o)=>({"@type":"ListItem",position:o+1,name:e.title,url:e.url}));return{"@context":"https://schema.org","@graph":[organizationNode(),websiteNode(),{"@type":"CollectionPage","@id":"".concat((0,t.GR)(r),"#webpage"),url:(0,t.GR)(r),name:"powerful"===e?"Powerful Websites | Curated Tools & Sites by Matty McTech (@setupspawn)":"Websites to Cure Boredom | McStumble",description:"powerful"===e?"Discover powerful websites and tools curated by Matty McTech (@setupspawn). Browse the full Powerful Websites series with search and categories. Premium members get full access plus ad-free experience and more.":"Curated websites to cure boredom from Matty McTech (@setupspawn). Unique, fun, and interesting sites. Search and filter the full list. Premium unlocks everything plus ad-free, history, and saved likes.",isPartOf:{"@id":a},mainEntity:{"@id":"".concat((0,t.GR)(r),"#itemlist")}},{"@type":"ItemList","@id":"".concat((0,t.GR)(r),"#itemlist"),name:"powerful"===e?"Powerful Websites Series":"Websites to Cure Boredom",numberOfItems:i.length,itemListElement:i},breadcrumbList(r,[{name:"Home",path:"/"},{name:"powerful"===e?"Powerful Websites":"Websites to Cure Boredom",path:r}])]}}},76529:function(e,o,r){r.d(o,{DH:function(){return a},W7:function(){return getCategoryHref},XY:function(){return i},Zm:function(){return n},fV:function(){return searchTools},uL:function(){return getToolById}});var t=r(52091);let i=[{id:"text",name:"Text Tools",shortName:"Text",description:"Write, format, compare, and transform text.",tools:[{id:"word-counter",name:"Word & Character Counter",description:"Count words, characters, and estimate reading time for any text.",icon:t.T_s,href:"/tools/word-counter",color:"retro-yellow"},{id:"text-case-converter",name:"Text Case Converter",description:"Convert text between uppercase, lowercase, title case, and sentence case.",icon:t.wT5,href:"/tools/text-case-converter",color:"retro-pink"},{id:"text-encryptor",name:"Text Encryptor/Decryptor",description:"Encrypt and decrypt text using AES encryption with a password.",icon:t.kUi,href:"/tools/text-encryptor",color:"retro-red",featured:!0},{id:"lorem-ipsum",name:"Lorem Ipsum Generator",description:"Generate random placeholder text with customizable options.",icon:t.E2G,href:"/tools/lorem-ipsum",color:"retro-yellow"},{id:"find-replace",name:"Find & Replace Tool",description:"Quickly find and replace text within a larger document.",icon:t.wT5,href:"/tools/find-replace",color:"retro-blue"},{id:"ascii-art",name:"ASCII Art Generator",description:"Convert images or text into ASCII art that can be copied and shared.",icon:t.dkN,href:"/tools/ascii-art",color:"retro-green"},{id:"markdown-to-html",name:"Markdown to HTML Converter",description:"Convert Markdown text to HTML format with live preview.",icon:t.gtO,href:"/tools/markdown-to-html",color:"retro-blue"},{id:"html-to-markdown",name:"HTML to Markdown Converter",description:"Convert HTML code to Markdown format for easier editing.",icon:t.OxQ,href:"/tools/html-to-markdown",color:"retro-blue"},{id:"l-i-tester",name:"L/I Distinction Tester",description:"Distinguish between lowercase L and uppercase I using different fonts.",icon:t.wT5,href:"/tools/l-i-tester",color:"retro-yellow"}]},{id:"image",name:"Image Tools",shortName:"Images",description:"Convert, resize, inspect, and create images.",tools:[{id:"background-remover",name:"AI Backgroun
1d Remover",description:"Remove photo backgrounds with AI that runs entirely on your device.",icon:t.hWE,href:"/tools/background-remover",color:"retro-purple",featured:!0},{id:"metadata-remover",name:"Photo Metadata Remover",description:"Strip GPS location, camera info, and EXIF data from photos before sharing.",icon:t.KE5,href:"/tools/metadata-remover",color:"retro-green",featured:!0},{id:"video-silence-remover",name:"Video Silence Remover",description:"Detect silent pauses in a video and cut or fast-forward them, right in your browser.",icon:t.i5F,href:"/tools/video-silence-remover",color:"retro-teal",featured:!0},{id:"social-crop-preview",name:"Social Media Crop Preview",description:"Preview and download one image cropped for Instagram, TikTok, YouTube, X, and LinkedIn.",icon:t.Brl,href:"/tools/social-crop-preview",color:"retro-pink"},{id:"image-compressor",name:"Image Compressor",description:"Compress images client-side and export as JPG or WebP.",icon:t.H3h,href:"/tools/image-compressor",color:"retro-green"},{id:"image-resizer",name:"Image Resizer & Cropper",description:"Resize, crop, and set DPI for images in your browser.",icon:t.oqy,href:"/tools/image-resizer",color:"retro-teal"},{id:"jpg-to-png",name:"JPG to PNG Converter",description:"Convert JPG images to PNG format without uploading to a server.",icon:t.sYB,href:"/tools/jpg-to-png",color:"retro-blue"},{id:"png-to-jpg",name:"PNG to JPG Converter",description:"Convert PNG images to JPG format with adjustable quality settings.",icon:t.sYB,href:"/tools/png-to-jpg",color:"retro-blue"},{id:"heic-to-jpg",name:"HEIC to JPG Converter",description:"Convert HEIC images from iPhone to JPG directly in the browser.",icon:t.H3h,href:"/tools/heic-to-jpg",color:"retro-purple"},{id:"ico-generator",name:"Favicon Generator",description:"Create multi-size ICO and PNG favicon packages from an image.",icon:t.QJe,href:"/tools/ico-generator",color:"retro-yellow"},{id:"gif-mp4-converter",name:"MP4 to GIF Converter",description:"Convert MP4 clips to animated GIFs in-browser.",icon:t.rHK,href:"/tools/gif-mp4-converter",color:"retro-orange"},{id:"meme-generator",name:"Meme Generator",description:"Add top and bottom text to images to create memes quickly.",icon:t.Dl3,href:"/tools/meme-generator",color:"retro-pink"},{id:"webp-converter",name:"WebP Converter",description:"Convert images to and from WebP format.",icon:t.qau,href:"/tools/webp-converter",color:"retro-green"},{id:"svg-to-png",name:"SVG to PNG Converter",description:"Convert SVG vector graphics to PNG with custom dimensions.",icon:t.sYB,href:"/tools/svg-to-png",color:"retro-pink"},{id:"image-color-picker",name:"Image Color Picker",description:"Extract colors from any uploaded image and get their hex or RGB values.",icon:t.SaA,href:"/tools/image-color-picker",color:"retro-red"},{id:"exif-reader",name:"EXIF Data Reader",description:"View detailed image metadata including camera settings and location.",icon:t.Dmm,href:"/tools/exif-reader",color:"retro-blue"},{id:"image-watermark",name:"Image Watermark Adder",description:"Add a text or logo watermark to photos — position, tile, rotate, and set opacity.",icon:t.eNt,href:"/tools/image-watermark",color:"retro-purple"},{id:"image-blur",name:"Blur / Pixelate Regions",description:"Blur, pixelate, or black out faces and sensitive info in screenshots and photos.",icon:t.tgn,href:"/tools/image-blur",color:"retro-blue"},{id:"bulk-image-resizer",name:"Bulk Image Resizer & Renamer",description:"Resize, convert, and rename many images at once and download them as a zip.",icon:t.Jh6,href:"/tools/bulk-image-resizer",color:"retro-teal"},{id:"image-to-base64",name:"Image ↔ Base64 Converter",description:"Convert images to Base64 data URLs for HTML/CSS, or decode Base64 back to an image.",icon:t.qau,href:"/tools/image-to-base64",color:"retro-green"},{id:"gif-frame-extractor",name:"GIF Frame Extractor",description:"Split an animated GIF into individual PNG frames and download them as a zip.",icon:t.rHK,href:"/tools/gif-frame-extractor",color:"retro-pink"},{id:"video-trimmer",name:"Video Trimmer",description:"Cut the start and end off a video and export a clean WebM, right in y
1our browser.",icon:t.i5F,href:"/tools/video-trimmer",color:"retro-orange"},{id:"audio-trimmer",name:"Audio Trimmer & Silence Remover",description:"Trim audio files and automatically cut silent gaps on a waveform.",icon:t.HcQ,href:"/tools/audio-trimmer",color:"retro-teal"}]},{id:"productivity",name:"Productivity Tools",shortName:"Productivity",description:"Plan, focus, organize, and get everyday work done.",tools:[{id:"fake-os-loading",name:"Fake OS Loading Screens",description:"Generate realistic Windows, Mac, or terminal loading screens.",icon:t.lMi,href:"/tools/fake-os-loading",color:"retro-blue"},{id:"fake-text-message",name:"Fake Text Message Generator",description:"Create customizable iPhone and Android text message screenshots.",icon:t.DCG,href:"/tools/fake-text-message",color:"retro-green"},{id:"unit-converter",name:"Unit Converter",description:"Convert length, weight, temperature, and more between units.",icon:t.pno,href:"/tools/unit-converter",color:"retro-teal"},{id:"time-zone-converter",name:"Time Zone Converter",description:"Plan meetings across time zones with an interactive scheduler.",icon:t.ssk,href:"/tools/time-zone-converter",color:"retro-blue"},{id:"date-calculator",name:"Date Calculator & Unix Timestamp Converter",description:"Convert Unix timestamps, adjust dates, and calculate elapsed differences.",icon:t.IiJ,href:"/tools/date-calculator",color:"retro-purple"},{id:"password-generator",name:"Password Generator",description:"Generate strong passwords with custom options and a strength meter.",icon:t.kUi,href:"/tools/password-generator",color:"retro-red"},{id:"pomodoro-timer",name:"Pomodoro Timer",description:"Boost productivity with timed work sessions and breaks.",icon:t.DdE,href:"/tools/pomodoro-timer",color:"retro-red"},{id:"kanban-board",name:"Kanban Board",description:"Organize and track tasks with a drag-and-drop Kanban board.",icon:t.W95,href:"/tools/kanban-board",color:"retro-blue"},{id:"markdown-notes",name:"Markdown Notes",description:"Create and organize notes with Markdown formatting.",icon:t.fmQ,href:"/tools/markdown-notes",color:"retro-green"},{id:"typing-test",name:"Typing Speed Test",description:"Measure your typing speed, accuracy, and mistakes in real time.",icon:t.A0H,href:"/tools/typing-test",color:"retro-green"},{id:"countdown-timer",name:"Countdown Timer",description:"Set a timer with customizable alerts that runs in your browser.",icon:t.qyc,href:"/tools/countdown-timer",color:"retro-green"},{id:"stopwatch",name:"Stopwatch",description:"A precise stopwatch with lap functionality for timing events.",icon:t.Psn,href:"/tools/stopwatch",color:"retro-yellow"},{id:"keep-screen-awake",name:"Keep Screen Awake",description:"Prevent display sleep while the tool remains visible in your browser.",icon:t.Mei,href:"/tools/keep-screen-awake",color:"retro-yellow"},{id:"random-picker",name:"Random Picker / Spinner",description:"Pick a random item from a list or spin a wheel.",icon:t.zLx,href:"/tools/random-picker",color:"retro-orange"}]},{id:"developers",name:"Developer Tools",shortName:"Developers",description:"Format, encode, compare, and test development data.",tools:[{id:"diff-checker",name:"Text Diff Checker",description:"Compare two texts side by side and highlight differences.",icon:t.tvD,href:"/tools/diff-checker",color:"retro-yellow"},{id:"qr-scanner",name:"QR Code Scanner",description:"Scan QR codes using your device camera with no uploads.",icon:t.Qzy,href:"/tools/qr-scanner",color:"retro-teal"},{id:"base64-tool",name:"Base64 Encoder/Decoder",description:"Encode text to Base64 or decode Base64 back to text.",icon:t.qau,href:"/tools/base64-tool",color:"retro-blue"},{id:"url-encoder",name:"URL Encoder/Decoder",description:"Encode URLs for transmission or decode encoded URLs.",icon:t.gjK,href:"/tools/url-encoder",color:"retro-green"},{id:"utm-url-builder",name:"UTM URL Builder",description:"Build campaign tracking URLs while preserving existing query parameters.",icon:t.k4b,href:"/tools/utm-url-builder",color:"retro-purple"},{id:"json-formatter",name:"JSON Formatter & Validator",description:"Format, validate, and beautify JSON data.",icon:t.tvD,href:"/tools/json-formatter",color:"retro-pink"},{id:"qr-generator",name:"QR Code Generator",description:"Generate QR codes from text or URLs.",icon:t.Qzy,href:"/tools/qr-generator",color:"retro-yellow",featured:!0}
1,{id:"csv-to-json",name:"CSV to JSON Converter",description:"Convert CSV data to JSON with customizable options.",icon:t.WHV,href:"/tools/csv-to-json",color:"retro-yellow"},{id:"json-to-csv",name:"JSON to CSV Converter",description:"Convert JSON to CSV with nested fields and custom delimiters.",icon:t.WHV,href:"/tools/json-to-csv",color:"retro-green"},{id:"barcode-generator",name:"Barcode Generator",description:"Generate Code128, QR, and DataMatrix barcodes from text.",icon:t.jlz,href:"/tools/barcode-generator",color:"retro-purple"},{id:"file-corrupter",name:"File Corrupter",description:"Intentionally corrupt files for testing and QA.",icon:t.tvD,href:"/tools/file-corrupter",color:"retro-orange"},{id:"hash-generator",name:"Hash & UUID Generator",description:"Generate MD5, SHA-1, SHA-256, SHA-512 hashes from text or files, plus bulk UUID v4.",icon:t.WIW,href:"/tools/hash-generator",color:"retro-blue"},{id:"jwt-decoder",name:"JWT Decoder",description:"Paste a JSON Web Token and inspect its header, payload, and expiry times.",icon:t.q2z,href:"/tools/jwt-decoder",color:"retro-red"},{id:"cron-explainer",name:"Cron Expression Explainer",description:"Turn any cron schedule into plain English with the next five run times.",icon:t.qyc,href:"/tools/cron-explainer",color:"retro-orange"},{id:"regex-tester",name:"Regex Tester",description:"Test regular expressions with live match highlighting, groups, and replace preview.",icon:t.pKb,href:"/tools/regex-tester",color:"retro-teal"},{id:"css-html-minifier",name:"CSS & HTML Minifier / Beautifier",description:"Minify CSS and HTML to shrink file size, or beautify minified code.",icon:t.oxV,href:"/tools/css-html-minifier",color:"retro-green"},{id:"svg-optimizer",name:"SVG Optimizer",description:"Optimize and minify SVG markup with SVGO directly in your browser.",icon:t.dkN,href:"/tools/svg-optimizer",color:"retro-pink"},{id:"file-type-checker",name:"File Type Checker",description:"Identify likely file formats from signatures and compare their extensions.",icon:t.WIW,href:"/tools/file-type-checker",color:"retro-yellow"}]},{id:"design",name:"Design Tools",shortName:"Design",description:"Pick, test, and build better color systems.",tools:[{id:"color-picker",name:"Color Picker",description:"Select and copy hex, RGB, or HSL values.",icon:t.SaA,href:"/tools/color-picker",color:"retro-red"},{id:"contrast-checker",name:"Contrast Checker",description:"Analyze foreground and background contrast for accessibility.",icon:t.vfn,href:"/tools/contrast-checker",color:"retro-yellow"},{id:"color-palette-generator",name:"Color Palette Generator",description:"Generate harmonious color palettes for design projects.",icon:t.SaA,href:"/tools/color-palette-generator",color:"retro-pink"},{id:"og-image-generator",name:"OG Image Generator",description:"Design 1200\xd7630 social share cards with gradients, text, and your logo.",icon:t.PPi,href:"/tools/og-image-generator",color:"retro-purple"},{id:"aspect-ratio-calculator",name:"Aspect Ratio Calculator",description:"Simplify ratios and calculate proportional width or height dimensions.",icon:t.T_s,href:"/tools/aspect-ratio-calculator",color:"retro-teal"}]},{id:"pdf-tools",name:"PDF Tools",shortName:"PDFs",description:"Merge, extract, create, and convert PDF files.",tools:[{id:"pdf-compress",
1name:"Compress PDF",description:"Shrink PDF file size for email and uploads, right in your browser.",icon:t.Al0,href:"/tools/pdf-compress",color:"retro-red",featured:!0},{id:"pdf-merge",name:"Merge PDFs",description:"Combine multiple PDF files into a single document.",icon:t.yRW,href:"/tools/pdf-merge",color:"retro-orange"},{id:"pdf-split",name:"Split PDF",description:"Break a PDF into individual pages or custom page ranges.",icon:t.i5F,href:"/tools/pdf-split",color:"retro-teal"},{id:"pdf-unlock",name:"Unlock PDF",description:"Remove the password from a PDF you own, entirely in your browser.",icon:t.D5B,href:"/tools/pdf-unlock",color:"retro-yellow"},{id:"pdf-extract",name:"Extract Pages from PDF",description:"Create a new PDF from selected pages or ranges.",icon:t.yRW,href:"/tools/pdf-extract",color:"retro-green"},{id:"images-to-pdf",name:"Images to PDF Converter",description:"Convert multiple JPG or PNG images into one PDF.",icon:t.sYB,href:"/tools/pdf-images-to-pdf",color:"retro-blue"},{id:"text-to-pdf",name:"Text to PDF Converter",description:"Convert plain text into a formatted PDF document.",icon:t.mGS,href:"/tools/pdf-text-to-pdf",color:"retro-pink"},{id:"pdf-to-images",name:"PDF to Images Converter",description:"Convert PDF pages to PNG or JPG images.",icon:t.H3h,href:"/tools/pdf-to-images",color:"retro-teal"}]}],n=i.flatMap(e=>e.tools.map(o=>({...o,categoryId:e.id,categoryName:e.name}))),a=n.filter(e=>e.featured).slice(0,6);function getToolById(e){return n.find(o=>o.id===e)||null}function getCategoryHref(e){return"/tools?category=".concat(e)}function searchTools(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all",r=e.trim().toLowerCase();return n.filter(e=>{let t="all"===o||e.categoryId===o,i=!r||e.name.toLowerCase().includes(r)||e.description.toLowerCase().includes(r)||e.categoryName.toLowerCase().includes(r);return t&&i})}}}]);

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.