PageSourceSearch

https://yuhi-sa.github.io/devtoolbox/_next/static/chunks/6564.f2b3228447e80291.js

js yuhi-sa.github.io collected 2026-10-03 10:14:53 UTC 3,398 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6564],{6564:(e,a,t)=>{t.r(a),t.d(a,{default:()=>d});var r=t(4568),s=t(7620);let l="abcdefghijklmnopqrstuvwxyz",n="0123456789";var c=t(6972);function d(){let[e,a]=(0,s.useState)({length:16,uppercase:!0,lowercase:!0,numbers:!0,symbols:!0}),[t,d]=(0,s.useState)(""),[o,i]=(0,s.useState)({score:0,label:""}),g=(0,s.useCallback)(()=>{let a,t=function(e){let a="";e.uppercase&&(a+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),e.lowercase&&(a+=l),e.numbers&&(a+=n),e.symbols&&(a+="!@#$%^&*()-_=+[]{}|;:,.<>?"),0===a.length&&(a=l+n);let t=new Uint32Array(e.length);return crypto.getRandomValues(t),Array.from(t).map(e=>a[e%a.length]).join("")}(e);d(t),i((a=0,t.length>=8&&a++,t.length>=12&&a++,t.length>=16&&a++,/[a-z]/.test(t)&&/[A-Z]/.test(t)&&a++,/\d/.test(t)&&a++,/[^a-zA-Z0-9]/.test(t)&&a++,{score:Math.min(a,5),label:["Very Weak","Weak","Fair","Good","Strong","Very Strong"][Math.min(a,5)]}))},[e]);return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[(0,r.jsxs)("div",{className:"col-span-2 md:col-span-4",children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-1 text-gray-700 dark:text-gray-300",children:["Length: ",e.length]}),(0,r.jsx)("input",{type:"range",min:4,max:64,value:e.length,onChange:t=>a({...e,length:Number(t.target.value)}),className:"w-full"})]}),[["uppercase","A-Z"],["lowercase","a-z"],["numbers","0-9"],["symbols","!@#"]].map(t=>{let[s,l]=t;return(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300",children:[(0,r.jsx)("input",{type:"checkbox",checked:e[s],onChange:t=>a({...e,[s]:t.target.checked}),className:"rounded"}),l]},s)})]}),(0,r.jsx)("button",{onClick:g,className:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition",children:"Generate Password"}),t&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{readOnly:!0,value:t,className:"flex-1 p-3 font-mono text-lg border rounded-lg bg-gray-50 dark:bg-gray-900 dark:border-gray-600"}),(0,r.jsx)(c.A,{text:t})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"flex-1 h-2 bg-gray-200 dark:bg-gray-700 rounded overflow-hidden",children:(0,r.jsx)("div",{className:"h-full transition-all ".concat(["bg-red-500","bg-orange-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500"][o.score]),style:{width:"".concat(o.score/5*100,"%")}})}),(0,r.jsx)("span",{className:"text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap",children:o.label})]})]})]})}},6972:(e,a,t)=>{t.d(a,{A:()=>n});var r=t(4568),s=t(7620);async function l(e){try{return await navigator.clipboard.writeText(e),!0}catch(t){let a=document.createElement("textarea");a.value=e,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();try{return document.execCommand("copy"),!0}catch(e){return!1}finally{document.body.removeChild(a)}}}function n(e){let{text:a,label:t="Copy"}=e,[n,c]=(0,s.useState)(!1),d=async()=>{await l(a)&&(c(!0),setTimeout(()=>c(!1),2e3))};return(0,r.jsx)("button",{onClick:d,disabled:!a,className:"px-3 py-1 text-sm border rounded hover:bg-gray-100 dark:hover:bg-gray-700 dark:border-gray-600 transition disabled:opacity-50",children:n?"Copied!":t})}}}]);

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.