/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js": /*!****************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***! \****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js"); function _defineProperty(e, r, t) { return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js": /*!***********************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \***********************************************************************/ /***/ ((module) => { function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js": /*!*************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***! \*************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]); function toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js": /*!***************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***! \***************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]); var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js"); function toPropertyKey(t) { var i = toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/typeof.js": /*!********************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/typeof.js ***! \********************************************************/ /***/ ((module) => { function _typeof(o) { "@babel/helpers - typeof"; return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); } module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode. (() => { "use strict"; /*!*********************************************!*\ !*** ../assets/dev/js/admin/hints/media.js ***! \*********************************************/ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } (function (_elementorAdminHints, _wp) { if (!((_elementorAdminHints = elementorAdminHints) !== null && _elementorAdminHints !== void 0 && _elementorAdminHints.mediaHint)) { return; } if (!((_wp = wp) !== null && _wp !== void 0 && (_wp = _wp.media) !== null && _wp !== void 0 && (_wp = _wp.view) !== null && _wp !== void 0 && (_wp = _wp.Attachment) !== null && _wp !== void 0 && _wp.Details)) { return; } wp.media.view.Attachment.Details = wp.media.view.Attachment.Details.extend({ _tmpl: "
\">\n\t\t
\" data-display=\"<%= display %>\">\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\" data-settings=\"<%= button_data %>\">\n\t\t\t\t
<%= content %>
\n\t\t\t\t
\n\t\t\t\t<% if ( typeof(button_text) !== \"undefined\" ) { %>\n\t\t\t\t\t\n\t\t\t\t<% } %>\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t
\n\t
", template: function template(view) { // Get the template and parse it var html = wp.media.template('attachment-details')(view); // The template to extend var dom = document.createElement('div'); dom.innerHTML = html; if (!this.shouldDisplayHint(view)) { return dom.innerHTML; } var hint = document.createElement('div'); // Create a new element hint.classList.add('e-hint'); // Add a class to the element for styling hint.innerHTML = _.template(this._tmpl)(elementorAdminHints.mediaHint); // Add the content to the new element // Insert the new element at the correct spot var details = dom.querySelector('.attachment-info'); details.appendChild(hint); // Add new element at the correct spot return dom.innerHTML; }, events: _objectSpread(_objectSpread({}, wp.media.view.Attachment.Details.prototype.events), {}, { 'click .elementor-control-notice-dismiss': 'dismiss', 'click .e-hint__container a': 'onHintAnchorClick', 'click .e-hint__container button.e-btn-1': 'onHintAction' }), shouldDisplayHint: function shouldDisplayHint(view) { var _elementorAdminHints2; if (!elementorAdminHints || !((_elementorAdminHints2 = elementorAdminHints) !== null && _elementorAdminHints2 !== void 0 && _elementorAdminHints2.mediaHint)) { return false; } if (window.elementorHints !== undefined) { return false; } if (view.type !== 'image') { return false; } if (elementorAdminHints.mediaHint.display) { return true; } return this.imageNotOptimized(view); }, imageNotOptimized: function imageNotOptimized(attachment) { var checks = { height: 1080, width: 1920, filesizeInBytes: 100000 }; return Object.keys(checks).some(function (key) { var value = attachment[key] || false; return value && value > checks[key]; }); }, onHintAction: function onHintAction(event) { event.preventDefault(); var b64Settings = event.target.closest('.action-handler').dataset.settings; var settings = atob(b64Settings); var _JSON$parse = JSON.parse(settings), _JSON$parse$action_ur = _JSON$parse.action_url, actionURL = _JSON$parse$action_ur === void 0 ? null : _JSON$parse$action_ur; if (actionURL) { window.open(actionURL, '_blank'); } this.dismiss(event); }, onHintAnchorClick: function onHintAnchorClick(event) { this.dismiss(event); }, dismiss: function dismiss(event) { elementorCommon.ajax.addRequest('dismissed_editor_notices', { data: { dismissId: event.target.closest('.e-hint__container').dataset.event } }); this.hideHint(event); }, hideHint: function hideHint(event) { event.target.closest('.e-hint__container').remove(); window.elementorHints = {}; } }); })(); })(); /******/ })() ; //# sourceMappingURL=media-hints.js.map
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/sherrill.co.uk/balance.sherrill.co.uk/wp-content/plugins/all-in-one-wp-migration/lib/model/import/class-ai1wm-import-mu-plugins.php:1) in /var/www/vhosts/sherrill.co.uk/balance.sherrill.co.uk/wp-content/plugins/Smart Woo Subscriptions/frontend/frontend-functions.php on line 62

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/sherrill.co.uk/balance.sherrill.co.uk/wp-content/plugins/all-in-one-wp-migration/lib/model/import/class-ai1wm-import-mu-plugins.php:1) in /var/www/vhosts/sherrill.co.uk/balance.sherrill.co.uk/wp-content/plugins/Smart Woo Subscriptions/frontend/frontend-functions.php on line 62
Balance – Variety in every bite, balance done right !
Warning: filemtime(): stat failed for https://balance.sherrill.co.uk/wp-content/plugins/Smart Woo Subscriptions/assets/css/non-subs-grid.css in /var/www/vhosts/sherrill.co.uk/balance.sherrill.co.uk/wp-content/plugins/Smart Woo Subscriptions/smart-woo-subscriptions.php on line 172

Welcome to Balance Done Right

Your go-to café & meal prep service in Plymouth

Welcome to Balance Done Right

Your go-to café and meal prep service in Plymouth, dedicated to providing high-quality, delicious food tailored to your personal journey.

Whether you’re enjoying a meal in our vibrant café or picking up your freshly made meal prep, we focus on delivering nutritious, wholesome options that fuel your lifestyle. In our café, you’ll find a range of choices to suit any appetite. From a classic full English breakfast to protein-packed meals, daily specials, and freshly brewed coffee made with locally sourced Devon Coffee beans, there’s something to satisfy every craving. We also offer freshly made protein shakes to support your fitness goals.

Our Meal Prep service is at the heart of what we do. We understand that everyone’s journey is unique, whether you’re aiming to lose weight, maintain a balanced lifestyle, or build muscle. That’s why we tailor our meals to fit your specific needs, ensuring that you have the right plan in place to achieve your goals. All our meals are freshly cooked, and you can conveniently collect your meal prep on Mondays and Wednesdays, so you’re always fueled for the week ahead.

At Balance Done Right, we believe in nourishing your body with the best ingredients and providing the support you need to succeed on your journey. Come and visit us in Plymouth or get in touch to learn more about how we can help you reach your goals – one meal at a time.

Fuel Your Life with Balanced, Nutritious Convenience

We’re thrilled to have you here! Balance is all about making your life easier by providing nutritious, delicious, and convenient meals tailored to your lifestyle and goals.

Whether you’re looking to save time, eat more healthily, or fuel your fitness journey, we’ve got you covered. 

Fuel Your Goals with Balance

Discover nutritious, tailored meals and café favourites designed to support your lifestyle and fitness goals. Visit us in Plymouth or order your meal prep today!