Changeset 10983
- Timestamp:
- 05/17/2021 06:57:24 PM (4 years ago)
- Location:
- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns
- Files:
-
- 9 added
- 1 deleted
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/build/index.asset.php
r10952 r10983 1 <?php return array('dependencies' => array('react', 'wp-a11y', 'wp- components', 'wp-compose', 'wp-data', 'wp-data-controls', 'wp-element', 'wp-i18n', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport'), 'version' => '6cc4550be1812ff312e84305d20a109c');1 <?php return array('dependencies' => array('react', 'wp-a11y', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-element', 'wp-i18n', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport'), 'version' => '0e8288553698a27b213d838c559a648a'); -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/build/index.js
r10952 r10983 87 87 /******/ ({ 88 88 89 /***/ "../../../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":90 /*!*************************************************************************************************************!*\91 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!92 \*************************************************************************************************************/93 /*! no static exports found */94 /***/ (function(module, exports) {95 96 function _arrayLikeToArray(arr, len) {97 if (len == null || len > arr.length) len = arr.length;98 99 for (var i = 0, arr2 = new Array(len); i < len; i++) {100 arr2[i] = arr[i];101 }102 103 return arr2;104 }105 106 module.exports = _arrayLikeToArray;107 108 /***/ }),109 110 /***/ "../../../../node_modules/@babel/runtime/helpers/arrayWithHoles.js":111 /*!***********************************************************************************************************!*\112 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!113 \***********************************************************************************************************/114 /*! no static exports found */115 /***/ (function(module, exports) {116 117 function _arrayWithHoles(arr) {118 if (Array.isArray(arr)) return arr;119 }120 121 module.exports = _arrayWithHoles;122 123 /***/ }),124 125 /***/ "../../../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js":126 /*!**************************************************************************************************************!*\127 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***!128 \**************************************************************************************************************/129 /*! no static exports found */130 /***/ (function(module, exports, __webpack_require__) {131 132 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ "../../../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");133 134 function _arrayWithoutHoles(arr) {135 if (Array.isArray(arr)) return arrayLikeToArray(arr);136 }137 138 module.exports = _arrayWithoutHoles;139 140 /***/ }),141 142 /***/ "../../../../node_modules/@babel/runtime/helpers/defineProperty.js":143 /*!***********************************************************************************************************!*\144 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/defineProperty.js ***!145 \***********************************************************************************************************/146 /*! no static exports found */147 /***/ (function(module, exports) {148 149 function _defineProperty(obj, key, value) {150 if (key in obj) {151 Object.defineProperty(obj, key, {152 value: value,153 enumerable: true,154 configurable: true,155 writable: true156 });157 } else {158 obj[key] = value;159 }160 161 return obj;162 }163 164 module.exports = _defineProperty;165 166 /***/ }),167 168 89 /***/ "../../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js": 169 90 /*!***************************************************************************************************************!*\ … … 250 171 return target; 251 172 } 252 253 /***/ }),254 255 /***/ "../../../../node_modules/@babel/runtime/helpers/extends.js":256 /*!****************************************************************************************************!*\257 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/extends.js ***!258 \****************************************************************************************************/259 /*! no static exports found */260 /***/ (function(module, exports) {261 262 function _extends() {263 module.exports = _extends = Object.assign || function (target) {264 for (var i = 1; i < arguments.length; i++) {265 var source = arguments[i];266 267 for (var key in source) {268 if (Object.prototype.hasOwnProperty.call(source, key)) {269 target[key] = source[key];270 }271 }272 }273 274 return target;275 };276 277 return _extends.apply(this, arguments);278 }279 280 module.exports = _extends;281 282 /***/ }),283 284 /***/ "../../../../node_modules/@babel/runtime/helpers/iterableToArray.js":285 /*!************************************************************************************************************!*\286 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/iterableToArray.js ***!287 \************************************************************************************************************/288 /*! no static exports found */289 /***/ (function(module, exports) {290 291 function _iterableToArray(iter) {292 if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);293 }294 295 module.exports = _iterableToArray;296 297 /***/ }),298 299 /***/ "../../../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":300 /*!*****************************************************************************************************************!*\301 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!302 \*****************************************************************************************************************/303 /*! no static exports found */304 /***/ (function(module, exports) {305 306 function _iterableToArrayLimit(arr, i) {307 if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;308 var _arr = [];309 var _n = true;310 var _d = false;311 var _e = undefined;312 313 try {314 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {315 _arr.push(_s.value);316 317 if (i && _arr.length === i) break;318 }319 } catch (err) {320 _d = true;321 _e = err;322 } finally {323 try {324 if (!_n && _i["return"] != null) _i["return"]();325 } finally {326 if (_d) throw _e;327 }328 }329 330 return _arr;331 }332 333 module.exports = _iterableToArrayLimit;334 335 /***/ }),336 337 /***/ "../../../../node_modules/@babel/runtime/helpers/nonIterableRest.js":338 /*!************************************************************************************************************!*\339 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/nonIterableRest.js ***!340 \************************************************************************************************************/341 /*! no static exports found */342 /***/ (function(module, exports) {343 344 function _nonIterableRest() {345 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");346 }347 348 module.exports = _nonIterableRest;349 350 /***/ }),351 352 /***/ "../../../../node_modules/@babel/runtime/helpers/nonIterableSpread.js":353 /*!**************************************************************************************************************!*\354 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/nonIterableSpread.js ***!355 \**************************************************************************************************************/356 /*! no static exports found */357 /***/ (function(module, exports) {358 359 function _nonIterableSpread() {360 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");361 }362 363 module.exports = _nonIterableSpread;364 365 /***/ }),366 367 /***/ "../../../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":368 /*!********************************************************************************************************************!*\369 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!370 \********************************************************************************************************************/371 /*! no static exports found */372 /***/ (function(module, exports, __webpack_require__) {373 374 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose */ "../../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");375 376 function _objectWithoutProperties(source, excluded) {377 if (source == null) return {};378 var target = objectWithoutPropertiesLoose(source, excluded);379 var key, i;380 381 if (Object.getOwnPropertySymbols) {382 var sourceSymbolKeys = Object.getOwnPropertySymbols(source);383 384 for (i = 0; i < sourceSymbolKeys.length; i++) {385 key = sourceSymbolKeys[i];386 if (excluded.indexOf(key) >= 0) continue;387 if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;388 target[key] = source[key];389 }390 }391 392 return target;393 }394 395 module.exports = _objectWithoutProperties;396 397 /***/ }),398 399 /***/ "../../../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":400 /*!*************************************************************************************************************************!*\401 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!402 \*************************************************************************************************************************/403 /*! no static exports found */404 /***/ (function(module, exports) {405 406 function _objectWithoutPropertiesLoose(source, excluded) {407 if (source == null) return {};408 var target = {};409 var sourceKeys = Object.keys(source);410 var key, i;411 412 for (i = 0; i < sourceKeys.length; i++) {413 key = sourceKeys[i];414 if (excluded.indexOf(key) >= 0) continue;415 target[key] = source[key];416 }417 418 return target;419 }420 421 module.exports = _objectWithoutPropertiesLoose;422 423 /***/ }),424 425 /***/ "../../../../node_modules/@babel/runtime/helpers/slicedToArray.js":426 /*!**********************************************************************************************************!*\427 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/slicedToArray.js ***!428 \**********************************************************************************************************/429 /*! no static exports found */430 /***/ (function(module, exports, __webpack_require__) {431 432 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles */ "../../../../node_modules/@babel/runtime/helpers/arrayWithHoles.js");433 434 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit */ "../../../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");435 436 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray */ "../../../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");437 438 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest */ "../../../../node_modules/@babel/runtime/helpers/nonIterableRest.js");439 440 function _slicedToArray(arr, i) {441 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();442 }443 444 module.exports = _slicedToArray;445 446 /***/ }),447 448 /***/ "../../../../node_modules/@babel/runtime/helpers/toConsumableArray.js":449 /*!**************************************************************************************************************!*\450 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/toConsumableArray.js ***!451 \**************************************************************************************************************/452 /*! no static exports found */453 /***/ (function(module, exports, __webpack_require__) {454 455 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles */ "../../../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js");456 457 var iterableToArray = __webpack_require__(/*! ./iterableToArray */ "../../../../node_modules/@babel/runtime/helpers/iterableToArray.js");458 459 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray */ "../../../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");460 461 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread */ "../../../../node_modules/@babel/runtime/helpers/nonIterableSpread.js");462 463 function _toConsumableArray(arr) {464 return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();465 }466 467 module.exports = _toConsumableArray;468 469 /***/ }),470 471 /***/ "../../../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":472 /*!***********************************************************************************************************************!*\473 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!474 \***********************************************************************************************************************/475 /*! no static exports found */476 /***/ (function(module, exports, __webpack_require__) {477 478 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ "../../../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");479 480 function _unsupportedIterableToArray(o, minLen) {481 if (!o) return;482 if (typeof o === "string") return arrayLikeToArray(o, minLen);483 var n = Object.prototype.toString.call(o).slice(8, -1);484 if (n === "Object" && o.constructor) n = o.constructor.name;485 if (n === "Map" || n === "Set") return Array.from(o);486 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);487 }488 489 module.exports = _unsupportedIterableToArray;490 173 491 174 /***/ }), … … 7694 7377 /* harmony default export */ __webpack_exports__["default"] = (wordpress); 7695 7378 //# sourceMappingURL=wordpress.js.map 7379 7380 /***/ }), 7381 7382 /***/ "../../../../node_modules/classnames/index.js": 7383 /*!**************************************************************************************!*\ 7384 !*** /Users/ryelle/Projects/Work/pattern-directory/node_modules/classnames/index.js ***! 7385 \**************************************************************************************/ 7386 /*! no static exports found */ 7387 /***/ (function(module, exports, __webpack_require__) { 7388 7389 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 7390 Copyright (c) 2017 Jed Watson. 7391 Licensed under the MIT License (MIT), see 7392 http://jedwatson.github.io/classnames 7393 */ 7394 /* global define */ 7395 7396 (function () { 7397 'use strict'; 7398 7399 var hasOwn = {}.hasOwnProperty; 7400 7401 function classNames () { 7402 var classes = []; 7403 7404 for (var i = 0; i < arguments.length; i++) { 7405 var arg = arguments[i]; 7406 if (!arg) continue; 7407 7408 var argType = typeof arg; 7409 7410 if (argType === 'string' || argType === 'number') { 7411 classes.push(arg); 7412 } else if (Array.isArray(arg) && arg.length) { 7413 var inner = classNames.apply(null, arg); 7414 if (inner) { 7415 classes.push(inner); 7416 } 7417 } else if (argType === 'object') { 7418 for (var key in arg) { 7419 if (hasOwn.call(arg, key) && arg[key]) { 7420 classes.push(key); 7421 } 7422 } 7423 } 7424 } 7425 7426 return classes.join(' '); 7427 } 7428 7429 if ( true && module.exports) { 7430 classNames.default = classNames; 7431 module.exports = classNames; 7432 } else if (true) { 7433 // register as 'classnames', consistent with npm package name 7434 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { 7435 return classNames; 7436 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 7437 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 7438 } else {} 7439 }()); 7440 7441 7442 /***/ }), 7443 7444 /***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": 7445 /*!*****************************************************************!*\ 7446 !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! 7447 \*****************************************************************/ 7448 /*! no static exports found */ 7449 /***/ (function(module, exports) { 7450 7451 function _arrayLikeToArray(arr, len) { 7452 if (len == null || len > arr.length) len = arr.length; 7453 7454 for (var i = 0, arr2 = new Array(len); i < len; i++) { 7455 arr2[i] = arr[i]; 7456 } 7457 7458 return arr2; 7459 } 7460 7461 module.exports = _arrayLikeToArray; 7462 module.exports["default"] = module.exports, module.exports.__esModule = true; 7463 7464 /***/ }), 7465 7466 /***/ "./node_modules/@babel/runtime/helpers/arrayWithHoles.js": 7467 /*!***************************************************************!*\ 7468 !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! 7469 \***************************************************************/ 7470 /*! no static exports found */ 7471 /***/ (function(module, exports) { 7472 7473 function _arrayWithHoles(arr) { 7474 if (Array.isArray(arr)) return arr; 7475 } 7476 7477 module.exports = _arrayWithHoles; 7478 module.exports["default"] = module.exports, module.exports.__esModule = true; 7479 7480 /***/ }), 7481 7482 /***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js": 7483 /*!******************************************************************!*\ 7484 !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! 7485 \******************************************************************/ 7486 /*! no static exports found */ 7487 /***/ (function(module, exports, __webpack_require__) { 7488 7489 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js"); 7490 7491 function _arrayWithoutHoles(arr) { 7492 if (Array.isArray(arr)) return arrayLikeToArray(arr); 7493 } 7494 7495 module.exports = _arrayWithoutHoles; 7496 module.exports["default"] = module.exports, module.exports.__esModule = true; 7497 7498 /***/ }), 7499 7500 /***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": 7501 /*!***************************************************************!*\ 7502 !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! 7503 \***************************************************************/ 7504 /*! no static exports found */ 7505 /***/ (function(module, exports) { 7506 7507 function _defineProperty(obj, key, value) { 7508 if (key in obj) { 7509 Object.defineProperty(obj, key, { 7510 value: value, 7511 enumerable: true, 7512 configurable: true, 7513 writable: true 7514 }); 7515 } else { 7516 obj[key] = value; 7517 } 7518 7519 return obj; 7520 } 7521 7522 module.exports = _defineProperty; 7523 module.exports["default"] = module.exports, module.exports.__esModule = true; 7524 7525 /***/ }), 7526 7527 /***/ "./node_modules/@babel/runtime/helpers/extends.js": 7528 /*!********************************************************!*\ 7529 !*** ./node_modules/@babel/runtime/helpers/extends.js ***! 7530 \********************************************************/ 7531 /*! no static exports found */ 7532 /***/ (function(module, exports) { 7533 7534 function _extends() { 7535 module.exports = _extends = Object.assign || function (target) { 7536 for (var i = 1; i < arguments.length; i++) { 7537 var source = arguments[i]; 7538 7539 for (var key in source) { 7540 if (Object.prototype.hasOwnProperty.call(source, key)) { 7541 target[key] = source[key]; 7542 } 7543 } 7544 } 7545 7546 return target; 7547 }; 7548 7549 module.exports["default"] = module.exports, module.exports.__esModule = true; 7550 return _extends.apply(this, arguments); 7551 } 7552 7553 module.exports = _extends; 7554 module.exports["default"] = module.exports, module.exports.__esModule = true; 7555 7556 /***/ }), 7557 7558 /***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js": 7559 /*!****************************************************************!*\ 7560 !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! 7561 \****************************************************************/ 7562 /*! no static exports found */ 7563 /***/ (function(module, exports) { 7564 7565 function _iterableToArray(iter) { 7566 if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); 7567 } 7568 7569 module.exports = _iterableToArray; 7570 module.exports["default"] = module.exports, module.exports.__esModule = true; 7571 7572 /***/ }), 7573 7574 /***/ "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js": 7575 /*!*********************************************************************!*\ 7576 !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! 7577 \*********************************************************************/ 7578 /*! no static exports found */ 7579 /***/ (function(module, exports) { 7580 7581 function _iterableToArrayLimit(arr, i) { 7582 var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); 7583 7584 if (_i == null) return; 7585 var _arr = []; 7586 var _n = true; 7587 var _d = false; 7588 7589 var _s, _e; 7590 7591 try { 7592 for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { 7593 _arr.push(_s.value); 7594 7595 if (i && _arr.length === i) break; 7596 } 7597 } catch (err) { 7598 _d = true; 7599 _e = err; 7600 } finally { 7601 try { 7602 if (!_n && _i["return"] != null) _i["return"](); 7603 } finally { 7604 if (_d) throw _e; 7605 } 7606 } 7607 7608 return _arr; 7609 } 7610 7611 module.exports = _iterableToArrayLimit; 7612 module.exports["default"] = module.exports, module.exports.__esModule = true; 7613 7614 /***/ }), 7615 7616 /***/ "./node_modules/@babel/runtime/helpers/nonIterableRest.js": 7617 /*!****************************************************************!*\ 7618 !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! 7619 \****************************************************************/ 7620 /*! no static exports found */ 7621 /***/ (function(module, exports) { 7622 7623 function _nonIterableRest() { 7624 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 7625 } 7626 7627 module.exports = _nonIterableRest; 7628 module.exports["default"] = module.exports, module.exports.__esModule = true; 7629 7630 /***/ }), 7631 7632 /***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js": 7633 /*!******************************************************************!*\ 7634 !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! 7635 \******************************************************************/ 7636 /*! no static exports found */ 7637 /***/ (function(module, exports) { 7638 7639 function _nonIterableSpread() { 7640 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 7641 } 7642 7643 module.exports = _nonIterableSpread; 7644 module.exports["default"] = module.exports, module.exports.__esModule = true; 7645 7646 /***/ }), 7647 7648 /***/ "./node_modules/@babel/runtime/helpers/objectWithoutProperties.js": 7649 /*!************************************************************************!*\ 7650 !*** ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***! 7651 \************************************************************************/ 7652 /*! no static exports found */ 7653 /***/ (function(module, exports, __webpack_require__) { 7654 7655 var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js"); 7656 7657 function _objectWithoutProperties(source, excluded) { 7658 if (source == null) return {}; 7659 var target = objectWithoutPropertiesLoose(source, excluded); 7660 var key, i; 7661 7662 if (Object.getOwnPropertySymbols) { 7663 var sourceSymbolKeys = Object.getOwnPropertySymbols(source); 7664 7665 for (i = 0; i < sourceSymbolKeys.length; i++) { 7666 key = sourceSymbolKeys[i]; 7667 if (excluded.indexOf(key) >= 0) continue; 7668 if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; 7669 target[key] = source[key]; 7670 } 7671 } 7672 7673 return target; 7674 } 7675 7676 module.exports = _objectWithoutProperties; 7677 module.exports["default"] = module.exports, module.exports.__esModule = true; 7678 7679 /***/ }), 7680 7681 /***/ "./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js": 7682 /*!*****************************************************************************!*\ 7683 !*** ./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***! 7684 \*****************************************************************************/ 7685 /*! no static exports found */ 7686 /***/ (function(module, exports) { 7687 7688 function _objectWithoutPropertiesLoose(source, excluded) { 7689 if (source == null) return {}; 7690 var target = {}; 7691 var sourceKeys = Object.keys(source); 7692 var key, i; 7693 7694 for (i = 0; i < sourceKeys.length; i++) { 7695 key = sourceKeys[i]; 7696 if (excluded.indexOf(key) >= 0) continue; 7697 target[key] = source[key]; 7698 } 7699 7700 return target; 7701 } 7702 7703 module.exports = _objectWithoutPropertiesLoose; 7704 module.exports["default"] = module.exports, module.exports.__esModule = true; 7705 7706 /***/ }), 7707 7708 /***/ "./node_modules/@babel/runtime/helpers/slicedToArray.js": 7709 /*!**************************************************************!*\ 7710 !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! 7711 \**************************************************************/ 7712 /*! no static exports found */ 7713 /***/ (function(module, exports, __webpack_require__) { 7714 7715 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "./node_modules/@babel/runtime/helpers/arrayWithHoles.js"); 7716 7717 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js"); 7718 7719 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"); 7720 7721 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "./node_modules/@babel/runtime/helpers/nonIterableRest.js"); 7722 7723 function _slicedToArray(arr, i) { 7724 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); 7725 } 7726 7727 module.exports = _slicedToArray; 7728 module.exports["default"] = module.exports, module.exports.__esModule = true; 7729 7730 /***/ }), 7731 7732 /***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js": 7733 /*!******************************************************************!*\ 7734 !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! 7735 \******************************************************************/ 7736 /*! no static exports found */ 7737 /***/ (function(module, exports, __webpack_require__) { 7738 7739 var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js"); 7740 7741 var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@babel/runtime/helpers/iterableToArray.js"); 7742 7743 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"); 7744 7745 var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js"); 7746 7747 function _toConsumableArray(arr) { 7748 return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); 7749 } 7750 7751 module.exports = _toConsumableArray; 7752 module.exports["default"] = module.exports, module.exports.__esModule = true; 7753 7754 /***/ }), 7755 7756 /***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": 7757 /*!***************************************************************************!*\ 7758 !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! 7759 \***************************************************************************/ 7760 /*! no static exports found */ 7761 /***/ (function(module, exports, __webpack_require__) { 7762 7763 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js"); 7764 7765 function _unsupportedIterableToArray(o, minLen) { 7766 if (!o) return; 7767 if (typeof o === "string") return arrayLikeToArray(o, minLen); 7768 var n = Object.prototype.toString.call(o).slice(8, -1); 7769 if (n === "Object" && o.constructor) n = o.constructor.name; 7770 if (n === "Map" || n === "Set") return Array.from(o); 7771 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); 7772 } 7773 7774 module.exports = _unsupportedIterableToArray; 7775 module.exports["default"] = module.exports, module.exports.__esModule = true; 7696 7776 7697 7777 /***/ }), … … 10596 10676 /***/ }), 10597 10677 10598 /***/ "./src/components/add-to-favorite-button/index.js":10599 /*!********************************************************!*\10600 !*** ./src/components/add-to-favorite-button/index.js ***!10601 \********************************************************/10602 /*! exports provided: default */10603 /***/ (function(module, __webpack_exports__, __webpack_require__) {10604 10605 "use strict";10606 __webpack_require__.r(__webpack_exports__);10607 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");10608 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);10609 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");10610 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);10611 10612 10613 /**10614 * External dependencies10615 */10616 10617 10618 var AddToFavoriteButton = function AddToFavoriteButton() {10619 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("button", {10620 className: "button"10621 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__["__"])('Add to favorites', 'wporg-patterns'));10622 };10623 10624 /* harmony default export */ __webpack_exports__["default"] = (AddToFavoriteButton);10625 10626 /***/ }),10627 10628 10678 /***/ "./src/components/category-context-bar/index.js": 10629 10679 /*!******************************************************!*\ … … 10635 10685 "use strict"; 10636 10686 __webpack_require__.r(__webpack_exports__); 10637 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");10687 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 10638 10688 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 10639 10689 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 10836 10886 10837 10887 10838 10839 var updateIndicatorLocation = function updateIndicatorLocation(container, _ref) { 10840 var top = _ref.top, 10841 left = _ref.left, 10842 width = _ref.width, 10843 height = _ref.height; 10844 10845 if (!container) { 10846 return; 10847 } 10848 10849 container.style.backgroundPositionX = "".concat(left, "px"); 10850 container.style.backgroundSize = "".concat(width, "px ").concat(top + height, "px"); 10851 }; 10852 10853 var DefaultMenu = function DefaultMenu(_ref2) { 10854 var path = _ref2.path, 10855 options = _ref2.options, 10856 onClick = _ref2.onClick, 10857 isLoading = _ref2.isLoading; 10858 var containerRef = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useRef"])(null); 10859 var activeRef = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useRef"])(null); 10860 Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () { 10861 if (!containerRef || !containerRef.current || !activeRef || !activeRef.current) { 10862 return; 10863 } 10864 10865 updateIndicatorLocation(containerRef.current, { 10866 top: activeRef.current.offsetTop, 10867 left: activeRef.current.offsetLeft, 10868 width: activeRef.current.offsetWidth, 10869 height: activeRef.current.offsetHeight 10870 }); 10871 }); 10888 var DefaultMenu = function DefaultMenu(_ref) { 10889 var path = _ref.path, 10890 options = _ref.options, 10891 onClick = _ref.onClick, 10892 isLoading = _ref.isLoading; 10872 10893 10873 10894 if (!isLoading && !options.length) { … … 10876 10897 10877 10898 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("ul", { 10878 className: "category-menu ".concat(isLoading ? 'category-menu--is-loading' : '', " "), 10879 ref: containerRef 10899 className: "category-menu ".concat(isLoading ? 'category-menu--is-loading' : '', " ") 10880 10900 }, options.map(function (i) { 10881 var isActive = path === i.value;10882 10901 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("li", { 10883 10902 key: i.value 10884 10903 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("a", { 10885 className: isActive ? 'category-menu--is-active' : '',10904 className: path === i.value ? 'category-menu--is-active' : '', 10886 10905 href: i.value, 10887 ref: isActive ? activeRef : null,10888 10906 onClick: onClick 10889 10907 }, i.label)); … … 10934 10952 "use strict"; 10935 10953 __webpack_require__.r(__webpack_exports__); 10936 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");10954 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 10937 10955 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 10938 10956 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 11115 11133 /***/ }), 11116 11134 11135 /***/ "./src/components/favorite-button/index.js": 11136 /*!*************************************************!*\ 11137 !*** ./src/components/favorite-button/index.js ***! 11138 \*************************************************/ 11139 /*! exports provided: default */ 11140 /***/ (function(module, __webpack_exports__, __webpack_require__) { 11141 11142 "use strict"; 11143 __webpack_require__.r(__webpack_exports__); 11144 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 11145 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 11146 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "../../../../node_modules/classnames/index.js"); 11147 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); 11148 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 11149 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); 11150 /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); 11151 /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_3__); 11152 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); 11153 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__); 11154 /* harmony import */ var _icons_heart_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/heart-outline */ "./src/components/icons/heart-outline.js"); 11155 /* harmony import */ var _icons_heart_filled__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/heart-filled */ "./src/components/icons/heart-filled.js"); 11156 /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../store */ "./src/store/index.js"); 11157 11158 11159 /** 11160 * External dependencies 11161 */ 11162 11163 /** 11164 * WordPress dependencies 11165 */ 11166 11167 11168 11169 11170 11171 /** 11172 * Internal dependencies 11173 */ 11174 11175 11176 11177 11178 11179 var FavoriteButton = function FavoriteButton(_ref) { 11180 var _ref$showLabel = _ref.showLabel, 11181 showLabel = _ref$showLabel === void 0 ? true : _ref$showLabel, 11182 patternId = _ref.patternId; 11183 11184 var _useSelect = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__["useSelect"])(function (select) { 11185 // Fetch favorites so that the state is synced. 11186 select(_store__WEBPACK_IMPORTED_MODULE_7__["store"]).getFavorites(); 11187 return { 11188 // canUser defaults to adding `/wp/v2/` prefix, so we need to backtrack up the path. 11189 hasPermission: !!select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_3__["store"]).canUser('create', '../../wporg/v1/pattern-favorites'), 11190 isFavorite: select(_store__WEBPACK_IMPORTED_MODULE_7__["store"]).isFavorite(patternId) 11191 }; 11192 }), 11193 hasPermission = _useSelect.hasPermission, 11194 isFavorite = _useSelect.isFavorite; 11195 11196 var _useDispatch = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__["useDispatch"])(_store__WEBPACK_IMPORTED_MODULE_7__["store"]), 11197 addFavorite = _useDispatch.addFavorite, 11198 removeFavorite = _useDispatch.removeFavorite; 11199 11200 var onClick = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function () { 11201 if (isFavorite) { 11202 removeFavorite(patternId); 11203 } else { 11204 addFavorite(patternId); 11205 } 11206 }, [isFavorite]); 11207 11208 if (!hasPermission) { 11209 return null; 11210 } 11211 11212 var buttonClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()('button button-link pattern__favorite-button', { 11213 'is-favorited': isFavorite, 11214 'has-label': showLabel 11215 }); 11216 var labelClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()({ 11217 'screen-reader-text': !showLabel 11218 }); 11219 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("button", { 11220 className: buttonClasses, 11221 onClick: onClick 11222 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_icons_heart_filled__WEBPACK_IMPORTED_MODULE_6__["default"], { 11223 className: "pattern__favorite-filled" 11224 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_icons_heart_outline__WEBPACK_IMPORTED_MODULE_5__["default"], { 11225 className: "pattern__favorite-outline" 11226 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", { 11227 className: labelClasses 11228 }, isFavorite ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__["__"])('Remove from favorites', 'wporg-patterns') : Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__["__"])('Add to favorites', 'wporg-patterns'))); 11229 }; 11230 11231 /* harmony default export */ __webpack_exports__["default"] = (FavoriteButton); 11232 11233 /***/ }), 11234 11117 11235 /***/ "./src/components/icons/heart-filled.js": 11118 11236 /*!**********************************************!*\ … … 11124 11242 "use strict"; 11125 11243 __webpack_require__.r(__webpack_exports__); 11126 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ ". ./../../../node_modules/@babel/runtime/helpers/extends.js");11244 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js"); 11127 11245 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__); 11128 11246 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 11158 11276 "use strict"; 11159 11277 __webpack_require__.r(__webpack_exports__); 11160 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ ". ./../../../node_modules/@babel/runtime/helpers/extends.js");11278 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js"); 11161 11279 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__); 11162 11280 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 11192 11310 "use strict"; 11193 11311 __webpack_require__.r(__webpack_exports__); 11194 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ ". ./../../../node_modules/@babel/runtime/helpers/extends.js");11312 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js"); 11195 11313 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__); 11196 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");11314 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 11197 11315 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__); 11198 /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ ". ./../../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js");11316 /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/objectWithoutProperties.js"); 11199 11317 /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__); 11200 11318 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 11677 11795 "use strict"; 11678 11796 __webpack_require__.r(__webpack_exports__); 11679 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");11797 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 11680 11798 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 11681 11799 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 11682 11800 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 11683 11801 /* harmony import */ var _copy_pattern_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../copy-pattern-button */ "./src/components/copy-pattern-button/index.js"); 11684 /* harmony import */ var _ add_to_favorite_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../add-to-favorite-button */ "./src/components/add-to-favorite-button/index.js");11802 /* harmony import */ var _favorite_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../favorite-button */ "./src/components/favorite-button/index.js"); 11685 11803 /* harmony import */ var _copy_success_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./copy-success-message */ "./src/components/pattern-preview-actions/copy-success-message.js"); 11686 11804 /* harmony import */ var _copy_guide__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./copy-guide */ "./src/components/pattern-preview-actions/copy-guide.js"); … … 11701 11819 11702 11820 11703 var PatternPreviewActions = function PatternPreviewActions() { 11821 var PatternPreviewActions = function PatternPreviewActions(_ref) { 11822 var patternId = _ref.patternId; 11823 11704 11824 var _useState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), 11705 11825 _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2), … … 11716 11836 return setShowSuccess(true); 11717 11837 } 11718 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_add_to_favorite_button__WEBPACK_IMPORTED_MODULE_3__["default"], null), showSuccess && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_copy_success_message__WEBPACK_IMPORTED_MODULE_4__["default"], { 11838 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_favorite_button__WEBPACK_IMPORTED_MODULE_3__["default"], { 11839 patternId: patternId 11840 }), showSuccess && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_copy_success_message__WEBPACK_IMPORTED_MODULE_4__["default"], { 11719 11841 onClick: function onClick() { 11720 11842 return setShowGuide(true); … … 11782 11904 "use strict"; 11783 11905 __webpack_require__.r(__webpack_exports__); 11784 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ ". ./../../../node_modules/@babel/runtime/helpers/extends.js");11906 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/extends.js"); 11785 11907 /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__); 11786 /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ ". ./../../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js");11908 /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/objectWithoutProperties.js"); 11787 11909 /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__); 11788 11910 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 11856 11978 "use strict"; 11857 11979 __webpack_require__.r(__webpack_exports__); 11858 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");11980 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 11859 11981 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 11860 11982 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 11940 12062 "use strict"; 11941 12063 __webpack_require__.r(__webpack_exports__); 11942 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");12064 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 11943 12065 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 11944 12066 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 12029 12151 "use strict"; 12030 12152 __webpack_require__.r(__webpack_exports__); 12031 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");12153 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 12032 12154 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 12033 12155 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 12039 12161 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 12040 12162 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__); 12041 /* harmony import */ var _icons_heart_outline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/heart-outline */ "./src/components/icons/heart-outline.js"); 12042 /* harmony import */ var _icons_heart_filled__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/heart-filled */ "./src/components/icons/heart-filled.js"); 12043 /* harmony import */ var _canvas__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./canvas */ "./src/components/pattern-thumbnail/canvas.js"); 12044 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./src/utils/index.js"); 12163 /* harmony import */ var _favorite_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../favorite-button */ "./src/components/favorite-button/index.js"); 12164 /* harmony import */ var _canvas__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./canvas */ "./src/components/pattern-thumbnail/canvas.js"); 12165 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./src/utils/index.js"); 12045 12166 12046 12167 … … 12056 12177 * Internal dependencies 12057 12178 */ 12058 12059 12179 12060 12180 … … 12065 12185 var pattern = _ref.pattern; 12066 12186 12067 // @todo Implement a real favoriting process. 12068 var _useState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(Math.random() < 0.3), 12187 var _useState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), 12069 12188 _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2), 12070 isFavorite = _useState2[0], 12071 setFavorite = _useState2[1]; 12072 12073 var _useState3 = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), 12074 _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState3, 2), 12075 copied = _useState4[0], 12076 setCopied = _useState4[1]; 12189 copied = _useState2[0], 12190 setCopied = _useState2[1]; 12077 12191 12078 12192 var handleCopy = function handleCopy() { 12079 var result = Object(_utils__WEBPACK_IMPORTED_MODULE_ 8__["copyToClipboard"])(pattern.pattern_content);12193 var result = Object(_utils__WEBPACK_IMPORTED_MODULE_7__["copyToClipboard"])(pattern.pattern_content); 12080 12194 setCopied(result); 12081 12195 }; … … 12103 12217 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", { 12104 12218 className: "screen-reader-text" 12105 }, pattern.title.rendered), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_canvas__WEBPACK_IMPORTED_MODULE_ 7__["default"], {12219 }, pattern.title.rendered), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Disabled"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_canvas__WEBPACK_IMPORTED_MODULE_6__["default"], { 12106 12220 className: "pattern-grid__preview", 12107 12221 html: pattern.content.rendered … … 12110 12224 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("h2", { 12111 12225 className: "pattern-grid__title" 12112 }, pattern.title.rendered), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Tooltip"], { 12113 text: isFavorite ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Remove pattern from favorites', 'wporg-patterns') : Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Favorite pattern', 'wporg-patterns') 12114 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("button", { 12115 className: 'button button-link pattern__favorite-button' + (isFavorite ? ' is-favorited' : ''), 12116 onClick: function onClick() { 12117 return setFavorite(!isFavorite); 12118 } 12119 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_icons_heart_filled__WEBPACK_IMPORTED_MODULE_6__["default"], { 12120 className: "pattern__favorite-filled" 12121 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_icons_heart_outline__WEBPACK_IMPORTED_MODULE_5__["default"], { 12122 className: "pattern__favorite-outline" 12123 }))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Button"], { 12226 }, pattern.title.rendered), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_favorite_button__WEBPACK_IMPORTED_MODULE_5__["default"], { 12227 showLabel: false, 12228 patternId: pattern.id 12229 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Button"], { 12124 12230 className: "pattern__copy-button is-small", 12125 12231 isPrimary: true, … … 12174 12280 "use strict"; 12175 12281 __webpack_require__.r(__webpack_exports__); 12176 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ ". ./../../../node_modules/@babel/runtime/helpers/defineProperty.js");12282 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 12177 12283 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 12178 12284 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 12250 12356 /***/ }), 12251 12357 12358 /***/ "./src/components/report-pattern-button/index.js": 12359 /*!*******************************************************!*\ 12360 !*** ./src/components/report-pattern-button/index.js ***! 12361 \*******************************************************/ 12362 /*! exports provided: default */ 12363 /***/ (function(module, __webpack_exports__, __webpack_require__) { 12364 12365 "use strict"; 12366 __webpack_require__.r(__webpack_exports__); 12367 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 12368 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 12369 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 12370 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 12371 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 12372 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); 12373 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 12374 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); 12375 /* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/icons */ "../../../../node_modules/@wordpress/icons/build-module/index.js"); 12376 /* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/url */ "@wordpress/url"); 12377 /* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_url__WEBPACK_IMPORTED_MODULE_5__); 12378 /* harmony import */ var _report_pattern_modal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../report-pattern-modal */ "./src/components/report-pattern-modal/index.js"); 12379 12380 12381 12382 /** 12383 * WordPress dependencies 12384 */ 12385 12386 12387 12388 12389 12390 /** 12391 * Internal dependencies 12392 */ 12393 12394 12395 12396 var ReportPatternButton = function ReportPatternButton(_ref) { 12397 var postId = _ref.postId, 12398 loggedIn = _ref.loggedIn, 12399 userHasReported = _ref.userHasReported; 12400 12401 var _useState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), 12402 _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2), 12403 showModal = _useState2[0], 12404 setShowModal = _useState2[1]; 12405 12406 var _useState3 = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(false), 12407 _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState3, 2), 12408 hasSubmitted = _useState4[0], 12409 setHasSubmitted = _useState4[1]; 12410 12411 var alreadySubmitted = userHasReported || hasSubmitted; 12412 12413 if (alreadySubmitted) { 12414 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("p", { 12415 className: "pattern-report-button__copy" 12416 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_icons__WEBPACK_IMPORTED_MODULE_4__["Icon"], { 12417 icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_4__["check"] 12418 }), Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])("You've reported this pattern", 'wporg-patterns')); 12419 } 12420 12421 if (!loggedIn) { 12422 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("p", { 12423 className: "pattern-report-button__copy" 12424 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("a", { 12425 href: Object(_wordpress_url__WEBPACK_IMPORTED_MODULE_5__["addQueryArgs"])('/wp-login.php', { 12426 redirect_to: window.location.pathname 12427 }) 12428 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Login to report this pattern', 'wporg-patterns'))); 12429 } 12430 12431 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["Button"], { 12432 className: "pattern-report-button", 12433 isLink: true, 12434 onClick: function onClick() { 12435 return setShowModal(true); 12436 } 12437 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Report this pattern', 'wporg-patterns')), showModal && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_report_pattern_modal__WEBPACK_IMPORTED_MODULE_6__["default"], { 12438 postId: postId, 12439 onClose: function onClose(submitted) { 12440 setShowModal(false); 12441 setHasSubmitted(submitted); 12442 } 12443 })); 12444 }; 12445 12446 /* harmony default export */ __webpack_exports__["default"] = (ReportPatternButton); 12447 12448 /***/ }), 12449 12450 /***/ "./src/components/report-pattern-modal/index.js": 12451 /*!******************************************************!*\ 12452 !*** ./src/components/report-pattern-modal/index.js ***! 12453 \******************************************************/ 12454 /*! exports provided: default */ 12455 /***/ (function(module, __webpack_exports__, __webpack_require__) { 12456 12457 "use strict"; 12458 __webpack_require__.r(__webpack_exports__); 12459 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 12460 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 12461 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 12462 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 12463 /* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/a11y */ "@wordpress/a11y"); 12464 /* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_2__); 12465 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 12466 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); 12467 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 12468 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__); 12469 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); 12470 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__); 12471 /* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); 12472 /* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_6__); 12473 /* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/url */ "@wordpress/url"); 12474 /* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_url__WEBPACK_IMPORTED_MODULE_7__); 12475 /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../store */ "./src/store/index.js"); 12476 12477 12478 12479 /** 12480 * WordPress dependencies 12481 */ 12482 12483 12484 12485 12486 12487 12488 12489 /** 12490 * Internal dependencies 12491 */ 12492 12493 12494 12495 var reducer = function reducer(state, action) { 12496 switch (action.status) { 12497 case 'submitting': 12498 return { 12499 isSubmitting: true 12500 }; 12501 12502 case 'submitted': 12503 return { 12504 isSubmitted: true 12505 }; 12506 12507 case 'error': 12508 return { 12509 hasError: true, 12510 message: action.message 12511 }; 12512 12513 default: 12514 return {}; 12515 } 12516 }; 12517 12518 var ReportPatternModal = function ReportPatternModal(_ref) { 12519 var postId = _ref.postId, 12520 onClose = _ref.onClose; 12521 12522 var _useReducer = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useReducer"])(reducer, {}), 12523 _useReducer2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useReducer, 2), 12524 state = _useReducer2[0], 12525 dispatch = _useReducer2[1]; 12526 12527 var _useState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(''), 12528 _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2), 12529 selectedOption = _useState2[0], 12530 setOption = _useState2[1]; 12531 12532 var _useState3 = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useState"])(''), 12533 _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState3, 2), 12534 details = _useState4[0], 12535 setDetails = _useState4[1]; 12536 12537 var container = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useRef"])(); 12538 12539 var submittedText = Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Your report has been submitted.', 'wporg-patterns'); 12540 12541 var _useSelect = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__["useSelect"])(function (select) { 12542 var _select = select(_store__WEBPACK_IMPORTED_MODULE_8__["store"]), 12543 getPatternFlagReasons = _select.getPatternFlagReasons, 12544 isLoadingPatternFlagReasons = _select.isLoadingPatternFlagReasons; 12545 12546 var reasons = getPatternFlagReasons() || []; 12547 return { 12548 isLoading: isLoadingPatternFlagReasons(), 12549 mappedReasons: reasons.sort(function (a, b) { 12550 return a.id - b.id; 12551 }).map(function (i) { 12552 // We need to convert id to string to make the RadioControl match the selected item. 12553 return { 12554 label: i.name, 12555 value: i.id.toString() 12556 }; 12557 }) 12558 }; 12559 }), 12560 isLoading = _useSelect.isLoading, 12561 mappedReasons = _useSelect.mappedReasons; 12562 12563 var handleSubmit = function handleSubmit(event) { 12564 event.preventDefault(); 12565 12566 if (!selectedOption || !details.length || state.isSubmitted || state.isSubmitting) { 12567 return; 12568 } 12569 12570 dispatch({ 12571 status: 'submitting' 12572 }); 12573 _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_6___default()({ 12574 path: Object(_wordpress_url__WEBPACK_IMPORTED_MODULE_7__["addQueryArgs"])('/wp/v2/wporg-pattern-flag'), 12575 method: 'POST', 12576 data: { 12577 parent: postId, 12578 'wporg-pattern-flag-reason': selectedOption, 12579 excerpt: details 12580 } 12581 }).then(function () { 12582 dispatch({ 12583 status: 'submitted' 12584 }); 12585 Object(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_2__["speak"])(submittedText); 12586 container.current.closest('[role="dialog"]').focus(); 12587 }).catch(function (err) { 12588 dispatch({ 12589 status: 'error', 12590 message: err.message 12591 }); 12592 Object(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_2__["speak"])(Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["sprintf"])( 12593 /* translators: %s: Error message. */ 12594 Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Error: %s', 'wporg-patterns'), err.message)); 12595 }); 12596 }; 12597 12598 var handleClose = function handleClose() { 12599 onClose(state.isSubmitted); 12600 }; 12601 12602 var renderView = function renderView() { 12603 if (isLoading) { 12604 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Spinner"], null); 12605 } 12606 12607 if (state.isSubmitted) { 12608 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("p", { 12609 className: "pattern-report-modal__copy" 12610 }, submittedText); 12611 } 12612 12613 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("form", { 12614 onSubmit: handleSubmit 12615 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["RadioControl"], { 12616 className: "pattern-report-modal__radio", 12617 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Please choose a reason:', 'wporg-patterns'), 12618 selected: selectedOption, 12619 options: mappedReasons, 12620 onChange: setOption, 12621 required: true 12622 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["TextareaControl"], { 12623 label: "Please provide details (required)", 12624 value: details, 12625 onChange: setDetails, 12626 required: true 12627 }), state.hasError && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 12628 className: "notice notice-large notice-alt notice-error" 12629 }, state.message), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 12630 className: "pattern-report-modal__actions" 12631 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Button"], { 12632 isSecondary: true, 12633 onClick: handleClose 12634 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Cancel', 'wporg-patterns')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Button"], { 12635 type: "submit", 12636 isBusy: state.isSubmitting, 12637 isPrimary: true 12638 }, state.isSubmitting ? Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Submitting …', 'wporg-patterns') : Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Report', 'wporg-patterns')))); 12639 }; 12640 12641 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__["Modal"], { 12642 className: "pattern-report-modal ".concat(!state.isSubmitted ? 'pattern-report-modal__has-fixed-height' : ''), 12643 title: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Report this pattern', 'wporg-patterns'), 12644 onRequestClose: handleClose 12645 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 12646 ref: container 12647 }, renderView())); 12648 }; 12649 12650 /* harmony default export */ __webpack_exports__["default"] = (ReportPatternModal); 12651 12652 /***/ }), 12653 12252 12654 /***/ "./src/hooks/index.js": 12253 12655 /*!****************************!*\ … … 12279 12681 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RouteProvider", function() { return RouteProvider; }); 12280 12682 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useRoute", function() { return useRoute; }); 12281 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ ". ./../../../node_modules/@babel/runtime/helpers/defineProperty.js");12683 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 12282 12684 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 12283 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ ". ./../../../node_modules/@babel/runtime/helpers/slicedToArray.js");12685 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 12284 12686 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__); 12285 12687 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); … … 12393 12795 /* harmony import */ var _components_pattern_preview__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/pattern-preview */ "./src/components/pattern-preview/index.js"); 12394 12796 /* harmony import */ var _components_pattern_preview_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/pattern-preview-actions */ "./src/components/pattern-preview-actions/index.js"); 12395 /* harmony import */ var _components_patterns__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/patterns */ "./src/components/patterns/index.js"); 12797 /* harmony import */ var _components_report_pattern_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/report-pattern-button */ "./src/components/report-pattern-button/index.js"); 12798 /* harmony import */ var _components_patterns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/patterns */ "./src/components/patterns/index.js"); 12396 12799 12397 12800 … … 12403 12806 * Internal dependencies 12404 12807 */ 12808 12405 12809 12406 12810 … … 12430 12834 12431 12835 if (gridContainer) { 12432 Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["render"])(Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_components_patterns__WEBPACK_IMPORTED_MODULE_ 3__["default"], null), gridContainer);12836 Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["render"])(Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_components_patterns__WEBPACK_IMPORTED_MODULE_4__["default"], null), gridContainer); 12433 12837 } // Load the pattern preview actions 12434 12838 … … 12437 12841 12438 12842 if (patternActionsContainer) { 12439 Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["render"])(Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_components_pattern_preview_actions__WEBPACK_IMPORTED_MODULE_2__["default"], null), patternActionsContainer); 12843 Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["render"])(Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_components_pattern_preview_actions__WEBPACK_IMPORTED_MODULE_2__["default"], { 12844 patternId: Number(patternActionsContainer.dataset.id) 12845 }), patternActionsContainer); 12846 } // Load report button 12847 12848 12849 var patternReportContainer = document.getElementById('pattern-report'); 12850 12851 if (patternReportContainer) { 12852 var _patternReportContain = patternReportContainer.dataset, 12853 loggedIn = _patternReportContain.loggedIn, 12854 postId = _patternReportContain.postId, 12855 userHasReported = _patternReportContain.userHasReported; 12856 Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["render"])(Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_components_report_pattern_button__WEBPACK_IMPORTED_MODULE_3__["default"], { 12857 userHasReported: userHasReported === 'true', 12858 loggedIn: loggedIn === 'true', 12859 postId: postId 12860 }), patternReportContainer); 12440 12861 } 12441 12862 … … 12446 12867 !*** ./src/store/actions.js ***! 12447 12868 \******************************/ 12448 /*! exports provided: fetchPatterns, loadPatterns, setCurrentQuery, fetchCategories, loadCategories */12869 /*! exports provided: fetchPatterns, loadPatterns, setCurrentQuery, fetchCategories, loadCategories, fetchPatternFlagReasons, loadPatternFlagReasons, loadFavorites, addFavorite, removeFavorite */ 12449 12870 /***/ (function(module, __webpack_exports__, __webpack_require__) { 12450 12871 … … 12456 12877 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchCategories", function() { return fetchCategories; }); 12457 12878 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadCategories", function() { return loadCategories; }); 12879 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchPatternFlagReasons", function() { return fetchPatternFlagReasons; }); 12880 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadPatternFlagReasons", function() { return loadPatternFlagReasons; }); 12881 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadFavorites", function() { return loadFavorites; }); 12882 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addFavorite", function() { return addFavorite; }); 12883 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFavorite", function() { return removeFavorite; }); 12884 /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "@babel/runtime/regenerator"); 12885 /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); 12886 /* harmony import */ var _wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data-controls */ "@wordpress/data-controls"); 12887 /* harmony import */ var _wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1__); 12888 12889 12890 var _marked = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(addFavorite), 12891 _marked2 = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(removeFavorite); 12892 12893 /** 12894 * WordPress dependencies 12895 */ 12896 12458 12897 /** 12459 12898 * Get the action object signalling that patterns have been requested. … … 12463 12902 * @return {Object} Action object. 12464 12903 */ 12904 12465 12905 function fetchPatterns(query) { 12466 12906 return { … … 12522 12962 }; 12523 12963 } 12964 /** 12965 * Get the action object signalling that pattern flag reasons have been requested. 12966 * 12967 * @return {Object} Action object. 12968 */ 12969 12970 function fetchPatternFlagReasons() { 12971 return { 12972 type: 'FETCH_PATTERN_FLAG_REASONS' 12973 }; 12974 } 12975 /** 12976 * Get the action object signalling that pattern flag reasons have been loaded. 12977 * 12978 * @param {Array} reasons A list of reasons. 12979 * @return {Object} Action object. 12980 */ 12981 12982 function loadPatternFlagReasons(reasons) { 12983 return { 12984 type: 'LOAD_PATTERN_FLAG_REASONS', 12985 reasons: reasons 12986 }; 12987 } 12988 /** 12989 * Get the action object signalling that the favorites list has been loaded. 12990 * 12991 * @param {number[]} patternIds A list of pattern IDs. 12992 * 12993 * @return {Object} Action object. 12994 */ 12995 12996 function loadFavorites(patternIds) { 12997 return { 12998 type: 'LOAD_FAVORITES', 12999 patternIds: patternIds 13000 }; 13001 } 13002 /** 13003 * Get the action object to favorite a pattern. 13004 * 13005 * @param {number} patternId The pattern to favorite. 13006 * 13007 * @return {Object} Action object. 13008 */ 13009 13010 function addFavorite(patternId) { 13011 var success; 13012 return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function addFavorite$(_context) { 13013 while (1) { 13014 switch (_context.prev = _context.next) { 13015 case 0: 13016 _context.next = 2; 13017 return Object(_wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1__["apiFetch"])({ 13018 path: '/wporg/v1/pattern-favorites', 13019 method: 'POST', 13020 data: { 13021 id: patternId 13022 } 13023 }); 13024 13025 case 2: 13026 success = _context.sent; 13027 13028 if (!(success === true)) { 13029 _context.next = 5; 13030 break; 13031 } 13032 13033 return _context.abrupt("return", { 13034 type: 'ADD_FAVORITE', 13035 patternId: patternId 13036 }); 13037 13038 case 5: 13039 case "end": 13040 return _context.stop(); 13041 } 13042 } 13043 }, _marked); 13044 } 13045 /** 13046 * Get the action object to unfavorite a pattern. 13047 * 13048 * @param {number} patternId The pattern to unfavorite. 13049 * 13050 * @return {Object} Action object. 13051 */ 13052 13053 function removeFavorite(patternId) { 13054 var success; 13055 return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function removeFavorite$(_context2) { 13056 while (1) { 13057 switch (_context2.prev = _context2.next) { 13058 case 0: 13059 _context2.next = 2; 13060 return Object(_wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1__["apiFetch"])({ 13061 path: '/wporg/v1/pattern-favorites', 13062 method: 'DELETE', 13063 data: { 13064 id: patternId 13065 } 13066 }); 13067 13068 case 2: 13069 success = _context2.sent; 13070 13071 if (!(success === true)) { 13072 _context2.next = 5; 13073 break; 13074 } 13075 13076 return _context2.abrupt("return", { 13077 type: 'REMOVE_FAVORITE', 13078 patternId: patternId 13079 }); 13080 13081 case 5: 13082 case "end": 13083 return _context2.stop(); 13084 } 13085 } 13086 }, _marked2); 13087 } 12524 13088 12525 13089 /***/ }), … … 12539 13103 /* harmony import */ var _wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data-controls */ "@wordpress/data-controls"); 12540 13104 /* harmony import */ var _wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1__); 12541 /* harmony import */ var _ reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reducer */ "./src/store/reducer.js");12542 /* harmony import */ var _ selectors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./selectors */ "./src/store/selectors.js");12543 /* harmony import */ var _ actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./actions */ "./src/store/actions.js");12544 /* harmony import */ var _ resolvers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./resolvers */ "./src/store/resolvers.js");13105 /* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./actions */ "./src/store/actions.js"); 13106 /* harmony import */ var _reducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reducer */ "./src/store/reducer.js"); 13107 /* harmony import */ var _resolvers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./resolvers */ "./src/store/resolvers.js"); 13108 /* harmony import */ var _selectors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./selectors */ "./src/store/selectors.js"); 12545 13109 /** 12546 13110 * WordPress dependencies … … 12570 13134 12571 13135 var store = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__["createReduxStore"])(STORE_NAME, { 12572 reducer: _reducer__WEBPACK_IMPORTED_MODULE_ 2__["default"],12573 selectors: _selectors__WEBPACK_IMPORTED_MODULE_ 3__,12574 actions: _actions__WEBPACK_IMPORTED_MODULE_ 4__,13136 reducer: _reducer__WEBPACK_IMPORTED_MODULE_3__["default"], 13137 selectors: _selectors__WEBPACK_IMPORTED_MODULE_5__, 13138 actions: _actions__WEBPACK_IMPORTED_MODULE_2__, 12575 13139 controls: _wordpress_data_controls__WEBPACK_IMPORTED_MODULE_1__["controls"], 12576 resolvers: _resolvers__WEBPACK_IMPORTED_MODULE_ 5__13140 resolvers: _resolvers__WEBPACK_IMPORTED_MODULE_4__ 12577 13141 }); 12578 13142 Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__["register"])(store); … … 12584 13148 !*** ./src/store/reducer.js ***! 12585 13149 \******************************/ 12586 /*! exports provided: patterns, categories, currentQuery, default */13150 /*! exports provided: patterns, categories, currentQuery, patternFlagReasons, favorites, default */ 12587 13151 /***/ (function(module, __webpack_exports__, __webpack_require__) { 12588 13152 … … 12592 13156 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "categories", function() { return categories; }); 12593 13157 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "currentQuery", function() { return currentQuery; }); 12594 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../../../../node_modules/@babel/runtime/helpers/defineProperty.js"); 12595 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 12596 /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../../../../node_modules/@babel/runtime/helpers/toConsumableArray.js"); 12597 /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__); 13158 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "patternFlagReasons", function() { return patternFlagReasons; }); 13159 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "favorites", function() { return favorites; }); 13160 /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/toConsumableArray.js"); 13161 /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__); 13162 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 13163 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__); 12598 13164 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); 12599 13165 /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__); … … 12604 13170 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } 12605 13171 12606 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_ 0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }13172 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 12607 13173 12608 13174 /** … … 12631 13197 }; 12632 13198 } 12633 /**12634 * Reducer to track categories.12635 *12636 * @param {Object} state Current state.12637 * @param {Object} action Dispatched action.12638 * @return {Object} Updated state.12639 */12640 12641 function categories() {12642 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;12643 var action = arguments.length > 1 ? arguments[1] : undefined;12644 12645 switch (action.type) {12646 case 'FETCH_CATEGORIES':12647 return null;12648 // Indicates the query is in progress12649 12650 case 'LOAD_CATEGORIES':12651 // Sort the categories alphabetically.12652 // See: https://github.com/WordPress/pattern-directory/pull/76#issuecomment-81833087212653 var sorted = (action.categories || []).sort(function (a, b) {12654 return a.name.localeCompare(b.name);12655 });12656 return [Object(_utils__WEBPACK_IMPORTED_MODULE_3__["getAllCategory"])()].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(sorted));12657 }12658 12659 return state;12660 }12661 /**12662 * Reducer to track the current query.12663 *12664 * @param {Object} state Current state.12665 * @param {Object} action Dispatched action.12666 * @return {Object} Updated state.12667 */12668 12669 function currentQuery() {12670 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;12671 var action = arguments.length > 1 ? arguments[1] : undefined;12672 12673 switch (action.type) {12674 case 'SET_CURRENT_QUERY':12675 return action.query;12676 }12677 12678 return state;12679 }12680 13199 12681 13200 function byId() { … … 12683 13202 var action = arguments.length > 1 ? arguments[1] : undefined; 12684 13203 var patternsById = (action.patterns || []).reduce(function (acc, cur) { 12685 return _objectSpread(_objectSpread({}, acc), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_ 0___default()({}, cur.id, cur));13204 return _objectSpread(_objectSpread({}, acc), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()({}, cur.id, cur)); 12686 13205 }, {}); 12687 13206 … … 12705 13224 switch (action.type) { 12706 13225 case 'LOAD_BLOCK_PATTERNS': 12707 return _objectSpread(_objectSpread({}, state), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_ 0___default()({}, action.query, [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(state[action.query] || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(patternIds))));13226 return _objectSpread(_objectSpread({}, state), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()({}, action.query, [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(state[action.query] || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(patternIds)))); 12708 13227 12709 13228 default: … … 12711 13230 } 12712 13231 } 12713 13232 /** 13233 * Reducer to track categories. 13234 * 13235 * @param {Object} state Current state. 13236 * @param {Object} action Dispatched action. 13237 * @return {Object} Updated state. 13238 */ 13239 13240 13241 function categories() { 13242 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; 13243 var action = arguments.length > 1 ? arguments[1] : undefined; 13244 13245 switch (action.type) { 13246 case 'FETCH_CATEGORIES': 13247 return null; 13248 // Indicates the query is in progress 13249 13250 case 'LOAD_CATEGORIES': 13251 // Sort the categories alphabetically. 13252 // See: https://github.com/WordPress/pattern-directory/pull/76#issuecomment-818330872 13253 var sorted = (action.categories || []).sort(function (a, b) { 13254 return a.name.localeCompare(b.name); 13255 }); 13256 return [Object(_utils__WEBPACK_IMPORTED_MODULE_3__["getAllCategory"])()].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(sorted)); 13257 } 13258 13259 return state; 13260 } 13261 /** 13262 * Reducer to track the current query. 13263 * 13264 * @param {Object} state Current state. 13265 * @param {Object} action Dispatched action. 13266 * @return {Object} Updated state. 13267 */ 13268 13269 function currentQuery() { 13270 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; 13271 var action = arguments.length > 1 ? arguments[1] : undefined; 13272 13273 switch (action.type) { 13274 case 'SET_CURRENT_QUERY': 13275 return action.query; 13276 } 13277 13278 return state; 13279 } 13280 /** 13281 * Reducer to track pattern flag reasons. 13282 * 13283 * @param {Object} state Current state. 13284 * @param {Object} action Dispatched action. 13285 * @return {Object} Updated state. 13286 */ 13287 13288 function patternFlagReasons() { 13289 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; 13290 var action = arguments.length > 1 ? arguments[1] : undefined; 13291 13292 switch (action.type) { 13293 case 'FETCH_PATTERN_FLAG_REASONS': 13294 return null; 13295 13296 case 'LOAD_PATTERN_FLAG_REASONS': 13297 return _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(action.reasons); 13298 13299 default: 13300 return state; 13301 } 13302 } 13303 /** 13304 * Reducer to track the user's favorites. 13305 * 13306 * @param {Object} state Current state. 13307 * @param {Object} action Dispatched action. 13308 * @return {Object} Updated state. 13309 */ 13310 13311 function favorites() { 13312 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 13313 var action = arguments.length > 1 ? arguments[1] : undefined; 13314 var patternId = action.patternId; 13315 13316 switch (action.type) { 13317 case 'LOAD_FAVORITES': 13318 return action.patternIds; 13319 13320 case 'ADD_FAVORITE': 13321 return state.includes(patternId) ? state : [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(state), [patternId]); 13322 13323 case 'REMOVE_FAVORITE': 13324 return state.filter(function (id) { 13325 return id !== patternId; 13326 }); 13327 } 13328 13329 return state; 13330 } 12714 13331 /* harmony default export */ __webpack_exports__["default"] = (Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__["combineReducers"])({ 12715 13332 patterns: patterns, 12716 13333 categories: categories, 12717 currentQuery: currentQuery // favorites, 12718 13334 currentQuery: currentQuery, 13335 patternFlagReasons: patternFlagReasons, 13336 favorites: favorites 12719 13337 })); 12720 13338 … … 12725 13343 !*** ./src/store/resolvers.js ***! 12726 13344 \********************************/ 12727 /*! exports provided: getPatternsByQuery, getCategories */13345 /*! exports provided: getPatternsByQuery, getCategories, getPatternFlagReasons, getFavorites */ 12728 13346 /***/ (function(module, __webpack_exports__, __webpack_require__) { 12729 13347 … … 12732 13350 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPatternsByQuery", function() { return getPatternsByQuery; }); 12733 13351 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCategories", function() { return getCategories; }); 13352 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPatternFlagReasons", function() { return getPatternFlagReasons; }); 13353 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFavorites", function() { return getFavorites; }); 12734 13354 /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "@babel/runtime/regenerator"); 12735 13355 /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); … … 12743 13363 12744 13364 var _marked = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(getPatternsByQuery), 12745 _marked2 = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(getCategories); 13365 _marked2 = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(getCategories), 13366 _marked3 = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(getPatternFlagReasons), 13367 _marked4 = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(getFavorites); 12746 13368 12747 13369 /** … … 12829 13451 }, _marked2, null, [[0, 10]]); 12830 13452 } 13453 function getPatternFlagReasons() { 13454 var results; 13455 return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function getPatternFlagReasons$(_context3) { 13456 while (1) { 13457 switch (_context3.prev = _context3.next) { 13458 case 0: 13459 _context3.prev = 0; 13460 _context3.next = 3; 13461 return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["fetchPatternFlagReasons"])(); 13462 13463 case 3: 13464 _context3.next = 5; 13465 return Object(_wordpress_data_controls__WEBPACK_IMPORTED_MODULE_2__["apiFetch"])({ 13466 path: Object(_wordpress_url__WEBPACK_IMPORTED_MODULE_1__["addQueryArgs"])('/wp/v2/wporg-pattern-flag-reason') 13467 }); 13468 13469 case 5: 13470 results = _context3.sent; 13471 _context3.next = 8; 13472 return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["loadPatternFlagReasons"])(results); 13473 13474 case 8: 13475 _context3.next = 12; 13476 break; 13477 13478 case 10: 13479 _context3.prev = 10; 13480 _context3.t0 = _context3["catch"](0); 13481 13482 case 12: 13483 case "end": 13484 return _context3.stop(); 13485 } 13486 } 13487 }, _marked3, null, [[0, 10]]); 13488 } 13489 function getFavorites() { 13490 var results; 13491 return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function getFavorites$(_context4) { 13492 while (1) { 13493 switch (_context4.prev = _context4.next) { 13494 case 0: 13495 _context4.prev = 0; 13496 _context4.next = 3; 13497 return Object(_wordpress_data_controls__WEBPACK_IMPORTED_MODULE_2__["apiFetch"])({ 13498 path: '/wporg/v1/pattern-favorites' 13499 }); 13500 13501 case 3: 13502 results = _context4.sent; 13503 _context4.next = 6; 13504 return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["loadFavorites"])(results); 13505 13506 case 6: 13507 _context4.next = 10; 13508 break; 13509 13510 case 8: 13511 _context4.prev = 8; 13512 _context4.t0 = _context4["catch"](0); 13513 13514 case 10: 13515 case "end": 13516 return _context4.stop(); 13517 } 13518 } 13519 }, _marked4, null, [[0, 8]]); 13520 } 12831 13521 12832 13522 /***/ }), … … 12836 13526 !*** ./src/store/selectors.js ***! 12837 13527 \********************************/ 12838 /*! exports provided: isLoadingPatternsByQuery, getPatterns, getPatternsByQuery, getPattern, getCurrentQuery, isLoadingCategories, hasLoadedCategories, getCategories, getCategoryBySlug */13528 /*! exports provided: isLoadingPatternsByQuery, getPatterns, getPatternsByQuery, getPattern, getCurrentQuery, isLoadingCategories, hasLoadedCategories, getCategories, getCategoryBySlug, getPatternFlagReasons, isLoadingPatternFlagReasons, getFavorites, isFavorite */ 12839 13529 /***/ (function(module, __webpack_exports__, __webpack_require__) { 12840 13530 … … 12850 13540 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCategories", function() { return getCategories; }); 12851 13541 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCategoryBySlug", function() { return getCategoryBySlug; }); 12852 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../../../../node_modules/@babel/runtime/helpers/slicedToArray.js"); 13542 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPatternFlagReasons", function() { return getPatternFlagReasons; }); 13543 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLoadingPatternFlagReasons", function() { return isLoadingPatternFlagReasons; }); 13544 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFavorites", function() { return getFavorites; }); 13545 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFavorite", function() { return isFavorite; }); 13546 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/slicedToArray.js"); 12853 13547 /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__); 12854 13548 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/store/utils.js"); … … 12976 13670 return cat; 12977 13671 } 13672 /** 13673 * Get pattern flag reasons. 13674 * 13675 * @param {Object} state Global application state. 13676 * 13677 * @return {Array} A list of pattern flag reasons. 13678 */ 13679 13680 function getPatternFlagReasons(state) { 13681 return state.patternFlagReasons; 13682 } 13683 /** 13684 * Check if pattern flag reasons are loading. 13685 * 13686 * @param {Object} state Global application state. 13687 * 13688 * @return {Array} A list of pattern flag reasons. 13689 */ 13690 13691 function isLoadingPatternFlagReasons(state) { 13692 return state.patternFlagReasons === null; 13693 } 13694 /** 13695 * Get the list of favorites. 13696 * 13697 * @param {Object} state Global application state. 13698 * 13699 * @return {number[]} A list of favorite pattern IDs. 13700 */ 13701 13702 function getFavorites(state) { 13703 return state.favorites; 13704 } 13705 /** 13706 * Check if a pattern ID is in the list of favorites. 13707 * 13708 * @param {Object} state Global application state. 13709 * @param {number} patternId The pattern to check. 13710 * 13711 * @return {number[]} A list of favorite pattern IDs. 13712 */ 13713 13714 function isFavorite(state, patternId) { 13715 return state.favorites.includes(patternId); 13716 } 12978 13717 12979 13718 /***/ }), … … 12990 13729 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getQueryString", function() { return getQueryString; }); 12991 13730 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllCategory", function() { return getAllCategory; }); 12992 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ ". ./../../../node_modules/@babel/runtime/helpers/defineProperty.js");13731 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 12993 13732 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 12994 13733 /* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/url */ "@wordpress/url"); … … 13210 13949 /***/ }), 13211 13950 13951 /***/ "@wordpress/api-fetch": 13952 /*!**********************************!*\ 13953 !*** external ["wp","apiFetch"] ***! 13954 \**********************************/ 13955 /*! no static exports found */ 13956 /***/ (function(module, exports) { 13957 13958 (function() { module.exports = window["wp"]["apiFetch"]; }()); 13959 13960 /***/ }), 13961 13212 13962 /***/ "@wordpress/components": 13213 13963 /*!************************************!*\ … … 13232 13982 /***/ }), 13233 13983 13984 /***/ "@wordpress/core-data": 13985 /*!**********************************!*\ 13986 !*** external ["wp","coreData"] ***! 13987 \**********************************/ 13988 /*! no static exports found */ 13989 /***/ (function(module, exports) { 13990 13991 (function() { module.exports = window["wp"]["coreData"]; }()); 13992 13993 /***/ }), 13994 13234 13995 /***/ "@wordpress/data": 13235 13996 /*!******************************!*\ -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/css/components/_category-menu.scss
r10924 r10983 3 3 padding: 0; 4 4 position: relative; 5 6 background: linear-gradient(180deg, hsla(0, 0%, 100%, 0) 94%, $color__wp-blue 0);7 background-repeat: no-repeat;8 background-size: 0;9 background-position-x: 0;10 transition: all 75ms ease-out;11 min-height: 45px;12 5 13 6 li { … … 19 12 a { 20 13 display: block; 21 padding: $gutter-default / 2;14 padding: $gutter-default / 3 $gutter-default / 2; 22 15 color: $color-gray-600; 23 16 font-size: 0.875rem; … … 32 25 33 26 li &--is-active { 34 color: $color-black; 27 color: $color-white; 28 background: $color__wp-blue; 29 border-radius: 2px; 30 31 &:hover, 32 &:focus { 33 color: $color-white; 34 } 35 35 } 36 36 -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/css/components/_components.scss
r10882 r10983 31 31 @import "pattern-grid"; 32 32 @import "pattern-preview"; 33 @import "pattern-report-button"; 34 @import "pattern-report-modal"; 33 35 @import "pattern"; 34 36 @import "search-form"; -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/css/components/_favorite-button.scss
r10882 r10983 74 74 } 75 75 } 76 77 &[disabled] { 78 background: transparent !important; 79 text-shadow: none !important; 80 color: $color-gray-400 !important; 81 } 76 82 } 77 83 -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/css/components/_pattern.scss
r10924 r10983 29 29 .pattern-actions { 30 30 display: flex; 31 align-items: stretch; 31 justify-content: flex-start; 32 align-items: center; 32 33 flex-wrap: wrap; 34 gap: 0.5em 2em; 33 35 34 button + button { 35 margin-left: 2em; 36 button { 37 margin: 0; 38 } 39 40 @media (max-width: $breakpoint-mobile) { 41 justify-content: center; 36 42 } 37 43 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/css/style.css
r10924 r10983 1 @charset "UTF-8";[class*=col-]{margin:inherit}.row{display:flex;flex-direction:row;flex-wrap:wrap}@media (max-width:768px){.row{flex-direction:column;flex-wrap:nowrap}}.row.gutters>.row{margin-left:-2%}@media (max-width:768px){.row.gutters>.row{margin-left:0}}.row.gutters>.row>[class*=col-]{margin-left:2%}@media (max-width:768px){.row.gutters>.row>[class*=col-]{margin-left:0}}.row.around{justify-content:space-around}.row.between{justify-content:space-between}.row.auto .col{flex-grow:1}.col-1{width:8.3333333333%}.offset-1{margin-left:8.3333333333%}.col-2{width:16.6666666667%}.offset-2{margin-left:16.6666666667%}.col-3{width:25%}.offset-3{margin-left:25%}.col-4{width:33.3333333333%}.offset-4{margin-left:33.3333333333%}.col-5{width:41.6666666667%}.offset-5{margin-left:41.6666666667%}.col-6{width:50%}.offset-6{margin-left:50%}.col-7{width:58.3333333333%}.offset-7{margin-left:58.3333333333%}.col-8{width:66.6666666667%}.offset-8{margin-left:66.6666666667%}.col-9{width:75%}.offset-9{margin-left:75%}.col-10{width:83.3333333333%}.offset-10{margin-left:83.3333333333%}.col-11{width:91.6666666667%}.offset-11{margin-left:91.6666666667%}.col-12{width:100%}.offset-12{margin-left:100%}.gutters>.col-1{width:6.33333%}.gutters>.col-1:nth-child(n+13){margin-top:2%}.gutters>.offset-1{margin-left:10.33333%!important}.gutters>.col-2{width:14.66667%}.gutters>.col-2:nth-child(n+7){margin-top:2%}.gutters>.offset-2{margin-left:18.66667%!important}.gutters>.col-3{width:23%}.gutters>.col-3:nth-child(n+5){margin-top:2%}.gutters>.offset-3{margin-left:27%!important}.gutters>.col-4{width:31.33333%}.gutters>.col-4:nth-child(n+4){margin-top:2%}.gutters>.offset-4{margin-left:35.33333%!important}.gutters>.col-5{width:39.66667%}.gutters>.offset-5{margin-left:43.66667%!important}.gutters>.col-6{width:48%}.gutters>.col-6:nth-child(n+3){margin-top:2%}.gutters>.offset-6{margin-left:52%!important}.gutters>.col-7{width:56.33333%}.gutters>.offset-7{margin-left:60.33333%!important}.gutters>.col-8{width:64.66667%}.gutters>.offset-8{margin-left:68.66667%!important}.gutters>.col-9{width:73%}.gutters>.offset-9{margin-left:77%!important}.gutters>.col-10{width:81.33333%}.gutters>.offset-10{margin-left:85.33333%!important}.gutters>.col-11{width:89.66667%}.gutters>.offset-11{margin-left:93.66667%!important}.gutters>.col-12{width:98%}.gutters>.offset-12{margin-left:102%!important}@media (max-width:768px){[class*=" offset-"],[class^=offset-]{margin-left:0}}.first{order:-1}.last{order:1}@media (max-width:768px){.row [class*=col-]{margin-left:0;width:100%}.row.gutters [class*=col-]{margin-bottom:16px}.first-sm{order:-1}.last-sm{order:1}}.gutters .column.push-left,.push-left{margin-right:auto}.gutters .column.push-right,.push-right{margin-left:auto}.gutters .column.push-center,.push-center{margin-left:auto;margin-right:auto}.gutters .column.push-middle,.push-middle{margin-top:auto;margin-bottom:auto}.push-bottom{margin-top:auto}@media (max-width:768px){.gutters .column.push-left-sm,.push-left-sm{margin-left:0}.gutters .column.push-center-sm,.push-center-sm{margin-left:auto;margin-right:auto}.push-top-sm{margin-top:0}}.align-middle{align-items:center}.align-right{justify-content:flex-end}.align-center{justify-content:center}@media (max-width:768px){.align-left-sm{justify-content:flex-start}}.float-right{float:right}.float-left{float:left}@media (max-width:768px){.float-left,.float-right{float:none}}.fixed{position:fixed;top:0;left:0;z-index:100;width:100%}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}optgroup{font-weight:700}table{border-spacing:0}td,th{padding:0}p{margin:1rem 0}cite,dfn,em,i{font-style:italic}blockquote{margin:0 1.5rem}address{margin:0 0 1.5rem}pre{background:#eee;font-family:Courier\ 10 Pitch,Courier,monospace;font-size:.9375rem;line-height:1.6;margin-bottom:1.6rem;max-width:100%;overflow:auto;padding:1.6rem}code,kbd,tt,var{font-family:Monaco,Consolas,Andale Mono,DejaVu Sans Mono,monospace;font-size:.9375rem}abbr,acronym{border-bottom:1px dotted #666;cursor:help}ins,mark{background:#fff9c0;text-decoration:none}big{font-size:125%}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#fff}blockquote,q{quotes:"" ""}blockquote:after,blockquote:before,q:after,q:before{content:""}blockquote{border-left:2px solid #767676;color:#767676;margin:1rem 0;padding-left:.8rem}blockquote cite{font-size:.8rem}figure{margin:0}hr{background-color:#eee;border:0;height:2px;margin:5rem auto}img{height:auto;max-width:100%}h1,h2,h3,h4,h5,h6{font-family:Open Sans,sans-serif;clear:both;line-height:1.5;margin:2rem 0 1rem}.h1,h1{font-size:2.44140625rem}.h1,.h2,h1,h2{font-weight:300}.h2,h2{font-size:1.953125rem}.h3,h3{font-size:1.5625rem;font-weight:400}.h4,h4{font-size:1.25rem;color:#32373c;font-weight:600;padding:0}.h5,h5{font-size:1rem;letter-spacing:.01rem}.h5,.h6,h5,h6{font-weight:600;text-transform:uppercase}.h6,h6{font-size:.8rem;letter-spacing:.8px}a{color:#0073aa;text-decoration:none}a:active,a:focus,a:hover{text-decoration:underline}a:focus{outline:thin dotted}a:active,a:hover{outline:0}li>a,p a{text-decoration:underline}li>a:hover,p a:hover{color:#d54e21}ol,ul{margin:0 0 1.5em 1.5em;padding:0}ul{list-style:square}ol{list-style:decimal}ol.unmarked-list,ul.unmarked-list{list-style:none;padding-left:0}li>ol,li>ul{margin-bottom:0}dt{font-weight:700}dd{margin:0 1.5em 1.5em}table{border:1px solid #eee;border-collapse:collapse;font-size:.8rem;margin:0 0 1rem;padding:0;width:100%}table thead{background:#32373c;color:#fff}table td,table th{border:1px solid #eee;font-weight:400;margin:0;padding:.4rem;text-align:left;vertical-align:top}table tbody tr:nth-child(2n){background:#f7f7f7}html{font-size:100%}body,button,input,select,textarea{color:#32373c;font-family:Open Sans,sans-serif;font-size:100%;line-height:1.5}@media screen and (min-width:737px){html{font-size:1.125rem}}.custom-select{display:inline-block;box-sizing:border-box;padding:.5rem 2rem .5rem .8rem;width:auto;font-size:1em;line-height:1.3;border:1px solid #6c7782;box-shadow:none;border-radius:.5em;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg width="14" height="8" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M2 0L7 5L12 0L14 1L7 8L0 1L2 0Z" fill="%23555D66"/%3E%3C/svg%3E%0A');background-repeat:no-repeat;background-position:right .7em top 50%;background-size:.65em auto}.custom-select::-ms-expand{display:none}.custom-select:focus{box-shadow:0 0 1px 3px rgba(59,153,252,.7);box-shadow:0 0 0 3px -moz-mac-focusring;color:#222;outline:none}.custom-select option{font-weight:400}html{font-size:1rem}@media screen and (min-width:737px){html{font-size:1rem}}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px}.screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}.site-content[tabindex="-1"]:focus{outline:0}.no-js .hide-if-no-js{display:none}.alignleft{display:inline;float:left;margin-right:1.5em}.alignright{display:inline;float:right;margin-left:1.5em}.aligncenter{clear:both;display:block;margin-left:auto;margin-right:auto}@media screen and (max-width:480px){.alignleft,.alignright{display:block;float:none;margin-left:auto;margin-right:auto}}.button,.button-primary,.button-secondary,.plugin-upload-form .button-primary{border:1px solid;border-radius:3px;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:.8rem;height:1.5625rem;line-height:1;margin:0;padding:0 .8rem;text-decoration:none;white-space:nowrap;-webkit-appearance:none}button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=reset]::-moz-focus-inner,input[type=submit]::-moz-focus-inner{border:0;padding:0}.button-group.button-xl .button,.button.button-xl{font-size:1rem;height:2.44140625rem;line-height:1;padding:0 1.5rem}.button-group.button-large .button,.button.button-large{height:1.953125rem;line-height:1;padding:0 1rem}.button-group.button-small .button,.button.button-small{font-size:.64rem;height:1.25rem;line-height:1;padding:0 .5rem}a.button,a.button-primary,a.button-secondary{line-height:1.5625rem}.button-group.button-large a.button,a.button.button-large{line-height:1.953125rem}.button-group.button-xl a.button,a.button.button-xl{line-height:2.44140625rem}.button-group.button-small a.button,a.button.button-small{line-height:1.25rem}.button:active,.button:focus{outline:none}.button.hidden{display:none}input[type=reset],input[type=reset]:active,input[type=reset]:focus,input[type=reset]:hover{background:none;border:none;box-shadow:none;padding:0 2px 1px;width:auto}.button,.button-secondary,.button:visited{background:#f7f7f7;border-color:#ccc;box-shadow:0 1px 0 #ccc;color:#555;vertical-align:top}p .button{vertical-align:baseline}.button-secondary:focus,.button-secondary:hover,.button.focus,.button.hover,.button:focus,.button:hover{background:#fafafa;border-color:#999;color:#23282d}.button-link:focus,.button-secondary:focus,.button.focus,.button:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.button-secondary:active,.button.active,.button.active:hover,.button:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.button.active:focus{border-color:#5b9dd9;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(0,115,170,.8)}.button-disabled,.button-secondary.disabled,.button-secondary:disabled,.button-secondary[disabled],.button.disabled,.button:disabled,.button[disabled]{background:#f7f7f7!important;border-color:#ddd!important;box-shadow:none!important;color:#a0a5aa!important;cursor:default;text-shadow:0 1px 0 #fff!important;transform:none!important}.button-link,input[type=submit].button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button-link:focus{outline:1px solid #5b9dd9}.button-primary,.download-button,.plugin-upload-form .button-primary{text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.button-primary,.button-primary:visited,.download-button,.download-button:visited,.plugin-upload-form .button-primary,.plugin-upload-form .button-primary:visited{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff}.button-primary.focus,.button-primary.hover,.button-primary:focus,.button-primary:hover,.download-button.focus,.download-button.hover,.download-button:focus,.download-button:hover,.plugin-upload-form .button-primary.focus,.plugin-upload-form .button-primary.hover,.plugin-upload-form .button-primary:focus,.plugin-upload-form .button-primary:hover{background:#008ec2;border-color:#006799;box-shadow:0 1px 0 #006799;color:#fff}.button-primary.focus,.button-primary:focus,.download-button.focus,.download-button:focus,.plugin-upload-form .button-primary.focus,.plugin-upload-form .button-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.button-primary.active,.button-primary.active:focus,.button-primary.active:hover,.button-primary:active,.download-button.active,.download-button.active:focus,.download-button.active:hover,.download-button:active,.plugin-upload-form .button-primary.active,.plugin-upload-form .button-primary.active:focus,.plugin-upload-form .button-primary.active:hover,.plugin-upload-form .button-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.button-primary.disabled,.button-primary:disabled,.button-primary[disabled],.download-button.disabled,.download-button:disabled,.download-button[disabled],.plugin-upload-form .button-primary.disabled,.plugin-upload-form .button-primary:disabled,.plugin-upload-form .button-primary[disabled]{background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important}.button-primary.button.button-hero,.download-button.button.button-hero,.plugin-upload-form .button-primary.button.button-hero{box-shadow:0 2px 0 #006799}.button-primary.button.button-hero.active,.button-primary.button.button-hero.active:focus,.button-primary.button.button-hero.active:hover,.button-primary.button.button-hero:active,.download-button.button.button-hero.active,.download-button.button.button-hero.active:focus,.download-button.button.button-hero.active:hover,.download-button.button.button-hero:active,.plugin-upload-form .button-primary.button.button-hero.active,.plugin-upload-form .button-primary.button.button-hero.active:focus,.plugin-upload-form .button-primary.button.button-hero.active:hover,.plugin-upload-form .button-primary.button.button-hero:active{box-shadow:inset 0 3px 0 #006799}.button-primary-disabled{background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important}.button-group{display:inline-block;font-size:0;position:relative;vertical-align:middle;white-space:nowrap}.button-group>.button{border-radius:0;display:inline-block;margin-right:-1px;z-index:10}.button-group>.button-primary{z-index:100}.button-group>.button:hover{z-index:20}.button-group>.button:first-child{border-radius:3px 0 0 3px}.button-group>.button:last-child{border-radius:0 3px 3px 0}.button-group>.button:focus{position:relative;z-index:1}@media screen and (max-width:737px){.button,.button.button-large,.button.button-small,.plugin-upload-form .button-primary{font-size:14px;height:auto;line-height:normal;margin-bottom:4px;padding:6px 14px;vertical-align:middle}}.clear:after,.clear:before,.comment-content:after,.comment-content:before,.entry-content:after,.entry-content:before,.home-below:after,.home-below:before,.site-content:after,.site-content:before,.site-footer:after,.site-footer:before,.site-header:after,.site-header:before{content:"";display:table;table-layout:fixed}.clear:after,.comment-content:after,.entry-content:after,.home-below:after,.site-content:after,.site-footer:after,.site-header:after{clear:both}p.subheading{color:#82878c;font-weight:300;margin:-.4rem auto 2rem;text-align:center}p.intro,p.subheading{font-size:1.25rem}p.aside{font-size:.8rem}p.note{font-size:.64rem;letter-spacing:.01rem;max-width:18.1898940355rem}input,textarea{box-sizing:border-box}input[type=checkbox],input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=radio],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{background-color:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);color:#32373c;outline:none;transition:border-color .05s ease-in-out}input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=email],input[type=url]{direction:ltr}input[type=number]{height:28px;line-height:inherit}input[type=checkbox],input[type=radio]{background:#fff;border:1px solid #b4b9be;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);clear:none;color:#555;cursor:pointer;display:inline-block;height:16px;line-height:0;margin:-4px 4px 0 0;min-width:16px;outline:0;padding:0!important;text-align:center;transition:border-color .05s ease-in-out;vertical-align:middle;width:16px;-webkit-appearance:none}input[type=checkbox]:checked:before,input[type=radio]:checked:before{display:inline-block;float:left;font:normal 21px/1 dashicons;vertical-align:middle;width:16px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}input[type=checkbox]:checked:before{color:#1e8cbe;content:"";margin:-3px 0 0 -4px}input[type=radio]{border-radius:50%;line-height:10px;margin-right:4px}input[type=radio]:checked+label:before{color:#82878c}input[type=radio]:checked:before{background-color:#1e8cbe;border-radius:50px;content:"•";font-size:24px;height:6px;line-height:16px;margin:4px;text-indent:-9999px;width:6px}input[type=reset]:active,input[type=reset]:hover{color:#00a0d2}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{border-radius:0;font-size:14px;padding:3px 5px}textarea{line-height:1.4;overflow:auto;padding:2px 6px;resize:vertical}textarea.code{line-height:1.4;padding:4px 6px 1px}label{cursor:pointer;vertical-align:middle}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:hsla(0,0%,100%,.5);border-color:hsla(0,0%,87.1%,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:none;box-shadow:none}input.large-text,textarea.large-text{width:99%}input.regular-text{width:25em}input.small-text{padding:1px 6px;width:50px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}input[type=checkbox]{-webkit-appearance:none;padding:10px}input[type=checkbox]:checked:before{font:normal 30px/1 dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}input,textarea{font-size:16px}input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}input.regular-text{width:100%}label{font-size:14px}fieldset label{display:block}}a.button:active,a.button:focus,a.button:hover{text-decoration:none}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:1em 0;padding:1px 12px}.notice p{font-size:.8rem;margin:.5em 0;padding:2px}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.error-404 .page-content,.error-404 .page-title{text-align:center}.error-404 .page-content .logo-swing{height:10rem;margin:6rem auto;position:relative;text-align:center;width:10rem}.error-404 .page-content .logo-swing .wp-logo{left:0;max-width:none;position:absolute;top:0;width:10rem}@keyframes hinge{10%{width:180px;height:180px;transform:rotate(0deg)}15%{width:185px;height:185px;transform:rotate(0deg)}20%{width:180px;height:180px;transform:rotate(5deg)}40%{transform-origin:top left;animation-timing-function:ease-in-out}60%{transform:rotate(40deg);transform-origin:top left;animation-timing-function:ease-in-out}40%,80%{transform:rotate(60deg);transform-origin:top left;animation-timing-function:ease-in-out;opacity:1}to{transform:translate3d(0,700px,0);opacity:0}}.hinge{animation-duration:2s;animation-name:hinge}.comments-area{margin-top:5em}.comments-area>:last-child{margin-bottom:0}.comments-area .comment-list+.comment-respond{border-top:1px solid #eaeaea}.comments-area .comment-list+.comment-respond,.comments-area .comment-navigation+.comment-respond{padding-top:1.6em}.comments-area .comments-title{margin-bottom:1.3333em}.comments-area .comment-list{list-style:none;margin:0}.comments-area .comment-list .pingback,.comments-area .comment-list .trackback,.comments-area .comment-list article{border-top:1px solid #eaeaea;padding:1.6em 0}.comments-area .comment-list article:not(:only-child){padding-bottom:0}.comments-area .comment-list article+.comment-respond{padding-bottom:1.6em}.comments-area .comment-list .children{list-style:none;margin:0}.comments-area .comment-list .children>li{padding-left:.8em}.comments-area .comment-list .alt{background:none}.comments-area .comment-author{color:#999;margin-bottom:.4em}.comments-area .comment-author .avatar{float:left;height:24px;margin-right:.8em;width:24px}.comments-area .comment-metadata,.comments-area .pingback .edit-link{color:#999;line-height:1.5}.comments-area .comment-metadata a,.comments-area .pingback .edit-link a{color:#777}.comments-area .comment-metadata{font-size:.8rem;margin-bottom:1.6em}.comments-area .comment-metadata .edit-link,.comments-area .pingback .edit-link{margin-left:1em}.comments-area .pingback .edit-link:before{top:5px}.comments-area .comment-content ol,.comments-area .comment-content ul{margin:0 0 1.6em 1.3333em}.comments-area .comment-content>:last-child,.comments-area .comment-content li>ol,.comments-area .comment-content li>ul{margin-bottom:0}.comments-area .comment-content .reply{font-size:12px}.comments-area .comment-content .reply a{border:1px solid #eaeaea;color:#707070;display:inline-block;font-weight:700;line-height:1;margin-top:2em;padding:.4167em .8333em;text-transform:uppercase}.comments-area .comment-content .reply a:focus,.comments-area .comment-content .reply a:hover{border-color:#333;color:#333;outline:0}.comments-area .comment-reply-title a{font-weight:inherit}.comments-area .comment-form label{font-size:.8rem;font-weight:700;display:block;letter-spacing:.04em;line-height:1.5}.comments-area .comment-form input[type=email],.comments-area .comment-form input[type=text],.comments-area .comment-form input[type=url],.comments-area .comment-form textarea{width:100%}.comments-area .comment-awaiting-moderation,.comments-area .comment-notes,.comments-area .form-allowed-tags,.comments-area .logged-in-as{font-size:1rem;line-height:1.5;margin-bottom:2em}.comments-area .no-comments{border-top:1px solid #eaeaea;color:#999;font-weight:700;padding-top:1.6em}.comments-area .comment-navigation+.no-comments{border-top:0}.comments-area .form-allowed-tags code{font-family:Inconsolata,monospace}.comments-area .form-submit{margin-bottom:0}.comments-area .required{color:#c0392b}.entry-content{hyphens:auto;word-wrap:break-word}.entry-content>p:first-child{margin-top:0}.entry-content [class*=col-]~h1,.entry-content [class*=col-]~h2,.entry-content [class*=col-]~h3,.entry-content [class*=col-]~h4,.entry-content [class*=col-]~h5,.entry-content [class*=col-]~h6{clear:none}.entry-header{position:relative}.entry-header .sticky-post{color:#999;font-size:.8rem;font-style:italic;position:absolute;top:-.8rem}.entry-meta{color:#999;font-size:.8rem;margin-bottom:1rem}.entry-meta a{color:#777}.entry-meta>span{margin-right:1rem}.entry-meta>span :last-of-type{margin:0}.entry-meta .byline,.entry-meta .updated:not(.published),.sticky .entry-meta .posted-on{display:none}.group-blog .entry-meta .byline,.single .entry-meta .byline{display:inline}.entry-summary{hyphens:auto;word-wrap:break-word}body:not(.single):not(.search) .site-main .post{margin-bottom:3.0517578125rem;max-width:40em}.gallery{margin-bottom:1.5rem}.gallery .gallery-item{display:inline-block;margin:0;text-align:center;vertical-align:top;width:100%}.gallery.gallery-columns-2 .gallery-item{max-width:50%}.gallery.gallery-columns-3 .gallery-item{max-width:33.33%}.gallery.gallery-columns-4 .gallery-item{max-width:25%}.gallery.gallery-columns-5 .gallery-item{max-width:20%}.gallery.gallery-columns-6 .gallery-item{max-width:16.66%}.gallery.gallery-columns-7 .gallery-item{max-width:14.28%}.gallery.gallery-columns-8 .gallery-item{max-width:12.5%}.gallery.gallery-columns-9 .gallery-item{max-width:11.11%}.gallery .gallery-caption{display:block}.main-navigation{background:#0073aa;clear:both;left:0;position:absolute;top:60px;width:100%}.main-navigation ul{display:none;list-style:none;margin:0;padding-left:0}.main-navigation ul ul{box-shadow:0 3px 3px rgba(0,0,0,.2);float:left;left:-999em;position:absolute;top:1.5em;z-index:99999}.main-navigation ul ul ul{left:-999em;top:0}.main-navigation ul ul li.focus>ul,.main-navigation ul ul li:hover>ul{left:100%}.main-navigation ul ul a{width:200px}.main-navigation ul li.focus>ul,.main-navigation ul li:hover>ul{left:auto}.main-navigation li{border-top:1px solid hsla(0,0%,100%,.2);padding:1rem}.main-navigation a{color:hsla(0,0%,100%,.8);display:block;font-size:.8rem;text-decoration:none}.main-navigation a.active,.main-navigation a:hover{color:#fff}@media screen and (min-width:737px){.main-navigation a.active{border-bottom:1px solid}}.main-navigation.toggled{z-index:1}.main-navigation.toggled ul{display:block}.menu-toggle{background:transparent;border:none;color:#fff;height:3.5rem;position:absolute;right:1rem;top:-58px;width:3.5rem}.toggled .menu-toggle:before{content:""}@media screen and (min-width:737px){.menu-toggle{display:none}.main-navigation{float:right;position:static;width:auto}.main-navigation.toggled{padding:1px 0}.main-navigation ul{display:inline-block;font-size:0}.main-navigation ul li{border:0;display:inline-block;font-size:1rem;margin-right:1rem;padding:0}.main-navigation ul li:last-of-type{margin-right:0}}.comment-content .wp-smiley,.entry-content .wp-smiley,.page-content .wp-smiley{border:none;margin-bottom:0;margin-top:0;padding:0}embed,iframe,object{max-width:100%}body.page .gutters .col-12{width:100%}body.page .entry-header{background:#0073aa;padding:1rem 0}body.page .entry-header .entry-title{color:#fff;font-size:1.5625rem;font-weight:300;line-height:1;margin:0 auto;padding:0 1.5625rem}body.page .entry-header.home{padding:1.5625rem 1.143rem;text-align:center}@media screen and (min-width:737px){body.page .site-header+.site-main .entry-title{padding:initial}}body.page .entry-content,body.page .entry-footer{margin:0 auto;max-width:960px;padding:3.0517578125rem 1.5625rem}.post-navigation{margin:5em auto;padding:0}.post-navigation a{border-bottom:1px solid #eaeaea;color:#444;display:block;font-weight:600;padding:11px 0 12px;text-transform:none;width:100%}.post-navigation a:hover{color:#21759b}.post-navigation .nav-links{border-top:1px solid #eaeaea;hyphens:auto;word-wrap:break-word}.post-navigation .meta-nav{color:#777;display:block;font-size:13px;line-height:2;text-transform:uppercase}.post-navigation .nav-next{text-align:right}.pagination .nav-links{text-align:center}.pagination .nav-links .page-numbers{background-color:#f9f9f9;cursor:hand;display:inline-block;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:0;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{background-color:#f9f9f9;display:inline-block;font-size:1rem;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{background-color:#f7f7f7;font-weight:700}.search-form .search-field{line-height:normal;margin:0;padding:4px 5px;vertical-align:text-bottom}body.search .gutters .col-12{width:100%}body.search .site-main{margin:0 auto;max-width:960px;padding:0 1.5625rem 3.0517578125rem}.site-content{max-width:960px;padding:0 1.5625rem}@media screen and (min-width:737px){.site-content{padding:0 10px 3.0517578125rem}}@media screen and (max-width:737px){.site-content .site-main{float:none;margin:0;width:auto}}.home .site-content,.page .site-content,.site-content.page{margin:auto;max-width:none;padding:0}.site-content .page-title{font-size:1.25rem;font-weight:400}.site-content .no-results{margin:0 auto 3.0517578125rem;max-width:40em;padding:0 2rem}.site-description{color:hsla(0,0%,100%,.8);font-size:1.25rem;font-weight:300;margin:-.4rem auto 2rem;text-align:center}.site-header{background:#0073aa;padding:1rem 0;position:relative}.site-header .site-branding{margin:0 auto;max-width:960px;padding:0 1.5625rem}@media screen and (min-width:737px){.site-header .site-branding{padding:0 10px}}.site-header.home{padding:1.5625rem 1.143rem;text-align:center}.site-title{display:inline-block;font-size:1.5625rem;font-weight:300;line-height:1;margin:0 2rem 0 0;max-width:none}.site-title a{color:#fff;font-weight:300}.site-title a:active,.site-title a:focus,.site-title a:hover{text-decoration:none}.site-header.home .site-title{display:inherit;font-size:3.8146972656rem;margin:2rem 0 1rem}.widget-area{font-size:.8rem}@media screen and (min-width:480px) and (max-width:768px){.widget-area{display:flex}.widget-area .widget{width:48%}}#wporg-footer{background-color:#f7f7f7;border-top:1px solid #dfdfdf;padding:22px 14px 65px}#wporg-footer,#wporg-footer .wrapper{clear:both;margin:0 auto;overflow:auto}#wporg-footer .wrapper{max-width:930px}#wporg-footer ul{float:left;margin-bottom:20px;margin-left:24px;overflow:auto;padding-left:0;width:135px}@media screen and (min-width:960px){#wporg-footer ul:first-child{margin-left:0}}#wporg-footer ul li{color:#bbb;font-size:14px;list-style-type:none;margin-bottom:1px}#wporg-footer ul li a{text-decoration:none;text-decoration-skip-ink:none}#wporg-footer ul li a:hover{color:#0073aa;text-decoration:underline}#wporg-footer .cip{clear:both;color:#ccc;float:none;font-size:.8rem;letter-spacing:.3em;margin:35px auto 0;text-align:center;text-transform:uppercase}#wporg-footer .cip.cip-image{background:url(//s.w.org/style/images/codeispoetry.png?1=) 50% no-repeat;background-size:190px 15px;height:15px;text-indent:-9999px;width:190px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:1.5dppx),only screen and (min-resolution:144dpi){#wporg-footer .cip.cip-image{background-image:url(//s.w.org/style/images/codeispoetry-2x.png?1=)}}@media screen and (min-width:561px) and (max-width:959px){#wporg-footer .wrapper{max-width:600px}#wporg-footer ul{margin-left:2%;width:32%}#wporg-footer ul:nth-child(3n+1){margin-left:0}#wporg-footer ul:nth-child(4n){clear:both}}@media screen and (max-width:560px){#wporg-footer .wrapper{max-width:360px}#wporg-footer ul{margin-left:4%;width:48%}#wporg-footer ul:nth-child(odd){margin-left:0;clear:both}}#wporg-header{background:#23282d;height:140px;position:relative;text-align:center;width:100%}#wporg-header .wrapper{margin:0 auto;max-width:960px}#wporg-header h1{display:inline-block;margin:auto;width:303px}#wporg-header h1 a{background:url(//s.w.org/style/images/wporg-logo.svg?3=) 0 no-repeat;background-size:290px 46px;display:block;height:88px;text-indent:-9999px}#wporg-header h2.rosetta{clear:none;color:#dfdfdf;font-family:Georgia,Times New Roman,serif;font-size:30px;margin:0 0 0 60px}#wporg-header h2.rosetta a{border-bottom:none;color:#dfdfdf;display:block;height:52px;line-height:22px;padding:0}#wporg-header h2.rosetta a:hover{text-decoration:none}#wporg-header #wporg-header-menu{background:#23282d;left:-75%;list-style:none;margin:0;max-width:75%;min-width:200px;position:absolute;text-align:left;top:100%;transition:left .3s;z-index:100000}#wporg-header #wporg-header-menu.toggled{left:0}#wporg-header ul li{list-style-type:none;position:relative}#wporg-header ul li a{color:#eee;display:block;font-family:Open Sans,Helvetica,Arial,Liberation Sans,sans-serif;font-size:13px;font-weight:600;height:34px;line-height:34px;margin:0 4px;padding:10px 30px;text-decoration:none}#wporg-header ul li a.subcurrent{font-weight:700}@media (max-width:768px){#wporg-header ul li a{height:auto}}#wporg-header ul li.current-menu-item a,#wporg-header ul li.current_page_parent a,#wporg-header ul li a.current,#wporg-header ul li a:hover{color:#00a0d2}#wporg-header ul li#download,#wporg-header ul li.download{float:right;height:34px;margin-right:14px;overflow:hidden;padding:0 0 34px}@media screen and (max-width:767px){#wporg-header ul li#download,#wporg-header ul li.download{display:block;float:none;margin:10px 20px 20px;padding-bottom:0;height:auto}#wporg-header ul li#download a,#wporg-header ul li.download a{padding:4px 10px;text-align:center}}#wporg-header ul li#download a,#wporg-header ul li.download a{margin:0;padding:0 16px}#wporg-header ul li#download a:hover,#wporg-header ul li.download a:hover{color:#eee}#wporg-header ul li#download.current,#wporg-header ul li#download.current-menu-item,#wporg-header ul li#download .uparrow,#wporg-header ul li.download.current,#wporg-header ul li.download.current-menu-item,#wporg-header ul li.download .uparrow{display:none}#wporg-header ul li .nav-submenu{clip:rect(1px,1px,1px,1px);height:1px;left:-2px;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;z-index:99999}#wporg-header ul li .nav-submenu li a{display:inline-block;height:24px;line-height:24px;margin:0;white-space:nowrap}@media screen and (min-width:768px){#wporg-header #head-search{float:right;margin-right:14px;padding-top:30px}}#wporg-header #head-search form{border-bottom:1px solid #3f3f3f;display:inline-block;margin-left:60px;width:288px}#wporg-header #head-search form input.text{background:#191e23;border:0;border-radius:0;box-sizing:content-box;color:#b4b9be;float:left;font-family:Open Sans,sans-serif;font-size:12px;height:24px;margin:0;outline:none;padding:3px;vertical-align:top;width:256px}#wporg-header #head-search form input.text::-moz-placeholder{color:#eee}@media screen and (max-width:480px){#wporg-header #head-search form input.text{width:216px}}#wporg-header #head-search form .button{background:#191e23 url(//s.w.org/wp-includes/images/admin-bar-sprite.png?d=20120831) no-repeat 2px 5px;border:none;border-radius:0;box-shadow:none;float:left;height:30px;margin:0;padding:0;text-shadow:none!important;width:26px}@media screen and (max-width:480px){#wporg-header #head-search form{width:248px}}@media screen and (min-width:480px){#wporg-header #head-search form{margin-left:0}}@media screen and (min-width:768px){#wporg-header{height:120px;text-align:inherit}#wporg-header h1{float:left;padding-left:10px}#wporg-header h2.rosetta{float:left;margin-left:0;padding:36px 27px 0}#wporg-header #headline h2{text-rendering:optimizeLegibility}#wporg-header #wporg-header-menu{float:left;height:46px;list-style:none;margin:-15px 0 0;max-width:inherit;min-width:0;padding:0;position:static;width:100%}#wporg-header ul li{float:left;position:relative}#wporg-header ul li a{height:46px;padding:0 6px}#wporg-header ul li a.current~.uparrow{border-bottom:9px solid #f7f7f7;border-left:9px solid transparent;border-right:9px solid transparent;height:0;margin:-8px auto 0;width:0}#wporg-header ul li.current-menu-item:after,#wporg-header ul li.current_page_parent:after{border-bottom:9px solid #f7f7f7;border-left:9px solid transparent;border-right:9px solid transparent;content:"";height:0;left:50%;margin:-8px 0 0 -9px;position:absolute;width:0}#wporg-header ul li .nav-submenu:hover~.uparrow,#wporg-header ul li:hover .nav-submenu~.uparrow{border-bottom:9px solid #32373c;border-left:9px solid transparent;border-right:9px solid transparent;height:0;margin:-10px auto 0;width:0}#wporg-header ul li .nav-submenu{background:#32373c;border:1px solid #32373c;border-top:0;margin-top:-1px;min-width:0}#wporg-header ul li .nav-submenu li{float:none}#wporg-header ul li .nav-submenu li a{height:34px;line-height:34px}#wporg-header .nav-menu .focus>ul,#wporg-header .nav-menu ul li:hover>ul,#wporg-header ul.nav-menu .focus>ul,#wporg-header ul.nav-menu li:hover>ul{clip:inherit;height:inherit;overflow:inherit;width:inherit}#wporg-header ul li.current-menu-item:after,#wporg-header ul li.current_page_parent:after,#wporg-header ul li a.current~.uparrow{border-bottom-color:#0073aa}}.page-download #wporg-header #download,.page-parent-download #wporg-header #download{display:none}#mobile-menu-button{background:none;border:none;box-shadow:none;display:block;float:left;font-family:dashicons;font-size:16px;font-style:normal;font-weight:400;left:10px;line-height:1;padding:1px;position:absolute;text-align:center;text-decoration:inherit;text-shadow:none;top:75px;transition:color .1s ease-in;vertical-align:top;-webkit-font-smoothing:antialiased}#mobile-menu-button:before{border:none;box-sizing:border-box;color:#888;content:"";display:inline-block;float:left;font:normal 50px/1 Dashicons;margin:0;outline:none;padding:3px;text-decoration:none;vertical-align:middle;-webkit-font-smoothing:antialiased}@media screen and (min-width:768px){#mobile-menu-button{display:none}}#download-mobile{background:#f7f7f7;border-bottom:1px solid #ddd}#download-mobile .wrapper{padding:20px 0;text-align:center}#download-mobile span.download-ready{font-size:1.6em;margin:0 .25em}#download-mobile a.download-button{font-size:1.6em;height:inherit;margin:10px .25em;padding:10px 15px}.category-context__bar{margin:0 1.5rem;background:#edeff0;border-radius:2px;font-size:.8125rem;overflow:auto;transition:all .1s ease-out;transition-delay:.1s}.category-context__bar>div{display:flex;align-items:center;justify-content:space-between}@media only screen and (min-width:782px){.category-context__bar{margin:0 1.5rem}}@media only screen and (min-width:960px){.category-context__bar{margin:0 auto;max-width:960px}}.category-context__bar ul{margin:0;padding:0;display:flex;justify-content:space-between}.category-context__bar ul li{list-style:none;font-size:.8125rem}.category-context__bar ul li a{display:block;padding:1.125rem .75rem;text-decoration:none}.category-context__bar ul li:last-child a{padding-right:1.5rem}.category-context__bar__copy{margin:0;padding:1.125rem 1.5rem;font-size:.8125rem;font-weight:400}.category-context__bar__title{margin:0;padding-right:1.5rem;color:#555d66;font-size:.75rem;font-weight:400;text-transform:uppercase}.category-context__bar__links{display:flex;align-items:center}@media only screen and (max-width:782px){.category-context__bar__links{display:none}}.category-context__bar--is-hidden{height:0;overflow:hidden}.category-menu{margin:0;padding:0;position:relative ;background:linear-gradient(180deg,hsla(0,0%,100%,0) 94%,#0073aa 0);background-repeat:no-repeat;background-size:0;background-position-x:0;transition:all 75ms ease-out;min-height:45px}.category-menu li{display:inline-block;margin:0;list-style:none}.category-menu a{display:block;padding:.75rem;color:#40464d;font-size:.875rem;text-decoration:none}.category-menu a:active,.category-menu a:focus,.category-menu a:hover,li .category-menu--is-active{color:#000}.category-menu__mobile{padding:0!important;border-top:none!important}.category-menu__mobile ul{margin:0;padding:0;background:#23282d}.category-menu__mobile li{list-style:none;border-top:1px solid #32373c}.category-menu__mobile li a{display:block;padding:1rem 1.5rem;font-size:.875rem;text-decoration:none;color:#ccd0d4}.category-menu__mobile>.components-panel__body-title{margin:0!important}.category-menu__mobile>.components-panel__body-title>button{padding:1.5rem}.category-menu--is-loading{height:24px;position:relative}.category-menu--is-loading:after{content:"";position:absolute;background:#f3f4f5;border-radius:4px;width:80%;height:24px;left:0;top:calc(50% - 12px);transition:none}.category-search{display:flex;align-items:center;background:#fff;border:1px solid #6c7782;border-radius:2px}.category-search input[type=search]{flex-grow:1;margin:0;padding:.25rem .5rem;border:none;box-shadow:none;font-size:.8125rem}.category-search input[type=search]:focus{outline:1px auto #0073aa}.category-search__button{display:flex;background:transparent;border:none;color:#6c7782}.category-search__button:active{background:#d7dade}.category-search__button:focus{outline:1px auto #0073aa}.category-search--is-loading{display:block;height:24px;min-width:100%;background:#f3f4f5;border-radius:4px}@media only screen and (min-width:480px){.category-search--is-loading{width:224px!important;min-width:auto!important}}.pattern__copy-button{transition:all 75ms ease-in-out}.pattern__copy-button.is-small{font-size:.75rem;padding:.75rem;height:auto}.pattern__favorite-button{position:relative;font-size:.875rem;height:2.25rem;width:2.25rem;border-radius:2px;color:#606a74}.pattern__favorite-button svg{position:absolute;top:calc(50% - .75rem);left:calc(50% - .75rem);height:1.5rem;width:1.5rem;transition:all .15s ease-out}.pattern__favorite-button svg path{fill:#6c7782}.pattern__favorite-button .pattern__favorite-filled{opacity:0}.pattern__favorite-button:hover{color:#555d66;background:transparent}.pattern__favorite-button:hover svg path{fill:#555d66}.pattern__favorite-button:active{background:transparent;box-shadow:none;transform:none}.pattern__favorite-button.is-favorited{color:#555d66}.pattern__favorite-button.is-favorited svg path{fill:#d94f4f}.pattern__favorite-button.is-favorited .pattern__favorite-outline{opacity:0;transform:scale(2.8)}.pattern__favorite-button.is-favorited .pattern__favorite-filled{opacity:1}.pattern__favorite-button.is-favorited:hover .pattern__favorite-filled{animation:HeartBeat .9s infinite}@media (prefers-reduced-motion){.pattern__favorite-button.is-favorited:hover .pattern__favorite-filled{animation:none}}.pattern__favorite-button.has-label{padding:12px 18px 12px 38px;height:auto;width:auto}.pattern__favorite-button.has-label svg{top:calc(50% - 12px);left:9px}@keyframes HeartBeat{0%{transform:scale(1)}25%{transform:scale(1.2)}40%{transform:scale(1)}60%{transform:scale(1.2)}to{transform:scale(1)}}.main-navigation{float:none;position:static;width:auto}.main-navigation a{font-size:.8125rem}.main-navigation.toggled div.menu{position:absolute;top:57px;right:0;width:100%;background:#0073aa}.menu-toggle{position:static;height:auto;width:auto;font-size:1.5625rem;overflow:hidden;-webkit-appearance:none}body.page .entry-header{background:none;padding:0}body.page .entry-header .entry-title{color:inherit;margin:2rem auto 1rem;max-width:960px}@media screen and (min-width:737px){body.page .entry-header .entry-title{padding:0 10px}}.pattern-grid-menu{margin:0 auto;max-width:960px;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.pattern-grid-menu>:first-child,.pattern-grid-menu>:last-child{width:100%}.pattern-grid-menu>:last-child{margin:1.5rem;width:calc(100% - 3rem)}@media only screen and (min-width:782px){.pattern-grid-menu{margin:1.5rem;flex-direction:row}.pattern-grid-menu>:last-child{margin:0;width:auto}}@media only screen and (min-width:960px){.pattern-grid-menu{margin:1.5rem auto}}.pattern-grid{max-width:960px;margin:1.5rem}@media screen and (min-width:600px){.pattern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.pattern-grid>*{align-self:baseline}}@media screen and (min-width:960px){.pattern-grid{margin-left:auto;margin-right:auto}}.pattern-grid__pattern{position:relative;margin:0 0 1.5rem;border:1px solid #d7dade;border-radius:2px;transition:all 75ms ease-in-out}@media screen and (min-width:600px){.pattern-grid__pattern{display:inline-block;margin:0}}.pattern-grid__pattern .pattern-grid__preview{overflow:hidden}.pattern-grid__pattern .pattern-grid__actions{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:center;padding:.375rem;background:hsla(0,0%,100%,.8);backdrop-filter:blur(3px);opacity:0;transform:translateY(6px);transition:all 75ms ease-in-out}.pattern-grid__pattern .pattern-grid__actions .pattern-grid__title{flex-grow:1;margin:0;padding:0 .375rem 0 .75rem;font-size:.75rem;pointer-events:none}.pattern-grid__pattern .pattern-grid__actions .pattern__copy-button,.pattern-grid__pattern .pattern-grid__actions .pattern__favorite-button{flex-shrink:0}.pattern-grid__pattern .pattern-grid__actions .button+.button{margin-left:.375rem}.pattern-grid__pattern:focus-within .pattern-grid__actions,.pattern-grid__pattern:hover .pattern-grid__actions{opacity:1;transform:translateY(0)}.pattern-preview__container{padding:2rem 0 0;background:#f3f4f5}.pattern-preview__viewport{position:relative;margin:0 auto;padding:0 20px;max-width:100vw;min-width:320px}.pattern-preview__viewport .pattern-preview__viewport-iframe{background:#fff;border:1px solid #e8eaeb;vertical-align:middle;max-width:100vw}.pattern-preview__viewport:focus-within .pattern-preview__resize-help{clip:auto;clip-path:none;height:auto;margin:initial;overflow:initial;width:auto;bottom:-1rem;left:20px;right:20px;padding:8px 16px;background:#fff;border-radius:2px;border:1px solid #d7dade;text-align:center}.pattern-preview__drag-handle{position:absolute;top:0;bottom:0;width:20px}.pattern-preview__drag-handle.is-left{left:0}.pattern-preview__drag-handle.is-right{right:0}.pattern-preview__drag-handle-button{position:absolute;top:calc(50% - 50px);left:6px;padding:0;width:8px;height:100px;appearance:none;cursor:grab;outline:none;background:#7e8993;border-radius:99999px;border:none}.pattern-preview__drag-handle-button:hover{background:#6c7782}.pattern-preview__drag-handle-button:active{cursor:grabbing;background:#606a74}.pattern-preview__drag-handle-button:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}body.single-wporg-pattern{box-sizing:border-box;font-size:14px;font-weight:400;line-height:1.2}body.single-wporg-pattern .site-content{margin:auto;max-width:none;padding:0}body.single-wporg-pattern .entry-header{max-width:960px;padding:1.5rem;margin-left:auto;margin-right:auto}@media only screen and (min-width:960px){body.single-wporg-pattern .entry-header{padding:1.5rem 0}}body.single-wporg-pattern .entry-header .entry-title{margin-top:0;line-height:1.2}body.single-wporg-pattern .pattern-actions{display:flex;align-items:stretch;flex-wrap:wrap}body.single-wporg-pattern .pattern-actions button+button{margin-left:2em}body.single-wporg-pattern .pattern-actions__notice{margin:1.5rem 0 0;height:auto;flex-basis:100%}body.single-wporg-pattern .pattern-actions__notice>*{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;margin:0}body.single-wporg-pattern .pattern-actions__notice>* button{margin-top:.75rem}@media only screen and (min-width:600px){body.single-wporg-pattern .pattern-actions__notice>*{align-items:center;flex-direction:row}body.single-wporg-pattern .pattern-actions__notice>* button{margin-top:0}}body.single-wporg-pattern .pattern-actions__guide{max-width:384px;height:auto;max-height:none}body.single-wporg-pattern .pattern-actions__guide-content{padding:1.5rem;line-height:1.5}body.single-wporg-pattern .pattern-actions__guide-title{margin:0}body.single-wporg-pattern .pattern-actions__guide-shortcut{background:#edeff0;box-shadow:0 0 0 1px #ccd0d4;padding:1px;font-weight:600;min-width:20px;display:inline-block;text-align:center;border-radius:2px}body.single-wporg-pattern .entry-content{max-width:960px;margin-left:auto;margin-right:auto}body.single-wporg-pattern .pattern__meta{padding:2rem 0;background:#f3f4f5}body.single-wporg-pattern .pattern__meta>div{max-width:960px;margin-left:auto;margin-right:auto;display:flex;justify-content:space-between}body.single-wporg-pattern .pattern__meta .pattern-preview__report{text-align:right}.site-header:not(.home) .search-form{display:flex;align-items:center}.site-header:not(.home) .search-form>input{flex:1;border:0;border-radius:2px 0 0 2px;display:inline-block;font-size:12px;padding:5px 10px;position:relative;width:auto;height:100%}.site-header:not(.home) .search-form button{margin:0;border-radius:0 2px 2px 0;padding:3px 12px;height:unset}.search-form--is-inline .search-form{display:flex;justify-content:space-between;background:#fff}.search-form--is-inline .search-form>label{flex:1}.search-form--is-inline .search-form input{padding:.5rem;background:transparent;border:none;box-shadow:none;width:100%;font-size:14px}@media only screen and (min-width:768px){.search-form--is-inline .search-form input{font-size:16px}}.search-form--is-inline .search-form button{background:transparent;margin-bottom:0;border:0;box-shadow:none;height:inherit;text-shadow:none;color:#32373c}.search-form--is-inline .search-form button:focus{-webkit-box-shadow:0 0 2px 1px #0073aa;box-shadow:0 0 2px 1px #0073aa}.search-form--is-centered .search-form{margin:0 auto}.search-form--is-constrained .search-form{max-width:36rem}.search-form--is-muted .search-form{border-color:#d7dade!important}.search-form--is-muted .search-form button,.search-form--is-muted .search-form input{background:#f8f9f9;color:#7e8993}.search-form--has-medium-text .search-form input{font-size:14px}.search-form--has-border .search-form{border:1px solid #7e8993}.section-heading_link,.section-heading_title{margin-bottom:0}.section-heading_title{font-weight:300}.section-heading_title .archive-title-prefix{display:block;font-size:1rem}.section-heading_link{text-decoration:underline;font-weight:600;margin-top:1.5rem!important}@media only screen and (min-width:768px){.section-heading_link{margin-top:0!important}}.section-heading_description{margin:1rem 0 0}.section-heading_description :last-child{margin-bottom:0}.section-heading--with-space{padding-bottom:16px}.site-content{margin:0 auto;max-width:none;padding:0}body.home .site-header{padding:3.75rem 1rem;text-align:left}body.home .site-branding{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 22rem}body.home .site-branding>*{align-self:center}@media screen and (max-width:736px){body.home .site-branding{display:block}}body.home .site-title.site-title{grid-column-start:1;grid-row-start:1;margin-top:0;text-align:left;font-size:3rem;line-height:1.25}body.home .site-description{grid-column-start:1;grid-row-start:2;margin:0;font-size:1.25rem;line-height:1.6;text-align:left;color:#fff}body.home .site-callout{grid-column-start:2;grid-row-start:1;grid-row-end:span 2;margin-left:4rem;padding:1.125rem 1.5rem 1.5rem;font-size:.875rem;line-height:1.6;background:#fff;box-shadow:.75rem .75rem 0 rgba(0,0,0,.15)}body.home .site-callout h2{margin-top:0;font-size:1.125rem;line-height:1.25;font-weight:600}body.home .site-callout p:last-child{margin-bottom:0}@media screen and (max-width:736px){body.home .site-callout{margin:2rem auto 0;max-width:24rem}}body:not(.home) .site-branding{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:#fff}body:not(.home) .site-branding a{color:#fff}body:not(.home) .site-branding .sep{margin-left:.5rem;margin-right:.5rem}body:not(.home) .site-branding .is-current-page{font-weight:600}.site-title a{text-decoration:none}.site-title a:active,.site-title a:focus,.site-title a:hover{color:#fff}.has-wporg-blue-color{color:#1e8cbe}.has-wporg-blue-background-color{background-color:#1e8cbe}.has-wporg-purple-color{color:#826eb4}.has-wporg-purple-background-color{background-color:#826eb4}.has-wporg-white-color{color:#fff}.has-wporg-white-background-color{background-color:#fff}.home-page .shapes{position:relative;margin:0 auto}.home-page .shapes .parallelogram p:before{font-size:64px;height:64px;left:-16px;position:relative}.home-page .shapes .parallelogram{color:#fff;display:block;margin:0 auto;opacity:.9;padding:60px 40px;text-align:center;text-decoration:none}.home-page .shapes strong{display:block;font-size:28px;font-weight:300;padding-bottom:15px;padding-top:15px}.home-page .shapes p{color:#fff;font-size:16px;font-weight:300;margin:0}.home-page .shapes u{display:block;font-size:18px;padding-top:15px}@media only screen and (min-width:768px){.home-page .shapes{height:400px}.home-page .shapes .parallelogram{width:50%;position:absolute;padding:50px 90px}}@media only screen and (min-width:960px){.home-page .shapes .parallelogram{-webkit-transform:skew(-15deg);-ms-transform:skew(-15deg);transform:skew(-15deg)}.home-page .shapes .parallelogram:before,.home-page .shapes p{-webkit-transform:skew(15deg);-ms-transform:skew(15deg);transform:skew(15deg)}}@media only screen and (min-width:1200px){.home-page .shapes{margin:0 -60px}}.terms{font-style:italic;font-size:14px}1 @charset "UTF-8";[class*=col-]{margin:inherit}.row{display:flex;flex-direction:row;flex-wrap:wrap}@media (max-width:768px){.row{flex-direction:column;flex-wrap:nowrap}}.row.gutters>.row{margin-left:-2%}@media (max-width:768px){.row.gutters>.row{margin-left:0}}.row.gutters>.row>[class*=col-]{margin-left:2%}@media (max-width:768px){.row.gutters>.row>[class*=col-]{margin-left:0}}.row.around{justify-content:space-around}.row.between{justify-content:space-between}.row.auto .col{flex-grow:1}.col-1{width:8.3333333333%}.offset-1{margin-left:8.3333333333%}.col-2{width:16.6666666667%}.offset-2{margin-left:16.6666666667%}.col-3{width:25%}.offset-3{margin-left:25%}.col-4{width:33.3333333333%}.offset-4{margin-left:33.3333333333%}.col-5{width:41.6666666667%}.offset-5{margin-left:41.6666666667%}.col-6{width:50%}.offset-6{margin-left:50%}.col-7{width:58.3333333333%}.offset-7{margin-left:58.3333333333%}.col-8{width:66.6666666667%}.offset-8{margin-left:66.6666666667%}.col-9{width:75%}.offset-9{margin-left:75%}.col-10{width:83.3333333333%}.offset-10{margin-left:83.3333333333%}.col-11{width:91.6666666667%}.offset-11{margin-left:91.6666666667%}.col-12{width:100%}.offset-12{margin-left:100%}.gutters>.col-1{width:6.33333%}.gutters>.col-1:nth-child(n+13){margin-top:2%}.gutters>.offset-1{margin-left:10.33333%!important}.gutters>.col-2{width:14.66667%}.gutters>.col-2:nth-child(n+7){margin-top:2%}.gutters>.offset-2{margin-left:18.66667%!important}.gutters>.col-3{width:23%}.gutters>.col-3:nth-child(n+5){margin-top:2%}.gutters>.offset-3{margin-left:27%!important}.gutters>.col-4{width:31.33333%}.gutters>.col-4:nth-child(n+4){margin-top:2%}.gutters>.offset-4{margin-left:35.33333%!important}.gutters>.col-5{width:39.66667%}.gutters>.offset-5{margin-left:43.66667%!important}.gutters>.col-6{width:48%}.gutters>.col-6:nth-child(n+3){margin-top:2%}.gutters>.offset-6{margin-left:52%!important}.gutters>.col-7{width:56.33333%}.gutters>.offset-7{margin-left:60.33333%!important}.gutters>.col-8{width:64.66667%}.gutters>.offset-8{margin-left:68.66667%!important}.gutters>.col-9{width:73%}.gutters>.offset-9{margin-left:77%!important}.gutters>.col-10{width:81.33333%}.gutters>.offset-10{margin-left:85.33333%!important}.gutters>.col-11{width:89.66667%}.gutters>.offset-11{margin-left:93.66667%!important}.gutters>.col-12{width:98%}.gutters>.offset-12{margin-left:102%!important}@media (max-width:768px){[class*=" offset-"],[class^=offset-]{margin-left:0}}.first{order:-1}.last{order:1}@media (max-width:768px){.row [class*=col-]{margin-left:0;width:100%}.row.gutters [class*=col-]{margin-bottom:16px}.first-sm{order:-1}.last-sm{order:1}}.gutters .column.push-left,.push-left{margin-right:auto}.gutters .column.push-right,.push-right{margin-left:auto}.gutters .column.push-center,.push-center{margin-left:auto;margin-right:auto}.gutters .column.push-middle,.push-middle{margin-top:auto;margin-bottom:auto}.push-bottom{margin-top:auto}@media (max-width:768px){.gutters .column.push-left-sm,.push-left-sm{margin-left:0}.gutters .column.push-center-sm,.push-center-sm{margin-left:auto;margin-right:auto}.push-top-sm{margin-top:0}}.align-middle{align-items:center}.align-right{justify-content:flex-end}.align-center{justify-content:center}@media (max-width:768px){.align-left-sm{justify-content:flex-start}}.float-right{float:right}.float-left{float:left}@media (max-width:768px){.float-left,.float-right{float:none}}.fixed{position:fixed;top:0;left:0;z-index:100;width:100%}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}optgroup{font-weight:700}table{border-spacing:0}td,th{padding:0}p{margin:1rem 0}cite,dfn,em,i{font-style:italic}blockquote{margin:0 1.5rem}address{margin:0 0 1.5rem}pre{background:#eee;font-family:Courier\ 10 Pitch,Courier,monospace;font-size:.9375rem;line-height:1.6;margin-bottom:1.6rem;max-width:100%;overflow:auto;padding:1.6rem}code,kbd,tt,var{font-family:Monaco,Consolas,Andale Mono,DejaVu Sans Mono,monospace;font-size:.9375rem}abbr,acronym{border-bottom:1px dotted #666;cursor:help}ins,mark{background:#fff9c0;text-decoration:none}big{font-size:125%}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#fff}blockquote,q{quotes:"" ""}blockquote:after,blockquote:before,q:after,q:before{content:""}blockquote{border-left:2px solid #767676;color:#767676;margin:1rem 0;padding-left:.8rem}blockquote cite{font-size:.8rem}figure{margin:0}hr{background-color:#eee;border:0;height:2px;margin:5rem auto}img{height:auto;max-width:100%}h1,h2,h3,h4,h5,h6{font-family:Open Sans,sans-serif;clear:both;line-height:1.5;margin:2rem 0 1rem}.h1,h1{font-size:2.44140625rem}.h1,.h2,h1,h2{font-weight:300}.h2,h2{font-size:1.953125rem}.h3,h3{font-size:1.5625rem;font-weight:400}.h4,h4{font-size:1.25rem;color:#32373c;font-weight:600;padding:0}.h5,h5{font-size:1rem;letter-spacing:.01rem}.h5,.h6,h5,h6{font-weight:600;text-transform:uppercase}.h6,h6{font-size:.8rem;letter-spacing:.8px}a{color:#0073aa;text-decoration:none}a:active,a:focus,a:hover{text-decoration:underline}a:focus{outline:thin dotted}a:active,a:hover{outline:0}li>a,p a{text-decoration:underline}li>a:hover,p a:hover{color:#d54e21}ol,ul{margin:0 0 1.5em 1.5em;padding:0}ul{list-style:square}ol{list-style:decimal}ol.unmarked-list,ul.unmarked-list{list-style:none;padding-left:0}li>ol,li>ul{margin-bottom:0}dt{font-weight:700}dd{margin:0 1.5em 1.5em}table{border:1px solid #eee;border-collapse:collapse;font-size:.8rem;margin:0 0 1rem;padding:0;width:100%}table thead{background:#32373c;color:#fff}table td,table th{border:1px solid #eee;font-weight:400;margin:0;padding:.4rem;text-align:left;vertical-align:top}table tbody tr:nth-child(2n){background:#f7f7f7}html{font-size:100%}body,button,input,select,textarea{color:#32373c;font-family:Open Sans,sans-serif;font-size:100%;line-height:1.5}@media screen and (min-width:737px){html{font-size:1.125rem}}.custom-select{display:inline-block;box-sizing:border-box;padding:.5rem 2rem .5rem .8rem;width:auto;font-size:1em;line-height:1.3;border:1px solid #6c7782;box-shadow:none;border-radius:.5em;-moz-appearance:none;-webkit-appearance:none;appearance:none;background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg width="14" height="8" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M2 0L7 5L12 0L14 1L7 8L0 1L2 0Z" fill="%23555D66"/%3E%3C/svg%3E%0A');background-repeat:no-repeat;background-position:right .7em top 50%;background-size:.65em auto}.custom-select::-ms-expand{display:none}.custom-select:focus{box-shadow:0 0 1px 3px rgba(59,153,252,.7);box-shadow:0 0 0 3px -moz-mac-focusring;color:#222;outline:none}.custom-select option{font-weight:400}html{font-size:1rem}@media screen and (min-width:737px){html{font-size:1rem}}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px}.screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}.site-content[tabindex="-1"]:focus{outline:0}.no-js .hide-if-no-js{display:none}.alignleft{display:inline;float:left;margin-right:1.5em}.alignright{display:inline;float:right;margin-left:1.5em}.aligncenter{clear:both;display:block;margin-left:auto;margin-right:auto}@media screen and (max-width:480px){.alignleft,.alignright{display:block;float:none;margin-left:auto;margin-right:auto}}.button,.button-primary,.button-secondary,.plugin-upload-form .button-primary{border:1px solid;border-radius:3px;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:.8rem;height:1.5625rem;line-height:1;margin:0;padding:0 .8rem;text-decoration:none;white-space:nowrap;-webkit-appearance:none}button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=reset]::-moz-focus-inner,input[type=submit]::-moz-focus-inner{border:0;padding:0}.button-group.button-xl .button,.button.button-xl{font-size:1rem;height:2.44140625rem;line-height:1;padding:0 1.5rem}.button-group.button-large .button,.button.button-large{height:1.953125rem;line-height:1;padding:0 1rem}.button-group.button-small .button,.button.button-small{font-size:.64rem;height:1.25rem;line-height:1;padding:0 .5rem}a.button,a.button-primary,a.button-secondary{line-height:1.5625rem}.button-group.button-large a.button,a.button.button-large{line-height:1.953125rem}.button-group.button-xl a.button,a.button.button-xl{line-height:2.44140625rem}.button-group.button-small a.button,a.button.button-small{line-height:1.25rem}.button:active,.button:focus{outline:none}.button.hidden{display:none}input[type=reset],input[type=reset]:active,input[type=reset]:focus,input[type=reset]:hover{background:none;border:none;box-shadow:none;padding:0 2px 1px;width:auto}.button,.button-secondary,.button:visited{background:#f7f7f7;border-color:#ccc;box-shadow:0 1px 0 #ccc;color:#555;vertical-align:top}p .button{vertical-align:baseline}.button-secondary:focus,.button-secondary:hover,.button.focus,.button.hover,.button:focus,.button:hover{background:#fafafa;border-color:#999;color:#23282d}.button-link:focus,.button-secondary:focus,.button.focus,.button:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.button-secondary:active,.button.active,.button.active:hover,.button:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.button.active:focus{border-color:#5b9dd9;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(0,115,170,.8)}.button-disabled,.button-secondary.disabled,.button-secondary:disabled,.button-secondary[disabled],.button.disabled,.button:disabled,.button[disabled]{background:#f7f7f7!important;border-color:#ddd!important;box-shadow:none!important;color:#a0a5aa!important;cursor:default;text-shadow:0 1px 0 #fff!important;transform:none!important}.button-link,input[type=submit].button-link{background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;margin:0;outline:none;padding:0}.button-link:focus{outline:1px solid #5b9dd9}.button-primary,.download-button,.plugin-upload-form .button-primary{text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.button-primary,.button-primary:visited,.download-button,.download-button:visited,.plugin-upload-form .button-primary,.plugin-upload-form .button-primary:visited{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff}.button-primary.focus,.button-primary.hover,.button-primary:focus,.button-primary:hover,.download-button.focus,.download-button.hover,.download-button:focus,.download-button:hover,.plugin-upload-form .button-primary.focus,.plugin-upload-form .button-primary.hover,.plugin-upload-form .button-primary:focus,.plugin-upload-form .button-primary:hover{background:#008ec2;border-color:#006799;box-shadow:0 1px 0 #006799;color:#fff}.button-primary.focus,.button-primary:focus,.download-button.focus,.download-button:focus,.plugin-upload-form .button-primary.focus,.plugin-upload-form .button-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.button-primary.active,.button-primary.active:focus,.button-primary.active:hover,.button-primary:active,.download-button.active,.download-button.active:focus,.download-button.active:hover,.download-button:active,.plugin-upload-form .button-primary.active,.plugin-upload-form .button-primary.active:focus,.plugin-upload-form .button-primary.active:hover,.plugin-upload-form .button-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.button-primary.disabled,.button-primary:disabled,.button-primary[disabled],.download-button.disabled,.download-button:disabled,.download-button[disabled],.plugin-upload-form .button-primary.disabled,.plugin-upload-form .button-primary:disabled,.plugin-upload-form .button-primary[disabled]{background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important}.button-primary.button.button-hero,.download-button.button.button-hero,.plugin-upload-form .button-primary.button.button-hero{box-shadow:0 2px 0 #006799}.button-primary.button.button-hero.active,.button-primary.button.button-hero.active:focus,.button-primary.button.button-hero.active:hover,.button-primary.button.button-hero:active,.download-button.button.button-hero.active,.download-button.button.button-hero.active:focus,.download-button.button.button-hero.active:hover,.download-button.button.button-hero:active,.plugin-upload-form .button-primary.button.button-hero.active,.plugin-upload-form .button-primary.button.button-hero.active:focus,.plugin-upload-form .button-primary.button.button-hero.active:hover,.plugin-upload-form .button-primary.button.button-hero:active{box-shadow:inset 0 3px 0 #006799}.button-primary-disabled{background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important}.button-group{display:inline-block;font-size:0;position:relative;vertical-align:middle;white-space:nowrap}.button-group>.button{border-radius:0;display:inline-block;margin-right:-1px;z-index:10}.button-group>.button-primary{z-index:100}.button-group>.button:hover{z-index:20}.button-group>.button:first-child{border-radius:3px 0 0 3px}.button-group>.button:last-child{border-radius:0 3px 3px 0}.button-group>.button:focus{position:relative;z-index:1}@media screen and (max-width:737px){.button,.button.button-large,.button.button-small,.plugin-upload-form .button-primary{font-size:14px;height:auto;line-height:normal;margin-bottom:4px;padding:6px 14px;vertical-align:middle}}.clear:after,.clear:before,.comment-content:after,.comment-content:before,.entry-content:after,.entry-content:before,.home-below:after,.home-below:before,.site-content:after,.site-content:before,.site-footer:after,.site-footer:before,.site-header:after,.site-header:before{content:"";display:table;table-layout:fixed}.clear:after,.comment-content:after,.entry-content:after,.home-below:after,.site-content:after,.site-footer:after,.site-header:after{clear:both}p.subheading{color:#82878c;font-weight:300;margin:-.4rem auto 2rem;text-align:center}p.intro,p.subheading{font-size:1.25rem}p.aside{font-size:.8rem}p.note{font-size:.64rem;letter-spacing:.01rem;max-width:18.1898940355rem}input,textarea{box-sizing:border-box}input[type=checkbox],input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=radio],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{background-color:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);color:#32373c;outline:none;transition:border-color .05s ease-in-out}input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=email],input[type=url]{direction:ltr}input[type=number]{height:28px;line-height:inherit}input[type=checkbox],input[type=radio]{background:#fff;border:1px solid #b4b9be;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);clear:none;color:#555;cursor:pointer;display:inline-block;height:16px;line-height:0;margin:-4px 4px 0 0;min-width:16px;outline:0;padding:0!important;text-align:center;transition:border-color .05s ease-in-out;vertical-align:middle;width:16px;-webkit-appearance:none}input[type=checkbox]:checked:before,input[type=radio]:checked:before{display:inline-block;float:left;font:normal 21px/1 dashicons;vertical-align:middle;width:16px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}input[type=checkbox]:checked:before{color:#1e8cbe;content:"";margin:-3px 0 0 -4px}input[type=radio]{border-radius:50%;line-height:10px;margin-right:4px}input[type=radio]:checked+label:before{color:#82878c}input[type=radio]:checked:before{background-color:#1e8cbe;border-radius:50px;content:"•";font-size:24px;height:6px;line-height:16px;margin:4px;text-indent:-9999px;width:6px}input[type=reset]:active,input[type=reset]:hover{color:#00a0d2}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{border-radius:0;font-size:14px;padding:3px 5px}textarea{line-height:1.4;overflow:auto;padding:2px 6px;resize:vertical}textarea.code{line-height:1.4;padding:4px 6px 1px}label{cursor:pointer;vertical-align:middle}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:hsla(0,0%,100%,.5);border-color:hsla(0,0%,87.1%,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:none;box-shadow:none}input.large-text,textarea.large-text{width:99%}input.regular-text{width:25em}input.small-text{padding:1px 6px;width:50px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}input[type=checkbox]{-webkit-appearance:none;padding:10px}input[type=checkbox]:checked:before{font:normal 30px/1 dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}input,textarea{font-size:16px}input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}input.regular-text{width:100%}label{font-size:14px}fieldset label{display:block}}a.button:active,a.button:focus,a.button:hover{text-decoration:none}.notice{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:1em 0;padding:1px 12px}.notice p{font-size:.8rem;margin:.5em 0;padding:2px}.notice.notice-alt{box-shadow:none}.notice.notice-large{padding:10px 20px}.notice.notice-success{border-left-color:#46b450}.notice.notice-success.notice-alt{background-color:#ecf7ed}.notice.notice-warning{border-left-color:#ffb900}.notice.notice-warning.notice-alt{background-color:#fff8e5}.notice.notice-error{border-left-color:#dc3232}.notice.notice-error.notice-alt{background-color:#fbeaea}.notice.notice-info{border-left-color:#00a0d2}.notice.notice-info.notice-alt{background-color:#e5f5fa}.error-404 .page-content,.error-404 .page-title{text-align:center}.error-404 .page-content .logo-swing{height:10rem;margin:6rem auto;position:relative;text-align:center;width:10rem}.error-404 .page-content .logo-swing .wp-logo{left:0;max-width:none;position:absolute;top:0;width:10rem}@keyframes hinge{10%{width:180px;height:180px;transform:rotate(0deg)}15%{width:185px;height:185px;transform:rotate(0deg)}20%{width:180px;height:180px;transform:rotate(5deg)}40%{transform-origin:top left;animation-timing-function:ease-in-out}60%{transform:rotate(40deg);transform-origin:top left;animation-timing-function:ease-in-out}40%,80%{transform:rotate(60deg);transform-origin:top left;animation-timing-function:ease-in-out;opacity:1}to{transform:translate3d(0,700px,0);opacity:0}}.hinge{animation-duration:2s;animation-name:hinge}.comments-area{margin-top:5em}.comments-area>:last-child{margin-bottom:0}.comments-area .comment-list+.comment-respond{border-top:1px solid #eaeaea}.comments-area .comment-list+.comment-respond,.comments-area .comment-navigation+.comment-respond{padding-top:1.6em}.comments-area .comments-title{margin-bottom:1.3333em}.comments-area .comment-list{list-style:none;margin:0}.comments-area .comment-list .pingback,.comments-area .comment-list .trackback,.comments-area .comment-list article{border-top:1px solid #eaeaea;padding:1.6em 0}.comments-area .comment-list article:not(:only-child){padding-bottom:0}.comments-area .comment-list article+.comment-respond{padding-bottom:1.6em}.comments-area .comment-list .children{list-style:none;margin:0}.comments-area .comment-list .children>li{padding-left:.8em}.comments-area .comment-list .alt{background:none}.comments-area .comment-author{color:#999;margin-bottom:.4em}.comments-area .comment-author .avatar{float:left;height:24px;margin-right:.8em;width:24px}.comments-area .comment-metadata,.comments-area .pingback .edit-link{color:#999;line-height:1.5}.comments-area .comment-metadata a,.comments-area .pingback .edit-link a{color:#777}.comments-area .comment-metadata{font-size:.8rem;margin-bottom:1.6em}.comments-area .comment-metadata .edit-link,.comments-area .pingback .edit-link{margin-left:1em}.comments-area .pingback .edit-link:before{top:5px}.comments-area .comment-content ol,.comments-area .comment-content ul{margin:0 0 1.6em 1.3333em}.comments-area .comment-content>:last-child,.comments-area .comment-content li>ol,.comments-area .comment-content li>ul{margin-bottom:0}.comments-area .comment-content .reply{font-size:12px}.comments-area .comment-content .reply a{border:1px solid #eaeaea;color:#707070;display:inline-block;font-weight:700;line-height:1;margin-top:2em;padding:.4167em .8333em;text-transform:uppercase}.comments-area .comment-content .reply a:focus,.comments-area .comment-content .reply a:hover{border-color:#333;color:#333;outline:0}.comments-area .comment-reply-title a{font-weight:inherit}.comments-area .comment-form label{font-size:.8rem;font-weight:700;display:block;letter-spacing:.04em;line-height:1.5}.comments-area .comment-form input[type=email],.comments-area .comment-form input[type=text],.comments-area .comment-form input[type=url],.comments-area .comment-form textarea{width:100%}.comments-area .comment-awaiting-moderation,.comments-area .comment-notes,.comments-area .form-allowed-tags,.comments-area .logged-in-as{font-size:1rem;line-height:1.5;margin-bottom:2em}.comments-area .no-comments{border-top:1px solid #eaeaea;color:#999;font-weight:700;padding-top:1.6em}.comments-area .comment-navigation+.no-comments{border-top:0}.comments-area .form-allowed-tags code{font-family:Inconsolata,monospace}.comments-area .form-submit{margin-bottom:0}.comments-area .required{color:#c0392b}.entry-content{hyphens:auto;word-wrap:break-word}.entry-content>p:first-child{margin-top:0}.entry-content [class*=col-]~h1,.entry-content [class*=col-]~h2,.entry-content [class*=col-]~h3,.entry-content [class*=col-]~h4,.entry-content [class*=col-]~h5,.entry-content [class*=col-]~h6{clear:none}.entry-header{position:relative}.entry-header .sticky-post{color:#999;font-size:.8rem;font-style:italic;position:absolute;top:-.8rem}.entry-meta{color:#999;font-size:.8rem;margin-bottom:1rem}.entry-meta a{color:#777}.entry-meta>span{margin-right:1rem}.entry-meta>span :last-of-type{margin:0}.entry-meta .byline,.entry-meta .updated:not(.published),.sticky .entry-meta .posted-on{display:none}.group-blog .entry-meta .byline,.single .entry-meta .byline{display:inline}.entry-summary{hyphens:auto;word-wrap:break-word}body:not(.single):not(.search) .site-main .post{margin-bottom:3.0517578125rem;max-width:40em}.gallery{margin-bottom:1.5rem}.gallery .gallery-item{display:inline-block;margin:0;text-align:center;vertical-align:top;width:100%}.gallery.gallery-columns-2 .gallery-item{max-width:50%}.gallery.gallery-columns-3 .gallery-item{max-width:33.33%}.gallery.gallery-columns-4 .gallery-item{max-width:25%}.gallery.gallery-columns-5 .gallery-item{max-width:20%}.gallery.gallery-columns-6 .gallery-item{max-width:16.66%}.gallery.gallery-columns-7 .gallery-item{max-width:14.28%}.gallery.gallery-columns-8 .gallery-item{max-width:12.5%}.gallery.gallery-columns-9 .gallery-item{max-width:11.11%}.gallery .gallery-caption{display:block}.main-navigation{background:#0073aa;clear:both;left:0;position:absolute;top:60px;width:100%}.main-navigation ul{display:none;list-style:none;margin:0;padding-left:0}.main-navigation ul ul{box-shadow:0 3px 3px rgba(0,0,0,.2);float:left;left:-999em;position:absolute;top:1.5em;z-index:99999}.main-navigation ul ul ul{left:-999em;top:0}.main-navigation ul ul li.focus>ul,.main-navigation ul ul li:hover>ul{left:100%}.main-navigation ul ul a{width:200px}.main-navigation ul li.focus>ul,.main-navigation ul li:hover>ul{left:auto}.main-navigation li{border-top:1px solid hsla(0,0%,100%,.2);padding:1rem}.main-navigation a{color:hsla(0,0%,100%,.8);display:block;font-size:.8rem;text-decoration:none}.main-navigation a.active,.main-navigation a:hover{color:#fff}@media screen and (min-width:737px){.main-navigation a.active{border-bottom:1px solid}}.main-navigation.toggled{z-index:1}.main-navigation.toggled ul{display:block}.menu-toggle{background:transparent;border:none;color:#fff;height:3.5rem;position:absolute;right:1rem;top:-58px;width:3.5rem}.toggled .menu-toggle:before{content:""}@media screen and (min-width:737px){.menu-toggle{display:none}.main-navigation{float:right;position:static;width:auto}.main-navigation.toggled{padding:1px 0}.main-navigation ul{display:inline-block;font-size:0}.main-navigation ul li{border:0;display:inline-block;font-size:1rem;margin-right:1rem;padding:0}.main-navigation ul li:last-of-type{margin-right:0}}.comment-content .wp-smiley,.entry-content .wp-smiley,.page-content .wp-smiley{border:none;margin-bottom:0;margin-top:0;padding:0}embed,iframe,object{max-width:100%}body.page .gutters .col-12{width:100%}body.page .entry-header{background:#0073aa;padding:1rem 0}body.page .entry-header .entry-title{color:#fff;font-size:1.5625rem;font-weight:300;line-height:1;margin:0 auto;padding:0 1.5625rem}body.page .entry-header.home{padding:1.5625rem 1.143rem;text-align:center}@media screen and (min-width:737px){body.page .site-header+.site-main .entry-title{padding:initial}}body.page .entry-content,body.page .entry-footer{margin:0 auto;max-width:960px;padding:3.0517578125rem 1.5625rem}.post-navigation{margin:5em auto;padding:0}.post-navigation a{border-bottom:1px solid #eaeaea;color:#444;display:block;font-weight:600;padding:11px 0 12px;text-transform:none;width:100%}.post-navigation a:hover{color:#21759b}.post-navigation .nav-links{border-top:1px solid #eaeaea;hyphens:auto;word-wrap:break-word}.post-navigation .meta-nav{color:#777;display:block;font-size:13px;line-height:2;text-transform:uppercase}.post-navigation .nav-next{text-align:right}.pagination .nav-links{text-align:center}.pagination .nav-links .page-numbers{background-color:#f9f9f9;cursor:hand;display:inline-block;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.dots,.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{background:none;font-size:.9em;width:auto}.pagination .nav-links .page-numbers.dots{cursor:inherit}@media screen and (max-width:737px){.pagination .nav-links .page-numbers.next,.pagination .nav-links .page-numbers.prev{font-size:0;min-width:0;padding:0}.pagination .nav-links .page-numbers.next:after,.pagination .nav-links .page-numbers.prev:before{background-color:#f9f9f9;display:inline-block;font-size:1rem;line-height:1.5;min-width:2em;padding:8px}.pagination .nav-links .page-numbers.prev:before{content:"‹"}.pagination .nav-links .page-numbers.next:after{content:"›"}}.pagination .nav-links span.page-numbers{background-color:#f7f7f7;font-weight:700}.search-form .search-field{line-height:normal;margin:0;padding:4px 5px;vertical-align:text-bottom}body.search .gutters .col-12{width:100%}body.search .site-main{margin:0 auto;max-width:960px;padding:0 1.5625rem 3.0517578125rem}.site-content{max-width:960px;padding:0 1.5625rem}@media screen and (min-width:737px){.site-content{padding:0 10px 3.0517578125rem}}@media screen and (max-width:737px){.site-content .site-main{float:none;margin:0;width:auto}}.home .site-content,.page .site-content,.site-content.page{margin:auto;max-width:none;padding:0}.site-content .page-title{font-size:1.25rem;font-weight:400}.site-content .no-results{margin:0 auto 3.0517578125rem;max-width:40em;padding:0 2rem}.site-description{color:hsla(0,0%,100%,.8);font-size:1.25rem;font-weight:300;margin:-.4rem auto 2rem;text-align:center}.site-header{background:#0073aa;padding:1rem 0;position:relative}.site-header .site-branding{margin:0 auto;max-width:960px;padding:0 1.5625rem}@media screen and (min-width:737px){.site-header .site-branding{padding:0 10px}}.site-header.home{padding:1.5625rem 1.143rem;text-align:center}.site-title{display:inline-block;font-size:1.5625rem;font-weight:300;line-height:1;margin:0 2rem 0 0;max-width:none}.site-title a{color:#fff;font-weight:300}.site-title a:active,.site-title a:focus,.site-title a:hover{text-decoration:none}.site-header.home .site-title{display:inherit;font-size:3.8146972656rem;margin:2rem 0 1rem}.widget-area{font-size:.8rem}@media screen and (min-width:480px) and (max-width:768px){.widget-area{display:flex}.widget-area .widget{width:48%}}#wporg-footer{background-color:#f7f7f7;border-top:1px solid #dfdfdf;padding:22px 14px 65px}#wporg-footer,#wporg-footer .wrapper{clear:both;margin:0 auto;overflow:auto}#wporg-footer .wrapper{max-width:930px}#wporg-footer ul{float:left;margin-bottom:20px;margin-left:24px;overflow:auto;padding-left:0;width:135px}@media screen and (min-width:960px){#wporg-footer ul:first-child{margin-left:0}}#wporg-footer ul li{color:#bbb;font-size:14px;list-style-type:none;margin-bottom:1px}#wporg-footer ul li a{text-decoration:none;text-decoration-skip-ink:none}#wporg-footer ul li a:hover{color:#0073aa;text-decoration:underline}#wporg-footer .cip{clear:both;color:#ccc;float:none;font-size:.8rem;letter-spacing:.3em;margin:35px auto 0;text-align:center;text-transform:uppercase}#wporg-footer .cip.cip-image{background:url(//s.w.org/style/images/codeispoetry.png?1=) 50% no-repeat;background-size:190px 15px;height:15px;text-indent:-9999px;width:190px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:1.5dppx),only screen and (min-resolution:144dpi){#wporg-footer .cip.cip-image{background-image:url(//s.w.org/style/images/codeispoetry-2x.png?1=)}}@media screen and (min-width:561px) and (max-width:959px){#wporg-footer .wrapper{max-width:600px}#wporg-footer ul{margin-left:2%;width:32%}#wporg-footer ul:nth-child(3n+1){margin-left:0}#wporg-footer ul:nth-child(4n){clear:both}}@media screen and (max-width:560px){#wporg-footer .wrapper{max-width:360px}#wporg-footer ul{margin-left:4%;width:48%}#wporg-footer ul:nth-child(odd){margin-left:0;clear:both}}#wporg-header{background:#23282d;height:140px;position:relative;text-align:center;width:100%}#wporg-header .wrapper{margin:0 auto;max-width:960px}#wporg-header h1{display:inline-block;margin:auto;width:303px}#wporg-header h1 a{background:url(//s.w.org/style/images/wporg-logo.svg?3=) 0 no-repeat;background-size:290px 46px;display:block;height:88px;text-indent:-9999px}#wporg-header h2.rosetta{clear:none;color:#dfdfdf;font-family:Georgia,Times New Roman,serif;font-size:30px;margin:0 0 0 60px}#wporg-header h2.rosetta a{border-bottom:none;color:#dfdfdf;display:block;height:52px;line-height:22px;padding:0}#wporg-header h2.rosetta a:hover{text-decoration:none}#wporg-header #wporg-header-menu{background:#23282d;left:-75%;list-style:none;margin:0;max-width:75%;min-width:200px;position:absolute;text-align:left;top:100%;transition:left .3s;z-index:100000}#wporg-header #wporg-header-menu.toggled{left:0}#wporg-header ul li{list-style-type:none;position:relative}#wporg-header ul li a{color:#eee;display:block;font-family:Open Sans,Helvetica,Arial,Liberation Sans,sans-serif;font-size:13px;font-weight:600;height:34px;line-height:34px;margin:0 4px;padding:10px 30px;text-decoration:none}#wporg-header ul li a.subcurrent{font-weight:700}@media (max-width:768px){#wporg-header ul li a{height:auto}}#wporg-header ul li.current-menu-item a,#wporg-header ul li.current_page_parent a,#wporg-header ul li a.current,#wporg-header ul li a:hover{color:#00a0d2}#wporg-header ul li#download,#wporg-header ul li.download{float:right;height:34px;margin-right:14px;overflow:hidden;padding:0 0 34px}@media screen and (max-width:767px){#wporg-header ul li#download,#wporg-header ul li.download{display:block;float:none;margin:10px 20px 20px;padding-bottom:0;height:auto}#wporg-header ul li#download a,#wporg-header ul li.download a{padding:4px 10px;text-align:center}}#wporg-header ul li#download a,#wporg-header ul li.download a{margin:0;padding:0 16px}#wporg-header ul li#download a:hover,#wporg-header ul li.download a:hover{color:#eee}#wporg-header ul li#download.current,#wporg-header ul li#download.current-menu-item,#wporg-header ul li#download .uparrow,#wporg-header ul li.download.current,#wporg-header ul li.download.current-menu-item,#wporg-header ul li.download .uparrow{display:none}#wporg-header ul li .nav-submenu{clip:rect(1px,1px,1px,1px);height:1px;left:-2px;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;z-index:99999}#wporg-header ul li .nav-submenu li a{display:inline-block;height:24px;line-height:24px;margin:0;white-space:nowrap}@media screen and (min-width:768px){#wporg-header #head-search{float:right;margin-right:14px;padding-top:30px}}#wporg-header #head-search form{border-bottom:1px solid #3f3f3f;display:inline-block;margin-left:60px;width:288px}#wporg-header #head-search form input.text{background:#191e23;border:0;border-radius:0;box-sizing:content-box;color:#b4b9be;float:left;font-family:Open Sans,sans-serif;font-size:12px;height:24px;margin:0;outline:none;padding:3px;vertical-align:top;width:256px}#wporg-header #head-search form input.text::-moz-placeholder{color:#eee}@media screen and (max-width:480px){#wporg-header #head-search form input.text{width:216px}}#wporg-header #head-search form .button{background:#191e23 url(//s.w.org/wp-includes/images/admin-bar-sprite.png?d=20120831) no-repeat 2px 5px;border:none;border-radius:0;box-shadow:none;float:left;height:30px;margin:0;padding:0;text-shadow:none!important;width:26px}@media screen and (max-width:480px){#wporg-header #head-search form{width:248px}}@media screen and (min-width:480px){#wporg-header #head-search form{margin-left:0}}@media screen and (min-width:768px){#wporg-header{height:120px;text-align:inherit}#wporg-header h1{float:left;padding-left:10px}#wporg-header h2.rosetta{float:left;margin-left:0;padding:36px 27px 0}#wporg-header #headline h2{text-rendering:optimizeLegibility}#wporg-header #wporg-header-menu{float:left;height:46px;list-style:none;margin:-15px 0 0;max-width:inherit;min-width:0;padding:0;position:static;width:100%}#wporg-header ul li{float:left;position:relative}#wporg-header ul li a{height:46px;padding:0 6px}#wporg-header ul li a.current~.uparrow{border-bottom:9px solid #f7f7f7;border-left:9px solid transparent;border-right:9px solid transparent;height:0;margin:-8px auto 0;width:0}#wporg-header ul li.current-menu-item:after,#wporg-header ul li.current_page_parent:after{border-bottom:9px solid #f7f7f7;border-left:9px solid transparent;border-right:9px solid transparent;content:"";height:0;left:50%;margin:-8px 0 0 -9px;position:absolute;width:0}#wporg-header ul li .nav-submenu:hover~.uparrow,#wporg-header ul li:hover .nav-submenu~.uparrow{border-bottom:9px solid #32373c;border-left:9px solid transparent;border-right:9px solid transparent;height:0;margin:-10px auto 0;width:0}#wporg-header ul li .nav-submenu{background:#32373c;border:1px solid #32373c;border-top:0;margin-top:-1px;min-width:0}#wporg-header ul li .nav-submenu li{float:none}#wporg-header ul li .nav-submenu li a{height:34px;line-height:34px}#wporg-header .nav-menu .focus>ul,#wporg-header .nav-menu ul li:hover>ul,#wporg-header ul.nav-menu .focus>ul,#wporg-header ul.nav-menu li:hover>ul{clip:inherit;height:inherit;overflow:inherit;width:inherit}#wporg-header ul li.current-menu-item:after,#wporg-header ul li.current_page_parent:after,#wporg-header ul li a.current~.uparrow{border-bottom-color:#0073aa}}.page-download #wporg-header #download,.page-parent-download #wporg-header #download{display:none}#mobile-menu-button{background:none;border:none;box-shadow:none;display:block;float:left;font-family:dashicons;font-size:16px;font-style:normal;font-weight:400;left:10px;line-height:1;padding:1px;position:absolute;text-align:center;text-decoration:inherit;text-shadow:none;top:75px;transition:color .1s ease-in;vertical-align:top;-webkit-font-smoothing:antialiased}#mobile-menu-button:before{border:none;box-sizing:border-box;color:#888;content:"";display:inline-block;float:left;font:normal 50px/1 Dashicons;margin:0;outline:none;padding:3px;text-decoration:none;vertical-align:middle;-webkit-font-smoothing:antialiased}@media screen and (min-width:768px){#mobile-menu-button{display:none}}#download-mobile{background:#f7f7f7;border-bottom:1px solid #ddd}#download-mobile .wrapper{padding:20px 0;text-align:center}#download-mobile span.download-ready{font-size:1.6em;margin:0 .25em}#download-mobile a.download-button{font-size:1.6em;height:inherit;margin:10px .25em;padding:10px 15px}.category-context__bar{margin:0 1.5rem;background:#edeff0;border-radius:2px;font-size:.8125rem;overflow:auto;transition:all .1s ease-out;transition-delay:.1s}.category-context__bar>div{display:flex;align-items:center;justify-content:space-between}@media only screen and (min-width:782px){.category-context__bar{margin:0 1.5rem}}@media only screen and (min-width:960px){.category-context__bar{margin:0 auto;max-width:960px}}.category-context__bar ul{margin:0;padding:0;display:flex;justify-content:space-between}.category-context__bar ul li{list-style:none;font-size:.8125rem}.category-context__bar ul li a{display:block;padding:1.125rem .75rem;text-decoration:none}.category-context__bar ul li:last-child a{padding-right:1.5rem}.category-context__bar__copy{margin:0;padding:1.125rem 1.5rem;font-size:.8125rem;font-weight:400}.category-context__bar__title{margin:0;padding-right:1.5rem;color:#555d66;font-size:.75rem;font-weight:400;text-transform:uppercase}.category-context__bar__links{display:flex;align-items:center}@media only screen and (max-width:782px){.category-context__bar__links{display:none}}.category-context__bar--is-hidden{height:0;overflow:hidden}.category-menu{margin:0;padding:0;position:relative}.category-menu li{display:inline-block;margin:0;list-style:none}.category-menu a{display:block;padding:.5rem .75rem;color:#40464d;font-size:.875rem;text-decoration:none}.category-menu a:active,.category-menu a:focus,.category-menu a:hover{color:#000}li .category-menu--is-active{color:#fff;background:#0073aa;border-radius:2px}li .category-menu--is-active:focus,li .category-menu--is-active:hover{color:#fff}.category-menu__mobile{padding:0!important;border-top:none!important}.category-menu__mobile ul{margin:0;padding:0;background:#23282d}.category-menu__mobile li{list-style:none;border-top:1px solid #32373c}.category-menu__mobile li a{display:block;padding:1rem 1.5rem;font-size:.875rem;text-decoration:none;color:#ccd0d4}.category-menu__mobile>.components-panel__body-title{margin:0!important}.category-menu__mobile>.components-panel__body-title>button{padding:1.5rem}.category-menu--is-loading{height:24px;position:relative}.category-menu--is-loading:after{content:"";position:absolute;background:#f3f4f5;border-radius:4px;width:80%;height:24px;left:0;top:calc(50% - 12px);transition:none}.category-search{display:flex;align-items:center;background:#fff;border:1px solid #6c7782;border-radius:2px}.category-search input[type=search]{flex-grow:1;margin:0;padding:.25rem .5rem;border:none;box-shadow:none;font-size:.8125rem}.category-search input[type=search]:focus{outline:1px auto #0073aa}.category-search__button{display:flex;background:transparent;border:none;color:#6c7782}.category-search__button:active{background:#d7dade}.category-search__button:focus{outline:1px auto #0073aa}.category-search--is-loading{display:block;height:24px;min-width:100%;background:#f3f4f5;border-radius:4px}@media only screen and (min-width:480px){.category-search--is-loading{width:224px!important;min-width:auto!important}}.pattern__copy-button{transition:all 75ms ease-in-out}.pattern__copy-button.is-small{font-size:.75rem;padding:.75rem;height:auto}.pattern__favorite-button{position:relative;font-size:.875rem;height:2.25rem;width:2.25rem;border-radius:2px;color:#606a74}.pattern__favorite-button svg{position:absolute;top:calc(50% - .75rem);left:calc(50% - .75rem);height:1.5rem;width:1.5rem;transition:all .15s ease-out}.pattern__favorite-button svg path{fill:#6c7782}.pattern__favorite-button .pattern__favorite-filled{opacity:0}.pattern__favorite-button:hover{color:#555d66;background:transparent}.pattern__favorite-button:hover svg path{fill:#555d66}.pattern__favorite-button:active{background:transparent;box-shadow:none;transform:none}.pattern__favorite-button.is-favorited{color:#555d66}.pattern__favorite-button.is-favorited svg path{fill:#d94f4f}.pattern__favorite-button.is-favorited .pattern__favorite-outline{opacity:0;transform:scale(2.8)}.pattern__favorite-button.is-favorited .pattern__favorite-filled{opacity:1}.pattern__favorite-button.is-favorited:hover .pattern__favorite-filled{animation:HeartBeat .9s infinite}@media (prefers-reduced-motion){.pattern__favorite-button.is-favorited:hover .pattern__favorite-filled{animation:none}}.pattern__favorite-button.has-label{padding:12px 18px 12px 38px;height:auto;width:auto}.pattern__favorite-button.has-label svg{top:calc(50% - 12px);left:9px}.pattern__favorite-button[disabled]{background:transparent!important;text-shadow:none!important;color:#606a74!important}@keyframes HeartBeat{0%{transform:scale(1)}25%{transform:scale(1.2)}40%{transform:scale(1)}60%{transform:scale(1.2)}to{transform:scale(1)}}.main-navigation{float:none;position:static;width:auto}.main-navigation a{font-size:.8125rem}.main-navigation.toggled div.menu{position:absolute;top:57px;right:0;width:100%;background:#0073aa}.menu-toggle{position:static;height:auto;width:auto;font-size:1.5625rem;overflow:hidden;-webkit-appearance:none}body.page .entry-header{background:none;padding:0}body.page .entry-header .entry-title{color:inherit;margin:2rem auto 1rem;max-width:960px}@media screen and (min-width:737px){body.page .entry-header .entry-title{padding:0 10px}}.pattern-grid-menu{margin:0 auto;max-width:960px;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.pattern-grid-menu>:first-child,.pattern-grid-menu>:last-child{width:100%}.pattern-grid-menu>:last-child{margin:1.5rem;width:calc(100% - 3rem)}@media only screen and (min-width:782px){.pattern-grid-menu{margin:1.5rem;flex-direction:row}.pattern-grid-menu>:last-child{margin:0;width:auto}}@media only screen and (min-width:960px){.pattern-grid-menu{margin:1.5rem auto}}.pattern-grid{max-width:960px;margin:1.5rem}@media screen and (min-width:600px){.pattern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.pattern-grid>*{align-self:baseline}}@media screen and (min-width:960px){.pattern-grid{margin-left:auto;margin-right:auto}}.pattern-grid__pattern{position:relative;margin:0 0 1.5rem;border:1px solid #d7dade;border-radius:2px;transition:all 75ms ease-in-out}@media screen and (min-width:600px){.pattern-grid__pattern{display:inline-block;margin:0}}.pattern-grid__pattern .pattern-grid__preview{overflow:hidden}.pattern-grid__pattern .pattern-grid__actions{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:center;padding:.375rem;background:hsla(0,0%,100%,.8);backdrop-filter:blur(3px);opacity:0;transform:translateY(6px);transition:all 75ms ease-in-out}.pattern-grid__pattern .pattern-grid__actions .pattern-grid__title{flex-grow:1;margin:0;padding:0 .375rem 0 .75rem;font-size:.75rem;pointer-events:none}.pattern-grid__pattern .pattern-grid__actions .pattern__copy-button,.pattern-grid__pattern .pattern-grid__actions .pattern__favorite-button{flex-shrink:0}.pattern-grid__pattern .pattern-grid__actions .button+.button{margin-left:.375rem}.pattern-grid__pattern:focus-within .pattern-grid__actions,.pattern-grid__pattern:hover .pattern-grid__actions{opacity:1;transform:translateY(0)}.pattern-preview__container{padding:2rem 0 0;background:#f3f4f5}.pattern-preview__viewport{position:relative;margin:0 auto;padding:0 20px;max-width:100vw;min-width:320px}.pattern-preview__viewport .pattern-preview__viewport-iframe{background:#fff;border:1px solid #e8eaeb;vertical-align:middle;max-width:100vw}.pattern-preview__viewport:focus-within .pattern-preview__resize-help{clip:auto;clip-path:none;height:auto;margin:initial;overflow:initial;width:auto;bottom:-1rem;left:20px;right:20px;padding:8px 16px;background:#fff;border-radius:2px;border:1px solid #d7dade;text-align:center}.pattern-preview__drag-handle{position:absolute;top:0;bottom:0;width:20px}.pattern-preview__drag-handle.is-left{left:0}.pattern-preview__drag-handle.is-right{right:0}.pattern-preview__drag-handle-button{position:absolute;top:calc(50% - 50px);left:6px;padding:0;width:8px;height:100px;appearance:none;cursor:grab;outline:none;background:#7e8993;border-radius:99999px;border:none}.pattern-preview__drag-handle-button:hover{background:#6c7782}.pattern-preview__drag-handle-button:active{cursor:grabbing;background:#606a74}.pattern-preview__drag-handle-button:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.pattern-report-button{color:#23282d!important}.pattern-report-button__copy{margin:0;display:flex;justify-content:center;align-items:center}.pattern-report-button__copy svg{margin-right:.375rem}.pattern-report-modal{max-width:400px;width:100%}@media screen and (min-width:600px){.pattern-report-modal{width:400px}}.pattern-report-modal form>:first-child{padding-bottom:1.5rem}.pattern-report-modal__has-fixed-height{min-height:400px}.pattern-report-modal__copy{text-align:center;line-height:1.5}.pattern-report-modal__actions{margin-top:1.5rem;display:grid;grid-template-columns:48% 48%;column-gap:4%}.pattern-report-modal__actions button{justify-content:center}.pattern-report-modal__radio .components-radio-control__option{margin-top:.75rem}body.single-wporg-pattern{box-sizing:border-box;font-size:14px;font-weight:400;line-height:1.2}body.single-wporg-pattern .site-content{margin:auto;max-width:none;padding:0}body.single-wporg-pattern .entry-header{max-width:960px;padding:1.5rem;margin-left:auto;margin-right:auto}@media only screen and (min-width:960px){body.single-wporg-pattern .entry-header{padding:1.5rem 0}}body.single-wporg-pattern .entry-header .entry-title{margin-top:0;line-height:1.2}body.single-wporg-pattern .pattern-actions{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:.5em 2em}body.single-wporg-pattern .pattern-actions button{margin:0}@media (max-width:480px){body.single-wporg-pattern .pattern-actions{justify-content:center}}body.single-wporg-pattern .pattern-actions__notice{margin:1.5rem 0 0;height:auto;flex-basis:100%}body.single-wporg-pattern .pattern-actions__notice>*{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;margin:0}body.single-wporg-pattern .pattern-actions__notice>* button{margin-top:.75rem}@media only screen and (min-width:600px){body.single-wporg-pattern .pattern-actions__notice>*{align-items:center;flex-direction:row}body.single-wporg-pattern .pattern-actions__notice>* button{margin-top:0}}body.single-wporg-pattern .pattern-actions__guide{max-width:384px;height:auto;max-height:none}body.single-wporg-pattern .pattern-actions__guide-content{padding:1.5rem;line-height:1.5}body.single-wporg-pattern .pattern-actions__guide-title{margin:0}body.single-wporg-pattern .pattern-actions__guide-shortcut{background:#edeff0;box-shadow:0 0 0 1px #ccd0d4;padding:1px;font-weight:600;min-width:20px;display:inline-block;text-align:center;border-radius:2px}body.single-wporg-pattern .entry-content{max-width:960px;margin-left:auto;margin-right:auto}body.single-wporg-pattern .pattern__meta{padding:2rem 0;background:#f3f4f5}body.single-wporg-pattern .pattern__meta>div{max-width:960px;margin-left:auto;margin-right:auto;display:flex;justify-content:space-between}body.single-wporg-pattern .pattern__meta .pattern-preview__report{text-align:right}.site-header:not(.home) .search-form{display:flex;align-items:center}.site-header:not(.home) .search-form>input{flex:1;border:0;border-radius:2px 0 0 2px;display:inline-block;font-size:12px;padding:5px 10px;position:relative;width:auto;height:100%}.site-header:not(.home) .search-form button{margin:0;border-radius:0 2px 2px 0;padding:3px 12px;height:unset}.search-form--is-inline .search-form{display:flex;justify-content:space-between;background:#fff}.search-form--is-inline .search-form>label{flex:1}.search-form--is-inline .search-form input{padding:.5rem;background:transparent;border:none;box-shadow:none;width:100%;font-size:14px}@media only screen and (min-width:768px){.search-form--is-inline .search-form input{font-size:16px}}.search-form--is-inline .search-form button{background:transparent;margin-bottom:0;border:0;box-shadow:none;height:inherit;text-shadow:none;color:#32373c}.search-form--is-inline .search-form button:focus{-webkit-box-shadow:0 0 2px 1px #0073aa;box-shadow:0 0 2px 1px #0073aa}.search-form--is-centered .search-form{margin:0 auto}.search-form--is-constrained .search-form{max-width:36rem}.search-form--is-muted .search-form{border-color:#d7dade!important}.search-form--is-muted .search-form button,.search-form--is-muted .search-form input{background:#f8f9f9;color:#7e8993}.search-form--has-medium-text .search-form input{font-size:14px}.search-form--has-border .search-form{border:1px solid #7e8993}.section-heading_link,.section-heading_title{margin-bottom:0}.section-heading_title{font-weight:300}.section-heading_title .archive-title-prefix{display:block;font-size:1rem}.section-heading_link{text-decoration:underline;font-weight:600;margin-top:1.5rem!important}@media only screen and (min-width:768px){.section-heading_link{margin-top:0!important}}.section-heading_description{margin:1rem 0 0}.section-heading_description :last-child{margin-bottom:0}.section-heading--with-space{padding-bottom:16px}.site-content{margin:0 auto;max-width:none;padding:0}body.home .site-header{padding:3.75rem 1rem;text-align:left}body.home .site-branding{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 22rem}body.home .site-branding>*{align-self:center}@media screen and (max-width:736px){body.home .site-branding{display:block}}body.home .site-title.site-title{grid-column-start:1;grid-row-start:1;margin-top:0;text-align:left;font-size:3rem;line-height:1.25}body.home .site-description{grid-column-start:1;grid-row-start:2;margin:0;font-size:1.25rem;line-height:1.6;text-align:left;color:#fff}body.home .site-callout{grid-column-start:2;grid-row-start:1;grid-row-end:span 2;margin-left:4rem;padding:1.125rem 1.5rem 1.5rem;font-size:.875rem;line-height:1.6;background:#fff;box-shadow:.75rem .75rem 0 rgba(0,0,0,.15)}body.home .site-callout h2{margin-top:0;font-size:1.125rem;line-height:1.25;font-weight:600}body.home .site-callout p:last-child{margin-bottom:0}@media screen and (max-width:736px){body.home .site-callout{margin:2rem auto 0;max-width:24rem}}body:not(.home) .site-branding{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:#fff}body:not(.home) .site-branding a{color:#fff}body:not(.home) .site-branding .sep{margin-left:.5rem;margin-right:.5rem}body:not(.home) .site-branding .is-current-page{font-weight:600}.site-title a{text-decoration:none}.site-title a:active,.site-title a:focus,.site-title a:hover{color:#fff}.has-wporg-blue-color{color:#1e8cbe}.has-wporg-blue-background-color{background-color:#1e8cbe}.has-wporg-purple-color{color:#826eb4}.has-wporg-purple-background-color{background-color:#826eb4}.has-wporg-white-color{color:#fff}.has-wporg-white-background-color{background-color:#fff}.home-page .shapes{position:relative;margin:0 auto}.home-page .shapes .parallelogram p:before{font-size:64px;height:64px;left:-16px;position:relative}.home-page .shapes .parallelogram{color:#fff;display:block;margin:0 auto;opacity:.9;padding:60px 40px;text-align:center;text-decoration:none}.home-page .shapes strong{display:block;font-size:28px;font-weight:300;padding-bottom:15px;padding-top:15px}.home-page .shapes p{color:#fff;font-size:16px;font-weight:300;margin:0}.home-page .shapes u{display:block;font-size:18px;padding-top:15px}@media only screen and (min-width:768px){.home-page .shapes{height:400px}.home-page .shapes .parallelogram{width:50%;position:absolute;padding:50px 90px}}@media only screen and (min-width:960px){.home-page .shapes .parallelogram{-webkit-transform:skew(-15deg);-ms-transform:skew(-15deg);transform:skew(-15deg)}.home-page .shapes .parallelogram:before,.home-page .shapes p{-webkit-transform:skew(15deg);-ms-transform:skew(15deg);transform:skew(15deg)}}@media only screen and (min-width:1200px){.home-page .shapes{margin:0 -60px}}.terms{font-style:italic;font-size:14px} -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/functions.php
r10930 r10983 4 4 5 5 use const WordPressdotorg\Pattern_Directory\Pattern_Post_Type\POST_TYPE; 6 use const WordPressdotorg\Pattern_Directory\Pattern_Flag_Post_Type\POST_TYPE as FLAG_POST_TYPE; 6 7 7 8 add_action( 'after_setup_theme', __NAMESPACE__ . '\setup' ); … … 137 138 return __DIR__ . '/index.php'; 138 139 } 140 141 /** 142 * Checks whether the user has a pending flag for a specific pattern. 143 * 144 * @return bool 145 */ 146 function user_has_flagged_pattern() { 147 $args = array( 148 'author' => get_current_user_id(), 149 'post_parent' => get_the_ID(), 150 'post_type' => FLAG_POST_TYPE, 151 'post_status' => 'pending', 152 ); 153 154 $items = new \WP_Query( $args ); 155 156 return $items->have_posts(); 157 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/package.json
r10952 r10983 27 27 "devDependencies": { 28 28 "@wordpress/a11y": "2.15.2", 29 "@wordpress/api-fetch": "3.23.1", 29 30 "@wordpress/block-editor": "5.3.0", 30 31 "@wordpress/browserslist-config": "3.0.1", … … 43 44 "@wordpress/viewport": "2.26.0", 44 45 "autoprefixer": "9.8.6", 46 "classnames": "2.3.1", 45 47 "cssnano": "4.1.10", 46 48 "grunt": "1.3.0", -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/single-wporg-pattern.php
r10952 r10983 11 11 12 12 get_header(); 13 14 $user_has_reported = is_user_logged_in() ? user_has_flagged_pattern() : false; 15 13 16 ?> 14 17 <input id="block-data" type="hidden" value="<?php echo rawurlencode( wp_json_encode( get_the_content() ) ); ?>" /> … … 24 27 <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> 25 28 <p>A large hero section with an example background image and a heading in the center.</p> 26 <div id="pattern-actions" class="pattern-actions" >29 <div id="pattern-actions" class="pattern-actions" data-id="<?php the_ID(); ?>"> 27 30 <button class="button button-primary">Copy Pattern</button> 28 31 <button class="button">Add to favorites</button> … … 45 48 ?> 46 49 </div> 47 <div class="pattern__report"> 50 <div id="pattern-report" 51 class="pattern__report" 52 data-post-id="<?php echo intval( get_the_ID() ); ?>" 53 data-logged-in="<?php echo json_encode( is_user_logged_in() ); ?>" 54 data-user-has-reported="<?php echo json_encode( $user_has_reported ); ?>" 55 "> 48 56 <button class="button">Report this pattern</button> 49 57 </div> -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/components/category-menu/default.js
r10924 r10983 2 2 * External dependencies 3 3 */ 4 import { useEffect, useRef } from '@wordpress/element';5 4 import { ifViewportMatches } from '@wordpress/viewport'; 6 5 7 const updateIndicatorLocation = ( container, { top, left, width, height } ) => {8 if ( ! container ) {9 return;10 }11 12 container.style.backgroundPositionX = `${ left }px`;13 container.style.backgroundSize = `${ width }px ${ top + height }px`;14 };15 16 6 const DefaultMenu = ( { path, options, onClick, isLoading } ) => { 17 const containerRef = useRef( null );18 const activeRef = useRef( null );19 20 useEffect( () => {21 if ( ! containerRef || ! containerRef.current || ! activeRef || ! activeRef.current ) {22 return;23 }24 25 updateIndicatorLocation( containerRef.current, {26 top: activeRef.current.offsetTop,27 left: activeRef.current.offsetLeft,28 width: activeRef.current.offsetWidth,29 height: activeRef.current.offsetHeight,30 } );31 } );32 33 7 if ( ! isLoading && ! options.length ) { 34 8 return null; … … 36 10 37 11 return ( 38 <ul className={ `category-menu ${ isLoading ? 'category-menu--is-loading' : '' } ` } ref={ containerRef }> 39 { options.map( ( i ) => { 40 const isActive = path === i.value; 41 42 return ( 43 <li key={ i.value }> 44 <a 45 className={ isActive ? 'category-menu--is-active' : '' } 46 href={ i.value } 47 ref={ isActive ? activeRef : null } 48 onClick={ onClick } 49 > 50 { i.label } 51 </a> 52 </li> 53 ); 54 } ) } 12 <ul className={ `category-menu ${ isLoading ? 'category-menu--is-loading' : '' } ` }> 13 { options.map( ( i ) => ( 14 <li key={ i.value }> 15 <a 16 className={ path === i.value ? 'category-menu--is-active' : '' } 17 href={ i.value } 18 onClick={ onClick } 19 > 20 { i.label } 21 </a> 22 </li> 23 ) ) } 55 24 </ul> 56 25 ); -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/components/pattern-preview-actions/index.js
r10924 r10983 8 8 */ 9 9 import CopyPatternButton from '../copy-pattern-button'; 10 import AddToFavoriteButton from '../add-to-favorite-button';10 import FavoriteButton from '../favorite-button'; 11 11 import CopySuccessMessage from './copy-success-message'; 12 12 import CopyGuide from './copy-guide'; 13 13 14 const PatternPreviewActions = ( ) => {14 const PatternPreviewActions = ( { patternId } ) => { 15 15 const [ showSuccess, setShowSuccess ] = useState( false ); 16 16 const [ showGuide, setShowGuide ] = useState( false ); … … 19 19 <> 20 20 <CopyPatternButton onSuccess={ () => setShowSuccess( true ) } /> 21 < AddToFavoriteButton/>21 <FavoriteButton patternId={ patternId } /> 22 22 { showSuccess && <CopySuccessMessage onClick={ () => setShowGuide( true ) } /> } 23 23 { showGuide && <CopyGuide onFinish={ () => setShowGuide( false ) } /> } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/components/pattern-thumbnail/index.js
r10952 r10983 4 4 import { speak } from '@wordpress/a11y'; 5 5 import { __, sprintf } from '@wordpress/i18n'; 6 import { Button, Disabled , Tooltip} from '@wordpress/components';6 import { Button, Disabled } from '@wordpress/components'; 7 7 import { useEffect, useState } from '@wordpress/element'; 8 8 … … 10 10 * Internal dependencies 11 11 */ 12 import IconHeartOutline from '../icons/heart-outline'; 13 import IconHeartFilled from '../icons/heart-filled'; 12 import FavoriteButton from '../favorite-button'; 14 13 import Canvas from './canvas'; 15 14 import { copyToClipboard } from '../../utils'; 16 15 17 16 function PatternThumbnail( { pattern } ) { 18 // @todo Implement a real favoriting process.19 const [ isFavorite, setFavorite ] = useState( Math.random() < 0.3 );20 17 const [ copied, setCopied ] = useState( false ); 21 18 … … 55 52 <div className="pattern-grid__actions"> 56 53 <h2 className="pattern-grid__title">{ pattern.title.rendered }</h2> 57 <Tooltip 58 text={ 59 isFavorite 60 ? __( 'Remove pattern from favorites', 'wporg-patterns' ) 61 : __( 'Favorite pattern', 'wporg-patterns' ) 62 } 63 > 64 <button 65 className={ 66 'button button-link pattern__favorite-button' + ( isFavorite ? ' is-favorited' : '' ) 67 } 68 onClick={ () => setFavorite( ! isFavorite ) } 69 > 70 <IconHeartFilled className="pattern__favorite-filled" /> 71 <IconHeartOutline className="pattern__favorite-outline" /> 72 </button> 73 </Tooltip> 54 <FavoriteButton showLabel={ false } patternId={ pattern.id } /> 74 55 <Button className="pattern__copy-button is-small" isPrimary onClick={ handleCopy }> 75 56 { copied ? __( 'Copied!', 'wporg-patterns' ) : __( 'Copy', 'wporg-patterns' ) } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/index.js
r10924 r10983 9 9 import PatternPreview from './components/pattern-preview'; 10 10 import PatternPreviewActions from './components/pattern-preview-actions'; 11 import ReportPatternButton from './components/report-pattern-button'; 11 12 import Patterns from './components/patterns'; 12 13 … … 33 34 const patternActionsContainer = document.getElementById( 'pattern-actions' ); 34 35 if ( patternActionsContainer ) { 35 render( <PatternPreviewActions />, patternActionsContainer ); 36 render( 37 <PatternPreviewActions patternId={ Number( patternActionsContainer.dataset.id ) } />, 38 patternActionsContainer 39 ); 36 40 } 41 42 // Load report button 43 const patternReportContainer = document.getElementById( 'pattern-report' ); 44 if ( patternReportContainer ) { 45 const { loggedIn, postId, userHasReported } = patternReportContainer.dataset; 46 47 render( 48 <ReportPatternButton 49 userHasReported={ userHasReported === 'true' } 50 loggedIn={ loggedIn === 'true' } 51 postId={ postId } 52 />, 53 patternReportContainer 54 ); 55 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/actions.js
r10924 r10983 1 /** 2 * WordPress dependencies 3 */ 4 import { apiFetch } from '@wordpress/data-controls'; 5 1 6 /** 2 7 * Get the action object signalling that patterns have been requested. … … 50 55 return { type: 'LOAD_CATEGORIES', categories: categories }; 51 56 } 57 58 /** 59 * Get the action object signalling that pattern flag reasons have been requested. 60 * 61 * @return {Object} Action object. 62 */ 63 export function fetchPatternFlagReasons() { 64 return { type: 'FETCH_PATTERN_FLAG_REASONS' }; 65 } 66 67 /** 68 * Get the action object signalling that pattern flag reasons have been loaded. 69 * 70 * @param {Array} reasons A list of reasons. 71 * @return {Object} Action object. 72 */ 73 export function loadPatternFlagReasons( reasons ) { 74 return { type: 'LOAD_PATTERN_FLAG_REASONS', reasons: reasons }; 75 } 76 77 /** 78 * Get the action object signalling that the favorites list has been loaded. 79 * 80 * @param {number[]} patternIds A list of pattern IDs. 81 * 82 * @return {Object} Action object. 83 */ 84 export function loadFavorites( patternIds ) { 85 return { type: 'LOAD_FAVORITES', patternIds: patternIds }; 86 } 87 88 /** 89 * Get the action object to favorite a pattern. 90 * 91 * @param {number} patternId The pattern to favorite. 92 * 93 * @return {Object} Action object. 94 */ 95 export function* addFavorite( patternId ) { 96 const success = yield apiFetch( { 97 path: '/wporg/v1/pattern-favorites', 98 method: 'POST', 99 data: { id: patternId }, 100 } ); 101 // Silently discarding any errors. 102 if ( success === true ) { 103 return { type: 'ADD_FAVORITE', patternId: patternId }; 104 } 105 } 106 107 /** 108 * Get the action object to unfavorite a pattern. 109 * 110 * @param {number} patternId The pattern to unfavorite. 111 * 112 * @return {Object} Action object. 113 */ 114 export function* removeFavorite( patternId ) { 115 const success = yield apiFetch( { 116 path: '/wporg/v1/pattern-favorites', 117 method: 'DELETE', 118 data: { id: patternId }, 119 } ); 120 // Silently discarding any errors. 121 if ( success === true ) { 122 return { type: 'REMOVE_FAVORITE', patternId: patternId }; 123 } 124 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/index.js
r10882 r10983 8 8 * Internal dependencies 9 9 */ 10 import * as actions from './actions'; 10 11 import reducer from './reducer'; 12 import * as resolvers from './resolvers'; 11 13 import * as selectors from './selectors'; 12 import * as actions from './actions';13 import * as resolvers from './resolvers';14 14 15 15 /** -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/reducer.js
r10924 r10983 21 21 queries: queries( state.queries, action ), 22 22 }; 23 } 24 25 function byId( state = {}, action ) { 26 const patternsById = ( action.patterns || [] ).reduce( ( acc, cur ) => ( { ...acc, [ cur.id ]: cur } ), {} ); 27 switch ( action.type ) { 28 case 'LOAD_BLOCK_PATTERNS': 29 return { ...state, ...patternsById }; 30 default: 31 return state; 32 } 33 } 34 35 function queries( state = {}, action ) { 36 const patternIds = ( action.patterns || [] ).map( ( { id } ) => id ); 37 switch ( action.type ) { 38 case 'LOAD_BLOCK_PATTERNS': 39 return { ...state, [ action.query ]: [ ...( state[ action.query ] || [] ), ...patternIds ] }; 40 default: 41 return state; 42 } 23 43 } 24 44 … … 61 81 } 62 82 63 function byId( state = {}, action ) { 64 const patternsById = ( action.patterns || [] ).reduce( ( acc, cur ) => ( { ...acc, [ cur.id ]: cur } ), {} ); 83 /** 84 * Reducer to track pattern flag reasons. 85 * 86 * @param {Object} state Current state. 87 * @param {Object} action Dispatched action. 88 * @return {Object} Updated state. 89 */ 90 export function patternFlagReasons( state = undefined, action ) { 65 91 switch ( action.type ) { 66 case 'LOAD_BLOCK_PATTERNS': 67 return { ...state, ...patternsById }; 92 case 'FETCH_PATTERN_FLAG_REASONS': 93 return null; 94 case 'LOAD_PATTERN_FLAG_REASONS': 95 return [ ...action.reasons ]; 68 96 default: 69 97 return state; … … 71 99 } 72 100 73 function queries( state = {}, action ) { 74 const patternIds = ( action.patterns || [] ).map( ( { id } ) => id ); 101 /** 102 * Reducer to track the user's favorites. 103 * 104 * @param {Object} state Current state. 105 * @param {Object} action Dispatched action. 106 * @return {Object} Updated state. 107 */ 108 export function favorites( state = [], action ) { 109 const { patternId } = action; 75 110 switch ( action.type ) { 76 case 'LOAD_BLOCK_PATTERNS': 77 return { ...state, [ action.query ]: [ ...( state[ action.query ] || [] ), ...patternIds ] }; 78 default: 79 return state; 111 case 'LOAD_FAVORITES': 112 return action.patternIds; 113 case 'ADD_FAVORITE': 114 return state.includes( patternId ) ? state : [ ...state, patternId ]; 115 case 'REMOVE_FAVORITE': 116 return state.filter( ( id ) => id !== patternId ); 80 117 } 118 119 return state; 81 120 } 82 121 … … 85 124 categories, 86 125 currentQuery, 87 // favorites, 126 patternFlagReasons, 127 favorites, 88 128 } ); -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/resolvers.js
r10924 r10983 8 8 * Internal dependencies 9 9 */ 10 import { fetchCategories, fetchPatterns, loadCategories, loadPatterns } from './actions'; 10 import { 11 fetchCategories, 12 fetchPatternFlagReasons, 13 fetchPatterns, 14 loadCategories, 15 loadFavorites, 16 loadPatternFlagReasons, 17 loadPatterns, 18 } from './actions'; 11 19 import { getQueryString } from './utils'; 12 20 … … 31 39 } catch ( error ) {} 32 40 } 41 42 export function* getPatternFlagReasons() { 43 try { 44 yield fetchPatternFlagReasons(); 45 46 const results = yield apiFetch( { 47 path: addQueryArgs( '/wp/v2/wporg-pattern-flag-reason' ), 48 } ); 49 yield loadPatternFlagReasons( results ); 50 } catch ( error ) {} 51 } 52 53 export function* getFavorites() { 54 try { 55 const results = yield apiFetch( { 56 path: '/wporg/v1/pattern-favorites', 57 } ); 58 yield loadFavorites( results ); 59 } catch ( error ) {} 60 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/selectors.js
r10924 r10983 113 113 return cat; 114 114 } 115 116 /** 117 * Get pattern flag reasons. 118 * 119 * @param {Object} state Global application state. 120 * 121 * @return {Array} A list of pattern flag reasons. 122 */ 123 export function getPatternFlagReasons( state ) { 124 return state.patternFlagReasons; 125 } 126 127 /** 128 * Check if pattern flag reasons are loading. 129 * 130 * @param {Object} state Global application state. 131 * 132 * @return {Array} A list of pattern flag reasons. 133 */ 134 export function isLoadingPatternFlagReasons( state ) { 135 return state.patternFlagReasons === null; 136 } 137 138 /** 139 * Get the list of favorites. 140 * 141 * @param {Object} state Global application state. 142 * 143 * @return {number[]} A list of favorite pattern IDs. 144 */ 145 export function getFavorites( state ) { 146 return state.favorites; 147 } 148 149 /** 150 * Check if a pattern ID is in the list of favorites. 151 * 152 * @param {Object} state Global application state. 153 * @param {number} patternId The pattern to check. 154 * 155 * @return {number[]} A list of favorite pattern IDs. 156 */ 157 export function isFavorite( state, patternId ) { 158 return state.favorites.includes( patternId ); 159 } -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/test/reducer.js
r10924 r10983 5 5 import apiPatternsPage2 from './fixtures/patterns-page-2'; 6 6 import apiCategories from './fixtures/categories'; 7 import { categories, patterns } from '../reducer'; 7 import apiPatternFlagReasons from './fixtures/pattern-flag-reasons'; 8 import { categories, favorites, patternFlagReasons, patterns } from '../reducer'; 8 9 9 10 describe( 'state', () => { … … 87 88 } ); 88 89 } ); 90 91 describe( 'pattern flag reasons', () => { 92 it( 'should store the pattern flag reasons in state', () => { 93 const state = patternFlagReasons( 94 {}, 95 { 96 type: 'LOAD_PATTERN_FLAG_REASONS', 97 reasons: apiPatternFlagReasons, 98 } 99 ); 100 101 expect( state ).toEqual( apiPatternFlagReasons ); 102 } ); 103 } ); 104 105 describe( 'favorites', () => { 106 it( 'should store the list of favorite pattern ids', () => { 107 const state = favorites( [], { 108 type: 'LOAD_FAVORITES', 109 patternIds: [ 1, 2, 3 ], 110 } ); 111 expect( state ).toEqual( [ 1, 2, 3 ] ); 112 } ); 113 114 it( 'should add a new favorite pattern to the list', () => { 115 const state = favorites( [ 1, 2, 3 ], { 116 type: 'ADD_FAVORITE', 117 patternId: 5, 118 } ); 119 expect( state ).toEqual( [ 1, 2, 3, 5 ] ); 120 } ); 121 122 it( 'should not add a duplicate pattern to the list', () => { 123 const state = favorites( [ 1, 2, 3 ], { 124 type: 'ADD_FAVORITE', 125 patternId: 1, 126 } ); 127 expect( state ).toEqual( [ 1, 2, 3 ] ); 128 } ); 129 130 it( 'should remove the unfavorited pattern id from the list', () => { 131 const state = favorites( [ 1, 2, 3 ], { 132 type: 'REMOVE_FAVORITE', 133 patternId: 3, 134 } ); 135 expect( state ).toEqual( [ 1, 2 ] ); 136 } ); 137 138 it( 'should not remove a pattern that is not in the list', () => { 139 const state = favorites( [ 1, 2, 3 ], { 140 type: 'REMOVE_FAVORITE', 141 patternId: 5, 142 } ); 143 expect( state ).toEqual( [ 1, 2, 3 ] ); 144 } ); 145 } ); 89 146 } ); -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/test/resolvers.js
r10924 r10983 4 4 import apiPatterns from './fixtures/patterns'; 5 5 import apiCategories from './fixtures/categories'; 6 import { getCategories, getPatternsByQuery } from '../resolvers'; 6 import apiPatternFlagReasons from './fixtures/pattern-flag-reasons'; 7 import { getCategories, getFavorites, getPatternFlagReasons, getPatternsByQuery } from '../resolvers'; 7 8 8 9 describe( 'getPatternsByQuery', () => { … … 32 33 33 34 describe( 'getCategories', () => { 34 it( 'yields with the requested patterns', async () => {35 it( 'yields with the requested categories', async () => { 35 36 const generator = getCategories(); 36 37 … … 53 54 } ); 54 55 } ); 56 57 describe( 'getPatternFlagReasons', () => { 58 it( 'yields with the requested pattern flag reasons', async () => { 59 const generator = getPatternFlagReasons(); 60 61 expect( generator.next().value ).toEqual( { 62 type: 'FETCH_PATTERN_FLAG_REASONS', 63 } ); 64 65 // trigger apiFetch 66 const { value: apiFetchAction } = generator.next(); 67 expect( apiFetchAction.request ).toEqual( { 68 path: '/wp/v2/wporg-pattern-flag-reason', 69 } ); 70 71 // Provide response and trigger action 72 const { value: received } = generator.next( apiPatternFlagReasons ); 73 expect( received ).toEqual( { 74 type: 'LOAD_PATTERN_FLAG_REASONS', 75 reasons: apiPatternFlagReasons, 76 } ); 77 } ); 78 79 describe( 'getFavorites', () => { 80 it( 'yields with the requested favorite patterns', async () => { 81 const generator = getFavorites(); 82 83 // trigger apiFetch 84 const { value: apiFetchAction } = generator.next(); 85 expect( apiFetchAction.request ).toEqual( { 86 path: '/wporg/v1/pattern-favorites', 87 } ); 88 89 // Provide response and trigger action 90 const { value: received } = generator.next( [ 1, 2, 3 ] ); 91 expect( received ).toEqual( { 92 type: 'LOAD_FAVORITES', 93 patternIds: [ 1, 2, 3 ], 94 } ); 95 } ); 96 } ); 97 } ); -
sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-patterns/src/store/test/selectors.js
r10924 r10983 8 8 getCategoryBySlug, 9 9 getCurrentQuery, 10 getFavorites, 10 11 getPattern, 12 getPatternFlagReasons, 11 13 getPatterns, 12 14 getPatternsByQuery, 13 15 hasLoadedCategories, 16 isFavorite, 14 17 isLoadingCategories, 18 isLoadingPatternFlagReasons, 15 19 isLoadingPatternsByQuery, 16 20 } from '../selectors'; … … 22 26 byId: {}, 23 27 }, 28 favorites: [], 24 29 }; 25 30 … … 32 37 byId: apiPatterns.reduce( ( acc, cur ) => ( { ...acc, [ cur.id ]: cur } ), {} ), 33 38 }, 39 favorites: [ 25, 27 ], 34 40 }; 35 41 … … 214 220 } ); 215 221 } ); 222 223 describe( 'getPatternFlagReasons', () => { 224 it( 'should get undefined if query has not been made', () => { 225 expect( getPatternFlagReasons( {} ) ).toBeUndefined(); 226 } ); 227 228 it( 'should get array if query has completed', () => { 229 const reasons = [ 230 { id: 1, name: 'crude' }, 231 { id: 2, name: 'rude' }, 232 ]; 233 expect( getPatternFlagReasons( { patternFlagReasons: reasons } ) ).toEqual( reasons ); 234 } ); 235 } ); 236 237 describe( 'isLoadingPatternFlagReasons', () => { 238 it( 'should get false if not null', () => { 239 expect( 240 isLoadingPatternFlagReasons( { 241 patternFlagReasons: [], 242 } ) 243 ).toBe( false ); 244 } ); 245 246 it( 'should get true if null', () => { 247 expect( 248 isLoadingPatternFlagReasons( { 249 patternFlagReasons: null, 250 } ) 251 ).toBe( true ); 252 } ); 253 } ); 254 255 describe( 'getFavorites', () => { 256 it( 'should get an empty array if no favorites are loaded', () => { 257 expect( getFavorites( initialState ) ).toEqual( [] ); 258 } ); 259 260 it( 'should get the list of favorites if they exist', () => { 261 expect( getFavorites( state ) ).toEqual( [ 25, 27 ] ); 262 } ); 263 } ); 264 265 describe( 'isFavorite', () => { 266 it( 'should get false if no favorites are loaded', () => { 267 expect( isFavorite( initialState, 2 ) ).toBe( false ); 268 } ); 269 270 it( 'should get false if the ID requested is not in the list', () => { 271 expect( isFavorite( state, 2 ) ).toBe( false ); 272 } ); 273 274 it( 'should get false if the ID requested is not a valid ID', () => { 275 expect( isFavorite( state, 'fake' ) ).toBe( false ); 276 } ); 277 278 it( 'should get true if the ID requested is found in the list', () => { 279 expect( isFavorite( state, 25 ) ).toBe( true ); 280 } ); 281 } ); 216 282 } );
Note: See TracChangeset
for help on using the changeset viewer.