PageSourceSearch

https://www.earonman.com/_next/static/chunks/32352-c193814dd7f13f31.js

js earonman.com collected 2026-10-02 00:31:32 UTC 19,871 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[32352],{54294:(e,t,n)=>{n.d(t,{U0:()=>i,Ve:()=>f,mx:()=>s});var l=n(95155),r=n(12115),o=n(56114);let a={bass:["G/4","F/4","E/4","D/4","C/4","B/3","A/3","G/3","F/3","E/3","D/3","C/3","B/2","A/2","G/2","F/2","E/2","D/2","C/2","B/1","A/1","G/1"],treble:["B/5","A/5","G/5","F/5","E/5","D/5","C/5","B/4","A/4","G/4","F/4","E/4","D/4","C/4","B/3","A/3","G/3","F/3","E/3"]},i=220,s=300,u=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]},c=e=>{var t,n,l,r;let o=e.slice(1);if(!o)return null;let a=o.match(/#{1,3}/);if(a)return"#".repeat(null!==(n=null===(t=a[0])||void 0===t?void 0:t.length)&&void 0!==n?n:0);let i=o.match(/[bB]{1,3}/);return i?"b".repeat(null!==(r=null===(l=i[0])||void 0===l?void 0:l.length)&&void 0!==r?r:0):null},d=e=>{let[t,n]=e.split("/");return"".concat(t).concat(n)},f=r.memo(e=>{let{selectedNote:t,onNoteSelect:n,allowMultiple:s=!1,onClear:f,readOnly:b=!1,overlayNotes:m,overlayColor:p="#10B981",useExternalTouchHandling:v=!1,onAccidentalChange:h,helpText:g}=e,x=(0,r.useRef)(null),[y,w]=(0,r.useState)(null),[E,C]=(0,r.useState)(""),[N,k]=(0,r.useState)("treble"),S=(0,r.useRef)(!1),B=(0,r.useRef)(!1),[M,T]=(0,r.useState)(null),[A,_]=(0,r.useState)(null),D=(0,r.useRef)(0),L=(0,r.useRef)(null),j=e=>{if(!e||"string"!=typeof e)return null;let t=e.split("/");if(2!==t.length)return null;let[n,l]=t;if(void 0===n||void 0===l||(n=n.trim(),l=l.trim(),!n||!l))return null;let r=n.match(/^([A-Ga-g])([#bB]{0,3})$/);if(!r)return null;let[,o,a]=r,i=(null!=a?a:"").replace(/B/g,"b"),s=Number.parseInt(l,10);return Number.isNaN(s)||s<0||s>8?null:"".concat(o.toUpperCase()).concat(i,"/").concat(l)},V=(0,r.useMemo)(()=>t.map(e=>{let t=j(e);if(!t)return null;let n=parseInt(t.split("/")[1]);return{note:t,clef:n>=4?"treble":"bass"}}).filter(e=>null!==e),[t]),I=(0,r.useMemo)(()=>m&&0!==m.length?m.map(e=>{let t=j(e);if(!t)return null;let n=parseInt(t.split("/")[1]);return{note:t,clef:n>=4?"treble":"bass"}}).filter(e=>null!==e):null,[m]),R=e=>e<150?"treble":"bass",F=(e,t)=>{let n=R(t),l=t-("treble"===n?0:150),r=a[n],o=Math.min(Math.max(0,Math.round(l/150*(r.length-1))),r.length-1),i=r[o];if(E&&i){let[e,t]=i.split("/"),n=e[0];return"".concat(n).concat(E,"/").concat(t).toUpperCase()}return i};(0,r.useEffect)(()=>{if(!x.current)return;let e=x.current;e.innerHTML="";let t=new o.Renderer(e,o.Renderer.Backends.SVG);t.resize(i,300);let l=t.getContext(),r=new o.Stave(20,0,180);r.addClef("treble").setEndBarType(3).setContext(l).draw();let a=new o.Stave(20,150,180);if(a.addClef("bass").setEndBarType(3).setContext(l).draw(),V.length>0){let e=V.filter(e=>"treble"===e.clef).map(e=>e.note),t=V.filter(e=>"bass"===e.clef).map(e=>e.note);if(e.length>0){let t=new o.StaveNote({keys:e.map(e=>{let[t,n]=e.split("/"),l=t.replace(/B/g,"b").toLowerCase();return"".concat(l,"/").concat(n)}),duration:"q",clef:"treble"});e.forEach((e,n)=>{let[l]=e.split("/"),r=c(l);r&&t.addModifier(new o.Accidental(r),n)}),"treble"===V[0].clef&&t.setStyle({fillStyle:"red"});let n=new o.Voice({num_beats:1,beat_value:4});n.setStrict(!1),n.addTickables([t]),new o.Formatter().joinVoices([n]).format([n],130),n.draw(l,r)}if(t.length>0){let e=new o.StaveNote({keys:t.map(e=>{let[t,n]=e.split("/"),l=t.replace(/B/g,"b").toLowerCase();return"".concat(l,"/").concat(n)}),duration:"q",clef:"bass"});t.forEach((t,n)=>{let[l]=t.split("/"),r=c(l);r&&e.addModifier(new o.Accidental(r),n)}),"bass"===V[0].clef&&e.setStyle({fillStyle:"red"});let n=new o.Voice({num_beats:1,beat_value:4});n.setStrict(!1),n.addTickables([e]),new o.Formatter().joinVoices([n]).format([n],130),n.draw(l,a)}}if(y){let e=j(y);if(e){let t="treble"===N?r:a,n=new o.StaveNote({keys:[e].map(e=>{let[t,n]=e.split("/"),l=t.replace("B","b").toLowerCase();return"".concat(l,"/").concat(n)}),duration:"q",clef:N}).setStyle({fillStyle:"rgba(0, 0, 255, 0.3)"}),[i]=e.split("/"),s=c(i);s&&n.addModifier(new o.Accidental(s));let u=new o.Voice({num_beats:1,beat_value:4});u.setStrict(!1),u.addTickables([n]),new o.Formatter().joinVoices([u]).format([u],130),u.draw(l,t)}}if(I&&I.length>0){let e=I.filter(e=>"treble"===e.clef).map(e=>e.note),t=I.filter(e=>"bass"===e.clef).map(e=>e.note);if(e.length>0){let t=new o.StaveNote({keys:e.map(e=>{let[t,n]=e.split("/"),l=t.replace(/B/g,"b").toLowerCase();return"".concat(l,"/").concat(n)}),duration:"q",clef:"treble"}).setStyle({fillStyle:p});e.forEach((e,n)=>{let[l]=e.split("/"),r=c(l);r&&t.addModifier(new o.Accidental(r),n)});let n=new o.Voice({num_beats:1,beat_value:4});n.setStrict(!1),n.addTickables([t]),new o.Formatter().joinVoices([n]).format([n],130),n.draw(l,r)}if(t.length>0){let e=new o.StaveNote({keys:t.map(e=>{let[t,n]=e.split("/"),l=t.replace(/B/g,"b").toLowerCase();return"".concat(l,"/").concat(n)}),duration:"q",clef:"bass"}).setStyle({fillStyle:p});t.forEach((t,n)=>{let[l]=t.split("/"),r=c(l);r&&e.addModifier(new o.Accidental(r),n)});let n=new o.Voice({num_beats:1,beat_value:4});n.setStrict(!1),n.addTickables([e]),new o.Formatter().joinVoices([n]).format([n],130),n.draw(l,a)}}let s=e.querySelector("svg");if(s&&!b){s.style.cursor="pointer",s.style.touchAction="none",s.style.pointerEvents="auto";let e=e=>{let t=s.getBoundingClientRect(),n=e.clientX-t.left,l=e.clientY-t.top;k(R(l));let r=j(F(n,l));r&&r!==y&&w(r)},t=()=>w(null),l=e=>{let t=s.getBoundingClientRect(),l=j(F(e.clientX-t.left,e.clientY-t.top));l&&n(l)}
1,r=e=>{if("touch"===e.pointerType)return;S.current=!0;let t=s.getBoundingClientRect(),l=j(F(e.clientX-t.left,e.clientY-t.top));l&&n(l)},o=e=>{if(!S.current)return;let t=s.getBoundingClientRect(),n=e.clientX-t.left,l=e.clientY-t.top;k(R(l));let r=j(F(n,l));r&&r!==y&&w(r)},a=()=>{S.current=!1};return s.addEventListener("mousemove",e),s.addEventListener("mouseleave",t),s.addEventListener("click",l),s.addEventListener("pointerdown",r),s.addEventListener("pointermove",o),s.addEventListener("pointerup",a),()=>{s.removeEventListener("mousemove",e),s.removeEventListener("mouseleave",t),s.removeEventListener("click",l),s.removeEventListener("pointerdown",r),s.removeEventListener("pointermove",o),s.removeEventListener("pointerup",a)}}},[V,s,y,E,N,b,I,p]),(0,r.useEffect)(()=>{if(v)return;let e=x.current;if(!e||b)return;let t=t=>{t.preventDefault(),u("\uD83D\uDFE2 Touch start"),B.current=!0,D.current=Date.now();let n=t.touches[0];if(!n)return;_({x:n.clientX+20,y:n.clientY-40});let l=e.querySelector("svg");if(!l)return;let r=l.getBoundingClientRect(),o=j(F(n.clientX-r.left,n.clientY-r.top));o&&(L.current=o,T(o),u("\uD83C\uDFB5 Initial note:",o))},l=t=>{if(!B.current){u("❌ Touch move but not dragging");return}t.preventDefault();let n=t.touches[0];if(!n)return;u("\uD83D\uDD04 Touch moving:",{x:n.clientX,y:n.clientY}),_({x:n.clientX+20,y:n.clientY-40});let l=e.querySelector("svg");if(!l)return;let r=l.getBoundingClientRect(),o=j(F(n.clientX-r.left,n.clientY-r.top));o&&o!==L.current&&(L.current=o,T(o),u("\uD83C\uDFB5 Note changed to:",o))},r=e=>{e.preventDefault(),u("\uD83D\uDD34 Touch end");let t=Date.now()-D.current,l=L.current;u("Touch stats:",{duration:t,finalNote:l,wasDragging:B.current}),l&&t>100&&B.current?(u("✅ Adding note:",l),n(l)):u("⚠️ Not adding note:",{finalNote:l,touchDuration:t,dragging:B.current}),B.current=!1,L.current=null,T(null),_(null)},o=()=>{u("\uD83D\uDEAB Touch cancelled"),B.current=!1,L.current=null,T(null),_(null)};return e.addEventListener("touchstart",t,{passive:!1}),e.addEventListener("touchmove",l,{passive:!1}),e.addEventListener("touchend",r,{passive:!1}),e.addEventListener("touchcancel",o,{passive:!1}),()=>{e.removeEventListener("touchstart",t),e.removeEventListener("touchmove",l),e.removeEventListener("touchend",r),e.removeEventListener("touchcancel",o)}},[b,n]);let G="#"===E||"##"===E,U="b"===E||"bb"===E,X=""===E;return(0,l.jsxs)("div",{className:"piano-stave flex flex-col items-center",children:[!b&&(0,l.jsxs)("div",{className:"mb-1.5 w-full flex justify-between items-center gap-2",children:[(0,l.jsxs)("div",{className:"flex rounded-full bg-gray-100 dark:bg-gray-800 p-0.5",children:[(0,l.jsx)("button",{type:"button",onClick:()=>{C(""),null==h||h("")},className:"w-8 h-8 sm:w-9 sm:h-9 rounded-full text-sm sm:text-base font-medium transition-all ".concat(X?"bg-blue-500 text-white shadow-sm":"text-gray-600 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"),children:"♮"}),(0,l.jsx)("button",{type:"button",onClick:()=>{C(e=>{let t="#"===e?"##":"##"===e?"":"#";return null==h||h(t),t})},className:"w-8 h-8 sm:w-9 sm:h-9 rounded-full text-sm sm:text-base font-medium transition-all ".concat(G?"bg-blue-500 text-white shadow-sm":"text-gray-600 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"),children:"##"===E?"\uD834\uDD2A":"♯"}),(0,l.jsx)("button",{type:"button",onClick:()=>{C(e=>{let t="b"===e?"bb":"bb"===e?"":"b";return null==h||h(t),t})},className:"w-8 h-8 sm:w-9 sm:h-9 rounded-full text-sm sm:text-base font-medium transition-all ".concat(U?"bg-blue-500 text-white shadow-sm":"text-gray-600 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"),children:"bb"===E?"\uD834\uDD2B":"♭"})]}),(0,l.jsx)("button",{onClick:()=>{C(""),f&&f()},className:"px-3 py-1.5 rounded-full text-xs sm:text-sm font-medium text-gray-500 dark:text-gray-400 border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-800 hover:text-gray-700 dark:hover:text-gray-200 transition-all",children:"Clear"})]}),(0,l.jsx)("div",{className:"relative",style:{width:"".concat(i,"px"),height:"300px"},children:(0,l.jsx)("div",{ref:x,id:"piano-stave-container",style:{backgroundColor:"white",width:"".concat(i,"px"),height:"300px",borderRadius:"4px",padding:"10px",touchAction:"none",userSelect:"none",WebkitUserSelect:"none",WebkitTouchCallout:"none"}})}),!b&&null!==g&&(0,l.jsx)("div",{className:"mt-2 text-center ".concat(g?"text-[11px] sm:text-sm text-blue-700 dark:text-blue-300 bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 rounded-lg p-1.5 sm:p-2":"text-xs sm:text-sm text-gray-500"),children:null!=g?g:"Click to add/remove notes. The lowest note is shown in red."}),M&&A&&(0,l.jsx)("div",{style:{position:"fixed",left:"".concat(A.x,"px"),top:"".concat(A.y,"px"),zIndex:9999,pointerEvents:"none"},className:"px-3 py-2 bg-blue-600 text-white rounded-lg shadow-lg font-semibold text-lg",children:d(M)})]})},(e,t)=>{let n=e.selectedNote.length===t.selectedNote.length&&e.selectedNote.every((e,n)=>e===t.selectedNote[n]),l=!e.overlayNotes&&!t.overlayNotes||!!(e.overlayNotes&&t.overlayNotes&&e.overlayNotes.length===t.overlayNotes.length&&e.overlayNotes.every((e,n)=>e===t.overlayNotes[n]));return n&&l&&e.allowMultiple===t.allowMultiple&&e.readOnly===t.readOnly&&e.overlayColor===t.overlayColor})},63060:(e,t,n)=>{n.d(t,{D:()=>i});var l=n(95155),r=n(12115);let o=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n]},a=function(e,t,n,l){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",o=l/2,a=t<o,i=Math.floor((a?t:t-o)/(l/24)),s=a?["B/5","A/5","G/5","F/5","E/5","D/5","C/5","B/4","A/4","G/4","F/4","E/4"]:["D/4","C/4","B/3","A/3","G/3","F/3","E/3","D/3","C/3","B/2","A/2","G/2"],u=Math.max(0,Math.min(i,s.length-1)),c=s[u];if(r&&c){let[e,t]=c.split("/"),n=e[0];return"".concat(n).concat(r,"/").concat(t).toUpperCase()}return c||null},i=e=>{let{width:t,height:n,onNoteSelect:i,disabled:s=!1,currentAccidental:u=""}=e,c=(0,r.useRef)(null),d=(0,r.useRef)(0),f=(0,r.useRef)(0),b=(0,r.useRef)(null),[m,p]=(0,r.useState)(null),v=(0,r.useCallback)((e,l)=>{let r=Date.now(),o=r-f.current>=30,i=a(e,l,t,n,u);i&&(b.current=i,o&&(f.current=r,p({note:i,x:e,y:l})))},[t,n,u]),h=(0,r.useCallback)(()=>{p(null),b.current=null},[]);return(0,r.useEffect)(()=>
1{let e=c.current;if(!e)return;let t=t=>{if(s)return;let n=t.target;if("BUTTON"===n.tagName||n.closest("button"))return;t.preventDefault(),d.current=Date.now(),o("\uD83D\uDC46 Touch started");let l=t.touches[0];if(l&&e){let t=e.getBoundingClientRect();v(l.clientX-t.left,l.clientY-t.top)}},n=t=>{if(s)return;let n=t.target;if("BUTTON"===n.tagName||n.closest("button"))return;t.preventDefault();let l=t.touches[0];if(l&&e){let t=e.getBoundingClientRect();v(l.clientX-t.left,l.clientY-t.top)}};return e.addEventListener("touchstart",t,{passive:!1}),e.addEventListener("touchmove",n,{passive:!1}),()=>{e.removeEventListener("touchstart",t),e.removeEventListener("touchmove",n)}},[s,v,u]),(0,l.jsx)("div",{ref:c,style:{position:"absolute",top:0,left:0,width:"".concat(t,"px"),height:"".concat(n,"px"),zIndex:10,touchAction:"none",cursor:s?"not-allowed":"pointer",pointerEvents:"auto"},onTouchEnd:e=>{if(s)return;let l=e.target;if("BUTTON"===l.tagName||l.closest("button")){o("\uD83D\uDD18 Touch on button, ignoring"),h();return}e.preventDefault();let r=b.current;if(r)o("✅ Touch ended, adding note:",r),i(r);else{let l=e.changedTouches[0];if(l&&c.current){let e=c.current.getBoundingClientRect(),r=l.clientX-e.left,s=l.clientY-e.top;if(s>=0&&s<=n){let e=a(r,s,t,n,u);e&&(o("✅ Touch ended (fallback), adding note:",e),i(e))}}}h()},onTouchCancel:()=>{o("\uD83D\uDEAB Touch cancelled"),h()},onClick:e=>{if(s||!c.current)return;let l=e.target;if("BUTTON"===l.tagName||l.closest("button"))return;let r=c.current.getBoundingClientRect(),d=e.clientX-r.left,f=e.clientY-r.top;if(f<0||f>n)return;let b=a(d,f,t,n,u);b&&(o("\uD83D\uDDB1️ Click, adding note:",b),i(b))},children:m&&(0,l.jsx)("div",{style:{position:"absolute",left:"".concat(m.x,"px"),top:"".concat(m.y-60,"px"),transform:"translateX(-50%)",transition:"top 0.05s ease-out, left 0.05s ease-out",backgroundColor:"rgba(0, 0, 0, 0.85)",color:"white",padding:"6px 12px",borderRadius:"8px",fontSize:"14px",fontWeight:"600",pointerEvents:"none",zIndex:1e3,whiteSpace:"nowrap",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.3)"},children:m.note})})}},1628:(e,t,n)=>{n.d(t,{B:()=>i,J:()=>s});var l=n(95155),r=n(12115),o=n(46482);let a=(0,r.createContext)(null),i=e=>{let{children:t}=e,[n,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>(o.o.initialize(),o.o.loadVolumeSettings(),()=>{o.o.cleanup()}),[]),(0,l.jsx)(a.Provider,{value:{playCorrect:()=>o.o.playCorrect(),playWrong:()=>o.o.playWrong(),playBadge:()=>o.o.playBadge(),playComplete:()=>o.o.playComplete(),setUIVolume:e=>o.o.setUIVolume(e),setMusicVolume:e=>o.o.setMusicVolume(e),setExerciseVolume:e=>o.o.setMusicVolume(e),setUserVolume:e=>o.o.setMusicVolume(e),getUIVolume:()=>o.o.getUIVolume(),getMusicVolume:()=>o.o.getMusicVolume(),getExerciseVolume:()=>o.o.getMusicVolume(),getUserVolume:()=>o.o.getMusicVolume(),isVolumeControlOpen:n,setVolumeControlOpen:i},children:t})},s=()=>{let e=(0,r.useContext)(a);if(!e)throw Error("useSoundEffects must be used within a SoundEffectsProvider");return e}},3115:(e,t,n)=>{n.d(t,{Z:()=>r});var l=n(12115);let r=e=>{let[t,n]=(0,l.useState)(null),[r,o]=(0,l.useState)([]),[a,i]=(0,l.useState)(null),[s,u]=(0,l.useState)(null),c=(0,l.useCallback)(t=>{let n=t.data,l=n[0],r=n[1],o=n[2];e&&((240&l)==144&&o>0?e(r,!0):((240&l)==128||(240&l)==144&&0===o)&&e(r,!1))},[e]);return(0,l.useEffect)(()=>{if(!navigator.requestMIDIAccess){u("WebMIDI is not supported in this browser");return}let e=!0;return navigator.requestMIDIAccess().then(t=>{if(!e)return;n(t);let l=Array.from(t.inputs.values());o(l),l.length>0&&i(l[0]),t.onstatechange=()=>{let e=Array.from(t.inputs.values());o(e),i(t=>t&&e.find(e=>e.id===t.id)?t:e.length>0?e[0]:null)}}).catch(t=>{e&&u("Failed to access MIDI devices: ".concat(t.message))}),()=>{e=!1,t&&(t.onstatechange=null)}},[]),(0,l.useEffect)(()=>(r.forEach(e=>{e.onmidimessage=null}),a&&(a.onmidimessage=c),()=>{a&&(a.onmidimessage=null)}),[a,c]),{midiInputs:r,selectedInput:a,setSelectedInput:i,error:s}}},87338:(e,t,n)=>{n.d(t,{A:()=>s});var l=n(95155),r=n(12115);let o={C:0,"C#":1,D:2,"D#":3,E:4,F:5,"F#":6,G:7,"G#":8,A:9,"A#":10,B:11},a=Object.fromEntries(Object.entries(o).map(e=>{let[t,n]=e;return[n,t]})),i=e=>{let t=Math.floor(e/12)-1,n=a[e%12]||"";return"".concat(n).concat(t)},s=e=>{let{firstNote:t="C2",lastNote:n="B5",onPlayNote:a,disabled:s=!1}=e,[u,c]=(0,r.useState)(new Set),d=e=>{let t=e.match(/^([A-G]#?)(\d)$/);if(!t)throw Error("Invalid note format: ".concat(e));return{noteName:t[1],octave:parseInt(t[2])}},f=d(t),b=d(n),m=(f.octave+1)*12+o[f.noteName],p=(b.octave+1)*12+o[b.noteName],v=e=>{!s&&a&&(c(t=>new Set(t).add(e)),a(e),setTimeout(()=>{c(t=>{let n=new Set(t);return n.delete(e),n})},200))},h=e=>[1,3,6,8,10].includes(e%12),g=e=>({1:.7,3:1.7,6:3.75,8:4.75,10:5.75}
1)[e%12]||0,x=[],y=[];for(let e=m;e<=p;e++)h(e)?y.push(e):x.push(e);return(0,l.jsx)("div",{className:"relative w-full h-16 sm:h-20",role:"group","aria-label":"Piano keyboard",children:(0,l.jsxs)("div",{className:"relative w-full h-full flex rounded-lg overflow-hidden",children:[x.map(e=>{let t=Math.floor(e/12)-1,n=e%12,r=u.has(e);return(0,l.jsx)("button",{onMouseDown:()=>v(e),disabled:s,"aria-label":i(e),"aria-pressed":r,className:"\n                relative flex-1 mx-[0.5px] rounded-b-md\n                transition-all duration-100 ease-out\n                border-x border-b-2\n                bg-gradient-to-b from-slate-100 via-slate-200 to-slate-300\n                border-slate-400/50\n                shadow-[inset_0_-2px_4px_rgba(0,0,0,0.1)]\n                ".concat(s?"cursor-not-allowed opacity-70":r?"bg-gradient-to-b from-blue-200 via-blue-300 to-blue-400 shadow-[inset_0_2px_8px_rgba(59,130,246,0.5)] translate-y-[2px]":"hover:from-slate-50 hover:via-slate-100 hover:to-slate-200 active:from-blue-200 active:via-blue-300 active:to-blue-400 active:translate-y-[2px]","\n              "),style:{minWidth:0},children:0===n&&(0,l.jsx)("div",{className:"absolute bottom-2 left-1/2 -translate-x-1/2",children:(0,l.jsxs)("span",{className:"text-[9px] sm:text-[10px] font-mono text-slate-500 font-semibold",children:["C",t]})})},e)}),(0,l.jsx)("div",{className:"absolute inset-0 flex pointer-events-none px-[0.5px]",children:y.map(e=>{let t=u.has(e),n=Math.floor(e/12)-f.octave-1,r=g(e),o=100/x.length;return(0,l.jsx)("button",{onMouseDown:()=>v(e),disabled:s,"aria-label":i(e),"aria-pressed":t,className:"\n                  absolute top-0 h-[62%] rounded-b-md\n                  pointer-events-auto transition-all duration-100\n                  border border-b-2\n                  bg-gradient-to-b from-slate-800 via-slate-900 to-black\n                  border-black/80\n                  shadow-[0_3px_6px_rgba(0,0,0,0.4),inset_0_1px_0_rgba(255,255,255,0.05)]\n                  ".concat(s?"cursor-not-allowed opacity-70":t?"bg-gradient-to-b from-blue-700 via-blue-800 to-blue-900 shadow-[inset_0_2px_8px_rgba(0,0,0,0.6)] translate-y-[1px]":"hover:from-slate-700 hover:via-slate-800 hover:to-slate-900 active:from-blue-700 active:via-blue-800 active:to-blue-900 active:translate-y-[1px]","\n                "),style:{left:"".concat((7*n+r)*o,"%"),width:"".concat(.62*o,"%"),zIndex:10}},e)})})]})})}},32528:(e,t,n)=>{function l(e){let t=Math.floor(e/12)-1;return{note:["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"][e%12],octave:t}}function r(e,t){let n=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];if(e.includes("bb")){let l=e.replace("bb",""),r=n.indexOf(l);if(r<0)throw Error("Invalid note name");let o=r-2,a=0;return o<0&&(o+=12,a=-1),(t+1+a)*12+o}if(e.includes("b")){let l=e.replace("b",""),r=n.indexOf(l);if(r<0)throw Error("Invalid note name");let o=r-1,a=0;return o<0&&(o+=12,a=-1),(t+1+a)*12+o}if(e.includes("##")||e.includes("x")){let l=e.replace(/##|x/g,""),r=n.indexOf(l);if(r<0)throw Error("Invalid note name");let o=r+2;return(t+1+Math.floor(o/12))*12+o%12}if(e.includes("#")){let l=e.replace(/#/g,""),r=n.indexOf(l);if(r<0)throw Error("Invalid note name");let o=r+(e.match(/#/g)||[]).length;return(t+1+Math.floor(o/12))*12+o%12}let l=n.indexOf(e);if(l<0)throw Error("Invalid note name");return(t+1)*12+l}n.d(t,{T:()=>l,w:()=>r})}}]);

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.