{"code":"var GUI=function(e){function r(r){for(var t,s,i=r[0],c=r[1],u=r[2],d=0,y=[];d{for(let r=e.length-1;r>0;r--){const a=Math.floor(Math.random()*(r+1)),t=e[r];e[r]=e[a],e[a]=t}return e},g=e=>{let{userID:r=\"0\",username:a}=e;const t={image:\"https://trampoline.turbowarp.org/avatars/\".concat(r),text:a};return a&&\"0\"!==r&&(t.href=\"https://scratch.mit.edu/users/\".concat(a,\"/\")),t},p=[{userID:\"41219524\",username:\"CubesterYT\"},{userID:\"64691048\",username:\"CST1229\"},{userID:\"128887584\",username:\"FurryR\"},{userID:\"17340565\",username:\"GarboMuffin\"},{userID:\"12498592\",username:\"LilyMakesThings\"},{userID:\"105362329\",username:\"TrueFantom\"},{userID:\"9636514\",username:\"Tacodiva7729\"},{userID:\"141930175\",username:\"SimonShiki\"},{userID:\"34824813\",username:\"Geotale\"},{username:\"Wowfunhappy\"}].map(g),M=[{userID:\"34018398\",username:\"Jeffalo\"},{userID:\"64184234\",username:\"ErrorGamer2000\"},{userID:\"41616512\",username:\"pufferfish101007\"},{userID:\"61409215\",username:\"TheColaber\"},{userID:\"1882674\",username:\"griffpatch\"},{userID:\"10817178\",username:\"apple502j\"},{userID:\"16947341\",username:\"--Explosion--\"},{userID:\"14880401\",username:\"Sheep_maker\"},{userID:\"9981676\",username:\"NitroCipher\"},{userID:\"2561680\",username:\"lisa_wolfgang\"},{userID:\"60000111\",username:\"GDUcrash\"},{userID:\"4648559\",username:\"World_Languages\"},{userID:\"17340565\",username:\"GarboMuffin\"},{userID:\"5354974\",username:\"Chrome_Cat\"},{userID:\"34455896\",username:\"summerscar\"},{userID:\"55742784\",username:\"RedGuy7\"},{userID:\"9636514\",username:\"Tacodiva7729\"},{userID:\"14792872\",username:\"_nix\"},{userID:\"30323614\",username:\"BarelySmooth\"},{userID:\"64691048\",username:\"CST1229\"},{username:\"DNin01\"},{userID:\"16426047\",username:\"Maximouse\"},{username:\"retronbv\"},{username:\"GrahamSH\"},{userID:\"22529928\",username:\"simiagain\"},{username:\"Secret-chest\"},{userID:\"11677378\",username:\"Mr_MPH\"},{username:\"TheKodeToad\"}].map(g),h=[{username:\"-SIPC-\"},{username:\"0832\"},{userID:\"74246431\",username:\"0znzw\"},{userID:\"17235330\",username:\"aleb2005\"},{username:\"BlueDome77\"},{username:\"ClaytonTDM\"},{userID:\"37070511\",username:\"cs2627883\"},{userID:\"64691048\",username:\"CST1229\"},{userID:\"41219524\",username:\"CubesterYT\"},{userID:\"33988895\",username:\"D-ScratchNinja\"},{username:\"DT\"},{userID:\"1882674\",username:\"griffpatch\"},{userID:\"41876695\",username:\"JeremyGamer13\"},{userID:\"12498592\",username:\"LilyMakesThings\"},{username:\"MikeDEV\"},{userID:\"62325737\",username:\"mybearworld\"},{userID:\"62950341\",username:\"NamelessCat\"},{username:\"NOname-awa\"},{userID:\"26959223\",username:\"pinksheep2917\"},{username:\"pumpkinhasapatch\"},{userID:\"126715567\",username:\"PwLDev\"},{userID:\"139929771\",username:\"qxsck\"},{userID:\"29118689\",username:\"RedMan13\"},{userID:\"80038021\",username:\"RixTheTyrunt\"},{userID:\"45777723\",username:\"DemonX5\"},{userID:\"14880401\",username:\"Sheep_maker\"},{userID:\"103496265\",username:\"shreder95ua\"},{userID:\"72467731\",username:\"Skyhigh173\"},{userID:\"52066199\",username:\"softed\"},{username:\"TheShovel\"},{userID:\"105362329\",username:\"TrueFantom\"},{userID:\"19133274\",username:\"Vadik1\"},{username:\"veggiecan0419\"},{userID:\"82486672\",username:\"lolecksdeehaha\"},{userID:\"3318598\",username:\"plant2014\"},{userID:\"128778351\",username:\"XmerOriginals\"},{username:\"ZXMushroom63\"}].map(g),I=[{userID:\"12498592\",username:\"LilyMakesThings\"},{username:\"DNin01\"},{username:\"Samq64\"},{username:\"61080GBA\"},{username:\"adazem009\"},{username:\"sajtosteszta32\"},{username:\"yoyomonem\"},{userID:\"55742784\",username:\"RedGuy7\"},{username:\"28klotlucas2\"},{username:\"PPPDUD\"},{username:\"BackThePortal\"},{username:\"Naleksuh\"}].map(g);var f={contributors:m(p),addonDevelopers:m(M),extensionDevelopers:m(h),docs:m(I)};function b(){return b=Object.assign?Object.assign.bind():function(e){for(var r=1;r{let{image:r,text:a,href:t}=e;return n.a.createElement(\"a\",{href:t,target:\"_blank\",rel:\"noreferrer\",className:u.a.user},n.a.createElement(\"img\",{loading:\"lazy\",className:u.a.userImage,src:r,width:\"60\",height:\"60\"}),n.a.createElement(\"div\",{className:u.a.userInfo},a))};D.propTypes={image:s.a.string.isRequired,text:s.a.string.isRequired,href:s.a.string};const k=e=>{let{users:r}=e;return n.a.createElement(\"div\",{className:u.a.users},r.map(((e,r)=>n.a.createElement(D,b({key:r},e)))))};k.propTypes={users:s.a.arrayOf(s.a.object)};const C=()=>n.a.createElement(\"main\",{className:u.a.main},n.a.createElement(\"header\",{className:u.a.headerContainer},n.a.createElement(\"h1\",{className:u.a.headerText},l.APP_NAME,\" Credits\")),n.a.createElement(\"section\",null,n.a.createElement(\"p\",null,\"The \",l.APP_NAME,\" project is made possible by the work of many volunteers.\")),\"TurboWarp\"!==l.APP_NAME&&n.a.createElement(\"section\",null,n.a.createElement(\"h2\",null,\"TurboWarp\"),n.a.createElement(\"p\",null,l.APP_NAME,\" is based on \",n.a.createElement(\"a\",{href:\"https://turbowarp.org/\"},\"TurboWarp\"),\".\")),n.a.createElement(\"section\",null,n.a.createElement(\"h2\",null,\"Scratch\"),n.a.createElement(\"p\",null,l.APP_NAME,\" is based on the work of the \",n.a.createElement(\"a\",{href:\"https://scratch.mit.edu/credits\"},\"Scratch contributors\"),\" but is not endorsed by Scratch in any way.\"),n.a.createElement(\"p\",null,n.a.createElement(\"a\",{href:\"https://scratch.mit.edu/donate\"},\"Donate to support Scratch.\"))),n.a.createElement(\"section\",null,n.a.createElement(\"h2\",null,\"Contributors\"),n.a.createElement(k,{users:f.contributors})),n.a.createElement(\"section\",null,n.a.createElement(\"h2\",null,\"Addons\"),n.a.createElement(k,{users:f.addonDevelopers})),n.a.createElement(\"section\",null,n.a.createElement(\"h2\",null,\"TurboWarp Extension Gallery\"),n.a.createElement(k,{users:f.extensionDevelopers})),n.a.createElement(\"section\",null,n.a.createElement(\"h2\",null,\"Documentation\"),n.a.createElement(k,{users:f.docs})),n.a.createElement(\"section\",null,n.a.createElement(\"h2\",null,\"Translators\"),n.a.createElement(\"p\",null,\"More than 100 people have helped translate \",l.APP_NAME,\" and its addons into many languages — far more than we could hope to list here.\")),n.a.createElement(\"section\",null,n.a.createElement(\"p\",null,n.a.createElement(\"i\",null,\"Individual contributors are listed in no particular order. The order is randomized each visit.\"))));Object(i.a)(n.a.createElement(C,null))},15:function(e,r,a){\"use strict\";a.d(r,\"m\",(function(){return se})),a.d(r,\"n\",(function(){return te})),a.d(r,\"e\",(function(){return q})),a.d(r,\"c\",(function(){return G})),a.d(r,\"a\",(function(){return Y})),a.d(r,\"d\",(function(){return Z})),a.d(r,\"b\",(function(){return H})),a.d(r,\"l\",(function(){return W})),a.d(r,\"k\",(function(){return J})),a.d(r,\"j\",(function(){return K})),a.d(r,\"g\",(function(){return $})),a.d(r,\"h\",(function(){return ee})),a.d(r,\"f\",(function(){return re})),a.d(r,\"i\",(function(){return ne}));var t={};a.r(t),a.d(t,\"guiColors\",(function(){return d})),a.d(t,\"blockColors\",(function(){return y}));var n={};a.r(n),a.d(n,\"guiColors\",(function(){return m})),a.d(n,\"blockColors\",(function(){return g}));var o={};a.r(o),a.d(o,\"guiColors\",(function(){return p})),a.d(o,\"blockColors\",(function(){return M}));var s={};a.r(s),a.d(s,\"guiColors\",(function(){return h})),a.d(s,\"blockColors\",(function(){return I}));var i={};a.r(i),a.d(i,\"guiColors\",(function(){return f})),a.d(i,\"blockColors\",(function(){return b}));var c={};a.r(c),a.d(c,\"guiColors\",(function(){return D})),a.d(c,\"blockColors\",(function(){return k}));var u=a(143),l=a.n(u);const d={\"motion-primary\":\"hsla(260, 60%, 60%, 1)\",\"motion-primary-transparent\":\"hsla(260, 60%, 60%, 0.9)\",\"motion-tertiary\":\"hsla(260, 42%, 51%, 1)\",\"looks-secondary\":\"hsla(260, 60%, 60%, 1)\",\"looks-transparent\":\"hsla(260, 60%, 60%, 0.35)\",\"looks-light-transparent\":\"hsla(260, 60%, 60%, 0.15)\",\"looks-secondary-dark\":\"hsla(260, 42%, 51%, 1)\"},y={},m={\"looks-secondary\":\"hsla(215, 100%, 65%, 1)\",\"looks-transparent\":\"hsla(215, 100%, 65%, 0.35)\",\"looks-light-transparent\":\"hsla(215, 100%, 65%, 0.15)\",\"looks-secondary-dark\":\"hsla(215, 60%, 50%, 1)\"},g={},p={\"motion-primary\":\"#ff4c4c\",\"motion-primary-transparent\":\"#ff4c4ce6\",\"motion-tertiary\":\"#cc3333\",\"looks-secondary\":\"#ff4c4c\",\"looks-transparent\":\"#ff4d4d59\",\"looks-light-transparent\":\"#ff4d4d26\",\"looks-secondary-dark\":\"hsla(0, 42%, 51%, 1)\",\"extensions-primary\":\"hsla(10, 85%, 65%, 1)\",\"extensions-tertiary\":\"hsla(10, 85%, 40%, 1)\",\"extensions-transparent\":\"hsla(10, 85%, 65%, 0.35)\",\"extensions-light\":\"hsla(10, 57%, 85%, 1)\",\"drop-highlight\":\"#ff8c8c\"},M={checkboxActiveBackground:\"#ff4c4c\",checkboxActiveBorder:\"#cc3333\"},h={\"motion-primary\":\"#ff4c4c\",\"motion-primary-transparent\":\"#ff4c4ce6\",\"motion-tertiary\":\"#cc3333\",\"looks-secondary\":\"#ff4c4c\",\"looks-transparent\":\"#ff4d4d59\",\"looks-light-transparent\":\"#ff4d4d26\",\"looks-secondary-dark\":\"hsla(0, 42%, 51%, 1)\",\"extensions-primary\":\"hsla(10, 85%, 65%, 1)\",\"extensions-tertiary\":\"hsla(10, 85%, 40%, 1)\",\"extensions-transparent\":\"hsla(10, 85%, 65%, 0.35)\",\"extensions-light\":\"hsla(10, 57%, 85%, 1)\",\"drop-highlight\":\"#ff8c8c\",\"menu-bar-background-image\":\"linear-gradient(90deg, rgba(255, 0, 0, 0.75) 0%, rgba(255, 154, 0, 0.75) 10%, rgba(208, 222, 33, 0.75) 20%, rgba(79, 220, 74, 0.75) 30%, rgba(63, 218, 216, 0.75) 40%, rgba(47, 201, 226, 0.75) 50%, rgba(28, 127, 238, 0.75) 60%, rgba(95, 21, 242, 0.75) 70%, rgba(186, 12, 248, 0.75) 80%, rgba(251, 7, 217, 0.75) 90%, rgba(255, 0, 0, 0.75) 100%)\"},I={checkboxActiveBackground:\"#ff4c4c\",checkboxActiveBorder:\"#cc3333\"},f={\"color-scheme\":\"light\",\"ui-primary\":\"hsla(215, 100%, 95%, 1)\",\"ui-secondary\":\"hsla(215, 75%, 95%, 1)\",\"ui-tertiary\":\"hsla(215, 50%, 90%, 1)\",\"ui-modal-overlay\":\"var(--motion-primary-transparent)\",\"ui-modal-background\":\"hsla(0, 100%, 100%, 1)\",\"ui-modal-foreground\":\"hsla(225, 15%, 40%, 1)\",\"ui-modal-header-background\":\"var(--looks-secondary)\",\"ui-modal-header-foreground\":\"hsla(0, 100%, 100%, 1)\",\"ui-white\":\"hsla(0, 100%, 100%, 1)\",\"ui-white-dim\":\"hsla(0, 100%, 100%, 0.75)\",\"ui-white-transparent\":\"hsla(0, 100%, 100%, 0.25)\",\"ui-transparent\":\"hsla(0, 100%, 100%, 0)\",\"ui-black-transparent\":\"hsla(0, 0%, 0%, 0.15)\",\"text-primary\":\"hsla(225, 15%, 40%, 1)\",\"text-primary-transparent\":\"hsla(225, 15%, 40%, 0.75)\",\"motion-primary\":\"hsla(215, 100%, 65%, 1)\",\"motion-primary-transparent\":\"hsla(215, 100%, 65%, 0.9)\",\"motion-tertiary\":\"hsla(215, 60%, 50%, 1)\",\"looks-secondary\":\"hsla(260, 60%, 60%, 1)\",\"looks-transparent\":\"hsla(260, 60%, 60%, 0.35)\",\"looks-light-transparent\":\"hsla(260, 60%, 60%, 0.15)\",\"looks-secondary-dark\":\"hsla(260, 42%, 51%, 1)\",\"red-primary\":\"hsla(20, 100%, 55%, 1)\",\"red-tertiary\":\"hsla(20, 100%, 45%, 1)\",\"sound-primary\":\"hsla(300, 53%, 60%, 1)\",\"sound-tertiary\":\"hsla(300, 48%, 50%, 1)\",\"control-primary\":\"hsla(38, 100%, 55%, 1)\",\"data-primary\":\"hsla(30, 100%, 55%, 1)\",\"pen-primary\":\"hsla(163, 85%, 40%, 1)\",\"pen-transparent\":\"hsla(163, 85%, 40%, 0.25)\",\"pen-tertiary\":\"hsla(163, 86%, 30%, 1)\",\"error-primary\":\"hsla(30, 100%, 55%, 1)\",\"error-light\":\"hsla(30, 100%, 70%, 1)\",\"error-transparent\":\"hsla(30, 100%, 55%, 0.25)\",\"extensions-primary\":\"hsla(163, 85%, 40%, 1)\",\"extensions-tertiary\":\"hsla(163, 85%, 30%, 1)\",\"extensions-transparent\":\"hsla(163, 85%, 40%, 0.35)\",\"extensions-light\":\"hsla(163, 57%, 85%, 1)\",\"drop-highlight\":\"hsla(215, 100%, 77%, 1)\",\"menu-bar-background\":\"var(--looks-secondary)\",\"menu-bar-background-image\":\"none\",\"menu-bar-foreground\":\"#ffffff\",\"assets-background\":\"#ffffff\",\"input-background\":\"#ffffff\",\"popover-background\":\"#ffffff\",shadow:\"hsla(0, 0%, 0%, 0.15)\",\"badge-background\":\"#dbebff\",\"badge-border\":\"#b9d6ff\",\"fullscreen-background\":\"#ffffff\",\"fullscreen-accent\":\"#e8edf1\",\"page-background\":\"#ffffff\",\"page-foreground\":\"#000000\",\"project-title-inactive\":\"var(--ui-white-transparent)\",\"project-title-hover\":\"#ffffff7f\",\"link-color\":\"#2255dd\",\"filter-icon-black\":\"none\",\"filter-icon-gray\":\"grayscale(100%)\",\"filter-icon-white\":\"none\",\"paint-ui-pane-border\":\"var(--ui-black-transparent)\",\"paint-text-primary\":\"var(--text-primary)\",\"paint-form-border\":\"var(--ui-black-transparent)\",\"paint-looks-secondary\":\"var(--looks-secondary)\",\"paint-looks-transparent\":\"var(--looks-transparent)\",\"paint-input-background\":\"var(--input-background)\",\"paint-popover-background\":\"var(--popover-background)\",\"paint-filter-icon-gray\":\"none\"},b={},D={\"color-scheme\":\"dark\",\"ui-primary\":\"#111111\",\"ui-secondary\":\"#1e1e1e\",\"ui-tertiary\":\"#2e2e2e\",\"ui-modal-overlay\":\"#333333aa\",\"ui-modal-background\":\"#111111\",\"ui-modal-foreground\":\"#eeeeee\",\"ui-modal-header-background\":\"#333333\",\"ui-modal-header-foreground\":\"#ffffff\",\"ui-white\":\"#111111\",\"ui-black-transparent\":\"#ffffff26\",\"text-primary\":\"#eeeeee\",\"menu-bar-background\":\"#333333\",\"assets-background\":\"#111111\",\"input-background\":\"#1e1e1e\",\"popover-background\":\"#1e1e1e\",\"badge-background\":\"#16202c\",\"badge-border\":\"#203652\",\"fullscreen-background\":\"#111111\",\"fullscreen-accent\":\"#111111\",\"page-background\":\"#111111\",\"page-foreground\":\"#eeeeee\",\"project-title-inactive\":\"var(--ui-secondary)\",\"project-title-hover\":\"#ffffff3f\",\"link-color\":\"#44aaff\",\"filter-icon-black\":\"invert(100%)\",\"filter-icon-gray\":\"grayscale(100%) brightness(1.7)\",\"filter-icon-white\":\"brightness(0) invert(100%)\",\"paint-filter-icon-gray\":\"brightness(1.7)\"},k={insertionMarker:\"#cccccc\",workspace:\"#1e1e1e\",toolboxSelected:\"#1e1e1e\",toolboxText:\"#cccccc\",toolbox:\"#111111\",flyout:\"#111111\",scrollbar:\"#666666\",valueReportBackground:\"#1e1e1e\",valueReportBorder:\"#333333\",valueReportForeground:\"#eeeeee\",contextMenuBackground:\"#111111\",contextMenuBorder:\"#ffffff26\",contextMenuForeground:\"#eeeeee\",contextMenuActiveBackground:\"#2e2e2e\",contextMenuDisabledForeground:\"#666666\",flyoutLabelColor:\"#cccccc\",checkboxInactiveBackground:\"#222222\",checkboxInactiveBorder:\"#c8c8c8\",buttonBorder:\"#c6c6c6\",buttonActiveBackground:\"#222222\",buttonForeground:\"#cccccc\",zoomIconFilter:\"invert(100%)\",gridColor:\"#484848\"},C={motion:{primary:\"#4C97FF\",secondary:\"#4280D7\",tertiary:\"#3373CC\",quaternary:\"#3373CC\"},looks:{primary:\"#9966FF\",secondary:\"#855CD6\",tertiary:\"#774DCB\",quaternary:\"#774DCB\"},sounds:{primary:\"#CF63CF\",secondary:\"#C94FC9\",tertiary:\"#BD42BD\",quaternary:\"#BD42BD\"},control:{primary:\"#FFAB19\",secondary:\"#EC9C13\",tertiary:\"#CF8B17\",quaternary:\"#CF8B17\"},event:{primary:\"#FFBF00\",secondary:\"#E6AC00\",tertiary:\"#CC9900\",quaternary:\"#CC9900\"},sensing:{primary:\"#5CB1D6\",secondary:\"#47A8D1\",tertiary:\"#2E8EB8\",quaternary:\"#2E8EB8\"},pen:{primary:\"#0fBD8C\",secondary:\"#0DA57A\",tertiary:\"#0B8E69\",quaternary:\"#0B8E69\"},operators:{primary:\"#59C059\",secondary:\"#46B946\",tertiary:\"#389438\",quaternary:\"#389438\"},data:{primary:\"#FF8C1A\",secondary:\"#FF8000\",tertiary:\"#DB6E00\",quaternary:\"#DB6E00\"},data_lists:{primary:\"#FF661A\",secondary:\"#FF5500\",tertiary:\"#E64D00\",quaternary:\"#E64D00\"},more:{primary:\"#FF6680\",secondary:\"#FF4D6A\",tertiary:\"#FF3355\",quaternary:\"#FF3355\"},addons:{primary:\"#29beb8\",secondary:\"#3aa8a4\",tertiary:\"#3aa8a4\",quaternary:\"#3aa8a4\"},text:\"#FFFFFF\",workspace:\"#F9F9F9\",toolboxHover:\"#4C97FF\",toolboxSelected:\"#E9EEF2\",toolboxText:\"#575E75\",toolbox:\"#FFFFFF\",blackText:\"#575E75\",flyout:\"#F9F9F9\",scrollbar:\"#CECDCE\",scrollbarHover:\"#CECDCE\",textField:\"#FFFFFF\",textFieldText:\"#575E75\",insertionMarker:\"#000000\",insertionMarkerOpacity:.2,dragShadowOpacity:.6,stackGlow:\"#FFF200\",stackGlowSize:4,stackGlowOpacity:1,replacementGlow:\"#FFFFFF\",replacementGlowSize:2,replacementGlowOpacity:1,colourPickerStroke:\"#FFFFFF\",fieldShadow:\"rgba(255, 255, 255, 0.3)\",dropDownShadow:\"rgba(0, 0, 0, .3)\",numPadBackground:\"#547AB2\",numPadBorder:\"#435F91\",numPadActiveBackground:\"#435F91\",numPadText:\"white\",valueReportBackground:\"#FFFFFF\",valueReportBorder:\"#AAAAAA\",valueReportForeground:\"#000000\",menuHover:\"rgba(0, 0, 0, 0.2)\",contextMenuBackground:\"#ffffff\",contextMenuBorder:\"#cccccc\",contextMenuForeground:\"#000000\",contextMenuActiveBackground:\"#d6e9f8\",contextMenuDisabledForeground:\"#cccccc\",flyoutLabelColor:\"#575E75\",checkboxInactiveBackground:\"#ffffff\",checkboxInactiveBorder:\"#c8c8c8\",checkboxActiveBackground:\"#4C97FF\",checkboxActiveBorder:\"#3373CC\",checkboxCheck:\"#ffffff\",buttonBorder:\"#c6c6c6\",buttonActiveBackground:\"#ffffff\",buttonForeground:\"#575E75\",zoomIconFilter:\"none\",gridColor:\"#dddddd\"};var x=a(604),j=a.n(x),E=a(605),F=a.n(E),N=a(606),v=a.n(N),A=a(607),T=a.n(A),z=a(608),w=a.n(z);const S=e=>(e=>{let r,a,t,n,o;const s=e[0]/255,i=e[1]/255,c=e[2]/255,u=Math.max(s,i,c),l=u-Math.min(s,i,c),d=e=>(u-e)/6/l+.5;return 0===l?(n=0,o=0):(o=l/u,r=d(s),a=d(i),t=d(c),s===u?n=t-a:i===u?n=1/3+r-t:c===u&&(n=2/3+a-r),n<0?n+=1:n>1&&(n-=1)),[360*n,100*o,100*u]})((e=>{const r=Number.parseInt(e.substring(1),16);return[r>>16&255,r>>8&255,255&r]})(e)),B=e=>(e=>{const r=e[0]<<16|e[1]<<8|e[2];return\"#\".concat(r.toString(16).padStart(6,\"0\"))})((e=>{const r=e[0]/60,a=e[1]/100;let t=e[2]/100;const n=Math.floor(r)%6,o=r-Math.floor(r),s=255*t*(1-a),i=255*t*(1-a*o),c=255*t*(1-a*(1-o));switch(t*=255,n){case 0:return[t,c,s];case 1:return[i,t,s];case 2:return[s,t,c];case 3:return[s,i,t];case 4:return[c,s,t];case 5:return[t,s,i]}})(e)),O={music:{blockIconURI:j.a},pen:{blockIconURI:F.a},text2speech:{blockIconURI:v.a},translate:{blockIconURI:T.a},videoSensing:{blockIconURI:w.a}},L=(e,r,a)=>Math.max(r,Math.min(a,e)),P={primary:e=>{const r=S(e);return r[1]=L(r[1]-20,0,50),r[2]=L(r[2]+20,80,100),B(r)},secondary:e=>{const r=S(e);return r[1]=L(r[1]-40,0,50),r[2]=L(r[2]+20,80,100),B(r)},tertiary:e=>{const r=S(e);return r[2]=L(r[2]-20,0,100),B(r)},quaternary:e=>{const r=S(e);return r[1]=L(r[1]-60,0,100),r[2]=L(r[2]+20,90,100),B(r)},categoryIconBackground:e=>P.primary(e),categoryIconBorder:e=>P.tertiary(e)},Q={primary:e=>{const r=S(e);return r[2]=Math.max(r[2]-70,20),B(r)},secondary:()=>\"#4C4C4C\",tertiary:e=>e,quaternary:e=>e,categoryIconBackground:e=>Q.primary(e),categoryIconBorder:e=>Q.tertiary(e)};var U;function _(e,r,a){return(r=function(e){var r=function(e,r){if(\"object\"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var t=a.call(e,r||\"default\");if(\"object\"!=typeof t)return t;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===r?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof r?r:r+\"\"}(r))in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const G=\"purple\",Y=\"blue\",q=\"red\",Z=\"rainbow\",H={[G]:t,[Y]:n,[q]:o,[Z]:s},R=q,W=\"light\",J=\"dark\",V={[W]:i,[J]:c},X=W,K=\"three\",$=\"dark\",ee=\"high-contrast\",re=\"custom\",ae=K,te=C,ne={[K]:{blocksMediaFolder:\"blocks-media/default\",colors:C,extensions:{},customExtensionColors:{},useForStage:!0},[ee]:{blocksMediaFolder:\"blocks-media/high-contrast\",colors:l()({},{motion:{primary:\"#80B5FF\",secondary:\"#B3D2FF\",tertiary:\"#3373CC\",quaternary:\"#CCE1FF\"},looks:{primary:\"#CCB3FF\",secondary:\"#DDCCFF\",tertiary:\"#774DCB\",quaternary:\"#EEE5FF\"},sounds:{primary:\"#E19DE1\",secondary:\"#FFB3FF\",tertiary:\"#BD42BD\",quaternary:\"#FFCCFF\"},control:{primary:\"#FFBE4C\",secondary:\"#FFDA99\",tertiary:\"#CF8B17\",quaternary:\"#FFE3B3\"},event:{primary:\"#FFD966\",secondary:\"#FFECB3\",tertiary:\"#CC9900\",quaternary:\"#FFF2CC\"},sensing:{primary:\"#85C4E0\",secondary:\"#AED8EA\",tertiary:\"#2E8EB8\",quaternary:\"#C2E2F0\"},pen:{primary:\"#13ECAF\",secondary:\"#75F0CD\",tertiary:\"#0B8E69\",quaternary:\"#A3F5DE\"},operators:{primary:\"#7ECE7E\",secondary:\"#B5E3B5\",tertiary:\"#389438\",quaternary:\"#DAF1DA\"},data:{primary:\"#FFA54C\",secondary:\"#FFCC99\",tertiary:\"#DB6E00\",quaternary:\"#FFE5CC\"},data_lists:{primary:\"#FF9966\",secondary:\"#FFCAB0\",tertiary:\"#E64D00\",quaternary:\"#FFDDCC\"},more:{primary:\"#FF99AA\",secondary:\"#FFCCD5\",tertiary:\"#FF3355\",quaternary:\"#FFE5EA\"},addons:{primary:\"#34e4d0\",secondary:\"#71e2d5\",tertiary:\"#29b2a2\",quaternary:\"#9ee2db\"},text:\"#000000\",textFieldText:\"#000000\",toolboxText:\"#000000\",blackText:\"#000000\",toolboxHover:\"#3373CC\",insertionMarker:\"#000000\",insertionMarkerOpacity:.2,fieldShadow:\"rgba(255, 255, 255, 0.3)\",dragShadowOpacity:.6,menuHover:\"rgba(255, 255, 255, 0.3)\"},te),extensions:O,customExtensionColors:P,useForStage:!0},[$]:{blocksMediaFolder:\"blocks-media/default\",colors:l()({},{motion:{primary:\"#0F1E33\",secondary:\"#4C4C4C\",tertiary:\"#4C97FF\",quaternary:\"#4C97FF\"},looks:{primary:\"#1E1433\",secondary:\"#4C4C4C\",tertiary:\"#9966FF\",quaternary:\"#9966FF\"},sounds:{primary:\"#291329\",secondary:\"#4C4C4C\",tertiary:\"#CF63CF\",quaternary:\"#CF63CF\"},control:{primary:\"#332205\",secondary:\"#4C4C4C\",tertiary:\"#FFAB19\",quaternary:\"#FFAB19\"},event:{primary:\"#332600\",secondary:\"#4C4C4C\",tertiary:\"#FFBF00\",quaternary:\"#FFBF00\"},sensing:{primary:\"#12232A\",secondary:\"#4C4C4C\",tertiary:\"#5CB1D6\",quaternary:\"#5CB1D6\"},pen:{primary:\"#03251C\",secondary:\"#4C4C4C\",tertiary:\"#0fBD8C\",quaternary:\"#0fBD8C\"},operators:{primary:\"#112611\",secondary:\"#4C4C4C\",tertiary:\"#59C059\",quaternary:\"#59C059\"},data:{primary:\"#331C05\",secondary:\"#4C4C4C\",tertiary:\"#FF8C1A\",quaternary:\"#FF8C1A\"},data_lists:{primary:\"#331405\",secondary:\"#4C4C4C\",tertiary:\"#FF661A\",quaternary:\"#FF661A\"},more:{primary:\"#331419\",secondary:\"#4C4C4C\",tertiary:\"#FF6680\",quaternary:\"#FF6680\"},addons:{primary:\"#0b3331\",secondary:\"#4C4C4C\",tertiary:\"#34e4d0\",quaternary:\"#34e4d0\"},text:\"rgba(255, 255, 255, .7)\",textFieldText:\"#E5E5E5\",textField:\"#4C4C4C\",menuHover:\"rgba(255, 255, 255, 0.3)\"},te),extensions:{},customExtensionColors:Q,useForStage:!1},[re]:{blocksMediaFolder:\"blocks-media/default\",colors:C,extensions:{},customExtensionColors:{},useForStage:!1}};let oe=0;class se{constructor(e,r,a){this.id=++oe,this.accent=Object.prototype.hasOwnProperty.call(H,e)?e:R,this.gui=Object.prototype.hasOwnProperty.call(V,r)?r:X,this.blocks=Object.prototype.hasOwnProperty.call(ne,a)?a:ae}set(e,r){if(\"accent\"===e)return new se(r,this.gui,this.blocks);if(\"gui\"===e)return new se(this.accent,r,this.blocks);if(\"blocks\"===e)return new se(this.accent,this.gui,r);throw new Error(\"Unknown theme property: \".concat(e))}getBlocksMediaFolder(){return ne[this.blocks].blocksMediaFolder}getGuiColors(){return l()({},H[this.accent].guiColors,V[this.gui].guiColors,f)}getBlockColors(){return l()({},H[this.accent].blockColors,V[this.gui].blockColors,ne[this.blocks].colors)}getExtensions(){return ne[this.blocks].extensions}isDark(){return\"dark\"===this.getGuiColors()[\"color-scheme\"]}getStageBlockColors(){return ne[this.blocks].useForStage?this.getBlockColors():se.light.getBlockColors()}getCustomExtensionColors(){return ne[this.blocks].customExtensionColors}}_(se,\"light\",new(U=se)(R,W,ae)),_(se,\"dark\",new U(R,J,ae)),_(se,\"highContrast\",new U(R,X,ee))},214:function(e,r,a){\"use strict\";a.d(r,\"a\",(function(){return s}));var t=a(15),n=a(53);a(701);const o=[\"motion\",\"looks\",\"sounds\",\"control\",\"event\",\"sensing\",\"pen\",\"operators\",\"data\",\"data_lists\",\"more\",\"addons\"],s=e=>{const r=document.documentElement,a=t.m.light.getGuiColors();for(const[e,t]of Object.entries(a))r.style.setProperty(\"--\".concat(e,\"-default\"),t);const s=e.getGuiColors();for(const[e,a]of Object.entries(s))r.style.setProperty(\"--\".concat(e),a);const i=e.getBlockColors();r.style.setProperty(\"--editorTheme3-blockText\",i.text),r.style.setProperty(\"--editorTheme3-inputColor\",i.textField),r.style.setProperty(\"--editorTheme3-inputColor-text\",i.textFieldText);for(const e of o)r.style.setProperty(\"--editorTheme3-\".concat(e,\"-primary\"),i[e].primary),r.style.setProperty(\"--editorTheme3-\".concat(e,\"-secondary\"),i[e].secondary),r.style.setProperty(\"--editorTheme3-\".concat(e,\"-tertiary\"),i[e].tertiary),r.style.setProperty(\"--editorTheme3-\".concat(e,\"-field-background\"),i[e].quaternary);let c=document.head.querySelector(\"meta[name=theme-color]\");c||(c=document.createElement(\"meta\"),c.setAttribute(\"name\",\"theme-color\"),document.head.appendChild(c)),c.setAttribute(\"content\",(e=>{const r=e.match(/^var\\(([\\w-]+)\\)$/);return r?document.documentElement.style.getPropertyValue(r[1]):e})(s[\"menu-bar-background\"])),window.Recolor={primary:s[\"looks-secondary\"]},n.a.recolorCallbacks.forEach((e=>e()))}},24:function(e,r){e.exports={APP_NAME:\"TurboWarp\"}},252:function(e,r,a){\"use strict\";var t=a(126),n=a.n(t),o=a(96);const s=document.getElementById(\"app\");for(;s.firstChild;)s.removeChild(s.firstChild);Object(o.setAppElement)(s);r.a=e=>{n.a.render(e,s),window.SplashEnd&&window.SplashEnd()}},437:function(e,r,a){var t=a(1371);\"string\"==typeof t&&(t=[[e.i,t,\"\"]]);var n={hmr:!0,transform:undefined,insertInto:void 0};a(10)(t,n);t.locals&&(e.exports=t.locals)},53:function(e,r,a){\"use strict\";r.a={appStateReducer:()=>{},appStateStore:null,blockly:null,blocklyWorkspace:null,blocklyCallbacks:[],recolorCallbacks:[]}},604:function(e,r){e.exports=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI2LjQzMzggMzBDMjkuNTEzIDMwIDMxLjYzNjYgMjguMTU2OSAzMS4xNzkgMjUuODc0QzI4LjI5OTQgMTMuMDQzNiAyNy40MjU2IDkuODUxMzQgMjcuOTQ1NCA5LjYwNTQ3QzI4LjMxMjUgOS40MzE4MyAyOS4zNzQ2IDEwLjcyNzYgMzAuOTE2MiAxMS4xMzU5QzM0LjY0MTYgMTIuMTEyNiA0MC4yNzQyIDYuNDA3NTEgMzQuNTY1NSA3LjI5MTg2QzMyLjMyMjQgNy42MzkgMzAuMTU4NyA2LjIzODM2IDI4LjQ4NzkgNS4xNTY3OUMyNS45MDcyIDMuNDg2MiAyNC41MDI0IDIuNTc2ODQgMjUuNzk3NCAxMC4wNDUxQzI2LjQzNDkgMTMuNzAzNSAyNi45Njk3IDE2LjMyMzEgMjcuMzQ3NSAxOC4xNzM5QzI3Ljk5NTcgMjEuMzQ5NCAyOC4xODE5IDIyLjI2MTYgMjcuNjMyNSAyMi4yNzQxQzI3LjMzMjEgMjIuMTUyIDI3LjAzMjcgMjIuMDU3OCAyNi42OTU3IDIxLjk3MjRDMjYuMDg4IDIxLjgyMjUgMjUuNDUxNiAyMS43MzgyIDI0LjgwNTMgMjEuNzM4MkMyMS43MjcxIDIxLjczODIgMTkuNjAzNiAyMy41ODkyIDIwLjA2MjEgMjUuODc0QzIwLjUxMDcgMjguMTU2OSAyMy4zNjQ2IDMwIDI2LjQzMzggMzBaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNOS40Mzg2MSAzNi4wMDAxQzEyLjUwNjUgMzYuMDAwMSAxNC42MzAyIDM0LjE0OCAxNC4xODE3IDMxLjg2NDJDMTEuMzAzMiAxOS4wMzM2IDEwLjQyOTkgMTUuODQxNiAxMC45NDk2IDE1LjU5NThDMTEuMzE2NiAxNS40MjIyIDEyLjM3ODMgMTYuNzE3NyAxMy45MTkgMTcuMTI2QzE3LjY0MjggMTguMTEzNiAyMy4yNzI5IDEyLjM5ODUgMTcuNTY2NyAxMy4yOTE4QzE1LjMyNDggMTMuNjM4NiAxMy4xNjIzIDEyLjIzODIgMTEuNDkyMiAxMS4xNTY5QzguOTEyMzcgOS40ODYzNiA3LjUwNzk3IDguNTc2OTggOC44MDI1MSAxNi4wNDUxQzkuNDQyOTQgMTkuNzI4NiA5Ljk3OTggMjIuMzU5NCAxMC4zNTggMjQuMjEyNUMxMC45OTEyIDI3LjMxNTQgMTEuMTc5NSAyOC4yMzg0IDEwLjY2NDQgMjguMjczMkM5Ljc4NDMyIDI3LjkyNTggOC44MTIzOSAyNy43MjkzIDcuODEwODIgMjcuNzI5M0M0LjczNCAyNy43MjkzIDIuNjExMzQgMjkuNTgwNCAzLjA1OTc4IDMxLjg2NDJDMy41MTgwOSAzNC4xNDggNi4zNzA2OSAzNi4wMDAxIDkuNDM4NjEgMzYuMDAwMVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=\"},605:function(e,r,a){e.exports=a.p+\"static/assets/b631383707e87a454b479dedaa8ca014.svg\"},606:function(e,r){e.exports=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2IDIxLjY2OTNWMzQuMjgzNEMxNiAzNS44MTUxIDE0IDM2LjUzNTkgMTIuOCAzNS41NDQ4TDEwLjIgMzMuMzgyNEM5LjIgMzIuNTcxNSA4IDMyLjIxMTEgNi43IDMyLjIxMTFINi4zQzUgMzIuMjExMSA0IDMxLjMxMDEgNCAzMC4xMzg4VjI1LjkwNDFDNCAyNC43MzI4IDUgMjMuODMxOCA2LjMgMjMuODMxOEg2LjdDOCAyMy44MzE4IDkuMiAyMy4zODEzIDEwLjEgMjIuNjYwNEwxMi44IDIwLjQ5OEMxNCAxOS40MTY4IDE2IDIwLjIyNzcgMTYgMjEuNjY5M1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0yNCA0QzE5LjU4MTcgNCAxNiA3LjU4MTcyIDE2IDEyQzE2IDE1LjExNDcgMTcuNzc5OSAxNy44MTM2IDIwLjM3ODEgMTkuMTM1MUMyMC4yMDk1IDIwLjkwODcgMTkuNjU2NCAyMS42NjU1IDE5LjMwNDIgMjIuMTQ3M0MxOS4xMjY1IDIyLjM5MDQgMTkgMjIuNTYzNSAxOSAyMi43NjE5QzE5IDIzLjQyODYgMTkuNjY2NyAyMy40Mjg2IDE5LjY2NjcgMjMuNDI4NkMyMC42MTMyIDIzLjQyODYgMjMuNTgxMyAyMi4yNjIzIDI1LjQwOTcgMjBIMjhDMzIuNDE4MyAyMCAzNiAxNi40MTgzIDM2IDEyQzM2IDcuNTgxNzIgMzIuNDE4MyA0IDI4IDRIMjRaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMEI4RTY5Ii8+Cjwvc3ZnPgo=\"},607:function(e,r,a){e.exports=a.p+\"static/assets/ef4a998a82a8567de018baa4607bc6a0.svg\"},608:function(e,r){e.exports=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBvcGFjaXR5PSIwLjI1IiBjeD0iMzIiIGN5PSIyNiIgcj0iNCIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzBCOEU2OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxjaXJjbGUgb3BhY2l0eT0iMC41IiBjeD0iMzIiIGN5PSIyMiIgcj0iNCIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzBCOEU2OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxjaXJjbGUgb3BhY2l0eT0iMC43NSIgY3g9IjMyIiBjeT0iMTgiIHI9IjQiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMwQjhFNjkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIzMiIgY3k9IjE0IiByPSI0IiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMEI4RTY5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE3IDE3LjVMMjIuNCAxNEMyMi45IDEzLjcgMjMuNSAxMy44IDIzLjggMTQuM0MyMy45IDE0LjUgMjQgMTQuNyAyNCAxNC44VjI1LjFDMjQgMjUuNyAyMy41IDI2LjEgMjMgMjYuMUMyMi44IDI2LjEgMjIuNiAyNiAyMi41IDI1LjlMMTcgMjIuNlYyNEMxNyAyNi4yIDE1LjIgMjguMSAxMyAyOC4xSDQuMUMxLjggMjggMCAyNi4yIDAgMjRWMTYuMUMwIDEzLjggMS44IDEyIDQuMSAxMkgxM0MxNS4yIDEyIDE3IDEzLjggMTcgMTYuMVYxNy41WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==\"},701:function(e,r,a){var t=a(702);\"string\"==typeof t&&(t=[[e.i,t,\"\"]]);var n={hmr:!0,transform:undefined,insertInto:void 0};a(10)(t,n);t.locals&&(e.exports=t.locals)},702:function(e,r,a){(e.exports=a(9)(!1)).push([e.i,'/* overridden by src/lib/themes/guiHelpers.js */\\n\\n/* This is for overriding some styles that don\\'t really \"belong\" to any existing stylesheets */\\n\\n/* Try to use this sparingly, otherwise this will become unmaintainable again... */\\n\\n:root {\\n color-scheme: var(--color-scheme);\\n}\\n\\n/* popover is used by gui and paint */\\n\\n/* some of these are duplicated over there too; !important makes sure these win */\\n\\n.Popover {\\n color-scheme: light !important;\\n}\\n\\n.Popover-body {\\n color: var(--text-primary) !important;\\n background: var(--popover-background) !important;\\n border: 1px solid var(--ui-black-transparent) !important;\\n box-shadow: 0px 0px 8px 1px var(--shadow) !important;\\n}\\n\\n.Popover-tipShape {\\n fill: var(--popover-background) !important;\\n stroke: var(--ui-black-transparent) !important;\\n}\\n\\n/* ScratchAdddons editor-dark-mode compatibility */\\n\\n:root {\\n --editorDarkMode-primary: var(--looks-secondary);\\n --editorDarkMode-primary-transparent35: var(--looks-transparent);\\n --editorDarkMode-primary-variant: var(--looks-secondary-dark);\\n --editorDarkMode-border: var(--ui-black-transparent);\\n --editorDarkMode-accent: var(--ui-modal-background);\\n --editorDarkMode-categoryMenu-text: var(--text-primary);\\n --editorDarkMode-accent-text: var(--text-primary);\\n --editorDarkMode-page: var(--ui-primary);\\n --editorDarkMode-highlightText: var(--looks-secondary);\\n}\\n',\"\"])},78:function(e,r,a){\"use strict\";a.d(r,\"b\",(function(){return u})),a.d(r,\"a\",(function(){return l})),a.d(r,\"c\",(function(){return d}));var t=a(15);const n=e=>window.matchMedia?window.matchMedia(e):null,o=n(\"(prefers-contrast: more)\"),s=n(\"(prefers-color-scheme: dark)\"),i=\"tw:theme\",c=()=>o&&o.matches?t.m.highContrast:s&&s.matches?t.m.dark:t.m.light,u=e=>o&&s&&o.addEventListener&&s.addEventListener?(o.addEventListener(\"change\",e),s.addEventListener(\"change\",e),()=>{o.removeEventListener(\"change\",e),s.removeEventListener(\"change\",e)}):()=>{},l=()=>{const e=c();try{const r=localStorage.getItem(i);if(\"dark\"===r)return t.m.dark;if(\"light\"===r)return t.m.light;const a=JSON.parse(r);return new t.m(a.accent||e.accent,a.gui||e.gui,a.blocks||e.blocks)}catch(e){}return e},d=e=>{const r=c(),a={};if(e.accent!==r.accent&&(a.accent=e.accent),e.gui!==r.gui&&(a.gui=e.gui),e.blocks!==r.blocks&&e.blocks!==t.f&&(a.blocks=e.blocks),0===Object.keys(a).length)try{localStorage.removeItem(i)}catch(e){}else try{localStorage.setItem(i,JSON.stringify(a))}catch(e){}}}});","name":"js/pentapod/credits.f6681cda96508656793a.js","input":"var GUI =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tfunction webpackJsonpCallback(data) {\n/******/ \t\tvar chunkIds = data[0];\n/******/ \t\tvar moreModules = data[1];\n/******/ \t\tvar executeModules = data[2];\n/******/\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n/******/\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/\n/******/ \t\t// add entry modules from loaded chunk to deferred list\n/******/ \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n/******/\n/******/ \t\t// run deferred modules when all chunks ready\n/******/ \t\treturn checkDeferredModules();\n/******/ \t};\n/******/ \tfunction checkDeferredModules() {\n/******/ \t\tvar result;\n/******/ \t\tfor(var i = 0; i < deferredModules.length; i++) {\n/******/ \t\t\tvar deferredModule = deferredModules[i];\n/******/ \t\t\tvar fulfilled = true;\n/******/ \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n/******/ \t\t\t\tvar depId = deferredModule[j];\n/******/ \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n/******/ \t\t\t}\n/******/ \t\t\tif(fulfilled) {\n/******/ \t\t\t\tdeferredModules.splice(i--, 1);\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/\n/******/ \t\treturn result;\n/******/ \t}\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n/******/ \t// Promise = chunk loading, 0 = chunk loaded\n/******/ \tvar installedChunks = {\n/******/ \t\t84: 0\n/******/ \t};\n/******/\n/******/ \tvar deferredModules = [];\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \tvar jsonpArray = window[\"webpackJsonpGUI\"] = window[\"webpackJsonpGUI\"] || [];\n/******/ \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n/******/ \tjsonpArray.push = webpackJsonpCallback;\n/******/ \tjsonpArray = jsonpArray.slice();\n/******/ \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n/******/ \tvar parentJsonpFunction = oldJsonpFunction;\n/******/\n/******/\n/******/ \t// add entry module to deferred list\n/******/ \tdeferredModules.push([1376,0]);\n/******/ \t// run deferred modules when ready\n/******/ \treturn checkDeferredModules();\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 1371:\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(9)(false);\n// imports\n\n\n// module\nexports.push([module.i, \"/* overridden by src/lib/themes/guiHelpers.js */\\n\\n* {\\n box-sizing: border-box;\\n}\\n\\nbody {\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n margin: 0;\\n padding: 0;\\n background: var(--page-background);\\n color: var(--page-foreground);\\n}\\n\\na {\\n color: var(--link-color);\\n}\\n\\n.credits_main_3LZ_8 section {\\n max-width: 900px;\\n margin: auto;\\n margin-bottom: 30px;\\n}\\n\\n.credits_header-container_Vx3wA {\\n color: white;\\n background-color: var(--looks-secondary);\\n padding: 20px 0;\\n text-align: center;\\n margin-bottom: 30px;\\n}\\n\\n.credits_header-text_1KkFs {\\n\\n}\\n\\n.credits_users_3H8Bg {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n}\\n\\n.credits_user-image_3BJ_h {\\n margin-right: 12px;\\n}\\n\\n.credits_user_Hnnpd {\\n display: flex;\\n align-items: center;\\n width: 300px;\\n padding: 4px;\\n border-radius: 4px;\\n font-size: 1.25rem;\\n color: inherit !important;\\n text-decoration: none;\\n transition: background .2s;\\n}\\n\\n.credits_user_Hnnpd:link:hover {\\n background: var(--ui-black-transparent);\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"main\": \"credits_main_3LZ_8\",\n\t\"header-container\": \"credits_header-container_Vx3wA\",\n\t\"headerContainer\": \"credits_header-container_Vx3wA\",\n\t\"header-text\": \"credits_header-text_1KkFs\",\n\t\"headerText\": \"credits_header-text_1KkFs\",\n\t\"users\": \"credits_users_3H8Bg\",\n\t\"user-image\": \"credits_user-image_3BJ_h\",\n\t\"userImage\": \"credits_user-image_3BJ_h\",\n\t\"user\": \"credits_user_Hnnpd\"\n};\n\n/***/ }),\n\n/***/ 1376:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(1);\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// EXTERNAL MODULE: ./node_modules/prop-types/index.js\nvar prop_types = __webpack_require__(0);\nvar prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);\n\n// EXTERNAL MODULE: ./src/playground/app-target.js\nvar app_target = __webpack_require__(252);\n\n// EXTERNAL MODULE: ./src/playground/credits/credits.css\nvar credits = __webpack_require__(437);\nvar credits_default = /*#__PURE__*/__webpack_require__.n(credits);\n\n// EXTERNAL MODULE: ./src/lib/brand.js\nvar brand = __webpack_require__(24);\n\n// EXTERNAL MODULE: ./src/lib/themes/guiHelpers.js\nvar guiHelpers = __webpack_require__(214);\n\n// EXTERNAL MODULE: ./src/lib/themes/themePersistance.js\nvar themePersistance = __webpack_require__(78);\n\n// CONCATENATED MODULE: ./src/playground/credits/users.js\nconst shuffle = list => {\n for (let i = list.length - 1; i > 0; i--) {\n const random = Math.floor(Math.random() * (i + 1));\n const tmp = list[i];\n list[i] = list[random];\n list[random] = tmp;\n }\n return list;\n};\nconst fromHardcoded = _ref => {\n let {\n userID = '0',\n username\n } = _ref;\n const result = {\n image: \"https://trampoline.turbowarp.org/avatars/\".concat(userID),\n text: username\n };\n if (username && userID !== '0') {\n result.href = \"https://scratch.mit.edu/users/\".concat(username, \"/\");\n }\n return result;\n};\n\n// The lists below are in no particular order.\n\nconst contributors = [{\n userID: '41219524',\n username: 'CubesterYT'\n}, {\n userID: '64691048',\n username: 'CST1229'\n}, {\n userID: '128887584',\n username: 'FurryR'\n}, {\n userID: '17340565',\n username: 'GarboMuffin'\n}, {\n userID: '12498592',\n username: 'LilyMakesThings'\n}, {\n userID: '105362329',\n username: 'TrueFantom'\n}, {\n userID: '9636514',\n username: 'Tacodiva7729'\n}, {\n userID: '141930175',\n username: 'SimonShiki'\n}, {\n userID: '34824813',\n username: 'Geotale'\n}, {\n username: 'Wowfunhappy'\n}].map(fromHardcoded);\nconst addonDevelopers = [{\n userID: '34018398',\n username: 'Jeffalo'\n}, {\n userID: '64184234',\n username: 'ErrorGamer2000'\n}, {\n userID: '41616512',\n username: 'pufferfish101007'\n}, {\n userID: '61409215',\n username: 'TheColaber'\n}, {\n userID: '1882674',\n username: 'griffpatch'\n}, {\n userID: '10817178',\n username: 'apple502j'\n}, {\n userID: '16947341',\n username: '--Explosion--'\n}, {\n userID: '14880401',\n username: 'Sheep_maker'\n}, {\n userID: '9981676',\n username: 'NitroCipher'\n}, {\n userID: '2561680',\n username: 'lisa_wolfgang'\n}, {\n userID: '60000111',\n username: 'GDUcrash'\n}, {\n userID: '4648559',\n username: 'World_Languages'\n}, {\n userID: '17340565',\n username: 'GarboMuffin'\n}, {\n userID: '5354974',\n username: 'Chrome_Cat'\n}, {\n userID: '34455896',\n username: 'summerscar'\n}, {\n userID: '55742784',\n username: 'RedGuy7'\n}, {\n userID: '9636514',\n username: 'Tacodiva7729'\n}, {\n userID: '14792872',\n username: '_nix'\n}, {\n userID: '30323614',\n username: 'BarelySmooth'\n}, {\n userID: '64691048',\n username: 'CST1229'\n}, {\n username: 'DNin01'\n}, {\n userID: '16426047',\n username: 'Maximouse'\n}, {\n username: 'retronbv'\n}, {\n username: 'GrahamSH'\n}, {\n userID: '22529928',\n username: 'simiagain'\n}, {\n username: 'Secret-chest'\n}, {\n userID: '11677378',\n username: 'Mr_MPH'\n}, {\n username: 'TheKodeToad'\n}].map(fromHardcoded);\n\n// generated by TurboWarp/extensions/scripts/get-credits-for-gui.js\nconst extensionDevelopers = [{\n username: '-SIPC-'\n}, {\n username: '0832'\n}, {\n userID: '74246431',\n username: '0znzw'\n}, {\n userID: '17235330',\n username: 'aleb2005'\n}, {\n username: 'BlueDome77'\n}, {\n username: 'ClaytonTDM'\n}, {\n userID: '37070511',\n username: 'cs2627883'\n}, {\n userID: '64691048',\n username: 'CST1229'\n}, {\n userID: '41219524',\n username: 'CubesterYT'\n}, {\n userID: '33988895',\n username: 'D-ScratchNinja'\n}, {\n username: 'DT'\n}, {\n userID: '1882674',\n username: 'griffpatch'\n}, {\n userID: '41876695',\n username: 'JeremyGamer13'\n}, {\n userID: '12498592',\n username: 'LilyMakesThings'\n}, {\n username: 'MikeDEV'\n}, {\n userID: '62325737',\n username: 'mybearworld'\n}, {\n userID: '62950341',\n username: 'NamelessCat'\n}, {\n username: 'NOname-awa'\n}, {\n userID: '26959223',\n username: 'pinksheep2917'\n}, {\n username: 'pumpkinhasapatch'\n}, {\n userID: '126715567',\n username: 'PwLDev'\n}, {\n userID: '139929771',\n username: 'qxsck'\n}, {\n userID: '29118689',\n username: 'RedMan13'\n}, {\n userID: '80038021',\n username: 'RixTheTyrunt'\n}, {\n userID: '45777723',\n username: 'DemonX5'\n}, {\n userID: '14880401',\n username: 'Sheep_maker'\n}, {\n userID: '103496265',\n username: 'shreder95ua'\n}, {\n userID: '72467731',\n username: 'Skyhigh173'\n}, {\n userID: '52066199',\n username: 'softed'\n}, {\n username: 'TheShovel'\n}, {\n userID: '105362329',\n username: 'TrueFantom'\n}, {\n userID: '19133274',\n username: 'Vadik1'\n}, {\n username: 'veggiecan0419'\n}, {\n userID: '82486672',\n username: 'lolecksdeehaha'\n}, {\n userID: '3318598',\n username: 'plant2014'\n}, {\n userID: '128778351',\n username: 'XmerOriginals'\n}, {\n username: 'ZXMushroom63'\n}].map(fromHardcoded);\nconst docs = [{\n userID: '12498592',\n username: 'LilyMakesThings'\n}, {\n username: 'DNin01'\n}, {\n username: 'Samq64'\n}, {\n username: '61080GBA'\n}, {\n username: 'adazem009'\n}, {\n username: 'sajtosteszta32'\n}, {\n username: 'yoyomonem'\n}, {\n userID: '55742784',\n username: 'RedGuy7'\n}, {\n username: '28klotlucas2'\n}, {\n username: 'PPPDUD'\n}, {\n username: 'BackThePortal'\n}, {\n username: 'Naleksuh'\n}].map(fromHardcoded);\n/* harmony default export */ var credits_users = ({\n contributors: shuffle(contributors),\n addonDevelopers: shuffle(addonDevelopers),\n extensionDevelopers: shuffle(extensionDevelopers),\n docs: shuffle(docs)\n});\n// CONCATENATED MODULE: ./src/playground/credits/credits.jsx\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n\n\n\n\n\n\n\n\n\n/* eslint-disable react/jsx-no-literals */\n\nObject(guiHelpers[\"a\" /* applyGuiColors */])(Object(themePersistance[\"a\" /* detectTheme */])());\ndocument.documentElement.lang = 'en';\nconst User = _ref => {\n let {\n image,\n text,\n href\n } = _ref;\n return /*#__PURE__*/react_default.a.createElement(\"a\", {\n href: href,\n target: \"_blank\",\n rel: \"noreferrer\",\n className: credits_default.a.user\n }, /*#__PURE__*/react_default.a.createElement(\"img\", {\n loading: \"lazy\",\n className: credits_default.a.userImage,\n src: image,\n width: \"60\",\n height: \"60\"\n }), /*#__PURE__*/react_default.a.createElement(\"div\", {\n className: credits_default.a.userInfo\n }, text));\n};\nUser.propTypes = {\n image: prop_types_default.a.string.isRequired,\n text: prop_types_default.a.string.isRequired,\n href: prop_types_default.a.string\n};\nconst UserList = _ref2 => {\n let {\n users\n } = _ref2;\n return /*#__PURE__*/react_default.a.createElement(\"div\", {\n className: credits_default.a.users\n }, users.map((data, index) => /*#__PURE__*/react_default.a.createElement(User, _extends({\n key: index\n }, data))));\n};\nUserList.propTypes = {\n users: prop_types_default.a.arrayOf(prop_types_default.a.object)\n};\nconst Credits = () => /*#__PURE__*/react_default.a.createElement(\"main\", {\n className: credits_default.a.main\n}, /*#__PURE__*/react_default.a.createElement(\"header\", {\n className: credits_default.a.headerContainer\n}, /*#__PURE__*/react_default.a.createElement(\"h1\", {\n className: credits_default.a.headerText\n}, brand[\"APP_NAME\"], \" Credits\")), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"p\", null, \"The \", brand[\"APP_NAME\"], \" project is made possible by the work of many volunteers.\")), brand[\"APP_NAME\"] !== 'TurboWarp' &&\n/*#__PURE__*/\n// Be kind and considerate. Don't remove this :)\nreact_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"h2\", null, \"TurboWarp\"), /*#__PURE__*/react_default.a.createElement(\"p\", null, brand[\"APP_NAME\"], \" is based on \", /*#__PURE__*/react_default.a.createElement(\"a\", {\n href: \"https://turbowarp.org/\"\n}, \"TurboWarp\"), \".\")), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"h2\", null, \"Scratch\"), /*#__PURE__*/react_default.a.createElement(\"p\", null, brand[\"APP_NAME\"], \" is based on the work of the \", /*#__PURE__*/react_default.a.createElement(\"a\", {\n href: \"https://scratch.mit.edu/credits\"\n}, \"Scratch contributors\"), \" but is not endorsed by Scratch in any way.\"), /*#__PURE__*/react_default.a.createElement(\"p\", null, /*#__PURE__*/react_default.a.createElement(\"a\", {\n href: \"https://scratch.mit.edu/donate\"\n}, \"Donate to support Scratch.\"))), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"h2\", null, \"Contributors\"), /*#__PURE__*/react_default.a.createElement(UserList, {\n users: credits_users.contributors\n})), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"h2\", null, \"Addons\"), /*#__PURE__*/react_default.a.createElement(UserList, {\n users: credits_users.addonDevelopers\n})), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"h2\", null, \"TurboWarp Extension Gallery\"), /*#__PURE__*/react_default.a.createElement(UserList, {\n users: credits_users.extensionDevelopers\n})), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"h2\", null, \"Documentation\"), /*#__PURE__*/react_default.a.createElement(UserList, {\n users: credits_users.docs\n})), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"h2\", null, \"Translators\"), /*#__PURE__*/react_default.a.createElement(\"p\", null, \"More than 100 people have helped translate \", brand[\"APP_NAME\"], \" and its addons into many languages \\u2014 far more than we could hope to list here.\")), /*#__PURE__*/react_default.a.createElement(\"section\", null, /*#__PURE__*/react_default.a.createElement(\"p\", null, /*#__PURE__*/react_default.a.createElement(\"i\", null, \"Individual contributors are listed in no particular order. The order is randomized each visit.\"))));\nObject(app_target[\"a\" /* default */])(/*#__PURE__*/react_default.a.createElement(Credits, null));\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"m\", function() { return /* binding */ themes_Theme; });\n__webpack_require__.d(__webpack_exports__, \"n\", function() { return /* binding */ defaultBlockColors; });\n__webpack_require__.d(__webpack_exports__, \"e\", function() { return /* binding */ ACCENT_RED; });\n__webpack_require__.d(__webpack_exports__, \"c\", function() { return /* binding */ ACCENT_PURPLE; });\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ ACCENT_BLUE; });\n__webpack_require__.d(__webpack_exports__, \"d\", function() { return /* binding */ ACCENT_RAINBOW; });\n__webpack_require__.d(__webpack_exports__, \"b\", function() { return /* binding */ ACCENT_MAP; });\n__webpack_require__.d(__webpack_exports__, \"l\", function() { return /* binding */ GUI_LIGHT; });\n__webpack_require__.d(__webpack_exports__, \"k\", function() { return /* binding */ GUI_DARK; });\n__webpack_require__.d(__webpack_exports__, \"j\", function() { return /* binding */ BLOCKS_THREE; });\n__webpack_require__.d(__webpack_exports__, \"g\", function() { return /* binding */ BLOCKS_DARK; });\n__webpack_require__.d(__webpack_exports__, \"h\", function() { return /* binding */ BLOCKS_HIGH_CONTRAST; });\n__webpack_require__.d(__webpack_exports__, \"f\", function() { return /* binding */ BLOCKS_CUSTOM; });\n__webpack_require__.d(__webpack_exports__, \"i\", function() { return /* binding */ BLOCKS_MAP; });\n\n// UNUSED EXPORTS: GUI_MAP\n\n// NAMESPACE OBJECT: ./src/lib/themes/accent/purple.js\nvar purple_namespaceObject = {};\n__webpack_require__.r(purple_namespaceObject);\n__webpack_require__.d(purple_namespaceObject, \"guiColors\", function() { return guiColors; });\n__webpack_require__.d(purple_namespaceObject, \"blockColors\", function() { return blockColors; });\n\n// NAMESPACE OBJECT: ./src/lib/themes/accent/blue.js\nvar blue_namespaceObject = {};\n__webpack_require__.r(blue_namespaceObject);\n__webpack_require__.d(blue_namespaceObject, \"guiColors\", function() { return blue_guiColors; });\n__webpack_require__.d(blue_namespaceObject, \"blockColors\", function() { return blue_blockColors; });\n\n// NAMESPACE OBJECT: ./src/lib/themes/accent/red.js\nvar red_namespaceObject = {};\n__webpack_require__.r(red_namespaceObject);\n__webpack_require__.d(red_namespaceObject, \"guiColors\", function() { return red_guiColors; });\n__webpack_require__.d(red_namespaceObject, \"blockColors\", function() { return red_blockColors; });\n\n// NAMESPACE OBJECT: ./src/lib/themes/accent/rainbow.js\nvar rainbow_namespaceObject = {};\n__webpack_require__.r(rainbow_namespaceObject);\n__webpack_require__.d(rainbow_namespaceObject, \"guiColors\", function() { return rainbow_guiColors; });\n__webpack_require__.d(rainbow_namespaceObject, \"blockColors\", function() { return rainbow_blockColors; });\n\n// NAMESPACE OBJECT: ./src/lib/themes/gui/light.js\nvar light_namespaceObject = {};\n__webpack_require__.r(light_namespaceObject);\n__webpack_require__.d(light_namespaceObject, \"guiColors\", function() { return light_guiColors; });\n__webpack_require__.d(light_namespaceObject, \"blockColors\", function() { return light_blockColors; });\n\n// NAMESPACE OBJECT: ./src/lib/themes/gui/dark.js\nvar dark_namespaceObject = {};\n__webpack_require__.r(dark_namespaceObject);\n__webpack_require__.d(dark_namespaceObject, \"guiColors\", function() { return dark_guiColors; });\n__webpack_require__.d(dark_namespaceObject, \"blockColors\", function() { return dark_blockColors; });\n\n// EXTERNAL MODULE: ./node_modules/lodash.defaultsdeep/index.js\nvar lodash_defaultsdeep = __webpack_require__(143);\nvar lodash_defaultsdeep_default = /*#__PURE__*/__webpack_require__.n(lodash_defaultsdeep);\n\n// CONCATENATED MODULE: ./src/lib/themes/accent/purple.js\nconst guiColors = {\n 'motion-primary': 'hsla(260, 60%, 60%, 1)',\n 'motion-primary-transparent': 'hsla(260, 60%, 60%, 0.9)',\n 'motion-tertiary': 'hsla(260, 42%, 51%, 1)',\n 'looks-secondary': 'hsla(260, 60%, 60%, 1)',\n 'looks-transparent': 'hsla(260, 60%, 60%, 0.35)',\n 'looks-light-transparent': 'hsla(260, 60%, 60%, 0.15)',\n 'looks-secondary-dark': 'hsla(260, 42%, 51%, 1)'\n};\nconst blockColors = {};\n\n// CONCATENATED MODULE: ./src/lib/themes/accent/blue.js\nconst blue_guiColors = {\n 'looks-secondary': 'hsla(215, 100%, 65%, 1)',\n 'looks-transparent': 'hsla(215, 100%, 65%, 0.35)',\n 'looks-light-transparent': 'hsla(215, 100%, 65%, 0.15)',\n 'looks-secondary-dark': 'hsla(215, 60%, 50%, 1)'\n};\nconst blue_blockColors = {};\n\n// CONCATENATED MODULE: ./src/lib/themes/accent/red.js\nconst red_guiColors = {\n 'motion-primary': '#ff4c4c',\n 'motion-primary-transparent': '#ff4c4ce6',\n 'motion-tertiary': '#cc3333',\n 'looks-secondary': '#ff4c4c',\n 'looks-transparent': '#ff4d4d59',\n 'looks-light-transparent': '#ff4d4d26',\n 'looks-secondary-dark': 'hsla(0, 42%, 51%, 1)',\n 'extensions-primary': 'hsla(10, 85%, 65%, 1)',\n 'extensions-tertiary': 'hsla(10, 85%, 40%, 1)',\n 'extensions-transparent': 'hsla(10, 85%, 65%, 0.35)',\n 'extensions-light': 'hsla(10, 57%, 85%, 1)',\n 'drop-highlight': '#ff8c8c'\n};\nconst red_blockColors = {\n checkboxActiveBackground: '#ff4c4c',\n checkboxActiveBorder: '#cc3333'\n};\n\n// CONCATENATED MODULE: ./src/lib/themes/accent/rainbow.js\nconst rainbow_guiColors = {\n 'motion-primary': '#ff4c4c',\n 'motion-primary-transparent': '#ff4c4ce6',\n 'motion-tertiary': '#cc3333',\n 'looks-secondary': '#ff4c4c',\n 'looks-transparent': '#ff4d4d59',\n 'looks-light-transparent': '#ff4d4d26',\n 'looks-secondary-dark': 'hsla(0, 42%, 51%, 1)',\n 'extensions-primary': 'hsla(10, 85%, 65%, 1)',\n 'extensions-tertiary': 'hsla(10, 85%, 40%, 1)',\n 'extensions-transparent': 'hsla(10, 85%, 65%, 0.35)',\n 'extensions-light': 'hsla(10, 57%, 85%, 1)',\n 'drop-highlight': '#ff8c8c',\n // eslint-disable-next-line max-len\n 'menu-bar-background-image': 'linear-gradient(90deg, rgba(255, 0, 0, 0.75) 0%, rgba(255, 154, 0, 0.75) 10%, rgba(208, 222, 33, 0.75) 20%, rgba(79, 220, 74, 0.75) 30%, rgba(63, 218, 216, 0.75) 40%, rgba(47, 201, 226, 0.75) 50%, rgba(28, 127, 238, 0.75) 60%, rgba(95, 21, 242, 0.75) 70%, rgba(186, 12, 248, 0.75) 80%, rgba(251, 7, 217, 0.75) 90%, rgba(255, 0, 0, 0.75) 100%)'\n};\nconst rainbow_blockColors = {\n checkboxActiveBackground: '#ff4c4c',\n checkboxActiveBorder: '#cc3333'\n};\n\n// CONCATENATED MODULE: ./src/lib/themes/gui/light.js\nconst light_guiColors = {\n 'color-scheme': 'light',\n 'ui-primary': 'hsla(215, 100%, 95%, 1)',\n /* #E5F0FF */\n 'ui-secondary': 'hsla(215, 75%, 95%, 1)',\n /* #E9F1FC */\n 'ui-tertiary': 'hsla(215, 50%, 90%, 1)',\n /* #D9E3F2 */\n\n 'ui-modal-overlay': 'var(--motion-primary-transparent)',\n 'ui-modal-background': 'hsla(0, 100%, 100%, 1)',\n /* #FFFFFF */\n 'ui-modal-foreground': 'hsla(225, 15%, 40%, 1)',\n /* #575E75 */\n 'ui-modal-header-background': 'var(--looks-secondary)',\n 'ui-modal-header-foreground': 'hsla(0, 100%, 100%, 1)',\n /* #FFFFFF */\n\n 'ui-white': 'hsla(0, 100%, 100%, 1)',\n /* #FFFFFF */\n 'ui-white-dim': 'hsla(0, 100%, 100%, 0.75)',\n /* 25% transparent version of ui-white */\n 'ui-white-transparent': 'hsla(0, 100%, 100%, 0.25)',\n /* 25% transparent version of ui-white */\n 'ui-transparent': 'hsla(0, 100%, 100%, 0)',\n /* 25% transparent version of ui-white */\n\n 'ui-black-transparent': 'hsla(0, 0%, 0%, 0.15)',\n /* 15% transparent version of black */\n\n 'text-primary': 'hsla(225, 15%, 40%, 1)',\n /* #575E75 */\n 'text-primary-transparent': 'hsla(225, 15%, 40%, 0.75)',\n 'motion-primary': 'hsla(215, 100%, 65%, 1)',\n /* #4C97FF */\n 'motion-primary-transparent': 'hsla(215, 100%, 65%, 0.9)',\n /* 90% transparent version of motion-primary */\n 'motion-tertiary': 'hsla(215, 60%, 50%, 1)',\n /* #3373CC */\n\n 'looks-secondary': 'hsla(260, 60%, 60%, 1)',\n /* #855CD6 */\n 'looks-transparent': 'hsla(260, 60%, 60%, 0.35)',\n /* 35% transparent version of looks-tertiary */\n 'looks-light-transparent': 'hsla(260, 60%, 60%, 0.15)',\n /* 15% transparent version of looks-tertiary */\n 'looks-secondary-dark': 'hsla(260, 42%, 51%, 1)',\n /* #714EB6 */\n\n 'red-primary': 'hsla(20, 100%, 55%, 1)',\n /* #FF661A */\n 'red-tertiary': 'hsla(20, 100%, 45%, 1)',\n /* #E64D00 */\n\n 'sound-primary': 'hsla(300, 53%, 60%, 1)',\n /* #CF63CF */\n 'sound-tertiary': 'hsla(300, 48%, 50%, 1)',\n /* #BD42BD */\n\n 'control-primary': 'hsla(38, 100%, 55%, 1)',\n /* #FFAB19 */\n\n 'data-primary': 'hsla(30, 100%, 55%, 1)',\n /* #FF8C1A */\n\n 'pen-primary': 'hsla(163, 85%, 40%, 1)',\n /* #0FBD8C */\n 'pen-transparent': 'hsla(163, 85%, 40%, 0.25)',\n /* #0FBD8C */\n 'pen-tertiary': 'hsla(163, 86%, 30%, 1)',\n /* #0B8E69 */\n\n 'error-primary': 'hsla(30, 100%, 55%, 1)',\n /* #FF8C1A */\n 'error-light': 'hsla(30, 100%, 70%, 1)',\n /* #FFB366 */\n 'error-transparent': 'hsla(30, 100%, 55%, 0.25)',\n /* #FF8C1A */\n\n 'extensions-primary': 'hsla(163, 85%, 40%, 1)',\n /* #0FBD8C */\n 'extensions-tertiary': 'hsla(163, 85%, 30%, 1)',\n /* #0B8E69 */\n 'extensions-transparent': 'hsla(163, 85%, 40%, 0.35)',\n /* 35% transparent version of extensions-primary */\n 'extensions-light': 'hsla(163, 57%, 85%, 1)',\n /* opaque version of extensions-transparent, on white bg */\n\n 'drop-highlight': 'hsla(215, 100%, 77%, 1)',\n /* lighter than motion-primary */\n\n 'menu-bar-background': 'var(--looks-secondary)',\n 'menu-bar-background-image': 'none',\n 'menu-bar-foreground': '#ffffff',\n 'assets-background': '#ffffff',\n 'input-background': '#ffffff',\n 'popover-background': '#ffffff',\n 'shadow': 'hsla(0, 0%, 0%, 0.15)',\n 'badge-background': '#dbebff',\n 'badge-border': '#b9d6ff',\n 'fullscreen-background': '#ffffff',\n 'fullscreen-accent': '#e8edf1',\n 'page-background': '#ffffff',\n 'page-foreground': '#000000',\n 'project-title-inactive': 'var(--ui-white-transparent)',\n 'project-title-hover': '#ffffff7f',\n 'link-color': '#2255dd',\n 'filter-icon-black': 'none',\n 'filter-icon-gray': 'grayscale(100%)',\n 'filter-icon-white': 'none',\n 'paint-ui-pane-border': 'var(--ui-black-transparent)',\n 'paint-text-primary': 'var(--text-primary)',\n 'paint-form-border': 'var(--ui-black-transparent)',\n 'paint-looks-secondary': 'var(--looks-secondary)',\n 'paint-looks-transparent': 'var(--looks-transparent)',\n 'paint-input-background': 'var(--input-background)',\n 'paint-popover-background': 'var(--popover-background)',\n 'paint-filter-icon-gray': 'none'\n};\nconst light_blockColors = {};\n\n// CONCATENATED MODULE: ./src/lib/themes/gui/dark.js\nconst dark_guiColors = {\n 'color-scheme': 'dark',\n 'ui-primary': '#111111',\n 'ui-secondary': '#1e1e1e',\n 'ui-tertiary': '#2e2e2e',\n 'ui-modal-overlay': '#333333aa',\n 'ui-modal-background': '#111111',\n 'ui-modal-foreground': '#eeeeee',\n 'ui-modal-header-background': '#333333',\n 'ui-modal-header-foreground': '#ffffff',\n 'ui-white': '#111111',\n 'ui-black-transparent': '#ffffff26',\n 'text-primary': '#eeeeee',\n 'menu-bar-background': '#333333',\n 'assets-background': '#111111',\n 'input-background': '#1e1e1e',\n 'popover-background': '#1e1e1e',\n 'badge-background': '#16202c',\n 'badge-border': '#203652',\n 'fullscreen-background': '#111111',\n 'fullscreen-accent': '#111111',\n 'page-background': '#111111',\n 'page-foreground': '#eeeeee',\n 'project-title-inactive': 'var(--ui-secondary)',\n 'project-title-hover': '#ffffff3f',\n 'link-color': '#44aaff',\n 'filter-icon-black': 'invert(100%)',\n 'filter-icon-gray': 'grayscale(100%) brightness(1.7)',\n 'filter-icon-white': 'brightness(0) invert(100%)',\n 'paint-filter-icon-gray': 'brightness(1.7)'\n};\nconst dark_blockColors = {\n insertionMarker: '#cccccc',\n workspace: '#1e1e1e',\n toolboxSelected: '#1e1e1e',\n toolboxText: '#cccccc',\n toolbox: '#111111',\n flyout: '#111111',\n scrollbar: '#666666',\n valueReportBackground: '#1e1e1e',\n valueReportBorder: '#333333',\n valueReportForeground: '#eeeeee',\n contextMenuBackground: '#111111',\n contextMenuBorder: '#ffffff26',\n contextMenuForeground: '#eeeeee',\n contextMenuActiveBackground: '#2e2e2e',\n contextMenuDisabledForeground: '#666666',\n flyoutLabelColor: '#cccccc',\n checkboxInactiveBackground: '#222222',\n checkboxInactiveBorder: '#c8c8c8',\n buttonBorder: '#c6c6c6',\n buttonActiveBackground: '#222222',\n buttonForeground: '#cccccc',\n zoomIconFilter: 'invert(100%)',\n gridColor: '#484848'\n};\n\n// CONCATENATED MODULE: ./src/lib/themes/blocks/three.js\nconst three_blockColors = {\n motion: {\n primary: '#4C97FF',\n secondary: '#4280D7',\n tertiary: '#3373CC',\n quaternary: '#3373CC'\n },\n looks: {\n primary: '#9966FF',\n secondary: '#855CD6',\n tertiary: '#774DCB',\n quaternary: '#774DCB'\n },\n sounds: {\n primary: '#CF63CF',\n secondary: '#C94FC9',\n tertiary: '#BD42BD',\n quaternary: '#BD42BD'\n },\n control: {\n primary: '#FFAB19',\n secondary: '#EC9C13',\n tertiary: '#CF8B17',\n quaternary: '#CF8B17'\n },\n event: {\n primary: '#FFBF00',\n secondary: '#E6AC00',\n tertiary: '#CC9900',\n quaternary: '#CC9900'\n },\n sensing: {\n primary: '#5CB1D6',\n secondary: '#47A8D1',\n tertiary: '#2E8EB8',\n quaternary: '#2E8EB8'\n },\n pen: {\n primary: '#0fBD8C',\n secondary: '#0DA57A',\n tertiary: '#0B8E69',\n quaternary: '#0B8E69'\n },\n operators: {\n primary: '#59C059',\n secondary: '#46B946',\n tertiary: '#389438',\n quaternary: '#389438'\n },\n data: {\n primary: '#FF8C1A',\n secondary: '#FF8000',\n tertiary: '#DB6E00',\n quaternary: '#DB6E00'\n },\n // This is not a new category, but rather for differentiation\n // between lists and scalar variables.\n data_lists: {\n primary: '#FF661A',\n secondary: '#FF5500',\n tertiary: '#E64D00',\n quaternary: '#E64D00'\n },\n more: {\n primary: '#FF6680',\n secondary: '#FF4D6A',\n tertiary: '#FF3355',\n quaternary: '#FF3355'\n },\n addons: {\n primary: '#29beb8',\n secondary: '#3aa8a4',\n tertiary: '#3aa8a4',\n quaternary: '#3aa8a4'\n },\n text: '#FFFFFF',\n workspace: '#F9F9F9',\n toolboxHover: '#4C97FF',\n toolboxSelected: '#E9EEF2',\n toolboxText: '#575E75',\n toolbox: '#FFFFFF',\n blackText: '#575E75',\n flyout: '#F9F9F9',\n scrollbar: '#CECDCE',\n scrollbarHover: '#CECDCE',\n textField: '#FFFFFF',\n textFieldText: '#575E75',\n insertionMarker: '#000000',\n insertionMarkerOpacity: 0.2,\n dragShadowOpacity: 0.6,\n stackGlow: '#FFF200',\n stackGlowSize: 4,\n stackGlowOpacity: 1,\n replacementGlow: '#FFFFFF',\n replacementGlowSize: 2,\n replacementGlowOpacity: 1,\n colourPickerStroke: '#FFFFFF',\n // CSS colours: support RGBA\n fieldShadow: 'rgba(255, 255, 255, 0.3)',\n dropDownShadow: 'rgba(0, 0, 0, .3)',\n numPadBackground: '#547AB2',\n numPadBorder: '#435F91',\n numPadActiveBackground: '#435F91',\n numPadText: 'white',\n // Do not use hex here, it cannot be inlined with data-uri SVG\n valueReportBackground: '#FFFFFF',\n valueReportBorder: '#AAAAAA',\n valueReportForeground: '#000000',\n menuHover: 'rgba(0, 0, 0, 0.2)',\n contextMenuBackground: '#ffffff',\n contextMenuBorder: '#cccccc',\n contextMenuForeground: '#000000',\n contextMenuActiveBackground: '#d6e9f8',\n contextMenuDisabledForeground: '#cccccc',\n flyoutLabelColor: '#575E75',\n checkboxInactiveBackground: '#ffffff',\n checkboxInactiveBorder: '#c8c8c8',\n checkboxActiveBackground: '#4C97FF',\n checkboxActiveBorder: '#3373CC',\n checkboxCheck: '#ffffff',\n buttonBorder: '#c6c6c6',\n buttonActiveBackground: '#ffffff',\n buttonForeground: '#575E75',\n zoomIconFilter: 'none',\n gridColor: '#dddddd'\n};\nconst extensions = {};\n\n// EXTERNAL MODULE: ./src/lib/themes/blocks/high-contrast-media/extensions/musicIcon.svg\nvar musicIcon = __webpack_require__(604);\nvar musicIcon_default = /*#__PURE__*/__webpack_require__.n(musicIcon);\n\n// EXTERNAL MODULE: ./src/lib/themes/blocks/high-contrast-media/extensions/penIcon.svg\nvar penIcon = __webpack_require__(605);\nvar penIcon_default = /*#__PURE__*/__webpack_require__.n(penIcon);\n\n// EXTERNAL MODULE: ./src/lib/themes/blocks/high-contrast-media/extensions/text2speechIcon.svg\nvar text2speechIcon = __webpack_require__(606);\nvar text2speechIcon_default = /*#__PURE__*/__webpack_require__.n(text2speechIcon);\n\n// EXTERNAL MODULE: ./src/lib/themes/blocks/high-contrast-media/extensions/translateIcon.svg\nvar translateIcon = __webpack_require__(607);\nvar translateIcon_default = /*#__PURE__*/__webpack_require__.n(translateIcon);\n\n// EXTERNAL MODULE: ./src/lib/themes/blocks/high-contrast-media/extensions/videoSensingIcon.svg\nvar videoSensingIcon = __webpack_require__(608);\nvar videoSensingIcon_default = /*#__PURE__*/__webpack_require__.n(videoSensingIcon);\n\n// CONCATENATED MODULE: ./src/lib/tw-color-utils.js\n/*\n Parts of this file are from https://github.com/Qix-/color-convert/blob/6b7dee5a168f76bf42c084fefa7bbe1a0941ad7e/conversions.js\n\n Copyright (c) 2011-2016 Heather Arthur .\n Copyright (c) 2016-2021 Josh Junon .\n\n Permission is hereby granted, free of charge, to any person obtaining\n a copy of this software and associated documentation files (the\n \"Software\"), to deal in the Software without restriction, including\n without limitation the rights to use, copy, modify, merge, publish,\n distribute, sublicense, and/or sell copies of the Software, and to\n permit persons to whom the Software is furnished to do so, subject to\n the following conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/**\n * @param {string} hex hex color code like #abc123\n * @returns {number[]} [r, g, b] in range [0-255]. Alpha channel is ignored.\n */\nconst hex2rgb = hex => {\n const parsed = Number.parseInt(hex.substring(1), 16);\n return [parsed >> 16 & 255, parsed >> 8 & 255, parsed & 255];\n};\n\n/**\n * @param {number[]} rgb [r, g, b] in range [0-255]\n * @returns {string} hex color code like #123abc\n */\nconst rgb2hex = rgb => {\n const number = rgb[0] << 16 | rgb[1] << 8 | rgb[2];\n return \"#\".concat(number.toString(16).padStart(6, '0'));\n};\n\n/**\n * @param {number[]} rgb [r, g, b] in range [0-255]\n * @returns {number[]} [h, s, v] in range [0-360] for h, [0-100] for s, v\n */\nconst rgb2hsv = rgb => {\n let rdif;\n let gdif;\n let bdif;\n let h;\n let s;\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const v = Math.max(r, g, b);\n const diff = v - Math.min(r, g, b);\n const diffc = c => (v - c) / 6 / diff + 1 / 2;\n if (diff === 0) {\n h = 0;\n s = 0;\n } else {\n s = diff / v;\n rdif = diffc(r);\n gdif = diffc(g);\n bdif = diffc(b);\n if (r === v) {\n h = bdif - gdif;\n } else if (g === v) {\n h = 1 / 3 + rdif - bdif;\n } else if (b === v) {\n h = 2 / 3 + gdif - rdif;\n }\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n return [h * 360, s * 100, v * 100];\n};\n\n/**\n * @param {number[]} hsv [h, s, v] in range [0-360] for h, [0-100] for s, v\n * @returns {number[]} [r, g, b] in range [0-255]\n */\nconst hsv2rgb = hsv => {\n const h = hsv[0] / 60;\n const s = hsv[1] / 100;\n let v = hsv[2] / 100;\n const hi = Math.floor(h) % 6;\n const f = h - Math.floor(h);\n const p = 255 * v * (1 - s);\n const q = 255 * v * (1 - s * f);\n const t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n switch (hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n};\nconst hex2hsv = hex => rgb2hsv(hex2rgb(hex));\nconst hsv2hex = hsv => rgb2hex(hsv2rgb(hsv));\n\n// CONCATENATED MODULE: ./src/lib/themes/blocks/high-contrast.js\n\n\n\n\n\n\nconst high_contrast_blockColors = {\n motion: {\n primary: '#80B5FF',\n secondary: '#B3D2FF',\n tertiary: '#3373CC',\n quaternary: '#CCE1FF'\n },\n looks: {\n primary: '#CCB3FF',\n secondary: '#DDCCFF',\n tertiary: '#774DCB',\n quaternary: '#EEE5FF'\n },\n sounds: {\n primary: '#E19DE1',\n secondary: '#FFB3FF',\n tertiary: '#BD42BD',\n quaternary: '#FFCCFF'\n },\n control: {\n primary: '#FFBE4C',\n secondary: '#FFDA99',\n tertiary: '#CF8B17',\n quaternary: '#FFE3B3'\n },\n event: {\n primary: '#FFD966',\n secondary: '#FFECB3',\n tertiary: '#CC9900',\n quaternary: '#FFF2CC'\n },\n sensing: {\n primary: '#85C4E0',\n secondary: '#AED8EA',\n tertiary: '#2E8EB8',\n quaternary: '#C2E2F0'\n },\n pen: {\n primary: '#13ECAF',\n secondary: '#75F0CD',\n tertiary: '#0B8E69',\n quaternary: '#A3F5DE'\n },\n operators: {\n primary: '#7ECE7E',\n secondary: '#B5E3B5',\n tertiary: '#389438',\n quaternary: '#DAF1DA'\n },\n data: {\n primary: '#FFA54C',\n secondary: '#FFCC99',\n tertiary: '#DB6E00',\n quaternary: '#FFE5CC'\n },\n // This is not a new category, but rather for differentiation\n // between lists and scalar variables.\n data_lists: {\n primary: '#FF9966',\n secondary: '#FFCAB0',\n // I don't think this is used, b/c we don't have any droppable fields in list blocks\n tertiary: '#E64D00',\n quaternary: '#FFDDCC'\n },\n more: {\n primary: '#FF99AA',\n secondary: '#FFCCD5',\n tertiary: '#FF3355',\n quaternary: '#FFE5EA'\n },\n addons: {\n primary: '#34e4d0',\n secondary: '#71e2d5',\n tertiary: '#29b2a2',\n quaternary: '#9ee2db'\n },\n text: '#000000',\n textFieldText: '#000000',\n // Text inside of inputs e.g. 90 in [point in direction (90)]\n toolboxText: '#000000',\n // Toolbox text, color picker text (used to be #575E75)\n blackText: '#000000',\n // The color that the category menu label (e.g. 'motion', 'looks', etc.) changes to on hover\n toolboxHover: '#3373CC',\n insertionMarker: '#000000',\n insertionMarkerOpacity: 0.2,\n fieldShadow: 'rgba(255, 255, 255, 0.3)',\n dragShadowOpacity: 0.6,\n menuHover: 'rgba(255, 255, 255, 0.3)'\n};\nconst high_contrast_extensions = {\n music: {\n blockIconURI: musicIcon_default.a\n },\n pen: {\n blockIconURI: penIcon_default.a\n },\n text2speech: {\n blockIconURI: text2speechIcon_default.a\n },\n translate: {\n blockIconURI: translateIcon_default.a\n },\n videoSensing: {\n blockIconURI: videoSensingIcon_default.a\n }\n};\nconst clamp = (value, lower, upper) => Math.max(lower, Math.min(upper, value));\nconst customExtensionColors = {\n primary: _primary => {\n const hsv = hex2hsv(_primary);\n hsv[1] = clamp(hsv[1] - 20, 0, 50);\n hsv[2] = clamp(hsv[2] + 20, 80, 100);\n return hsv2hex(hsv);\n },\n secondary: primary => {\n const hsv = hex2hsv(primary);\n hsv[1] = clamp(hsv[1] - 40, 0, 50);\n hsv[2] = clamp(hsv[2] + 20, 80, 100);\n return hsv2hex(hsv);\n },\n tertiary: primary => {\n const hsv = hex2hsv(primary);\n hsv[2] = clamp(hsv[2] - 20, 0, 100);\n return hsv2hex(hsv);\n },\n quaternary: primary => {\n const hsv = hex2hsv(primary);\n hsv[1] = clamp(hsv[1] - 60, 0, 100);\n hsv[2] = clamp(hsv[2] + 20, 90, 100);\n return hsv2hex(hsv);\n },\n categoryIconBackground: primary => customExtensionColors.primary(primary),\n categoryIconBorder: primary => customExtensionColors.tertiary(primary)\n};\n\n// CONCATENATED MODULE: ./src/lib/themes/blocks/dark.js\n\nconst blocks_dark_blockColors = {\n motion: {\n primary: '#0F1E33',\n secondary: '#4C4C4C',\n tertiary: '#4C97FF',\n quaternary: '#4C97FF'\n },\n looks: {\n primary: '#1E1433',\n secondary: '#4C4C4C',\n tertiary: '#9966FF',\n quaternary: '#9966FF'\n },\n sounds: {\n primary: '#291329',\n secondary: '#4C4C4C',\n tertiary: '#CF63CF',\n quaternary: '#CF63CF'\n },\n control: {\n primary: '#332205',\n secondary: '#4C4C4C',\n tertiary: '#FFAB19',\n quaternary: '#FFAB19'\n },\n event: {\n primary: '#332600',\n secondary: '#4C4C4C',\n tertiary: '#FFBF00',\n quaternary: '#FFBF00'\n },\n sensing: {\n primary: '#12232A',\n secondary: '#4C4C4C',\n tertiary: '#5CB1D6',\n quaternary: '#5CB1D6'\n },\n pen: {\n primary: '#03251C',\n secondary: '#4C4C4C',\n tertiary: '#0fBD8C',\n quaternary: '#0fBD8C'\n },\n operators: {\n primary: '#112611',\n secondary: '#4C4C4C',\n tertiary: '#59C059',\n quaternary: '#59C059'\n },\n data: {\n primary: '#331C05',\n secondary: '#4C4C4C',\n tertiary: '#FF8C1A',\n quaternary: '#FF8C1A'\n },\n data_lists: {\n primary: '#331405',\n secondary: '#4C4C4C',\n tertiary: '#FF661A',\n quaternary: '#FF661A'\n },\n more: {\n primary: '#331419',\n secondary: '#4C4C4C',\n tertiary: '#FF6680',\n quaternary: '#FF6680'\n },\n addons: {\n primary: '#0b3331',\n secondary: '#4C4C4C',\n tertiary: '#34e4d0',\n quaternary: '#34e4d0'\n },\n text: 'rgba(255, 255, 255, .7)',\n textFieldText: '#E5E5E5',\n textField: '#4C4C4C',\n menuHover: 'rgba(255, 255, 255, 0.3)'\n};\nconst dark_extensions = {};\nconst dark_customExtensionColors = {\n primary: _primary => {\n const hsv = hex2hsv(_primary);\n hsv[2] = Math.max(hsv[2] - 70, 20);\n return hsv2hex(hsv);\n },\n secondary: () => '#4C4C4C',\n tertiary: primary => primary,\n quaternary: primary => primary,\n categoryIconBackground: primary => dark_customExtensionColors.primary(primary),\n categoryIconBorder: primary => dark_customExtensionColors.tertiary(primary)\n};\n\n// CONCATENATED MODULE: ./src/lib/themes/index.js\nvar _Theme;\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\n\n\n\n\n\n\n\nconst ACCENT_PURPLE = 'purple';\nconst ACCENT_BLUE = 'blue';\nconst ACCENT_RED = 'red';\nconst ACCENT_RAINBOW = 'rainbow';\nconst ACCENT_MAP = {\n [ACCENT_PURPLE]: purple_namespaceObject,\n [ACCENT_BLUE]: blue_namespaceObject,\n [ACCENT_RED]: red_namespaceObject,\n [ACCENT_RAINBOW]: rainbow_namespaceObject\n};\nconst ACCENT_DEFAULT = ACCENT_RED;\nconst GUI_LIGHT = 'light';\nconst GUI_DARK = 'dark';\nconst GUI_MAP = {\n [GUI_LIGHT]: light_namespaceObject,\n [GUI_DARK]: dark_namespaceObject\n};\nconst GUI_DEFAULT = GUI_LIGHT;\nconst BLOCKS_THREE = 'three';\nconst BLOCKS_DARK = 'dark';\nconst BLOCKS_HIGH_CONTRAST = 'high-contrast';\nconst BLOCKS_CUSTOM = 'custom';\nconst BLOCKS_DEFAULT = BLOCKS_THREE;\nconst defaultBlockColors = three_blockColors;\nconst BLOCKS_MAP = {\n [BLOCKS_THREE]: {\n blocksMediaFolder: 'blocks-media/default',\n colors: three_blockColors,\n extensions: extensions,\n customExtensionColors: {},\n useForStage: true\n },\n [BLOCKS_HIGH_CONTRAST]: {\n blocksMediaFolder: 'blocks-media/high-contrast',\n colors: lodash_defaultsdeep_default()({}, high_contrast_blockColors, defaultBlockColors),\n extensions: high_contrast_extensions,\n customExtensionColors: customExtensionColors,\n useForStage: true\n },\n [BLOCKS_DARK]: {\n blocksMediaFolder: 'blocks-media/default',\n colors: lodash_defaultsdeep_default()({}, blocks_dark_blockColors, defaultBlockColors),\n extensions: dark_extensions,\n customExtensionColors: dark_customExtensionColors,\n useForStage: false\n },\n [BLOCKS_CUSTOM]: {\n // to be filled by editor-theme3 addon\n blocksMediaFolder: 'blocks-media/default',\n colors: three_blockColors,\n extensions: {},\n customExtensionColors: {},\n useForStage: false\n }\n};\nlet themeObjectsCreated = 0;\nclass themes_Theme {\n constructor(accent, gui, blocks) {\n // do not modify these directly\n /** @readonly */\n this.id = ++themeObjectsCreated;\n /** @readonly */\n this.accent = Object.prototype.hasOwnProperty.call(ACCENT_MAP, accent) ? accent : ACCENT_DEFAULT;\n /** @readonly */\n this.gui = Object.prototype.hasOwnProperty.call(GUI_MAP, gui) ? gui : GUI_DEFAULT;\n /** @readonly */\n this.blocks = Object.prototype.hasOwnProperty.call(BLOCKS_MAP, blocks) ? blocks : BLOCKS_DEFAULT;\n }\n set(what, to) {\n if (what === 'accent') {\n return new themes_Theme(to, this.gui, this.blocks);\n } else if (what === 'gui') {\n return new themes_Theme(this.accent, to, this.blocks);\n } else if (what === 'blocks') {\n return new themes_Theme(this.accent, this.gui, to);\n }\n throw new Error(\"Unknown theme property: \".concat(what));\n }\n getBlocksMediaFolder() {\n return BLOCKS_MAP[this.blocks].blocksMediaFolder;\n }\n getGuiColors() {\n return lodash_defaultsdeep_default()({}, ACCENT_MAP[this.accent].guiColors, GUI_MAP[this.gui].guiColors, light_guiColors);\n }\n getBlockColors() {\n return lodash_defaultsdeep_default()({}, ACCENT_MAP[this.accent].blockColors, GUI_MAP[this.gui].blockColors, BLOCKS_MAP[this.blocks].colors);\n }\n getExtensions() {\n return BLOCKS_MAP[this.blocks].extensions;\n }\n isDark() {\n return this.getGuiColors()['color-scheme'] === 'dark';\n }\n getStageBlockColors() {\n if (BLOCKS_MAP[this.blocks].useForStage) {\n return this.getBlockColors();\n }\n return themes_Theme.light.getBlockColors();\n }\n getCustomExtensionColors() {\n return BLOCKS_MAP[this.blocks].customExtensionColors;\n }\n}\n_Theme = themes_Theme;\n_defineProperty(themes_Theme, \"light\", new _Theme(ACCENT_DEFAULT, GUI_LIGHT, BLOCKS_DEFAULT));\n_defineProperty(themes_Theme, \"dark\", new _Theme(ACCENT_DEFAULT, GUI_DARK, BLOCKS_DEFAULT));\n_defineProperty(themes_Theme, \"highContrast\", new _Theme(ACCENT_DEFAULT, GUI_DEFAULT, BLOCKS_HIGH_CONTRAST));\n\n\n/***/ }),\n\n/***/ 214:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return applyGuiColors; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);\n/* harmony import */ var _addons_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53);\n/* harmony import */ var _global_styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(701);\n/* harmony import */ var _global_styles_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_global_styles_css__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst BLOCK_COLOR_NAMES = [\n// Corresponds to the name of the object in blockColors\n'motion', 'looks', 'sounds', 'control', 'event', 'sensing', 'pen', 'operators', 'data', 'data_lists', 'more', 'addons'];\n\n/**\n * @param {string} css CSS color or var(--...)\n * @returns {string} evaluated CSS\n */\nconst evaluateCSS = css => {\n const variableMatch = css.match(/^var\\(([\\w-]+)\\)$/);\n if (variableMatch) {\n return document.documentElement.style.getPropertyValue(variableMatch[1]);\n }\n return css;\n};\n\n/**\n * @param {Theme} theme the theme\n */\nconst applyGuiColors = theme => {\n const doc = document.documentElement;\n const defaultGuiColors = ___WEBPACK_IMPORTED_MODULE_0__[/* Theme */ \"m\"].light.getGuiColors();\n for (const [name, value] of Object.entries(defaultGuiColors)) {\n doc.style.setProperty(\"--\".concat(name, \"-default\"), value);\n }\n const guiColors = theme.getGuiColors();\n for (const [name, value] of Object.entries(guiColors)) {\n doc.style.setProperty(\"--\".concat(name), value);\n }\n const blockColors = theme.getBlockColors();\n doc.style.setProperty('--editorTheme3-blockText', blockColors.text);\n doc.style.setProperty('--editorTheme3-inputColor', blockColors.textField);\n doc.style.setProperty('--editorTheme3-inputColor-text', blockColors.textFieldText);\n for (const color of BLOCK_COLOR_NAMES) {\n doc.style.setProperty(\"--editorTheme3-\".concat(color, \"-primary\"), blockColors[color].primary);\n doc.style.setProperty(\"--editorTheme3-\".concat(color, \"-secondary\"), blockColors[color].secondary);\n doc.style.setProperty(\"--editorTheme3-\".concat(color, \"-tertiary\"), blockColors[color].tertiary);\n doc.style.setProperty(\"--editorTheme3-\".concat(color, \"-field-background\"), blockColors[color].quaternary);\n }\n\n // Some browsers will color their interfaces to match theme-color, so if we make it the same color as our\n // menu bar, it'll look pretty cool.\n let metaThemeColor = document.head.querySelector('meta[name=theme-color]');\n if (!metaThemeColor) {\n metaThemeColor = document.createElement('meta');\n metaThemeColor.setAttribute('name', 'theme-color');\n document.head.appendChild(metaThemeColor);\n }\n metaThemeColor.setAttribute('content', evaluateCSS(guiColors['menu-bar-background']));\n\n // a horrible hack for icons...\n window.Recolor = {\n primary: guiColors['looks-secondary']\n };\n _addons_hooks__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].recolorCallbacks.forEach(i => i());\n};\n\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports) {\n\n// Legacy export format because this is used by some build-time scripts stuck in the past.\n// eslint-disable-next-line import/no-commonjs\nmodule.exports = {\n APP_NAME: 'TurboWarp'\n};\n\n/***/ }),\n\n/***/ 252:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(126);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96);\n/* harmony import */ var react_modal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_modal__WEBPACK_IMPORTED_MODULE_1__);\n\n\nconst appTarget = document.getElementById('app');\n\n// Remove everything from the target to fix macOS Safari \"Save Page As\",\nwhile (appTarget.firstChild) {\n appTarget.removeChild(appTarget.firstChild);\n}\nObject(react_modal__WEBPACK_IMPORTED_MODULE_1__[\"setAppElement\"])(appTarget);\nconst render = children => {\n react_dom__WEBPACK_IMPORTED_MODULE_0___default.a.render(children, appTarget);\n if (window.SplashEnd) {\n window.SplashEnd();\n }\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (render);\n\n/***/ }),\n\n/***/ 437:\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar content = __webpack_require__(1371);\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(10)(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n/***/ }),\n\n/***/ 53:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nconst AddonHooks = {\n appStateReducer: () => {},\n appStateStore: null,\n blockly: null,\n blocklyWorkspace: null,\n blocklyCallbacks: [],\n recolorCallbacks: []\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = (AddonHooks);\n\n/***/ }),\n\n/***/ 604:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI2LjQzMzggMzBDMjkuNTEzIDMwIDMxLjYzNjYgMjguMTU2OSAzMS4xNzkgMjUuODc0QzI4LjI5OTQgMTMuMDQzNiAyNy40MjU2IDkuODUxMzQgMjcuOTQ1NCA5LjYwNTQ3QzI4LjMxMjUgOS40MzE4MyAyOS4zNzQ2IDEwLjcyNzYgMzAuOTE2MiAxMS4xMzU5QzM0LjY0MTYgMTIuMTEyNiA0MC4yNzQyIDYuNDA3NTEgMzQuNTY1NSA3LjI5MTg2QzMyLjMyMjQgNy42MzkgMzAuMTU4NyA2LjIzODM2IDI4LjQ4NzkgNS4xNTY3OUMyNS45MDcyIDMuNDg2MiAyNC41MDI0IDIuNTc2ODQgMjUuNzk3NCAxMC4wNDUxQzI2LjQzNDkgMTMuNzAzNSAyNi45Njk3IDE2LjMyMzEgMjcuMzQ3NSAxOC4xNzM5QzI3Ljk5NTcgMjEuMzQ5NCAyOC4xODE5IDIyLjI2MTYgMjcuNjMyNSAyMi4yNzQxQzI3LjMzMjEgMjIuMTUyIDI3LjAzMjcgMjIuMDU3OCAyNi42OTU3IDIxLjk3MjRDMjYuMDg4IDIxLjgyMjUgMjUuNDUxNiAyMS43MzgyIDI0LjgwNTMgMjEuNzM4MkMyMS43MjcxIDIxLjczODIgMTkuNjAzNiAyMy41ODkyIDIwLjA2MjEgMjUuODc0QzIwLjUxMDcgMjguMTU2OSAyMy4zNjQ2IDMwIDI2LjQzMzggMzBaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNOS40Mzg2MSAzNi4wMDAxQzEyLjUwNjUgMzYuMDAwMSAxNC42MzAyIDM0LjE0OCAxNC4xODE3IDMxLjg2NDJDMTEuMzAzMiAxOS4wMzM2IDEwLjQyOTkgMTUuODQxNiAxMC45NDk2IDE1LjU5NThDMTEuMzE2NiAxNS40MjIyIDEyLjM3ODMgMTYuNzE3NyAxMy45MTkgMTcuMTI2QzE3LjY0MjggMTguMTEzNiAyMy4yNzI5IDEyLjM5ODUgMTcuNTY2NyAxMy4yOTE4QzE1LjMyNDggMTMuNjM4NiAxMy4xNjIzIDEyLjIzODIgMTEuNDkyMiAxMS4xNTY5QzguOTEyMzcgOS40ODYzNiA3LjUwNzk3IDguNTc2OTggOC44MDI1MSAxNi4wNDUxQzkuNDQyOTQgMTkuNzI4NiA5Ljk3OTggMjIuMzU5NCAxMC4zNTggMjQuMjEyNUMxMC45OTEyIDI3LjMxNTQgMTEuMTc5NSAyOC4yMzg0IDEwLjY2NDQgMjguMjczMkM5Ljc4NDMyIDI3LjkyNTggOC44MTIzOSAyNy43MjkzIDcuODEwODIgMjcuNzI5M0M0LjczNCAyNy43MjkzIDIuNjExMzQgMjkuNTgwNCAzLjA1OTc4IDMxLjg2NDJDMy41MTgwOSAzNC4xNDggNi4zNzA2OSAzNi4wMDAxIDkuNDM4NjEgMzYuMDAwMVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=\"\n\n/***/ }),\n\n/***/ 605:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"static/assets/b631383707e87a454b479dedaa8ca014.svg\";\n\n/***/ }),\n\n/***/ 606:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2IDIxLjY2OTNWMzQuMjgzNEMxNiAzNS44MTUxIDE0IDM2LjUzNTkgMTIuOCAzNS41NDQ4TDEwLjIgMzMuMzgyNEM5LjIgMzIuNTcxNSA4IDMyLjIxMTEgNi43IDMyLjIxMTFINi4zQzUgMzIuMjExMSA0IDMxLjMxMDEgNCAzMC4xMzg4VjI1LjkwNDFDNCAyNC43MzI4IDUgMjMuODMxOCA2LjMgMjMuODMxOEg2LjdDOCAyMy44MzE4IDkuMiAyMy4zODEzIDEwLjEgMjIuNjYwNEwxMi44IDIwLjQ5OEMxNCAxOS40MTY4IDE2IDIwLjIyNzcgMTYgMjEuNjY5M1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0yNCA0QzE5LjU4MTcgNCAxNiA3LjU4MTcyIDE2IDEyQzE2IDE1LjExNDcgMTcuNzc5OSAxNy44MTM2IDIwLjM3ODEgMTkuMTM1MUMyMC4yMDk1IDIwLjkwODcgMTkuNjU2NCAyMS42NjU1IDE5LjMwNDIgMjIuMTQ3M0MxOS4xMjY1IDIyLjM5MDQgMTkgMjIuNTYzNSAxOSAyMi43NjE5QzE5IDIzLjQyODYgMTkuNjY2NyAyMy40Mjg2IDE5LjY2NjcgMjMuNDI4NkMyMC42MTMyIDIzLjQyODYgMjMuNTgxMyAyMi4yNjIzIDI1LjQwOTcgMjBIMjhDMzIuNDE4MyAyMCAzNiAxNi40MTgzIDM2IDEyQzM2IDcuNTgxNzIgMzIuNDE4MyA0IDI4IDRIMjRaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMEI4RTY5Ii8+Cjwvc3ZnPgo=\"\n\n/***/ }),\n\n/***/ 607:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"static/assets/ef4a998a82a8567de018baa4607bc6a0.svg\";\n\n/***/ }),\n\n/***/ 608:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBvcGFjaXR5PSIwLjI1IiBjeD0iMzIiIGN5PSIyNiIgcj0iNCIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzBCOEU2OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxjaXJjbGUgb3BhY2l0eT0iMC41IiBjeD0iMzIiIGN5PSIyMiIgcj0iNCIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzBCOEU2OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxjaXJjbGUgb3BhY2l0eT0iMC43NSIgY3g9IjMyIiBjeT0iMTgiIHI9IjQiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMwQjhFNjkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8Y2lyY2xlIGN4PSIzMiIgY3k9IjE0IiByPSI0IiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjMEI4RTY5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE3IDE3LjVMMjIuNCAxNEMyMi45IDEzLjcgMjMuNSAxMy44IDIzLjggMTQuM0MyMy45IDE0LjUgMjQgMTQuNyAyNCAxNC44VjI1LjFDMjQgMjUuNyAyMy41IDI2LjEgMjMgMjYuMUMyMi44IDI2LjEgMjIuNiAyNiAyMi41IDI1LjlMMTcgMjIuNlYyNEMxNyAyNi4yIDE1LjIgMjguMSAxMyAyOC4xSDQuMUMxLjggMjggMCAyNi4yIDAgMjRWMTYuMUMwIDEzLjggMS44IDEyIDQuMSAxMkgxM0MxNS4yIDEyIDE3IDEzLjggMTcgMTYuMVYxNy41WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg==\"\n\n/***/ }),\n\n/***/ 701:\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar content = __webpack_require__(702);\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(10)(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n/***/ }),\n\n/***/ 702:\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(9)(false);\n// imports\n\n\n// module\nexports.push([module.i, \"/* overridden by src/lib/themes/guiHelpers.js */\\n\\n/* This is for overriding some styles that don't really \\\"belong\\\" to any existing stylesheets */\\n\\n/* Try to use this sparingly, otherwise this will become unmaintainable again... */\\n\\n:root {\\n color-scheme: var(--color-scheme);\\n}\\n\\n/* popover is used by gui and paint */\\n\\n/* some of these are duplicated over there too; !important makes sure these win */\\n\\n.Popover {\\n color-scheme: light !important;\\n}\\n\\n.Popover-body {\\n color: var(--text-primary) !important;\\n background: var(--popover-background) !important;\\n border: 1px solid var(--ui-black-transparent) !important;\\n box-shadow: 0px 0px 8px 1px var(--shadow) !important;\\n}\\n\\n.Popover-tipShape {\\n fill: var(--popover-background) !important;\\n stroke: var(--ui-black-transparent) !important;\\n}\\n\\n/* ScratchAdddons editor-dark-mode compatibility */\\n\\n:root {\\n --editorDarkMode-primary: var(--looks-secondary);\\n --editorDarkMode-primary-transparent35: var(--looks-transparent);\\n --editorDarkMode-primary-variant: var(--looks-secondary-dark);\\n --editorDarkMode-border: var(--ui-black-transparent);\\n --editorDarkMode-accent: var(--ui-modal-background);\\n --editorDarkMode-categoryMenu-text: var(--text-primary);\\n --editorDarkMode-accent-text: var(--text-primary);\\n --editorDarkMode-page: var(--ui-primary);\\n --editorDarkMode-highlightText: var(--looks-secondary);\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n\n/***/ 78:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return onSystemPreferenceChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return detectTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return persistTheme; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);\n\nconst matchMedia = query => window.matchMedia ? window.matchMedia(query) : null;\nconst PREFERS_HIGH_CONTRAST_QUERY = matchMedia('(prefers-contrast: more)');\nconst PREFERS_DARK_QUERY = matchMedia('(prefers-color-scheme: dark)');\nconst STORAGE_KEY = 'tw:theme';\n\n/**\n * @returns {Theme} detected theme\n */\nconst systemPreferencesTheme = () => {\n if (PREFERS_HIGH_CONTRAST_QUERY && PREFERS_HIGH_CONTRAST_QUERY.matches) {\n return ___WEBPACK_IMPORTED_MODULE_0__[/* Theme */ \"m\"].highContrast;\n }\n if (PREFERS_DARK_QUERY && PREFERS_DARK_QUERY.matches) {\n return ___WEBPACK_IMPORTED_MODULE_0__[/* Theme */ \"m\"].dark;\n }\n return ___WEBPACK_IMPORTED_MODULE_0__[/* Theme */ \"m\"].light;\n};\n\n/**\n * @param {function} onChange callback; no guarantees about arguments\n * @returns {function} call to remove event listeners to prevent memory leak\n */\nconst onSystemPreferenceChange = onChange => {\n if (!PREFERS_HIGH_CONTRAST_QUERY || !PREFERS_DARK_QUERY ||\n // Some old browsers don't support addEventListener on media queries\n !PREFERS_HIGH_CONTRAST_QUERY.addEventListener || !PREFERS_DARK_QUERY.addEventListener) {\n return () => {};\n }\n PREFERS_HIGH_CONTRAST_QUERY.addEventListener('change', onChange);\n PREFERS_DARK_QUERY.addEventListener('change', onChange);\n return () => {\n PREFERS_HIGH_CONTRAST_QUERY.removeEventListener('change', onChange);\n PREFERS_DARK_QUERY.removeEventListener('change', onChange);\n };\n};\n\n/**\n * @returns {Theme} the theme\n */\nconst detectTheme = () => {\n const systemPreferences = systemPreferencesTheme();\n try {\n const local = localStorage.getItem(STORAGE_KEY);\n\n // Migrate legacy preferences\n if (local === 'dark') {\n return ___WEBPACK_IMPORTED_MODULE_0__[/* Theme */ \"m\"].dark;\n }\n if (local === 'light') {\n return ___WEBPACK_IMPORTED_MODULE_0__[/* Theme */ \"m\"].light;\n }\n const parsed = JSON.parse(local);\n // Any invalid values in storage will be handled by Theme itself\n return new ___WEBPACK_IMPORTED_MODULE_0__[/* Theme */ \"m\"](parsed.accent || systemPreferences.accent, parsed.gui || systemPreferences.gui, parsed.blocks || systemPreferences.blocks);\n } catch (e) {\n // ignore\n }\n return systemPreferences;\n};\n\n/**\n * @param {Theme} theme the theme\n */\nconst persistTheme = theme => {\n const systemPreferences = systemPreferencesTheme();\n const nonDefaultSettings = {};\n if (theme.accent !== systemPreferences.accent) {\n nonDefaultSettings.accent = theme.accent;\n }\n if (theme.gui !== systemPreferences.gui) {\n nonDefaultSettings.gui = theme.gui;\n }\n // custom blocks are managed by addon at runtime, don't save here\n if (theme.blocks !== systemPreferences.blocks && theme.blocks !== ___WEBPACK_IMPORTED_MODULE_0__[/* BLOCKS_CUSTOM */ \"f\"]) {\n nonDefaultSettings.blocks = theme.blocks;\n }\n if (Object.keys(nonDefaultSettings).length === 0) {\n try {\n localStorage.removeItem(STORAGE_KEY);\n } catch (e) {\n // ignore\n }\n } else {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(nonDefaultSettings));\n } catch (e) {\n // ignore\n }\n }\n};\n\n\n/***/ })\n\n/******/ });","inputSourceMap":null}