1var e=["audio/*",".mp3",".m4a",".wav",".aac",".flac",".ogg",".oga",".opus",".aiff",".caf"],o=["video/*",".mp4",".m4v",".mov",".webm",".mkv",".avi"],i=[".srt",".vtt"],r=[".md",".txt","text/markdown","text/plain"],a="colour",t=e=>e.join(","),n=[{id:"social-media",name:"Social Media",tools:[{id:"matte-genny",name:"Matte Generator",description:"Put non-square images on a square matte",icon:"square",href:"/tools/matte-genny",produces:["image/png"],accepts:["image/*"]},{id:"scroll-genny",name:"Seamless Scroll Generator",description:"Split images for Instagram carousel scrolls",icon:"gallery-vertical",href:"/tools/scroll-genny",produces:["image/png"],accepts:["image/*"]},{id:"social-cropper",name:"Social Media Cropper",description:"Crop images for Instagram, Bluesky & Threads",icon:"crop",href:"/tools/social-cropper",produces:["image/png"],accepts:["image/*"]},{id:"watermarker",name:"Watermarker",description:"Add watermarks to images",icon:"stamp",href:"/tools/watermarker",produces:["image/png"],accepts:["image/*"]}]},{id:"colour",name:"Colour",tools:[{id:"colour-atlas",name:"Colour Atlas",description:"Everything about one colour, on one page",icon:"swatch-book",href:"/tools/colour-atlas",atlas:!0,carryColour:!0,new:!0},{id:"colorblind-sim",name:"Colour Blindness Simulator",description:"Simulate how colours appear to colour blind users",icon:"eye",href:"/tools/colorblind-sim",accepts:["image/*"],carryColour:!0},{id:"colour-converter",name:"Colour Converter",description:"Convert between colour formats",icon:"pipette",href:"/tools/colour-converter",produces:[a],carryColour:!0},{id:"contrast-checker",name:"Contrast Checker",description:"Check WCAG colour contrast compliance",icon:"contrast",href:"/tools/contrast-checker",carryColour:!0},{id:"gradient-genny",name:"Gradient Generator",description:"Create linear, corner, and mesh gradients",icon:"blend",href:"/tools/gradient-genny",produces:["image/png"],carryColour:!0},{id:"harmony-genny",name:"Harmony Generator",description:"Generate colour harmonies",icon:"rainbow",href:"/tools/harmony-genny",carryColour:!0},{id:"palette-collection",name:"Palette Collection",description:"Browse curated colour palettes",icon:"library",href:"/tools/palette-collection"},{id:"palette-extractor",name:"Palette Extractor",description:"Extract colour palettes from images",icon:"palette",href:"/tools/palette-extractor",accepts:["image/*"]},{id:"palette-genny",name:"Palette Generator",description:"Generate beautiful colour palettes",icon:"pen-line",href:"/tools/palette-genny",produces:["image/png"]},{id:"pixel-picker",name:"Pixel Picker",description:"Sample colours from any image with a zoom loupe",icon:"crosshair",href:"/tools/pixel-picker",produces:[a],accepts:["image/*"]},{id:"tailwind-shades",name:"Tailwind Shade Generator",description:"Generate Tailwind colour scales",icon:"wind",href:"/tools/tailwind-shades",carryColour:!0}]},{id:"img-assets",name:"Images & Assets",tools:[{id:"image-atlas",name:"Image Atlas",description:"Everything about one image, on one page",icon:"image",href:"/tools/image-atlas",atlas:!0,accepts:["image/*"],new:!0,beta:!0},{id:"substrata",name:"Substrata",description:"Edit, arrange and mark up images in the browser",icon:"brush",href:"/editor",route:"editor",accepts:["image/*"],beta:!0,highlight:!0},{id:"artwork-enhancer",name:"Artwork Enhancer",description:"Add colour noise overlay to artwork",icon:"sparkles",href:"/tools/artwork-enhancer",produces:["image/png"],accepts:["image/*"]},{id:"background-remover",name:"Background Remover",description:"Remove backgrounds from images automatically",icon:"eraser",href:"/tools/background-remover",produces:["image/png"],accepts:["image/*"],beta:!0},{id:"favicon-genny",name:"Favicon Generator",description:"Generate favicons from any image",icon:"image",href:"/tools/favicon-genny",produces:["image/png","image/x-icon","application/zip"],accepts:["image/*"]},{id:"image-clipper",name:"Image Clipper",description:"Trim transparent edges from PNGs to the smallest dimensions",icon:"crop",href:"/tools/image-clipper",produces:["image/png"],accepts:[".png"]},{id:"image-compressor",name:"Image Compressor",description:"Shrink JPEG, WebP, PNG and AVIF files",icon:"shrink",href:"/tools/image-compressor",produces:["image/webp","image/jpeg","image/png","image/avif"],accepts:["image/*"],new:!0},{id:"image-converter",name:"Image Converter",description:"Convert between PNG, JPEG, WebP, JXL, GIF, BMP, TIFF, ICO, ICNS with resize and format options",icon:"refresh-cw",href:"/tools/image-converter",produces:["image/png","image/jpeg","image/webp","image/gif","
1image/tiff","image/x-icon","application/zip"],accepts:["image/*",".jxl"]},{id:"image-deskewer",name:"Image De-skewer",description:"Straighten an image by the corners",icon:"vector-square",href:"/tools/image-deskewer",produces:["image/png"],accepts:["image/*"],new:!0},{id:"image-masker",name:"Image Masker",description:"Cut images into shapes",icon:"shapes",href:"/tools/image-masker",produces:["image/png"],accepts:["image/*"],new:!0},{id:"image-splitter",name:"Image Splitter",description:"Split images into tiles",icon:"scissors",href:"/tools/image-splitter",produces:["image/png"],accepts:["image/*"]},{id:"image-stitcher",name:"Image Stitcher",description:"Combine multiple images into one",icon:"combine",href:"/tools/image-stitcher",produces:["image/png","image/jpeg","image/webp","image/jxl"],accepts:["image/*"]},{id:"image-tracer",name:"Image Tracer",description:"Trace raster images to SVG vectors",icon:"scan-line",href:"/tools/image-tracer",produces:["image/svg+xml"],accepts:["image/*"]},{id:"metadata-stripper",name:"Metadata Stripper",description:"Strip EXIF and GPS metadata from images",icon:"shield-check",href:"/tools/metadata-stripper",produces:["image/jpeg","image/png","image/webp","image/gif"],accepts:["image/*"],new:!0},{id:"paste-image",name:"Paste Image",description:"Paste and download an image from your clipboard",icon:"clipboard-paste",href:"/tools/paste-image",produces:["image/png"],accepts:["image/*"]},{id:"placeholder-genny",name:"Placeholder Generator",description:"Generate placeholder images",icon:"layout-grid",href:"/tools/placeholder-genny",produces:["image/png","image/svg+xml"]},{id:"svg-optimiser",name:"SVG Optimiser",description:"Optimise and minify SVG files",icon:"file-image",href:"/tools/svg-optimiser",produces:["image/svg+xml"],accepts:[".svg"]},{id:"base64-image-encoder",name:"Base64 Image Encoder",description:"Convert images to Base64 strings for CSS/HTML embedding",icon:"file-code",href:"/tools/base64-image-encoder",accepts:["image/*"]}]},{id:"audio-video",name:"Audio & Video",tools:[{id:"audio-atlas",name:"Audio Atlas",description:"Everything about one audio file, on one page",icon:"audio-lines",href:"/tools/audio-atlas",atlas:!0,accepts:e,new:!0},{id:"video-atlas",name:"Video Atlas",description:"Everything about one video file",icon:"clapperboard",href:"/tools/video-atlas",atlas:!0,accepts:o,new:!0},{id:"audio-extractor",name:"Audio Extractor",description:"Extract the audio out of a video file",icon:"file-audio",href:"/tools/audio-extractor",produces:["audio/wav","audio/mp4","audio/ogg","audio/flac"],accepts:o,new:!0},{id:"audio-normaliser",name:"Audio Normaliser",description:"Normalise audio loudness",icon:"gauge",href:"/tools/audio-normaliser",produces:["audio/wav"],accepts:e,new:!0},{id:"audio-trimmer",name:"Audio Trimmer",description:"Cut and fade audio, export as WAV",icon:"scissors",href:"/tools/audio-trimmer",produces:["audio/wav"],accepts:e,new:!0},{id:"auto-subtitle",name:"Auto Subtitle",description:"Transcribe audio and video to subtitles",icon:"captions",href:"/tools/auto-subtitle",produces:[".srt",".vtt"],accepts:[...e,...o],new:!0},{id:"frame-extractor",name:"Frame Extractor",description:"Grab stills and contact sheets from video",icon:"film",href:"/tools/frame-extractor",produces:["image/png","application/zip"],accepts:o,new:!0},{id:"screen-recorder",name:"Screen Recorder",description:"Record your screen with optional tab audio (supported browsers only) and microphone audio",icon:"monitor-up",href:"/tools/screen-recorder",produces:["video/webm"],new:!0},{id:"subtitle-converter",name:"Subtitle Converter",description:"Convert, shift and rescale SRT and VTT subtitles",icon:"captions",href:"/tools/subtitle-converter",produces:[".srt",".vtt"],accepts:i,new:!0},{id:"subtitle-studio",name:"Subtitle Studio",description:"Burn subtitles to video",icon:"subtitles",href:"/tools/subtitle-studio",produces:["video/webm"],accepts:[...o,...i],new:!0},{id:"timecode-calc",name:"Timecode Calculator",description:"Add and subtract timecodes, drop-frame aware",icon:"clock",href:"/tools/timecode-calc",new:!0},{id:"video-muter",name:"Video Muter",description:"Strip the audio from a video",icon:"volume-x",href:"/tools/video-muter",produces:["video/mp4","video/webm"],accepts:o,new:!0},{id:"video-to-gif",name:"Video to GIF",description:"Turn video clips into looping GIFs",icon:"clapperboard",href:"/tools/video-to-gif",produces:["image/gif"],accepts:o,new:!0},{id:"video-trimmer",name:"Video Trimmer",description:"Cut a video in/out style",icon:"scissors",href:"/tools/video-trimmer",produces:["video/mp4","video/webm"],accepts:o,new:!0},{id:"voice-recorder",name:"Voice Recorder",description:"Record voice memos in the browser",icon:"mic",href:"/tools/voice-recorder",produces:["audio/webm"],new:!0},{id:"waveform-genny",name:"Waveform Generator",description:"Render audio waveforms as PNG or SVG",icon:"audio-waveform",href:"/tools/waveform-genny",produces:["image/png","image/svg+xml"],accepts:e,new:!0}]},{id:"typo-text",name:"Typography & Text",tools:[{id:"doc-converter",name:"Document Converter",description:"Convert documents between Markdown, HTML, Word, LaTeX, EPUB and more",icon:"file-type-2",href:"/tools/doc-converter",produces:[".md",".html",".docx",".epub",".txt"],accepts:[".md",".html",".docx",".tex",".epub"]},{id:"text-editor",name:"Text Editor",description:"Distraction-free Markdown writer",icon:"pen-line",href:"/tools/text-editor",accepts:r},{id:"font-explorer",name:"Font File Explorer",description:"Explore font file contents",icon:"file-type",href:"/tools/font-explorer",accepts:[".ttf",".otf",".woff",".woff2"]},{id:"glyph-browser",name:"Glyph Browser",description:"Browse unicode glyphs",icon:"type",href:"/tools/glyph-browser"},{id:"large-type",name:"Large Type",description:"Text, but big",icon:"case-upper",href:"/tools/large-type",wide:!0},{id:"line-height-calc",name:"Line Height Calculator",description:"Calculate optimal line heights",icon:"type",href:"/tools/line-height-calc"},{id:"paper-sizes",name:"Paper Sizes",description:"Reference for paper dimensions",icon:"file-text",href:"/tools/paper-sizes"},{id:"px-to-rem",name:"PX to REM",description:"Convert pixels to rem units",icon:"ruler",href:"/tools/px-to-rem"},{id:"text-diff",name:"Text Diff",description:"Compare two texts and highlight differences",icon:"git-compare",href:"/tools/text-diff",accepts:["text/*",".txt",".md"]},{id:"typo-calc",name:"Typography Calculator",description:"Convert between typographic units",icon:"hash",href:"/tools/typo-calc"}
1,{id:"word-counter",name:"Word Counter",description:"Count words, characters and more",icon:"book-open",href:"/tools/word-counter"}]},{id:"pdf",name:"PDF",tools:[{id:"pdf-preflight",name:"PDF Preflight",description:"Analyse PDFs for print-readiness issues",icon:"file-search",href:"/tools/pdf-preflight",accepts:[".pdf"]},{id:"pdf-organiser",name:"PDF Organiser",description:"Merge, split and rearrange PDF pages",icon:"file-stack",href:"/tools/pdf-organiser",produces:["application/pdf","application/zip"],accepts:[".pdf"]},{id:"image-to-pdf",name:"Images to PDF",description:"Turn images into a PDF, or pages into PNGs",icon:"file-image",href:"/tools/image-to-pdf",produces:["application/pdf","image/png","application/zip"],accepts:["image/*",".pdf"]},{id:"pdf-rotate-crop",name:"PDF Rotate & Crop",description:"Rotate or crop pages or entire documents",icon:"crop",href:"/tools/pdf-rotate-crop",produces:["application/pdf"],accepts:[".pdf"]},{id:"pdf-page-numberer",name:"PDF Page Numbers",description:"Add page numbers or stamps to documents",icon:"file-digit",href:"/tools/pdf-page-numberer",produces:["application/pdf"],accepts:[".pdf"]},{id:"pdf-compressor",name:"PDF Compressor",description:"Shrink PDF filesizes",icon:"shrink",href:"/tools/pdf-compressor",produces:["application/pdf"],accepts:[".pdf"]}]},{id:"print-production",name:"Print & Production",tools:[{id:"imposer",name:"Print Imposer",description:"Impose PDF pages for booklet, saddle-stitch, and N-up printing",icon:"layers",href:"/tools/imposer",produces:["application/pdf"],accepts:[".pdf"]},{id:"zine-imposer",name:"Zine Imposer",description:"Impose single-sheet zines: 8-page mini-zine and accordion folds",icon:"book-open",href:"/tools/zine-imposer",produces:["application/pdf"],accepts:[".pdf"]}]},{id:"dev-tools",name:"Dev Tools",tools:[{id:"cron-builder",name:"Cron Builder",description:"Build a cron expression field by field or decode one",icon:"calendar-clock",href:"/tools/cron-builder",new:!0},{id:"http-status",name:"HTTP Status",description:"Search HTTP status codes with phrases and spec references",icon:"server",href:"/tools/http-status",new:!0},{id:"json-formatter",name:"JSON Formatter",description:"Format or minify JSON or look at it",icon:"braces",href:"/tools/json-formatter",produces:["application/json"],new:!0,accepts:[".json"]},{id:"jwt-decoder",name:"JWT Decoder",description:"Decode a JWT's header, payload & claims",icon:"key-square",href:"/tools/jwt-decoder",new:!0},{id:"meta-tag-genny",name:"Meta Tag Generator",description:"Generate HTML meta tags",icon:"tag",href:"/tools/meta-tag-genny"},{id:"regex-tester",name:"Regex Tester",description:"Test regular expressions",icon:"regex",href:"/tools/regex-tester"},{id:"request-builder",name:"Request Builder",description:"Compose a cURL or HTTP request",icon:"terminal",href:"/tools/request-builder",new:!0},{id:"tailwind-cheatsheet",name:"Tailwind Cheat Sheet",description:"Quick reference for Tailwind classes",icon:"book-open",href:"/tools/tailwind-cheatsheet"},{id:"uuid-genny",name:"UUID Generator",description:"Generate bulk UUID v4 or v7 and Nano IDs",icon:"fingerprint",href:"/tools/uuid-genny",new:!0}]},{id:"other-tools",name:"Other Tools",tools:[{id:"code-genny",name:"Barcode Generator",description:"Generate Data Matrix, Aztec, PDF417, Code 128, EAN-13, and more",icon:"barcode",href:"/tools/code-genny",produces:["image/png","application/zip"]},{id:"decoder",name:"Cipher Decoder",description:"Decode classical ciphers manually or auto-detect the cipher",icon:"key-round",href:"/tools/decoder"},{id:"password-genny",name:"Password Generator",description:"Generate strong passwords or multi-word passphrases",icon:"key-square",href:"/tools/password-genny",new:!0},{id:"qr-genny",name:"QR Generator",description:"Generate styled QR codes with custom colors, shapes, and logos",icon:"qr-code",href:"/tools/qr-genny",produces:["image/png","image/svg+xml","application/zip"]},{id:"markdown-writer",name:"Text Scratchpad",description:"Text editor with manipulation tools",icon:"pen-line",href:"/tools/markdown-writer",produces:["text/plain"],accepts:r}]},{id:"calculators",name:"Calculators",tools:[{id:"algebra-calc",name:"Algebra Calculator",description:"Symbolic algebra: simplify, factor, solve, derivatives",icon:"variable",href:"/tools/algebra-calc"},{id:"base-converter",name:"Base Converter",description:"Convert between decimal, hex, binary, and octal",icon:"binary",href:"/tools/base-converter"},{id:"encoder",name:"Encoding Tools",description:"Base64, URL encoding, and hash generation",icon:"file-code",href:"/tools/encoder"},{id:"graph-calc",name:"Graph Calculator",description:"Plot and visualise mathematical functions",icon:"line-chart",href:"/tools/graph-calc"},{id:"sci-calc",name:"Scientific Calculator",description:"Full-featured scientific calculator with history",icon:"calculator",href:"/tools/sci-calc"},{id:"time-calc",name:"Time Calculator",description:"Unix timestamps, date arithmetic, timezone conversion",icon:"clock",href:"/tools/time-calc"},{id:"unit-converter",name:"Unit Converter",description:"Convert between units of length, weight, data, and more",icon:"scale",href:"/tools/unit-converter"}]},{id:"turbo-nerd",name:"Turbo-nerd Shit",tools:[{id:"shavian-transliterator",name:"Shavian Transliterator",description:"Transliterate English text to the Shavian alphabet",icon:"languages",href:"/tools/shavian-transliterator",produces:["image/png"]},{id:"morse-code",name:"Morse Code",description:"Encode, decode and play Morse code",icon:"radio",href:"/tools/morse-code",produces:["text/plain"],new:!0},{id:"braille-converter",name:"Braille Converter",description:"Turn text into Braille cells",icon:"grip-vertical",href:"/tools/braille-converter",produces:["text/plain"],new:!0}
1,{id:"ipa-transcriber",name:"IPA Transcription",description:"Transcribe English text into IPA",icon:"ear",href:"/tools/ipa-transcriber",produces:["text/plain"],new:!0},{id:"nato-phonetic",name:"NATO Phonetic",description:"Translate text to NATO or DIN-5009 calls",icon:"radio-tower",href:"/tools/nato-phonetic",produces:["text/plain"],new:!0}]},{id:"elsewhere",name:"Elsewhere",tools:[{id:"ios-app",name:"delphitools for iOS",description:"Built natively for iPhone and iPad. No accounts, no tracking, no compromises.",icon:"smartphone",href:"https://apps.apple.com/us/app/delphitools/id6761313703",external:!0},{id:"cli",name:"delphitools CLI",description:"The same tools, in your shell. Entirely offline.",icon:"square-terminal",href:"https://github.com/1612elphi/delphitools-cli",external:!0}]},{id:"experiments",name:"Alien Delphi's Experiments",tools:[{id:"stupid-units",name:"Stupid Units",description:"Convert between bananas, Waleses and Warhols",icon:"banana",href:"/tools/stupid-units"},{id:"recipe-table",name:"Recipe Table",description:"Write a recipe as a Cooking for Engineers table",icon:"chef-hat",href:"/tools/recipe-table",wide:!0}]}],s="experiments",c=n.find(e=>e.id===s),d=n.filter(e=>e!==c),p=n.flatMap(e=>e.tools),l=["substrata","qr-genny","auto-subtitle","background-remover"].map(e=>p.find(o=>o.id===e)).filter(e=>void 0!==e),m=[...l.filter(e=>e.highlight),{id:"workflows",name:"Workflows",description:"Execute multi-tool procedures",icon:"workflow",href:"/workflows",route:"workflows",highlight:!0},{id:"experiments",name:"Alien Delphi's Experiments",description:"Unfinished tool sketches",icon:"flask-conical",href:"/experiments",route:"experiments"},...l.filter(e=>!e.highlight)];function g(e){return p.find(o=>o.id===e)}function u(e){return n.find(o=>o.tools.some(o=>o.id===e))}export{r as a,p as c,u as d,g as f,n as h,i,c as l,m,a as n,o,d as p,s as r,t as s,e as t,l as u};
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.