1
0
forked from sent/waves
waves/public/assets/g/turbowarp/main/js/credits.js
2025-04-09 17:11:14 -05:00

550 lines
27 KiB
JavaScript

var GUI =
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ resolves.push(installedChunks[chunkId][0]);
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ while(resolves.length) {
/******/ resolves.shift()();
/******/ }
/******/
/******/ // add entry modules from loaded chunk to deferred list
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ // run deferred modules when all chunks ready
/******/ return checkDeferredModules();
/******/ };
/******/ function checkDeferredModules() {
/******/ var result;
/******/ for(var i = 0; i < deferredModules.length; i++) {
/******/ var deferredModule = deferredModules[i];
/******/ var fulfilled = true;
/******/ for(var j = 1; j < deferredModule.length; j++) {
/******/ var depId = deferredModule[j];
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
/******/ }
/******/ if(fulfilled) {
/******/ deferredModules.splice(i--, 1);
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ }
/******/ }
/******/
/******/ return result;
/******/ }
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // Promise = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "credits": 0
/******/ };
/******/
/******/ var deferredModules = [];
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ var jsonpArray = window["webpackJsonpGUI"] = window["webpackJsonpGUI"] || [];
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ jsonpArray.push = webpackJsonpCallback;
/******/ jsonpArray = jsonpArray.slice();
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ // add entry module to deferred list
/******/ deferredModules.push(["./src/playground/credits/credits.jsx","vendors~addon-settings~credits~editor~embed~fullscreen~player"]);
/******/ // run deferred modules when ready
/******/ return checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ({
/***/ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./src/playground/credits/credits.css":
/*!***************************************************************************************************************************!*\
!*** ./node_modules/css-loader??ref--5-1!./node_modules/postcss-loader/src??postcss!./src/playground/credits/credits.css ***!
\***************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "/* #E5F0FF */ /* #E9F1FC */ /* #D9E3F2 */ /* 90% transparent version of motion-primary */ /* #FFFFFF */ /* 25% transparent version of ui-white */ /* 25% transparent version of ui-white */ /* 25% transparent version of ui-white */ /* 15% transparent version of black */ /* #575E75 */ /* 35% transparent version of motion-primary */ /* 15% transparent version of motion-primary */ /* opt-in theme overrides */ /* #FF661A */ /* #E64D00 */ /* #CF63CF */ /* #BD42BD */ /* #FFAB19 */ /* #FF8C1A */ /* #0FBD8C */ /* #0FBD8C */ /* #FF8C1A */ /* #FFB366 */ /* #FF8C1A */ /* 35% transparent version of extensions-primary */ /* opaque version of extensions-transparent, on white bg */ /* lighter than motion-primary */ * {\n box-sizing: border-box;\n} body {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n margin: 0;\n padding: 0;\n background: white;\n} body[theme=\"dark\"] {\n background-color: #111;\n color: #eee;\n} a {\n color: blue;\n} [theme=\"dark\"] a {\n color: #4af;\n} .credits_main_1Rb15 section {\n max-width: 900px;\n margin: auto;\n margin-bottom: 30px;\n} .credits_header-container_10IXn {\n color: white;\n background-color: hsla(0, 100%, 65%, 1);\n padding: 20px 0;\n text-align: center;\n margin-bottom: 30px;\n} .credits_header-text_2vWAl {\n\n} .credits_users_2AuwB {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n} .credits_user-image_2rw9X {\n margin-right: 12px;\n} .credits_user_2nYLS {\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} .credits_user_2nYLS:link:hover {\n background: #eee;\n} [theme=\"dark\"] .credits_user_2nYLS:link:hover {\n background: #222;\n}\n", ""]);
// exports
exports.locals = {
"main": "credits_main_1Rb15",
"header-container": "credits_header-container_10IXn",
"headerContainer": "credits_header-container_10IXn",
"header-text": "credits_header-text_2vWAl",
"headerText": "credits_header-text_2vWAl",
"users": "credits_users_2AuwB",
"user-image": "credits_user-image_2rw9X",
"userImage": "credits_user-image_2rw9X",
"user": "credits_user_2nYLS"
};
/***/ }),
/***/ "./node_modules/raw-loader/index.js!./src/lib/tw-theme-dark.css":
/*!*************************************************************!*\
!*** ./node_modules/raw-loader!./src/lib/tw-theme-dark.css ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "/* GUI */\n:root {\n background: #111;\n color: #eee;\n color-scheme: dark;\n /* see colors.csss */\n --ui-primary: rgb(17, 17, 17);\n --ui-secondary: rgb(30, 30, 30);\n --ui-tertiary: rgb(46, 46, 46);\n --ui-modal-overlay: #333a;\n --ui-black-transparent: rgba(255, 255, 255, 0.15);\n --text-primary: #eee;\n /* scratch-paint */\n --paint-ui-pane-border: var(--ui-black-transparent);\n --paint-text-primary: #eee;\n --paint-form-border: var(--ui-black-transparent);\n}\n\n/* Blockly */\n.blocklySvg {\n background-color: var(--ui-secondary) !important;\n color-scheme: light;\n}\n[id^=\"blocklyGridPattern\"] > line {\n stroke: #484848;\n}\n.blocklyFlyoutBackground {\n fill: #111;\n}\n.blocklyFlyoutLabelText {\n fill: #ccc;\n}\n.blocklyFlyoutButton .blocklyText {\n fill: #ccc;\n}\n.blocklyFlyoutButton:hover {\n fill: #111;\n}\n/* blocklyFlyoutCheckboxPath stroke and blocklyFlyoutCheckbox fill must match */\n.blocklyFlyoutCheckboxPath {\n stroke: #111;\n}\n.blocklyFlyoutCheckbox {\n fill: #111;\n}\n.checked > .blocklyFlyoutCheckbox {\n stroke: #a1c6fa;\n}\n.checked > .blocklyFlyoutCheckboxPath {\n stroke: white;\n}\n.scratchCategoryMenu {\n color: #ccc;\n}\n.blocklyToolboxDiv,\n.scratchCategoryMenu {\n background: #111 !important;\n}\n.blocklyScrollbarHandle {\n fill: #666;\n}\n.blocklyZoom {\n filter: invert(100%);\n}\n.scratchCategoryMenuItem.categorySelected {\n background: var(--ui-secondary);\n}\n.valueReportBox {\n color: black;\n}\n.blocklyWidgetDiv {\n color-scheme: light;\n}\n.blocklyWidgetDiv .goog-menu {\n background: var(--ui-primary);\n border-color: var(--ui-black-transparent);\n}\n.blocklyWidgetDiv .goog-menuitem {\n color: var(--text-primary);\n}\n.blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content {\n color: #666 !important;\n}\n.sa-blockly-menu-item-border {\n border-top-color: var(--ui-black-transparent) !important;\n}\n.blocklyWidgetDiv .goog-menuitem.goog-menuitem-highlight {\n background-color: var(--ui-tertiary);\n border-color: transparent; /* remove border */\n}\n.scratchCommentText {\n color: black;\n}\n.blocklyInsertionMarker > .blocklyPath {\n fill: #ccc;\n}\n\n/* Other / Multipurpose */\n.Popover {\n /* weird Chrome bug displays white bar above popovers with color-scheme: dark */\n color-scheme: light;\n}\n.Popover-body {\n background: var(--ui-secondary);\n border-color: var(--ui-black-transparent);\n color: var(--text-primary);\n}\n.Popover-tipShape {\n fill: var(--ui-secondary);\n stroke: var(--ui-black-transparent);\n}\n"
/***/ }),
/***/ "./src/lib/tw-theme-hoc.jsx":
/*!**********************************!*\
!*** ./src/lib/tw-theme-hoc.jsx ***!
\**********************************/
/*! exports provided: getInitialDarkMode, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInitialDarkMode", function() { return getInitialDarkMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ThemeHOC; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _raw_loader_tw_theme_dark_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! raw-loader!./tw-theme-dark.css */ "./node_modules/raw-loader/index.js!./src/lib/tw-theme-dark.css");
/* harmony import */ var _raw_loader_tw_theme_dark_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_raw_loader_tw_theme_dark_css__WEBPACK_IMPORTED_MODULE_1__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
const THEME_KEY = 'tw:theme';
const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
const getInitialDarkMode = () => {
try {
const item = localStorage.getItem(THEME_KEY);
if (item !== null) {
return item === 'dark';
}
} catch (e) {// ignore
}
return darkMediaQuery.matches;
};
const darkModeStylesheet = document.createElement('style');
darkModeStylesheet.textContent = _raw_loader_tw_theme_dark_css__WEBPACK_IMPORTED_MODULE_1___default.a;
const ThemeHOC = function ThemeHOC(WrappedComponent) {
class ThemeComponent extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
constructor(props) {
super(props);
this.handleQueryChange = this.handleQueryChange.bind(this);
this.handleClickTheme = this.handleClickTheme.bind(this);
this.state = {
dark: getInitialDarkMode()
};
}
componentDidMount() {
// media query does not have listeners in legacy edge
if (darkMediaQuery.addEventListener) {
darkMediaQuery.addEventListener('change', this.handleQueryChange);
}
this.updateDark();
}
componentDidUpdate() {
try {
localStorage.setItem(THEME_KEY, this.state.dark ? 'dark' : 'light');
} catch (e) {// ignore
}
this.updateDark();
}
componentWillUnmount() {
// media query does not have listeners in legacy edge
if (darkMediaQuery.removeEventListener) {
darkMediaQuery.removeEventListener('change', this.handleQueryChange);
}
}
updateDark() {
const dark = this.state.dark;
document.body.setAttribute('theme', dark ? 'dark' : 'light');
if (dark && !darkModeStylesheet.parentNode) {
// Append at the start of <body> we override scratch-gui styles in <head>
// but are overridden by addon styles at the end of <body>
document.body.insertBefore(darkModeStylesheet, document.body.firstChild);
} else if (!dark && darkModeStylesheet.parentNode) {
darkModeStylesheet.parentNode.removeChild(darkModeStylesheet);
}
}
handleQueryChange() {
this.setState({
dark: darkMediaQuery.matches
});
}
handleClickTheme() {
this.setState(state => ({
dark: !state.dark
}));
}
render() {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(WrappedComponent, _extends({
onClickTheme: this.handleClickTheme,
isDark: this.state.dark
}, this.props));
}
}
return ThemeComponent;
};
/***/ }),
/***/ "./src/playground/app-target.js":
/*!**************************************!*\
!*** ./src/playground/app-target.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
const appTarget = document.getElementById('app'); // Remove everything from the target to fix macOS Safari "Save Page As",
while (appTarget.firstChild) {
appTarget.removeChild(appTarget.firstChild);
}
document.body.classList.add('tw-loaded');
/* harmony default export */ __webpack_exports__["default"] = (appTarget);
/***/ }),
/***/ "./src/playground/credits/credits.css":
/*!********************************************!*\
!*** ./src/playground/credits/credits.css ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
var content = __webpack_require__(/*! !../../../node_modules/css-loader??ref--5-1!../../../node_modules/postcss-loader/src??postcss!./credits.css */ "./node_modules/css-loader/index.js?!./node_modules/postcss-loader/src/index.js?!./src/playground/credits/credits.css");
if(typeof content === 'string') content = [[module.i, content, '']];
var transform;
var insertInto;
var options = {"hmr":true}
options.transform = transform
options.insertInto = undefined;
var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);
if(content.locals) module.exports = content.locals;
if(false) {}
/***/ }),
/***/ "./src/playground/credits/credits.jsx":
/*!********************************************!*\
!*** ./src/playground/credits/credits.jsx ***!
\********************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _app_target__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../app-target */ "./src/playground/app-target.js");
/* harmony import */ var _credits_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./credits.css */ "./src/playground/credits/credits.css");
/* harmony import */ var _credits_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_credits_css__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _lib_tw_theme_hoc_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../lib/tw-theme-hoc.jsx */ "./src/lib/tw-theme-hoc.jsx");
/* harmony import */ var _users__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./users */ "./src/playground/credits/users.js");
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
/* eslint-disable react/jsx-no-literals */
document.documentElement.lang = 'en';
const User = ({
image,
text,
href
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", {
href: href,
target: "_blank",
rel: "noreferrer",
className: _credits_css__WEBPACK_IMPORTED_MODULE_4___default.a.user
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("img", {
className: _credits_css__WEBPACK_IMPORTED_MODULE_4___default.a.userImage,
src: image,
width: "60",
height: "60"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: _credits_css__WEBPACK_IMPORTED_MODULE_4___default.a.userInfo
}, text));
User.propTypes = {
image: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string.isRequired,
text: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string.isRequired,
href: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string
};
const UserList = ({
users
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: _credits_css__WEBPACK_IMPORTED_MODULE_4___default.a.users
}, users.map((data, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(User, _extends({
key: index
}, data))));
UserList.propTypes = {
users: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object)
};
const Credits = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("main", {
className: _credits_css__WEBPACK_IMPORTED_MODULE_4___default.a.main
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("header", {
className: _credits_css__WEBPACK_IMPORTED_MODULE_4___default.a.headerContainer
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h1", {
className: _credits_css__WEBPACK_IMPORTED_MODULE_4___default.a.headerText
}, "TurboWarp Credits")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", null, "The TurboWarp project is made possible by the work of many volunteers.")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h2", null, "Scratch"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", null, "TurboWarp is based on the work of the ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", {
href: "https://scratch.mit.edu/credits"
}, "Scratch contributors"), " but is not endorsed by Scratch in any way."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", {
href: "https://scratch.mit.edu/donate"
}, "Donate to support Scratch."))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h2", null, "Addons"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(UserList, {
users: _users__WEBPACK_IMPORTED_MODULE_6__["default"].addonDevelopers
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h2", null, "Translators"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", null, "More than 100 people have helped translate TurboWarp and its addons into many languages \u2014 far more than we could hope to list here.")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("section", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("i", null, "Individual contributors are listed in no particular order. The order is randomized each visit."))));
document.body.setAttribute('theme', Object(_lib_tw_theme_hoc_jsx__WEBPACK_IMPORTED_MODULE_5__["getInitialDarkMode"])() ? 'dark' : 'light');
react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Credits, null), _app_target__WEBPACK_IMPORTED_MODULE_3__["default"]);
/***/ }),
/***/ "./src/playground/credits/users.js":
/*!*****************************************!*\
!*** ./src/playground/credits/users.js ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
const shuffle = list => {
for (let i = list.length - 1; i > 0; i--) {
const random = Math.floor(Math.random() * (i + 1));
const tmp = list[i];
list[i] = list[random];
list[random] = tmp;
}
return list;
};
const fromHardcoded = ({
userId,
username,
name
}) => ({
image: "https://trampoline.turbowarp.org/avatars/".concat(userId),
href: "https://scratch.mit.edu/users/".concat(username, "/"),
text: name || username
});
const addonDevelopers = [{
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'
}, {
// actual ID is 34455896 but their avatar is the wrong resolution and looks really weird
userId: '0',
username: 'summerscar'
}, {
userId: '55742784',
username: 'RedGuy7'
}, {
userId: '9636514',
username: 'Tacodude7729'
}, {
userId: '14792872',
username: '_nix'
}, {
userId: '30323614',
username: 'BarelySmooth'
}, {
userId: '64691048',
username: 'CST1229'
} // TODO: retronbv is banned?
].map(fromHardcoded);
/* harmony default export */ __webpack_exports__["default"] = ({
addonDevelopers: shuffle(addonDevelopers)
});
/***/ })
/******/ });
//# sourceMappingURL=credits.js.map