From 6fb7ddce3aed06e57e40f30048483c5e2f39a5cb Mon Sep 17 00:00:00 2001 From: Vitaly Pavlenko Date: Tue, 27 Feb 2024 14:22:35 +0400 Subject: [PATCH] Updates --- assets/{index-BST3dw6T.js => index-2HNVnsD6.js} | 2 +- index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename assets/{index-BST3dw6T.js => index-2HNVnsD6.js} (99%) diff --git a/assets/index-BST3dw6T.js b/assets/index-2HNVnsD6.js similarity index 99% rename from assets/index-BST3dw6T.js rename to assets/index-2HNVnsD6.js index 57274b5..4fd4940 100644 --- a/assets/index-BST3dw6T.js +++ b/assets/index-2HNVnsD6.js @@ -81,4 +81,4 @@ License: MIT background-color: #444; `,u7=wt(od)` border-left: 1px dashed #262626; -`,m7=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"],c7=({number:e,left:o,measureWidth:n})=>E.jsxs(E.Fragment,{children:[E.jsx(a7,{style:{left:o,...Qa(e,12)===1?{backgroundColor:"#a0f"}:Qa(e,4)===1?{backgroundColor:"#aaa"}:{}}}),n>30&&[1,2,3].map(_=>E.jsx(u7,{style:{left:o+_*n/4}})),n>30&&E.jsx("div",{style:{position:"absolute",left:o+5,top:20,color:"white"},children:e})]}),Ia=({beats:e,melody:o,key_:n,currentYoutubeTime:_,measureWidth:t,noteHeight:i,mapToRelativeTime:r})=>{const l=e[0].bar,s=e.at(-1).bar,d=Array.from({length:s-l+1},(h,O)=>O+l),f=Math.min(...o.map(({pitch:h})=>h))-2,m=Math.max(...o.map(({pitch:h})=>h))+6,S=n?m7.indexOf(n.split("-")[0]):0,b=[];for(let h=0;h<=9;++h){const O=S+h*12;O>=f&&O+4<=m&&b.push(E.jsx("div",{style:{position:"absolute",width:"100%",height:6*i,left:0,top:(m-O-6)*i,pointerEvents:"none",background:"linear-gradient(to top, #222, transparent)",zIndex:0}},`tonalgrid_octave_${O}`))}return E.jsxs("div",{style:{position:"relative",width:(d.length+1)*t,height:(m-f+1)*i,backgroundColor:"black",marginTop:"20px",marginBottom:"20px"},children:[_!==-10&&_!=null&&!isNaN(_)&&E.jsx(d7,{style:{left:r(_)*t}}),b,e.filter(({beat:h})=>h===1).map(({bar:h,onset:O})=>E.jsx(E.Fragment,{children:E.jsx(c7,{number:h,left:r(O)*t,measureWidth:t},h)})),o.map(({pitch:h,onset:O,duration:J},p)=>isNaN(h)?null:E.jsx("div",{className:`noteColor_${(h-S)%12}_colors`,style:{position:"absolute",width:(r(O+J)-r(O))*t,height:i,top:(m-h-1)*i,left:r(O)*t,borderRadius:"5px",zIndex:10}},p)),t>30&&e.filter(({chord:h})=>h).map(({onset:h,chord:O},J)=>E.jsx("div",{style:{position:"absolute",left:r(h)*t+5,color:"yellow"},children:l7.toRomanNumerals(n.split("-")[0],[O])[0].replace("m7b5","ø")},J))]})};var f7=typeof R_=="object"&&R_&&R_.Object===Object&&R_,p7=typeof self=="object"&&self&&self.Object===Object&&self;f7||p7||Function("return this")();var Z1=typeof window<"u"?H.useLayoutEffect:H.useEffect;function qa(e,o,n,_){const t=H.useRef(o);Z1(()=>{t.current=o},[o]),H.useEffect(()=>{const i=(n==null?void 0:n.current)??window;if(!(i&&i.addEventListener))return;const r=l=>{t.current(l)};return i.addEventListener(e,r,_),()=>{i.removeEventListener(e,r,_)}},[e,n,_])}function y7(e){const o=H.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return Z1(()=>{o.current=e},[e]),H.useCallback((...n)=>o.current(...n),[o])}var Na=typeof window>"u";function S7(e,o,n={}){const{initializeWithValue:_=!0}=n,t=H.useCallback(m=>n.serializer?n.serializer(m):JSON.stringify(m),[n]),i=H.useCallback(m=>{if(n.deserializer)return n.deserializer(m);if(m==="undefined")return;const S=o instanceof Function?o():o;let b;try{b=JSON.parse(m)}catch(h){return console.error("Error parsing JSON:",h),S}return b},[n,o]),r=H.useCallback(()=>{const m=o instanceof Function?o():o;if(Na)return m;try{const S=window.localStorage.getItem(e);return S?i(S):m}catch(S){return console.warn(`Error reading localStorage key “${e}”:`,S),m}},[o,e,i]),[l,s]=H.useState(()=>_?r():o instanceof Function?o():o),d=y7(m=>{Na&&console.warn(`Tried setting localStorage key “${e}” even though environment is not a client`);try{const S=m instanceof Function?m(r()):m;window.localStorage.setItem(e,t(S)),s(S),window.dispatchEvent(new StorageEvent("local-storage",{key:e}))}catch(S){console.warn(`Error setting localStorage key “${e}”:`,S)}});H.useEffect(()=>{s(r())},[e]);const f=H.useCallback(m=>{m!=null&&m.key&&m.key!==e||s(r())},[e,r]);return qa("storage",f),qa("local-storage",f),[l,d]}const h7=(e,o=[])=>{const[n,_]=S7(e,o),[t,i]=H.useState(new Set(n));return H.useEffect(()=>{_(Array.from(t))},[t,_]),[t,l=>{i(s=>new Set(s).add(l))}]},Fa=new Set(["RXvA6r_BjWQ","4LBaCBT2tOs","1iJdXWY7JRo","DiNzXslovVk","FferX_P7SVs","zQBjD06a6l8","fBQxsQlPDkU","lcKQ3wGI8ZQ","tu4o65SwUIw","DabNQMNsFJk","x084gGjWlpY","tkSrZTEvSkc","Up4NTq5tkhc","oxl5L5Wyybk","74GIncsU9LM","FeRZPQS0Q98","xnJl5CXZ82M","wAMYl6kJkjo"]),x7={TRADITIONAL:"1910..30s",SWING:"1930..40s",BEBOP:"1940..50s",COOL:"1950..60s",HARDBOP:"1950..60s",POSTBOP:"1960..90s"},w7={as:"alto saxophone",bcl:"bass clarinet",bs:"baritone saxophone",cor:"cornet",g:"guitar",ss:"soprano saxophone",tb:"trombone",tp:"trumpet",ts:"tenor saxophone",vib:"vibraphone"},Nt=v4,b7=e=>{let o=e.split(/ /g);for(let n=0;no.replace(/\./g,"").replace(/ /g,"")+"_"+b7(e).replace(/ /g,"").replace(/-/g,"=").replace(/'n/g,"'N")+(n>1?`-${n}`:"")+"_Solo.csv",Ha=({filePath:e,setData:o})=>{const[n,_]=H.useState([]);return H.useEffect(()=>{fetch(e).then(t=>t.text()).then(t=>{D4.parse(t.trim(),{complete:({data:i})=>{_(i),o(i)},header:!0,dynamicTyping:!0})}).catch(t=>console.error("Error loading the CSV file:",t))},[e]),E.jsx("div",{style:{fontSize:"10px"},children:E.jsx(g7,{title:e,children:n.map((t,i)=>E.jsx("div",{children:JSON.stringify(t)},i))})})},pn=O4,g7=({title:e,children:o})=>{const[n,_]=H.useState(!1),t=()=>_(!n);return E.jsxs("div",{children:[E.jsx("div",{onClick:t,style:{cursor:"pointer"},children:e}),n&&E.jsx("div",{children:o})]})};function O7(){var T;const[e,o]=H.useState(1),[n,_]=H.useState(null),[t,i]=H.useState(null),[r,l]=H.useState("WvKuTS1mBmU"),[s,d]=H.useState(0),[f,m]=h7("badVideos"),S=H.useRef(),{style:b,title:h,performer:O,key:J,instrument:p,melid:a}=pn[e],y=H.useMemo(()=>{var x,u;return(u=(x=Nt[a])==null?void 0:x.filter(({youtube_id:c})=>r===c))==null?void 0:u[0]},[a,r]),g=H.useMemo(()=>{const x={};return t==null||t.forEach(({bar:u,beat:c,onset:w})=>{c===1&&(x[u]=w)}),t?u=>{for(const c in x){const w=parseInt(c,10);if(w-1 in x&&u<=x[w])return w-t[0].bar+(u-x[w-1])/(x[w]-x[w-1])}return-10}:()=>0},[t]);H.useEffect(()=>{function x(){var w;const c=(w=S==null?void 0:S.current)==null?void 0:w.getCurrentTime();typeof c=="number"&&d(c-y.solo_start_sec),requestAnimationFrame(x)}const u=requestAnimationFrame(x);return()=>cancelAnimationFrame(u)},[y]);const D=H.useMemo(()=>new Set([...f,...Fa]),[f,Fa]);return E.jsxs(E.Fragment,{children:[E.jsx("div",{style:{position:"absolute",right:20},children:E.jsx("a",{href:"https://github.com/vpavlenko/12",target:"_blank",children:E.jsx("div",{className:"octocat"})})}),E.jsx("div",{style:{columnCount:4,columnGap:"20px",width:"100vw"},children:Object.entries(x7).map(([x,u])=>E.jsxs("div",{style:{breakInside:"avoid",marginBottom:"20px"},children:[E.jsxs("b",{children:[x.toLowerCase(),", ",u,":"," "]}),E.jsx("div",{children:Object.entries(pn.reduce((c,{title:w,solopart:C,performer:A,style:P,melid:Q},Z)=>{var F;return P===x&&(c[A]||(c[A]=[]),c[A].push(E.jsxs("span",{style:{display:"inline",fontWeight:Z===e?700:"normal",cursor:"pointer",...((F=Nt[Q])==null?void 0:F.filter(({youtube_id:k})=>!D.has(k)).length)>0?{}:{textDecoration:"line-through",color:"#d8d8d8"}},onClick:()=>{var k,R;o(Z),l((R=(k=Nt[pn[Z].melid])==null?void 0:k.filter(({youtube_id:v})=>!D.has(v)))==null?void 0:R[0].youtube_id),i(null),_(null)},children:[w,C>1&&` (${C})`]},Z))),c},{})).map(([c,w],C)=>E.jsxs("div",{style:{paddingLeft:"3em",textIndent:"-3em"},children:[E.jsxs("span",{style:{color:"#aaa"},children:[c,": "]}),w.reduce((A,P,Q)=>E.jsxs(E.Fragment,{children:[A,Q>0?", ":"",E.jsx("span",{style:{whiteSpace:"nowrap"},children:P})]}),E.jsx(E.Fragment,{}))]},C))})]},x))}),E.jsxs("div",{style:{marginTop:"40px",fontSize:16},children:["A ",b.toLowerCase()," solo on"," ",E.jsxs("span",{style:{color:"darkorange",fontWeight:700},children:['"',h,'"']})," ","by"," ",E.jsx("span",{style:{color:"darkgreen",fontWeight:700},children:O})," ","(",w7[p],") in ",J,". Youtube videos:"," ",(T=Nt[a])==null?void 0:T.map(({youtube_id:x})=>E.jsxs(H.Fragment,{children:[E.jsx("span",{style:D.has(x)?{color:"#d8d8d8",textDecoration:"line-through"}:r===x?{fontWeight:700}:{borderBottom:"1px dotted gray",cursor:"pointer"},onClick:()=>{l(x)},children:x}),", "]},x))]}),t&&n&&E.jsx(Ia,{beats:t,melody:n,key_:pn[e].key,currentYoutubeTime:s+.05,measureWidth:25,noteHeight:2,mapToRelativeTime:g}),t&&n&&E.jsx(Ia,{beats:t,melody:n,key_:pn[e].key,currentYoutubeTime:s+.05,measureWidth:100,noteHeight:9,mapToRelativeTime:g}),r&&y&&E.jsx(ac,{videoId:r,opts:{height:"100",width:"1500",playerVars:{start:y.solo_start_sec,autoplay:1}},onReady:x=>{S.current=x.target,x.target.seekTo(y.solo_start_sec,!0)},onError:()=>m(r)}),E.jsx(Ha,{filePath:`csv_melody/${Ga(pn[e])}`,setData:_}),E.jsx(Ha,{filePath:`csv_beats/${Ga(pn[e])}`,setData:i})]})}Yr.createRoot(document.getElementById("root")).render(E.jsx(Jo.StrictMode,{children:E.jsx(O7,{})})); +`,m7=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"],c7=({number:e,left:o,measureWidth:n})=>E.jsxs(E.Fragment,{children:[E.jsx(a7,{style:{left:o,...Qa(e,12)===1?{backgroundColor:"#a0f"}:Qa(e,4)===1?{backgroundColor:"#aaa"}:{}}}),n>30&&[1,2,3].map(_=>E.jsx(u7,{style:{left:o+_*n/4}})),n>30&&E.jsx("div",{style:{position:"absolute",left:o+5,top:20,color:"white"},children:e})]}),Ia=({beats:e,melody:o,key_:n,currentYoutubeTime:_,measureWidth:t,noteHeight:i,mapToRelativeTime:r})=>{const l=e[0].bar,s=e.at(-1).bar,d=Array.from({length:s-l+1},(h,O)=>O+l),f=Math.min(...o.map(({pitch:h})=>h))-2,m=Math.max(...o.map(({pitch:h})=>h))+6,S=n?m7.indexOf(n.split("-")[0]):0,b=[];for(let h=0;h<=9;++h){const O=S+h*12;O>=f&&O+4<=m&&b.push(E.jsx("div",{style:{position:"absolute",width:"100%",height:6*i,left:0,top:(m-O-6)*i,pointerEvents:"none",background:"linear-gradient(to top, #222, transparent)",zIndex:0}},`tonalgrid_octave_${O}`))}return E.jsxs("div",{style:{position:"relative",width:(d.length+1)*t,height:(m-f+1)*i,backgroundColor:"black",marginTop:"20px",marginBottom:"20px"},children:[_!==-10&&_!=null&&!isNaN(_)&&E.jsx(d7,{style:{left:r(_)*t}}),b,e.filter(({beat:h})=>h===1).map(({bar:h,onset:O})=>E.jsx(E.Fragment,{children:E.jsx(c7,{number:h,left:r(O)*t,measureWidth:t},h)})),o.map(({pitch:h,onset:O,duration:J},p)=>isNaN(h)?null:E.jsx("div",{className:`noteColor_${(h-S)%12}_colors`,style:{position:"absolute",width:(r(O+J)-r(O))*t,height:i,top:(m-h-1)*i,left:r(O)*t,borderRadius:"5px",zIndex:10}},p)),t>30&&e.filter(({chord:h})=>h).map(({onset:h,chord:O},J)=>E.jsx("div",{style:{position:"absolute",left:r(h)*t+5,color:"yellow"},children:l7.toRomanNumerals(n.split("-")[0],[O])[0].replace("m7b5","ø")},J))]})};var f7=typeof R_=="object"&&R_&&R_.Object===Object&&R_,p7=typeof self=="object"&&self&&self.Object===Object&&self;f7||p7||Function("return this")();var Z1=typeof window<"u"?H.useLayoutEffect:H.useEffect;function qa(e,o,n,_){const t=H.useRef(o);Z1(()=>{t.current=o},[o]),H.useEffect(()=>{const i=(n==null?void 0:n.current)??window;if(!(i&&i.addEventListener))return;const r=l=>{t.current(l)};return i.addEventListener(e,r,_),()=>{i.removeEventListener(e,r,_)}},[e,n,_])}function y7(e){const o=H.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return Z1(()=>{o.current=e},[e]),H.useCallback((...n)=>o.current(...n),[o])}var Na=typeof window>"u";function S7(e,o,n={}){const{initializeWithValue:_=!0}=n,t=H.useCallback(m=>n.serializer?n.serializer(m):JSON.stringify(m),[n]),i=H.useCallback(m=>{if(n.deserializer)return n.deserializer(m);if(m==="undefined")return;const S=o instanceof Function?o():o;let b;try{b=JSON.parse(m)}catch(h){return console.error("Error parsing JSON:",h),S}return b},[n,o]),r=H.useCallback(()=>{const m=o instanceof Function?o():o;if(Na)return m;try{const S=window.localStorage.getItem(e);return S?i(S):m}catch(S){return console.warn(`Error reading localStorage key “${e}”:`,S),m}},[o,e,i]),[l,s]=H.useState(()=>_?r():o instanceof Function?o():o),d=y7(m=>{Na&&console.warn(`Tried setting localStorage key “${e}” even though environment is not a client`);try{const S=m instanceof Function?m(r()):m;window.localStorage.setItem(e,t(S)),s(S),window.dispatchEvent(new StorageEvent("local-storage",{key:e}))}catch(S){console.warn(`Error setting localStorage key “${e}”:`,S)}});H.useEffect(()=>{s(r())},[e]);const f=H.useCallback(m=>{m!=null&&m.key&&m.key!==e||s(r())},[e,r]);return qa("storage",f),qa("local-storage",f),[l,d]}const h7=(e,o=[])=>{const[n,_]=S7(e,o),[t,i]=H.useState(new Set(n));return H.useEffect(()=>{_(Array.from(t))},[t,_]),[t,l=>{i(s=>new Set(s).add(l))}]},Fa=new Set(["RXvA6r_BjWQ","4LBaCBT2tOs","1iJdXWY7JRo","DiNzXslovVk","FferX_P7SVs","zQBjD06a6l8","fBQxsQlPDkU","lcKQ3wGI8ZQ","tu4o65SwUIw","DabNQMNsFJk","x084gGjWlpY","tkSrZTEvSkc","Up4NTq5tkhc","oxl5L5Wyybk","74GIncsU9LM","FeRZPQS0Q98","xnJl5CXZ82M","wAMYl6kJkjo"]),x7={TRADITIONAL:"1910..30s",SWING:"1930..40s",BEBOP:"1940..50s",COOL:"1950..60s",HARDBOP:"1950..60s",POSTBOP:"1960..90s"},w7={as:"alto saxophone",bcl:"bass clarinet",bs:"baritone saxophone",cor:"cornet",g:"guitar",ss:"soprano saxophone",tb:"trombone",tp:"trumpet",ts:"tenor saxophone",vib:"vibraphone"},Nt=v4,b7=e=>{let o=e.split(/ /g);for(let n=0;no.replace(/\./g,"").replace(/ /g,"")+"_"+b7(e).replace(/ /g,"").replace(/-/g,"=").replace(/'n/g,"'N")+(n>1?`-${n}`:"")+"_Solo.csv",Ha=({filePath:e,setData:o})=>{const[n,_]=H.useState([]);return H.useEffect(()=>{fetch(e).then(t=>t.text()).then(t=>{D4.parse(t.trim(),{complete:({data:i})=>{_(i),o(i)},header:!0,dynamicTyping:!0})}).catch(t=>console.error("Error loading the CSV file:",t))},[e]),E.jsx("div",{style:{fontSize:"10px"},children:E.jsx(g7,{title:e,children:n.map((t,i)=>E.jsx("div",{children:JSON.stringify(t)},i))})})},pn=O4,g7=({title:e,children:o})=>{const[n,_]=H.useState(!1),t=()=>_(!n);return E.jsxs("div",{children:[E.jsx("div",{onClick:t,style:{cursor:"pointer"},children:e}),n&&E.jsx("div",{children:o})]})};function O7(){var T;const[e,o]=H.useState(1),[n,_]=H.useState(null),[t,i]=H.useState(null),[r,l]=H.useState("WvKuTS1mBmU"),[s,d]=H.useState(0),[f,m]=h7("badVideos"),S=H.useRef(),{style:b,title:h,performer:O,key:J,instrument:p,melid:a}=pn[e],y=H.useMemo(()=>{var x,u;return(u=(x=Nt[a])==null?void 0:x.filter(({youtube_id:c})=>r===c))==null?void 0:u[0]},[a,r]),g=H.useMemo(()=>{const x={};return t==null||t.forEach(({bar:u,beat:c,onset:w})=>{c===1&&(x[u]=w)}),t?u=>{for(const c in x){const w=parseInt(c,10);if(w-1 in x&&u<=x[w])return w-t[0].bar+(u-x[w-1])/(x[w]-x[w-1])}return-10}:()=>0},[t]);H.useEffect(()=>{function x(){var w;const c=(w=S==null?void 0:S.current)==null?void 0:w.getCurrentTime();typeof c=="number"&&d(c-y.solo_start_sec),requestAnimationFrame(x)}const u=requestAnimationFrame(x);return()=>cancelAnimationFrame(u)},[y]);const D=H.useMemo(()=>new Set([...f,...Fa]),[f,Fa]);return E.jsxs(E.Fragment,{children:[E.jsx("div",{style:{position:"absolute",right:20},children:E.jsx("a",{href:"https://github.com/vpavlenko/12",target:"_blank",children:E.jsx("div",{className:"octocat"})})}),E.jsx("div",{style:{columnCount:4,columnGap:"20px",width:"100vw"},children:Object.entries(x7).map(([x,u])=>E.jsxs("div",{style:{breakInside:"avoid",marginBottom:"20px"},children:[E.jsxs("b",{children:[x.toLowerCase(),", ",u,":"," "]}),E.jsx("div",{children:Object.entries(pn.reduce((c,{title:w,solopart:C,performer:A,style:P,melid:Q},Z)=>{var F;return P===x&&(c[A]||(c[A]=[]),c[A].push(E.jsxs("span",{style:{display:"inline",fontWeight:Z===e?700:"normal",cursor:"pointer",...((F=Nt[Q])==null?void 0:F.filter(({youtube_id:k})=>!D.has(k)).length)>0?{}:{textDecoration:"line-through",color:"#d8d8d8"}},onClick:()=>{var k,R;o(Z),l((R=(k=Nt[pn[Z].melid])==null?void 0:k.filter(({youtube_id:v})=>!D.has(v)))==null?void 0:R[0].youtube_id),i(null),_(null)},children:[w,C>1&&` (${C})`]},Z))),c},{})).map(([c,w],C)=>E.jsxs("div",{style:{paddingLeft:"3em",textIndent:"-3em"},children:[E.jsxs("span",{style:{color:"#aaa"},children:[c,": "]}),w.reduce((A,P,Q)=>E.jsxs(E.Fragment,{children:[A,Q>0?", ":"",E.jsx("span",{style:{whiteSpace:"nowrap"},children:P})]}),E.jsx(E.Fragment,{}))]},C))})]},x))}),E.jsxs("div",{style:{marginTop:"40px",fontSize:16},children:["A ",b.toLowerCase()," solo on"," ",E.jsxs("span",{style:{color:"darkorange",fontWeight:700},children:['"',h,'"']})," ","by"," ",E.jsx("span",{style:{color:"darkgreen",fontWeight:700},children:O})," ","(",w7[p],") in ",J,". Youtube videos:"," ",(T=Nt[a])==null?void 0:T.map(({youtube_id:x})=>E.jsxs(H.Fragment,{children:[E.jsx("span",{style:D.has(x)?{color:"#d8d8d8",textDecoration:"line-through"}:r===x?{fontWeight:700}:{borderBottom:"1px dotted gray",cursor:"pointer"},onClick:()=>{l(x)},children:x}),", "]},x))]}),t&&n&&E.jsx(Ia,{beats:t,melody:n,key_:pn[e].key,currentYoutubeTime:s+.05,measureWidth:25,noteHeight:2,mapToRelativeTime:g}),t&&n&&E.jsx(Ia,{beats:t,melody:n,key_:pn[e].key,currentYoutubeTime:s+.05,measureWidth:100,noteHeight:9,mapToRelativeTime:g}),r&&y&&E.jsx("div",{style:{position:"fixed",left:0,bottom:0},children:E.jsx(ac,{videoId:r,opts:{height:"100",width:"1500",playerVars:{start:y.solo_start_sec,autoplay:1}},onReady:x=>{S.current=x.target,x.target.seekTo(y.solo_start_sec,!0)},onError:()=>m(r)})}),E.jsxs("div",{style:{marginTop:200},children:[E.jsx(Ha,{filePath:`csv_melody/${Ga(pn[e])}`,setData:_}),E.jsx(Ha,{filePath:`csv_beats/${Ga(pn[e])}`,setData:i})]})]})}Yr.createRoot(document.getElementById("root")).render(E.jsx(Jo.StrictMode,{children:E.jsx(O7,{})})); diff --git a/index.html b/index.html index 9ed4ebf..c9cf0d1 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ Vite + React + TS - +